From d6e36be0038cf2d8f6fd42ecf92987c834279fa6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 11:08:42 +0000 Subject: [PATCH 01/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6352) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 7859bb432a2..91f32bb9a8a 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Thu Oct 10 2024. +This document was automatically generated on Fri Oct 11 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index a2d87205ccc..bd7bcad8112 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Thu, Oct 10, 2024 at 03:30 PM +Generated on Fri, Oct 11, 2024 at 11:08 AM ## Table of Contents From 860dd0d0dd56b47ec616def882535acdb0de49e0 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Fri, 11 Oct 2024 15:16:43 +0200 Subject: [PATCH 02/71] chore: fix more mismatched versions issues and add a check in ci (#6353) * chore: fix more mismatched versions issues and add a check in ci * chore(compass): remove postinstall for packaged application --- .evergreen/functions.yml | 5 + package-lock.json | 671 ++++++++++++++++------ packages/compass-e2e-tests/package.json | 2 +- packages/compass/package.json | 3 +- packages/hadron-build/commands/release.js | 5 + scripts/package.json | 2 +- 6 files changed, 512 insertions(+), 176 deletions(-) diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index 945007a4c97..0335fc3c196 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -202,6 +202,11 @@ functions: # Install dependencies bash ".evergreen/retry-with-backoff.sh" .evergreen/npm_ci.sh + # Will fail if versions of direct dependencies listed in package-lock + # are not matching versions defined in package.json file of any of the + # workspace packages + # TODO: change this to npm ls --all when rest of the mismatched version issues are resolved + npm ls || echo "\nThe \`npm ls\` command failed with mismatched dependencies error. This usually means that the dependency versions listed in package.json are not matching dependencies resolved and recorded in package-lock.json. If you updated package.json files in your PR, inspect the error output and try to re-install offending dependncies to fix the package-lock file." bootstrap: - command: shell.exec diff --git a/package-lock.json b/package-lock.json index 0bdc5415e65..d57cae51540 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30610,89 +30610,6 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, - "node_modules/make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", - "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/make-fetch-happen/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/map-obj": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", @@ -43578,7 +43495,7 @@ "hadron-build": "^25.5.11", "hadron-ipc": "^3.2.23", "local-links": "^1.4.0", - "make-fetch-happen": "^8.0.14", + "make-fetch-happen": "^10.2.1", "marky": "^1.2.1", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", @@ -44380,6 +44297,16 @@ "node": ">=6" } }, + "packages/compass-e2e-tests/node_modules/execa/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "packages/compass-e2e-tests/node_modules/execa/node_modules/which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -44517,12 +44444,16 @@ } }, "packages/compass-e2e-tests/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true, + "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "packages/compass-e2e-tests/node_modules/shebang-command": { @@ -47034,6 +46965,84 @@ "url": "https://opencollective.com/sinon" } }, + "packages/compass/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "dev": true, + "license": "MIT", + "dependencies": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "packages/compass/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "packages/compass/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "packages/compass/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "packages/compass/node_modules/cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "packages/compass/node_modules/debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -47051,6 +47060,179 @@ } } }, + "packages/compass/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "packages/compass/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "packages/compass/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "packages/compass/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "packages/compass/node_modules/make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "license": "ISC", + "dependencies": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "packages/compass/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "packages/compass/node_modules/minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "packages/compass/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "engines": { + "node": ">= 10" + } + }, + "packages/compass/node_modules/ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "packages/compass/node_modules/unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^3.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "packages/compass/node_modules/unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, "packages/connection-form": { "name": "@mongodb-js/connection-form", "version": "1.41.1", @@ -48308,6 +48490,15 @@ "validate-npm-package-license": "^3.0.1" } }, + "packages/hadron-build/node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "packages/hadron-build/node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -48421,11 +48612,15 @@ } }, "packages/hadron-build/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "license": "ISC", "bin": { - "semver": "bin/semver" + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "packages/hadron-build/node_modules/sinon": { @@ -49644,7 +49839,7 @@ "commander": "^11.0.0", "electron": "^30.5.1", "jsdom": "^24.1.3", - "make-fetch-happen": "^8.0.14", + "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", "pkg-up": "^3.1.0", "prompts": "^2.4.1", @@ -49940,9 +50135,10 @@ } }, "scripts/node_modules/make-fetch-happen": { - "version": "10.1.7", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz", - "integrity": "sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", @@ -57181,7 +57377,7 @@ "electron": "^30.5.1", "eslint": "^7.25.0", "jsdom": "^24.1.3", - "make-fetch-happen": "^8.0.14", + "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", "pkg-up": "^3.1.0", "prettier": "^2.7.1", @@ -57400,8 +57596,9 @@ "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==" }, "make-fetch-happen": { - "version": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.7.tgz", - "integrity": "sha512-J/2xa2+7zlIUKqfyXDCXFpH3ypxO4k3rgkZHPSZkyUYcBT/hM80M3oyKLM/9dVriZFiGeGGS2Ei+0v2zfhqj3Q==", + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "requires": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", @@ -67649,6 +67846,12 @@ "pump": "^3.0.0" } }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -67739,9 +67942,9 @@ "dev": true }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", "dev": true }, "shebang-command": { @@ -73920,6 +74123,13 @@ "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } } }, "p-limit": { @@ -74005,9 +74215,9 @@ } }, "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==" }, "sinon": { "version": "9.2.4", @@ -78411,72 +78621,6 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, - "make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", - "dev": true, - "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, - "dependencies": { - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - } - } - } - }, "map-obj": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", @@ -79265,7 +79409,7 @@ "keytar": "^7.9.0", "local-links": "^1.4.0", "macos-export-certificate-and-key": "^1.1.2", - "make-fetch-happen": "^8.0.14", + "make-fetch-happen": "^10.2.1", "marky": "^1.2.1", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", @@ -79290,6 +79434,66 @@ "winreg-ts": "^1.0.4" }, "dependencies": { + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^2.0.0" + } + }, "debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -79298,6 +79502,129 @@ "requires": { "ms": "2.1.2" } + }, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "dev": true + }, + "make-fetch-happen": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "dev": true, + "requires": { + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass-fetch": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } + }, + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "unique-filename": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "dev": true, + "requires": { + "unique-slug": "^3.0.0" + } + }, + "unique-slug": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } } } }, diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 86aa475ae1c..e95ccf2627f 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -34,8 +34,8 @@ }, "devDependencies": { "@electron/rebuild": "^3.6.2", - "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/compass-test-server": "^0.1.22", + "@mongodb-js/connection-info": "^0.9.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", diff --git a/packages/compass/package.json b/packages/compass/package.json index 45d5ac97c77..276b3a202dd 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -162,7 +162,6 @@ "download": "hadron-build download", "evergreen-expansions": "hadron-build info --format=yaml --flatten > expansions.yml", "build-info": "hadron-build info", - "jsx": "babel ./src --out-dir ./lib", "eslint": "eslint", "prettier": "prettier", "lint": "npm run eslint . && npm run prettier -- --check .", @@ -254,7 +253,7 @@ "hadron-build": "^25.5.11", "hadron-ipc": "^3.2.23", "local-links": "^1.4.0", - "make-fetch-happen": "^8.0.14", + "make-fetch-happen": "^10.2.1", "marky": "^1.2.1", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", diff --git a/packages/hadron-build/commands/release.js b/packages/hadron-build/commands/release.js index d13d19b8684..d22649f03d0 100644 --- a/packages/hadron-build/commands/release.js +++ b/packages/hadron-build/commands/release.js @@ -254,6 +254,11 @@ const transformPackageJson = async (CONFIG, done) => { 'repository', 'check', 'config.hadron.build', + // Compass postinstall script downloads some files that become part of the + // build during compilation, we don't need to download them again when + // packaging. This allows us to avoid pulling some dev-only deps to the + // production dependencies of the bundled application + 'scripts.install', ]; let contents = _.omit(CONFIG.pkg, packageKeysToRemove); diff --git a/scripts/package.json b/scripts/package.json index 8ac01e8e7a6..df659ef27e6 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -43,7 +43,7 @@ "commander": "^11.0.0", "electron": "^30.5.1", "jsdom": "^24.1.3", - "make-fetch-happen": "^8.0.14", + "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", "pkg-up": "^3.1.0", "prompts": "^2.4.1", From c8d5c0f8c3aef33e3550979dd8f3a4af01af1279 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 13:24:10 +0000 Subject: [PATCH 03/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6354) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index bd7bcad8112..30792e8618f 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 11, 2024 at 11:08 AM +Generated on Fri, Oct 11, 2024 at 01:24 PM ## Table of Contents From b3095e5b082030eb4d12285834f1ea21cef4567c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 13 Oct 2024 03:15:52 +0000 Subject: [PATCH 04/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6357) Update report Co-authored-by: mcasimir <334881+mcasimir@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 91f32bb9a8a..10304976042 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Fri Oct 11 2024. +This document was automatically generated on Sun Oct 13 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 30792e8618f..7128588db82 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 11, 2024 at 01:24 PM +Generated on Sun, Oct 13, 2024 at 03:15 AM ## Table of Contents From 88e5737c643a63051d5ae957355f7ee4e9d2b22f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 05:04:51 +0000 Subject: [PATCH 05/71] v1.44.5-beta.6 --- package-lock.json | 2 +- packages/compass/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 431fe7be1f6..d293c2573a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43417,7 +43417,7 @@ }, "packages/compass": { "name": "mongodb-compass", - "version": "1.44.5-beta.5", + "version": "1.44.5-beta.6", "hasInstallScript": true, "license": "SSPL", "dependencies": { diff --git a/packages/compass/package.json b/packages/compass/package.json index d6a01c5f8bd..0b88a0a9fe6 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -4,7 +4,7 @@ "productName": "MongoDB Compass", "description": "The MongoDB GUI", "homepage": "https://www.mongodb.com/products/compass", - "version": "1.44.5-beta.5", + "version": "1.44.5-beta.6", "apiVersion": "3.0.0", "main": "build/main.js", "author": { @@ -277,5 +277,5 @@ "macos-export-certificate-and-key": "^1.1.2", "win-export-certificate-and-key": "^2.0.1" }, - "releasePublisher": "Le Roux Bodenstein " + "releasePublisher": "Maurizio Casimirri " } From d64b718424bc5f5bd391358811a31db8e416f574 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Mon, 14 Oct 2024 09:17:43 +0200 Subject: [PATCH 06/71] chore: fix ELSPROBLEMS for all transitive dependencies (#6355) --- .evergreen/functions.yml | 8 +- package-lock.json | 104 +++++++----------- package.json | 7 +- packages/compass-components/package.json | 2 +- .../combobox/ComboboxMenu/ComboboxMenu.tsx | 2 +- .../src/hooks/use-theme.tsx | 4 +- .../src/components/generative-ai-input.tsx | 1 + 7 files changed, 58 insertions(+), 70 deletions(-) diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index 0335fc3c196..acf5b475190 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -202,11 +202,15 @@ functions: # Install dependencies bash ".evergreen/retry-with-backoff.sh" .evergreen/npm_ci.sh + # Will fail if versions of direct dependencies listed in package-lock # are not matching versions defined in package.json file of any of the # workspace packages - # TODO: change this to npm ls --all when rest of the mismatched version issues are resolved - npm ls || echo "\nThe \`npm ls\` command failed with mismatched dependencies error. This usually means that the dependency versions listed in package.json are not matching dependencies resolved and recorded in package-lock.json. If you updated package.json files in your PR, inspect the error output and try to re-install offending dependncies to fix the package-lock file." + # This command is very noisy when running from root with --all, store + # the output in a file that will be uploaded with rest of the logs + LS_ALL_STDOUT_FILE="$(npm config get cache)/_logs/$(date -u +"%Y-%m-%dT%H_%M_%SZ")-npm-ls-all.log" + echo "Validating dependencies with \`npm ls --all\`..." + (npm ls --all > $LS_ALL_STDOUT_FILE && echo "No mismatched dependency versions") || echo "\nThe \`npm ls\` command failed with mismatched dependencies error. This usually means that the dependency versions listed in package.json are not matching dependencies resolved and recorded in package-lock.json. If you updated package.json files in your PR, inspect the error output and try to re-install offending dependncies to fix the package-lock file." bootstrap: - command: shell.exec diff --git a/package-lock.json b/package-lock.json index d57cae51540..662765ecfb3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5653,12 +5653,13 @@ } }, "node_modules/@leafygreen-ui/leafygreen-provider": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@leafygreen-ui/leafygreen-provider/-/leafygreen-provider-3.1.11.tgz", - "integrity": "sha512-xRwZjchRcvtpbkrLAxuHDl5MPgdi6J7ErVyeeP8k6+y7yTdaaAu8j8bbiacASwpOJdX5Q2XNl2pJ8gzC2PgyRA==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/leafygreen-provider/-/leafygreen-provider-3.1.12.tgz", + "integrity": "sha512-lV5R30jTZ41FTBj+TSyme/QcplIkQlUnC+WE/YRfWL4XvgGeGUoGXlHl7gu4mMoXy8p/VRBw8fcotxhvBf58gA==", + "license": "Apache-2.0", "dependencies": { - "@leafygreen-ui/hooks": "^8.1.0", - "@leafygreen-ui/lib": "^13.2.0" + "@leafygreen-ui/hooks": "^8.1.3", + "@leafygreen-ui/lib": "^13.3.0" } }, "node_modules/@leafygreen-ui/lib": { @@ -13390,17 +13391,6 @@ "@types/react": "^16" } }, - "node_modules/@types/enzyme/node_modules/@types/react": { - "version": "16.14.47", - "resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.47.tgz", - "integrity": "sha512-m0EmmY73mbQegA+aqo0+O/hHU9iTi+hNYotJ3cM4sLFox8NqZv3XVXQhhqpd3YH6YC7h+YIyJFd36O5KlaJLCA==", - "dev": true, - "dependencies": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, "node_modules/@types/estree": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", @@ -13677,21 +13667,23 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "node_modules/@types/react": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", - "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", + "version": "17.0.83", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.83.tgz", + "integrity": "sha512-l0m4ArKJvmFtR4e8UmKrj1pB4tUgOhJITf+mADyF/p69Ts1YAR/E+G9XEM0mHXKVRa1dQNHseyyDNzeuAXfXQw==", + "license": "MIT", "dependencies": { "@types/prop-types": "*", - "@types/scheduler": "*", + "@types/scheduler": "^0.16", "csstype": "^3.0.2" } }, "node_modules/@types/react-dom": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.10.tgz", - "integrity": "sha512-8oz3NAUId2z/zQdFI09IMhQPNgIbiP8Lslhv39DIDamr846/0spjZK0vnrMak0iB8EKb9QFTTIdg2Wj2zH5a3g==", + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", + "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", + "license": "MIT", "dependencies": { - "@types/react": "*" + "@types/react": "^17" } }, "node_modules/@types/react-is": { @@ -43781,7 +43773,7 @@ "@leafygreen-ui/icon-button": "^15.0.20", "@leafygreen-ui/info-sprinkle": "^1.0.3", "@leafygreen-ui/inline-definition": "^6.0.14", - "@leafygreen-ui/leafygreen-provider": "^3.1.11", + "@leafygreen-ui/leafygreen-provider": "^3.1.12", "@leafygreen-ui/lib": "^13.2.1", "@leafygreen-ui/logo": "^9.1.1", "@leafygreen-ui/marketing-modal": "^4.2.1", @@ -53878,12 +53870,12 @@ } }, "@leafygreen-ui/leafygreen-provider": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@leafygreen-ui/leafygreen-provider/-/leafygreen-provider-3.1.11.tgz", - "integrity": "sha512-xRwZjchRcvtpbkrLAxuHDl5MPgdi6J7ErVyeeP8k6+y7yTdaaAu8j8bbiacASwpOJdX5Q2XNl2pJ8gzC2PgyRA==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/leafygreen-provider/-/leafygreen-provider-3.1.12.tgz", + "integrity": "sha512-lV5R30jTZ41FTBj+TSyme/QcplIkQlUnC+WE/YRfWL4XvgGeGUoGXlHl7gu4mMoXy8p/VRBw8fcotxhvBf58gA==", "requires": { - "@leafygreen-ui/hooks": "^8.1.0", - "@leafygreen-ui/lib": "^13.2.0" + "@leafygreen-ui/hooks": "^8.1.3", + "@leafygreen-ui/lib": "^13.3.0" } }, "@leafygreen-ui/lib": { @@ -55846,7 +55838,7 @@ "@leafygreen-ui/icon-button": "^15.0.20", "@leafygreen-ui/info-sprinkle": "^1.0.3", "@leafygreen-ui/inline-definition": "^6.0.14", - "@leafygreen-ui/leafygreen-provider": "^3.1.11", + "@leafygreen-ui/leafygreen-provider": "^3.1.12", "@leafygreen-ui/lib": "^13.2.1", "@leafygreen-ui/logo": "^9.1.1", "@leafygreen-ui/marketing-modal": "^4.2.1", @@ -63617,7 +63609,7 @@ "requires": { "@babel/runtime": "^7.12.5", "@testing-library/dom": "^8.0.0", - "@types/react-dom": "<18.0.0" + "@types/react-dom": "^17.0.25" } }, "@testing-library/react-hooks": { @@ -63626,8 +63618,8 @@ "integrity": "sha512-dYxpz8u9m4q1TuzfcUApqi8iFfR6R0FaMbr2hjZJy1uC8z+bO/K4v8Gs9eogGKYQop7QsrBTFkv/BCF7MzD2Cg==", "requires": { "@babel/runtime": "^7.12.5", - "@types/react": ">=16.9.0", - "@types/react-dom": ">=16.9.0", + "@types/react": "^17.0.83", + "@types/react-dom": "^17.0.25", "@types/react-test-renderer": ">=16.9.0", "react-error-boundary": "^3.1.0" } @@ -63857,19 +63849,7 @@ "dev": true, "requires": { "@types/cheerio": "*", - "@types/react": "^17.0.5" - }, - "dependencies": { - "@types/react": { - "version": "https://registry.npmjs.org/@types/react/-/react-16.14.47.tgz", - "integrity": "sha512-m0EmmY73mbQegA+aqo0+O/hHU9iTi+hNYotJ3cM4sLFox8NqZv3XVXQhhqpd3YH6YC7h+YIyJFd36O5KlaJLCA==", - "dev": true, - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - } + "@types/react": "^17.0.83" } }, "@types/estree": { @@ -63950,7 +63930,7 @@ "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.1.tgz", "integrity": "sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==", "requires": { - "@types/react": "*", + "@types/react": "^17.0.83", "hoist-non-react-statics": "^3.3.0" } }, @@ -64147,21 +64127,21 @@ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" }, "@types/react": { - "version": "17.0.11", - "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.11.tgz", - "integrity": "sha512-yFRQbD+whVonItSk7ZzP/L+gPTJVBkL/7shLEF+i9GC/1cV3JmUxEQz6+9ylhUpWSDuqo1N9qEvqS6vTj4USUA==", + "version": "17.0.83", + "resolved": "https://registry.npmjs.org/@types/react/-/react-17.0.83.tgz", + "integrity": "sha512-l0m4ArKJvmFtR4e8UmKrj1pB4tUgOhJITf+mADyF/p69Ts1YAR/E+G9XEM0mHXKVRa1dQNHseyyDNzeuAXfXQw==", "requires": { "@types/prop-types": "*", - "@types/scheduler": "*", + "@types/scheduler": "^0.16", "csstype": "^3.0.2" } }, "@types/react-dom": { - "version": "17.0.10", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.10.tgz", - "integrity": "sha512-8oz3NAUId2z/zQdFI09IMhQPNgIbiP8Lslhv39DIDamr846/0spjZK0vnrMak0iB8EKb9QFTTIdg2Wj2zH5a3g==", + "version": "17.0.25", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.25.tgz", + "integrity": "sha512-urx7A7UxkZQmThYA4So0NelOVjx3V4rNFVJwp0WZlbIK5eM4rNJDiN3R/E9ix0MBh6kAEojk/9YL+Te6D9zHNA==", "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/react-is": { @@ -64169,7 +64149,7 @@ "resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-18.2.4.tgz", "integrity": "sha512-wBc7HgmbCcrvw0fZjxbgz/xrrlZKzEqmABBMeSvpTvdm25u6KI6xdIi9pRE2G0C1Lw5ETFdcn4UbYZ4/rpqUYw==", "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/react-test-renderer": { @@ -64177,7 +64157,7 @@ "resolved": "https://registry.npmjs.org/@types/react-test-renderer/-/react-test-renderer-17.0.1.tgz", "integrity": "sha512-3Fi2O6Zzq/f3QR9dRnlnHso9bMl7weKCviFmfF6B4LS1Uat6Hkm15k0ZAQuDz+UBq6B3+g+NM6IT2nr5QgPzCw==", "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/react-transition-group": { @@ -64185,7 +64165,7 @@ "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.10.tgz", "integrity": "sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==", "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/react-virtualized-auto-sizer": { @@ -64194,7 +64174,7 @@ "integrity": "sha512-GH8sAnBEM5GV9LTeiz56r4ZhMOUSrP43tAQNSRVxNexDjcNKLCEtnxusAItg1owFUFE6k0NslV26gqVClVvong==", "dev": true, "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/react-window": { @@ -64203,7 +64183,7 @@ "integrity": "sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==", "dev": true, "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/reflux": { @@ -64212,7 +64192,7 @@ "integrity": "sha512-nRTTsQmy0prliP0I0GvpAbE27k7+I+MqD15gs4YuQGkuZjRHK65QHPLkykgHnPTdjZYNaY0sOvMQ7OtbcoDkKA==", "dev": true, "requires": { - "@types/react": "*" + "@types/react": "^17.0.83" } }, "@types/relateurl": { diff --git a/package.json b/package.json index ec9f972f3d7..0dec690b267 100644 --- a/package.json +++ b/package.json @@ -93,8 +93,9 @@ "scripts" ], "overrides": { - "@types/enzyme": { - "@types/react": "^17.0.5" - } + "@types/react": "^17.0.83", + "@types/react-dom": "^17.0.25", + "react": "^17.0.2", + "react-dom": "^17.0.2" } } diff --git a/packages/compass-components/package.json b/packages/compass-components/package.json index 735e232ae6d..e5ae5c653a4 100644 --- a/packages/compass-components/package.json +++ b/packages/compass-components/package.json @@ -48,7 +48,7 @@ "@leafygreen-ui/icon-button": "^15.0.20", "@leafygreen-ui/info-sprinkle": "^1.0.3", "@leafygreen-ui/inline-definition": "^6.0.14", - "@leafygreen-ui/leafygreen-provider": "^3.1.11", + "@leafygreen-ui/leafygreen-provider": "^3.1.12", "@leafygreen-ui/lib": "^13.2.1", "@leafygreen-ui/logo": "^9.1.1", "@leafygreen-ui/marketing-modal": "^4.2.1", diff --git a/packages/compass-components/src/components/combobox/ComboboxMenu/ComboboxMenu.tsx b/packages/compass-components/src/components/combobox/ComboboxMenu/ComboboxMenu.tsx index 776f32e0c9f..24fbe79758c 100644 --- a/packages/compass-components/src/components/combobox/ComboboxMenu/ComboboxMenu.tsx +++ b/packages/compass-components/src/components/combobox/ComboboxMenu/ComboboxMenu.tsx @@ -108,7 +108,7 @@ export const ComboboxMenu = React.forwardRef( children && typeof children === 'object' && 'length' in children && - children.length > 0 + (children as any).length > 0 ) { return
    {children}
; } diff --git a/packages/compass-components/src/hooks/use-theme.tsx b/packages/compass-components/src/hooks/use-theme.tsx index e7d79444ad6..b91b1deea30 100644 --- a/packages/compass-components/src/hooks/use-theme.tsx +++ b/packages/compass-components/src/hooks/use-theme.tsx @@ -66,7 +66,9 @@ const withDarkMode = function < WrappedComponent.displayName || WrappedComponent.name || 'Component'; ComponentWithDarkMode.displayName = `WithDarkMode(${displayName})`; - return React.forwardRef(ComponentWithDarkMode) as typeof WrappedComponent; + return React.forwardRef( + ComponentWithDarkMode + ) as unknown as typeof WrappedComponent; }; export { Theme, withDarkMode }; diff --git a/packages/compass-generative-ai/src/components/generative-ai-input.tsx b/packages/compass-generative-ai/src/components/generative-ai-input.tsx index 8a490db9d8d..36274cd90d4 100644 --- a/packages/compass-generative-ai/src/components/generative-ai-input.tsx +++ b/packages/compass-generative-ai/src/components/generative-ai-input.tsx @@ -442,6 +442,7 @@ function GenerativeAIInput({ )} ref={promptTextInputRef} data-testid="ai-user-text-input" + aria-labelledby="" aria-label="Enter a plain text query that the AI will translate into MongoDB query language." placeholder={placeholder} value={aiPromptText} From d127c23da8db52250583a48c4094418a0766e712 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 07:24:32 +0000 Subject: [PATCH 07/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6358) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 10304976042..de015cec17d 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Sun Oct 13 2024. +This document was automatically generated on Mon Oct 14 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 7128588db82..0abc529530c 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Sun, Oct 13, 2024 at 03:15 AM +Generated on Mon, Oct 14, 2024 at 07:24 AM ## Table of Contents From b35fb1b3fc1c73d009c0d2601fe1c3a4f699de29 Mon Sep 17 00:00:00 2001 From: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> Date: Mon, 14 Oct 2024 04:32:34 -0400 Subject: [PATCH 08/71] chore(release): bump package versions (#6307) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- package-lock.json | 1222 ++++++++--------- packages/atlas-service/package.json | 8 +- packages/bson-transpilers/package.json | 2 +- packages/collection-model/package.json | 4 +- packages/compass-aggregations/package.json | 40 +- packages/compass-app-stores/package.json | 14 +- packages/compass-collection/package.json | 16 +- packages/compass-components/package.json | 6 +- .../package.json | 10 +- .../package.json | 14 +- packages/compass-connections/package.json | 16 +- packages/compass-crud/package.json | 32 +- packages/compass-e2e-tests/package.json | 8 +- packages/compass-editor/package.json | 4 +- packages/compass-explain-plan/package.json | 14 +- .../compass-export-to-language/package.json | 16 +- packages/compass-field-store/package.json | 4 +- packages/compass-find-in-page/package.json | 4 +- packages/compass-generative-ai/package.json | 10 +- packages/compass-global-writes/package.json | 12 +- packages/compass-import-export/package.json | 16 +- packages/compass-indexes/package.json | 24 +- packages/compass-intercom/package.json | 4 +- .../package.json | 4 +- .../compass-preferences-model/package.json | 2 +- packages/compass-query-bar/package.json | 26 +- .../package.json | 18 +- .../compass-schema-validation/package.json | 20 +- packages/compass-schema/package.json | 22 +- packages/compass-serverstats/package.json | 10 +- packages/compass-settings/package.json | 10 +- packages/compass-shell/package.json | 10 +- packages/compass-sidebar/package.json | 26 +- packages/compass-web/package.json | 48 +- packages/compass-welcome/package.json | 10 +- packages/compass-workspaces/package.json | 14 +- packages/compass/package.json | 70 +- packages/connection-form/package.json | 10 +- packages/connection-info/package.json | 4 +- packages/connection-storage/package.json | 6 +- packages/data-service/package.json | 2 +- packages/database-model/package.json | 6 +- .../databases-collections-list/package.json | 12 +- packages/databases-collections/package.json | 24 +- packages/explain-plan-helper/package.json | 4 +- packages/hadron-build/package.json | 2 +- packages/hadron-document/package.json | 4 +- packages/hadron-type-checker/package.json | 2 +- packages/instance-model/package.json | 8 +- packages/mongodb-explain-compat/package.json | 2 +- packages/mongodb-query-util/package.json | 2 +- packages/my-queries-storage/package.json | 4 +- scripts/package.json | 2 +- 53 files changed, 942 insertions(+), 942 deletions(-) diff --git a/package-lock.json b/package-lock.json index 662765ecfb3..f9984ec25ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43283,19 +43283,19 @@ }, "packages/atlas-service": { "name": "@mongodb-js/atlas-service", - "version": "0.29.0", + "version": "0.30.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "electron": "^30.5.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", @@ -43352,7 +43352,7 @@ } }, "packages/bson-transpilers": { - "version": "3.0.9", + "version": "3.0.10", "license": "SSPL", "dependencies": { "antlr4": "4.7.2", @@ -43389,12 +43389,12 @@ }, "packages/collection-model": { "name": "mongodb-collection-model", - "version": "5.23.4", + "version": "5.23.5", "license": "SSPL", "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2" }, "devDependencies": { @@ -43424,45 +43424,45 @@ "devDependencies": { "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.2", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.1", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-databases-collections": "^1.42.2", - "@mongodb-js/compass-explain-plan": "^6.43.2", - "@mongodb-js/compass-export-to-language": "^9.19.2", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-find-in-page": "^4.31.0", - "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.1", - "@mongodb-js/compass-import-export": "^7.42.2", - "@mongodb-js/compass-indexes": "^5.42.2", - "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-aggregations": "^9.46.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connection-import-export": "^0.40.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-databases-collections": "^1.43.0", + "@mongodb-js/compass-explain-plan": "^6.44.0", + "@mongodb-js/compass-export-to-language": "^9.20.0", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-find-in-page": "^4.31.1", + "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-global-writes": "^1.3.0", + "@mongodb-js/compass-import-export": "^7.43.0", + "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", - "@mongodb-js/compass-schema": "^6.44.2", - "@mongodb-js/compass-schema-validation": "^6.43.2", - "@mongodb-js/compass-serverstats": "^16.42.2", - "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.2", - "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/compass-saved-aggregations-queries": "^1.44.0", + "@mongodb-js/compass-schema": "^6.45.0", + "@mongodb-js/compass-schema-validation": "^6.44.0", + "@mongodb-js/compass-serverstats": "^16.43.0", + "@mongodb-js/compass-settings": "^0.42.0", + "@mongodb-js/compass-shell": "^3.43.0", + "@mongodb-js/compass-sidebar": "^5.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.2", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-welcome": "^0.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -43473,7 +43473,7 @@ "chai": "^4.3.4", "chalk": "^4.1.2", "clean-stack": "^2.0.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -43484,7 +43484,7 @@ "ensure-error": "^3.0.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-build": "^25.5.11", + "hadron-build": "^25.5.12", "hadron-ipc": "^3.2.23", "local-links": "^1.4.0", "make-fetch-happen": "^10.2.1", @@ -43493,8 +43493,8 @@ "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-data-service": "^22.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2", @@ -43514,7 +43514,7 @@ }, "packages/compass-aggregations": { "name": "@mongodb-js/compass-aggregations", - "version": "9.45.2", + "version": "9.46.0", "license": "SSPL", "dependencies": { "@babel/generator": "^7.19.5", @@ -43523,34 +43523,34 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/explain-plan-helper": "^1.2.3", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -43615,17 +43615,17 @@ }, "packages/compass-app-stores": { "name": "@mongodb-js/compass-app-stores", - "version": "7.29.1", + "version": "7.30.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, @@ -43679,20 +43679,20 @@ }, "packages/compass-collection": { "name": "@mongodb-js/compass-collection", - "version": "4.42.2", + "version": "4.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/mongodb-constants": "^0.10.2", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.4", + "mongodb-collection-model": "^5.23.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -43753,7 +43753,7 @@ }, "packages/compass-components": { "name": "@mongodb-js/compass-components", - "version": "1.30.0", + "version": "1.30.1", "license": "SSPL", "dependencies": { "@dnd-kit/core": "^6.0.7", @@ -43803,8 +43803,8 @@ "@react-aria/visually-hidden": "^3.3.1", "bson": "^6.8.0", "focus-trap-react": "^9.0.2", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "is-electron-renderer": "^2.0.1", "lodash": "^4.17.21", "polished": "^4.2.2", @@ -43865,13 +43865,13 @@ }, "packages/compass-connection-import-export": { "name": "@mongodb-js/compass-connection-import-export", - "version": "0.39.1", + "version": "0.40.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/connection-storage": "^0.22.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/connection-storage": "^0.22.1", + "compass-preferences-model": "^2.29.1", "hadron-ipc": "^3.2.23", "react": "^17.0.2" }, @@ -43927,24 +43927,24 @@ }, "packages/compass-connections": { "name": "@mongodb-js/compass-connections", - "version": "1.43.1", + "version": "1.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-storage": "^0.22.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -43976,15 +43976,15 @@ }, "packages/compass-connections-navigation": { "name": "@mongodb-js/compass-connections-navigation", - "version": "1.42.2", + "version": "1.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "compass-preferences-model": "^2.29.1", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", "react-virtualized-auto-sizer": "^1.0.6", @@ -44071,33 +44071,33 @@ }, "packages/compass-crud": { "name": "@mongodb-js/compass-crud", - "version": "13.43.2", + "version": "13.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-query-bar": "^8.45.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/explain-plan-helper": "^1.2.3", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/explain-plan-helper": "^1.2.4", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -44123,7 +44123,7 @@ "enzyme": "^3.11.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", @@ -44175,11 +44175,11 @@ } }, "packages/compass-e2e-tests": { - "version": "1.27.2", + "version": "1.27.3", "devDependencies": { "@electron/rebuild": "^3.6.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -44192,7 +44192,7 @@ "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -44200,7 +44200,7 @@ "eslint": "^7.25.0", "fast-glob": "^3.2.7", "glob": "^10.2.5", - "hadron-build": "^25.5.11", + "hadron-build": "^25.5.12", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", @@ -44493,7 +44493,7 @@ }, "packages/compass-editor": { "name": "@mongodb-js/compass-editor", - "version": "0.31.0", + "version": "0.31.1", "license": "SSPL", "dependencies": { "@codemirror/autocomplete": "^6.17.0", @@ -44505,7 +44505,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/mongodb-constants": "^0.10.0", "mongodb-query-parser": "^4.2.3", "polished": "^4.2.2", @@ -44559,17 +44559,17 @@ }, "packages/compass-explain-plan": { "name": "@mongodb-js/compass-explain-plan", - "version": "6.43.2", + "version": "6.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/explain-plan-helper": "^1.2.3", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/explain-plan-helper": "^1.2.4", + "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", @@ -44638,18 +44638,18 @@ }, "packages/compass-export-to-language": { "name": "@mongodb-js/compass-export-to-language", - "version": "9.19.2", + "version": "9.20.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "bson-transpilers": "^3.0.9", - "compass-preferences-model": "^2.29.0", + "bson-transpilers": "^3.0.10", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", @@ -44701,10 +44701,10 @@ }, "packages/compass-field-store": { "name": "@mongodb-js/compass-field-store", - "version": "9.18.1", + "version": "9.19.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", @@ -44764,10 +44764,10 @@ }, "packages/compass-find-in-page": { "name": "@mongodb-js/compass-find-in-page", - "version": "4.31.0", + "version": "4.31.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", @@ -44830,15 +44830,15 @@ }, "packages/compass-generative-ai": { "name": "@mongodb-js/compass-generative-ai", - "version": "0.23.0", + "version": "0.24.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", @@ -44931,14 +44931,14 @@ }, "packages/compass-global-writes": { "name": "@mongodb-js/compass-global-writes", - "version": "1.2.1", + "version": "1.3.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "hadron-app-registry": "^9.2.7", @@ -45125,27 +45125,27 @@ }, "packages/compass-import-export": { "name": "@mongodb-js/compass-import-export", - "version": "7.42.2", + "version": "7.43.0", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "electron": "^30.5.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", + "hadron-document": "^8.6.4", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -45219,28 +45219,28 @@ }, "packages/compass-indexes": { "name": "@mongodb-js/compass-indexes", - "version": "5.42.2", + "version": "5.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -45349,11 +45349,11 @@ }, "packages/compass-intercom": { "name": "@mongodb-js/compass-intercom", - "version": "0.13.0", + "version": "0.13.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", - "compass-preferences-model": "^2.29.0" + "compass-preferences-model": "^2.29.1" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -45514,10 +45514,10 @@ }, "packages/compass-maybe-protect-connection-string": { "name": "@mongodb-js/compass-maybe-protect-connection-string", - "version": "0.27.0", + "version": "0.27.1", "license": "SSPL", "dependencies": { - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "mongodb-connection-string-url": "^3.0.1" }, "devDependencies": { @@ -45567,7 +45567,7 @@ } }, "packages/compass-preferences-model": { - "version": "2.29.0", + "version": "2.29.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", @@ -45633,30 +45633,30 @@ }, "packages/compass-query-bar": { "name": "@mongodb-js/compass-query-bar", - "version": "8.44.2", + "version": "8.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", - "mongodb-query-util": "^2.2.8", + "mongodb-query-util": "^2.2.9", "mongodb-schema": "^12.2.0", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -45711,20 +45711,20 @@ }, "packages/compass-saved-aggregations-queries": { "name": "@mongodb-js/compass-saved-aggregations-queries", - "version": "1.43.2", + "version": "1.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/my-queries-storage": "^0.17.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "fuse.js": "^6.5.3", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", @@ -45787,30 +45787,30 @@ }, "packages/compass-schema": { "name": "@mongodb-js/compass-schema", - "version": "6.44.2", + "version": "6.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-query-bar": "^8.45.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/reflux-state-mixin": "^1.0.7", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", + "hadron-document": "^8.6.4", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", "lodash": "^4.17.21", "moment": "^2.29.4", "mongodb": "^6.9.0", - "mongodb-query-util": "^2.2.8", + "mongodb-query-util": "^2.2.9", "mongodb-schema": "^12.2.0", "numeral": "^1.5.6", "prop-types": "^15.7.2", @@ -45822,7 +45822,7 @@ "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", @@ -45846,20 +45846,20 @@ }, "packages/compass-schema-validation": { "name": "@mongodb-js/compass-schema-validation", - "version": "6.43.2", + "version": "6.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", @@ -45887,7 +45887,7 @@ "eslint": "^7.25.0", "hadron-ipc": "^3.2.23", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", @@ -45923,14 +45923,14 @@ }, "packages/compass-serverstats": { "name": "@mongodb-js/compass-serverstats", - "version": "16.42.2", + "version": "16.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", @@ -45972,14 +45972,14 @@ }, "packages/compass-settings": { "name": "@mongodb-js/compass-settings", - "version": "0.41.0", + "version": "0.42.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", @@ -46041,21 +46041,21 @@ }, "packages/compass-shell": { "name": "@mongodb-js/compass-shell", - "version": "3.42.2", + "version": "3.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongosh/browser-repl": "^2.3.2", "@mongosh/logging": "^2.3.2", "@mongosh/node-runtime-worker-thread": "^2.3.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46111,25 +46111,25 @@ }, "packages/compass-sidebar": { "name": "@mongodb-js/compass-sidebar", - "version": "5.43.2", + "version": "5.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.1", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-connections-navigation": "^1.42.2", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connection-import-export": "^0.40.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections-navigation": "^1.43.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46153,7 +46153,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "nyc": "^15.1.0", "prettier": "^2.7.1", "react-dom": "^17.0.2", @@ -46486,32 +46486,32 @@ }, "packages/compass-web": { "name": "@mongodb-js/compass-web", - "version": "0.8.2", + "version": "0.9.0", "license": "SSPL", "devDependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.2", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-databases-collections": "^1.42.2", - "@mongodb-js/compass-explain-plan": "^6.43.2", - "@mongodb-js/compass-export-to-language": "^9.19.2", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.1", - "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-aggregations": "^9.46.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-databases-collections": "^1.43.0", + "@mongodb-js/compass-explain-plan": "^6.44.0", + "@mongodb-js/compass-export-to-language": "^9.20.0", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-global-writes": "^1.3.0", + "@mongodb-js/compass-indexes": "^5.43.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/compass-schema": "^6.44.2", - "@mongodb-js/compass-schema-validation": "^6.43.2", - "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/compass-schema": "^6.45.0", + "@mongodb-js/compass-schema-validation": "^6.44.0", + "@mongodb-js/compass-sidebar": "^5.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.2", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-welcome": "^0.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -46530,7 +46530,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -46546,7 +46546,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", @@ -46751,15 +46751,15 @@ }, "packages/compass-welcome": { "name": "@mongodb-js/compass-welcome", - "version": "0.41.2", + "version": "0.42.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "redux": "^4.2.1", @@ -46817,19 +46817,19 @@ }, "packages/compass-workspaces": { "name": "@mongodb-js/compass-workspaces", - "version": "0.24.2", + "version": "0.25.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -47227,18 +47227,18 @@ }, "packages/connection-form": { "name": "@mongodb-js/connection-form", - "version": "1.41.1", + "version": "1.42.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/shell-bson-parser": "^1.1.2", "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-query-parser": "^4.2.3", "react": "^17.0.2" }, @@ -47294,13 +47294,13 @@ }, "packages/connection-info": { "name": "@mongodb-js/connection-info", - "version": "0.9.0", + "version": "0.9.1", "license": "SSPL", "dependencies": { "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4" + "mongodb-data-service": "^22.23.5" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47420,16 +47420,16 @@ }, "packages/connection-storage": { "name": "@mongodb-js/connection-storage", - "version": "0.22.0", + "version": "0.22.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "electron": "^30.5.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", @@ -47485,7 +47485,7 @@ }, "packages/data-service": { "name": "mongodb-data-service", - "version": "22.23.4", + "version": "22.23.5", "license": "SSPL", "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", @@ -47647,13 +47647,13 @@ }, "packages/database-model": { "name": "mongodb-database-model", - "version": "2.23.4", + "version": "2.23.5", "license": "SSPL", "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4" + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47714,24 +47714,24 @@ }, "packages/databases-collections": { "name": "@mongodb-js/compass-databases-collections", - "version": "1.42.2", + "version": "1.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/databases-collections-list": "^1.40.2", - "@mongodb-js/my-queries-storage": "^0.17.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/databases-collections-list": "^1.41.0", + "@mongodb-js/my-queries-storage": "^0.17.1", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "prop-types": "^15.7.2", @@ -47761,15 +47761,15 @@ }, "packages/databases-collections-list": { "name": "@mongodb-js/databases-collections-list", - "version": "1.40.2", + "version": "1.41.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", + "compass-preferences-model": "^2.29.1", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, @@ -47878,11 +47878,11 @@ }, "packages/explain-plan-helper": { "name": "@mongodb-js/explain-plan-helper", - "version": "1.2.3", + "version": "1.2.4", "license": "SSPL", "dependencies": { "@mongodb-js/shell-bson-parser": "^1.1.2", - "mongodb-explain-compat": "^3.1.0" + "mongodb-explain-compat": "^3.1.1" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -48013,7 +48013,7 @@ } }, "packages/hadron-build": { - "version": "25.5.11", + "version": "25.5.12", "hasInstallScript": true, "license": "SSPL", "dependencies": { @@ -48739,12 +48739,12 @@ } }, "packages/hadron-document": { - "version": "8.6.3", + "version": "8.6.4", "license": "SSPL", "dependencies": { "bson": "^6.8.0", "eventemitter3": "^4.0.0", - "hadron-type-checker": "^7.2.2", + "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21" }, "devDependencies": { @@ -48914,7 +48914,7 @@ } }, "packages/hadron-type-checker": { - "version": "7.2.2", + "version": "7.2.3", "license": "SSPL", "dependencies": { "bson": "^6.8.0", @@ -48930,13 +48930,13 @@ }, "packages/instance-model": { "name": "mongodb-instance-model", - "version": "12.24.4", + "version": "12.24.5", "license": "SSPL", "dependencies": { "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", - "mongodb-database-model": "^2.23.4" + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", + "mongodb-database-model": "^2.23.5" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -48948,7 +48948,7 @@ } }, "packages/mongodb-explain-compat": { - "version": "3.1.0", + "version": "3.1.1", "license": "SSPL", "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -48959,7 +48959,7 @@ } }, "packages/mongodb-query-util": { - "version": "2.2.8", + "version": "2.2.9", "license": "SSPL", "dependencies": { "bson": "^6.8.0", @@ -49202,10 +49202,10 @@ }, "packages/my-queries-storage": { "name": "@mongodb-js/my-queries-storage", - "version": "0.17.0", + "version": "0.17.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-user-data": "^0.3.8", "bson": "^6.8.0", "hadron-app-registry": "^9.2.7", @@ -49823,7 +49823,7 @@ }, "scripts": { "name": "@mongodb-js/compass-scripts", - "version": "0.16.22", + "version": "0.16.23", "license": "SSPL", "dependencies": { "@babel/core": "^7.24.3", @@ -55547,12 +55547,12 @@ "@mongodb-js/atlas-service": { "version": "file:packages/atlas-service", "requires": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -55565,7 +55565,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "eslint": "^7.25.0", @@ -55614,24 +55614,24 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongodb-js/eslint-config-compass": "^1.1.7", - "@mongodb-js/explain-plan-helper": "^1.2.3", + "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/shell-bson-parser": "^1.1.2", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -55642,21 +55642,21 @@ "@types/semver": "^7.3.9", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -55700,10 +55700,10 @@ "@mongodb-js/compass-app-stores": { "version": "file:packages/compass-app-stores", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55718,9 +55718,9 @@ "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -55755,13 +55755,13 @@ "@mongodb-js/compass-collection": { "version": "file:packages/compass-collection", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.2", @@ -55775,13 +55775,13 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.4", + "mongodb-collection-model": "^5.23.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -55879,8 +55879,8 @@ "chai": "^4.3.4", "eslint": "^7.25.0", "focus-trap-react": "^9.0.2", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "is-electron-renderer": "^2.0.1", "lodash": "^4.17.21", "mocha": "^10.2.0", @@ -55925,9 +55925,9 @@ "@mongodb-js/compass-connection-import-export": { "version": "file:packages/compass-connection-import-export", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55939,7 +55939,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -55980,14 +55980,14 @@ "@mongodb-js/compass-connections": { "version": "file:packages/compass-connections", "requires": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56001,7 +56001,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -56010,7 +56010,7 @@ "mocha": "^10.2.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "nyc": "^15.1.0", "prettier": "^2.7.1", "react": "^17.0.2", @@ -56049,11 +56049,11 @@ "@mongodb-js/compass-connections-navigation": { "version": "file:packages/compass-connections-navigation", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56068,7 +56068,7 @@ "@types/react-window": "^1.8.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -56110,21 +56110,21 @@ "@mongodb-js/compass-crud": { "version": "file:packages/compass-crud", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-query-bar": "^8.45.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongodb-js/eslint-config-compass": "^1.1.7", - "@mongodb-js/explain-plan-helper": "^1.2.3", + "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", @@ -56137,20 +56137,20 @@ "bson": "^6.8.0", "chai": "^4.1.2", "chai-as-promised": "^7.1.1", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-data-service": "^22.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -56174,32 +56174,32 @@ "@mongodb-js/compass-databases-collections": { "version": "file:packages/databases-collections", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/databases-collections-list": "^1.40.2", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/databases-collections-list": "^1.41.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", @@ -56248,7 +56248,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -56298,14 +56298,14 @@ "@mongodb-js/compass-explain-plan": { "version": "file:packages/compass-explain-plan", "requires": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", - "@mongodb-js/explain-plan-helper": "^1.2.3", + "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -56314,7 +56314,7 @@ "@types/d3-flextree": "^2.1.0", "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", @@ -56368,11 +56368,11 @@ "@mongodb-js/compass-export-to-language": { "version": "file:packages/compass-export-to-language", "requires": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56380,9 +56380,9 @@ "@mongodb-js/shell-bson-parser": "^1.1.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "bson-transpilers": "^3.0.9", + "bson-transpilers": "^3.0.10", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -56424,7 +56424,7 @@ "@mongodb-js/compass-field-store": { "version": "file:packages/compass-field-store", "requires": { - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56478,7 +56478,7 @@ "@mongodb-js/compass-find-in-page": { "version": "file:packages/compass-find-in-page", "requires": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56537,9 +56537,9 @@ "@mongodb-js/compass-generative-ai": { "version": "file:packages/compass-generative-ai", "requires": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56553,7 +56553,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -56617,11 +56617,11 @@ "@mongodb-js/compass-global-writes": { "version": "file:packages/compass-global-writes", "requires": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -56735,14 +56735,14 @@ "version": "file:packages/compass-import-export", "requires": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56761,19 +56761,19 @@ "bson": "^6.8.0", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", + "hadron-document": "^8.6.4", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -56819,16 +56819,16 @@ "@mongodb-js/compass-indexes": { "version": "file:packages/compass-indexes", "requires": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -56839,7 +56839,7 @@ "@types/numeral": "^2.0.5", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", @@ -56848,8 +56848,8 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -56906,7 +56906,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -57059,7 +57059,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -57098,26 +57098,26 @@ "@mongodb-js/compass-query-bar": { "version": "file:packages/compass-query-bar", "requires": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", @@ -57126,10 +57126,10 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", - "mongodb-query-util": "^2.2.8", + "mongodb-query-util": "^2.2.9", "mongodb-schema": "^12.2.0", "nyc": "^15.1.0", "react": "^17.0.2", @@ -57167,17 +57167,17 @@ "@mongodb-js/compass-saved-aggregations-queries": { "version": "file:packages/compass-saved-aggregations-queries", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", @@ -57189,7 +57189,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -57236,17 +57236,17 @@ "@mongodb-js/compass-schema": { "version": "file:packages/compass-schema", "requires": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-query-bar": "^8.45.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -57259,13 +57259,13 @@ "@types/react-dom": "^17.0.10", "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", + "hadron-document": "^8.6.4", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", @@ -57273,7 +57273,7 @@ "mocha": "^10.2.0", "moment": "^2.29.4", "mongodb": "^6.9.0", - "mongodb-query-util": "^2.2.8", + "mongodb-query-util": "^2.2.9", "mongodb-schema": "^12.2.0", "numeral": "^1.5.6", "nyc": "^15.1.0", @@ -57313,13 +57313,13 @@ "@mongodb-js/compass-schema-validation": { "version": "file:packages/compass-schema-validation", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -57330,7 +57330,7 @@ "@types/enzyme": "^3.10.14", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", @@ -57341,7 +57341,7 @@ "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", @@ -57703,11 +57703,11 @@ "@mongodb-js/compass-serverstats": { "version": "file:packages/compass-serverstats", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57750,9 +57750,9 @@ "@mongodb-js/compass-settings": { "version": "file:packages/compass-settings", "requires": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -57766,7 +57766,7 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -57812,13 +57812,13 @@ "@mongodb-js/compass-shell": { "version": "file:packages/compass-shell", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57830,7 +57830,7 @@ "@types/enzyme": "^3.10.14", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "electron-mocha": "^12.2.0", @@ -57873,17 +57873,17 @@ "@mongodb-js/compass-sidebar": { "version": "file:packages/compass-sidebar", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.1", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-connections-navigation": "^1.42.2", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connection-import-export": "^0.40.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections-navigation": "^1.43.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57896,7 +57896,7 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -57904,8 +57904,8 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-data-service": "^22.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58203,29 +58203,29 @@ "@mongodb-js/compass-web": { "version": "file:packages/compass-web", "requires": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.2", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-databases-collections": "^1.42.2", - "@mongodb-js/compass-explain-plan": "^6.43.2", - "@mongodb-js/compass-export-to-language": "^9.19.2", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.1", - "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-aggregations": "^9.46.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-databases-collections": "^1.43.0", + "@mongodb-js/compass-explain-plan": "^6.44.0", + "@mongodb-js/compass-export-to-language": "^9.20.0", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-global-writes": "^1.3.0", + "@mongodb-js/compass-indexes": "^5.43.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/compass-schema": "^6.44.2", - "@mongodb-js/compass-schema-validation": "^6.43.2", - "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/compass-schema": "^6.45.0", + "@mongodb-js/compass-schema-validation": "^6.44.0", + "@mongodb-js/compass-sidebar": "^5.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.2", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-welcome": "^0.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -58244,7 +58244,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -58260,7 +58260,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", @@ -58436,11 +58436,11 @@ "@mongodb-js/compass-welcome": { "version": "file:packages/compass-welcome", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58452,7 +58452,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -58495,9 +58495,9 @@ "@mongodb-js/compass-workspaces": { "version": "file:packages/compass-workspaces", "requires": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -58512,15 +58512,15 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58637,9 +58637,9 @@ "@mongodb-js/connection-form": { "version": "file:packages/connection-form", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58661,7 +58661,7 @@ "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58713,7 +58713,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "nyc": "^15.1.0", "prettier": "^2.7.1", "sinon": "^17.0.1", @@ -58827,7 +58827,7 @@ "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58837,7 +58837,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "electron": "^30.5.1", "eslint": "^7.25.0", @@ -58879,11 +58879,11 @@ "@mongodb-js/databases-collections-list": { "version": "file:packages/databases-collections-list", "requires": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58895,7 +58895,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -59124,7 +59124,7 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-explain-compat": "^3.1.0", + "mongodb-explain-compat": "^3.1.1", "nyc": "^15.1.0", "prettier": "^2.7.1", "sinon": "^9.2.3", @@ -59516,7 +59516,7 @@ "@mongodb-js/my-queries-storage": { "version": "file:packages/my-queries-storage", "requires": { - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -67728,7 +67728,7 @@ "requires": { "@electron/rebuild": "^3.6.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -67741,7 +67741,7 @@ "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -67749,7 +67749,7 @@ "eslint": "^7.25.0", "fast-glob": "^3.2.7", "glob": "^10.2.5", - "hadron-build": "^25.5.11", + "hadron-build": "^25.5.12", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", @@ -74318,7 +74318,7 @@ "eslint": "^7.25.0", "eslint-config-mongodb-js": "^5.0.3", "eventemitter3": "^4.0.0", - "hadron-type-checker": "^7.2.2", + "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mocha": "^10.2.0", "moment": "^2.29.4", @@ -79311,7 +79311,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "xvfb-maybe": "^0.2.1" } @@ -79321,45 +79321,45 @@ "requires": { "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.2", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.1", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-databases-collections": "^1.42.2", - "@mongodb-js/compass-explain-plan": "^6.43.2", - "@mongodb-js/compass-export-to-language": "^9.19.2", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-find-in-page": "^4.31.0", - "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.1", - "@mongodb-js/compass-import-export": "^7.42.2", - "@mongodb-js/compass-indexes": "^5.42.2", - "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-aggregations": "^9.46.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connection-import-export": "^0.40.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-databases-collections": "^1.43.0", + "@mongodb-js/compass-explain-plan": "^6.44.0", + "@mongodb-js/compass-export-to-language": "^9.20.0", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-find-in-page": "^4.31.1", + "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-global-writes": "^1.3.0", + "@mongodb-js/compass-import-export": "^7.43.0", + "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", - "@mongodb-js/compass-schema": "^6.44.2", - "@mongodb-js/compass-schema-validation": "^6.43.2", - "@mongodb-js/compass-serverstats": "^16.42.2", - "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.2", - "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/compass-saved-aggregations-queries": "^1.44.0", + "@mongodb-js/compass-schema": "^6.45.0", + "@mongodb-js/compass-schema-validation": "^6.44.0", + "@mongodb-js/compass-serverstats": "^16.43.0", + "@mongodb-js/compass-settings": "^0.42.0", + "@mongodb-js/compass-shell": "^3.43.0", + "@mongodb-js/compass-sidebar": "^5.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.2", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-welcome": "^0.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -79372,7 +79372,7 @@ "chalk": "^4.1.2", "clean-stack": "^2.0.0", "clipboard": "^2.0.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -79383,7 +79383,7 @@ "ensure-error": "^3.0.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-build": "^25.5.11", + "hadron-build": "^25.5.12", "hadron-ipc": "^3.2.23", "kerberos": "^2.1.1", "keytar": "^7.9.0", @@ -79396,8 +79396,8 @@ "mongodb-client-encryption": "^6.1.0", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-data-service": "^22.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "os-dns-native": "^1.2.1", @@ -79768,8 +79768,8 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4" + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5" } }, "mongodb-download-url": { @@ -79803,9 +79803,9 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", - "mongodb-database-model": "^2.23.4" + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", + "mongodb-database-model": "^2.23.5" } }, "mongodb-js-cli": { diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json index fac68a5ab48..3701bd5bc3f 100644 --- a/packages/atlas-service/package.json +++ b/packages/atlas-service/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.29.0", + "version": "0.30.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,17 +73,17 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", "hadron-app-registry": "^9.2.7", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "electron": "^30.5.1", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", diff --git a/packages/bson-transpilers/package.json b/packages/bson-transpilers/package.json index a75b7cfd2e0..fa15e7af358 100644 --- a/packages/bson-transpilers/package.json +++ b/packages/bson-transpilers/package.json @@ -1,6 +1,6 @@ { "name": "bson-transpilers", - "version": "3.0.9", + "version": "3.0.10", "apiVersion": "0.0.1", "description": "Source to source compilers using ANTLR", "contributors": [ diff --git a/packages/collection-model/package.json b/packages/collection-model/package.json index cef931b6c19..9259ab64a57 100644 --- a/packages/collection-model/package.json +++ b/packages/collection-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-collection-model", "description": "MongoDB collection model", "author": "Lucas Hrabovsky ", - "version": "5.23.4", + "version": "5.23.5", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -31,7 +31,7 @@ "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2" }, "devDependencies": { diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json index 3efb2151d61..17d9407d867 100644 --- a/packages/compass-aggregations/package.json +++ b/packages/compass-aggregations/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-aggregations", "description": "Compass Aggregation Pipeline Builder", "private": true, - "version": "9.45.2", + "version": "9.46.0", "main": "dist/index.js", "compass:main": "src/index.ts", "types": "dist/index.d.ts", @@ -61,34 +61,34 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/explain-plan-helper": "^1.2.3", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-app-stores/package.json b/packages/compass-app-stores/package.json index 264955481ea..8b4d451005d 100644 --- a/packages/compass-app-stores/package.json +++ b/packages/compass-app-stores/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.29.1", + "version": "7.30.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,14 +73,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, diff --git a/packages/compass-collection/package.json b/packages/compass-collection/package.json index 7000307b358..11682f19eac 100644 --- a/packages/compass-collection/package.json +++ b/packages/compass-collection/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "4.42.2", + "version": "4.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,17 +48,17 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/mongodb-constants": "^0.10.2", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.4", + "mongodb-collection-model": "^5.23.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-components/package.json b/packages/compass-components/package.json index e5ae5c653a4..3c8cf00994d 100644 --- a/packages/compass-components/package.json +++ b/packages/compass-components/package.json @@ -1,6 +1,6 @@ { "name": "@mongodb-js/compass-components", - "version": "1.30.0", + "version": "1.30.1", "description": "React Components used in Compass", "license": "SSPL", "main": "lib/index.js", @@ -78,8 +78,8 @@ "@react-aria/visually-hidden": "^3.3.1", "bson": "^6.8.0", "focus-trap-react": "^9.0.2", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "is-electron-renderer": "^2.0.1", "lodash": "^4.17.21", "polished": "^4.2.2", diff --git a/packages/compass-connection-import-export/package.json b/packages/compass-connection-import-export/package.json index 65f9da8d486..c23a79911a1 100644 --- a/packages/compass-connection-import-export/package.json +++ b/packages/compass-connection-import-export/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.39.1", + "version": "0.40.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,10 +51,10 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/connection-storage": "^0.22.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/connection-storage": "^0.22.1", + "compass-preferences-model": "^2.29.1", "hadron-ipc": "^3.2.23", "react": "^17.0.2" }, diff --git a/packages/compass-connections-navigation/package.json b/packages/compass-connections-navigation/package.json index 419f4f67123..5cf3cfc9551 100644 --- a/packages/compass-connections-navigation/package.json +++ b/packages/compass-connections-navigation/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.42.2", + "version": "1.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,12 +49,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/compass-workspaces": "^0.24.2", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "compass-preferences-model": "^2.29.1", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", "react-virtualized-auto-sizer": "^1.0.6", diff --git a/packages/compass-connections/package.json b/packages/compass-connections/package.json index 78e8bb6fa88..69378eacccb 100644 --- a/packages/compass-connections/package.json +++ b/packages/compass-connections/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.1", + "version": "1.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,21 +51,21 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-storage": "^0.22.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index 891acd99c18..b0f2c66c909 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "13.43.2", + "version": "13.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -64,37 +64,37 @@ "enzyme": "^3.11.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", + "@mongodb-js/compass-query-bar": "^8.45.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/explain-plan-helper": "^1.2.3", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/explain-plan-helper": "^1.2.4", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", - "hadron-type-checker": "^7.2.2", + "hadron-document": "^8.6.4", + "hadron-type-checker": "^7.2.3", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index e95ccf2627f..64d88aeb47b 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "compass-e2e-tests", - "version": "1.27.2", + "version": "1.27.3", "private": true, "description": "E2E test suite for Compass app that follows smoke tests / feature testing matrix", "scripts": { @@ -35,7 +35,7 @@ "devDependencies": { "@electron/rebuild": "^3.6.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -48,7 +48,7 @@ "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -56,7 +56,7 @@ "eslint": "^7.25.0", "fast-glob": "^3.2.7", "glob": "^10.2.5", - "hadron-build": "^25.5.11", + "hadron-build": "^25.5.12", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", diff --git a/packages/compass-editor/package.json b/packages/compass-editor/package.json index f816fc0b00f..d1b625d932c 100644 --- a/packages/compass-editor/package.json +++ b/packages/compass-editor/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.31.0", + "version": "0.31.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,7 +72,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/mongodb-constants": "^0.10.0", "mongodb-query-parser": "^4.2.3", "polished": "^4.2.2", diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index fc7b6aa57c2..fd0de8eaeb4 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.43.2", + "version": "6.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,14 +69,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/explain-plan-helper": "^1.2.3", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/explain-plan-helper": "^1.2.4", + "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", diff --git a/packages/compass-export-to-language/package.json b/packages/compass-export-to-language/package.json index f9d7f4ef167..b1558329641 100644 --- a/packages/compass-export-to-language/package.json +++ b/packages/compass-export-to-language/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.19.2", + "version": "9.20.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,15 +48,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/shell-bson-parser": "^1.1.2", - "bson-transpilers": "^3.0.9", - "compass-preferences-model": "^2.29.0", + "bson-transpilers": "^3.0.10", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", diff --git a/packages/compass-field-store/package.json b/packages/compass-field-store/package.json index a092100b9b1..f95be2314d8 100644 --- a/packages/compass-field-store/package.json +++ b/packages/compass-field-store/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.18.1", + "version": "9.19.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,7 +69,7 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", diff --git a/packages/compass-find-in-page/package.json b/packages/compass-find-in-page/package.json index 4c9d5492618..3b7048979fc 100644 --- a/packages/compass-find-in-page/package.json +++ b/packages/compass-find-in-page/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "4.31.0", + "version": "4.31.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,7 +73,7 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", + "@mongodb-js/compass-components": "^1.30.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", diff --git a/packages/compass-generative-ai/package.json b/packages/compass-generative-ai/package.json index f9c1eb6369d..9a6e1b76684 100644 --- a/packages/compass-generative-ai/package.json +++ b/packages/compass-generative-ai/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.23.0", + "version": "0.24.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,12 +52,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-global-writes/package.json b/packages/compass-global-writes/package.json index cd3b029ccaa..3cf5482d334 100644 --- a/packages/compass-global-writes/package.json +++ b/packages/compass-global-writes/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.2.1", + "version": "1.3.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,15 +49,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-field-store": "^9.19.0", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index 34e9af523dc..8733e1a7d15 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.42.2", + "version": "7.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,23 +49,23 @@ }, "dependencies": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "electron": "^30.5.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", + "hadron-document": "^8.6.4", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index cbd7dbdd994..7b83ee05edf 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "5.42.2", + "version": "5.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -67,25 +67,25 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", "mongodb-query-parser": "^4.2.3", "mongodb-ns": "^2.4.2", "numeral": "^2.0.6", diff --git a/packages/compass-intercom/package.json b/packages/compass-intercom/package.json index 5a49d458980..36dbaf0e0fd 100644 --- a/packages/compass-intercom/package.json +++ b/packages/compass-intercom/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.13.0", + "version": "0.13.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -67,7 +67,7 @@ "typescript": "^5.0.4" }, "dependencies": { - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "@mongodb-js/compass-logging": "^1.4.8" } } diff --git a/packages/compass-maybe-protect-connection-string/package.json b/packages/compass-maybe-protect-connection-string/package.json index bad1af7bc7a..a0c0189b645 100644 --- a/packages/compass-maybe-protect-connection-string/package.json +++ b/packages/compass-maybe-protect-connection-string/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.27.0", + "version": "0.27.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,7 +50,7 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "mongodb-connection-string-url": "^3.0.1" }, "devDependencies": { diff --git a/packages/compass-preferences-model/package.json b/packages/compass-preferences-model/package.json index 06355027744..8ea4b3a069e 100644 --- a/packages/compass-preferences-model/package.json +++ b/packages/compass-preferences-model/package.json @@ -2,7 +2,7 @@ "name": "compass-preferences-model", "description": "Compass preferences model", "author": "Lucas Hrabovsky ", - "version": "2.29.0", + "version": "2.29.1", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index ce7fe45db5f..ed3187539cc 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "8.44.2", + "version": "8.45.0", "homepage": "https://github.com/mongodb-js/compass", "license": "SSPL", "bugs": { @@ -66,27 +66,27 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", - "mongodb-query-util": "^2.2.8", + "mongodb-query-util": "^2.2.9", "mongodb-schema": "^12.2.0", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-saved-aggregations-queries/package.json b/packages/compass-saved-aggregations-queries/package.json index 0cbb4f1c79c..6300177c2b4 100644 --- a/packages/compass-saved-aggregations-queries/package.json +++ b/packages/compass-saved-aggregations-queries/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.2", + "version": "1.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,17 +48,17 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/my-queries-storage": "^0.17.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "fuse.js": "^6.5.3", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index a73d0c4e132..2d31bd3c4c3 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.43.2", + "version": "6.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -62,24 +62,24 @@ "eslint": "^7.25.0", "hadron-ipc": "^3.2.23", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", diff --git a/packages/compass-schema/package.json b/packages/compass-schema/package.json index 869e2d071f4..10a195ff848 100644 --- a/packages/compass-schema/package.json +++ b/packages/compass-schema/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.2", + "version": "6.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,7 +50,7 @@ "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", @@ -72,26 +72,26 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-field-store": "^9.18.1", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-field-store": "^9.19.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/connection-storage": "^0.22.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.3", + "hadron-document": "^8.6.4", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", "lodash": "^4.17.21", "moment": "^2.29.4", "mongodb": "^6.9.0", - "mongodb-query-util": "^2.2.8", + "mongodb-query-util": "^2.2.9", "mongodb-schema": "^12.2.0", "numeral": "^1.5.6", "prop-types": "^15.7.2", diff --git a/packages/compass-serverstats/package.json b/packages/compass-serverstats/package.json index 77bb6e773ec..70c5b9612db 100644 --- a/packages/compass-serverstats/package.json +++ b/packages/compass-serverstats/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-serverstats", "description": "Compass Real Time", "private": true, - "version": "16.42.2", + "version": "16.43.0", "main": "dist/index.js", "compass:main": "src/index.ts", "exports": { @@ -30,11 +30,11 @@ }, "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", diff --git a/packages/compass-settings/package.json b/packages/compass-settings/package.json index 6b4db3a72c0..9196b3c7e26 100644 --- a/packages/compass-settings/package.json +++ b/packages/compass-settings/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.41.0", + "version": "0.42.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,11 +49,11 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-generative-ai": "^0.23.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-generative-ai": "^0.24.0", "@mongodb-js/compass-logging": "^1.4.8", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "react": "^17.0.2", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index 1fc08d7f244..7febd5158f9 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "3.42.2", + "version": "3.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,18 +49,18 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.24.2", + "@mongodb-js/compass-workspaces": "^0.25.0", "@mongosh/browser-repl": "^2.3.2", "@mongosh/logging": "^2.3.2", "@mongosh/node-runtime-worker-thread": "^2.3.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-sidebar/package.json b/packages/compass-sidebar/package.json index dc9bcc04f2e..b20c1f139dd 100644 --- a/packages/compass-sidebar/package.json +++ b/packages/compass-sidebar/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "5.43.2", + "version": "5.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,22 +48,22 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.1", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-connections-navigation": "^1.42.2", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connection-import-export": "^0.40.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections-navigation": "^1.43.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-form": "^1.41.1", - "@mongodb-js/connection-info": "^0.9.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-form": "^1.42.0", + "@mongodb-js/connection-info": "^0.9.1", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.4", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -87,7 +87,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "nyc": "^15.1.0", "prettier": "^2.7.1", "react-dom": "^17.0.2", diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index aea3b525f8f..653c68514bf 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.8.2", + "version": "0.9.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -62,29 +62,29 @@ "react-dom": "^17.0.2" }, "devDependencies": { - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.2", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-databases-collections": "^1.42.2", - "@mongodb-js/compass-explain-plan": "^6.43.2", - "@mongodb-js/compass-export-to-language": "^9.19.2", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.1", - "@mongodb-js/compass-indexes": "^5.42.2", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-aggregations": "^9.46.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-databases-collections": "^1.43.0", + "@mongodb-js/compass-explain-plan": "^6.44.0", + "@mongodb-js/compass-export-to-language": "^9.20.0", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-global-writes": "^1.3.0", + "@mongodb-js/compass-indexes": "^5.43.0", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/compass-schema": "^6.44.2", - "@mongodb-js/compass-schema-validation": "^6.43.2", - "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/compass-schema": "^6.45.0", + "@mongodb-js/compass-schema-validation": "^6.44.0", + "@mongodb-js/compass-sidebar": "^5.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.41.2", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-welcome": "^0.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -103,7 +103,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -119,7 +119,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", diff --git a/packages/compass-welcome/package.json b/packages/compass-welcome/package.json index e0c2ebfb3d6..b8156e1a639 100644 --- a/packages/compass-welcome/package.json +++ b/packages/compass-welcome/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.41.2", + "version": "0.42.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,12 +49,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "redux": "^4.2.1", diff --git a/packages/compass-workspaces/package.json b/packages/compass-workspaces/package.json index 3962fc0a795..37e25052451 100644 --- a/packages/compass-workspaces/package.json +++ b/packages/compass-workspaces/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.24.2", + "version": "0.25.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,16 +51,16 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass/package.json b/packages/compass/package.json index 276b3a202dd..d263a763509 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -190,45 +190,45 @@ "devDependencies": { "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.29.0", - "@mongodb-js/compass-aggregations": "^9.45.2", - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-collection": "^4.42.2", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connection-import-export": "^0.39.1", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-crud": "^13.43.2", - "@mongodb-js/compass-databases-collections": "^1.42.2", - "@mongodb-js/compass-explain-plan": "^6.43.2", - "@mongodb-js/compass-export-to-language": "^9.19.2", - "@mongodb-js/compass-field-store": "^9.18.1", - "@mongodb-js/compass-find-in-page": "^4.31.0", - "@mongodb-js/compass-generative-ai": "^0.23.0", - "@mongodb-js/compass-global-writes": "^1.2.1", - "@mongodb-js/compass-import-export": "^7.42.2", - "@mongodb-js/compass-indexes": "^5.42.2", - "@mongodb-js/compass-intercom": "^0.13.0", + "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/compass-aggregations": "^9.46.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connection-import-export": "^0.40.0", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-databases-collections": "^1.43.0", + "@mongodb-js/compass-explain-plan": "^6.44.0", + "@mongodb-js/compass-export-to-language": "^9.20.0", + "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-find-in-page": "^4.31.1", + "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-global-writes": "^1.3.0", + "@mongodb-js/compass-import-export": "^7.43.0", + "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.44.2", - "@mongodb-js/compass-saved-aggregations-queries": "^1.43.2", - "@mongodb-js/compass-schema": "^6.44.2", - "@mongodb-js/compass-schema-validation": "^6.43.2", - "@mongodb-js/compass-serverstats": "^16.42.2", - "@mongodb-js/compass-settings": "^0.41.0", - "@mongodb-js/compass-shell": "^3.42.2", - "@mongodb-js/compass-sidebar": "^5.43.2", + "@mongodb-js/compass-query-bar": "^8.45.0", + "@mongodb-js/compass-saved-aggregations-queries": "^1.44.0", + "@mongodb-js/compass-schema": "^6.45.0", + "@mongodb-js/compass-schema-validation": "^6.44.0", + "@mongodb-js/compass-serverstats": "^16.43.0", + "@mongodb-js/compass-settings": "^0.42.0", + "@mongodb-js/compass-shell": "^3.43.0", + "@mongodb-js/compass-sidebar": "^5.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.41.2", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", - "@mongodb-js/connection-storage": "^0.22.0", + "@mongodb-js/compass-welcome": "^0.42.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-storage": "^0.22.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.17.0", + "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -239,7 +239,7 @@ "chai": "^4.3.4", "chalk": "^4.1.2", "clean-stack": "^2.0.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -250,7 +250,7 @@ "ensure-error": "^3.0.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-build": "^25.5.11", + "hadron-build": "^25.5.12", "hadron-ipc": "^3.2.23", "local-links": "^1.4.0", "make-fetch-happen": "^10.2.1", @@ -259,8 +259,8 @@ "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-data-service": "^22.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2", diff --git a/packages/connection-form/package.json b/packages/connection-form/package.json index bd4de3a6629..24419599910 100644 --- a/packages/connection-form/package.json +++ b/packages/connection-form/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.41.1", + "version": "1.42.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,15 +48,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-editor": "^0.31.0", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-editor": "^0.31.1", + "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/shell-bson-parser": "^1.1.2", "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4", + "mongodb-data-service": "^22.23.5", "mongodb-query-parser": "^4.2.3", "react": "^17.0.2" }, diff --git a/packages/connection-info/package.json b/packages/connection-info/package.json index b69adf4c61d..39b25675061 100644 --- a/packages/connection-info/package.json +++ b/packages/connection-info/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.9.0", + "version": "0.9.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -54,7 +54,7 @@ "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.4" + "mongodb-data-service": "^22.23.5" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/connection-storage/package.json b/packages/connection-storage/package.json index e7493c0910c..3d5ef5bbfae 100644 --- a/packages/connection-storage/package.json +++ b/packages/connection-storage/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.22.0", + "version": "0.22.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -60,9 +60,9 @@ "@mongodb-js/compass-telemetry": "^1.2.0", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.0", + "@mongodb-js/connection-info": "^0.9.1", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.0", + "compass-preferences-model": "^2.29.1", "electron": "^30.5.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", diff --git a/packages/data-service/package.json b/packages/data-service/package.json index de5d4d4cdab..ef385ccaff5 100644 --- a/packages/data-service/package.json +++ b/packages/data-service/package.json @@ -7,7 +7,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "22.23.4", + "version": "22.23.5", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/database-model/package.json b/packages/database-model/package.json index 44fb1765897..1c9246f4a54 100644 --- a/packages/database-model/package.json +++ b/packages/database-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-database-model", "description": "MongoDB database model", "author": "Lucas Hrabovsky ", - "version": "2.23.4", + "version": "2.23.5", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -30,8 +30,8 @@ "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4" + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/databases-collections-list/package.json b/packages/databases-collections-list/package.json index d4f8db40e1e..4d37b6b4fa5 100644 --- a/packages/databases-collections-list/package.json +++ b/packages/databases-collections-list/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.40.2", + "version": "1.41.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,12 +48,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/connection-info": "^0.9.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/connection-info": "^0.9.1", + "compass-preferences-model": "^2.29.1", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, diff --git a/packages/databases-collections/package.json b/packages/databases-collections/package.json index 5d99c715e1e..fea6d1dd0e4 100644 --- a/packages/databases-collections/package.json +++ b/packages/databases-collections/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-databases-collections", "description": "Plugin for viewing the list of, creating, and dropping databases and collections", "private": true, - "version": "1.42.2", + "version": "1.43.0", "license": "SSPL", "homepage": "https://github.com/mongodb-js/compass", "bugs": { @@ -59,21 +59,21 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.29.1", - "@mongodb-js/compass-components": "^1.30.0", - "@mongodb-js/compass-connections": "^1.43.1", - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.24.2", - "@mongodb-js/databases-collections-list": "^1.40.2", - "@mongodb-js/my-queries-storage": "^0.17.0", - "compass-preferences-model": "^2.29.0", + "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/databases-collections-list": "^1.41.0", + "@mongodb-js/my-queries-storage": "^0.17.1", + "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.4", - "mongodb-database-model": "^2.23.4", - "mongodb-instance-model": "^12.24.4", + "mongodb-collection-model": "^5.23.5", + "mongodb-database-model": "^2.23.5", + "mongodb-instance-model": "^12.24.5", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "prop-types": "^15.7.2", diff --git a/packages/explain-plan-helper/package.json b/packages/explain-plan-helper/package.json index faaa213f2f5..b5924125d66 100644 --- a/packages/explain-plan-helper/package.json +++ b/packages/explain-plan-helper/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.2.3", + "version": "1.2.4", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,7 +50,7 @@ }, "dependencies": { "@mongodb-js/shell-bson-parser": "^1.1.2", - "mongodb-explain-compat": "^3.1.0" + "mongodb-explain-compat": "^3.1.1" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/hadron-build/package.json b/packages/hadron-build/package.json index ffe998a376a..3dfe55d92b3 100644 --- a/packages/hadron-build/package.json +++ b/packages/hadron-build/package.json @@ -1,7 +1,7 @@ { "name": "hadron-build", "description": "Tooling for Hadron apps like Compass", - "version": "25.5.11", + "version": "25.5.12", "scripts": { "check": "npm run lint && npm run depcheck", "test": "mocha -R spec", diff --git a/packages/hadron-document/package.json b/packages/hadron-document/package.json index 85411fdefd8..10d3f3c7f1e 100644 --- a/packages/hadron-document/package.json +++ b/packages/hadron-document/package.json @@ -7,7 +7,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "8.6.3", + "version": "8.6.4", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,7 +48,7 @@ "dependencies": { "bson": "^6.8.0", "eventemitter3": "^4.0.0", - "hadron-type-checker": "^7.2.2", + "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21" }, "devDependencies": { diff --git a/packages/hadron-type-checker/package.json b/packages/hadron-type-checker/package.json index a50b6d604da..754a19fd0ce 100644 --- a/packages/hadron-type-checker/package.json +++ b/packages/hadron-type-checker/package.json @@ -7,7 +7,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.2.2", + "version": "7.2.3", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/instance-model/package.json b/packages/instance-model/package.json index 74939c6c0cf..7a12da0e1b2 100644 --- a/packages/instance-model/package.json +++ b/packages/instance-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-instance-model", "description": "MongoDB instance model", "author": "Lucas Hrabovsky ", - "version": "12.24.4", + "version": "12.24.5", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -29,9 +29,9 @@ }, "dependencies": { "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.4", - "mongodb-data-service": "^22.23.4", - "mongodb-database-model": "^2.23.4" + "mongodb-collection-model": "^5.23.5", + "mongodb-data-service": "^22.23.5", + "mongodb-database-model": "^2.23.5" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/mongodb-explain-compat/package.json b/packages/mongodb-explain-compat/package.json index 81af5e97da6..48b3e17ca87 100644 --- a/packages/mongodb-explain-compat/package.json +++ b/packages/mongodb-explain-compat/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-explain-compat", - "version": "3.1.0", + "version": "3.1.1", "description": "Convert mongodb SBE explain output to 4.4 explain output", "keywords": [ "mongodb", diff --git a/packages/mongodb-query-util/package.json b/packages/mongodb-query-util/package.json index 1a5318449fc..e36bd1ad4c8 100644 --- a/packages/mongodb-query-util/package.json +++ b/packages/mongodb-query-util/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "2.2.8", + "version": "2.2.9", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/my-queries-storage/package.json b/packages/my-queries-storage/package.json index 94078c1be26..844dd4dd2fd 100644 --- a/packages/my-queries-storage/package.json +++ b/packages/my-queries-storage/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.17.0", + "version": "0.17.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,7 +73,7 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-editor": "^0.31.0", + "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-user-data": "^0.3.8", "bson": "^6.8.0", "hadron-app-registry": "^9.2.7", diff --git a/scripts/package.json b/scripts/package.json index df659ef27e6..8c8d995b67c 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.16.22", + "version": "0.16.23", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" From 082820739046f10b6cceb699492e9d15b06b45e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 08:39:36 +0000 Subject: [PATCH 09/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6359) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 0abc529530c..43d24c2f0c1 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 14, 2024 at 07:24 AM +Generated on Mon, Oct 14, 2024 at 08:39 AM ## Table of Contents From 968edaa6cc146118a08c2a354cafc5e8aff43bab Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Mon, 14 Oct 2024 13:17:32 +0100 Subject: [PATCH 10/71] chore(telemetry): add "Index Create Failed" to mirror Index Created COMPASS-8100 (#6360) * add Index Failed to mirror Index Created * name it Index Create Failed like in the ticket rather --- .../src/modules/regular-indexes.ts | 1 + .../src/modules/search-indexes.ts | 8 +++ .../compass-telemetry/src/telemetry-events.ts | 57 +++++++++++++++++++ 3 files changed, 66 insertions(+) diff --git a/packages/compass-indexes/src/modules/regular-indexes.ts b/packages/compass-indexes/src/modules/regular-indexes.ts index 74bac7cf48d..8efe1c0af90 100644 --- a/packages/compass-indexes/src/modules/regular-indexes.ts +++ b/packages/compass-indexes/src/modules/regular-indexes.ts @@ -582,6 +582,7 @@ export function createRegularIndex( await dispatch(refreshRegularIndexes()); } catch (err) { dispatch(indexCreationFailed(inProgressIndexId, (err as Error).message)); + track('Index Create Failed', trackEvent, connectionInfoRef.current); } }; } diff --git a/packages/compass-indexes/src/modules/search-indexes.ts b/packages/compass-indexes/src/modules/search-indexes.ts index bdc4acffd92..7925f05a05c 100644 --- a/packages/compass-indexes/src/modules/search-indexes.ts +++ b/packages/compass-indexes/src/modules/search-indexes.ts @@ -496,6 +496,14 @@ export const createIndex = ({ dispatch( createSearchIndexFailed(ATLAS_SEARCH_SERVER_ERRORS[error] || error) ); + track( + 'Index Create Failed', + { + atlas_search: true, + type, + }, + connectionInfoRef.current + ); return; } diff --git a/packages/compass-telemetry/src/telemetry-events.ts b/packages/compass-telemetry/src/telemetry-events.ts index 2975f205095..26dbd1394d6 100644 --- a/packages/compass-telemetry/src/telemetry-events.ts +++ b/packages/compass-telemetry/src/telemetry-events.ts @@ -1344,6 +1344,62 @@ type IndexCreatedEvent = ConnectionScoped<{ }; }>; +/** + * This event is fired when user creates an index and it fails. + * + * @category Indexes + */ +type IndexCreateFailedEvent = ConnectionScoped<{ + name: 'Index Create Failed'; + + payload: { + /** + * Indicates whether the index is unique. + */ + unique?: boolean; + + /** + * Specifies the time-to-live (TTL) setting for the index. + */ + ttl?: any; + + /** + * Indicates whether the index is a columnstore index. + */ + columnstore_index?: boolean; + + /** + * Indicates if the index has a columnstore projection. + */ + has_columnstore_projection?: any; + + /** + * Indicates if the index includes a wildcard projection. + */ + has_wildcard_projection?: any; + + /** + * Specifies if the index uses a custom collation. + */ + custom_collation?: any; + + /** + * Indicates whether the index is a geospatial index. + */ + geo?: boolean; + + /** + * Indicates whether the index is an Atlas Search index. + */ + atlas_search?: boolean; + + /** + * Specifies the type of the index. + */ + type?: string; + }; +}>; + /** * This event is fired when user updates an index. * @@ -2556,6 +2612,7 @@ export type TelemetryEvent = | ImportErrorLogOpenedEvent | ImportOpenedEvent | IndexCreatedEvent + | IndexCreateFailedEvent | IndexCreateOpenedEvent | IndexDroppedEvent | IndexEditedEvent From 1df46fd9018ac797448619b4d1e23a8a70a9f36f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 12:24:04 +0000 Subject: [PATCH 11/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6363) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- docs/tracking-plan.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 43d24c2f0c1..a095d165ebf 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 14, 2024 at 08:39 AM +Generated on Mon, Oct 14, 2024 at 12:23 PM ## Table of Contents @@ -113,6 +113,7 @@ Generated on Mon, Oct 14, 2024 at 08:39 AM ### Indexes - [Index Created](#event--IndexCreatedEvent) +- [Index Create Failed](#event--IndexCreateFailedEvent) - [Index Create Opened](#event--IndexCreateOpenedEvent) - [Index Dropped](#event--IndexDroppedEvent) - [Index Edited](#event--IndexEditedEvent) @@ -1462,6 +1463,35 @@ This event is fired when user creates an index. **Properties**: +- **unique** (optional): `boolean | undefined` + - Indicates whether the index is unique. +- **ttl** (optional): `any` + - Specifies the time-to-live (TTL) setting for the index. +- **columnstore_index** (optional): `boolean | undefined` + - Indicates whether the index is a columnstore index. +- **has_columnstore_projection** (optional): `any` + - Indicates if the index has a columnstore projection. +- **has_wildcard_projection** (optional): `any` + - Indicates if the index includes a wildcard projection. +- **custom_collation** (optional): `any` + - Specifies if the index uses a custom collation. +- **geo** (optional): `boolean | undefined` + - Indicates whether the index is a geospatial index. +- **atlas_search** (optional): `boolean | undefined` + - Indicates whether the index is an Atlas Search index. +- **type** (optional): `string | undefined` + - Specifies the type of the index. +- **connection_id** (optional): `string | undefined` + - The id of the connection associated to this event. + + + +### Index Create Failed + +This event is fired when user creates an index and it fails. + +**Properties**: + - **unique** (optional): `boolean | undefined` - Indicates whether the index is unique. - **ttl** (optional): `any` From 3b5c1d939a6433413d5e9d4d0c24753b2b281477 Mon Sep 17 00:00:00 2001 From: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> Date: Tue, 15 Oct 2024 01:04:38 -0400 Subject: [PATCH 12/71] chore(release): bump package versions (#6362) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- package-lock.json | 664 +++++++++--------- packages/atlas-service/package.json | 4 +- packages/compass-aggregations/package.json | 20 +- packages/compass-app-stores/package.json | 4 +- packages/compass-collection/package.json | 10 +- .../package.json | 6 +- .../package.json | 6 +- packages/compass-connections/package.json | 6 +- packages/compass-crud/package.json | 16 +- packages/compass-explain-plan/package.json | 8 +- .../compass-export-to-language/package.json | 8 +- packages/compass-field-store/package.json | 4 +- packages/compass-generative-ai/package.json | 4 +- packages/compass-global-writes/package.json | 12 +- packages/compass-import-export/package.json | 8 +- packages/compass-indexes/package.json | 16 +- packages/compass-query-bar/package.json | 16 +- .../package.json | 10 +- .../compass-schema-validation/package.json | 14 +- packages/compass-schema/package.json | 14 +- packages/compass-serverstats/package.json | 10 +- packages/compass-settings/package.json | 6 +- packages/compass-shell/package.json | 8 +- packages/compass-sidebar/package.json | 14 +- packages/compass-telemetry/package.json | 2 +- packages/compass-web/package.json | 44 +- packages/compass-welcome/package.json | 8 +- packages/compass-workspaces/package.json | 6 +- packages/compass/package.json | 54 +- packages/connection-storage/package.json | 4 +- .../databases-collections-list/package.json | 8 +- packages/databases-collections/package.json | 12 +- 32 files changed, 513 insertions(+), 513 deletions(-) diff --git a/package-lock.json b/package-lock.json index f9984ec25ea..71e5a8b4954 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43283,12 +43283,12 @@ }, "packages/atlas-service": { "name": "@mongodb-js/atlas-service", - "version": "0.30.0", + "version": "0.30.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-info": "^0.9.1", @@ -43424,39 +43424,39 @@ "devDependencies": { "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-aggregations": "^9.46.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-aggregations": "^9.46.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.0", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", - "@mongodb-js/compass-databases-collections": "^1.43.0", - "@mongodb-js/compass-explain-plan": "^6.44.0", - "@mongodb-js/compass-export-to-language": "^9.20.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connection-import-export": "^0.40.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", + "@mongodb-js/compass-databases-collections": "^1.43.1", + "@mongodb-js/compass-explain-plan": "^6.44.1", + "@mongodb-js/compass-export-to-language": "^9.20.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-find-in-page": "^4.31.1", - "@mongodb-js/compass-generative-ai": "^0.24.0", - "@mongodb-js/compass-global-writes": "^1.3.0", - "@mongodb-js/compass-import-export": "^7.43.0", - "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-generative-ai": "^0.24.1", + "@mongodb-js/compass-global-writes": "^1.3.1", + "@mongodb-js/compass-import-export": "^7.43.1", + "@mongodb-js/compass-indexes": "^5.43.1", "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.44.0", - "@mongodb-js/compass-schema": "^6.45.0", - "@mongodb-js/compass-schema-validation": "^6.44.0", - "@mongodb-js/compass-serverstats": "^16.43.0", - "@mongodb-js/compass-settings": "^0.42.0", - "@mongodb-js/compass-shell": "^3.43.0", - "@mongodb-js/compass-sidebar": "^5.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-saved-aggregations-queries": "^1.44.1", + "@mongodb-js/compass-schema": "^6.45.1", + "@mongodb-js/compass-schema-validation": "^6.44.1", + "@mongodb-js/compass-serverstats": "^16.43.1", + "@mongodb-js/compass-settings": "^0.42.1", + "@mongodb-js/compass-shell": "^3.43.1", + "@mongodb-js/compass-sidebar": "^5.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-welcome": "^0.42.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", @@ -43514,7 +43514,7 @@ }, "packages/compass-aggregations": { "name": "@mongodb-js/compass-aggregations", - "version": "9.46.0", + "version": "9.46.1", "license": "SSPL", "dependencies": { "@babel/generator": "^7.19.5", @@ -43523,19 +43523,19 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.1", @@ -43615,11 +43615,11 @@ }, "packages/compass-app-stores": { "name": "@mongodb-js/compass-app-stores", - "version": "7.30.0", + "version": "7.30.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/connection-info": "^0.9.1", "hadron-app-registry": "^9.2.7", @@ -43679,15 +43679,15 @@ }, "packages/compass-collection": { "name": "@mongodb-js/compass-collection", - "version": "4.43.0", + "version": "4.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/mongodb-constants": "^0.10.2", "compass-preferences-model": "^2.29.1", @@ -43865,12 +43865,12 @@ }, "packages/compass-connection-import-export": { "name": "@mongodb-js/compass-connection-import-export", - "version": "0.40.0", + "version": "0.40.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/connection-storage": "^0.22.2", "compass-preferences-model": "^2.29.1", "hadron-ipc": "^3.2.23", "react": "^17.0.2" @@ -43927,17 +43927,17 @@ }, "packages/compass-connections": { "name": "@mongodb-js/compass-connections", - "version": "1.44.0", + "version": "1.44.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/connection-storage": "^0.22.2", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", @@ -43976,12 +43976,12 @@ }, "packages/compass-connections-navigation": { "name": "@mongodb-js/compass-connections-navigation", - "version": "1.43.0", + "version": "1.43.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "compass-preferences-model": "^2.29.1", @@ -44071,19 +44071,19 @@ }, "packages/compass-crud": { "name": "@mongodb-js/compass-crud", - "version": "13.44.0", + "version": "13.44.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/reflux-state-mixin": "^1.0.7", @@ -44559,15 +44559,15 @@ }, "packages/compass-explain-plan": { "name": "@mongodb-js/compass-explain-plan", - "version": "6.44.0", + "version": "6.44.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/explain-plan-helper": "^1.2.4", "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", @@ -44638,15 +44638,15 @@ }, "packages/compass-export-to-language": { "name": "@mongodb-js/compass-export-to-language", - "version": "9.20.0", + "version": "9.20.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson-transpilers": "^3.0.10", "compass-preferences-model": "^2.29.1", @@ -44701,10 +44701,10 @@ }, "packages/compass-field-store": { "name": "@mongodb-js/compass-field-store", - "version": "9.19.0", + "version": "9.19.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", @@ -44830,10 +44830,10 @@ }, "packages/compass-generative-ai": { "name": "@mongodb-js/compass-generative-ai", - "version": "0.24.0", + "version": "0.24.1", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", @@ -44931,16 +44931,16 @@ }, "packages/compass-global-writes": { "name": "@mongodb-js/compass-global-writes", - "version": "1.3.0", + "version": "1.3.1", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-ns": "^2.4.2", @@ -45125,17 +45125,17 @@ }, "packages/compass-import-export": { "name": "@mongodb-js/compass-import-export", - "version": "7.43.0", + "version": "7.43.1", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", @@ -45219,19 +45219,19 @@ }, "packages/compass-indexes": { "name": "@mongodb-js/compass-indexes", - "version": "5.43.0", + "version": "5.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", @@ -45633,19 +45633,19 @@ }, "packages/compass-query-bar": { "name": "@mongodb-js/compass-query-bar", - "version": "8.45.0", + "version": "8.45.1", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.1", "bson": "^6.8.0", @@ -45711,15 +45711,15 @@ }, "packages/compass-saved-aggregations-queries": { "name": "@mongodb-js/compass-saved-aggregations-queries", - "version": "1.44.0", + "version": "1.44.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/my-queries-storage": "^0.17.1", @@ -45787,17 +45787,17 @@ }, "packages/compass-schema": { "name": "@mongodb-js/compass-schema", - "version": "6.45.0", + "version": "6.45.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", @@ -45846,18 +45846,18 @@ }, "packages/compass-schema-validation": { "name": "@mongodb-js/compass-schema-validation", - "version": "6.44.0", + "version": "6.44.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", @@ -45923,14 +45923,14 @@ }, "packages/compass-serverstats": { "name": "@mongodb-js/compass-serverstats", - "version": "16.43.0", + "version": "16.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", @@ -45972,12 +45972,12 @@ }, "packages/compass-settings": { "name": "@mongodb-js/compass-settings", - "version": "0.42.0", + "version": "0.42.1", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", @@ -46041,16 +46041,16 @@ }, "packages/compass-shell": { "name": "@mongodb-js/compass-shell", - "version": "3.43.0", + "version": "3.43.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongosh/browser-repl": "^2.3.2", "@mongosh/logging": "^2.3.2", "@mongosh/node-runtime-worker-thread": "^2.3.2", @@ -46111,18 +46111,18 @@ }, "packages/compass-sidebar": { "name": "@mongodb-js/compass-sidebar", - "version": "5.44.0", + "version": "5.44.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.0", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-connections-navigation": "^1.43.0", + "@mongodb-js/compass-connection-import-export": "^0.40.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-connections-navigation": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "compass-preferences-model": "^2.29.1", @@ -46191,7 +46191,7 @@ }, "packages/compass-telemetry": { "name": "@mongodb-js/compass-telemetry", - "version": "1.2.0", + "version": "1.2.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", @@ -46486,32 +46486,32 @@ }, "packages/compass-web": { "name": "@mongodb-js/compass-web", - "version": "0.9.0", + "version": "0.9.1", "license": "SSPL", "devDependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-aggregations": "^9.46.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-aggregations": "^9.46.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", - "@mongodb-js/compass-databases-collections": "^1.43.0", - "@mongodb-js/compass-explain-plan": "^6.44.0", - "@mongodb-js/compass-export-to-language": "^9.20.0", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", - "@mongodb-js/compass-global-writes": "^1.3.0", - "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", + "@mongodb-js/compass-databases-collections": "^1.43.1", + "@mongodb-js/compass-explain-plan": "^6.44.1", + "@mongodb-js/compass-export-to-language": "^9.20.1", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", + "@mongodb-js/compass-global-writes": "^1.3.1", + "@mongodb-js/compass-indexes": "^5.43.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-schema": "^6.45.0", - "@mongodb-js/compass-schema-validation": "^6.44.0", - "@mongodb-js/compass-sidebar": "^5.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-schema": "^6.45.1", + "@mongodb-js/compass-schema-validation": "^6.44.1", + "@mongodb-js/compass-sidebar": "^5.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-welcome": "^0.42.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -46751,14 +46751,14 @@ }, "packages/compass-welcome": { "name": "@mongodb-js/compass-welcome", - "version": "0.42.0", + "version": "0.42.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", @@ -46817,12 +46817,12 @@ }, "packages/compass-workspaces": { "name": "@mongodb-js/compass-workspaces", - "version": "0.25.0", + "version": "0.25.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", @@ -47420,11 +47420,11 @@ }, "packages/connection-storage": { "name": "@mongodb-js/connection-storage", - "version": "0.22.1", + "version": "0.22.2", "license": "SSPL", "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-info": "^0.9.1", @@ -47714,17 +47714,17 @@ }, "packages/databases-collections": { "name": "@mongodb-js/compass-databases-collections", - "version": "1.43.0", + "version": "1.43.1", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/databases-collections-list": "^1.41.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/databases-collections-list": "^1.41.1", "@mongodb-js/my-queries-storage": "^0.17.1", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", @@ -47761,13 +47761,13 @@ }, "packages/databases-collections-list": { "name": "@mongodb-js/databases-collections-list", - "version": "1.41.0", + "version": "1.41.1", "license": "SSPL", "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", "compass-preferences-model": "^2.29.1", "mongodb-ns": "^2.4.2", @@ -55549,7 +55549,7 @@ "requires": { "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-info": "^0.9.1", @@ -55614,19 +55614,19 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -55701,7 +55701,7 @@ "version": "file:packages/compass-app-stores", "requires": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -55755,12 +55755,12 @@ "@mongodb-js/compass-collection": { "version": "file:packages/compass-collection", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -55926,8 +55926,8 @@ "version": "file:packages/compass-connection-import-export", "requires": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55983,11 +55983,11 @@ "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56050,8 +56050,8 @@ "version": "file:packages/compass-connections-navigation", "requires": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -56110,17 +56110,17 @@ "@mongodb-js/compass-crud": { "version": "file:packages/compass-crud", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56174,14 +56174,14 @@ "@mongodb-js/compass-databases-collections": { "version": "file:packages/databases-collections", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/databases-collections-list": "^1.41.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/databases-collections-list": "^1.41.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/my-queries-storage": "^0.17.1", @@ -56298,12 +56298,12 @@ "@mongodb-js/compass-explain-plan": { "version": "file:packages/compass-explain-plan", "requires": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56368,12 +56368,12 @@ "@mongodb-js/compass-export-to-language": { "version": "file:packages/compass-export-to-language", "requires": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56424,7 +56424,7 @@ "@mongodb-js/compass-field-store": { "version": "file:packages/compass-field-store", "requires": { - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -56537,7 +56537,7 @@ "@mongodb-js/compass-generative-ai": { "version": "file:packages/compass-generative-ai", "requires": { - "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", @@ -56617,13 +56617,13 @@ "@mongodb-js/compass-global-writes": { "version": "file:packages/compass-global-writes", "requires": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56736,13 +56736,13 @@ "requires": { "@electron/remote": "^2.1.2", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56819,16 +56819,16 @@ "@mongodb-js/compass-indexes": { "version": "file:packages/compass-indexes", "requires": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -57098,16 +57098,16 @@ "@mongodb-js/compass-query-bar": { "version": "file:packages/compass-query-bar", "requires": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -57167,12 +57167,12 @@ "@mongodb-js/compass-saved-aggregations-queries": { "version": "file:packages/compass-saved-aggregations-queries", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -57236,14 +57236,14 @@ "@mongodb-js/compass-schema": { "version": "file:packages/compass-schema", "requires": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/my-queries-storage": "^0.17.1", @@ -57313,15 +57313,15 @@ "@mongodb-js/compass-schema-validation": { "version": "file:packages/compass-schema-validation", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57703,11 +57703,11 @@ "@mongodb-js/compass-serverstats": { "version": "file:packages/compass-serverstats", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57750,9 +57750,9 @@ "@mongodb-js/compass-settings": { "version": "file:packages/compass-settings", "requires": { - "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -57813,12 +57813,12 @@ "version": "file:packages/compass-shell", "requires": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57873,15 +57873,15 @@ "@mongodb-js/compass-sidebar": { "version": "file:packages/compass-sidebar", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.0", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-connections-navigation": "^1.43.0", + "@mongodb-js/compass-connection-import-export": "^0.40.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-connections-navigation": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -58203,29 +58203,29 @@ "@mongodb-js/compass-web": { "version": "file:packages/compass-web", "requires": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-aggregations": "^9.46.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-aggregations": "^9.46.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", - "@mongodb-js/compass-databases-collections": "^1.43.0", - "@mongodb-js/compass-explain-plan": "^6.44.0", - "@mongodb-js/compass-export-to-language": "^9.20.0", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", - "@mongodb-js/compass-global-writes": "^1.3.0", - "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", + "@mongodb-js/compass-databases-collections": "^1.43.1", + "@mongodb-js/compass-explain-plan": "^6.44.1", + "@mongodb-js/compass-export-to-language": "^9.20.1", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", + "@mongodb-js/compass-global-writes": "^1.3.1", + "@mongodb-js/compass-indexes": "^5.43.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-schema": "^6.45.0", - "@mongodb-js/compass-schema-validation": "^6.44.0", - "@mongodb-js/compass-sidebar": "^5.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-schema": "^6.45.1", + "@mongodb-js/compass-schema-validation": "^6.44.1", + "@mongodb-js/compass-sidebar": "^5.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-welcome": "^0.42.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -58437,10 +58437,10 @@ "version": "file:packages/compass-welcome", "requires": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58495,9 +58495,9 @@ "@mongodb-js/compass-workspaces": { "version": "file:packages/compass-workspaces", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -58824,7 +58824,7 @@ "version": "file:packages/connection-storage", "requires": { "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-info": "^0.9.1", @@ -58880,9 +58880,9 @@ "version": "file:packages/databases-collections-list", "requires": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -79321,39 +79321,39 @@ "requires": { "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-aggregations": "^9.46.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-aggregations": "^9.46.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.0", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", - "@mongodb-js/compass-databases-collections": "^1.43.0", - "@mongodb-js/compass-explain-plan": "^6.44.0", - "@mongodb-js/compass-export-to-language": "^9.20.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connection-import-export": "^0.40.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", + "@mongodb-js/compass-databases-collections": "^1.43.1", + "@mongodb-js/compass-explain-plan": "^6.44.1", + "@mongodb-js/compass-export-to-language": "^9.20.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-find-in-page": "^4.31.1", - "@mongodb-js/compass-generative-ai": "^0.24.0", - "@mongodb-js/compass-global-writes": "^1.3.0", - "@mongodb-js/compass-import-export": "^7.43.0", - "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-generative-ai": "^0.24.1", + "@mongodb-js/compass-global-writes": "^1.3.1", + "@mongodb-js/compass-import-export": "^7.43.1", + "@mongodb-js/compass-indexes": "^5.43.1", "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.44.0", - "@mongodb-js/compass-schema": "^6.45.0", - "@mongodb-js/compass-schema-validation": "^6.44.0", - "@mongodb-js/compass-serverstats": "^16.43.0", - "@mongodb-js/compass-settings": "^0.42.0", - "@mongodb-js/compass-shell": "^3.43.0", - "@mongodb-js/compass-sidebar": "^5.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-saved-aggregations-queries": "^1.44.1", + "@mongodb-js/compass-schema": "^6.45.1", + "@mongodb-js/compass-schema-validation": "^6.44.1", + "@mongodb-js/compass-serverstats": "^16.43.1", + "@mongodb-js/compass-settings": "^0.42.1", + "@mongodb-js/compass-shell": "^3.43.1", + "@mongodb-js/compass-sidebar": "^5.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-welcome": "^0.42.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json index 3701bd5bc3f..20f8d744d4f 100644 --- a/packages/atlas-service/package.json +++ b/packages/atlas-service/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.30.0", + "version": "0.30.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -75,7 +75,7 @@ "dependencies": { "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-info": "^0.9.1", diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json index 17d9407d867..03a9742d458 100644 --- a/packages/compass-aggregations/package.json +++ b/packages/compass-aggregations/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-aggregations", "description": "Compass Aggregation Pipeline Builder", "private": true, - "version": "9.46.0", + "version": "9.46.1", "main": "dist/index.js", "compass:main": "src/index.ts", "types": "dist/index.d.ts", @@ -61,19 +61,19 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.1", diff --git a/packages/compass-app-stores/package.json b/packages/compass-app-stores/package.json index 8b4d451005d..fce0925d8a4 100644 --- a/packages/compass-app-stores/package.json +++ b/packages/compass-app-stores/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.30.0", + "version": "7.30.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -74,7 +74,7 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/connection-info": "^0.9.1", "hadron-app-registry": "^9.2.7", diff --git a/packages/compass-collection/package.json b/packages/compass-collection/package.json index 11682f19eac..649fe0ee207 100644 --- a/packages/compass-collection/package.json +++ b/packages/compass-collection/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "4.43.0", + "version": "4.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,12 +48,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/mongodb-constants": "^0.10.2", "compass-preferences-model": "^2.29.1", diff --git a/packages/compass-connection-import-export/package.json b/packages/compass-connection-import-export/package.json index c23a79911a1..eb904adbc82 100644 --- a/packages/compass-connection-import-export/package.json +++ b/packages/compass-connection-import-export/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.40.0", + "version": "0.40.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,8 +52,8 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/connection-storage": "^0.22.2", "compass-preferences-model": "^2.29.1", "hadron-ipc": "^3.2.23", "react": "^17.0.2" diff --git a/packages/compass-connections-navigation/package.json b/packages/compass-connections-navigation/package.json index 5cf3cfc9551..58f297defda 100644 --- a/packages/compass-connections-navigation/package.json +++ b/packages/compass-connections-navigation/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.0", + "version": "1.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,11 +49,11 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "compass-preferences-model": "^2.29.1", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", diff --git a/packages/compass-connections/package.json b/packages/compass-connections/package.json index 69378eacccb..5aabc134e45 100644 --- a/packages/compass-connections/package.json +++ b/packages/compass-connections/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.44.0", + "version": "1.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -54,11 +54,11 @@ "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/connection-storage": "^0.22.2", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index b0f2c66c909..f2a6da20246 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "13.44.0", + "version": "13.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -71,16 +71,16 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/my-queries-storage": "^0.17.1", "@mongodb-js/reflux-state-mixin": "^1.0.7", diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index fd0de8eaeb4..4e3bdab811f 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.0", + "version": "6.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,12 +69,12 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/explain-plan-helper": "^1.2.4", "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", diff --git a/packages/compass-export-to-language/package.json b/packages/compass-export-to-language/package.json index b1558329641..72aa88fa2a1 100644 --- a/packages/compass-export-to-language/package.json +++ b/packages/compass-export-to-language/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.20.0", + "version": "9.20.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,12 +48,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson-transpilers": "^3.0.10", "compass-preferences-model": "^2.29.1", diff --git a/packages/compass-field-store/package.json b/packages/compass-field-store/package.json index f95be2314d8..7636a8de604 100644 --- a/packages/compass-field-store/package.json +++ b/packages/compass-field-store/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.19.0", + "version": "9.19.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,7 +69,7 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", diff --git a/packages/compass-generative-ai/package.json b/packages/compass-generative-ai/package.json index 9a6e1b76684..399443a91f1 100644 --- a/packages/compass-generative-ai/package.json +++ b/packages/compass-generative-ai/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.24.0", + "version": "0.24.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,7 +52,7 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-components": "^1.30.1", "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", diff --git a/packages/compass-global-writes/package.json b/packages/compass-global-writes/package.json index 3cf5482d334..095d2779729 100644 --- a/packages/compass-global-writes/package.json +++ b/packages/compass-global-writes/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.3.0", + "version": "1.3.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,15 +49,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index 8733e1a7d15..55b47ad71c6 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.43.0", + "version": "7.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,12 +50,12 @@ "dependencies": { "@electron/remote": "^2.1.2", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index 7b83ee05edf..327da071c05 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "5.43.0", + "version": "5.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -67,16 +67,16 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index ed3187539cc..e52a2fe2090 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "8.45.0", + "version": "8.45.1", "homepage": "https://github.com/mongodb-js/compass", "license": "SSPL", "bugs": { @@ -66,16 +66,16 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/my-queries-storage": "^0.17.1", "bson": "^6.8.0", diff --git a/packages/compass-saved-aggregations-queries/package.json b/packages/compass-saved-aggregations-queries/package.json index 6300177c2b4..22d100e43ff 100644 --- a/packages/compass-saved-aggregations-queries/package.json +++ b/packages/compass-saved-aggregations-queries/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.44.0", + "version": "1.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,12 +48,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/my-queries-storage": "^0.17.1", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index 2d31bd3c4c3..a0f173e7261 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.0", + "version": "6.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,15 +69,15 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", diff --git a/packages/compass-schema/package.json b/packages/compass-schema/package.json index 10a195ff848..a281c598e72 100644 --- a/packages/compass-schema/package.json +++ b/packages/compass-schema/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.45.0", + "version": "6.45.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,14 +72,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/connection-storage": "^0.22.2", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "d3": "^3.5.17", diff --git a/packages/compass-serverstats/package.json b/packages/compass-serverstats/package.json index 70c5b9612db..c4337766518 100644 --- a/packages/compass-serverstats/package.json +++ b/packages/compass-serverstats/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-serverstats", "description": "Compass Real Time", "private": true, - "version": "16.43.0", + "version": "16.43.1", "main": "dist/index.js", "compass:main": "src/index.ts", "exports": { @@ -30,11 +30,11 @@ }, "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", diff --git a/packages/compass-settings/package.json b/packages/compass-settings/package.json index 9196b3c7e26..b7f95afe1e1 100644 --- a/packages/compass-settings/package.json +++ b/packages/compass-settings/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.42.0", + "version": "0.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,9 +49,9 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.0", + "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-generative-ai": "^0.24.0", + "@mongodb-js/compass-generative-ai": "^0.24.1", "@mongodb-js/compass-logging": "^1.4.8", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index 7febd5158f9..99130d40b6d 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "3.43.0", + "version": "3.43.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,12 +50,12 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongosh/browser-repl": "^2.3.2", "@mongosh/logging": "^2.3.2", "@mongosh/node-runtime-worker-thread": "^2.3.2", diff --git a/packages/compass-sidebar/package.json b/packages/compass-sidebar/package.json index b20c1f139dd..4518a09bd8e 100644 --- a/packages/compass-sidebar/package.json +++ b/packages/compass-sidebar/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "5.44.0", + "version": "5.44.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,15 +48,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.0", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-connections-navigation": "^1.43.0", + "@mongodb-js/compass-connection-import-export": "^0.40.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-connections-navigation": "^1.43.1", "@mongodb-js/compass-logging": "^1.4.8", "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-form": "^1.42.0", "@mongodb-js/connection-info": "^0.9.1", "compass-preferences-model": "^2.29.1", diff --git a/packages/compass-telemetry/package.json b/packages/compass-telemetry/package.json index d4fc547aa85..64d257971d2 100644 --- a/packages/compass-telemetry/package.json +++ b/packages/compass-telemetry/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.2.0", + "version": "1.2.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 653c68514bf..9d5f81f1310 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.9.0", + "version": "0.9.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -62,29 +62,29 @@ "react-dom": "^17.0.2" }, "devDependencies": { - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-aggregations": "^9.46.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-aggregations": "^9.46.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", - "@mongodb-js/compass-databases-collections": "^1.43.0", - "@mongodb-js/compass-explain-plan": "^6.44.0", - "@mongodb-js/compass-export-to-language": "^9.20.0", - "@mongodb-js/compass-field-store": "^9.19.0", - "@mongodb-js/compass-generative-ai": "^0.24.0", - "@mongodb-js/compass-global-writes": "^1.3.0", - "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", + "@mongodb-js/compass-databases-collections": "^1.43.1", + "@mongodb-js/compass-explain-plan": "^6.44.1", + "@mongodb-js/compass-export-to-language": "^9.20.1", + "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-generative-ai": "^0.24.1", + "@mongodb-js/compass-global-writes": "^1.3.1", + "@mongodb-js/compass-indexes": "^5.43.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-schema": "^6.45.0", - "@mongodb-js/compass-schema-validation": "^6.44.0", - "@mongodb-js/compass-sidebar": "^5.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-welcome": "^0.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-schema": "^6.45.1", + "@mongodb-js/compass-schema-validation": "^6.44.1", + "@mongodb-js/compass-sidebar": "^5.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-welcome": "^0.42.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", diff --git a/packages/compass-welcome/package.json b/packages/compass-welcome/package.json index b8156e1a639..05092dd3e38 100644 --- a/packages/compass-welcome/package.json +++ b/packages/compass-welcome/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.42.0", + "version": "0.42.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,10 +50,10 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", diff --git a/packages/compass-workspaces/package.json b/packages/compass-workspaces/package.json index 37e25052451..fd699ee2154 100644 --- a/packages/compass-workspaces/package.json +++ b/packages/compass-workspaces/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.25.0", + "version": "0.25.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,9 +51,9 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-logging": "^1.4.8", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", diff --git a/packages/compass/package.json b/packages/compass/package.json index d263a763509..4b35721ffd2 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -190,39 +190,39 @@ "devDependencies": { "@electron/rebuild": "^3.6.2", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.30.0", - "@mongodb-js/compass-aggregations": "^9.46.0", - "@mongodb-js/compass-app-stores": "^7.30.0", - "@mongodb-js/compass-collection": "^4.43.0", + "@mongodb-js/atlas-service": "^0.30.1", + "@mongodb-js/compass-aggregations": "^9.46.1", + "@mongodb-js/compass-app-stores": "^7.30.1", + "@mongodb-js/compass-collection": "^4.43.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.0", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-crud": "^13.44.0", - "@mongodb-js/compass-databases-collections": "^1.43.0", - "@mongodb-js/compass-explain-plan": "^6.44.0", - "@mongodb-js/compass-export-to-language": "^9.20.0", - "@mongodb-js/compass-field-store": "^9.19.0", + "@mongodb-js/compass-connection-import-export": "^0.40.1", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-crud": "^13.44.1", + "@mongodb-js/compass-databases-collections": "^1.43.1", + "@mongodb-js/compass-explain-plan": "^6.44.1", + "@mongodb-js/compass-export-to-language": "^9.20.1", + "@mongodb-js/compass-field-store": "^9.19.1", "@mongodb-js/compass-find-in-page": "^4.31.1", - "@mongodb-js/compass-generative-ai": "^0.24.0", - "@mongodb-js/compass-global-writes": "^1.3.0", - "@mongodb-js/compass-import-export": "^7.43.0", - "@mongodb-js/compass-indexes": "^5.43.0", + "@mongodb-js/compass-generative-ai": "^0.24.1", + "@mongodb-js/compass-global-writes": "^1.3.1", + "@mongodb-js/compass-import-export": "^7.43.1", + "@mongodb-js/compass-indexes": "^5.43.1", "@mongodb-js/compass-intercom": "^0.13.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.0", - "@mongodb-js/compass-saved-aggregations-queries": "^1.44.0", - "@mongodb-js/compass-schema": "^6.45.0", - "@mongodb-js/compass-schema-validation": "^6.44.0", - "@mongodb-js/compass-serverstats": "^16.43.0", - "@mongodb-js/compass-settings": "^0.42.0", - "@mongodb-js/compass-shell": "^3.43.0", - "@mongodb-js/compass-sidebar": "^5.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-query-bar": "^8.45.1", + "@mongodb-js/compass-saved-aggregations-queries": "^1.44.1", + "@mongodb-js/compass-schema": "^6.45.1", + "@mongodb-js/compass-schema-validation": "^6.44.1", + "@mongodb-js/compass-serverstats": "^16.43.1", + "@mongodb-js/compass-settings": "^0.42.1", + "@mongodb-js/compass-shell": "^3.43.1", + "@mongodb-js/compass-sidebar": "^5.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.42.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-welcome": "^0.42.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.1", + "@mongodb-js/connection-storage": "^0.22.2", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", diff --git a/packages/connection-storage/package.json b/packages/connection-storage/package.json index 3d5ef5bbfae..3704ee14fa6 100644 --- a/packages/connection-storage/package.json +++ b/packages/connection-storage/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.22.1", + "version": "0.22.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -57,7 +57,7 @@ }, "dependencies": { "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", + "@mongodb-js/compass-telemetry": "^1.2.1", "@mongodb-js/compass-user-data": "^0.3.8", "@mongodb-js/compass-utils": "^0.6.12", "@mongodb-js/connection-info": "^0.9.1", diff --git a/packages/databases-collections-list/package.json b/packages/databases-collections-list/package.json index 4d37b6b4fa5..ed5db53fc56 100644 --- a/packages/databases-collections-list/package.json +++ b/packages/databases-collections-list/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.41.0", + "version": "1.41.1", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,9 +49,9 @@ }, "dependencies": { "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", + "@mongodb-js/compass-connections": "^1.44.1", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", "@mongodb-js/connection-info": "^0.9.1", "compass-preferences-model": "^2.29.1", "mongodb-ns": "^2.4.2", diff --git a/packages/databases-collections/package.json b/packages/databases-collections/package.json index fea6d1dd0e4..58e85347e24 100644 --- a/packages/databases-collections/package.json +++ b/packages/databases-collections/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-databases-collections", "description": "Plugin for viewing the list of, creating, and dropping databases and collections", "private": true, - "version": "1.43.0", + "version": "1.43.1", "license": "SSPL", "homepage": "https://github.com/mongodb-js/compass", "bugs": { @@ -59,14 +59,14 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.0", + "@mongodb-js/compass-app-stores": "^7.30.1", "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.0", + "@mongodb-js/compass-connections": "^1.44.1", "@mongodb-js/compass-editor": "^0.31.1", "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.0", - "@mongodb-js/compass-workspaces": "^0.25.0", - "@mongodb-js/databases-collections-list": "^1.41.0", + "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/databases-collections-list": "^1.41.1", "@mongodb-js/my-queries-storage": "^0.17.1", "compass-preferences-model": "^2.29.1", "hadron-app-registry": "^9.2.7", From 3695d9529cdfe2f64e55dbe0d17ad653c42866a8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 05:11:30 +0000 Subject: [PATCH 13/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6365) Update report Co-authored-by: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index de015cec17d..88497bba185 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Mon Oct 14 2024. +This document was automatically generated on Tue Oct 15 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index a095d165ebf..746b79ea0e5 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 14, 2024 at 12:23 PM +Generated on Tue, Oct 15, 2024 at 05:11 AM ## Table of Contents From eaa93afedfed86ac12b09b6225ea4ffc2fff8c4a Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Tue, 15 Oct 2024 14:14:48 +0100 Subject: [PATCH 14/71] fix(aggregations): show the search warning in all three places COMPASS-7317 (#6364) * show the search warning in all three places * No preview documents rather than No results found for consistency * set content, don't early return * tests * make it clear that this is for search-related stages only * test them all * and inverse test --- .../focus-mode-stage-preview.spec.tsx | 30 ++++++++++++ .../focus-mode/focus-mode-stage-preview.tsx | 4 ++ .../pipeline-preview.spec.tsx | 13 +++++ .../pipeline-preview.tsx | 4 ++ .../src/components/search-no-results.tsx | 48 +++++++++++++++++++ .../components/stage-preview/index.spec.tsx | 2 +- .../src/components/stage-preview/index.tsx | 42 ++++------------ .../compass-aggregations/src/utils/stage.ts | 15 ++++++ 8 files changed, 124 insertions(+), 34 deletions(-) create mode 100644 packages/compass-aggregations/src/components/search-no-results.tsx diff --git a/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.spec.tsx b/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.spec.tsx index 4b8de9984b0..3e34249c211 100644 --- a/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.spec.tsx +++ b/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.spec.tsx @@ -86,6 +86,36 @@ describe('FocusModeStagePreview', function () { const preview = screen.getByTestId('focus-mode-stage-preview'); expect(within(preview).getByText(/no preview documents/i)).to.exist; }); + for (const stageOperator of ['$search', '$searchMeta', '$vectorSearch']) { + it(`renders missing search index text for ${stageOperator}`, async function () { + await renderFocusModePreview({ + stageOperator, + documents: [], + }); + expect(screen.getByText('No preview documents')).to.exist; + expect( + screen.getByText( + 'This may be because your search has no results or your search index does not exist.' + ) + ).to.exist; + }); + + it(`does not render missing search index text for ${stageOperator} and documents.length > 0`, async function () { + await renderFocusModePreview({ + stageOperator, + documents: [ + new HadronDocument({ _id: 12345 }), + new HadronDocument({ _id: 54321 }), + ], + }); + expect(screen.queryByText('No preview documents')).to.not.exist; + expect( + screen.queryByText( + 'This may be because your search has no results or your search index does not exist.' + ) + ).to.not.exist; + }); + } it('renders $out stage preview', async function () { await renderFocusModePreview( { diff --git a/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.tsx b/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.tsx index 5e8839295db..1a0f1487e93 100644 --- a/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.tsx +++ b/packages/compass-aggregations/src/components/focus-mode/focus-mode-stage-preview.tsx @@ -16,6 +16,7 @@ import OutputStagePreview from '../stage-preview/output-stage-preview'; import { AtlasStagePreview } from '../stage-preview/atlas-stage-preview'; import { isAtlasOnlyStage, + isSearchStage, isMissingAtlasStageSupport, isOutputStage, } from '../../utils/stage'; @@ -24,6 +25,7 @@ import { expandPreviewDocsForStage, } from '../../modules/pipeline-builder/stage-editor'; import type { StoreStage } from '../../modules/pipeline-builder/stage-editor'; +import SearchNoResults from '../search-no-results'; const containerStyles = css({ display: 'flex', @@ -149,6 +151,8 @@ export const FocusModePreview = ({ className={documentListStyles} /> ); + } else if (isSearchStage(stageOperator)) { + content = ; } else { content = (
diff --git a/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.spec.tsx b/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.spec.tsx index 23cfa7706d6..11294b6f45d 100644 --- a/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.spec.tsx +++ b/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.spec.tsx @@ -55,6 +55,19 @@ describe('PipelinePreview', function () { expect(screen.getByText(/No preview documents/)).to.exist; }); + it('renders missing search index text for $search', async function () { + await renderPipelineEditor({ + atlasOperator: '$search', + previewDocs: [], + }); + expect(screen.getByText('No preview documents')).to.exist; + expect( + screen.getByText( + 'This may be because your search has no results or your search index does not exist.' + ) + ).to.exist; + }); + it('renders document list', async function () { await renderPipelineEditor({ previewDocs: [{ _id: 1 }, { _id: 2 }].map( diff --git a/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.tsx b/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.tsx index 8a0e5601ff0..671b1e1357b 100644 --- a/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.tsx +++ b/packages/compass-aggregations/src/components/pipeline-builder-workspace/pipeline-as-text-workspace/pipeline-preview.tsx @@ -25,6 +25,7 @@ import { expandPreviewDocs, collapsePreviewDocs, } from '../../../modules/pipeline-builder/text-editor-pipeline'; +import SearchNoResults from '../../search-no-results'; const containerStyles = css({ display: 'flex', @@ -126,6 +127,9 @@ const PreviewResults = ({ } if (previewDocs.length === 0) { + if (atlasOperator) { + return ; + } return (
diff --git a/packages/compass-aggregations/src/components/search-no-results.tsx b/packages/compass-aggregations/src/components/search-no-results.tsx new file mode 100644 index 00000000000..58c327ee7e5 --- /dev/null +++ b/packages/compass-aggregations/src/components/search-no-results.tsx @@ -0,0 +1,48 @@ +import React from 'react'; + +import { + css, + palette, + spacing, + Body, + useDarkMode, + Subtitle, +} from '@mongodb-js/compass-components'; + +const centeredContent = css({ + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + height: '100%', + padding: spacing[3], + flexDirection: 'column', + textAlign: 'center', +}); + +const missingAtlasIndexLightStyles = css({ + color: palette.green.dark2, +}); + +const missingAtlasIndexDarkStyles = css({ + color: palette.green.base, +}); + +export default function SearchNoResults() { + const darkMode = useDarkMode(); + + return ( +
+ + No preview documents + + + This may be because your search has no results or your search index does + not exist. + +
+ ); +} diff --git a/packages/compass-aggregations/src/components/stage-preview/index.spec.tsx b/packages/compass-aggregations/src/components/stage-preview/index.spec.tsx index 80a6e3f9c66..b1beedab6d0 100644 --- a/packages/compass-aggregations/src/components/stage-preview/index.spec.tsx +++ b/packages/compass-aggregations/src/components/stage-preview/index.spec.tsx @@ -106,7 +106,7 @@ describe('StagePreview', function () { stageOperator: '$search', documents: [], }); - expect(screen.getByText('No results found')).to.exist; + expect(screen.getByText('No preview documents')).to.exist; expect( screen.getByText( 'This may be because your search has no results or your search index does not exist.' diff --git a/packages/compass-aggregations/src/components/stage-preview/index.tsx b/packages/compass-aggregations/src/components/stage-preview/index.tsx index b3d1868c684..b1424fae37f 100644 --- a/packages/compass-aggregations/src/components/stage-preview/index.tsx +++ b/packages/compass-aggregations/src/components/stage-preview/index.tsx @@ -9,13 +9,12 @@ import { Body, KeylineCard, useDarkMode, - Subtitle, } from '@mongodb-js/compass-components'; import { Document } from '@mongodb-js/compass-crud'; import type { RootState } from '../../modules'; import { - isAtlasOnlyStage, + isSearchStage, isMissingAtlasStageSupport, isOutputStage, } from '../../utils/stage'; @@ -26,6 +25,8 @@ import OutputStagePreivew from './output-stage-preview'; import StagePreviewHeader from './stage-preview-header'; import type { StoreStage } from '../../modules/pipeline-builder/stage-editor'; +import SearchNoResults from '../search-no-results'; + const centeredContent = css({ display: 'flex', alignItems: 'center', @@ -52,7 +53,7 @@ const emptyStylesLight = css({ stroke: palette.gray.base, }); -function EmptyIcon() { +function NoPreviewDocuments() { const darkMode = useDarkMode(); return ( @@ -97,14 +98,6 @@ const documentStyles = css({ padding: 0, }); -const missingAtlasIndexLightStyles = css({ - color: palette.green.dark2, -}); - -const missingAtlasIndexDarkStyles = css({ - color: palette.green.base, -}); - type StagePreviewProps = { index: number; isLoading: boolean; @@ -123,9 +116,8 @@ function StagePreviewBody({ shouldRenderStage, isLoading, }: StagePreviewProps) { - const darkMode = useDarkMode(); if (!shouldRenderStage) { - return ; + return ; } if (isMissingAtlasOnlyStageSupport) { @@ -153,24 +145,8 @@ function StagePreviewBody({ ); } - if (isAtlasOnlyStage(stageOperator ?? '') && documents?.length === 0) { - return ( -
- - No results found - - - This may be because your search has no results or your search index - does not exist. - -
- ); + if (isSearchStage(stageOperator) && documents?.length === 0) { + return ; } if (documents && documents.length > 0) { @@ -186,7 +162,7 @@ function StagePreviewBody({ return
{docs}
; } - return ; + return ; } const containerStyles = css({ @@ -208,7 +184,7 @@ export function StagePreview(props: StagePreviewProps) { if (props.isDisabled) { return (
- +
); } diff --git a/packages/compass-aggregations/src/utils/stage.ts b/packages/compass-aggregations/src/utils/stage.ts index 89b416ebcd6..b850b25ab1f 100644 --- a/packages/compass-aggregations/src/utils/stage.ts +++ b/packages/compass-aggregations/src/utils/stage.ts @@ -203,6 +203,21 @@ export function isAtlasOnlyStage( return !!stageOperator && ATLAS_ONLY_OPERATOR_NAMES.has(stageOperator); } +/* +Atlas Search does not return an error if there is no search index - it just +returns no results. So if the connection has access to Atlas Search and the +aggregation used a search-related stage and got no results we want to display a +different error. +*/ +export function isSearchStage( + stageOperator: string | null | undefined +): stageOperator is '$search' | '$searchMeta' | '$vectorSearch' { + if (!stageOperator) { + return false; + } + return ['$search', '$searchMeta', '$vectorSearch'].includes(stageOperator); +} + const STAGE_OPERATORS_MAP = new Map( STAGE_OPERATORS.map((stage) => [stage.value, stage]) ); From 11209f0c74f78450f55081c2b89cf508e031cad5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 13:21:16 +0000 Subject: [PATCH 15/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6367) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 746b79ea0e5..f1bbf126a70 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 15, 2024 at 05:11 AM +Generated on Tue, Oct 15, 2024 at 01:21 PM ## Table of Contents From eab7899fd237a28e84ecb4baf5c34fc04a8b3d66 Mon Sep 17 00:00:00 2001 From: Paula Stachova Date: Tue, 15 Oct 2024 17:10:33 +0200 Subject: [PATCH 16/71] feat(compass-global-writes): sharding in progress state COMPASS-8277 (#6347) --- .../src/components/index.tsx | 10 +- .../src/components/states/sharding.spec.tsx | 38 +- .../src/components/states/sharding.tsx | 38 +- .../src/plugin-title.spec.tsx | 16 + .../src/plugin-title.tsx | 3 +- .../services/atlas-global-writes-service.ts | 2 +- .../src/store/index.spec.ts | 335 ++++++++++++++---- .../src/store/reducer.ts | 248 ++++++++++++- 8 files changed, 604 insertions(+), 86 deletions(-) create mode 100644 packages/compass-global-writes/src/plugin-title.spec.tsx diff --git a/packages/compass-global-writes/src/components/index.tsx b/packages/compass-global-writes/src/components/index.tsx index 77aa286de46..12031c5656f 100644 --- a/packages/compass-global-writes/src/components/index.tsx +++ b/packages/compass-global-writes/src/components/index.tsx @@ -5,6 +5,7 @@ import { spacing, WorkspaceContainer, SpinLoaderWithLabel, + ConfirmationModalArea, } from '@mongodb-js/compass-components'; import type { RootState, ShardingStatus } from '../store/reducer'; import { ShardingStatuses } from '../store/reducer'; @@ -55,7 +56,10 @@ function ShardingStateView({ return ; } - if (shardingStatus === ShardingStatuses.SHARDING) { + if ( + shardingStatus === ShardingStatuses.SHARDING || + shardingStatus === ShardingStatuses.CANCELLING_SHARDING + ) { return ; } @@ -73,7 +77,9 @@ export function GlobalWrites({ shardingStatus }: GlobalWritesProps) { return (
- + + +
); diff --git a/packages/compass-global-writes/src/components/states/sharding.spec.tsx b/packages/compass-global-writes/src/components/states/sharding.spec.tsx index c3d8fb542be..69b767fe87e 100644 --- a/packages/compass-global-writes/src/components/states/sharding.spec.tsx +++ b/packages/compass-global-writes/src/components/states/sharding.spec.tsx @@ -1,13 +1,20 @@ import React from 'react'; import { expect } from 'chai'; -import { screen } from '@mongodb-js/testing-library-compass'; +import { screen, userEvent } from '@mongodb-js/testing-library-compass'; import { ShardingState } from './sharding'; import { renderWithStore } from '../../../tests/create-store'; +import Sinon from 'sinon'; function renderWithProps( props?: Partial> ) { - return renderWithStore(); + return renderWithStore( + {}} + isCancellingSharding={false} + {...props} + /> + ); } describe('Sharding', function () { @@ -15,4 +22,31 @@ describe('Sharding', function () { await renderWithProps(); expect(screen.getByRole('alert')).to.exist; }); + + it('sharding request can be cancelled', async function () { + const onCancelSharding = Sinon.spy(); + await renderWithProps({ + onCancelSharding, + }); + const btn = screen.getByRole('button', { name: 'Cancel Request' }); + expect(btn).to.be.visible; + + userEvent.click(btn); + + expect(onCancelSharding).to.have.been.calledOnce; + }); + + it('when cancelling is in progress, it cannot be triggered again', async function () { + const onCancelSharding = Sinon.spy(); + await renderWithProps({ + isCancellingSharding: true, + onCancelSharding, + }); + const btn = screen.getByTestId('cancel-sharding-btn'); + expect(btn.getAttribute('aria-disabled')).to.equal('true'); + + userEvent.click(btn); + + expect(onCancelSharding).not.to.have.been.calledOnce; + }); }); diff --git a/packages/compass-global-writes/src/components/states/sharding.tsx b/packages/compass-global-writes/src/components/states/sharding.tsx index f64e788a4ab..3bef1cf75d8 100644 --- a/packages/compass-global-writes/src/components/states/sharding.tsx +++ b/packages/compass-global-writes/src/components/states/sharding.tsx @@ -3,11 +3,17 @@ import { Banner, BannerVariant, Body, + Button, css, Link, spacing, } from '@mongodb-js/compass-components'; import { connect } from 'react-redux'; +import { + cancelSharding, + type RootState, + ShardingStatuses, +} from '../../store/reducer'; const nbsp = '\u00a0'; @@ -17,12 +23,33 @@ const containerStyles = css({ gap: spacing[400], }); -export function ShardingState() { +const btnStyles = css({ + float: 'right', + height: spacing[600], +}); + +interface ShardingStateProps { + isCancellingSharding: boolean; + onCancelSharding: () => void; +} + +export function ShardingState({ + isCancellingSharding, + onCancelSharding, +}: ShardingStateProps) { return (
Sharding your collection … {nbsp}this should not take too long. + Once your collection is sharded, this tab will show instructions on @@ -39,4 +66,11 @@ export function ShardingState() { ); } -export default connect()(ShardingState); +export default connect( + (state: RootState) => ({ + isCancellingSharding: state.status === ShardingStatuses.CANCELLING_SHARDING, + }), + { + onCancelSharding: cancelSharding, + } +)(ShardingState); diff --git a/packages/compass-global-writes/src/plugin-title.spec.tsx b/packages/compass-global-writes/src/plugin-title.spec.tsx new file mode 100644 index 00000000000..ce4e843a822 --- /dev/null +++ b/packages/compass-global-writes/src/plugin-title.spec.tsx @@ -0,0 +1,16 @@ +import React from 'react'; +import { expect } from 'chai'; +import { PluginTitle } from './plugin-title'; +import { render, screen } from '@mongodb-js/testing-library-compass'; + +describe('PluginTitle', function () { + it('Renders a warning', function () { + render(); + expect(screen.getByLabelText('warning')).to.be.visible; + }); + + it('Does not render a warning', function () { + render(); + expect(screen.queryByLabelText('warning')).not.to.exist; + }); +}); diff --git a/packages/compass-global-writes/src/plugin-title.tsx b/packages/compass-global-writes/src/plugin-title.tsx index 0c484aecaac..9106ae55c29 100644 --- a/packages/compass-global-writes/src/plugin-title.tsx +++ b/packages/compass-global-writes/src/plugin-title.tsx @@ -30,7 +30,7 @@ const iconStylesDark = css({ color: palette.yellow.base, }); -const PluginTitle = ({ showWarning }: { showWarning: boolean }) => { +export const PluginTitle = ({ showWarning }: { showWarning: boolean }) => { const darkMode = useDarkMode(); return (
@@ -50,6 +50,7 @@ const PluginTitle = ({ showWarning }: { showWarning: boolean }) => { > false, + hasShardingError = () => false, + hasShardKey = () => false, + failsOnShardingRequest = () => false, + authenticatedFetchStub, +}: + | { + isNamespaceManaged?: () => boolean; + hasShardingError?: () => boolean; + hasShardKey?: () => boolean; + failsOnShardingRequest?: () => boolean; + authenticatedFetchStub?: never; + } + | { + isNamespaceManaged?: never; + hasShardingError?: never; + hasShardKey?: () => boolean; + failsOnShardingRequest?: never; + authenticatedFetchStub?: () => void; + } = {}): GlobalWritesStore { + const atlasService = { + authenticatedFetch: (uri: string) => { + if (uri.includes(`/geoSharding`) && failsOnShardingRequest()) { + return Promise.reject(new Error('Failed to shard')); + } + + if (uri.includes('/clusters/')) { + return createAuthFetchResponse({ + ...clusterDetails, + geoSharding: { + ...clusterDetails.geoSharding, + managedNamespaces: isNamespaceManaged() ? [managedNamespace] : [], + }, + }); + } + + if (uri.includes('/deploymentStatus/')) { + return createAuthFetchResponse({ + automationStatus: { + processes: hasShardingError() ? [failedShardingProcess] : [], + }, + }); + } + + return createAuthFetchResponse({}); + }, + automationAgentRequest: (_meta: unknown, type: string) => ({ + _id: '123', + requestType: type, + }), + automationAgentAwait: (_meta: unknown, type: string) => { + if (type === 'getShardKey') { + return { + response: hasShardKey() + ? [ + { + key: { + location: 'range', + secondary: shardKeyData.isCustomShardKeyHashed + ? 'hashed' + : 'range', + }, + unique: true, + }, + ] + : [], + }; + } + }, + } as any; + + if (authenticatedFetchStub) + atlasService.authenticatedFetch = authenticatedFetchStub; + return setupStore( { namespace: NS, @@ -69,6 +150,20 @@ function createStore(atlasService: any = {}): GlobalWritesStore { } describe('GlobalWritesStore Store', function () { + let confirmationStub: Sinon.SinonStub; + let clock: Sinon.SinonFakeTimers; + + beforeEach(() => { + confirmationStub = sinon + .stub(globalWritesReducer, 'showConfirmation') + .resolves(true); + }); + + afterEach(() => { + sinon.restore(); + clock && clock.restore(); + }); + it('sets the initial state', function () { const store = createStore(); expect(store.getState().namespace).to.equal(NS); @@ -76,88 +171,184 @@ describe('GlobalWritesStore Store', function () { }); context('scenarios', function () { - it('not managed -> sharding', async function () { + it('not managed -> sharding -> valid shard key', async function () { + let mockShardKey = false; + // initial state === unsharded const store = createStore({ - authenticatedFetch: () => createAuthFetchResponse(clusterDetails), + hasShardKey: Sinon.fake(() => mockShardKey), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('UNSHARDED'); + expect(store.getState().managedNamespace).to.equal(undefined); }); - await store.dispatch(fetchClusterShardingData()); - expect(store.getState().status).to.equal('UNSHARDED'); - expect(store.getState().managedNamespace).to.equal(undefined); + // user requests sharding + clock = sinon.useFakeTimers({ + shouldAdvanceTime: true, + }); const promise = store.dispatch(createShardKey(shardKeyData)); expect(store.getState().status).to.equal('SUBMITTING_FOR_SHARDING'); await promise; expect(store.getState().status).to.equal('SHARDING'); + + // sharding ends with a shardKey + mockShardKey = true; + clock.tick(POLLING_INTERVAL); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + }); }); - it('not managed -> failed sharding attempt', async function () { + it('not managed -> sharding -> sharding error', async function () { + let mockFailure = false; + // initial state === unsharded const store = createStore({ - authenticatedFetch: (uri: string) => { - if (uri.includes('/geoSharding')) { - return Promise.reject(new Error('Failed to shard')); - } + hasShardingError: Sinon.fake(() => mockFailure), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('UNSHARDED'); + expect(store.getState().managedNamespace).to.equal(undefined); + }); - return createAuthFetchResponse(clusterDetails); - }, + // user requests sharding + clock = sinon.useFakeTimers({ + shouldAdvanceTime: true, }); - await store.dispatch(fetchClusterShardingData()); - expect(store.getState().status).to.equal('UNSHARDED'); - expect(store.getState().managedNamespace).to.equal(undefined); + const promise = store.dispatch(createShardKey(shardKeyData)); + expect(store.getState().status).to.equal('SUBMITTING_FOR_SHARDING'); + await promise; + expect(store.getState().status).to.equal('SHARDING'); + + // sharding ends with an error + mockFailure = true; + clock.tick(POLLING_INTERVAL); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARDING_ERROR'); + }); + }); + it('not managed -> not managed (failed sharding request)', async function () { + // initial state === not managed + const store = createStore({ + failsOnShardingRequest: () => true, + }); + await waitFor(() => { + expect(store.getState().status).to.equal('UNSHARDED'); + expect(store.getState().managedNamespace).to.equal(undefined); + }); + + // user tries to submit for sharding, but the request fails const promise = store.dispatch(createShardKey(shardKeyData)); expect(store.getState().status).to.equal('SUBMITTING_FOR_SHARDING'); await promise; expect(store.getState().status).to.equal('UNSHARDED'); }); - it('when the namespace is managed', async function () { + it('sharding -> valid shard key', async function () { + let mockShardKey = false; + // initial state === sharding + clock = sinon.useFakeTimers({ + shouldAdvanceTime: true, + }); + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: Sinon.fake(() => mockShardKey), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARDING'); + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); + + // sharding ends with a shardKey + mockShardKey = true; + clock.tick(POLLING_INTERVAL); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + }); + }); + + it('sharding -> cancelling request -> not managed', async function () { + let mockManagedNamespace = true; + confirmationStub.resolves(true); + // initial state === sharding + const store = createStore({ + isNamespaceManaged: Sinon.fake(() => mockManagedNamespace), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARDING'); + expect(store.getState().pollingTimeout).not.to.be.undefined; + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); + + // user cancels the sharding request + const promise = store.dispatch(cancelSharding()); + mockManagedNamespace = false; + await promise; + expect(store.getState().status).to.equal('UNSHARDED'); + expect(store.getState().pollingTimeout).to.be.undefined; + expect(confirmationStub).to.have.been.called; + }); + + it('valid shard key', async function () { const store = createStore({ - authenticatedFetch: (uri: string) => { - if (uri.includes('/clusters/')) { - return createAuthFetchResponse({ - ...clusterDetails, - geoSharding: { - ...clusterDetails.geoSharding, - managedNamespaces: [managedNamespace], - }, - }); - } - - if (uri.includes('/deploymentStatus/')) { - return createAuthFetchResponse({ - automationStatus: { - processes: [], - }, - }); - } - - return createAuthFetchResponse({}); - }, - automationAgentRequest: (_meta: unknown, type: string) => ({ - _id: '123', - requestType: type, - }), - automationAgentAwait: (_meta: unknown, type: string) => { - if (type === 'getShardKey') { - return { - response: [ - { - key: { - location: 'HASHED', - secondary: 'HASHED', - }, - unique: false, - }, - ], - }; - } - }, + isNamespaceManaged: () => true, + hasShardKey: () => true, + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); + }); + + it('valid shard key -> not managed', async function () { + // initial state === shard key correct + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => true, + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); + + // user asks to unmanage + const promise = store.dispatch(unmanageNamespace()); + expect(store.getState().status).to.equal('UNMANAGING_NAMESPACE'); + await promise; + expect(store.getState().status).to.equal('UNSHARDED'); + }); + + it('valid shard key -> valid shard key (failed unmanage attempt)', async function () { + // initial state === shard key correct + let mockFailure = false; + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => true, + failsOnShardingRequest: Sinon.fake(() => mockFailure), }); - await store.dispatch(fetchClusterShardingData()); + await waitFor(() => { expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); expect(store.getState().managedNamespace).to.equal(managedNamespace); }); + + // user asks to unmanage + mockFailure = true; + const promise = store.dispatch(unmanageNamespace()); + expect(store.getState().status).to.equal('UNMANAGING_NAMESPACE'); + await promise; + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + }); + + it('sharding error', async function () { + const store = createStore({ + isNamespaceManaged: () => true, + hasShardingError: () => true, + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARDING_ERROR'); + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); }); it('sends correct data to the server when creating a shard key', async function () { @@ -165,7 +356,7 @@ describe('GlobalWritesStore Store', function () { { db: 'test', collection: 'one', - customShardKey: 'test', + customShardKey: 'secondary', isCustomShardKeyHashed: true, isShardKeyUnique: false, numInitialChunks: 1, @@ -196,7 +387,7 @@ describe('GlobalWritesStore Store', function () { .resolves(); const store = createStore({ - authenticatedFetch: fetchStub, + authenticatedFetchStub: fetchStub, }); await store.dispatch(createShardKey(shardKeyData)); diff --git a/packages/compass-global-writes/src/store/reducer.ts b/packages/compass-global-writes/src/store/reducer.ts index 85981a039df..d596d52d51c 100644 --- a/packages/compass-global-writes/src/store/reducer.ts +++ b/packages/compass-global-writes/src/store/reducer.ts @@ -1,8 +1,13 @@ import type { Action, Reducer } from 'redux'; import type { GlobalWritesThunkAction } from '.'; -import { openToast } from '@mongodb-js/compass-components'; +import { + openToast, + showConfirmation as showConfirmationModal, +} from '@mongodb-js/compass-components'; import type { ManagedNamespace } from '../services/atlas-global-writes-service'; +export const POLLING_INTERVAL = 5000; + export function isAction( action: Action, type: A['type'] @@ -30,6 +35,13 @@ enum GlobalWritesActionTypes { SubmittingForShardingFinished = 'global-writes/SubmittingForShardingFinished', SubmittingForShardingErrored = 'global-writes/SubmittingForShardingErrored', + CancellingShardingStarted = 'global-writes/CancellingShardingStarted', + CancellingShardingFinished = 'global-writes/CancellingShardingFinished', + CancellingShardingErrored = 'global-writes/CancellingShardingErrored', + + NextPollingTimeoutSet = 'global-writes/NextPollingTimeoutSet', + NextPollingTimeoutCleared = 'global-writes/NextPollingTimeoutCleared', + UnmanagingNamespaceStarted = 'global-writes/UnmanagingNamespaceStarted', UnmanagingNamespaceFinished = 'global-writes/UnmanagingNamespaceFinished', UnmanagingNamespaceErrored = 'global-writes/UnmanagingNamespaceErrored', @@ -68,6 +80,28 @@ type SubmittingForShardingErroredAction = { type: GlobalWritesActionTypes.SubmittingForShardingErrored; }; +type CancellingShardingStartedAction = { + type: GlobalWritesActionTypes.CancellingShardingStarted; +}; + +type CancellingShardingFinishedAction = { + type: GlobalWritesActionTypes.CancellingShardingFinished; + managedNamespace?: ManagedNamespace; +}; + +type CancellingShardingErroredAction = { + type: GlobalWritesActionTypes.CancellingShardingErrored; +}; + +type NextPollingTimeoutSetAction = { + type: GlobalWritesActionTypes.NextPollingTimeoutSet; + timeout: NodeJS.Timeout; +}; + +type NextPollingTimeoutClearedAction = { + type: GlobalWritesActionTypes.NextPollingTimeoutCleared; +}; + type UnmanagingNamespaceStartedAction = { type: GlobalWritesActionTypes.UnmanagingNamespaceStarted; }; @@ -102,6 +136,12 @@ export enum ShardingStatuses { */ SHARDING = 'SHARDING', + /** + * State when user cancels the sharding and + * we are waiting for server to accept the request. + */ + CANCELLING_SHARDING = 'CANCELLING_SHARDING', + /** * Sharding failed. */ @@ -157,23 +197,36 @@ export type RootState = { status: ShardingStatuses.NOT_READY; shardKey?: never; shardingError?: never; + pollingTimeout?: never; } | { status: | ShardingStatuses.UNSHARDED | ShardingStatuses.SUBMITTING_FOR_SHARDING - | ShardingStatuses.SHARDING; + | ShardingStatuses.CANCELLING_SHARDING; /** * note: shardKey might exist even for unsharded. * if the collection was sharded previously and then unmanaged */ shardKey?: ShardKey; shardingError?: never; + pollingTimeout?: never; + } + | { + status: ShardingStatuses.SHARDING; + /** + * note: shardKey might exist + * if the collection was sharded previously and then unmanaged + */ + shardKey?: ShardKey; + shardingError?: never; + pollingTimeout?: NodeJS.Timeout; } | { status: ShardingStatuses.SHARDING_ERROR; shardKey?: never; shardingError: string; + pollingTimeout?: never; } | { status: @@ -183,6 +236,7 @@ export type RootState = { | ShardingStatuses.UNMANAGING_NAMESPACE; shardKey: ShardKey; shardingError?: never; + pollingTimeout?: never; } ); @@ -214,13 +268,18 @@ const reducer: Reducer = (state = initialState, action) => { action, GlobalWritesActionTypes.NamespaceShardingErrorFetched ) && - state.status === ShardingStatuses.NOT_READY + (state.status === ShardingStatuses.NOT_READY || + state.status === ShardingStatuses.SHARDING) ) { + if (state.pollingTimeout) { + throw new Error('Polling was not stopped'); + } return { ...state, status: ShardingStatuses.SHARDING_ERROR, shardKey: undefined, shardingError: action.error, + pollingTimeout: state.pollingTimeout, }; } @@ -229,13 +288,18 @@ const reducer: Reducer = (state = initialState, action) => { action, GlobalWritesActionTypes.NamespaceShardKeyFetched ) && - state.status === ShardingStatuses.NOT_READY + (state.status === ShardingStatuses.NOT_READY || + state.status === ShardingStatuses.SHARDING) ) { + if (state.pollingTimeout) { + throw new Error('Polling was not stopped'); + } return { ...state, status: getStatusFromShardKey(action.shardKey, state.managedNamespace), shardKey: action.shardKey, shardingError: undefined, + pollingTimeout: state.pollingTimeout, }; } @@ -269,7 +333,8 @@ const reducer: Reducer = (state = initialState, action) => { action, GlobalWritesActionTypes.SubmittingForShardingFinished ) && - state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING + (state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING || + state.status === ShardingStatuses.NOT_READY) ) { return { ...state, @@ -278,6 +343,78 @@ const reducer: Reducer = (state = initialState, action) => { }; } + if ( + isAction( + action, + GlobalWritesActionTypes.NextPollingTimeoutSet + ) && + state.status === ShardingStatuses.SHARDING + ) { + return { + ...state, + pollingTimeout: action.timeout, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.NextPollingTimeoutCleared + ) && + state.status === ShardingStatuses.SHARDING + ) { + return { + ...state, + pollingTimeout: undefined, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.CancellingShardingStarted + ) && + state.status === ShardingStatuses.SHARDING + ) { + if (state.pollingTimeout) { + throw new Error('Polling was not stopped'); + } + return { + ...state, + status: ShardingStatuses.CANCELLING_SHARDING, + pollingTimeout: state.pollingTimeout, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.CancellingShardingErrored + ) && + state.status === ShardingStatuses.CANCELLING_SHARDING + ) { + return { + ...state, + status: ShardingStatuses.SHARDING, + }; + } + + if ( + isAction( + action, + GlobalWritesActionTypes.CancellingShardingFinished + ) && + (state.status === ShardingStatuses.CANCELLING_SHARDING || + state.status === ShardingStatuses.SHARDING_ERROR) + // the error might come before the cancel request was processed + ) { + return { + ...state, + status: ShardingStatuses.UNSHARDED, + shardingError: undefined, + }; + } + if ( isAction( action, @@ -433,6 +570,64 @@ export const createShardKey = ( }; }; +// Exporting this for test only to stub it and set +// its value. This enables to test cancelSharding action. +export const showConfirmation = showConfirmationModal; + +export const cancelSharding = (): GlobalWritesThunkAction< + Promise, + | CancellingShardingStartedAction + | CancellingShardingFinishedAction + | CancellingShardingErroredAction +> => { + return async (dispatch, getState, { atlasGlobalWritesService, logger }) => { + const confirmed = await showConfirmation({ + title: 'Confirmation', + description: 'Are you sure you want to cancel the sharding request?', + }); + + if (!confirmed) { + return; + } + + const { namespace, status } = getState(); + + if (status === ShardingStatuses.SHARDING) { + dispatch(stopPollingForShardKey()); + } + dispatch({ + type: GlobalWritesActionTypes.CancellingShardingStarted, + }); + + try { + await atlasGlobalWritesService.unmanageNamespace(namespace); + dispatch({ + type: GlobalWritesActionTypes.CancellingShardingFinished, + }); + } catch (error) { + logger.log.error( + logger.mongoLogId(1_001_000_334), + 'AtlasFetchError', + 'Error cancelling the sharding process', + { + error: (error as Error).message, + } + ); + openToast('global-writes-cancel-sharding-error', { + title: `Failed to cancel the sharding process: ${ + (error as Error).message + }`, + dismissible: true, + timeout: 5000, + variant: 'important', + }); + dispatch({ + type: GlobalWritesActionTypes.CancellingShardingErrored, + }); + } + }; +}; + const setNamespaceBeingSharded = ( managedNamespace?: ManagedNamespace ): GlobalWritesThunkAction => { @@ -441,6 +636,41 @@ const setNamespaceBeingSharded = ( type: GlobalWritesActionTypes.SubmittingForShardingFinished, managedNamespace, }); + dispatch(pollForShardKey()); + }; +}; + +const pollForShardKey = (): GlobalWritesThunkAction< + void, + NextPollingTimeoutSetAction +> => { + return (dispatch, getState) => { + const { pollingTimeout } = getState(); + if ( + pollingTimeout // prevent double polling + ) { + return; + } + const timeout = setTimeout(() => { + void dispatch(fetchNamespaceShardKey()); + }, POLLING_INTERVAL); + + dispatch({ + type: GlobalWritesActionTypes.NextPollingTimeoutSet, + timeout, + }); + }; +}; + +const stopPollingForShardKey = (): GlobalWritesThunkAction< + void, + NextPollingTimeoutClearedAction +> => { + return (dispatch, getState) => { + const { pollingTimeout } = getState(); + if (!pollingTimeout) return; + clearTimeout(pollingTimeout); + dispatch({ type: GlobalWritesActionTypes.NextPollingTimeoutCleared }); }; }; @@ -453,7 +683,7 @@ export const fetchNamespaceShardKey = (): GlobalWritesThunkAction< getState, { atlasGlobalWritesService, logger, connectionInfoRef } ) => { - const { namespace } = getState(); + const { namespace, status } = getState(); try { const [shardingError, shardKey] = await Promise.all([ @@ -462,6 +692,9 @@ export const fetchNamespaceShardKey = (): GlobalWritesThunkAction< ]); if (shardingError) { + if (status === ShardingStatuses.SHARDING) { + dispatch(stopPollingForShardKey()); + } dispatch({ type: GlobalWritesActionTypes.NamespaceShardingErrorFetched, error: shardingError, @@ -474,6 +707,9 @@ export const fetchNamespaceShardKey = (): GlobalWritesThunkAction< return; } + if (status === ShardingStatuses.SHARDING) { + dispatch(stopPollingForShardKey()); + } dispatch({ type: GlobalWritesActionTypes.NamespaceShardKeyFetched, shardKey, From 181ab924ef5897e1a93e06454f2c788037f57b20 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 15:16:59 +0000 Subject: [PATCH 17/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6369) Update report Co-authored-by: paula-stacho <5196720+paula-stacho@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index f1bbf126a70..ac15ba31720 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 15, 2024 at 01:21 PM +Generated on Tue, Oct 15, 2024 at 03:16 PM ## Table of Contents From 5f45217388f2cd7511a321881e4780475c672654 Mon Sep 17 00:00:00 2001 From: Ruchitha Rajaghatta <77162985+ruchitharajaghatta@users.noreply.github.com> Date: Wed, 16 Oct 2024 09:31:06 -0400 Subject: [PATCH 18/71] fix(compass-generative-ai): Increase the character size restriction for query and aggregation genai COMPASS-8369 (#6370) * limit increased and message improved for PROMPT_TOO_LONG * updating prompt_too_long error msg * updating test --- packages/compass-generative-ai/src/atlas-ai-service.spec.ts | 4 ++-- packages/compass-generative-ai/src/atlas-ai-service.ts | 2 +- .../src/components/generative-ai-input.spec.tsx | 2 +- .../src/components/generative-ai-input.tsx | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/compass-generative-ai/src/atlas-ai-service.spec.ts b/packages/compass-generative-ai/src/atlas-ai-service.spec.ts index d5c5b2a34cb..14894c420a4 100644 --- a/packages/compass-generative-ai/src/atlas-ai-service.spec.ts +++ b/packages/compass-generative-ai/src/atlas-ai-service.spec.ts @@ -204,7 +204,7 @@ describe('AtlasAiService', function () { userInput: 'test', collectionName: 'test', databaseName: 'peanut', - sampleDocuments: [{ test: '4'.repeat(600000) }], + sampleDocuments: [{ test: '4'.repeat(5120001) }], requestId: 'abc', signal: new AbortController().signal, }); @@ -231,7 +231,7 @@ describe('AtlasAiService', function () { { a: '1' }, { a: '2' }, { a: '3' }, - { a: '4'.repeat(500000) }, + { a: '4'.repeat(5120001) }, ], requestId: 'abc', signal: new AbortController().signal, diff --git a/packages/compass-generative-ai/src/atlas-ai-service.ts b/packages/compass-generative-ai/src/atlas-ai-service.ts index dbfa1fb23e8..49a8ccf2777 100644 --- a/packages/compass-generative-ai/src/atlas-ai-service.ts +++ b/packages/compass-generative-ai/src/atlas-ai-service.ts @@ -24,7 +24,7 @@ type GenerativeAiInput = { // The size/token validation happens on the server, however, we do // want to ensure we're not uploading massive documents (some folks have documents > 1mb). -const AI_MAX_REQUEST_SIZE = 100000; +const AI_MAX_REQUEST_SIZE = 5120000; const AI_MIN_SAMPLE_DOCUMENTS = 1; const USER_AI_URI = (userId: string) => `unauth/ai/api/v1/hello/${userId}`; const AGGREGATION_URI = 'ai/api/v1/mql-aggregation'; diff --git a/packages/compass-generative-ai/src/components/generative-ai-input.spec.tsx b/packages/compass-generative-ai/src/components/generative-ai-input.spec.tsx index 26c24067eb9..7e5ff722a01 100644 --- a/packages/compass-generative-ai/src/components/generative-ai-input.spec.tsx +++ b/packages/compass-generative-ai/src/components/generative-ai-input.spec.tsx @@ -112,7 +112,7 @@ describe('GenerativeAIInput Component', function () { ], [ 'PROMPT_TOO_LONG', - 'Sorry, your collections have too many fields to process. Please try using this feature on a collection with smaller documents.', + 'Sorry, your request is too large. Please use a smaller prompt or try using this feature on a collection with smaller documents.', ], [ 'TOO_MANY_REQUESTS', diff --git a/packages/compass-generative-ai/src/components/generative-ai-input.tsx b/packages/compass-generative-ai/src/components/generative-ai-input.tsx index 36274cd90d4..81670398118 100644 --- a/packages/compass-generative-ai/src/components/generative-ai-input.tsx +++ b/packages/compass-generative-ai/src/components/generative-ai-input.tsx @@ -569,7 +569,7 @@ const AIError = ({ // able to fix the issue on their own it cases where the schema is too big. return ( <> - Sorry, your collections have too many fields to process. Please try + Sorry, your request is too large. Please use a smaller prompt or try using this feature on a collection with smaller documents. ); From ef3ebe9d0558f037bb0ee26991d62d5102f83bfb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 13:37:55 +0000 Subject: [PATCH 19/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6372) Update report Co-authored-by: ruchitharajaghatta <77162985+ruchitharajaghatta@users.noreply.github.com> --- AUTHORS | 1 + THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/AUTHORS b/AUTHORS index d33515d2c0e..e9a04ad3d3d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -91,3 +91,4 @@ Vivian Xiao <57568527+VivianTNT@users.noreply.github.com> admin-token-bot <36773031+admin-token-bot@users.noreply.github.com> Kræn Hansen Kræn Hansen +Ruchitha Rajaghatta <77162985+ruchitharajaghatta@users.noreply.github.com> diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 88497bba185..747565d7809 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Tue Oct 15 2024. +This document was automatically generated on Wed Oct 16 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index ac15ba31720..04266c9a394 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 15, 2024 at 03:16 PM +Generated on Wed, Oct 16, 2024 at 01:37 PM ## Table of Contents From 00947833c7fbba876d62845d5d5fdedecf153ddb Mon Sep 17 00:00:00 2001 From: Paula Stachova Date: Thu, 17 Oct 2024 16:01:14 +0200 Subject: [PATCH 20/71] feat(compass-global-writes): invalid and mismatching shard key state COMPASS-8278 (#6371) --- .../src/components/index.tsx | 14 ++ .../src/components/shard-key-markup.tsx | 53 +++++++ .../states/shard-key-correct.spec.tsx | 14 +- .../components/states/shard-key-correct.tsx | 43 +++--- .../states/shard-key-invalid.spec.tsx | 58 ++++++++ .../components/states/shard-key-invalid.tsx | 63 +++++++++ .../states/shard-key-mismatch.spec.tsx | 118 ++++++++++++++++ .../components/states/shard-key-mismatch.tsx | 118 ++++++++++++++++ .../services/atlas-global-writes-service.ts | 2 +- .../src/store/index.spec.ts | 130 ++++++++++++++++-- .../src/store/reducer.ts | 13 +- 11 files changed, 577 insertions(+), 49 deletions(-) create mode 100644 packages/compass-global-writes/src/components/shard-key-markup.tsx create mode 100644 packages/compass-global-writes/src/components/states/shard-key-invalid.spec.tsx create mode 100644 packages/compass-global-writes/src/components/states/shard-key-invalid.tsx create mode 100644 packages/compass-global-writes/src/components/states/shard-key-mismatch.spec.tsx create mode 100644 packages/compass-global-writes/src/components/states/shard-key-mismatch.tsx diff --git a/packages/compass-global-writes/src/components/index.tsx b/packages/compass-global-writes/src/components/index.tsx index 12031c5656f..dd6ea046be4 100644 --- a/packages/compass-global-writes/src/components/index.tsx +++ b/packages/compass-global-writes/src/components/index.tsx @@ -12,6 +12,8 @@ import { ShardingStatuses } from '../store/reducer'; import UnshardedState from './states/unsharded'; import ShardingState from './states/sharding'; import ShardKeyCorrect from './states/shard-key-correct'; +import ShardKeyInvalid from './states/shard-key-invalid'; +import ShardKeyMismatch from './states/shard-key-mismatch'; const containerStyles = css({ paddingLeft: spacing[400], @@ -19,6 +21,7 @@ const containerStyles = css({ display: 'flex', width: '100%', height: '100%', + maxWidth: '700px', }); const workspaceContentStyles = css({ @@ -70,6 +73,17 @@ function ShardingStateView({ return ; } + if (shardingStatus === ShardingStatuses.SHARD_KEY_INVALID) { + return ; + } + + if ( + shardingStatus === ShardingStatuses.SHARD_KEY_MISMATCH || + shardingStatus === ShardingStatuses.UNMANAGING_NAMESPACE_MISMATCH + ) { + return ; + } + return null; } diff --git a/packages/compass-global-writes/src/components/shard-key-markup.tsx b/packages/compass-global-writes/src/components/shard-key-markup.tsx new file mode 100644 index 00000000000..15d6ca8fb6d --- /dev/null +++ b/packages/compass-global-writes/src/components/shard-key-markup.tsx @@ -0,0 +1,53 @@ +import { Body, Code, css, spacing } from '@mongodb-js/compass-components'; +import React from 'react'; +import type { ShardKey } from '../store/reducer'; + +const codeBlockContainerStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[100], +}); + +interface ShardKeyMarkupProps { + shardKey: ShardKey; + namespace: string; + showMetaData?: boolean; + type?: 'requested' | 'existing'; +} + +export function ShardKeyMarkup({ + namespace, + shardKey, + showMetaData, + type = 'existing', +}: ShardKeyMarkupProps) { + let markup = shardKey.fields + .map( + (field) => + `"${field.name}"` + + (showMetaData ? ` (${field.type.toLowerCase()})` : '') + ) + .join(', '); + if (showMetaData) { + markup += ` - unique: ${String(shardKey.isUnique)}`; + } + return ( +
+ + {type === 'existing' ? ( + <> + {namespace} is configured with the following shard + key: + + ) : ( + <>You requested to use the shard key: + )} + + + {markup} + +
+ ); +} + +export default ShardKeyMarkup; diff --git a/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx b/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx index 86f938cb10a..504db736e4e 100644 --- a/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx +++ b/packages/compass-global-writes/src/components/states/shard-key-correct.spec.tsx @@ -28,8 +28,8 @@ describe('Compass GlobalWrites Plugin', function () { namespace: 'db1.coll1', shardKey: { fields: [ - { type: 'HASHED', name: 'location' }, - { type: 'RANGE', name: 'secondary' }, + { type: 'RANGE', name: 'location' }, + { type: 'HASHED', name: 'secondary' }, ], isUnique: false, }, @@ -66,7 +66,7 @@ describe('Compass GlobalWrites Plugin', function () { await renderWithProps({ onUnmanageNamespace, isUnmanagingNamespace: true }); const btn = await screen.findByTestId( - 'shard-collection-button' + 'unmanage-collection-button' ); expect(btn).to.be.visible; expect(btn.getAttribute('aria-disabled')).to.equal('true'); @@ -103,12 +103,16 @@ describe('Compass GlobalWrites Plugin', function () { it('Describes the shardKey', async function () { await renderWithProps(); - const title = await screen.findByTestId('shardkey-description-title'); + const title = await screen.findByTestId( + 'existing-shardkey-description-title' + ); expect(title).to.be.visible; expect(title.textContent).to.equal( `${baseProps.namespace} is configured with the following shard key:` ); - const list = await screen.findByTestId('shardkey-description-content'); + const list = await screen.findByTestId( + 'existing-shardkey-description-content' + ); expect(list).to.be.visible; expect(list.textContent).to.contain(`"location", "secondary"`); }); diff --git a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx index 05a29add5a8..5a89380c17e 100644 --- a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx +++ b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx @@ -10,6 +10,7 @@ import { Subtitle, Label, Button, + ButtonVariant, } from '@mongodb-js/compass-components'; import { connect } from 'react-redux'; import { @@ -22,6 +23,7 @@ import { import toNS from 'mongodb-ns'; import { ShardZonesTable } from '../shard-zones-table'; import { useConnectionInfo } from '@mongodb-js/compass-connections/provider'; +import ShardKeyMarkup from '../shard-key-markup'; const nbsp = '\u00a0'; @@ -47,7 +49,7 @@ const paragraphStyles = css({ export type ShardKeyCorrectProps = { namespace: string; - shardKey?: ShardKey; + shardKey: ShardKey; shardZones: ShardZoneData[]; isUnmanagingNamespace: boolean; onUnmanageNamespace: () => void; @@ -60,10 +62,6 @@ export function ShardKeyCorrect({ isUnmanagingNamespace, onUnmanageNamespace, }: ShardKeyCorrectProps) { - if (!shardKey) { - throw new Error('Shard key not found in ShardKeyCorrect'); - } - const customShardKeyField = useMemo(() => { return shardKey.fields[1].name; }, [shardKey]); @@ -92,17 +90,7 @@ export function ShardKeyCorrect({ {nbsp}We have included a table for reference below. - -
- - {namespace} is configured with the following shard - key: - - - {shardKey.fields.map((field) => `"${field.name}"`).join(', ')} - -
- + Example commands
@@ -184,9 +172,9 @@ export function ShardKeyCorrect({
+
+ + + {requestedShardKey && ( + + )} +
+ ); +} + +export default connect( + (state: RootState) => { + if (!state.shardKey) { + throw new Error('Shard key not found in ShardKeyMismatch'); + } + return { + namespace: state.namespace, + shardKey: state.shardKey, + requestedShardKey: + state.managedNamespace && getRequestedShardKey(state.managedNamespace), + isUnmanagingNamespace: + state.status === ShardingStatuses.UNMANAGING_NAMESPACE_MISMATCH, + }; + }, + { + onUnmanageNamespace: unmanageNamespace, + } +)(ShardKeyMismatch); diff --git a/packages/compass-global-writes/src/services/atlas-global-writes-service.ts b/packages/compass-global-writes/src/services/atlas-global-writes-service.ts index 1e0355544b9..80390f1def2 100644 --- a/packages/compass-global-writes/src/services/atlas-global-writes-service.ts +++ b/packages/compass-global-writes/src/services/atlas-global-writes-service.ts @@ -54,7 +54,7 @@ export type AutomationAgentDeploymentStatusApiResponse = { }; }; -type AtlasShardKey = { +export type AtlasShardKey = { _id: string; unique: boolean; key: Record; diff --git a/packages/compass-global-writes/src/store/index.spec.ts b/packages/compass-global-writes/src/store/index.spec.ts index bc6194ba5d8..ee001aeb6f2 100644 --- a/packages/compass-global-writes/src/store/index.spec.ts +++ b/packages/compass-global-writes/src/store/index.spec.ts @@ -7,9 +7,11 @@ import { unmanageNamespace, cancelSharding, POLLING_INTERVAL, + type ShardKey, } from './reducer'; import sinon from 'sinon'; import type { + AtlasShardKey, AutomationAgentDeploymentStatusApiResponse, AutomationAgentProcess, ClusterDetailsApiResponse, @@ -74,14 +76,14 @@ function createStore({ | { isNamespaceManaged?: () => boolean; hasShardingError?: () => boolean; - hasShardKey?: () => boolean; + hasShardKey?: () => boolean | AtlasShardKey; failsOnShardingRequest?: () => boolean; authenticatedFetchStub?: never; } | { isNamespaceManaged?: never; hasShardingError?: never; - hasShardKey?: () => boolean; + hasShardKey?: () => boolean | ShardKey; failsOnShardingRequest?: never; authenticatedFetchStub?: () => void; } = {}): GlobalWritesStore { @@ -117,20 +119,24 @@ function createStore({ }), automationAgentAwait: (_meta: unknown, type: string) => { if (type === 'getShardKey') { + const shardKey = hasShardKey(); return { - response: hasShardKey() - ? [ - { - key: { - location: 'range', - secondary: shardKeyData.isCustomShardKeyHashed - ? 'hashed' - : 'range', + response: + shardKey === true + ? [ + { + key: { + location: 'range', + secondary: shardKeyData.isCustomShardKeyHashed + ? 'hashed' + : 'range', + }, + unique: true, }, - unique: true, - }, - ] - : [], + ] + : typeof shardKey === 'object' + ? [shardKey] + : [], }; } }, @@ -340,6 +346,102 @@ describe('GlobalWritesStore Store', function () { expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); }); + context('invalid and mismatching shard keys', function () { + it('there is no location : invalid', async function () { + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => ({ + _id: '123', + key: { + notLocation: 'range', // invalid + secondary: 'range', + }, + unique: true, + }), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_INVALID'); + }); + }); + + it('location is not a range : invalid', async function () { + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => ({ + _id: '123', + key: { + location: 'hashed', // invalid + secondary: 'range', + }, + unique: true, + }), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_INVALID'); + }); + }); + + it('secondary key does not match : mismatch', async function () { + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => ({ + _id: '123', + key: { + location: 'range', + tertiary: 'range', // this is a different secondary key + }, + unique: true, + }), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_MISMATCH'); + }); + }); + + it('uniqueness does not match : mismatch', async function () { + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => ({ + _id: '123', + key: { + location: 'range', + secondary: 'range', + }, + unique: false, // this does not match + }), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_MISMATCH'); + }); + }); + + it('mismatch -> unmanaged', async function () { + // initial state - mismatch + const store = createStore({ + isNamespaceManaged: () => true, + hasShardKey: () => ({ + _id: '123', + key: { + location: 'range', + tertiary: 'range', + }, + unique: true, + }), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_MISMATCH'); + }); + + // user asks to unmanage + const promise = store.dispatch(unmanageNamespace()); + expect(store.getState().status).to.equal( + 'UNMANAGING_NAMESPACE_MISMATCH' + ); + await promise; + expect(store.getState().status).to.equal('UNSHARDED'); + }); + }); + it('sharding error', async function () { const store = createStore({ isNamespaceManaged: () => true, diff --git a/packages/compass-global-writes/src/store/reducer.ts b/packages/compass-global-writes/src/store/reducer.ts index d596d52d51c..4255bb49072 100644 --- a/packages/compass-global-writes/src/store/reducer.ts +++ b/packages/compass-global-writes/src/store/reducer.ts @@ -169,6 +169,7 @@ export enum ShardingStatuses { * Namespace is being unmanaged. */ UNMANAGING_NAMESPACE = 'UNMANAGING_NAMESPACE', + UNMANAGING_NAMESPACE_MISMATCH = 'UNMANAGING_NAMESPACE_MISMATCH', } export type ShardingStatus = keyof typeof ShardingStatuses; @@ -233,7 +234,8 @@ export type RootState = { | ShardingStatuses.SHARD_KEY_CORRECT | ShardingStatuses.SHARD_KEY_INVALID | ShardingStatuses.SHARD_KEY_MISMATCH - | ShardingStatuses.UNMANAGING_NAMESPACE; + | ShardingStatuses.UNMANAGING_NAMESPACE + | ShardingStatuses.UNMANAGING_NAMESPACE_MISMATCH; shardKey: ShardKey; shardingError?: never; pollingTimeout?: never; @@ -435,12 +437,14 @@ const reducer: Reducer = (state = initialState, action) => { GlobalWritesActionTypes.UnmanagingNamespaceStarted ) && (state.status === ShardingStatuses.SHARD_KEY_CORRECT || - state.status === ShardingStatuses.SHARD_KEY_INVALID || state.status === ShardingStatuses.SHARD_KEY_MISMATCH) ) { return { ...state, - status: ShardingStatuses.UNMANAGING_NAMESPACE, + status: + state.status === ShardingStatuses.SHARD_KEY_CORRECT + ? ShardingStatuses.UNMANAGING_NAMESPACE + : ShardingStatuses.UNMANAGING_NAMESPACE_MISMATCH, }; } @@ -449,7 +453,8 @@ const reducer: Reducer = (state = initialState, action) => { action, GlobalWritesActionTypes.UnmanagingNamespaceFinished ) && - state.status === ShardingStatuses.UNMANAGING_NAMESPACE + (state.status === ShardingStatuses.UNMANAGING_NAMESPACE || + state.status === ShardingStatuses.UNMANAGING_NAMESPACE_MISMATCH) ) { return { ...state, From ae0a9b3e59c26bf3df46a692f1cd20eeebfe66c8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 14:07:55 +0000 Subject: [PATCH 21/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6375) Update report Co-authored-by: paula-stacho <5196720+paula-stacho@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 747565d7809..bba505ad008 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Wed Oct 16 2024. +This document was automatically generated on Thu Oct 17 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 04266c9a394..9b2ca08f89e 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 16, 2024 at 01:37 PM +Generated on Thu, Oct 17, 2024 at 02:07 PM ## Table of Contents From ccdec32a91ca45ab270f4b113c98e73138dbdcf8 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Thu, 17 Oct 2024 17:27:16 +0200 Subject: [PATCH 22/71] chore(e2e): move commands to commands folder (#6373) --- .../helpers/commands/index.ts | 2 ++ .../read-first-document-content.ts | 4 ++-- .../{ => commands}/read-stage-operators.ts | 4 ++-- .../tests/collection-aggregations-tab.test.ts | 3 +-- .../tests/collection-ai-query.test.ts | 3 +-- .../tests/collection-import.test.ts | 19 ++++++++------- .../tests/in-use-encryption.test.ts | 23 +++++++++---------- .../compass-e2e-tests/tests/read-only.test.ts | 5 ++-- 8 files changed, 30 insertions(+), 33 deletions(-) rename packages/compass-e2e-tests/helpers/{ => commands}/read-first-document-content.ts (85%) rename packages/compass-e2e-tests/helpers/{ => commands}/read-stage-operators.ts (76%) diff --git a/packages/compass-e2e-tests/helpers/commands/index.ts b/packages/compass-e2e-tests/helpers/commands/index.ts index 50e7b830042..2ad04e81f01 100644 --- a/packages/compass-e2e-tests/helpers/commands/index.ts +++ b/packages/compass-e2e-tests/helpers/commands/index.ts @@ -62,3 +62,5 @@ export * from './unhide-index'; export * from './hide-visible-modal'; export * from './hide-visible-toasts'; export * from './sidebar-collection'; +export * from './read-first-document-content'; +export * from './read-stage-operators'; diff --git a/packages/compass-e2e-tests/helpers/read-first-document-content.ts b/packages/compass-e2e-tests/helpers/commands/read-first-document-content.ts similarity index 85% rename from packages/compass-e2e-tests/helpers/read-first-document-content.ts rename to packages/compass-e2e-tests/helpers/commands/read-first-document-content.ts index bfd7ea771cf..7f82f10e8fb 100644 --- a/packages/compass-e2e-tests/helpers/read-first-document-content.ts +++ b/packages/compass-e2e-tests/helpers/commands/read-first-document-content.ts @@ -1,8 +1,8 @@ import chai from 'chai'; const { expect } = chai; -import type { CompassBrowser } from '../helpers/compass-browser'; -import * as Selectors from '../helpers/selectors'; +import type { CompassBrowser } from '../compass-browser'; +import * as Selectors from '../selectors'; export async function getFirstListDocument(browser: CompassBrowser) { // We check the total from the header area so it is probably good enough to diff --git a/packages/compass-e2e-tests/helpers/read-stage-operators.ts b/packages/compass-e2e-tests/helpers/commands/read-stage-operators.ts similarity index 76% rename from packages/compass-e2e-tests/helpers/read-stage-operators.ts rename to packages/compass-e2e-tests/helpers/commands/read-stage-operators.ts index 495698254f5..0dbdaaf7396 100644 --- a/packages/compass-e2e-tests/helpers/read-stage-operators.ts +++ b/packages/compass-e2e-tests/helpers/commands/read-stage-operators.ts @@ -1,5 +1,5 @@ -import type { CompassBrowser } from '../helpers/compass-browser'; -import * as Selectors from '../helpers/selectors'; +import type { CompassBrowser } from '../compass-browser'; +import * as Selectors from '../selectors'; export async function getStageOperators( browser: CompassBrowser, diff --git a/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts b/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts index 253aad23f80..2dd52fbe505 100644 --- a/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-aggregations-tab.test.ts @@ -16,7 +16,6 @@ import { createNestedDocumentsCollection, createNumbersCollection, } from '../helpers/insert-data'; -import { getStageOperators } from '../helpers/read-stage-operators'; import { saveAggregationPipeline } from '../helpers/commands/save-aggregation-pipeline'; import { Key } from 'webdriverio'; @@ -166,7 +165,7 @@ describe('Collection aggregations tab', function () { }); it('supports the right stages for the environment', async function () { - const options = await getStageOperators(browser, 0); + const options = await browser.getStageOperators(0); const expectedAggregations = [ '$addFields', diff --git a/packages/compass-e2e-tests/tests/collection-ai-query.test.ts b/packages/compass-e2e-tests/tests/collection-ai-query.test.ts index e7cb589de9c..7275118299d 100644 --- a/packages/compass-e2e-tests/tests/collection-ai-query.test.ts +++ b/packages/compass-e2e-tests/tests/collection-ai-query.test.ts @@ -16,7 +16,6 @@ import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; import { startMockAtlasServiceServer } from '../helpers/atlas-service'; import type { MockAtlasServerResponse } from '../helpers/atlas-service'; -import { getFirstListDocument } from '../helpers/read-first-document-content'; describe('Collection ai query', function () { let compass: Compass; @@ -147,7 +146,7 @@ describe('Collection ai query', function () { // Run it and check that the correct documents are shown. await browser.runFind('Documents', true); - const modifiedResult = await getFirstListDocument(browser); + const modifiedResult = await browser.getFirstListDocument(); expect(modifiedResult.i).to.be.equal('51'); }); }); diff --git a/packages/compass-e2e-tests/tests/collection-import.test.ts b/packages/compass-e2e-tests/tests/collection-import.test.ts index d52c3df1e25..2ebd8b206ad 100644 --- a/packages/compass-e2e-tests/tests/collection-import.test.ts +++ b/packages/compass-e2e-tests/tests/collection-import.test.ts @@ -11,7 +11,6 @@ import { TEST_COMPASS_WEB, DEFAULT_CONNECTION_NAME_1, } from '../helpers/compass'; -import { getFirstListDocument } from '../helpers/read-first-document-content'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { startTelemetryServer } from '../helpers/telemetry'; @@ -189,7 +188,7 @@ describe('Collection import', function () { return text === '1 – 1 of 1'; }); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.exist; delete result._id; @@ -274,7 +273,7 @@ describe('Collection import', function () { return text === '1 – 1 of 1'; }); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.exist; delete result._id; @@ -334,7 +333,7 @@ describe('Collection import', function () { return text === '1 – 25 of 1000'; }); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.exist; delete result._id; @@ -402,7 +401,7 @@ describe('Collection import', function () { const text = await messageElement.getText(); expect(text).to.equal('1 – 25 of 16116'); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.exist; delete result._id; @@ -452,7 +451,7 @@ describe('Collection import', function () { const text = await messageElement.getText(); expect(text).to.equal('1 – 1 of 1'); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.exist; delete result._id; @@ -608,7 +607,7 @@ describe('Collection import', function () { const text = await messageElement.getText(); expect(text).to.equal('1 – 25 of 16116'); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); // _id is different every time expect(result._id).to.exist; @@ -811,7 +810,7 @@ describe('Collection import', function () { // show the array and object fields await browser.clickVisible(Selectors.ShowMoreFieldsButton); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.equal('1001265'); }); @@ -894,7 +893,7 @@ describe('Collection import', function () { const text = await messageElement.getText(); expect(text).to.equal('1 – 1 of 1'); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); // _id is different every time expect(result._id).to.exist; @@ -1044,7 +1043,7 @@ describe('Collection import', function () { const text = await messageElement.getText(); expect(text).to.equal('1 – 1 of 1'); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); // _id is different every time expect(result._id).to.exist; diff --git a/packages/compass-e2e-tests/tests/in-use-encryption.test.ts b/packages/compass-e2e-tests/tests/in-use-encryption.test.ts index bf5a07bc33a..1203a249b3c 100644 --- a/packages/compass-e2e-tests/tests/in-use-encryption.test.ts +++ b/packages/compass-e2e-tests/tests/in-use-encryption.test.ts @@ -10,7 +10,6 @@ import { } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; -import { getFirstListDocument } from '../helpers/read-first-document-content'; import { MongoClient } from 'mongodb'; import delay from '../helpers/delay'; @@ -512,7 +511,7 @@ describe('CSFLE / QE', function () { // wait for the modal to go away await insertDialog.waitForDisplayed({ reverse: true }); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result._id).to.exist; expect(result.__safeContent__).to.exist; @@ -591,7 +590,7 @@ describe('CSFLE / QE', function () { 'Documents' ); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result[field]).to.be.equal(toString(oldValueJS)); const document = await browser.$(Selectors.DocumentListEntry); @@ -638,7 +637,7 @@ describe('CSFLE / QE', function () { : `{ ${field}: ${newValue} }` ); - const modifiedResult = await getFirstListDocument(browser); + const modifiedResult = await browser.getFirstListDocument(); expect(modifiedResult[field]).to.be.equal(toString(newValueJS)); expect(modifiedResult._id).to.be.equal(result._id); }); @@ -696,7 +695,7 @@ describe('CSFLE / QE', function () { "{ phoneNumber: '10101010' }" ); - const modifiedResult = await getFirstListDocument(browser); + const modifiedResult = await browser.getFirstListDocument(); expect(modifiedResult.phoneNumber).to.be.equal('"10101010"'); }); @@ -847,7 +846,7 @@ describe('CSFLE / QE', function () { await browser.runFindOperation('Documents', "{ name: 'Third' }"); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); delete result._id; delete result.__safeContent__; @@ -896,7 +895,7 @@ describe('CSFLE / QE', function () { 'Documents' ); - let decryptedResult = await getFirstListDocument(browser); + let decryptedResult = await browser.getFirstListDocument(); delete decryptedResult._id; delete decryptedResult.__safeContent__; @@ -926,7 +925,7 @@ describe('CSFLE / QE', function () { .$(Selectors.CSFLEConnectionModal) .waitForDisplayed({ reverse: true }); - const encryptedResult = await getFirstListDocument(browser); + const encryptedResult = await browser.getFirstListDocument(); delete encryptedResult._id; delete encryptedResult.__safeContent__; @@ -956,7 +955,7 @@ describe('CSFLE / QE', function () { .$(Selectors.CSFLEConnectionModal) .waitForDisplayed({ reverse: true }); - decryptedResult = await getFirstListDocument(browser); + decryptedResult = await browser.getFirstListDocument(); delete decryptedResult._id; delete decryptedResult.__safeContent__; @@ -1075,7 +1074,7 @@ describe('CSFLE / QE', function () { collection, 'Documents' ); - const result = await getFirstListDocument(browser); + const result = await browser.getFirstListDocument(); expect(result.phoneNumber).to.be.equal(JSON.stringify(value)); } @@ -1261,13 +1260,13 @@ describe('CSFLE / QE', function () { // { v: "123", _id: 'asdf' } // { v: "456", _id: 'ghjk' } - let decryptedResult = await getFirstListDocument(browser); + let decryptedResult = await browser.getFirstListDocument(); delete decryptedResult.__safeContent__; expect(decryptedResult).to.deep.equal({ v: '"123"', _id: '"asdf"' }); // We can't search for the encrypted value, but it does get decrypted await browser.runFindOperation('Documents', '{ _id: "ghjk" }'); - decryptedResult = await getFirstListDocument(browser); + decryptedResult = await browser.getFirstListDocument(); delete decryptedResult.__safeContent__; expect(decryptedResult).to.deep.equal({ v: '"456"', _id: '"ghjk"' }); }); diff --git a/packages/compass-e2e-tests/tests/read-only.test.ts b/packages/compass-e2e-tests/tests/read-only.test.ts index c99fd6989bc..1866470ce58 100644 --- a/packages/compass-e2e-tests/tests/read-only.test.ts +++ b/packages/compass-e2e-tests/tests/read-only.test.ts @@ -9,7 +9,6 @@ import { import { expect } from 'chai'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; -import { getStageOperators } from '../helpers/read-stage-operators'; import type { Compass } from '../helpers/compass'; import type { CompassBrowser } from '../helpers/compass-browser'; @@ -262,7 +261,7 @@ describe('readOnly: true / Read-Only Edition', function () { const stageContainers = await browser.$$(Selectors.StageCard); expect(stageContainers).to.have.lengthOf(1); - let options = await getStageOperators(browser, 0); + let options = await browser.getStageOperators(0); expect(options).to.include('$match'); expect(options).to.include('$out'); @@ -291,7 +290,7 @@ describe('readOnly: true / Read-Only Edition', function () { await browser.focusStageOperator(0); - options = await getStageOperators(browser, 0); + options = await browser.getStageOperators(0); expect(options).to.include('$match'); expect(options).to.not.include('$out'); From 27da7ec0e581f07e12adffada586aceef7e4b21c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 17 Oct 2024 15:34:02 +0000 Subject: [PATCH 23/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6376) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 9b2ca08f89e..33320a6002a 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Thu, Oct 17, 2024 at 02:07 PM +Generated on Thu, Oct 17, 2024 at 03:33 PM ## Table of Contents From 7d6b939b14f0e56f2ae8c38d2eac9f8222845d4b Mon Sep 17 00:00:00 2001 From: Le Roux Bodenstein Date: Fri, 18 Oct 2024 15:17:05 +0100 Subject: [PATCH 24/71] chore: bump the major version we run unit tests on in ci (#6378) bump the major version we run unit tests on in ci --- .evergreen/print-compass-env.sh | 2 +- .../src/connect-mongo-client.spec.ts | 6 ++++-- .../data-service/src/data-service.spec.ts | 20 ++++--------------- 3 files changed, 9 insertions(+), 19 deletions(-) diff --git a/.evergreen/print-compass-env.sh b/.evergreen/print-compass-env.sh index 8e725ff7cae..ad1c1b41d4f 100755 --- a/.evergreen/print-compass-env.sh +++ b/.evergreen/print-compass-env.sh @@ -2,7 +2,7 @@ set -e -export MONGODB_DEFAULT_VERSION=6.0.x +export MONGODB_DEFAULT_VERSION=7.0.x if [[ $OSTYPE == "cygwin" ]]; then export PLATFORM='win32' diff --git a/packages/data-service/src/connect-mongo-client.spec.ts b/packages/data-service/src/connect-mongo-client.spec.ts index dc11a07fe57..9a4ba568356 100644 --- a/packages/data-service/src/connect-mongo-client.spec.ts +++ b/packages/data-service/src/connect-mongo-client.spec.ts @@ -252,8 +252,10 @@ describe('connectMongoClient', function () { expect(error).to.be.instanceOf(Error); // propagates the tunnel error - expect(error.message).to.match( - /(All configured authentication methods failed|ENOTFOUND compass-tests\.fakehost\.localhost)/ + // NOTE: this heavily depends on which server version we're running on + const message = error.errors ? error.errors[0].message : error.message; + expect(message).to.match( + /(All configured authentication methods failed|ENOTFOUND compass-tests\.fakehost\.localhost)|ECONNREFUSED 127.0.0.1:22/ ); for (let i = 0; i < 10; i++) { diff --git a/packages/data-service/src/data-service.spec.ts b/packages/data-service/src/data-service.spec.ts index 1e63d597735..bad3d369259 100644 --- a/packages/data-service/src/data-service.spec.ts +++ b/packages/data-service/src/data-service.spec.ts @@ -1199,10 +1199,7 @@ describe('DataService', function () { it('throws an error', async function () { await expect( dataService.getSearchIndexes(testNamespace) - ).to.be.rejectedWith( - MongoServerError, - /Unrecognized pipeline stage name: '\$listSearchIndexes'"|\$listSearchIndexes stage is only allowed on MongoDB Atlas/ - ); + ).to.be.rejectedWith(MongoServerError); }); }); @@ -1213,10 +1210,7 @@ describe('DataService', function () { name: 'my-index', definition: {}, }) - ).to.be.rejectedWith( - MongoServerError, - "no such command: 'createSearchIndexes'" - ); + ).to.be.rejectedWith(MongoServerError); }); }); @@ -1224,10 +1218,7 @@ describe('DataService', function () { it('throws an error', async function () { await expect( dataService.updateSearchIndex(testNamespace, 'my-index', {}) - ).to.be.rejectedWith( - MongoServerError, - "no such command: 'updateSearchIndex'" - ); + ).to.be.rejectedWith(MongoServerError); }); }); @@ -1235,10 +1226,7 @@ describe('DataService', function () { it('throws an error', async function () { await expect( dataService.dropSearchIndex(testNamespace, 'my-index') - ).to.be.rejectedWith( - MongoServerError, - "no such command: 'dropSearchIndex'" - ); + ).to.be.rejectedWith(MongoServerError); }); }); From 5e7df678a1b399059ad3c7b12f45bd84387a415c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 14:23:47 +0000 Subject: [PATCH 25/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6379) Update report Co-authored-by: lerouxb <69737+lerouxb@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index bba505ad008..5a5315ee178 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Thu Oct 17 2024. +This document was automatically generated on Fri Oct 18 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 33320a6002a..7d9effad660 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Thu, Oct 17, 2024 at 03:33 PM +Generated on Fri, Oct 18, 2024 at 02:23 PM ## Table of Contents From 2901b382d7f8a65dd7ae4932354489b80ffe7ad6 Mon Sep 17 00:00:00 2001 From: Rhys Date: Fri, 18 Oct 2024 12:34:51 -0400 Subject: [PATCH 26/71] chore(atlas-service): remove unused ai enabled boolean (#6377) --- packages/atlas-service/src/main.ts | 5 +---- packages/atlas-service/src/util.ts | 2 +- .../src/atlas-ai-service.spec.ts | 21 ------------------- .../src/atlas-ai-service.ts | 17 +++------------ .../compass-generative-ai/src/provider.tsx | 15 +++---------- .../components/settings/atlas-login.spec.tsx | 4 +--- .../src/components/settings/atlas-login.tsx | 2 -- 7 files changed, 9 insertions(+), 57 deletions(-) diff --git a/packages/atlas-service/src/main.ts b/packages/atlas-service/src/main.ts index 028a04ece9b..c5c7dd56ac4 100644 --- a/packages/atlas-service/src/main.ts +++ b/packages/atlas-service/src/main.ts @@ -376,10 +376,7 @@ export class CompassAuthService { await throwIfNotOk(res); - const userInfo = (await res.json()) as AtlasUserInfo; - - // TODO: Remove hadcoded `enabledAIFeature: true` when Atlas returns the actual value. - return { ...userInfo, enabledAIFeature: true }; + return (await res.json()) as AtlasUserInfo; })(); return this.currentUser; } diff --git a/packages/atlas-service/src/util.ts b/packages/atlas-service/src/util.ts index fb27ab37e99..6a7070c1743 100644 --- a/packages/atlas-service/src/util.ts +++ b/packages/atlas-service/src/util.ts @@ -9,7 +9,7 @@ export type AtlasUserInfo = { lastName: string; primaryEmail: string; login: string; -} & { enabledAIFeature: boolean }; +}; export type IntrospectInfo = { active: boolean }; diff --git a/packages/compass-generative-ai/src/atlas-ai-service.spec.ts b/packages/compass-generative-ai/src/atlas-ai-service.spec.ts index 14894c420a4..b274e6d0ad7 100644 --- a/packages/compass-generative-ai/src/atlas-ai-service.spec.ts +++ b/packages/compass-generative-ai/src/atlas-ai-service.spec.ts @@ -4,11 +4,9 @@ import { AtlasAiService } from './atlas-ai-service'; import type { PreferencesAccess } from 'compass-preferences-model'; import { createSandboxFromDefaultPreferences } from 'compass-preferences-model'; import { createNoopLogger } from '@mongodb-js/compass-logging/provider'; -import { AtlasAuthService } from '@mongodb-js/atlas-service/provider'; import { ObjectId } from 'mongodb'; const ATLAS_USER = { - enabledAIFeature: true, firstName: 'John', lastName: 'Doe', login: 'johndoe', @@ -23,24 +21,6 @@ const PREFERENCES_USER = { const BASE_URL = 'http://example.com'; -class MockAtlasAuthService extends AtlasAuthService { - isAuthenticated() { - return Promise.resolve(true); - } - async getUserInfo() { - return Promise.resolve({} as any); - } - async signIn() { - return Promise.resolve({} as any); - } - async signOut() { - return Promise.resolve(); - } - async getAuthHeaders() { - return Promise.resolve({}); - } -} - class MockAtlasService { getCurrentUser = () => Promise.resolve(ATLAS_USER); adminApiEndpoint = (url: string, requestId?: string) => @@ -76,7 +56,6 @@ describe('AtlasAiService', function () { atlasAiService = new AtlasAiService( new MockAtlasService() as any, - new MockAtlasAuthService(), preferences, createNoopLogger() ); diff --git a/packages/compass-generative-ai/src/atlas-ai-service.ts b/packages/compass-generative-ai/src/atlas-ai-service.ts index 49a8ccf2777..5cc49001be7 100644 --- a/packages/compass-generative-ai/src/atlas-ai-service.ts +++ b/packages/compass-generative-ai/src/atlas-ai-service.ts @@ -3,10 +3,7 @@ import { type PreferencesAccess, isAIFeatureEnabled, } from 'compass-preferences-model/provider'; -import type { - AtlasAuthService, - AtlasService, -} from '@mongodb-js/atlas-service/provider'; +import type { AtlasService } from '@mongodb-js/atlas-service/provider'; import { AtlasServiceError } from '@mongodb-js/atlas-service/renderer'; import type { Document } from 'mongodb'; import type { Logger } from '@mongodb-js/compass-logging'; @@ -200,14 +197,13 @@ export class AtlasAiService { constructor( private atlasService: AtlasService, - private atlasAuthService: AtlasAuthService, private preferences: PreferencesAccess, private logger: Logger ) { this.initPromise = this.setupAIAccess(); } - private async throwIfAINotEnabled() { + private throwIfAINotEnabled() { if (process.env.COMPASS_E2E_SKIP_ATLAS_SIGNIN === 'true') { return; } @@ -216,13 +212,6 @@ export class AtlasAiService { "Compass' AI functionality is not currently enabled. Please try again later." ); } - // Only throw if we actually have userInfo / logged in. Otherwise allow - // request to fall through so that we can get a proper network error - if ( - (await this.atlasAuthService.getUserInfo()).enabledAIFeature === false - ) { - throw new Error("Can't use AI before accepting terms and conditions"); - } } private async getAIFeatureEnablement(): Promise { @@ -277,7 +266,7 @@ export class AtlasAiService { validationFn: (res: any) => asserts res is T ): Promise => { await this.initPromise; - await this.throwIfAINotEnabled(); + this.throwIfAINotEnabled(); const { signal, requestId, ...rest } = input; const msgBody = buildQueryOrAggregationMessageBody(rest); diff --git a/packages/compass-generative-ai/src/provider.tsx b/packages/compass-generative-ai/src/provider.tsx index 850848d8313..6df896c8439 100644 --- a/packages/compass-generative-ai/src/provider.tsx +++ b/packages/compass-generative-ai/src/provider.tsx @@ -2,10 +2,7 @@ import React, { createContext, useContext, useMemo } from 'react'; import { AtlasAiService } from './atlas-ai-service'; import { preferencesLocator } from 'compass-preferences-model/provider'; import { useLogger } from '@mongodb-js/compass-logging/provider'; -import { - atlasAuthServiceLocator, - atlasServiceLocator, -} from '@mongodb-js/atlas-service/provider'; +import { atlasServiceLocator } from '@mongodb-js/atlas-service/provider'; import { createServiceLocator, createServiceProvider, @@ -17,17 +14,11 @@ export const AtlasAiServiceProvider: React.FC = createServiceProvider( function AtlasAiServiceProvider({ children }) { const logger = useLogger('ATLAS-AI-SERVICE'); const preferences = preferencesLocator(); - const atlasAuthService = atlasAuthServiceLocator(); const atlasService = atlasServiceLocator(); const aiService = useMemo(() => { - return new AtlasAiService( - atlasService, - atlasAuthService, - preferences, - logger - ); - }, [atlasAuthService, preferences, logger, atlasService]); + return new AtlasAiService(atlasService, preferences, logger); + }, [preferences, logger, atlasService]); return ( diff --git a/packages/compass-settings/src/components/settings/atlas-login.spec.tsx b/packages/compass-settings/src/components/settings/atlas-login.spec.tsx index 153a431e063..16f7e90ea92 100644 --- a/packages/compass-settings/src/components/settings/atlas-login.spec.tsx +++ b/packages/compass-settings/src/components/settings/atlas-login.spec.tsx @@ -205,9 +205,7 @@ describe('AtlasLoginSettings', function () { it('should not reset sign in state if there is no sign in attempt in progress', async function () { const atlasAuthService = { - signIn: sandbox - .stub() - .resolves({ login: 'user@mongodb.com', enabledAIFeature: false }), + signIn: sandbox.stub().resolves({ login: 'user@mongodb.com' }), }; const { store } = renderAtlasLoginSettings(atlasAuthService); diff --git a/packages/compass-settings/src/components/settings/atlas-login.tsx b/packages/compass-settings/src/components/settings/atlas-login.tsx index 5aea12d947a..27173f776a0 100644 --- a/packages/compass-settings/src/components/settings/atlas-login.tsx +++ b/packages/compass-settings/src/components/settings/atlas-login.tsx @@ -70,7 +70,6 @@ const atlasLoginEmailStyles = css({ export const AtlasLoginSettings: React.FunctionComponent<{ isSignInInProgress: boolean; userLogin: string | null; - isAIFeatureEnabled: boolean; onSignInClick(): void; onSignOutClick(): void; }> = ({ isSignInInProgress, userLogin, onSignInClick, onSignOutClick }) => { @@ -174,7 +173,6 @@ export const ConnectedAtlasLoginSettings = connect( return { isSignInInProgress: state.atlasLogin.status === 'in-progress', userLogin: state.atlasLogin.userInfo?.login ?? null, - isAIFeatureEnabled: Boolean(state.atlasLogin.userInfo?.enabledAIFeature), }; }, { From 6258e52369207076fc1cd7f4d2d0bbc99450d5cd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 16:41:43 +0000 Subject: [PATCH 27/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6380) Update report Co-authored-by: Anemy <1791149+Anemy@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 7d9effad660..f32b0abd1ad 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 18, 2024 at 02:23 PM +Generated on Fri, Oct 18, 2024 at 04:41 PM ## Table of Contents From fdde5ad83eafd1c735d02f135c6d7ea311da15c7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 20 Oct 2024 03:17:24 +0000 Subject: [PATCH 28/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6382) Update report Co-authored-by: mcasimir <334881+mcasimir@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 5a5315ee178..37cd779bc44 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Fri Oct 18 2024. +This document was automatically generated on Sun Oct 20 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index f32b0abd1ad..44244a5588e 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Fri, Oct 18, 2024 at 04:41 PM +Generated on Sun, Oct 20, 2024 at 03:17 AM ## Table of Contents From 409488e2d820c27af7fb161d9ecff9ab815fe1a7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 05:05:30 +0000 Subject: [PATCH 29/71] v1.44.6-beta.0 --- package-lock.json | 2 +- packages/compass/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 633f307772b..302ad83cfc9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43409,7 +43409,7 @@ }, "packages/compass": { "name": "mongodb-compass", - "version": "1.44.5-beta.6", + "version": "1.44.6-beta.0", "hasInstallScript": true, "license": "SSPL", "dependencies": { diff --git a/packages/compass/package.json b/packages/compass/package.json index 6cbdf809835..7525df1ac59 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -4,7 +4,7 @@ "productName": "MongoDB Compass", "description": "The MongoDB GUI", "homepage": "https://www.mongodb.com/products/compass", - "version": "1.44.5-beta.6", + "version": "1.44.6-beta.0", "apiVersion": "3.0.0", "main": "build/main.js", "author": { From f251db73f6aced4a851a1ba4bdcc00f80293a943 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Tue, 22 Oct 2024 15:54:34 +0200 Subject: [PATCH 30/71] fix(proxy): do not lock users out of Compass when using authenticated proxies COMPASS-8382 (#6385) --- .../components/settings/proxy-settings-custom.tsx | 7 +++++++ packages/compass/src/main/application.ts | 15 +-------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/packages/compass-settings/src/components/settings/proxy-settings-custom.tsx b/packages/compass-settings/src/components/settings/proxy-settings-custom.tsx index c3c7a85a5d4..3e123e20e5d 100644 --- a/packages/compass-settings/src/components/settings/proxy-settings-custom.tsx +++ b/packages/compass-settings/src/components/settings/proxy-settings-custom.tsx @@ -1,4 +1,5 @@ import { + Banner, Description, FormFieldContainer, Label, @@ -197,6 +198,12 @@ export const ProxySettingsCustom: React.FunctionComponent< disabled={disabled} /> + {(proxyPassword || proxyUsername) && ( + + Some resources, such as map data for geographic visualizations, cannot + currently be loaded through proxies which require authentication. + + )}
); }; diff --git a/packages/compass/src/main/application.ts b/packages/compass/src/main/application.ts index 37207a21ced..be6e8e8e605 100644 --- a/packages/compass/src/main/application.ts +++ b/packages/compass/src/main/application.ts @@ -2,7 +2,6 @@ import './disable-node-deprecations'; // Separate module so it runs first import path from 'path'; import { EventEmitter } from 'events'; import type { BrowserWindow, Event, ProxyConfig } from 'electron'; -import { dialog } from 'electron'; import { app, safeStorage, session } from 'electron'; import { ipcMain } from 'hadron-ipc'; import type { AutoUpdateManagerState } from './auto-update-manager'; @@ -323,19 +322,7 @@ class CompassApplication { error: headline, } ); - - const sep = path.sep; - const configPath = `${app.getPath( - 'userData' - )}${sep}AppPreferences${sep}General.json`; - - dialog.showErrorBox( - 'Unsupported proxy configuration', - `${headline}\n\n - To reset the proxy configuration, remove the "proxy" key in ${configPath} and restart Compass.` - ); - - app.quit(); + await target.setProxy({}); } const agent = createAgent(proxyOptions); From c78c97d92ecc3e059e29411abea111d4652c2c03 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 14:00:57 +0000 Subject: [PATCH 31/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6386) Update report Co-authored-by: addaleax <899444+addaleax@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 37cd779bc44..cc6829fa259 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Sun Oct 20 2024. +This document was automatically generated on Tue Oct 22 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 44244a5588e..e3c5260cc42 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Sun, Oct 20, 2024 at 03:17 AM +Generated on Tue, Oct 22, 2024 at 02:00 PM ## Table of Contents From add5de6478d98bbbb0e5e27e3a49148b67add17f Mon Sep 17 00:00:00 2001 From: syn-zhu <167124917+syn-zhu@users.noreply.github.com> Date: Tue, 22 Oct 2024 12:04:10 -0400 Subject: [PATCH 32/71] chore(e2e): enable e2e tests to run directly against Atlas (#6381) * enable test against atlas * use const * update function * comments * fix if check * comments * comments --- .../helpers/commands/connect-form.ts | 7 + packages/compass-e2e-tests/helpers/compass.ts | 77 +++++++-- packages/compass-e2e-tests/index.ts | 154 ++++++++++-------- 3 files changed, 156 insertions(+), 82 deletions(-) diff --git a/packages/compass-e2e-tests/helpers/commands/connect-form.ts b/packages/compass-e2e-tests/helpers/commands/connect-form.ts index 97575d39fce..d6a11d99bbd 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect-form.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect-form.ts @@ -8,6 +8,7 @@ import { DEFAULT_CONNECTION_NAME_2, DEFAULT_CONNECTION_STRING_1, DEFAULT_CONNECTION_STRING_2, + TEST_ATLAS_CLOUD_EXTERNAL_URL, TEST_MULTIPLE_CONNECTIONS, } from '../compass'; import Debug from 'debug'; @@ -986,6 +987,12 @@ export async function setupDefaultConnections(browser: CompassBrowser) { whereas we do have some tests that try and use those. We can easily change this in future if needed, though. */ + + // no need to setup connections if we are running against Atlas + if (TEST_ATLAS_CLOUD_EXTERNAL_URL) { + return; + } + for (const connectionName of [ DEFAULT_CONNECTION_NAME_1, DEFAULT_CONNECTION_NAME_2, diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 3cd10cc47a0..d20366cc403 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -46,6 +46,10 @@ let MONGODB_USE_ENTERPRISE = // should we test compass-web (true) or compass electron (false)? export const TEST_COMPASS_WEB = process.argv.includes('--test-compass-web'); +export const TEST_ATLAS_CLOUD_EXTERNAL_URL = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_URL; +export const TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID; // multiple connections is now the default export const TEST_MULTIPLE_CONNECTIONS = true; @@ -75,19 +79,22 @@ export const MONGODB_TEST_SERVER_PORT = Number( process.env.MONGODB_TEST_SERVER_PORT ?? 27091 ); -export const DEFAULT_CONNECTION_STRING_1 = `mongodb://127.0.0.1:${MONGODB_TEST_SERVER_PORT}/test`; +export const DEFAULT_CONNECTION_STRING_1 = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_STRING_1 || + `mongodb://127.0.0.1:${MONGODB_TEST_SERVER_PORT}/test`; // NOTE: in browser.setupDefaultConnections() we don't give the first connection an // explicit name, so it gets a calculated one based off the connection string -export const DEFAULT_CONNECTION_NAME_1 = connectionNameFromString( - DEFAULT_CONNECTION_STRING_1 -); +export const DEFAULT_CONNECTION_NAME_1 = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_NAME_1 || + connectionNameFromString(DEFAULT_CONNECTION_STRING_1); // for testing multiple connections -export const DEFAULT_CONNECTION_STRING_2 = `mongodb://127.0.0.1:${ - MONGODB_TEST_SERVER_PORT + 1 -}/test`; +export const DEFAULT_CONNECTION_STRING_2 = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_STRING_2 || + `mongodb://127.0.0.1:${MONGODB_TEST_SERVER_PORT + 1}/test`; // NOTE: in browser.setupDefaultConnections() the second connection gets given an explicit name -export const DEFAULT_CONNECTION_NAME_2 = 'connection-2'; +export const DEFAULT_CONNECTION_NAME_2 = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_NAME_2 || 'connection-2'; export function updateMongoDBServerInfo() { try { @@ -106,7 +113,7 @@ export function updateMongoDBServerInfo() { 'server-info', '--', '--connectionString', - `mongodb://127.0.0.1:${String(MONGODB_TEST_SERVER_PORT)}`, + DEFAULT_CONNECTION_STRING_1, ], { encoding: 'utf-8' } ); @@ -761,6 +768,16 @@ async function startCompassElectron( return compass; } +export type StoredAtlasCloudCookies = { + name: string; + value: string; + domain: string; + path: string; + secure: boolean; + httpOnly: boolean; + expirationDate: number; +}[]; + export async function startBrowser( name: string, // eslint-disable-next-line @typescript-eslint/no-unused-vars @@ -787,7 +804,47 @@ export async function startBrowser( ...webdriverOptions, ...wdioOptions, })) as CompassBrowser; - await browser.navigateTo('http://localhost:7777/'); + + if (TEST_ATLAS_CLOUD_EXTERNAL_URL) { + // Navigate to a 404 page to set cookies + await browser.navigateTo(`https://${TEST_ATLAS_CLOUD_EXTERNAL_URL}/404`); + + const cookiesFile = process.env.TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE; + if (!cookiesFile) { + throw new Error( + 'TEST_ATLAS_CLOUD_EXTERNAL_URL is set but TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE is not. Please set TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE to the path of the cookies file.' + ); + } + const cookies: StoredAtlasCloudCookies = JSON.parse( + await fs.readFile(cookiesFile, 'utf8') + ); + + // These are the relevant cookies for auth: + // https://github.com/10gen/mms/blob/6d27992a6ab9ab31471c8bcdaa4e347aa39f4013/server/src/features/com/xgen/svc/cukes/helpers/Client.java#L122-L130 + await browser.setCookies( + cookies + .filter((cookie) => { + cookie.name.includes('mmsa-') || + cookie.name.includes('mdb-sat') || + cookie.name.includes('mdb-srt'); + }) + .map((cookie) => ({ + name: cookie.name, + value: cookie.value, + domain: cookie.domain, + path: cookie.path, + secure: cookie.secure, + httpOnly: cookie.httpOnly, + })) + ); + + await browser.navigateTo( + `https://${TEST_ATLAS_CLOUD_EXTERNAL_URL}/v2/${TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID}#/explorer` + ); + } else { + await browser.navigateTo('http://localhost:7777/'); + } + const compass = new Compass(name, browser, { mode: 'web', writeCoverage: false, diff --git a/packages/compass-e2e-tests/index.ts b/packages/compass-e2e-tests/index.ts index 309767330a2..0974b80e50c 100644 --- a/packages/compass-e2e-tests/index.ts +++ b/packages/compass-e2e-tests/index.ts @@ -18,6 +18,7 @@ import { LOG_PATH, removeUserDataDir, updateMongoDBServerInfo, + TEST_ATLAS_CLOUD_EXTERNAL_URL, } from './helpers/compass'; import ResultLogger from './helpers/result-logger'; @@ -60,52 +61,54 @@ async function setup() { const disableStartStop = process.argv.includes('--disable-start-stop'); const shouldTestCompassWeb = process.argv.includes('--test-compass-web'); - // When working on the tests it is faster to just keep the server running. - if (!disableStartStop) { - debug('Starting MongoDB server'); - crossSpawn.sync('npm', ['run', 'start-servers'], { stdio: 'inherit' }); - - if (shouldTestCompassWeb) { - debug('Starting Compass Web'); - compassWeb = crossSpawn.spawn( - 'npm', - ['run', '--unsafe-perm', 'start-web'], - { - cwd: path.resolve(__dirname, '..', '..'), - env: { - ...process.env, - OPEN_BROWSER: 'false', // tell webpack dev server not to open the default browser - DISABLE_DEVSERVER_OVERLAY: 'true', - APP_ENV: 'webdriverio', - }, + if (!TEST_ATLAS_CLOUD_EXTERNAL_URL) { + // When working on the tests it is faster to just keep the server running. + if (!disableStartStop) { + debug('Starting MongoDB server'); + crossSpawn.sync('npm', ['run', 'start-servers'], { stdio: 'inherit' }); + + if (shouldTestCompassWeb) { + debug('Starting Compass Web'); + compassWeb = crossSpawn.spawn( + 'npm', + ['run', '--unsafe-perm', 'start-web'], + { + cwd: path.resolve(__dirname, '..', '..'), + env: { + ...process.env, + OPEN_BROWSER: 'false', // tell webpack dev server not to open the default browser + DISABLE_DEVSERVER_OVERLAY: 'true', + APP_ENV: 'webdriverio', + }, + } + ); + + compassWeb.stdout.pipe(process.stdout); + compassWeb.stderr.pipe(process.stderr); + + let serverReady = false; + const start = Date.now(); + while (!serverReady) { + if (Date.now() - start >= 120_000) { + throw new Error( + 'The compass-web sandbox is still not running after 120000ms' + ); + } + try { + const res = await fetch('http://localhost:7777'); + serverReady = res.ok; + debug('Web server ready: %s', serverReady); + } catch (err) { + debug('Failed to connect to dev server: %s', (err as any).message); + } + await wait(1000); } - ); - - compassWeb.stdout.pipe(process.stdout); - compassWeb.stderr.pipe(process.stderr); - - let serverReady = false; - const start = Date.now(); - while (!serverReady) { - if (Date.now() - start >= 120_000) { - throw new Error( - 'The compass-web sandbox is still not running after 120000ms' - ); - } - try { - const res = await fetch('http://localhost:7777'); - serverReady = res.ok; - debug('Web server ready: %s', serverReady); - } catch (err) { - debug('Failed to connect to dev server: %s', (err as any).message); - } - await wait(1000); + } else { + debug('Writing electron-versions.json'); + crossSpawn.sync('scripts/write-electron-versions.sh', [], { + stdio: 'inherit', + }); } - } else { - debug('Writing electron-versions.json'); - crossSpawn.sync('scripts/write-electron-versions.sh', [], { - stdio: 'inherit', - }); } } @@ -139,34 +142,36 @@ function cleanup() { const disableStartStop = process.argv.includes('--disable-start-stop'); const shouldTestCompassWeb = process.argv.includes('--test-compass-web'); - if (!disableStartStop) { - if (shouldTestCompassWeb) { - debug('Stopping compass-web'); - try { - if (compassWeb.pid) { - debug(`killing compass-web [${compassWeb.pid}]`); - kill(compassWeb.pid, 'SIGINT'); - } else { - debug('no pid for compass-web'); + if (!TEST_ATLAS_CLOUD_EXTERNAL_URL) { + if (!disableStartStop) { + if (shouldTestCompassWeb) { + debug('Stopping compass-web'); + try { + if (compassWeb.pid) { + debug(`killing compass-web [${compassWeb.pid}]`); + kill(compassWeb.pid, 'SIGINT'); + } else { + debug('no pid for compass-web'); + } + } catch (e) { + debug('Failed to stop compass-web', e); } - } catch (e) { - debug('Failed to stop compass-web', e); } - } - debug('Stopping MongoDB server'); - try { - crossSpawn.sync('npm', ['run', 'stop-servers'], { - // If it's taking too long we might as well kill the process and move on, - // mongodb-runner is flaky sometimes and in ci `posttest-ci` script will - // take care of additional clean up anyway - timeout: 120_000, - stdio: 'inherit', - }); - } catch (e) { - debug('Failed to stop MongoDB Server', e); + debug('Stopping MongoDB server'); + try { + crossSpawn.sync('npm', ['run', 'stop-servers'], { + // If it's taking too long we might as well kill the process and move on, + // mongodb-runner is flaky sometimes and in ci `posttest-ci` script will + // take care of additional clean up anyway + timeout: 120_000, + stdio: 'inherit', + }); + } catch (e) { + debug('Failed to stop MongoDB Server', e); + } + debug('Done stopping'); } - debug('Done stopping'); } // Since the webdriverio update something is messing with the terminal's @@ -258,9 +263,10 @@ async function main() { const e2eTestGroupsAmount = parseInt(process.env.E2E_TEST_GROUPS || '1'); const e2eTestGroup = parseInt(process.env.E2E_TEST_GROUP || '1'); + const e2eTestFilter = process.env.E2E_TEST_FILTER || '*'; - const rawTests = ( - await glob('tests/**/*.{test,spec}.ts', { + const tests = ( + await glob(`tests/**/${e2eTestFilter}.{test,spec}.ts`, { cwd: __dirname, }) ).filter((value, index, array) => { @@ -271,7 +277,7 @@ async function main() { return index >= minGroupIndex && index <= maxGroupIndex; }); - console.info('Test files:', rawTests); + console.info('Test files:', tests); // The only test file that's interested in the first-run experience (at the // time of writing) is time-to-first-query.ts and that happens to be @@ -279,7 +285,11 @@ async function main() { // will also get the slow first run experience for no good reason unless it is // the time-to-first-query.ts test. // So yeah.. this is a bit of a micro optimisation. - const tests = [FIRST_TEST, ...rawTests.filter((t) => t !== FIRST_TEST)]; + tests.sort((a, b) => { + if (a === FIRST_TEST) return -1; + else if (b === FIRST_TEST) return 1; + else return 0; + }); // Ensure the insert-data mocha hooks are run. tests.unshift(path.join('helpers', 'insert-data.ts')); From b1bc75e5721196ea15b3b207ed0a87ef4ff42396 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 16:10:36 +0000 Subject: [PATCH 33/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6388) Update report Co-authored-by: syn-zhu <167124917+syn-zhu@users.noreply.github.com> --- AUTHORS | 1 + docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index e9a04ad3d3d..9afdce0409c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -92,3 +92,4 @@ admin-token-bot <36773031+admin-token-bot@users.noreply.github.com> Kræn Hansen Kræn Hansen Ruchitha Rajaghatta <77162985+ruchitharajaghatta@users.noreply.github.com> +syn-zhu <167124917+syn-zhu@users.noreply.github.com> diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index e3c5260cc42..cbe15b7a7b3 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 22, 2024 at 02:00 PM +Generated on Tue, Oct 22, 2024 at 04:10 PM ## Table of Contents From 911b18033556c75c6fbce4c98f3b834a92590616 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Wed, 23 Oct 2024 13:35:50 +0200 Subject: [PATCH 34/71] chore(deps): update node-gyp to 10; remove workaround for windows; remove python 3.6 from path COMPASS-8346 (#6390) chore(deps): update node-gyp to 10; remove workaround for windows; remove python 3.6 from path --- .evergreen/node-gyp-bug-workaround.sh | 53 -- .evergreen/preinstall.sh | 3 - .evergreen/print-compass-env.js | 17 +- package-lock.json | 929 +++++++++++++++++++------- package.json | 2 +- 5 files changed, 708 insertions(+), 296 deletions(-) delete mode 100755 .evergreen/node-gyp-bug-workaround.sh diff --git a/.evergreen/node-gyp-bug-workaround.sh b/.evergreen/node-gyp-bug-workaround.sh deleted file mode 100755 index 36b233a0fbb..00000000000 --- a/.evergreen/node-gyp-bug-workaround.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/usr/bin/env bash - -# This is a workaround for a node-gyp bug that has not fully been investigated -# due to problems reproducing it outside of CI environments (even though it -# occurs both in evergreen and github actions). -# Something seems to go wrong when node-gyp extracts the Node.js header tarball, -# on Windows specifically (this is most likely because node-tar treats -# the overwriting of existing files differently on Windows than on other OS -- -# for good reasons, but still). -# The most likely cause of this issue is that node-gyp somehow extracts the -# same headers tarball twice, in parallel, in the same location, with race -# conditions in the tar extraction code leading to issues. -# The extraction result ends up in %LOCALAPPDATA%\node-gyp\Cache. -# Manually extracting the tarballs will solve this issue, so we're doing that -# here. -# For actually resolving the bug, we would probably need somebody with a local -# reproduction. However, it seems likely that other people will also encounter -# this issue, so there's also a good chance that this workaround will just -# not be needed with a future node-gyp version. - -if [ x"$NODE_JS_VERSION" = x"" ]; then - if node -v; then - export NODE_JS_VERSION=$(node -p 'process.version.slice(1)') - else - echo "Need NODE_JS_VERSION to be set or Node.js to be installed for node-gyp bug workaround script" - exit 1 - fi -fi - -if [ x"$LOCALAPPDATA" = x"" ]; then - echo "No LOCALAPPDATA set, ignoring node-gyp bug workaround script" - exit -fi - -set -ex - -SCRIPTDIR="$(cd $(dirname "$0"); pwd)" -CACHEDIR="$LOCALAPPDATA/node-gyp/Cache" -rm -rvf "$CACHEDIR" -mkdir -p "$CACHEDIR/$NODE_JS_VERSION" -cd "$CACHEDIR/$NODE_JS_VERSION" - -bash "${SCRIPTDIR}/retry-with-backoff.sh" curl -sSfLO "https://nodejs.org/download/release/v$NODE_JS_VERSION/node-v$NODE_JS_VERSION-headers.tar.gz" -tar --strip-components=1 -xvzf "node-v$NODE_JS_VERSION-headers.tar.gz" -for arch in x64 x86 arm64; do - mkdir $arch - pushd $arch - bash "${SCRIPTDIR}/retry-with-backoff.sh" curl -sSfLO "https://nodejs.org/download/release/v$NODE_JS_VERSION/win-$arch/node.lib" || echo "no $arch v$NODE_JS_VERSION .lib file" - popd -done - -# Finally, store the right installVersion value for current node-gyp versions -echo 9 > installVersion diff --git a/.evergreen/preinstall.sh b/.evergreen/preinstall.sh index a0e247396e0..bac0ce1249e 100755 --- a/.evergreen/preinstall.sh +++ b/.evergreen/preinstall.sh @@ -39,9 +39,6 @@ if [ -n "$IS_WINDOWS" ]; then ./node.exe node_modules/npm2/bin/npm-cli.js i -g npm@$NPM_VERSION rm -rf node_modules/npm2/ chmod +x npm.cmd npm - - cd .. - .evergreen/node-gyp-bug-workaround.sh else if command -v ldd &> /dev/null && `ldd $(which bash) | grep 'libc.so' | awk '{print $3}'` | grep -Eq 'release version 2.(1|2[0-7])'; then echo "Installing unofficial nodejs compiled for glibc 2.17 v${NODE_JS_VERSION} for ${PLATFORM} on ${ARCH}..." diff --git a/.evergreen/print-compass-env.js b/.evergreen/print-compass-env.js index 5f76ce0bc65..b9efa68f58f 100755 --- a/.evergreen/print-compass-env.js +++ b/.evergreen/print-compass-env.js @@ -68,13 +68,10 @@ function printCompassEnv() { } if (process.env.PLATFORM === 'linux') { - // To build node modules on linux post electron 13 we need - // a newer c++ compiler version, this adds it. + // To build node modules on linux post electron 13 we need a newer c++ + // compiler version and at least python v3.9, this adds it. // https://jira.mongodb.org/browse/COMPASS-5150 pathsToPrepend.unshift('/opt/mongodbtoolchain/v3/bin'); - - // Make sure that linux is using python 3.6 (node-gyp requirement) - pathsToPrepend.unshift('/opt/python/3.6/bin'); } PATH = maybePrependPaths(PATH, pathsToPrepend); @@ -103,10 +100,16 @@ function printCompassEnv() { printVar('IS_RHEL', process.env.IS_RHEL); printVar('IS_UBUNTU', process.env.IS_UBUNTU); printVar('DEBUG', process.env.DEBUG); - printVar('MONGODB_VERSION', process.env.MONGODB_VERSION || process.env.MONGODB_DEFAULT_VERSION); + printVar( + 'MONGODB_VERSION', + process.env.MONGODB_VERSION || process.env.MONGODB_DEFAULT_VERSION + ); printVar('DEV_VERSION_IDENTIFIER', process.env.DEV_VERSION_IDENTIFIER); printVar('EVERGREEN_REVISION', process.env.EVERGREEN_REVISION); - printVar('EVERGREEN_REVISION_ORDER_ID', process.env.EVERGREEN_REVISION_ORDER_ID); + printVar( + 'EVERGREEN_REVISION_ORDER_ID', + process.env.EVERGREEN_REVISION_ORDER_ID + ); if (process.platform === 'darwin') { // Without this, kerberos 2.1.1 is broken on macOS, but this flag is only diff --git a/package-lock.json b/package-lock.json index 71e5a8b4954..6b76ddb88c5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "js-yaml": "^4.1.0", "lerna": "^7.1.5", "lodash": "^4.17.21", - "node-gyp": "^8.4.1" + "node-gyp": "^10.2.0" }, "engines": { "node": ">=20.15.0", @@ -9052,6 +9052,30 @@ "node": ">= 8" } }, + "node_modules/@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "license": "ISC", + "dependencies": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/agent/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@npmcli/arborist": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-6.2.0.tgz", @@ -30602,6 +30626,270 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/make-fetch-happen/node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, + "node_modules/make-fetch-happen/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/make-fetch-happen/node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/map-obj": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", @@ -32408,27 +32696,28 @@ } }, "node_modules/node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, + "license": "MIT", "dependencies": { "env-paths": "^2.2.0", - "glob": "^7.1.4", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "tar": "^6.2.1", + "which": "^4.0.0" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">= 10.12.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/node-gyp-build": { @@ -32442,171 +32731,169 @@ "node-gyp-build-test": "build-test.js" } }, - "node_modules/node-gyp/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, + "license": "ISC", "engines": { - "node": ">= 6.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "engines": { - "node": ">=8" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/node-gyp/node_modules/are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "node_modules/node-gyp/node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, + "license": "ISC", "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/gauge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.2.tgz", - "integrity": "sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==", + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1", - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/node-gyp/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": ">=16" } }, - "node_modules/node-gyp/node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/node-gyp/node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "MIT", + "license": "BlueOak-1.0.0", "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">= 6" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/node-gyp/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "agent-base": "6", - "debug": "4" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">= 6" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "node_modules/node-gyp/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" - }, + "license": "ISC", "engines": { - "node": ">= 10" + "node": ">=16 || 14 >=14.17" } }, "node_modules/node-gyp/node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, + "license": "ISC", "dependencies": { - "abbrev": "1" + "abbrev": "^2.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { - "node": ">=6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", + "node_modules/node-gyp/node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", - "set-blocking": "^2.0.0" - }, + "license": "ISC", "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", + "node_modules/node-gyp/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - }, + "license": "ISC", "engines": { - "node": ">= 10" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "node_modules/node-gyp/node_modules/which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": "^5.0.1" + "isexe": "^3.1.1" + }, + "bin": { + "node-which": "bin/which.js" }, "engines": { - "node": ">=8" + "node": "^16.13.0 || >=18.0.0" } }, "node_modules/node-machine-id": { @@ -40101,9 +40388,10 @@ } }, "node_modules/tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "license": "ISC", "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -60472,6 +60760,27 @@ "fastq": "^1.6.0" } }, + "@npmcli/agent": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.2.tgz", + "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", + "dev": true, + "requires": { + "agent-base": "^7.1.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.1", + "lru-cache": "^10.0.1", + "socks-proxy-agent": "^8.0.3" + }, + "dependencies": { + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + } + } + }, "@npmcli/arborist": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/@npmcli/arborist/-/arborist-6.2.0.tgz", @@ -78601,6 +78910,190 @@ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, + "make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "requires": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "dependencies": { + "@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "requires": { + "semver": "^7.3.5" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + } + }, + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + } + }, + "fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "requires": { + "minipass": "^7.0.3" + } + }, + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "requires": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + } + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "requires": { + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" + } + }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, + "minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "requires": { + "minipass": "^7.0.3" + } + }, + "minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true + }, + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + }, + "ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "requires": { + "minipass": "^7.0.3" + } + }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + } + } + }, "map-obj": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.2.1.tgz", @@ -80487,149 +80980,121 @@ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" }, "node-gyp": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", - "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, "requires": { "env-paths": "^2.2.0", - "glob": "^7.1.4", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", "graceful-fs": "^4.2.6", - "make-fetch-happen": "^9.1.0", - "nopt": "^5.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" + "tar": "^6.2.1", + "which": "^4.0.0" }, "dependencies": { - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true }, - "are-we-there-yet": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", - "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" + "balanced-match": "^1.0.0" } }, - "gauge": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.2.tgz", - "integrity": "sha512-aSPRm2CvA9R8QyU5eXMFPd+cYkyxLsXHd2l5/FOH2V/eml//M04G6KZOmTap07O1PvEwNcl2NndyLfK8g3QrKA==", + "foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "requires": { - "ansi-regex": "^5.0.1", - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" } }, - "http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "requires": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" } }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "isexe": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true + }, + "jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "requires": { - "agent-base": "6", - "debug": "4" + "@isaacs/cliui": "^8.0.2", + "@pkgjs/parseargs": "^0.11.0" } }, - "make-fetch-happen": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", - "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", + "minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "requires": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.2.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.2", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^6.0.0", - "ssri": "^8.0.0" + "brace-expansion": "^2.0.1" } }, + "minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true + }, "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, "requires": { - "abbrev": "1" + "abbrev": "^2.0.0" } }, - "npmlog": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.1.tgz", - "integrity": "sha512-BTHDvY6nrRHuRfyjt1MAufLxYdVXZfd099H4+i1f0lPywNQyI4foeNXJRObB/uy+TYqUW0vAD9gbdSOXPst7Eg==", - "dev": true, - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.0", - "set-blocking": "^2.0.0" - } + "proc-log": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "dev": true }, - "socks-proxy-agent": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz", - "integrity": "sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.1", - "socks": "^2.6.1" - } + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "which": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "requires": { - "ansi-regex": "^5.0.1" + "isexe": "^3.1.1" } } } @@ -86394,9 +86859,9 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==" }, "tar": { - "version": "6.1.15", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", - "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", diff --git a/package.json b/package.json index 0dec690b267..f2bb606cfd4 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "js-yaml": "^4.1.0", "lerna": "^7.1.5", "lodash": "^4.17.21", - "node-gyp": "^8.4.1" + "node-gyp": "^10.2.0" }, "engines": { "node": ">=20.15.0", From c72a1df872eb53a77d37ade2488102c718f2e6d9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:42:47 +0000 Subject: [PATCH 35/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6391) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index cc6829fa259..22c71e496e5 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Tue Oct 22 2024. +This document was automatically generated on Wed Oct 23 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index cbe15b7a7b3..4f6b27fd4a0 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 22, 2024 at 04:10 PM +Generated on Wed, Oct 23, 2024 at 11:42 AM ## Table of Contents From ce0d66f2196a2be15cf1255a08b33190fbd008e3 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Wed, 23 Oct 2024 13:52:44 +0200 Subject: [PATCH 36/71] chore(e2e): restructure e2e test helpers to better separate shared state and setup / teardown functions COMPASS-8361 (#6383) * chore(e2e): restructure e2e test helpers to better separate shared state and setup / teardown functions * chore: fix depcheck and var name * chore: remove TEST_PACKAGED_APP env var usage * chore: replset for test servers and better cleanup * chore: eslint fixes * chore(e2e): use DEFAULT_CONNECTIONS in connect form helpers * chore: ts fix * chore: update to non-esm version * chore: fix glob * chore: remove unused imports * chore: more glob adjustments * chore: uncomment retries * chore: fix env var name --- .evergreen/functions.yml | 2 +- package-lock.json | 49 +- package.json | 2 - packages/compass-e2e-tests/.depcheckrc | 7 +- packages/compass-e2e-tests/.gitignore | 2 - packages/compass-e2e-tests/.prettierignore | 4 - .../helpers/commands/connect-form.ts | 78 +--- .../helpers/commands/screenshot.ts | 4 +- packages/compass-e2e-tests/helpers/compass.ts | 218 ++++----- packages/compass-e2e-tests/helpers/gunzip.ts | 41 ++ .../compass-e2e-tests/helpers/insert-data.ts | 18 +- .../helpers/result-logger.ts | 340 -------------- .../helpers/test-runner-context.ts | 193 ++++++++ .../helpers/test-runner-global-fixtures.ts | 225 +++++++++ packages/compass-e2e-tests/index.ts | 427 +++++------------- packages/compass-e2e-tests/package.json | 9 +- packages/compass-e2e-tests/scripts/gunzip.ts | 37 -- .../compass-e2e-tests/scripts/server-info.ts | 27 -- .../scripts/write-electron-versions.sh | 18 - packages/compass-web/package.json | 1 + packages/compass/package.json | 2 +- 21 files changed, 737 insertions(+), 967 deletions(-) create mode 100755 packages/compass-e2e-tests/helpers/gunzip.ts delete mode 100644 packages/compass-e2e-tests/helpers/result-logger.ts create mode 100644 packages/compass-e2e-tests/helpers/test-runner-context.ts create mode 100644 packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts delete mode 100755 packages/compass-e2e-tests/scripts/gunzip.ts delete mode 100644 packages/compass-e2e-tests/scripts/server-info.ts delete mode 100755 packages/compass-e2e-tests/scripts/write-electron-versions.sh diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index acf5b475190..4124ba293d1 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -664,7 +664,7 @@ functions: DEBUG: ${debug|} MONGODB_VERSION: ${mongodb_version|} MONGODB_RUNNER_VERSION: ${mongodb_version|} - BROWSER_NAME: ${browser_name} + COMPASS_WEB_BROWSER_NAME: ${browser_name} E2E_TEST_GROUPS: ${e2e_test_groups} E2E_TEST_GROUP: ${e2e_test_group} script: | diff --git a/package-lock.json b/package-lock.json index 6b76ddb88c5..8b2d922b7c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -31757,6 +31757,7 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/mongodb-build-info/-/mongodb-build-info-1.7.2.tgz", "integrity": "sha512-eoLFZvCIjcwijYJdxvYupj1c+55VAVm0o4gBJjrcDxxmmpm+bC4Ix9ayZbyhQdVXDZAGDi03NA0GghXjBVXnxg==", + "license": "Apache-2.0", "dependencies": { "mongodb-connection-string-url": "^3.0.0" } @@ -44485,13 +44486,14 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", + "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", - "fast-glob": "^3.2.7", "glob": "^10.2.5", "hadron-build": "^25.5.12", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", + "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", "mongodb-log-writer": "^1.4.2", "mongodb-runner": "^5.6.3", @@ -44505,6 +44507,7 @@ "tree-kill": "^1.2.2", "ts-node": "^10.9.1", "webdriverio": "^8.40.0", + "why-is-node-running": "^2.3.0", "xvfb-maybe": "^0.2.1" } }, @@ -44531,6 +44534,13 @@ "node": ">=8" } }, + "packages/compass-e2e-tests/node_modules/electron-to-chromium": { + "version": "1.5.41", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", + "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", + "dev": true, + "license": "ISC" + }, "packages/compass-e2e-tests/node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -44779,6 +44789,23 @@ "webidl-conversions": "^3.0.0" } }, + "packages/compass-e2e-tests/node_modules/why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "license": "MIT", + "dependencies": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + }, + "bin": { + "why-is-node-running": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, "packages/compass-editor": { "name": "@mongodb-js/compass-editor", "version": "0.31.1", @@ -68055,13 +68082,14 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", + "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", - "fast-glob": "^3.2.7", "glob": "^10.2.5", "hadron-build": "^25.5.12", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", + "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", "mongodb-log-writer": "^1.4.2", "mongodb-runner": "^5.6.3", @@ -68075,6 +68103,7 @@ "tree-kill": "^1.2.2", "ts-node": "^10.9.1", "webdriverio": "^8.40.0", + "why-is-node-running": "^2.3.0", "xvfb-maybe": "^0.2.1" }, "dependencies": { @@ -68098,6 +68127,12 @@ "is-wsl": "^2.1.1" } }, + "electron-to-chromium": { + "version": "1.5.41", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", + "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", + "dev": true + }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -68272,6 +68307,16 @@ "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" } + }, + "why-is-node-running": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", + "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", + "dev": true, + "requires": { + "siginfo": "^2.0.0", + "stackback": "0.0.2" + } } } }, diff --git a/package.json b/package.json index f2bb606cfd4..30538aae301 100644 --- a/package.json +++ b/package.json @@ -32,8 +32,6 @@ "package-compass": "npm run package-compass --workspace=mongodb-compass --", "package-compass-debug": "npm run package-compass-debug --workspace=mongodb-compass --", "package-compass-nocompile": "npm run package-compass-nocompile --workspace=mongodb-compass --", - "prestart": "npm run compile --workspace=@mongodb-js/webpack-config-compass", - "prestart-web": "npm run prestart", "start": "npm run start --workspace=mongodb-compass", "start-web": "npm run start --workspace=@mongodb-js/compass-web", "test": "lerna run test --concurrency 1 --stream", diff --git a/packages/compass-e2e-tests/.depcheckrc b/packages/compass-e2e-tests/.depcheckrc index a14dc086cad..e3dc5af3444 100644 --- a/packages/compass-e2e-tests/.depcheckrc +++ b/packages/compass-e2e-tests/.depcheckrc @@ -2,9 +2,12 @@ ignores: - '@mongodb-js/prettier-config-compass' - '@mongodb-js/tsconfig-compass' - '@wdio/types' - - 'mongodb-compass' - 'ps-list' - - 'mongodb-runner' +# Avoiding recursive deps on monorepo workspaces + - 'mongodb-compass' + - '@mongodb-js/mocha-config-compass' + - 'compass-e2e-tests' + - '@mongodb-js/compass-web' # TODO(COMPASS-8312): depcheck doesn't count this dependency because it's a # types only import and the depcheck parser is resolving the @types/ # package as a dep instead diff --git a/packages/compass-e2e-tests/.gitignore b/packages/compass-e2e-tests/.gitignore index f02217af9e4..74d7b19ca26 100644 --- a/packages/compass-e2e-tests/.gitignore +++ b/packages/compass-e2e-tests/.gitignore @@ -2,5 +2,3 @@ .log fixtures/*.csv fixtures/*.json -write-electron-versions.js -electron-versions.json diff --git a/packages/compass-e2e-tests/.prettierignore b/packages/compass-e2e-tests/.prettierignore index 3f0e8eed2a2..104b57fc109 100644 --- a/packages/compass-e2e-tests/.prettierignore +++ b/packages/compass-e2e-tests/.prettierignore @@ -3,7 +3,3 @@ fixtures .nyc_output coverage - -# Generated files -electron-versions.json -write-electron-versions.js diff --git a/packages/compass-e2e-tests/helpers/commands/connect-form.ts b/packages/compass-e2e-tests/helpers/commands/connect-form.ts index d6a11d99bbd..90af05ad2b2 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect-form.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect-form.ts @@ -3,15 +3,10 @@ import { expect } from 'chai'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; import type { ConnectFormState } from '../connect-form-state'; -import { - DEFAULT_CONNECTION_NAME_1, - DEFAULT_CONNECTION_NAME_2, - DEFAULT_CONNECTION_STRING_1, - DEFAULT_CONNECTION_STRING_2, - TEST_ATLAS_CLOUD_EXTERNAL_URL, - TEST_MULTIPLE_CONNECTIONS, -} from '../compass'; +import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import Debug from 'debug'; +import { DEFAULT_CONNECTIONS } from '../test-runner-context'; +import { getConnectionTitle } from '@mongodb-js/connection-info'; const debug = Debug('compass-e2e-tests'); export async function resetConnectForm(browser: CompassBrowser): Promise { @@ -939,29 +934,13 @@ export async function setConnectFormState( export async function saveConnection( browser: CompassBrowser, - state: ConnectFormState, - - // TODO(COMPASS-8023): Just remove these once the single connection code is removed - favouriteName: string, - color: string + state: ConnectFormState ): Promise { await browser.setConnectFormState(state); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible(Selectors.ConnectionModalSaveButton); - await browser - .$(Selectors.ConnectionModal) - .waitForDisplayed({ reverse: true }); - } else { - await browser.clickVisible(Selectors.ConnectionEditFavouriteButton); - await browser.$(Selectors.FavoriteModal).waitForDisplayed(); - await browser.setValueVisible(Selectors.FavoriteNameInput, favouriteName); - await browser.clickVisible( - `${Selectors.FavoriteColorSelector} [data-testid="color-pick-${color}"]` - ); - await browser.$(Selectors.FavoriteSaveButton).waitForEnabled(); - await browser.clickVisible(Selectors.FavoriteSaveButton); - await browser.$(Selectors.FavoriteModal).waitForExist({ reverse: true }); - } + await browser.clickVisible(Selectors.ConnectionModalSaveButton); + await browser + .$(Selectors.ConnectionModal) + .waitForDisplayed({ reverse: true }); } export async function setupDefaultConnections(browser: CompassBrowser) { @@ -987,16 +966,8 @@ export async function setupDefaultConnections(browser: CompassBrowser) { whereas we do have some tests that try and use those. We can easily change this in future if needed, though. */ - - // no need to setup connections if we are running against Atlas - if (TEST_ATLAS_CLOUD_EXTERNAL_URL) { - return; - } - - for (const connectionName of [ - DEFAULT_CONNECTION_NAME_1, - DEFAULT_CONNECTION_NAME_2, - ]) { + for (const connectionInfo of DEFAULT_CONNECTIONS) { + const connectionName = getConnectionTitle(connectionInfo); if (await browser.removeConnection(connectionName)) { debug('Removing existing connection so we do not create a duplicate', { connectionName, @@ -1004,28 +975,11 @@ export async function setupDefaultConnections(browser: CompassBrowser) { } } - await browser.saveConnection( - { - connectionString: DEFAULT_CONNECTION_STRING_1, - // NOTE: no connectionName, we're going with the auto-generated one. Also no - // connectionColor. Passing a name and colour for single connection world, - // though, because that's the only way to create a favourite. - }, - DEFAULT_CONNECTION_NAME_1, - 'color1' - ); - - // no need for a second connection in single connection mode - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.saveConnection( - { - connectionString: DEFAULT_CONNECTION_STRING_2, - // NOTE: filling in a name so that this one does _not_ have the auto-generated one - connectionName: DEFAULT_CONNECTION_NAME_2, - connectionColor: 'Iris', - }, - DEFAULT_CONNECTION_NAME_2, - 'color8' - ); + for (const connectionInfo of DEFAULT_CONNECTIONS) { + await browser.saveConnection({ + connectionString: connectionInfo.connectionOptions.connectionString, + connectionName: connectionInfo.favorite?.name, + connectionColor: connectionInfo.favorite?.color, + }); } } diff --git a/packages/compass-e2e-tests/helpers/commands/screenshot.ts b/packages/compass-e2e-tests/helpers/commands/screenshot.ts index 7a7a89f0c53..5b01dc7ae4f 100644 --- a/packages/compass-e2e-tests/helpers/commands/screenshot.ts +++ b/packages/compass-e2e-tests/helpers/commands/screenshot.ts @@ -1,6 +1,6 @@ import path from 'path'; import type { CompassBrowser } from '../compass-browser'; -import { SCREENSHOTS_PATH } from '../compass'; +import { LOG_SCREENSHOTS_PATH } from '../test-runner-context'; const withTimeout = (millis: number, promise: Promise) => { let timeoutPid: NodeJS.Timeout; @@ -26,7 +26,7 @@ export async function screenshot( // are still in progress or not. await browser.pause(1000); - const fullPath = path.join(SCREENSHOTS_PATH, filename); + const fullPath = path.join(LOG_SCREENSHOTS_PATH, filename); try { await withTimeout(10000, browser.saveScreenshot(fullPath)); } catch (err: any) { diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index d20366cc403..6bdb804e20b 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -8,6 +8,7 @@ import { execFile } from 'child_process'; import type { ExecFileOptions, ExecFileException } from 'child_process'; import { promisify } from 'util'; import zlib from 'zlib'; +import type { RemoteOptions } from 'webdriverio'; import { remote } from 'webdriverio'; import { rebuild } from '@electron/rebuild'; import type { RebuildOptions } from '@electron/rebuild'; @@ -24,6 +25,29 @@ import Debug from 'debug'; import semver from 'semver'; import crossSpawn from 'cross-spawn'; import { CHROME_STARTUP_FLAGS } from './chrome-startup-flags'; +import { + DEFAULT_CONNECTION_STRINGS, + DEFAULT_CONNECTION_NAMES, + DEFAULT_CONNECTIONS_SERVER_INFO, + ELECTRON_CHROMIUM_VERSION, + TEST_COMPASS_WEB as _TEST_COMPASS_WEB, + LOG_PATH, + LOG_COVERAGE_PATH, + COMPASS_DESKTOP_PATH, + LOG_OUTPUT_PATH, + LOG_SCREENSHOTS_PATH, + WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT, + WEBDRIVER_DEFAULT_WAITFOR_INTERVAL, + TEST_COMPASS_DESKTOP_PACKAGED_APP, + ELECTRON_PATH, + COMPASS_WEB_BROWSER_NAME, + COMPASS_WEB_BROWSER_VERSION, + TEST_ATLAS_CLOUD_EXTERNAL, + TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE, + TEST_ATLAS_CLOUD_EXTERNAL_URL, + TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID, + COMPASS_WEB_SANDBOX_URL, +} from './test-runner-context'; const debug = Debug('compass-e2e-tests'); @@ -32,24 +56,8 @@ const { Z_SYNC_FLUSH } = zlib.constants; const packageCompassAsync = promisify(packageCompass); -export const COMPASS_PATH = path.dirname( - require.resolve('mongodb-compass/package.json') -); -export const LOG_PATH = path.resolve(__dirname, '..', '.log'); -const OUTPUT_PATH = path.join(LOG_PATH, 'output'); -export const SCREENSHOTS_PATH = path.join(LOG_PATH, 'screenshots'); -const COVERAGE_PATH = path.join(LOG_PATH, 'coverage'); - -let MONGODB_VERSION = ''; -let MONGODB_USE_ENTERPRISE = - (process.env.MONGODB_VERSION?.endsWith('-enterprise') && 'yes') ?? 'no'; - // should we test compass-web (true) or compass electron (false)? -export const TEST_COMPASS_WEB = process.argv.includes('--test-compass-web'); -export const TEST_ATLAS_CLOUD_EXTERNAL_URL = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_URL; -export const TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID; +export const TEST_COMPASS_WEB = _TEST_COMPASS_WEB; // multiple connections is now the default export const TEST_MULTIPLE_CONNECTIONS = true; @@ -69,83 +77,31 @@ export function skipForWeb( } } -function getBrowserName() { - return process.env.BROWSER_NAME ?? 'chrome'; -} - -export const BROWSER_NAME = getBrowserName(); - export const MONGODB_TEST_SERVER_PORT = Number( process.env.MONGODB_TEST_SERVER_PORT ?? 27091 ); -export const DEFAULT_CONNECTION_STRING_1 = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_STRING_1 || - `mongodb://127.0.0.1:${MONGODB_TEST_SERVER_PORT}/test`; +export const DEFAULT_CONNECTION_STRING_1 = DEFAULT_CONNECTION_STRINGS[0]; // NOTE: in browser.setupDefaultConnections() we don't give the first connection an // explicit name, so it gets a calculated one based off the connection string -export const DEFAULT_CONNECTION_NAME_1 = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_NAME_1 || - connectionNameFromString(DEFAULT_CONNECTION_STRING_1); +export const DEFAULT_CONNECTION_NAME_1 = DEFAULT_CONNECTION_NAMES[0]; // for testing multiple connections -export const DEFAULT_CONNECTION_STRING_2 = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_STRING_2 || - `mongodb://127.0.0.1:${MONGODB_TEST_SERVER_PORT + 1}/test`; +export const DEFAULT_CONNECTION_STRING_2 = DEFAULT_CONNECTION_STRINGS[1]; // NOTE: in browser.setupDefaultConnections() the second connection gets given an explicit name -export const DEFAULT_CONNECTION_NAME_2 = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_CONNECTION_NAME_2 || 'connection-2'; - -export function updateMongoDBServerInfo() { - try { - const { stdout, stderr } = crossSpawn.sync( - 'npm', - [ - 'run', - '--silent', - /** - * The server info update is done through a separate script and not by - * using a MongoClient directly because doing so causes an unexplainable - * segfault crash in e2e-coverage task in evergreen CI. Moving this - * logic to a separate script seems to solve this problem, but if at any - * point the issue returns, feel free to revert this whole change - **/ - 'server-info', - '--', - '--connectionString', - DEFAULT_CONNECTION_STRING_1, - ], - { encoding: 'utf-8' } - ); - if (stderr?.length) { - throw new Error(stderr); - } - const { version, enterprise } = JSON.parse(stdout); - MONGODB_VERSION = version; - MONGODB_USE_ENTERPRISE = enterprise ? 'yes' : 'no'; - debug( - `Got server info: v${String(version)} (${ - enterprise ? 'enterprise' : 'community' - })` - ); - } catch (err) { - (err as Error).message = - 'Failed trying to get MongoDB server info:\n\n' + (err as Error).message; - throw err; - } -} +export const DEFAULT_CONNECTION_NAME_2 = DEFAULT_CONNECTION_NAMES[1]; export const serverSatisfies = ( semverCondition: string, enterpriseExact?: boolean ) => { + const { version, enterprise } = DEFAULT_CONNECTIONS_SERVER_INFO[0]; return ( - semver.satisfies(MONGODB_VERSION, semverCondition, { + semver.satisfies(version, semverCondition, { includePrerelease: true, }) && (typeof enterpriseExact === 'boolean' - ? (enterpriseExact && MONGODB_USE_ENTERPRISE === 'yes') || - (!enterpriseExact && MONGODB_USE_ENTERPRISE !== 'yes') + ? (enterpriseExact && enterprise) || (!enterpriseExact && !enterprise) : true) ); }; @@ -398,13 +354,13 @@ export class Compass { }); if (coverage.main) { await fs.writeFile( - path.join(COVERAGE_PATH, `main.${this.name}.log`), + path.join(LOG_COVERAGE_PATH, `main.${this.name}.log`), coverage.main ); } if (coverage.renderer) { await fs.writeFile( - path.join(COVERAGE_PATH, `renderer.${this.name}.log`), + path.join(LOG_COVERAGE_PATH, `renderer.${this.name}.log`), coverage.renderer ); } @@ -482,13 +438,10 @@ async function getCompassExecutionParameters(): Promise<{ testPackagedApp: boolean; binary: string; }> { - const testPackagedApp = ['1', 'true'].includes( - process.env.TEST_PACKAGED_APP ?? '' - ); + const testPackagedApp = TEST_COMPASS_DESKTOP_PACKAGED_APP; const binary = testPackagedApp ? getCompassBinPath(await getCompassBuildMetadata()) - : // eslint-disable-next-line @typescript-eslint/no-var-requires - (require('electron') as unknown as string); + : ELECTRON_PATH; return { testPackagedApp, binary }; } @@ -516,7 +469,7 @@ export async function runCompassOnce(args: string[], timeout = 30_000) { const { binary } = await getCompassExecutionParameters(); debug('spawning compass...', { binary, - COMPASS_PATH, + COMPASS_DESKTOP_PATH, defaultUserDataDir, args, timeout, @@ -529,7 +482,7 @@ export async function runCompassOnce(args: string[], timeout = 30_000) { const { error, stdout, stderr } = await execFileIgnoreError( binary, [ - COMPASS_PATH, + COMPASS_DESKTOP_PATH, // When running binary without webdriver, we need to pass the same flags // as we pass when running with webdriverio to have similar behaviour. ...CHROME_STARTUP_FLAGS, @@ -592,9 +545,9 @@ async function processCommonOpts({ // for consistency let's mkdir for both of them just in case await fs.mkdir(path.dirname(chromedriverLogPath), { recursive: true }); await fs.mkdir(webdriverLogPath, { recursive: true }); - await fs.mkdir(OUTPUT_PATH, { recursive: true }); - await fs.mkdir(SCREENSHOTS_PATH, { recursive: true }); - await fs.mkdir(COVERAGE_PATH, { recursive: true }); + await fs.mkdir(LOG_OUTPUT_PATH, { recursive: true }); + await fs.mkdir(LOG_SCREENSHOTS_PATH, { recursive: true }); + await fs.mkdir(LOG_COVERAGE_PATH, { recursive: true }); // https://webdriver.io/docs/options/#webdriver-options const webdriverOptions = { @@ -604,14 +557,8 @@ async function processCommonOpts({ // https://webdriver.io/docs/options/#webdriverio const wdioOptions = { - // default is 3000ms - waitforTimeout: process.env.COMPASS_TEST_DEFAULT_WAITFOR_TIMEOUT - ? Number(process.env.COMPASS_TEST_DEFAULT_WAITFOR_TIMEOUT) - : 120_000, // shorter than the test timeout so the exact line will fail, not the test - // default is 500ms - waitforInterval: process.env.COMPASS_TEST_DEFAULT_WAITFOR_INTERVAL - ? Number(process.env.COMPASS_TEST_DEFAULT_WAITFOR_INTERVAL) - : 100, + waitforTimeout: WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT, + waitforInterval: WEBDRIVER_DEFAULT_WAITFOR_INTERVAL, }; process.env.DEBUG = `${process.env.DEBUG ?? ''},mongodb-compass:main:logging`; @@ -645,7 +592,7 @@ async function startCompassElectron( if (!testPackagedApp) { // https://www.electronjs.org/docs/latest/tutorial/automated-testing#with-webdriverio - chromeArgs.push(`--app=${COMPASS_PATH}`); + chromeArgs.push(`--app=${COMPASS_DESKTOP_PATH}`); } if (opts.firstRun === false) { @@ -692,7 +639,7 @@ async function startCompassElectron( automationProtocol: 'webdriver' as const, capabilities: { browserName: 'chromium', - browserVersion: process.env.CHROME_VERSION, + browserVersion: ELECTRON_CHROMIUM_VERSION, // https://chromedriver.chromium.org/capabilities#h.p_ID_106 'goog:chromeOptions': { binary: maybeWrappedBinary, @@ -786,47 +733,52 @@ export async function startBrowser( runCounter++; const { webdriverOptions, wdioOptions } = await processCommonOpts(); - const browser: CompassBrowser = (await remote({ + const options: RemoteOptions = { capabilities: { - browserName: BROWSER_NAME, // 'chrome' or 'firefox' - // https://webdriver.io/docs/driverbinaries/ - // If you leave out browserVersion it will try and find the browser binary - // on your system. If you specify it it will download that version. The - // main limitation then is that 'latest' is the only 'semantic' version - // that is supported for Firefox. - // https://github.com/puppeteer/puppeteer/blob/ab5d4ac60200d1cea5bcd4910f9ccb323128e79a/packages/browsers/src/browser-data/browser-data.ts#L66 - // Alternatively we can download it ourselves and specify the path to the - // binary or we can even start and stop chromedriver/geckodriver manually. - // NOTE: The version of chromedriver or geckodriver in play might also be - // relevant. - browserVersion: 'latest', + browserName: COMPASS_WEB_BROWSER_NAME, + ...(COMPASS_WEB_BROWSER_VERSION && { + browserVersion: COMPASS_WEB_BROWSER_VERSION, + }), }, ...webdriverOptions, ...wdioOptions, - })) as CompassBrowser; + }; - if (TEST_ATLAS_CLOUD_EXTERNAL_URL) { - // Navigate to a 404 page to set cookies - await browser.navigateTo(`https://${TEST_ATLAS_CLOUD_EXTERNAL_URL}/404`); + debug('Starting browser via webdriverio with the following configuration:'); + debug(JSON.stringify(options, null, 2)); + + const browser: CompassBrowser = (await remote(options)) as CompassBrowser; + + if (TEST_ATLAS_CLOUD_EXTERNAL) { + // To be able to use `setCookies` method, we need to first open any page on + // the same domain as the cookies we are going to set + // https://webdriver.io/docs/api/browser/setCookies/ + await browser.navigateTo(`${TEST_ATLAS_CLOUD_EXTERNAL_URL!}/404`); + + type StoredAtlasCloudCookies = { + name: string; + value: string; + domain: string; + path: string; + secure: boolean; + httpOnly: boolean; + expirationDate: number; + }[]; - const cookiesFile = process.env.TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE; - if (!cookiesFile) { - throw new Error( - 'TEST_ATLAS_CLOUD_EXTERNAL_URL is set but TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE is not. Please set TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE to the path of the cookies file.' - ); - } const cookies: StoredAtlasCloudCookies = JSON.parse( - await fs.readFile(cookiesFile, 'utf8') + await fs.readFile(TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE!, 'utf8') ); - // These are the relevant cookies for auth: - // https://github.com/10gen/mms/blob/6d27992a6ab9ab31471c8bcdaa4e347aa39f4013/server/src/features/com/xgen/svc/cukes/helpers/Client.java#L122-L130 await browser.setCookies( cookies .filter((cookie) => { - cookie.name.includes('mmsa-') || + // These are the relevant cookies for auth: + // https://github.com/10gen/mms/blob/6d27992a6ab9ab31471c8bcdaa4e347aa39f4013/server/src/features/com/xgen/svc/cukes/helpers/Client.java#L122-L130 + return ( + cookie.name.includes('mmsa-') || cookie.name.includes('mdb-sat') || - cookie.name.includes('mdb-srt'); + cookie.name.includes('mdb-srt') + ); }) .map((cookie) => ({ name: cookie.name, @@ -839,10 +791,10 @@ export async function startBrowser( ); await browser.navigateTo( - `https://${TEST_ATLAS_CLOUD_EXTERNAL_URL}/v2/${TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID}#/explorer` + `${TEST_ATLAS_CLOUD_EXTERNAL_URL!}/v2/${TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID!}#/explorer` ); } else { - await browser.navigateTo('http://localhost:7777/'); + await browser.navigateTo(COMPASS_WEB_SANDBOX_URL); } const compass = new Compass(name, browser, { @@ -923,7 +875,7 @@ function formattedDate(): string { } export async function rebuildNativeModules( - compassPath = COMPASS_PATH + compassPath = COMPASS_DESKTOP_PATH ): Promise { const fullCompassPath = require.resolve( path.join(compassPath, 'package.json') @@ -950,7 +902,7 @@ export async function rebuildNativeModules( } export async function compileCompassAssets( - compassPath = COMPASS_PATH + compassPath = COMPASS_DESKTOP_PATH ): Promise { await promisify(execFile)('npm', ['run', 'compile'], { cwd: compassPath }); } @@ -982,7 +934,7 @@ async function getCompassBuildMetadata(): Promise { export async function buildCompass( force = false, - compassPath = COMPASS_PATH + compassPath = COMPASS_DESKTOP_PATH ): Promise { if (!force) { try { @@ -1097,7 +1049,7 @@ export async function init( await browser.execute(() => { // eslint-disable-next-line @typescript-eslint/no-var-requires const { ipcRenderer } = require('electron'); - ipcRenderer.invoke('compass:maximize'); + void ipcRenderer.invoke('compass:maximize'); }); } @@ -1173,7 +1125,7 @@ export function screenshotPathName(text: string) { * @param {string} filename */ export function outputFilename(filename: string): string { - return path.join(OUTPUT_PATH, filename); + return path.join(LOG_OUTPUT_PATH, filename); } export async function screenshotIfFailed( diff --git a/packages/compass-e2e-tests/helpers/gunzip.ts b/packages/compass-e2e-tests/helpers/gunzip.ts new file mode 100755 index 00000000000..8777c224483 --- /dev/null +++ b/packages/compass-e2e-tests/helpers/gunzip.ts @@ -0,0 +1,41 @@ +import Debug from 'debug'; +import { glob as globAsync } from 'glob'; +import { createReadStream, createWriteStream } from 'fs'; +import { pipeline } from 'stream/promises'; +import { createGunzip } from 'zlib'; +import path from 'path'; + +const debug = Debug('compass-e2e-tests:gunzip'); + +async function gunzip(input: string, output: string, signal: AbortSignal) { + const readStream = createReadStream(input); + const gunzip = createGunzip(); + const writeStream = createWriteStream(output); + try { + await pipeline(readStream, gunzip, writeStream, { signal, end: true }); + } catch (err) { + if (signal.aborted) { + return; + } + throw err; + } +} + +async function run(glob: string, cwd: string, signal: AbortSignal) { + const filenames = (await globAsync(glob, { cwd })).map((filepath) => { + return path.join(cwd, filepath); + }); + if (filenames.length === 0) { + throw new Error(`Failed to unpack ${glob} at ${cwd}: no files found`); + } + debug('Unpacking following files:', filenames); + for (const input of filenames) { + if (signal.aborted) { + return; + } + const output = input.replace(/\.gz$/, ''); + await gunzip(input, output, signal); + } +} + +export default run; diff --git a/packages/compass-e2e-tests/helpers/insert-data.ts b/packages/compass-e2e-tests/helpers/insert-data.ts index 8a2cdd18a2f..2a18bdb218b 100644 --- a/packages/compass-e2e-tests/helpers/insert-data.ts +++ b/packages/compass-e2e-tests/helpers/insert-data.ts @@ -46,7 +46,7 @@ for (let i = 0; i < 26; ++i) { let clients: MongoClient[]; let test_dbs: Db[]; -before(async () => { +export const beforeAll = async () => { // Insert data on both connections so that the same databases and collections // will exist on both servers and then anything that's not properly scoped to // the correct connection has a chance to operate on the wrong one and @@ -70,13 +70,13 @@ before(async () => { ); test_dbs = clients.map((client) => client.db('test')); -}); +}; -after(async () => { +export const afterAll = async () => { await Promise.all(clients.map((client) => client.close())); -}); +}; -beforeEach(async () => { +export const beforeEach = async () => { // Drop the databases that get created by tests or the functions below const promises = []; @@ -87,7 +87,13 @@ beforeEach(async () => { } await Promise.all(promises); -}); +}; + +export const mochaRootHooks: Mocha.RootHookObject = { + beforeAll, + beforeEach, + afterAll, +}; export async function createDummyCollections(): Promise { const promises = []; diff --git a/packages/compass-e2e-tests/helpers/result-logger.ts b/packages/compass-e2e-tests/helpers/result-logger.ts deleted file mode 100644 index ba5d65813b4..00000000000 --- a/packages/compass-e2e-tests/helpers/result-logger.ts +++ /dev/null @@ -1,340 +0,0 @@ -import assert from 'assert'; -import Debug from 'debug'; -import Mocha from 'mocha'; -import type { MongoClient, Collection } from 'mongodb'; -import type { ObjectId } from 'bson'; - -const debug = Debug('result-logger'); - -const DB_NAME = 'compass_e2e'; -const COLLECTION_NAME = 'results'; - -const { - EVENT_HOOK_BEGIN, - EVENT_HOOK_END, - EVENT_TEST_BEGIN, - EVENT_TEST_FAIL, - EVENT_TEST_PASS, -} = Mocha.Runner.constants; - -// env vars to store with the metrics. Be careful not to include secrets. -const ENV_VARS = [ - 'CI', - - // evergreen - 'EVERGREEN_AUTHOR', - 'EVERGREEN_BRANCH_NAME', - 'EVERGREEN_BUILD_ID', - 'EVERGREEN_BUILD_VARIANT', - 'EVERGREEN_EXECUTION', - 'EVERGREEN_IS_PATCH', - 'EVERGREEN_PROJECT', - 'EVERGREEN_REVISION', - 'EVERGREEN_TASK_ID', - 'EVERGREEN_TASK_NAME', - 'EVERGREEN_TASK_URL', - 'EVERGREEN_VERSION_ID', - 'EVERGREEN_WORKDIR', - - // github - 'GITHUB_WORKFLOW', - 'GITHUB_RUN_ID', - 'GITHUB_RUN_NUMBER', - 'GITHUB_JOB', - 'GITHUB_ACTION', - 'GITHUB_ACTION_PATH', - 'GITHUB_ACTIONS', - 'GITHUB_ACTOR', - 'GITHUB_REPOSITORY', - 'GITHUB_EVENT_NAME', - 'GITHUB_EVENT_PATH', - 'GITHUB_WORKSPACE', - 'GITHUB_SHA', - 'GITHUB_REF', - 'GITHUB_HEAD_REF', - 'GITHUB_BASE_REF', - 'GITHUB_SERVER_URL', - 'GITHUB_API_URL', - 'GITHUB_GRAPHQL_URL', - 'RUNNER_NAME', - 'RUNNER_OS', - 'RUNNER_TEMP', - 'RUNNER_TOOL_CACHE', -] as const; - -type Env = { [K in typeof ENV_VARS[number]]?: string }; - -type HookOrTest = Mocha.Hook | Mocha.Test; - -function joinPath(parts: string[]) { - // Turn an array of test/hook path components into a string we can use as an - // identifier for the test, hook or suite - - return parts.join(' / '); -} - -function githubWorkflowRunUrl() { - const serverURL = process.env.GITHUB_SERVER_URL ?? ''; - const repository = process.env.GITHUB_REPOSITORY ?? ''; - const runID = process.env.GITHUB_RUN_ID ?? ''; - - return `${serverURL}/${repository}/actions/runs/${runID}`; -} - -type Result = { - test_file: string; - type?: string; // tests don't have types and we delete these before handing it to evergreen - start: number; - status: 'start' | 'pass' | 'fail' | 'silentfail'; - end?: number; - elapsed?: number; - error?: any; - task_id?: string; - execution?: number; -}; - -type Report = { - results: Result[]; -}; - -export default class ResultLogger { - _id?: ObjectId; - start?: number; - end?: number; - elapsed?: number; - client?: MongoClient; - collection?: Collection; - context: { - env: Env; - ci: 'evergreen' | 'github-actions' | 'unknown'; - platform: string; - os: string; - author: string; - branch: string; - commit: string; - url: string; - }; - results: Result[]; - runner: Mocha.Runner; - - constructor(client: MongoClient, runner: Mocha.Runner) { - if (client) { - debug(`Logging E2E test metrics to ${DB_NAME}.${COLLECTION_NAME}`); - // client can be undefined if we don't want to write to the db - this.client = client; - const db = this.client.db(DB_NAME); - this.collection = db.collection(COLLECTION_NAME); - } - - this.context = { - // copy known env vars as-is if they are set - env: ENV_VARS.reduce((obj: Env, name: keyof Env) => { - const value = process.env[name]; - if (value) { - obj[name] = value; - } - return obj; - }, {}), - - // infer some common variables - ci: process.env.EVERGREEN - ? 'evergreen' - : process.env.GITHUB_ACTIONS - ? 'github-actions' - : 'unknown', - - platform: process.platform, - - // this way we should be able to distinguish between ubuntu and rhel on - // evergreen and linux on github actions - os: - process.env.EVERGREEN_BUILD_VARIANT ?? - process.env.RUNNER_OS ?? - 'unknown', - - author: - process.env.EVERGREEN_AUTHOR ?? process.env.GITHUB_ACTOR ?? 'unknown', - - // For an evergreen patch the branch name is set to main which is not what we want - branch: process.env.EVERGREEN_IS_PATCH - ? 'evergreen-patch' - : process.env.EVERGREEN_BRANCH_NAME ?? - process.env.GITHUB_HEAD_REF ?? - 'unknown', - - // EVERGREEN_REVISION is the ${revision} expansion, but the ${github_commit} one might be better? - // GITHUB_SHA also doesn't look 100% right. - commit: - process.env.EVERGREEN_REVISION ?? process.env.GITHUB_SHA ?? 'unknown', - - url: process.env.EVERGREEN - ? process.env.EVERGREEN_TASK_URL ?? '' - : process.env.GITHUB_ACTIONS - ? githubWorkflowRunUrl() - : 'unknown', - }; - - // Hooks and tests. See - // https://github.com/evergreen-ci/evergreen/wiki/Project-Commands#attach-results - // for the target structure. - this.results = []; - - this.runner = runner; - - runner.on(EVENT_HOOK_BEGIN, (hook) => { - this.startResult(hook); - }); - - runner.on(EVENT_HOOK_END, (hook) => { - // unlike for tests, with hooks end only fires when it passes - this.passResult(hook); - }); - - runner.on(EVENT_TEST_BEGIN, (test) => { - this.startResult(test); - }); - - runner.on(EVENT_TEST_PASS, (test) => { - this.passResult(test); - }); - - runner.on(EVENT_TEST_FAIL, (hookOrTest: HookOrTest, error: any) => { - // tests and hooks failing go to the same event - if (hookOrTest.type === 'hook') { - // NOTE: if this is a beforeEach hook, then the test's EVENT_TEST_BEGIN - // will have fired but it will never get a corresponding - // EVENT_TEST_FAIL, leaving it stuck in the start state - this.failResult(hookOrTest, error); - } else { - this.failResult(hookOrTest, error); - } - }); - } - - async init(): Promise { - debug('init'); - - this.start = Date.now() / 1000; - if (this.collection) { - const { insertedId } = await this.collection.insertOne({ - ...this.context, - start: this.start, - status: 'start', - }); - this._id = insertedId; - debug('resultId', this._id); - } - } - - startResult(hookOrTest: HookOrTest): void { - const test_file = joinPath(hookOrTest.titlePath()); - debug('start', test_file); - - const result = { - test_file, - type: hookOrTest.type, - start: Date.now() / 1000, - status: 'start', // evergreen only knows fail, pass, silentfail and skip - } as Result; - - this.results.push(result); - } - - passResult(hookOrTest: HookOrTest): void { - const test_file = joinPath(hookOrTest.titlePath()); - debug('pass', test_file); - const result = this.findResult(test_file); - - assert.ok(result); - - result.status = 'pass'; - result.end = Date.now() / 1000; - result.elapsed = result.end - result.start; - } - - failResult(hookOrTest: HookOrTest, error: Error): void { - const test_file = joinPath(hookOrTest.titlePath()); - debug('fail', test_file); - const result = this.findResult(test_file); - - assert.ok(result); - - result.status = 'fail'; - result.end = Date.now() / 1000; - result.elapsed = result.end - result.start; - result.error = error.stack; - } - - async done(failures: number): Promise { - debug('done'); - - this.end = Date.now() / 1000; - this.elapsed = this.end - (this.start || 0); // typescript thinks start might be undefined - - if (this.collection) { - const update = { - results: this.results, - elapsed: this.elapsed, - status: failures ? 'fail' : 'pass', - failures, - }; - - await this.collection.updateOne({ _id: this._id }, { $set: update }); - } - - return this.report(); - } - - report(): Report { - const results = this.results - .filter((r) => { - if (r.status !== 'pass') { - // keep all errors - return true; - } - // strip out passed hooks because it is a bit noisy - if (r.type === 'hook') { - return false; - } - return true; - }) - .map((r) => { - const result = { ...r }; - // change things that are still stuck as "start" to something evergreen - // understands - if (result.status === 'start') { - result.status = 'silentfail'; - } - - // copy over some evergreen-specific fields if they exist - if (process.env.EVERGREEN_TASK_ID) { - result.task_id = process.env.EVERGREEN_TASK_ID; - } - if (process.env.EVERGREEN_EXECUTION) { - result.execution = parseInt(process.env.EVERGREEN_EXECUTION, 10); - } - - if (result.type) { - delete result.type; - } - - // only include fields that evergreen knows about - // https://github.com/evergreen-ci/evergreen/wiki/Project-Commands#attach-results - delete result.error; - - return result; - }); - - return { results }; - } - - findResult(test_file: string): Result | null { - for (const result of this.results) { - if (result.test_file === test_file) { - return result; - } - } - - return null; - } -} diff --git a/packages/compass-e2e-tests/helpers/test-runner-context.ts b/packages/compass-e2e-tests/helpers/test-runner-context.ts new file mode 100644 index 00000000000..3464c11bbbc --- /dev/null +++ b/packages/compass-e2e-tests/helpers/test-runner-context.ts @@ -0,0 +1,193 @@ +import { + getConnectionTitle, + type ConnectionInfo, +} from '@mongodb-js/connection-info'; +import path from 'path'; +import electronPath from 'electron'; +import electronPackageJson from 'electron/package.json'; +// @ts-expect-error no types for this package +import { electronToChromium } from 'electron-to-chromium'; +import type { MongoClusterOptions } from 'mongodb-runner'; + +if (typeof electronPath !== 'string') { + throw new Error( + 'Running e2e tests in an unsupported runtime: `electronPath` is not a string' + ); +} + +// TODO: Probably time to use some arg parser for this already +export const ALLOWED_RUNNER_ARGS = [ + '--test-compass-web', + '--no-compile', + '--no-native-modules', + '--test-packaged-app', + '--disable-start-stop', + '--bail', +]; + +/** + * Variables used by a special use-case of running e2e tests against a + * cloud(-dev).mongodb.com URL. If you're changing anything related to these, + * make sure that the tests in mms are also updated to account for that + */ +export const TEST_ATLAS_CLOUD_EXTERNAL_URL = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_URL; +export const TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE; +export const TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID = + process.env.TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID; +const TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS: ConnectionInfo[] | null = + JSON.parse(process.env.TEST_ATLAS_CLOUD_DEFAULT_CONNECTIONS ?? 'null'); + +const ALL_ATLAS_CLOUD_EXTERNAL_VARS = [ + TEST_ATLAS_CLOUD_EXTERNAL_URL, + TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE, + TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID, + TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS, +]; + +export const TEST_ATLAS_CLOUD_EXTERNAL = ALL_ATLAS_CLOUD_EXTERNAL_VARS.some( + (val) => { + return !!val; + } +); + +if ( + TEST_ATLAS_CLOUD_EXTERNAL && + ALL_ATLAS_CLOUD_EXTERNAL_VARS.some((val) => { + return !val; + }) +) { + throw new Error( + 'Trying to test Atlas Cloud external URL but some required variables are missing' + ); +} + +export const TEST_COMPASS_WEB = + process.argv.includes('--test-compass-web') || TEST_ATLAS_CLOUD_EXTERNAL; +export const TEST_COMPASS_DESKTOP = !TEST_COMPASS_WEB; +export const TEST_COMPASS_DESKTOP_PACKAGED_APP = process.argv.includes( + '--test-packaged-app' +); +// Skip this step if you are running tests consecutively and don't need to +// rebuild modules all the time. Also no need to ever recompile when testing +// compass-web. +export const SKIP_COMPASS_DESKTOP_COMPILE = + process.argv.includes('--no-compile') && !TEST_COMPASS_WEB; +// Skip this step if you want to run tests against your own compilation (e.g, a +// dev build or a build running in watch mode that autorecompiles). Also no need +// to recompile when testing compass-web. +export const SKIP_NATIVE_MODULE_REBUILD = + process.argv.includes('--no-native-modules') && !TEST_COMPASS_WEB; +export const DISABLE_START_STOP = process.argv.includes('--disable-start-stop'); +export const MOCHA_BAIL = process.argv.includes('--bail'); + +export const COMPASS_WEB_BROWSER_NAME = + process.env.COMPASS_WEB_BROWSER_NAME ?? 'chrome'; +// https://webdriver.io/docs/driverbinaries/ +// +// If you leave out browserVersion it will try and find the browser binary on +// your system. If you specify it it will download that version. The main +// limitation then is that 'latest' is the only 'semantic' version that is +// supported for Firefox. +// https://github.com/puppeteer/puppeteer/blob/ab5d4ac60200d1cea5bcd4910f9ccb323128e79a/packages/browsers/src/browser-data/browser-data.ts#L66 +// +// Alternatively we can download it ourselves and specify the path to the binary +// or we can even start and stop chromedriver/geckodriver manually. +// +// NOTE: The version of chromedriver or geckodriver in play might also be +// relevant. +export const COMPASS_WEB_BROWSER_VERSION = + process.env.COMPASS_WEB_BROWSER_VERSION === 'unset' + ? undefined + : process.env.BROWSER_VERSION ?? 'latest'; +export const COMPASS_WEB_SANDBOX_URL = 'http://localhost:7777'; + +const MONGODB_TESTSERVER_VERSION = + process.env.MONGODB_VERSION ?? process.env.MONGODB_RUNNER_VERSION; + +export const DEFAULT_CONNECTIONS: (ConnectionInfo & { + testServer?: Partial; +})[] = + TEST_ATLAS_CLOUD_EXTERNAL && TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS + ? TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS + : [ + { + id: 'test-connection-1', + connectionOptions: { + connectionString: 'mongodb://127.0.0.1:27091/test', + }, + testServer: { + version: MONGODB_TESTSERVER_VERSION, + topology: 'replset', + secondaries: 0, + args: ['--port', '27091'], + }, + }, + { + id: 'test-connection-2', + connectionOptions: { + connectionString: 'mongodb://127.0.0.1:27092/test', + }, + favorite: { + name: 'connection-2', + color: 'Iris', + }, + testServer: { + version: MONGODB_TESTSERVER_VERSION, + topology: 'replset', + secondaries: 0, + args: ['--port', '27092'], + }, + }, + ]; + +export const DEFAULT_CONNECTION_STRINGS = DEFAULT_CONNECTIONS.map((info) => { + return info.connectionOptions.connectionString; +}); + +export const DEFAULT_CONNECTION_NAMES = DEFAULT_CONNECTIONS.map((info) => { + return getConnectionTitle(info); +}); + +export const DEFAULT_CONNECTIONS_SERVER_INFO: { + version: string; + enterprise: boolean; +}[] = []; + +export const E2E_WORKSPACE_PATH = path.dirname( + require.resolve('compass-e2e-tests/package.json') +); +// /packages/compass-e2e-tests +// /packages +// +export const MONOREPO_ROOT_PATH = path.resolve(E2E_WORKSPACE_PATH, '..', '..'); +export const COMPASS_DESKTOP_PATH = path.dirname( + require.resolve('mongodb-compass/package.json') +); +export const COMPASS_WEB_PATH = path.dirname( + require.resolve('@mongodb-js/compass-web/package.json') +); +export const LOG_PATH = path.resolve(E2E_WORKSPACE_PATH, '.log'); +export const LOG_OUTPUT_PATH = path.join(LOG_PATH, 'output'); +export const LOG_SCREENSHOTS_PATH = path.join(LOG_PATH, 'screenshots'); +export const LOG_COVERAGE_PATH = path.join(LOG_PATH, 'coverage'); +// Set coverage to the root of the monorepo so it will be generated for +// everything and not just packages/compass +export const COVERAGE_PATH = (process.env.COVERAGE = MONOREPO_ROOT_PATH); + +export const ELECTRON_PATH = electronPath; +export const ELECTRON_VERSION = electronPackageJson.version; +export const ELECTRON_CHROMIUM_VERSION = electronToChromium(ELECTRON_VERSION); + +export const WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT = process.env + .COMPASS_TEST_DEFAULT_WAITFOR_TIMEOUT + ? Number(process.env.COMPASS_TEST_DEFAULT_WAITFOR_TIMEOUT) + : 120_000; // default is 3000ms +export const WEBDRIVER_DEFAULT_WAITFOR_INTERVAL = process.env + .COMPASS_TEST_DEFAULT_WAITFOR_INTERVAL + ? Number(process.env.COMPASS_TEST_DEFAULT_WAITFOR_INTERVAL) + : 100; // default is 500ms +// Kinda arbitrary, but longer than WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT so the +// test can fail before Mocha times out +export const MOCHA_DEFAULT_TIMEOUT = WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT * 2; diff --git a/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts b/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts new file mode 100644 index 00000000000..8fd8e030921 --- /dev/null +++ b/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts @@ -0,0 +1,225 @@ +import gunzip from './gunzip'; +import fs from 'fs'; +import { + COMPASS_WEB_SANDBOX_URL, + DEFAULT_CONNECTIONS, + DEFAULT_CONNECTIONS_SERVER_INFO, + DISABLE_START_STOP, + E2E_WORKSPACE_PATH, + LOG_PATH, + SKIP_COMPASS_DESKTOP_COMPILE, + SKIP_NATIVE_MODULE_REBUILD, + TEST_ATLAS_CLOUD_EXTERNAL, + TEST_COMPASS_DESKTOP, + TEST_COMPASS_DESKTOP_PACKAGED_APP, + TEST_COMPASS_WEB, +} from './test-runner-context'; +import Debug from 'debug'; +import { startTestServer } from '@mongodb-js/compass-test-server'; +import crossSpawn from 'cross-spawn'; +import kill from 'tree-kill'; +import { MongoClient } from 'mongodb'; +import { isEnterprise } from 'mongodb-build-info'; +import { + buildCompass, + compileCompassAssets, + rebuildNativeModules, + removeUserDataDir, +} from './compass'; +import { getConnectionTitle } from '@mongodb-js/connection-info'; + +export const globalFixturesAbortController = new AbortController(); + +function throwIfAborted() { + if (globalFixturesAbortController.signal.aborted) { + throw new Error('Mocha run was aborted while global setup was in progress'); + } +} + +export let abortRunner: (() => void) | undefined; + +const debug = Debug('compass-e2e-tests:mocha-global-fixtures'); + +const wait = (ms: number) => + new Promise((resolve) => { + setTimeout(resolve, ms); + }); + +const cleanupFns: (() => Promise | void)[] = []; + +/** + * Main hook that does all the main pre-setup before running tests: + * - Unpacks the fixtures + * - Starts MongoDB servers for every default connection defined in + * DEFAULT_CONNECTIONS + * - Starts compass-web sandbox + * - Updates server metadata that will be used by tests + * - Compiles the desktop app + */ +export async function mochaGlobalSetup(this: Mocha.Runner) { + abortRunner = () => { + globalFixturesAbortController.abort(); + this.abort(); + }; + + try { + debug('Unzipping fixtures...'); + await gunzip( + // Not using absolute paths because Windows fails to resolve glob + // collectly in this case + 'fixtures/*.gz', + E2E_WORKSPACE_PATH, + globalFixturesAbortController.signal + ); + + throwIfAborted(); + + debug('X DISPLAY', process.env.DISPLAY); + + if (!DISABLE_START_STOP) { + for (const connectionInfo of DEFAULT_CONNECTIONS) { + if (connectionInfo.testServer) { + debug( + 'Starting MongoDB server for connection %s', + getConnectionTitle(connectionInfo) + ); + const server = await startTestServer(connectionInfo.testServer); + cleanupFns.push(() => { + debug( + 'Stopping server for connection %s', + getConnectionTitle(connectionInfo) + ); + return server.close(); + }); + } + throwIfAborted(); + } + + if (TEST_COMPASS_WEB && !TEST_ATLAS_CLOUD_EXTERNAL) { + debug('Starting Compass Web server ...'); + const compassWeb = spawnCompassWeb(); + cleanupFns.push(() => { + if (compassWeb.pid) { + debug(`Killing compass-web [${compassWeb.pid}]`); + kill(compassWeb.pid, 'SIGINT'); + } else { + debug('No pid for compass-web'); + } + }); + await waitForCompassWebToBeReady(); + } + } + + debug('Getting mongodb server info'); + await updateMongoDBServerInfo(); + + throwIfAborted(); + + try { + debug('Clearing out past logs'); + fs.rmdirSync(LOG_PATH, { recursive: true }); + } catch (e) { + debug('.log dir already removed'); + } + + fs.mkdirSync(LOG_PATH, { recursive: true }); + + if (TEST_COMPASS_DESKTOP) { + if (TEST_COMPASS_DESKTOP_PACKAGED_APP) { + debug('Building Compass before running the tests ...'); + await buildCompass(); + } else { + debug('Preparing Compass before running the tests'); + + if (!SKIP_NATIVE_MODULE_REBUILD) { + debug('Rebuilding native modules ...'); + await rebuildNativeModules(); + } + + if (!SKIP_COMPASS_DESKTOP_COMPILE) { + debug('Compiling Compass assets ...'); + await compileCompassAssets(); + } + } + } + + throwIfAborted(); + + cleanupFns.push(() => { + removeUserDataDir(); + }); + } catch (err) { + if (globalFixturesAbortController.signal.aborted) { + return; + } + throw err; + } +} + +export async function mochaGlobalTeardown() { + debug('Cleaning up after the tests ...'); + await Promise.allSettled( + cleanupFns.map((fn) => { + return fn(); + }) + ); +} + +function spawnCompassWeb() { + const proc = crossSpawn.spawn( + 'npm', + ['run', '--unsafe-perm', 'start', '--workspace', '@mongodb-js/compass-web'], + { + env: { + ...process.env, + OPEN_BROWSER: 'false', // tell webpack dev server not to open the default browser + DISABLE_DEVSERVER_OVERLAY: 'true', + APP_ENV: 'webdriverio', + }, + } + ); + proc.stdout.pipe(process.stdout); + proc.stderr.pipe(process.stderr); + return proc; +} + +async function waitForCompassWebToBeReady() { + let serverReady = false; + const start = Date.now(); + while (!serverReady) { + throwIfAborted(); + if (Date.now() - start >= 120_000) { + throw new Error( + 'The compass-web sandbox is still not running after 120000ms' + ); + } + try { + const res = await fetch(COMPASS_WEB_SANDBOX_URL); + serverReady = res.ok; + debug('Web server ready:', serverReady); + } catch (err) { + debug('Failed to connect to dev server:', (err as any).message); + } + await wait(1000); + } +} + +async function updateMongoDBServerInfo() { + try { + for (const { connectionOptions } of DEFAULT_CONNECTIONS) { + let client: MongoClient | undefined; + try { + client = new MongoClient(connectionOptions.connectionString); + const info = await client.db('admin').command({ buildInfo: 1 }); + DEFAULT_CONNECTIONS_SERVER_INFO.push({ + version: info.version, + enterprise: isEnterprise(info), + }); + } finally { + void client?.close(true); + } + } + } catch (err) { + debug('Failed to get MongoDB server info:', err); + } +} diff --git a/packages/compass-e2e-tests/index.ts b/packages/compass-e2e-tests/index.ts index 0974b80e50c..7efbb9710b8 100644 --- a/packages/compass-e2e-tests/index.ts +++ b/packages/compass-e2e-tests/index.ts @@ -1,266 +1,70 @@ #!/usr/bin/env ts-node import path from 'path'; -import fs from 'fs'; import { glob } from 'glob'; import crossSpawn from 'cross-spawn'; -import type { ChildProcessWithoutNullStreams } from 'child_process'; -// @ts-expect-error it thinks process does not have getActiveResourcesInfo -import { getActiveResourcesInfo } from 'process'; + import Mocha from 'mocha'; import Debug from 'debug'; -import type { MongoClient } from 'mongodb'; -import kill from 'tree-kill'; import { - rebuildNativeModules, - compileCompassAssets, - buildCompass, - COMPASS_PATH, - LOG_PATH, - removeUserDataDir, - updateMongoDBServerInfo, - TEST_ATLAS_CLOUD_EXTERNAL_URL, -} from './helpers/compass'; -import ResultLogger from './helpers/result-logger'; + ALLOWED_RUNNER_ARGS, + MOCHA_BAIL, + MOCHA_DEFAULT_TIMEOUT, +} from './helpers/test-runner-context'; +import { + abortRunner, + mochaGlobalSetup, + mochaGlobalTeardown, +} from './helpers/test-runner-global-fixtures'; +import { mochaRootHooks } from './helpers/insert-data'; +// @ts-expect-error no types for this package +import logRunning from 'why-is-node-running'; const debug = Debug('compass-e2e-tests'); -const wait = (ms: number) => - new Promise((resolve) => { - setTimeout(resolve, ms); - }); - -const allowedArgs = [ - '--test-compass-web', - '--no-compile', - '--no-native-modules', - '--test-packaged-app', - '--disable-start-stop', - '--bail', -]; - for (const arg of process.argv) { - if (arg.startsWith('--') && !allowedArgs.includes(arg)) { + if (arg.startsWith('--') && !ALLOWED_RUNNER_ARGS.includes(arg)) { throw Error( - `Unknown command argument "${arg}". Usage:\n\n npm run test ${allowedArgs - .map((arg) => `[${arg}]`) - .join(' ')}\n` + `Unknown command argument "${arg}". Usage:\n\n npm run test ${ALLOWED_RUNNER_ARGS.map( + (arg) => `[${arg}]` + ).join(' ')}\n` ); } } -// We can't import mongodb here yet because native modules will be recompiled -let metricsClient: MongoClient; - const FIRST_TEST = 'tests/time-to-first-query.test.ts'; -let compassWeb: ChildProcessWithoutNullStreams; - -async function setup() { - debug('X DISPLAY', process.env.DISPLAY); - - const disableStartStop = process.argv.includes('--disable-start-stop'); - const shouldTestCompassWeb = process.argv.includes('--test-compass-web'); - - if (!TEST_ATLAS_CLOUD_EXTERNAL_URL) { - // When working on the tests it is faster to just keep the server running. - if (!disableStartStop) { - debug('Starting MongoDB server'); - crossSpawn.sync('npm', ['run', 'start-servers'], { stdio: 'inherit' }); - - if (shouldTestCompassWeb) { - debug('Starting Compass Web'); - compassWeb = crossSpawn.spawn( - 'npm', - ['run', '--unsafe-perm', 'start-web'], - { - cwd: path.resolve(__dirname, '..', '..'), - env: { - ...process.env, - OPEN_BROWSER: 'false', // tell webpack dev server not to open the default browser - DISABLE_DEVSERVER_OVERLAY: 'true', - APP_ENV: 'webdriverio', - }, - } - ); - - compassWeb.stdout.pipe(process.stdout); - compassWeb.stderr.pipe(process.stderr); - - let serverReady = false; - const start = Date.now(); - while (!serverReady) { - if (Date.now() - start >= 120_000) { - throw new Error( - 'The compass-web sandbox is still not running after 120000ms' - ); - } - try { - const res = await fetch('http://localhost:7777'); - serverReady = res.ok; - debug('Web server ready: %s', serverReady); - } catch (err) { - debug('Failed to connect to dev server: %s', (err as any).message); - } - await wait(1000); - } - } else { - debug('Writing electron-versions.json'); - crossSpawn.sync('scripts/write-electron-versions.sh', [], { - stdio: 'inherit', - }); - } - } - } - - try { - debug('Clearing out past logs'); - fs.rmdirSync(LOG_PATH, { recursive: true }); - } catch (e) { - debug('.log dir already removed'); - } - - fs.mkdirSync(LOG_PATH, { recursive: true }); - - debug('Getting mongodb server info'); - updateMongoDBServerInfo(); -} - -function getResources() { - const resources: Record = {}; - for (const resource of getActiveResourcesInfo()) { - if (resources[resource] === undefined) { - resources[resource] = 0; - } - ++resources[resource]; - } - return resources; +// Trigger a mocha abort on interrupt. This doesn't stop the test runner +// immediately as it will still try to finish running the current in-progress +// suite before exiting, but the upside is that we are getting a way more robust +// cleanup where all the after hooks are taken into account as expected rarely +// leaving anythihg "hanging" +async function cleanupOnInterrupt() { + // First trigger an abort on the mocha runner + abortRunner?.(); + await runnerPromise; } -function cleanup() { - removeUserDataDir(); - - const disableStartStop = process.argv.includes('--disable-start-stop'); - const shouldTestCompassWeb = process.argv.includes('--test-compass-web'); - - if (!TEST_ATLAS_CLOUD_EXTERNAL_URL) { - if (!disableStartStop) { - if (shouldTestCompassWeb) { - debug('Stopping compass-web'); - try { - if (compassWeb.pid) { - debug(`killing compass-web [${compassWeb.pid}]`); - kill(compassWeb.pid, 'SIGINT'); - } else { - debug('no pid for compass-web'); - } - } catch (e) { - debug('Failed to stop compass-web', e); - } - } - - debug('Stopping MongoDB server'); - try { - crossSpawn.sync('npm', ['run', 'stop-servers'], { - // If it's taking too long we might as well kill the process and move on, - // mongodb-runner is flaky sometimes and in ci `posttest-ci` script will - // take care of additional clean up anyway - timeout: 120_000, - stdio: 'inherit', - }); - } catch (e) { - debug('Failed to stop MongoDB Server', e); - } - debug('Done stopping'); - } - } - - // Since the webdriverio update something is messing with the terminal's - // cursor. This brings it back. - crossSpawn.sync('tput', ['cnorm'], { stdio: 'inherit' }); - - // Log what's preventing the process from exiting normally to help debug the - // cases where the process hangs and gets killed 10 minutes later by evergreen - // because there's no output. - const intervalId = setInterval(() => { - console.log(getResources()); - }, 1_000); - - // Don't keep logging forever because then evergreen can't kill the job after - // 10 minutes of inactivity if we get into a broken state +function terminateOnTimeout() { + // Don't keep logging forever because then evergreen can't kill the job + // after 10 minutes of inactivity if we get into a broken state const timeoutId = setTimeout(() => { - clearInterval(intervalId); - - // Just exit now rather than waiting for 10 minutes just so evergreen can - // kill the task and fail anyway. - process.exit(process.exitCode ?? 1); - }, 60_000); - - // No need to hold things up for a minute if there's nothing else preventing - // the process from exiting. - intervalId.unref(); + debug('Mocha is still cleaning up:'); + // Log what's preventing the process from exiting normally to help debug the + // cases where the process hangs and gets killed 10 minutes later by evergreen + // because there's no output. + logRunning(console); + debug('Terminating the process ...'); + // Just exit now rather than waiting for 10 minutes just so evergreen + // can kill the task and fail anyway. + process.exitCode ??= 1; + process.exit(); + }, 30_000); timeoutId.unref(); } -async function main() { - await setup(); - - const shouldTestCompassWeb = process.argv.includes('--test-compass-web'); - - if (!shouldTestCompassWeb) { - if (!process.env.CHROME_VERSION) { - // written during setup() if disableStartStop is false - const versionsJSON = await fs.promises.readFile( - 'electron-versions.json', - 'utf8' - ); - const versions = JSON.parse(versionsJSON); - process.env.CHROME_VERSION = versions.chrome; - } - debug( - 'Chrome version corresponding to Electron:', - process.env.CHROME_VERSION - ); - } - - // These are mutually exclusive since compass-web is always going to browse to - // the running webserver. - const shouldTestPackagedApp = - process.argv.includes('--test-packaged-app') && !shouldTestCompassWeb; - - // Skip this step if you are running tests consecutively and don't need to - // rebuild modules all the time. Also no need to ever recompile when testing - // compass-web. - const noNativeModules = - process.argv.includes('--no-native-modules') || shouldTestCompassWeb; - - // Skip this step if you want to run tests against your own compilation (e.g, - // a dev build or a build running in watch mode that autorecompiles). Also no - // need to recompile when testing compass-web. - const noCompile = - process.argv.includes('--no-compile') || shouldTestCompassWeb; - - if (shouldTestPackagedApp) { - process.env.TEST_PACKAGED_APP = '1'; - debug('Building Compass before running the tests ...'); - await buildCompass(); - } else { - delete process.env.TEST_PACKAGED_APP; - - // set coverage to the root of the monorepo so it will be generated for - // everything and not just packages/compass - process.env.COVERAGE = path.dirname(path.dirname(COMPASS_PATH)); - - debug('Preparing Compass before running the tests'); - if (!noNativeModules) { - debug('Rebuilding native modules ...'); - await rebuildNativeModules(); - } - if (!noCompile) { - debug('Compiling Compass assets ...'); - await compileCompassAssets(); - } - } +let runnerPromise: Promise | undefined; +async function main() { const e2eTestGroupsAmount = parseInt(process.env.E2E_TEST_GROUPS || '1'); const e2eTestGroup = parseInt(process.env.E2E_TEST_GROUP || '1'); const e2eTestFilter = process.env.E2E_TEST_FILTER || '*'; @@ -269,126 +73,103 @@ async function main() { await glob(`tests/**/${e2eTestFilter}.{test,spec}.ts`, { cwd: __dirname, }) - ).filter((value, index, array) => { - const testsPerGroup = Math.ceil(array.length / e2eTestGroupsAmount); - const minGroupIndex = (e2eTestGroup - 1) * testsPerGroup; - const maxGroupIndex = minGroupIndex + testsPerGroup - 1; + ) + .filter((_value, index, array) => { + const testsPerGroup = Math.ceil(array.length / e2eTestGroupsAmount); + const minGroupIndex = (e2eTestGroup - 1) * testsPerGroup; + const maxGroupIndex = minGroupIndex + testsPerGroup - 1; - return index >= minGroupIndex && index <= maxGroupIndex; - }); + return index >= minGroupIndex && index <= maxGroupIndex; + }) + .sort((a, b) => { + // The only test file that's interested in the first-run experience (at the + // time of writing) is time-to-first-query.ts and that happens to be + // alphabetically right at the end. Which is fine, but the first test to run + // will also get the slow first run experience for no good reason unless it is + // the time-to-first-query.ts test. + // So yeah.. this is a bit of a micro optimisation. + if (a === FIRST_TEST) { + return -1; + } else if (b === FIRST_TEST) { + return 1; + } else { + return 0; + } + }); - console.info('Test files:', tests); + debug('Test files:', tests); - // The only test file that's interested in the first-run experience (at the - // time of writing) is time-to-first-query.ts and that happens to be - // alphabetically right at the end. Which is fine, but the first test to run - // will also get the slow first run experience for no good reason unless it is - // the time-to-first-query.ts test. - // So yeah.. this is a bit of a micro optimisation. - tests.sort((a, b) => { - if (a === FIRST_TEST) return -1; - else if (b === FIRST_TEST) return 1; - else return 0; + const mocha = new Mocha({ + timeout: MOCHA_DEFAULT_TIMEOUT, + bail: MOCHA_BAIL, + reporter: require.resolve('@mongodb-js/mocha-config-compass/reporter'), }); - // Ensure the insert-data mocha hooks are run. - tests.unshift(path.join('helpers', 'insert-data.ts')); + // @ts-expect-error mocha types are incorrect, global setup this is bound to + // runner, not context + mocha.globalSetup(mochaGlobalSetup); + mocha.enableGlobalSetup(true); - const bail = process.argv.includes('--bail'); + mocha.globalTeardown(mochaGlobalTeardown); + mocha.enableGlobalTeardown(true); - const mocha = new Mocha({ - timeout: 240_000, // kinda arbitrary, but longer than waitforTimeout set in helpers/compass.ts so the test can fail before it times out - bail, - reporter: path.resolve( - __dirname, - '..', - '..', - 'configs/mocha-config-compass/reporter.js' - ), - }); + mocha.rootHooks(mochaRootHooks); // print the test order for debugging purposes and so we can tweak the groups later - console.log('test order', tests); + debug('Test order:', tests); tests.forEach((testPath: string) => { mocha.addFile(path.join(__dirname, testPath)); }); - const metricsConnection = process.env.E2E_TESTS_METRICS_URI; - if (metricsConnection) { - debug('Connecting to E2E_TESTS_METRICS_URI'); - // only require it down here because it gets rebuilt up top - const mongodb = await import('mongodb'); - metricsClient = new mongodb.MongoClient(metricsConnection); - await metricsClient.connect(); - } else { - debug('Not logging metrics to a database.'); - } - debug('Running E2E tests'); - // mocha.run has a callback and returns a result, so just promisify it manually - const { resultLogger, failures } = await new Promise<{ - resultLogger: ResultLogger; - failures: number; - }>((resolve, reject) => { - // eslint-disable-next-line prefer-const - let resultLogger: ResultLogger; - - const runner = mocha.run((failures: number) => { + runnerPromise = new Promise((resolve) => { + mocha.run((failures: number) => { + debug('Finished running e2e tests', { failures }); process.exitCode = failures ? 1 : 0; - resolve({ resultLogger, failures }); - }); - - debug('Initialising ResultLogger'); - resultLogger = new ResultLogger(metricsClient, runner); - - // Synchronously create the ResultLogger so it can start listening to events - // on runner immediately after calling mocha.run() before any of the events - // fire. - resultLogger.init().catch((err: Error) => { - // reject() doesn't stop mocha.run()... - reject(err); + // Since the webdriverio update something is messing with the terminal's + // cursor. This brings it back. + crossSpawn.sync('tput', ['cnorm'], { stdio: 'inherit' }); + terminateOnTimeout(); + resolve(failures); }); }); - - await resultLogger.done(failures); } process.once('SIGINT', () => { - debug(`Process was interrupted. Cleaning-up and exiting.`); - cleanup(); - process.kill(process.pid, 'SIGINT'); + debug(`Process was interrupted. Waiting for mocha to abort and clean-up ...`); + void (async () => { + await cleanupOnInterrupt(); + process.kill(process.pid, 'SIGINT'); + })(); }); process.once('SIGTERM', () => { - debug(`Process was terminated. Cleaning-up and exiting.`); - cleanup(); - process.kill(process.pid, 'SIGTERM'); + debug(`Process was terminated. Waiting for mocha to abort and clean-up ...`); + void (async () => { + await cleanupOnInterrupt(); + process.kill(process.pid, 'SIGTERM'); + })(); }); process.once('uncaughtException', (err: Error) => { - debug('Uncaught exception. Cleaning-up and exiting.'); - cleanup(); - throw err; + debug('Uncaught exception:'); + console.error(err.stack || err.message || err); + debug('Waiting for mocha to abort and clean-up ...'); + process.exitCode = 1; + void cleanupOnInterrupt(); }); process.on('unhandledRejection', (err: Error) => { - debug('Unhandled exception. Cleaning-up and exiting.'); - cleanup(); + debug('Unhandled exception:'); console.error(err.stack || err.message || err); + debug('Waiting for mocha to abort and clean-up ...'); process.exitCode = 1; + void cleanupOnInterrupt(); }); async function run() { - try { - await main(); - } finally { - if (metricsClient) { - await metricsClient.close(); - } - - cleanup(); - } + await main(); } void run(); diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 64d88aeb47b..3e4e32492f4 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -10,7 +10,6 @@ "lint": "npm run eslint . && npm run prettier -- --check .", "depcheck": "depcheck", "check": "npm run lint && npm run depcheck", - "pretest": "npm run unzip-fixtures", "test": "xvfb-maybe --auto-servernum --server-args=\"-screen 0 1432x840x24\" -- ts-node index.ts", "test-ci": "npm run test", "posttest-ci": "npm run coverage-report", @@ -23,14 +22,12 @@ "stop-server-2": "mongodb-runner stop --id=e2e-2", "start-servers": "npm run start-server-1 && npm run start-server-2", "stop-servers": "npm run stop-server-1 && npm run stop-server-2", - "unzip-fixtures": "ts-node ./scripts/gunzip.ts fixtures/*.gz", "test-noserver": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --disable-start-stop --bail", "test-noserver-nocompile": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --no-native-modules --no-compile --disable-start-stop --bail", "test-web": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --test-compass-web", "test-web-noserver": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --test-compass-web --disable-start-stop --bail", "coverage-merge": "nyc merge .log/coverage .nyc_output/coverage.json", - "coverage-report": "npm run coverage-merge && nyc report", - "server-info": "ts-node ./scripts/server-info.ts" + "coverage-report": "npm run coverage-merge && nyc report" }, "devDependencies": { "@electron/rebuild": "^3.6.2", @@ -53,13 +50,14 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", + "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", - "fast-glob": "^3.2.7", "glob": "^10.2.5", "hadron-build": "^25.5.12", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", + "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", "mongodb-log-writer": "^1.4.2", "mongodb-runner": "^5.6.3", @@ -73,6 +71,7 @@ "tree-kill": "^1.2.2", "ts-node": "^10.9.1", "webdriverio": "^8.40.0", + "why-is-node-running": "^2.3.0", "xvfb-maybe": "^0.2.1" } } diff --git a/packages/compass-e2e-tests/scripts/gunzip.ts b/packages/compass-e2e-tests/scripts/gunzip.ts deleted file mode 100755 index 8974f4588a1..00000000000 --- a/packages/compass-e2e-tests/scripts/gunzip.ts +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env ts-node - -import fastGlob from 'fast-glob'; -import { createReadStream, createWriteStream } from 'fs'; -import { pipeline } from 'stream'; -import { promisify } from 'util'; -import { createGunzip } from 'zlib'; - -const pipe = promisify(pipeline); - -async function gunzip(input: string, output: string) { - const readStream = createReadStream(input); - const gunzip = createGunzip(); - const writeStream = createWriteStream(output); - - await pipe(readStream, gunzip, writeStream); -} - -async function run() { - // windows does not expand * automatically - const filenames = await fastGlob(process.argv.slice(2)); - - for (const input of filenames) { - const output = input.replace(/\.gz$/, ''); - console.log(input, '=>', output); - await gunzip(input, output); - } -} - -if (require.main === module) { - run().catch((err: Error) => { - console.error('An error occurred:', err); - process.exitCode = 1; - }); -} - -module.exports = gunzip; diff --git a/packages/compass-e2e-tests/scripts/server-info.ts b/packages/compass-e2e-tests/scripts/server-info.ts deleted file mode 100644 index abe9bf1f883..00000000000 --- a/packages/compass-e2e-tests/scripts/server-info.ts +++ /dev/null @@ -1,27 +0,0 @@ -import { MongoClient } from 'mongodb'; - -export async function getServerVersion(connectionString: string) { - const client = await MongoClient.connect(connectionString); - try { - const buildInfo = await client.db('admin').command({ buildInfo: 1 }); - return { - version: buildInfo.version, - enterprise: buildInfo.modules?.includes('enterprise') || false, - }; - } finally { - await client.close(); - } -} - -void (async () => { - try { - const index = process.argv.indexOf('--connectionString') ?? -1; - const connectionString = - index === -1 ? 'mongodb://127.0.0.1:27091' : process.argv[index + 1]; - console.log(JSON.stringify(await getServerVersion(connectionString))); - } catch (err) { - const { name, message } = err as Error; - console.error(`${name}: ${message}`); - process.exitCode = 1; - } -})(); diff --git a/packages/compass-e2e-tests/scripts/write-electron-versions.sh b/packages/compass-e2e-tests/scripts/write-electron-versions.sh deleted file mode 100755 index afaf990782a..00000000000 --- a/packages/compass-e2e-tests/scripts/write-electron-versions.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash - -# To get the versions of various electron dependencies, including chromium we're -# mostly interested in, we run a script file using currently installed electron -# version binary. We don't use interactive electron repl (electron -i) here -# instead because Windows doesn't support it. -script=" -const fs = require('fs'); -fs.writeFileSync( - 'electron-versions.json', - JSON.stringify(process.versions), - 'utf8' -); -process.exit(); -" -script_name=write-electron-versions.js -echo $script >$script_name -npx electron --no-sandbox $script_name diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 9d5f81f1310..28ca28cf751 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -40,6 +40,7 @@ "webpack": "webpack-compass", "postcompile": "npm run typescript", "typescript": "tsc -p tsconfig-build.json --emitDeclarationOnly", + "prestart": "npm run compile -w @mongodb-js/webpack-config-compass", "start": "electron ./scripts/electron-proxy.js", "analyze": "npm run webpack -- --mode production --analyze", "watch": "npm run webpack -- --mode development --watch", diff --git a/packages/compass/package.json b/packages/compass/package.json index 4b35721ffd2..3a1bc9753ff 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -141,7 +141,7 @@ "scripts": { "install": "node scripts/download-fonts.js && node scripts/download-csfle.js", "electron-rebuild": "electron-rebuild --only kerberos,keytar,interruptor,os-dns-native,win-export-certificate-and-key,macos-export-certificate-and-key --prebuild-tag-prefix not-real-prefix-to-force-rebuild", - "prestart": "npm run electron-rebuild", + "prestart": "npm run electron-rebuild && npm run compile --workspace=@mongodb-js/webpack-config-compass", "start": "HADRON_DISTRIBUTION=${HADRON_DISTRIBUTION:-compass} npm run webpack serve -- --mode development", "test-electron": "npm run test-main && npm run test-renderer", "test-main": "xvfb-maybe electron-mocha --no-sandbox \"./src/main/**/*.spec.*\" \"./src/main/**/*.test.*\"", From 8884e7fae93c161e929f21a58f10b7ce8cbca354 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 11:59:57 +0000 Subject: [PATCH 37/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6392) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 4f6b27fd4a0..88308e14087 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 23, 2024 at 11:42 AM +Generated on Wed, Oct 23, 2024 at 11:59 AM ## Table of Contents From 6b68561139550acb5df74166b750f075ba4755b1 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Wed, 23 Oct 2024 18:17:37 +0200 Subject: [PATCH 38/71] chore(e2e): remove TEST_MULTIPLE_CONNECTIONS flag from e2e tests (#6393) --- .../helpers/commands/close-shell.ts | 20 +- .../helpers/commands/collection-workspaces.ts | 10 +- .../helpers/commands/connect-form.ts | 73 +++--- .../helpers/commands/connect.ts | 145 ++++-------- .../helpers/commands/connection-workspaces.ts | 36 ++- .../helpers/commands/database-workspaces.ts | 9 +- .../helpers/commands/disconnect.ts | 35 --- .../helpers/commands/open-shell.ts | 50 ++--- .../helpers/commands/remove-connections.ts | 11 - .../save-connection-string-as-favorite.ts | 18 +- .../helpers/commands/save-favorite.ts | 43 ++-- .../commands/select-connections-menu-item.ts | 22 +- .../helpers/commands/sidebar-connection.ts | 60 +---- packages/compass-e2e-tests/helpers/compass.ts | 7 - .../compass-e2e-tests/helpers/insert-data.ts | 12 +- .../compass-e2e-tests/helpers/selectors.ts | 8 +- .../tests/auto-connect.test.ts | 85 ++----- .../tests/connection-form.test.ts | 207 ++++-------------- .../tests/connection.test.ts | 72 +++--- .../tests/force-connection-options.test.ts | 13 +- .../tests/import-export-connections.test.ts | 76 ++----- .../tests/in-use-encryption.test.ts | 112 +++------- .../tests/instance-sidebar.test.ts | 66 ++---- .../compass-e2e-tests/tests/logging.test.ts | 7 +- .../tests/my-queries-tab.test.ts | 98 +++------ packages/compass-e2e-tests/tests/oidc.test.ts | 61 +++--- .../tests/protect-connection-strings.test.ts | 22 +- .../compass-e2e-tests/tests/read-only.test.ts | 72 +++--- .../compass-e2e-tests/tests/shell.test.ts | 35 +-- packages/compass-e2e-tests/tests/tabs.test.ts | 5 - 30 files changed, 417 insertions(+), 1073 deletions(-) diff --git a/packages/compass-e2e-tests/helpers/commands/close-shell.ts b/packages/compass-e2e-tests/helpers/commands/close-shell.ts index 96e66d4df0a..2492ec30af2 100644 --- a/packages/compass-e2e-tests/helpers/commands/close-shell.ts +++ b/packages/compass-e2e-tests/helpers/commands/close-shell.ts @@ -1,23 +1,11 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; -import retryWithBackoff from '../retry-with-backoff'; -import * as Selectors from '../selectors'; export async function closeShell( browser: CompassBrowser, connectionName: string ): Promise { - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.closeWorkspaceTab({ - connectionName, - type: 'Shell', - }); - } else { - await retryWithBackoff(async function () { - const shellContentElement = await browser.$(Selectors.ShellContent); - if (await shellContentElement.isDisplayed()) { - await browser.clickVisible(Selectors.ShellExpandButton); - } - }); - } + await browser.closeWorkspaceTab({ + connectionName, + type: 'Shell', + }); } diff --git a/packages/compass-e2e-tests/helpers/commands/collection-workspaces.ts b/packages/compass-e2e-tests/helpers/commands/collection-workspaces.ts index 36d91b3ec64..8ca6d89c0c3 100644 --- a/packages/compass-e2e-tests/helpers/commands/collection-workspaces.ts +++ b/packages/compass-e2e-tests/helpers/commands/collection-workspaces.ts @@ -1,4 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; import type { WorkspaceTabSelectorOptions } from '../selectors'; @@ -119,16 +118,13 @@ async function waitUntilActiveCollectionTab( ) { const options: WorkspaceTabSelectorOptions = { type: 'Collection', + connectionName, namespace: `${dbName}.${collectionName}`, active: true, }; - // Only add the connectionName for multiple connections because for some - // reason this sometimes flakes in single connections even though the tab is - // definitely there in the screenshot. - if (TEST_MULTIPLE_CONNECTIONS) { - options.connectionName = connectionName; - } + await browser.$(Selectors.workspaceTab(options)).waitForDisplayed(); + if (tabName) { await waitUntilActiveCollectionSubTab(browser, tabName); } diff --git a/packages/compass-e2e-tests/helpers/commands/connect-form.ts b/packages/compass-e2e-tests/helpers/commands/connect-form.ts index 90af05ad2b2..f47505af19e 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect-form.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect-form.ts @@ -3,31 +3,24 @@ import { expect } from 'chai'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; import type { ConnectFormState } from '../connect-form-state'; -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import Debug from 'debug'; import { DEFAULT_CONNECTIONS } from '../test-runner-context'; import { getConnectionTitle } from '@mongodb-js/connection-info'; const debug = Debug('compass-e2e-tests'); export async function resetConnectForm(browser: CompassBrowser): Promise { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; - if (TEST_MULTIPLE_CONNECTIONS) { - if (await browser.$(Selectors.ConnectionModal).isDisplayed()) { - await browser.clickVisible(Selectors.ConnectionModalCloseButton); - await browser - .$(Selectors.ConnectionModal) - .waitForDisplayed({ reverse: true }); - } + if (await browser.$(Selectors.ConnectionModal).isDisplayed()) { + await browser.clickVisible(Selectors.ConnectionModalCloseButton); + await browser + .$(Selectors.ConnectionModal) + .waitForDisplayed({ reverse: true }); } await browser.clickVisible(Sidebar.SidebarNewConnectionButton); - const connectionTitleSelector = TEST_MULTIPLE_CONNECTIONS - ? Selectors.ConnectionModalTitle - : Selectors.ConnectionTitle; + const connectionTitleSelector = Selectors.ConnectionModalTitle; const connectionTitle = await browser.$(connectionTitleSelector); await connectionTitle.waitUntil(async () => { @@ -57,29 +50,20 @@ export async function getConnectFormState( // General const initialTab = await browser.navigateToConnectTab('General'); - const defaultPromises: Record> = { + const defaultState = await promiseMap({ scheme: getCheckedRadioValue(browser, Selectors.ConnectionFormSchemeRadios), hosts: getMultipleValues(browser, Selectors.ConnectionFormHostInputs), directConnection: getCheckboxValue( browser, Selectors.ConnectionFormDirectConnectionCheckbox ), - }; - if (TEST_MULTIPLE_CONNECTIONS) { - defaultPromises.connectionName = getValue( - browser, - Selectors.ConnectionFormConnectionName - ); - defaultPromises.connectionColor = getValue( - browser, - Selectors.ConnectionFormConnectionColor - ); - defaultPromises.connectionFavorite = getCheckboxValue( + connectionName: getValue(browser, Selectors.ConnectionFormConnectionName), + connectionColor: getValue(browser, Selectors.ConnectionFormConnectionColor), + connectionFavorite: getCheckboxValue( browser, Selectors.ConnectionFormFavoriteCheckbox - ); - } - const defaultState = await promiseMap(defaultPromises); + ), + }); // Authentication await browser.navigateToConnectTab('Authentication'); @@ -506,25 +490,22 @@ export async function setConnectFormState( await browser.clickParent(Selectors.ConnectionFormDirectConnectionCheckbox); } - if (TEST_MULTIPLE_CONNECTIONS) { - // Name, Color, Favorite - if (state.connectionName) { - await browser.setValueVisible( - Selectors.ConnectionFormConnectionName, - state.connectionName - ); - } + if (state.connectionName) { + await browser.setValueVisible( + Selectors.ConnectionFormConnectionName, + state.connectionName + ); + } - if (state.connectionColor) { - await browser.selectOption( - Selectors.ConnectionFormConnectionColor, - colorValueToName(state.connectionColor) - ); - } + if (state.connectionColor) { + await browser.selectOption( + Selectors.ConnectionFormConnectionColor, + colorValueToName(state.connectionColor) + ); + } - if (state.connectionFavorite) { - await browser.clickParent(Selectors.ConnectionFormFavoriteCheckbox); - } + if (state.connectionFavorite) { + await browser.clickParent(Selectors.ConnectionFormFavoriteCheckbox); } // Authentication diff --git a/packages/compass-e2e-tests/helpers/commands/connect.ts b/packages/compass-e2e-tests/helpers/commands/connect.ts index 379524d622d..381ada2cf36 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect.ts @@ -2,27 +2,14 @@ import { DEFAULT_CONNECTION_NAME_1, DEFAULT_CONNECTION_NAME_2, DEFAULT_CONNECTION_STRING_1, - TEST_MULTIPLE_CONNECTIONS, connectionNameFromString, } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import type { ConnectFormState } from '../connect-form-state'; import * as Selectors from '../selectors'; import Debug from 'debug'; -const debug = Debug('compass-e2e-tests'); - -export async function waitForConnectionScreen( - browser: CompassBrowser -): Promise { - // there isn't a separate connection screen in multiple connections, just a modal you can access at any time - if (TEST_MULTIPLE_CONNECTIONS) { - return; - } - const selector = Selectors.ConnectSection; - const connectScreenElement = await browser.$(selector); - await connectScreenElement.waitForDisplayed(); -} +const debug = Debug('compass-e2e-tests'); export async function getConnectFormConnectionString( browser: CompassBrowser, @@ -57,32 +44,29 @@ export async function connectWithConnectionString( // connection string. Most test files should just be using // browser.connectToDefaults() - if (TEST_MULTIPLE_CONNECTIONS) { - // if the modal is still animating away when we're connecting again, things - // are going to get confused - await browser - .$(Selectors.ConnectionModal) - .waitForDisplayed({ reverse: true }); - - // if a connection with this name already exists, remove it otherwise we'll - // add a duplicate and things will get complicated fast - const connectionName = connectionNameFromString(connectionString); - if (await browser.removeConnection(connectionName)) { - debug('Removing existing connection so we do not create a duplicate', { - connectionName, - }); - } + // if the modal is still animating away when we're connecting again, things + // are going to get confused + await browser + .$(Selectors.ConnectionModal) + .waitForDisplayed({ reverse: true }); - await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); - await browser.$(Selectors.ConnectionModal).waitForDisplayed(); + // if a connection with this name already exists, remove it otherwise we'll + // add a duplicate and things will get complicated fast + const connectionName = connectionNameFromString(connectionString); + if (await browser.removeConnection(connectionName)) { + debug('Removing existing connection so we do not create a duplicate', { + connectionName, + }); } + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); + await browser.$(Selectors.ConnectionModal).waitForDisplayed(); + await browser.setValueVisible( Selectors.ConnectionFormStringInput, connectionString ); - const connectionName = connectionNameFromString(connectionString); await browser.doConnect(connectionName, options); } @@ -133,75 +117,50 @@ export async function waitForConnectionResult( ): Promise { const waitOptions = typeof timeout !== 'undefined' ? { timeout } : undefined; - if (TEST_MULTIPLE_CONNECTIONS) { - if (await browser.$(Selectors.SidebarFilterInput).isDisplayed()) { - // Clear the filter to make sure every connection shows - await browser.clickVisible(Selectors.SidebarFilterInput); - await browser.setValueVisible(Selectors.SidebarFilterInput, ''); - } + if (await browser.$(Selectors.SidebarFilterInput).isDisplayed()) { + // Clear the filter to make sure every connection shows + await browser.clickVisible(Selectors.SidebarFilterInput); + await browser.setValueVisible(Selectors.SidebarFilterInput, ''); } if (connectionStatus === 'either') { // For the very rare cases where we don't care whether it fails or succeeds. // Usually because the exact result is a race condition. - if (TEST_MULTIPLE_CONNECTIONS) { - const successSelector = Selectors.Multiple.connectionItemByName( - connectionName, - { - connected: true, - } - ); - const failureSelector = Selectors.ConnectionToastErrorText; - await browser - .$(`${successSelector},${failureSelector}`) - .waitForDisplayed(waitOptions); - } else { - // TODO(COMPASS-7600): this doesn't support compass-web yet, but also - // isn't encountered yet - await browser - .$(`${Selectors.MyQueriesList},${Selectors.ConnectionFormErrorMessage}`) - .waitForDisplayed(); - } + const successSelector = Selectors.Multiple.connectionItemByName( + connectionName, + { + connected: true, + } + ); + const failureSelector = Selectors.ConnectionToastErrorText; + await browser + .$(`${successSelector},${failureSelector}`) + .waitForDisplayed(waitOptions); } else if (connectionStatus === 'success') { // Wait for the first meaningful thing on the screen after being connected // and assume that's a good enough indicator that we are connected to the // server - if (TEST_MULTIPLE_CONNECTIONS) { - await browser - .$( - Selectors.Multiple.connectionItemByName(connectionName, { - connected: true, - }) - ) - .waitForDisplayed(); - } else { - // In the single connection world we land on the My Queries page - await browser.$(Selectors.MyQueriesList).waitForDisplayed(); - } + await browser + .$( + Selectors.Multiple.connectionItemByName(connectionName, { + connected: true, + }) + ) + .waitForDisplayed(); } else if (connectionStatus === 'failure') { - if (TEST_MULTIPLE_CONNECTIONS) { - await browser - .$(Selectors.ConnectionToastErrorText) - .waitForDisplayed(waitOptions); - return await browser.$(Selectors.LGToastTitle).getText(); - } else { - // TODO(COMPASS-7600): this doesn't support compass-web yet, but also - // isn't encountered yet - const element = await browser.$(Selectors.ConnectionFormErrorMessage); - await element.waitForDisplayed(waitOptions); - return await element.getText(); - } + await browser + .$(Selectors.ConnectionToastErrorText) + .waitForDisplayed(waitOptions); + return await browser.$(Selectors.LGToastTitle).getText(); } else { const exhaustiveCheck: never = connectionStatus; throw new Error(`Unhandled connectionStatus case: ${exhaustiveCheck}`); } - if (TEST_MULTIPLE_CONNECTIONS) { - // make sure the placeholders for databases & collections that are loading are all gone - await browser - .$(Selectors.DatabaseCollectionPlaceholder) - .waitForDisplayed({ reverse: true }); - } + // make sure the placeholders for databases & collections that are loading are all gone + await browser + .$(Selectors.DatabaseCollectionPlaceholder) + .waitForDisplayed({ reverse: true }); } export async function connectByName( @@ -210,25 +169,13 @@ export async function connectByName( options: ConnectionResultOptions = {} ) { await browser.clickVisible(Selectors.sidebarConnectionButton(connectionName)); - - if (!TEST_MULTIPLE_CONNECTIONS) { - // for single connections it only fills the connection form and we still - // have to click connect. For multiple connections clicking the connection - // connects - await browser.pause(1000); - await browser.clickVisible(Selectors.ConnectButton); - } - await browser.waitForConnectionResult(connectionName, options); } export async function connectToDefaults(browser: CompassBrowser) { // See setupDefaultConnections() for the details behind the thinking here. await browser.connectByName(DEFAULT_CONNECTION_NAME_1); - - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.connectByName(DEFAULT_CONNECTION_NAME_2); - } + await browser.connectByName(DEFAULT_CONNECTION_NAME_2); // We assume that we connected successfully, so just close the success toasts // early to make sure they aren't in the way of tests. Tests that care about diff --git a/packages/compass-e2e-tests/helpers/commands/connection-workspaces.ts b/packages/compass-e2e-tests/helpers/commands/connection-workspaces.ts index 29d5a7b0250..4b11cbce633 100644 --- a/packages/compass-e2e-tests/helpers/commands/connection-workspaces.ts +++ b/packages/compass-e2e-tests/helpers/commands/connection-workspaces.ts @@ -1,4 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; import type { WorkspaceTabSelectorOptions } from '../selectors'; @@ -8,22 +7,16 @@ export async function navigateToConnectionTab( connectionName: string, tabType: 'Performance' | 'Databases' ): Promise { - if (TEST_MULTIPLE_CONNECTIONS) { - if (tabType === 'Databases') { - await browser.clickVisible(Selectors.sidebarConnection(connectionName)); - } else { - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.ViewPerformanceItem - ); - } - - await waitUntilActiveConnectionTab(browser, connectionName, tabType); + if (tabType === 'Databases') { + await browser.clickVisible(Selectors.sidebarConnection(connectionName)); } else { - const itemSelector = Selectors.sidebarInstanceNavigationItem(tabType); - await browser.clickVisible(itemSelector); - await waitUntilActiveConnectionTab(browser, connectionName, tabType); + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.ViewPerformanceItem + ); } + + await waitUntilActiveConnectionTab(browser, connectionName, tabType); } export async function waitUntilActiveConnectionTab( @@ -31,13 +24,10 @@ export async function waitUntilActiveConnectionTab( connectionName: string, tabType: 'Performance' | 'Databases' ) { - const options: WorkspaceTabSelectorOptions = { type: tabType, active: true }; - - // Only add the connectionName for multiple connections because for some - // reason this sometimes flakes in single connections even though the tab is - // definitely there in the screenshot. - if (TEST_MULTIPLE_CONNECTIONS) { - options.connectionName = connectionName; - } + const options: WorkspaceTabSelectorOptions = { + type: tabType, + connectionName, + active: true, + }; await browser.$(Selectors.workspaceTab(options)).waitForDisplayed(); } diff --git a/packages/compass-e2e-tests/helpers/commands/database-workspaces.ts b/packages/compass-e2e-tests/helpers/commands/database-workspaces.ts index e4dd8038269..c84321c1916 100644 --- a/packages/compass-e2e-tests/helpers/commands/database-workspaces.ts +++ b/packages/compass-e2e-tests/helpers/commands/database-workspaces.ts @@ -1,4 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; import type { WorkspaceTabSelectorOptions } from '../selectors'; @@ -19,16 +18,10 @@ export async function waitUntilActiveDatabaseTab( dbName: string ) { const options: WorkspaceTabSelectorOptions = { + connectionName, namespace: dbName, active: true, }; - // Only add the connectionName for multiple connections because for some - // reason this sometimes flakes in single connections even though the tab is - // definitely there in the screenshot. - if (TEST_MULTIPLE_CONNECTIONS) { - options.connectionName = connectionName; - } - await browser.$(Selectors.workspaceTab(options)).waitForDisplayed(); } diff --git a/packages/compass-e2e-tests/helpers/commands/disconnect.ts b/packages/compass-e2e-tests/helpers/commands/disconnect.ts index c4f38f6e3bc..d0c9c8a3e38 100644 --- a/packages/compass-e2e-tests/helpers/commands/disconnect.ts +++ b/packages/compass-e2e-tests/helpers/commands/disconnect.ts @@ -1,37 +1,6 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; -import delay from '../delay'; import * as Selectors from '../selectors'; -async function disconnectAllSingle(browser: CompassBrowser) { - const cancelConnectionButtonElement = await browser.$( - Selectors.CancelConnectionButton - ); - // If we are still connecting, let's try cancelling the connection first - if (await cancelConnectionButtonElement.isDisplayed()) { - try { - await browser.closeConnectModal(); - } catch (e) { - // If that failed, the button was probably gone before we managed to - // click it. Let's go through the whole disconnecting flow now - } - } - - await delay(100); - - await browser.execute(() => { - // eslint-disable-next-line @typescript-eslint/no-var-requires - require('electron').ipcRenderer.emit('app:disconnect'); - }); - - // for single connections we expect the connect screen to re-appear - await browser.$(Selectors.ConnectSection).waitForDisplayed(); - - // clear the form - await browser.clickVisible(Selectors.Single.SidebarNewConnectionButton); - await delay(100); -} - async function resetForDisconnect( browser: CompassBrowser, { @@ -69,10 +38,6 @@ export async function disconnectAll( // probably in conjunction with browser.connectToDefaults() so that each test // will start off with multiple connections already connected. - if (!TEST_MULTIPLE_CONNECTIONS) { - return await disconnectAllSingle(browser); - } - // The previous test could have ended with modals and/or toasts left open and // a search filter in the sidebar. Reset those so we can get to a known state. await resetForDisconnect(browser, { closeToasts }); diff --git a/packages/compass-e2e-tests/helpers/commands/open-shell.ts b/packages/compass-e2e-tests/helpers/commands/open-shell.ts index 8c3725259f4..918420416e1 100644 --- a/packages/compass-e2e-tests/helpers/commands/open-shell.ts +++ b/packages/compass-e2e-tests/helpers/commands/open-shell.ts @@ -1,43 +1,27 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; -import retryWithBackoff from '../retry-with-backoff'; import * as Selectors from '../selectors'; export async function openShell( browser: CompassBrowser, connectionName: string ): Promise { - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.OpenShellItem, - false // the item is not contained in the three-dot menu - ); - - // try and make sure the shell tab is active and ready - await browser.waitUntil(async () => { - const currentActiveTab = await browser.$( - Selectors.workspaceTab({ active: true }) - ); - const activeType = await currentActiveTab.getAttribute('data-type'); - const activeConnectionName = await currentActiveTab.getAttribute( - 'data-connection-name' - ); - return activeType === 'Shell' && activeConnectionName === connectionName; - }); + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.OpenShellItem, + false // the item is not contained in the three-dot menu + ); - await browser.clickVisible(Selectors.ShellInputEditor); - } else { - // Expand the shell - await retryWithBackoff(async function () { - const shellContentElement = await browser.$(Selectors.ShellContent); - if (!(await shellContentElement.isDisplayed())) { - // The toasts may be covering the shell, so we need to close them. - await browser.hideAllVisibleToasts(); - await browser.clickVisible(Selectors.ShellExpandButton); - } + // try and make sure the shell tab is active and ready + await browser.waitUntil(async () => { + const currentActiveTab = await browser.$( + Selectors.workspaceTab({ active: true }) + ); + const activeType = await currentActiveTab.getAttribute('data-type'); + const activeConnectionName = await currentActiveTab.getAttribute( + 'data-connection-name' + ); + return activeType === 'Shell' && activeConnectionName === connectionName; + }); - await browser.clickVisible(Selectors.ShellInputEditor); - }); - } + await browser.clickVisible(Selectors.ShellInputEditor); } diff --git a/packages/compass-e2e-tests/helpers/commands/remove-connections.ts b/packages/compass-e2e-tests/helpers/commands/remove-connections.ts index 74e654e9c2d..3c63b92d9be 100644 --- a/packages/compass-e2e-tests/helpers/commands/remove-connections.ts +++ b/packages/compass-e2e-tests/helpers/commands/remove-connections.ts @@ -1,4 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; @@ -23,11 +22,6 @@ export async function removeAllConnections( // files that might create a lot of connections that will start running into // virtual scrolling issues - if (!TEST_MULTIPLE_CONNECTIONS) { - // not implemented for single connections / compass web - return; - } - // The previous test could have ended with modals and/or toasts left open and // a search filter in the sidebar. Reset those so we can get to a known state. await resetForRemove(browser); @@ -49,11 +43,6 @@ export async function removeConnectionByName( browser: CompassBrowser, connectionName: string ) { - if (!TEST_MULTIPLE_CONNECTIONS) { - // not implemented for single connections / compass web - return; - } - await resetForRemove(browser); await browser.selectConnectionMenuItem( diff --git a/packages/compass-e2e-tests/helpers/commands/save-connection-string-as-favorite.ts b/packages/compass-e2e-tests/helpers/commands/save-connection-string-as-favorite.ts index 57e48320003..be2f93a1acb 100644 --- a/packages/compass-e2e-tests/helpers/commands/save-connection-string-as-favorite.ts +++ b/packages/compass-e2e-tests/helpers/commands/save-connection-string-as-favorite.ts @@ -1,25 +1,17 @@ import { UUID } from 'bson'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; -// TODO(COMPASS-8023): Just remove this command and use setConnectionFormState() -// once we remove the single connection code +// TODO(COMPASS-8023): Provide a counterpart `browser.saveConnection` method to +// be able to edit existing connection export async function saveConnectionStringAsFavorite( browser: CompassBrowser, connectionString: string, favoriteName?: string, - color: `color${number}` | string = 'color1' + color = 'Green' ): Promise { - if (TEST_MULTIPLE_CONNECTIONS) { - // open the connection modal so we can fill in the connection string - await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); - } - - if (TEST_MULTIPLE_CONNECTIONS && color === 'color1') { - color = 'Green'; - } - + // open the connection modal so we can fill in the connection string + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); favoriteName ??= new UUID().toHexString(); await browser.setValueVisible( Selectors.ConnectionFormStringInput, diff --git a/packages/compass-e2e-tests/helpers/commands/save-favorite.ts b/packages/compass-e2e-tests/helpers/commands/save-favorite.ts index 0921a0a7b8b..3635aaafd87 100644 --- a/packages/compass-e2e-tests/helpers/commands/save-favorite.ts +++ b/packages/compass-e2e-tests/helpers/commands/save-favorite.ts @@ -1,39 +1,22 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; -import { expect } from 'chai'; -// TODO(COMPASS-8023): Just remove this command and use -// setConnectionFormState() once we remove the single connection code +// TODO(COMPASS-8023): Provide a counterpart `browser.saveConnection` method to +// be able to edit existing connection export async function saveFavorite( browser: CompassBrowser, favoriteName: string, - color: `color${number}` | string + color: string ): Promise { - if (TEST_MULTIPLE_CONNECTIONS) { - // this assumes that the checkbox is unchecked - await browser.clickParent(Selectors.ConnectionFormFavoriteCheckbox); - await browser.setValueVisible( - Selectors.ConnectionFormConnectionName, - favoriteName - ); - await browser.selectOption(Selectors.ConnectionFormConnectionColor, color); - - await browser.clickVisible(Selectors.ConnectionModalSaveButton); - await browser.$(Selectors.ConnectionModal).waitForExist({ reverse: true }); - return; - } - - await browser.clickVisible(Selectors.ConnectionEditFavouriteButton); - await browser.$(Selectors.FavoriteModal).waitForDisplayed(); - await browser.setValueVisible(Selectors.FavoriteNameInput, favoriteName); - await browser.clickVisible( - `${Selectors.FavoriteColorSelector} [data-testid="color-pick-${color}"]` + // this assumes that the checkbox is unchecked + await browser.clickParent(Selectors.ConnectionFormFavoriteCheckbox); + await browser.setValueVisible( + Selectors.ConnectionFormConnectionName, + favoriteName ); - await browser.$(Selectors.FavoriteSaveButton).waitForEnabled(); - expect(await browser.$(Selectors.FavoriteSaveButton).getText()).to.equal( - 'Save' - ); - await browser.clickVisible(Selectors.FavoriteSaveButton); - await browser.$(Selectors.FavoriteModal).waitForExist({ reverse: true }); + await browser.selectOption(Selectors.ConnectionFormConnectionColor, color); + + await browser.clickVisible(Selectors.ConnectionModalSaveButton); + await browser.$(Selectors.ConnectionModal).waitForExist({ reverse: true }); + return; } diff --git a/packages/compass-e2e-tests/helpers/commands/select-connections-menu-item.ts b/packages/compass-e2e-tests/helpers/commands/select-connections-menu-item.ts index e9fbacc2a12..9fe30669298 100644 --- a/packages/compass-e2e-tests/helpers/commands/select-connections-menu-item.ts +++ b/packages/compass-e2e-tests/helpers/commands/select-connections-menu-item.ts @@ -1,4 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; @@ -6,26 +5,7 @@ export async function selectConnectionsMenuItem( browser: CompassBrowser, itemSelector: string ) { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; - - if (!TEST_MULTIPLE_CONNECTIONS) { - // In the single connection world the button only appears on hover - - const selector = Selectors.Single.FavoriteConnectionsHeader; - await browser.$(selector).waitForDisplayed(); - - // workaround for weirdness in the ItemActionControls menu opener icon - await browser.clickVisible(Selectors.Single.ConnectionsTitle); - - // Hover over an arbitrary other element to ensure that the second hover will - // actually be a fresh one. This otherwise breaks if this function is called - // twice in a row. - await browser.hover(`*:not(${selector}, ${selector} *)`); - await browser.hover(selector); - } - + const Sidebar = Selectors.Multiple; await browser.clickVisible(Sidebar.ConnectionsMenuButton); await browser.$(Sidebar.ConnectionsMenu).waitForDisplayed(); await browser.clickVisible(itemSelector); diff --git a/packages/compass-e2e-tests/helpers/commands/sidebar-connection.ts b/packages/compass-e2e-tests/helpers/commands/sidebar-connection.ts index 3f5808d9dbb..47e32c29028 100644 --- a/packages/compass-e2e-tests/helpers/commands/sidebar-connection.ts +++ b/packages/compass-e2e-tests/helpers/commands/sidebar-connection.ts @@ -1,4 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; @@ -6,12 +5,6 @@ export async function getConnectionIdByName( browser: CompassBrowser, connectionName: string ): Promise { - if (!TEST_MULTIPLE_CONNECTIONS) { - // the connection id isn't somewhere we can consistently access it in the - // single connection world - return undefined; - } - const connections = await browser.$$( Selectors.sidebarConnection(connectionName) ); @@ -31,26 +24,13 @@ export async function selectConnection( browser: CompassBrowser, connectionName: string ): Promise { - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.EditConnectionItem - ); - } else { - await browser.pause(1000); - - await browser.clickVisible( - Selectors.sidebarConnectionButton(connectionName), - { - screenshot: `selecting-connection-${connectionName}.png`, - } - ); - } + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.EditConnectionItem + ); await browser.waitUntil(async () => { - const connectionTitleSelector = TEST_MULTIPLE_CONNECTIONS - ? Selectors.ConnectionModalTitle - : Selectors.ConnectionTitle; + const connectionTitleSelector = Selectors.ConnectionModalTitle; const text = await browser.$(connectionTitleSelector).getText(); return text === connectionName; @@ -63,9 +43,7 @@ export async function selectConnectionMenuItem( itemSelector: string, openMenu = true ) { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; const selector = Selectors.sidebarConnection(connectionName); @@ -104,36 +82,10 @@ export async function selectConnectionMenuItem( await browser.clickVisible(itemSelector); } -// TODO(COMPASS-8023): Just remove this once the single connection code is removed -async function removeConnectionSingle( - browser: CompassBrowser, - connectionName: string -): Promise { - const selector = Selectors.sidebarConnection(connectionName); - - if (await browser.$(selector).isExisting()) { - await browser.selectConnection(connectionName); - - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Single.RemoveConnectionItem - ); - - await browser.$(selector).waitForDisplayed({ reverse: true }); - return true; - } - - return false; -} - export async function removeConnection( browser: CompassBrowser, connectionName: string ): Promise { - if (!TEST_MULTIPLE_CONNECTIONS) { - return await removeConnectionSingle(browser, connectionName); - } - // make sure there's no filter because if the connection is not displayed then we can't remove it if (await browser.$(Selectors.SidebarFilterInput).isExisting()) { await browser.clickVisible(Selectors.SidebarFilterInput); diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 6bdb804e20b..71800865a86 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -58,8 +58,6 @@ const packageCompassAsync = promisify(packageCompass); // should we test compass-web (true) or compass electron (false)? export const TEST_COMPASS_WEB = _TEST_COMPASS_WEB; -// multiple connections is now the default -export const TEST_MULTIPLE_CONNECTIONS = true; /* A helper so we can easily find all the tests we're skipping in compass-web. @@ -411,7 +409,6 @@ export class Compass { interface StartCompassOptions { firstRun?: boolean; - noWaitForConnectionScreen?: boolean; extraSpawnArgs?: string[]; wrapBinary?: (binary: string) => Promise | string; } @@ -1057,10 +1054,6 @@ export async function init( await browser.closeWelcomeModal(); } - if (!opts.noWaitForConnectionScreen) { - await browser.waitForConnectionScreen(); - } - return compass; } diff --git a/packages/compass-e2e-tests/helpers/insert-data.ts b/packages/compass-e2e-tests/helpers/insert-data.ts index 2a18bdb218b..144e9b746dd 100644 --- a/packages/compass-e2e-tests/helpers/insert-data.ts +++ b/packages/compass-e2e-tests/helpers/insert-data.ts @@ -1,11 +1,6 @@ import { MongoClient } from 'mongodb'; import type { Db, MongoServerError } from 'mongodb'; - -import { - DEFAULT_CONNECTION_STRING_1, - DEFAULT_CONNECTION_STRING_2, - TEST_MULTIPLE_CONNECTIONS, -} from './compass'; +import { DEFAULT_CONNECTION_STRINGS } from './test-runner-context'; // This is a list of all the known database names that get created by tests so // that we can know what to drop when we clean up before every test. If a new @@ -53,10 +48,7 @@ export const beforeAll = async () => { // hopefully fail a test. // This should also mean that the database or collection name that we try and // use is always ambiguous, so we're forced to deal with it early in tests. - const connectionStrings = [DEFAULT_CONNECTION_STRING_1]; - if (TEST_MULTIPLE_CONNECTIONS) { - connectionStrings.push(DEFAULT_CONNECTION_STRING_2); - } + const connectionStrings = DEFAULT_CONNECTION_STRINGS; clients = connectionStrings.map( (connectionString) => new MongoClient(connectionString) ); diff --git a/packages/compass-e2e-tests/helpers/selectors.ts b/packages/compass-e2e-tests/helpers/selectors.ts index 5760e945347..0d4532ea4c1 100644 --- a/packages/compass-e2e-tests/helpers/selectors.ts +++ b/packages/compass-e2e-tests/helpers/selectors.ts @@ -1,5 +1,3 @@ -import { TEST_MULTIPLE_CONNECTIONS } from './compass'; - export type WorkspaceTabSelectorOptions = { id?: string; connectionName?: string; @@ -400,11 +398,7 @@ export const sidebarCollection = ( }; export const sidebarConnection = (connectionName: string): string => { - if (TEST_MULTIPLE_CONNECTIONS) { - return `${Sidebar} [data-connection-name="${connectionName}"]`; - } - - return sidebarFavorite(connectionName); + return `${Sidebar} [data-connection-name="${connectionName}"]`; }; export const sidebarConnectionButton = (connectionName: string): string => { diff --git a/packages/compass-e2e-tests/tests/auto-connect.test.ts b/packages/compass-e2e-tests/tests/auto-connect.test.ts index cb67cff9474..2f25ee90984 100644 --- a/packages/compass-e2e-tests/tests/auto-connect.test.ts +++ b/packages/compass-e2e-tests/tests/auto-connect.test.ts @@ -5,7 +5,6 @@ import { cleanup, positionalArgs, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, screenshotPathName, connectionNameFromString, } from '../helpers/compass'; @@ -89,12 +88,6 @@ describe('Automatically connecting from the command line', function () { await compass.browser.waitForConnectionResult(connectionName, { connectionStatus: 'success', }); - if (!TEST_MULTIPLE_CONNECTIONS) { - const sidebarTitle = await compass.browser - .$(Selectors.SidebarTitle) - .getText(); - expect(sidebarTitle).to.eq(connectionName); - } const result = await compass.browser.shellEval( connectionName, 'db.runCommand({ connectionStatus: 1 })', @@ -106,7 +99,6 @@ describe('Automatically connecting from the command line', function () { it('works with a connection string on the command line', async function () { const compass = await init(this.test?.fullTitle(), { wrapBinary: positionalArgs([connectionStringSuccess]), - noWaitForConnectionScreen: true, }); try { await waitForConnectionSuccessAndCheckConnection( @@ -127,7 +119,6 @@ describe('Automatically connecting from the command line', function () { const compass = await init(this.test?.fullTitle(), { wrapBinary: positionalArgs(args), - noWaitForConnectionScreen: true, }); try { await waitForConnectionSuccessAndCheckConnection(compass, 'Success'); @@ -176,10 +167,8 @@ describe('Automatically connecting from the command line', function () { { connectionStatus: 'failure' } ); expect(error).to.include('Authentication failed'); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible(Selectors.ConnectionToastErrorReviewButton); - await browser.$(Selectors.ConnectionModal).waitForDisplayed(); - } + await browser.clickVisible(Selectors.ConnectionToastErrorReviewButton); + await browser.$(Selectors.ConnectionModal).waitForDisplayed(); const connectFormState = await browser.getConnectFormState(); expect(connectFormState.defaultUsername).to.equal('doesnotexist'); expect(connectFormState.defaultPassword).to.equal('asdf/'); @@ -232,7 +221,6 @@ describe('Automatically connecting from the command line', function () { it('enters auto-connect mode again if the window is hard reloaded', async function () { const compass = await init(this.test?.fullTitle(), { wrapBinary: positionalArgs([connectionStringSuccess]), - noWaitForConnectionScreen: true, }); try { const { browser } = compass; @@ -255,7 +243,6 @@ describe('Automatically connecting from the command line', function () { await browser.execute(() => { location.reload(); }); - await browser.waitForConnectionScreen(); } catch (err: any) { await compass.browser.screenshot( screenshotPathName( @@ -271,7 +258,6 @@ describe('Automatically connecting from the command line', function () { it('does not enter auto-connect mode in new windows', async function () { const compass = await init(this.test?.fullTitle(), { wrapBinary: positionalArgs([connectionStringSuccess]), - noWaitForConnectionScreen: true, }); try { const { browser } = compass; @@ -300,37 +286,23 @@ describe('Automatically connecting from the command line', function () { if (allWindows.length < 2) return false; currentWindow = allWindows.find((w) => w !== currentWindow) as string; await browser.switchToWindow(currentWindow); - - if (TEST_MULTIPLE_CONNECTIONS) { - // the new window should open on the welcome tab - const currentActiveTab = await browser.$( - Selectors.workspaceTab({ active: true }) - ); - const type = await currentActiveTab.getAttribute('data-type'); - return type === 'Welcome'; - } else { - // the new window should land on the connect screen - const connectScreenElement = await browser.$( - Selectors.ConnectSection - ); - return await connectScreenElement.isDisplayed(); - } + // the new window should open on the welcome tab + const currentActiveTab = await browser.$( + Selectors.workspaceTab({ active: true }) + ); + const type = await currentActiveTab.getAttribute('data-type'); + return type === 'Welcome'; }); - if (TEST_MULTIPLE_CONNECTIONS) { - // no toasts to signify that anything is connecting - const toasts = await browser.$(Selectors.LGToastContainer).$$('div'); - expect(toasts).to.have.lengthOf(0); + // no toasts to signify that anything is connecting + const toasts = await browser.$(Selectors.LGToastContainer).$$('div'); + expect(toasts).to.have.lengthOf(0); - // no active connections - const connectionItems = await browser.$$( - Selectors.Multiple.ConnectedConnectionItems - ); - expect(connectionItems).to.have.lengthOf(0); - } else { - // this should always be true because we already waited for it in the waitUntil above - await browser.waitForConnectionScreen(); - } + // no active connections + const connectionItems = await browser.$$( + Selectors.Multiple.ConnectedConnectionItems + ); + expect(connectionItems).to.have.lengthOf(0); } finally { await cleanup(compass); } @@ -340,7 +312,6 @@ describe('Automatically connecting from the command line', function () { let browser; let compass = await init(this.test?.fullTitle(), { wrapBinary: positionalArgs([connectionStringSuccess]), - noWaitForConnectionScreen: true, }); try { browser = compass.browser; @@ -363,23 +334,15 @@ describe('Automatically connecting from the command line', function () { browser = compass.browser; // there should be no connection items - if (TEST_MULTIPLE_CONNECTIONS) { - const connectionItems = await browser.$$( - Selectors.Multiple.ConnectionItems - ); - expect(connectionItems).to.have.lengthOf(0); + const connectionItems = await browser.$$( + Selectors.Multiple.ConnectionItems + ); + expect(connectionItems).to.have.lengthOf(0); - await browser - .$(Selectors.Multiple.NoDeploymentsText) - .waitForDisplayed(); - await browser - .$(Selectors.Multiple.AddNewConnectionButton) - .waitForDisplayed(); - } else { - await browser - .$(Selectors.Single.RecentConnections) - .waitForDisplayed({ reverse: true }); - } + await browser.$(Selectors.Multiple.NoDeploymentsText).waitForDisplayed(); + await browser + .$(Selectors.Multiple.AddNewConnectionButton) + .waitForDisplayed(); } finally { await cleanup(compass); } diff --git a/packages/compass-e2e-tests/tests/connection-form.test.ts b/packages/compass-e2e-tests/tests/connection-form.test.ts index 4e44980e0af..afd961b8be6 100644 --- a/packages/compass-e2e-tests/tests/connection-form.test.ts +++ b/packages/compass-e2e-tests/tests/connection-form.test.ts @@ -8,7 +8,6 @@ import { screenshotIfFailed, skipForWeb, TEST_COMPASS_WEB, - TEST_MULTIPLE_CONNECTIONS, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -64,13 +63,10 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - expect(state).to.deep.equal(expectedState); }); @@ -97,14 +93,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(); expect(state).to.deep.equal(expectedState); @@ -136,14 +129,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017,127.0.0.1:27091', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017,127.0.0.1:27091'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(); expect(state).to.deep.equal(expectedState); @@ -175,14 +165,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(); expect(state).to.deep.equal(expectedState); @@ -220,14 +207,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(true); expect(state).to.deep.equal(expectedState); @@ -265,14 +249,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - await browser.setValueVisible( Selectors.ConnectionFormStringInput, connectionString @@ -318,14 +299,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(); expect(state).to.deep.equal(expectedState); @@ -360,14 +338,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(true); expect(state).to.deep.equal(expectedState); @@ -404,14 +379,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(true); expect(state).to.deep.equal(expectedState); @@ -450,14 +422,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(true); expect(state).to.deep.equal(expectedState); @@ -497,14 +466,11 @@ describe('Connection form', function () { }, fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(); expect(state).to.deep.equal(expectedState); @@ -544,13 +510,10 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - expect(await browser.getConnectFormState()).to.deep.equal(expectedState); }); @@ -590,13 +553,10 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - expect(await browser.getConnectFormState()).to.deep.equal(expectedState); }); @@ -634,14 +594,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(false); expect(state).to.deep.equal(expectedState); @@ -656,15 +613,10 @@ describe('Connection form', function () { const favoriteName = 'My Favorite'; const newFavoriteName = 'My Favorite (edited)'; - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; // save - await browser.saveFavorite( - favoriteName, - TEST_MULTIPLE_CONNECTIONS ? 'Green' : 'color1' - ); + await browser.saveFavorite(favoriteName, 'Green'); if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE !== 'true') { // copy the connection string @@ -689,9 +641,7 @@ describe('Connection form', function () { ); // duplicating opens the modal, in multiple connections you have to save - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible(Selectors.ConnectionModalSaveButton); - } + await browser.clickVisible(Selectors.ConnectionModalSaveButton); // delete the duplicate await browser.selectConnectionMenuItem( @@ -702,10 +652,7 @@ describe('Connection form', function () { // edit the original await browser.selectConnection(favoriteName); - await browser.saveFavorite( - newFavoriteName, - TEST_MULTIPLE_CONNECTIONS ? 'Pink' : 'color2' - ); + await browser.saveFavorite(newFavoriteName, 'Pink'); // it should now be updated in the sidebar await browser @@ -713,9 +660,7 @@ describe('Connection form', function () { .waitForDisplayed(); // open the modal so we can perform some actions in there - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnection(newFavoriteName); - } + await browser.selectConnection(newFavoriteName); // the edit the connection string toggle should be on (because this is a new connection we just saved) const toggle = await browser.$(Selectors.EditConnectionStringToggle); @@ -761,14 +706,11 @@ describe('Connection form', function () { readPreference: 'defaultReadPreference', fleStoreCredentials: false, fleEncryptedFieldsMap: DEFAULT_FLE_ENCRYPTED_FIELDS_MAP, + connectionName: 'localhost:27017', + connectionColor: 'no-color', + connectionFavorite: false, }; - if (TEST_MULTIPLE_CONNECTIONS) { - expectedState.connectionName = 'localhost:27017'; - expectedState.connectionColor = 'no-color'; - expectedState.connectionFavorite = false; - } - const state = await browser.getConnectFormState(true); expect(state).to.deep.equal(expectedState); @@ -781,13 +723,7 @@ describe('Connection form', function () { ); }); - it('supports saving a favorite (multiple connections)', async function () { - if (!TEST_MULTIPLE_CONNECTIONS) { - // this will remain skipped until we remove the test because the test is - // now for the multiple connections case only - this.skip(); - } - + it('supports saving a favorite', async function () { const state: ConnectFormState = { connectionName: 'my-connection', connectionColor: 'Red', @@ -815,51 +751,4 @@ describe('Connection form', function () { tlsInsecure: false, }); }); - - it('supports saving a favorite (single connection)', async function () { - if (TEST_MULTIPLE_CONNECTIONS) { - // this will remain skipped until we remove the test because the test is - // now for the single connection case only - this.skip(); - } - - const favoriteName = 'My New Favorite'; - - // Fill in a valid URI - await browser.setValueVisible( - Selectors.ConnectionFormStringInput, - 'mongodb://127.0.0.1:27091/test' - ); - - // Save & Connect - await browser.clickVisible(Selectors.SaveAndConnectButton); - - // Fill out the favorite info - await browser.$(Selectors.FavoriteModal).waitForDisplayed(); - await browser.setValueVisible(Selectors.FavoriteNameInput, favoriteName); - await browser.clickVisible( - `${Selectors.FavoriteColorSelector} [data-testid="color-pick-color2"]` - ); - - // The modal's button text should read Save & Connect and not the default Save - expect(await browser.$(Selectors.FavoriteSaveButton).getText()).to.equal( - 'Save & Connect' - ); - - await browser.$(Selectors.FavoriteSaveButton).waitForEnabled(); - - await browser.clickVisible(Selectors.FavoriteSaveButton); - await browser.$(Selectors.FavoriteModal).waitForExist({ reverse: true }); - - // Wait for it to connect - const element = await browser.$(Selectors.MyQueriesList); - await element.waitForDisplayed(); - - // It should use the new favorite name as the connection name in the top-left corner - expect(await browser.$(Selectors.SidebarTitle).getText()).to.equal( - favoriteName - ); - - await browser.disconnectAll(); - }); }); diff --git a/packages/compass-e2e-tests/tests/connection.test.ts b/packages/compass-e2e-tests/tests/connection.test.ts index b5477f5151e..36b7fdc725b 100644 --- a/packages/compass-e2e-tests/tests/connection.test.ts +++ b/packages/compass-e2e-tests/tests/connection.test.ts @@ -13,7 +13,6 @@ import { serverSatisfies, skipForWeb, TEST_COMPASS_WEB, - TEST_MULTIPLE_CONNECTIONS, connectionNameFromString, DEFAULT_CONNECTION_NAME_1, MONGODB_TEST_SERVER_PORT, @@ -197,27 +196,19 @@ async function assertCannotCreateDb( dbName: string, collectionName: string ): Promise { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; - - if (TEST_MULTIPLE_CONNECTIONS) { - // navigate to the databases tab so that the connection is - // active/highlighted and then the add button and three dot menu will - // display without needing to hover - await browser.navigateToConnectionTab(connectionName, 'Databases'); - } + const Sidebar = Selectors.Multiple; + + // navigate to the databases tab so that the connection is + // active/highlighted and then the add button and three dot menu will + // display without needing to hover + await browser.navigateToConnectionTab(connectionName, 'Databases'); // open the create database modal from the sidebar - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - connectionName, - Sidebar.CreateDatabaseButton, - false - ); - } else { - await browser.clickVisible(Sidebar.CreateDatabaseButton); - } + await browser.selectConnectionMenuItem( + connectionName, + Sidebar.CreateDatabaseButton, + false + ); const createModalElement = await browser.$(Selectors.CreateDatabaseModal); await createModalElement.waitForDisplayed(); @@ -333,32 +324,23 @@ describe('Connection string', function () { ); // check the error - if (TEST_MULTIPLE_CONNECTIONS) { - const toastTitle = await browser.$(Selectors.LGToastTitle).getText(); - expect(toastTitle).to.equal('Authentication failed.'); + const toastTitle = await browser.$(Selectors.LGToastTitle).getText(); + expect(toastTitle).to.equal('Authentication failed.'); - const errorMessage = await browser - .$(Selectors.ConnectionToastErrorText) - .getText(); - expect(errorMessage).to.equal( - 'There was a problem connecting to 127.0.0.1:27091' - ); - } else { - const errorMessage = await browser - .$(Selectors.ConnectionFormErrorMessage) - .getText(); - expect(errorMessage).to.equal('Authentication failed.'); - } + const errorMessage = await browser + .$(Selectors.ConnectionToastErrorText) + .getText(); + expect(errorMessage).to.equal( + 'There was a problem connecting to 127.0.0.1:27091' + ); // for multiple connections click the review button in the toast - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible(Selectors.ConnectionToastErrorReviewButton); - await browser.$(Selectors.ConnectionModal).waitForDisplayed(); - const errorText = await browser - .$(Selectors.ConnectionFormErrorMessage) - .getText(); - expect(errorText).to.equal('Authentication failed.'); - } + await browser.clickVisible(Selectors.ConnectionToastErrorReviewButton); + await browser.$(Selectors.ConnectionModal).waitForDisplayed(); + const errorText = await browser + .$(Selectors.ConnectionFormErrorMessage) + .getText(); + expect(errorText).to.equal('Authentication failed.'); }); it('can connect to an Atlas replicaset without srv', async function () { @@ -929,10 +911,6 @@ describe('Connection form', function () { }); it('fails for multiple authentication errors', async function () { - if (!TEST_MULTIPLE_CONNECTIONS) { - this.skip(); - } - const connection1Name = 'error-1'; const connection2Name = 'error-2'; diff --git a/packages/compass-e2e-tests/tests/force-connection-options.test.ts b/packages/compass-e2e-tests/tests/force-connection-options.test.ts index 1fcba173446..228cef005b3 100644 --- a/packages/compass-e2e-tests/tests/force-connection-options.test.ts +++ b/packages/compass-e2e-tests/tests/force-connection-options.test.ts @@ -6,7 +6,6 @@ import { positionalArgs, skipForWeb, TEST_COMPASS_WEB, - TEST_MULTIPLE_CONNECTIONS, Selectors, connectionNameFromString, } from '../helpers/compass'; @@ -42,10 +41,8 @@ describe('forceConnectionOptions', function () { }); it('forces the value of a specific connection option', async function () { - if (TEST_MULTIPLE_CONNECTIONS) { - // open the connection modal because that's where the warnings will be displayed - await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); - } + // open the connection modal because that's where the warnings will be displayed + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); await browser.waitUntil( async () => { @@ -63,10 +60,8 @@ describe('forceConnectionOptions', function () { } ); - if (TEST_MULTIPLE_CONNECTIONS) { - // close the modal again so connectWithConnectionString sees the expected state - await browser.clickVisible(Selectors.ConnectionModalCloseButton); - } + // close the modal again so connectWithConnectionString sees the expected state + await browser.clickVisible(Selectors.ConnectionModalCloseButton); const connectionString = 'mongodb://127.0.0.1:27091/?appName=userSpecifiedAppName'; diff --git a/packages/compass-e2e-tests/tests/import-export-connections.test.ts b/packages/compass-e2e-tests/tests/import-export-connections.test.ts index 3edf8bd8c11..9848f290f77 100644 --- a/packages/compass-e2e-tests/tests/import-export-connections.test.ts +++ b/packages/compass-e2e-tests/tests/import-export-connections.test.ts @@ -1,10 +1,6 @@ import { expect } from 'chai'; import type { Compass } from '../helpers/compass'; -import { - TEST_MULTIPLE_CONNECTIONS, - screenshotIfFailed, - skipForWeb, -} from '../helpers/compass'; +import { screenshotIfFailed, skipForWeb } from '../helpers/compass'; import { init, cleanup, @@ -117,22 +113,13 @@ describe('Connection Import / Export', function () { : connectionString; expect(cs).to.equal(expected); - if (TEST_MULTIPLE_CONNECTIONS) { - // close the modal again so connectWithConnectionString sees the expected state - await browser.clickVisible(Selectors.ConnectionModalCloseButton); - - await browser.selectConnectionMenuItem( - favoriteName, - Selectors.Multiple.RemoveConnectionItem - ); - } else { - await browser.selectConnection(favoriteName); + // close the modal again so connectWithConnectionString sees the expected state + await browser.clickVisible(Selectors.ConnectionModalCloseButton); - await browser.selectConnectionMenuItem( - favoriteName, - Selectors.Single.RemoveConnectionItem - ); - } + await browser.selectConnectionMenuItem( + favoriteName, + Selectors.Multiple.RemoveConnectionItem + ); await waitForConnections(); } @@ -160,12 +147,10 @@ describe('Connection Import / Export', function () { try { const { browser } = compass; - if (TEST_MULTIPLE_CONNECTIONS) { - // open the connection modal so we can fill in the connection string - await browser.clickVisible( - Selectors.Multiple.SidebarNewConnectionButton - ); - } + // open the connection modal so we can fill in the connection string + await browser.clickVisible( + Selectors.Multiple.SidebarNewConnectionButton + ); await browser.setValueVisible( Selectors.ConnectionFormStringInput, @@ -173,10 +158,7 @@ describe('Connection Import / Export', function () { ); await waitForConnections(); - await browser.saveFavorite( - favoriteName, - TEST_MULTIPLE_CONNECTIONS ? 'Orange' : 'color3' - ); + await browser.saveFavorite(favoriteName, 'Orange'); await waitForConnections(); } finally { await cleanup(compass); @@ -213,19 +195,10 @@ describe('Connection Import / Export', function () { ); try { const { browser } = compass; - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - favoriteName, - Selectors.Multiple.RemoveConnectionItem - ); - } else { - await browser.selectConnection(favoriteName); - - await browser.selectConnectionMenuItem( - favoriteName, - Selectors.Single.RemoveConnectionItem - ); - } + await browser.selectConnectionMenuItem( + favoriteName, + Selectors.Multiple.RemoveConnectionItem + ); await waitForConnections(); } finally { await cleanup(compass); @@ -277,12 +250,8 @@ describe('Connection Import / Export', function () { compass = await init(this.test?.fullTitle(), { firstRun: false }); browser = compass.browser; - if (TEST_MULTIPLE_CONNECTIONS) { - // open the connection modal so we can fill in the connection string - await browser.clickVisible( - Selectors.Multiple.SidebarNewConnectionButton - ); - } + // open the connection modal so we can fill in the connection string + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); await browser.setValueVisible( Selectors.ConnectionFormStringInput, @@ -291,10 +260,7 @@ describe('Connection Import / Export', function () { await waitForConnections(); - await browser.saveFavorite( - favoriteName, - TEST_MULTIPLE_CONNECTIONS ? 'Orange' : 'color3' - ); + await browser.saveFavorite(favoriteName, 'Orange'); // again: make sure the new favourite is there await waitForConnections(); @@ -310,9 +276,7 @@ describe('Connection Import / Export', function () { for (const variant of variants) { it(`supports exporting and importing connections in ${variant} mode`, async function () { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; { // Make sure file exists so that the file picker works. We could also do work diff --git a/packages/compass-e2e-tests/tests/in-use-encryption.test.ts b/packages/compass-e2e-tests/tests/in-use-encryption.test.ts index 1203a249b3c..64416693e11 100644 --- a/packages/compass-e2e-tests/tests/in-use-encryption.test.ts +++ b/packages/compass-e2e-tests/tests/in-use-encryption.test.ts @@ -6,7 +6,6 @@ import { screenshotIfFailed, serverSatisfies, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -24,14 +23,10 @@ async function refresh(browser: CompassBrowser, connectionName: string) { // hit refresh, then wait for a transition to occur that will correlate to the // data actually being refreshed and arriving. - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.RefreshDatabasesItem - ); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.RefreshDatabasesItem + ); } /** @@ -118,41 +113,16 @@ describe('CSFLE / QE', function () { }; // Save & Connect - if (TEST_MULTIPLE_CONNECTIONS) { - // in the multiple connections world the favorite form fields are just - // part of the connection form - options.connectionName = connectionName; - options.connectionColor = 'color1'; - options.connectionFavorite = true; - - await browser.setConnectFormState(options); - - await browser.clickVisible(Selectors.ConnectionModalConnectButton); - } else { - // in the single connections world the favorite form fields are in a - // separate modal - await browser.setConnectFormState(options); - await browser.clickVisible(Selectors.SaveAndConnectButton); - await browser.$(Selectors.FavoriteModal).waitForDisplayed(); - await browser.setValueVisible( - Selectors.FavoriteNameInput, - connectionName - ); - await browser.clickVisible( - `${Selectors.FavoriteColorSelector} [data-testid="color-pick-color2"]` - ); - // The modal's button text should read Save & Connect and not the default Save - expect( - await browser.$(Selectors.FavoriteSaveButton).getText() - ).to.equal('Save & Connect'); + // in the multiple connections world the favorite form fields are just + // part of the connection form + options.connectionName = connectionName; + options.connectionColor = 'color1'; + options.connectionFavorite = true; - await browser.$(Selectors.FavoriteSaveButton).waitForEnabled(); - await browser.clickVisible(Selectors.FavoriteSaveButton); - await browser - .$(Selectors.FavoriteModal) - .waitForExist({ reverse: true }); - } + await browser.setConnectFormState(options); + + await browser.clickVisible(Selectors.ConnectionModalConnectButton); // Wait for it to connect await browser.waitForConnectionResult(connectionName, { @@ -172,27 +142,17 @@ describe('CSFLE / QE', function () { // extra pause to make very sure that it loaded the connections await delay(10000); - if (TEST_MULTIPLE_CONNECTIONS) { - // in the multiple connections world, if we clicked the connection it - // would connect and that's not what we want in this case. So we select - // edit from the menu. - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.EditConnectionItem - ); - } else { - // in the single connections world, clicking the favorite connection in - // the sidebar doesn't connect, it just pre-populates the form - await browser.clickVisible( - Selectors.sidebarConnectionButton(connectionName) - ); - } + // in the multiple connections world, if we clicked the connection it + // would connect and that's not what we want in this case. So we select + // edit from the menu. + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.EditConnectionItem + ); // The modal should appear and the title of the modal should be the favorite name await browser.waitUntil(async () => { - const connectionTitleSelector = TEST_MULTIPLE_CONNECTIONS - ? Selectors.ConnectionModalTitle - : Selectors.ConnectionTitle; + const connectionTitleSelector = Selectors.ConnectionModalTitle; const text = await browser.$(connectionTitleSelector).getText(); return text === connectionName; }); @@ -905,16 +865,12 @@ describe('CSFLE / QE', function () { name: '"Person Z"', }); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible( - Selectors.sidebarConnectionActionButton( - connectionName, - Selectors.Multiple.InUseEncryptionMarker - ) - ); - } else { - await browser.clickVisible(Selectors.Single.InUseEncryptionMarker); - } + await browser.clickVisible( + Selectors.sidebarConnectionActionButton( + connectionName, + Selectors.Multiple.InUseEncryptionMarker + ) + ); await browser.$(Selectors.CSFLEConnectionModal).waitForDisplayed(); @@ -935,16 +891,12 @@ describe('CSFLE / QE', function () { name: '"Person Z"', }); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible( - Selectors.sidebarConnectionActionButton( - connectionName, - Selectors.Multiple.InUseEncryptionMarker - ) - ); - } else { - await browser.clickVisible(Selectors.Single.InUseEncryptionMarker); - } + await browser.clickVisible( + Selectors.sidebarConnectionActionButton( + connectionName, + Selectors.Multiple.InUseEncryptionMarker + ) + ); await browser.$(Selectors.CSFLEConnectionModal).waitForDisplayed(); diff --git a/packages/compass-e2e-tests/tests/instance-sidebar.test.ts b/packages/compass-e2e-tests/tests/instance-sidebar.test.ts index 0eba8eeb5b6..84feba70b89 100644 --- a/packages/compass-e2e-tests/tests/instance-sidebar.test.ts +++ b/packages/compass-e2e-tests/tests/instance-sidebar.test.ts @@ -7,7 +7,6 @@ import { screenshotIfFailed, DEFAULT_CONNECTION_STRING_1, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, DEFAULT_CONNECTION_NAME_1, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; @@ -47,15 +46,10 @@ describe('Instance sidebar', function () { it('has a connection info modal with connection info', async function () { skipForWeb(this, "these actions don't exist in compass-web"); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.ClusterInfoItem - ); - } else { - await browser.clickVisible(Selectors.Single.ShowTitleActionsButton); - await browser.clickVisible(Selectors.Single.ClusterInfoItem); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.ClusterInfoItem + ); const modal = await browser.$(Selectors.ConnectionInfoModal); await modal.waitForDisplayed(); @@ -116,10 +110,8 @@ describe('Instance sidebar', function () { await browser.waitUntil(async () => { const treeItems = await browser.$$(Selectors.SidebarTreeItems); // connection, database, collection for multiple connections (twice - // because there are two connections), otherwise just database and - // collection - const expectedCount = TEST_MULTIPLE_CONNECTIONS ? 6 : 2; - return treeItems.length === expectedCount; + // because there are two connections) + return treeItems.length === 6; }); const dbElement = await browser.$( @@ -155,33 +147,25 @@ describe('Instance sidebar', function () { // TODO(COMPASS-7086): flaky test this.retries(5); - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; const dbName = `my-sidebar-database-${Date.now()}`; const collectionName = 'my-collection'; - if (TEST_MULTIPLE_CONNECTIONS) { - // navigate to the databases tab so that the connection is - // active/highlighted and then the add button and three dot menu will - // display without needing to hover - await browser.navigateToConnectionTab( - DEFAULT_CONNECTION_NAME_1, - 'Databases' - ); - } + // navigate to the databases tab so that the connection is + // active/highlighted and then the add button and three dot menu will + // display without needing to hover + await browser.navigateToConnectionTab( + DEFAULT_CONNECTION_NAME_1, + 'Databases' + ); // open the create database modal from the sidebar - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Sidebar.CreateDatabaseButton, - false - ); - } else { - await browser.clickVisible(Sidebar.CreateDatabaseButton); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Sidebar.CreateDatabaseButton, + false + ); await browser.addDatabase(dbName, collectionName); @@ -256,14 +240,10 @@ describe('Instance sidebar', function () { await mongoClient.close(); } - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.RefreshDatabasesItem - ); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.RefreshDatabasesItem + ); // wait for the new collection we added via the driver to appear. const newCollectionElement = await browser.$( diff --git a/packages/compass-e2e-tests/tests/logging.test.ts b/packages/compass-e2e-tests/tests/logging.test.ts index 99a06feb216..65658b6772a 100644 --- a/packages/compass-e2e-tests/tests/logging.test.ts +++ b/packages/compass-e2e-tests/tests/logging.test.ts @@ -4,7 +4,6 @@ import { cleanup, screenshotIfFailed, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, DEFAULT_CONNECTION_NAME_1, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; @@ -28,10 +27,8 @@ describe('Logging and Telemetry integration', function () { try { await browser.connectWithConnectionString(); - if (TEST_MULTIPLE_CONNECTIONS) { - // make sure we generate the screen event that the tests expect - await browser.navigateToMyQueries(); - } + // make sure we generate the screen event that the tests expect + await browser.navigateToMyQueries(); await browser.shellEval(DEFAULT_CONNECTION_NAME_1, 'use test'); await browser.shellEval( diff --git a/packages/compass-e2e-tests/tests/my-queries-tab.test.ts b/packages/compass-e2e-tests/tests/my-queries-tab.test.ts index f9a569c1c13..891577ab9ae 100644 --- a/packages/compass-e2e-tests/tests/my-queries-tab.test.ts +++ b/packages/compass-e2e-tests/tests/my-queries-tab.test.ts @@ -6,7 +6,6 @@ import { cleanup, screenshotIfFailed, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, DEFAULT_CONNECTION_NAME_1, DEFAULT_CONNECTION_STRING_1, DEFAULT_CONNECTION_STRING_2, @@ -169,10 +168,8 @@ describe('My Queries tab', function () { client_1 = new MongoClient(DEFAULT_CONNECTION_STRING_1); await client_1.connect(); - if (TEST_MULTIPLE_CONNECTIONS) { - client_2 = new MongoClient(DEFAULT_CONNECTION_STRING_2); - await client_2.connect(); - } + client_2 = new MongoClient(DEFAULT_CONNECTION_STRING_2); + await client_2.connect(); }); beforeEach(async function () { await createNumbersCollection(); @@ -261,17 +258,13 @@ describe('My Queries tab', function () { .db('test') .renameCollection('numbers', 'numbers-renamed'); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.RefreshDatabasesItem - ); + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.RefreshDatabasesItem + ); - // go to My Queries because for multiple connections it is not the default tab - await browser.navigateToMyQueries(); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + // go to My Queries because for multiple connections it is not the default tab + await browser.navigateToMyQueries(); // browse to the query await browser.clickVisible( @@ -398,14 +391,10 @@ describe('My Queries tab', function () { .db('test') .renameCollection('numbers', newCollectionName); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.RefreshDatabasesItem - ); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.RefreshDatabasesItem + ); await browser.navigateToMyQueries(); // browse to the query @@ -447,10 +436,6 @@ describe('My Queries tab', function () { 'when a user has multiple connections and only one contains the namespace', function () { it('uses the connection that contains the namespace used by the aggregation/query', async function () { - if (!TEST_MULTIPLE_CONNECTIONS) { - this.skip(); - } - await browser.connectToDefaults(); const favoriteQueryName = 'only one with namespace'; @@ -466,14 +451,10 @@ describe('My Queries tab', function () { await client_1.db('test').dropCollection('numbers'); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.RefreshDatabasesItem - ); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.RefreshDatabasesItem + ); await browser.navigateToMyQueries(); @@ -496,9 +477,6 @@ describe('My Queries tab', function () { 'when a user has multiple connections and none of them contain the namespace', function () { it('opens a modal where users can select a connection and permanently associate a new namespace for an aggregation/query', async function () { - if (!TEST_MULTIPLE_CONNECTIONS) { - this.skip(); - } const newCollectionName = 'numbers-renamed'; await browser.connectToDefaults(); @@ -519,18 +497,14 @@ describe('My Queries tab', function () { .db('test') .renameCollection('numbers', newCollectionName); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.RefreshDatabasesItem - ); - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_2, - Selectors.Multiple.RefreshDatabasesItem - ); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.RefreshDatabasesItem + ); + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_2, + Selectors.Multiple.RefreshDatabasesItem + ); await browser.navigateToMyQueries(); @@ -572,10 +546,6 @@ describe('My Queries tab', function () { 'when a user has multiple connections that contain the same namespace', function () { it('opens a modal where users can select the connection to use for an aggregation/query', async function () { - if (!TEST_MULTIPLE_CONNECTIONS) { - this.skip(); - } - await browser.connectToDefaults(); const favoriteQueryName = 'all with namespace'; @@ -589,18 +559,14 @@ describe('My Queries tab', function () { favoriteQueryName ); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.RefreshDatabasesItem - ); - await browser.selectConnectionMenuItem( - DEFAULT_CONNECTION_NAME_2, - Selectors.Multiple.RefreshDatabasesItem - ); - } else { - await browser.clickVisible(Selectors.Single.RefreshDatabasesButton); - } + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.RefreshDatabasesItem + ); + await browser.selectConnectionMenuItem( + DEFAULT_CONNECTION_NAME_2, + Selectors.Multiple.RefreshDatabasesItem + ); await browser.navigateToMyQueries(); diff --git a/packages/compass-e2e-tests/tests/oidc.test.ts b/packages/compass-e2e-tests/tests/oidc.test.ts index c626e8aa6df..384911ef668 100644 --- a/packages/compass-e2e-tests/tests/oidc.test.ts +++ b/packages/compass-e2e-tests/tests/oidc.test.ts @@ -8,7 +8,6 @@ import { skipForWeb, TEST_COMPASS_WEB, connectionNameFromString, - TEST_MULTIPLE_CONNECTIONS, } from '../helpers/compass'; import { setupProxyServer } from '../helpers/proxy'; import * as Selectors from '../helpers/selectors'; @@ -257,11 +256,9 @@ describe('OIDC integration', function () { } }; - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.removeConnection(connectionName); - await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); - await browser.$(Selectors.ConnectionModal).waitForDisplayed(); - } + await browser.removeConnection(connectionName); + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); + await browser.$(Selectors.ConnectionModal).waitForDisplayed(); await browser.setValueVisible( Selectors.ConnectionFormStringInput, connectionString @@ -317,11 +314,9 @@ describe('OIDC integration', function () { }; }; - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.removeConnection(connectionName); - await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); - await browser.$(Selectors.ConnectionModal).waitForDisplayed(); - } + await browser.removeConnection(connectionName); + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); + await browser.$(Selectors.ConnectionModal).waitForDisplayed(); await browser.setValueVisible( Selectors.ConnectionFormStringInput, connectionString @@ -331,16 +326,14 @@ describe('OIDC integration', function () { // wait for the token to expire (see expires_in above) await browser.pause(10_000); - if (TEST_MULTIPLE_CONNECTIONS) { - // we have to browse somewhere that will fire off commands that require - // authentication so that those commands get rejected due to the expired - // auth and then that will trigger the confirmation modal we expect. - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.OpenShellItem, - false - ); - } + // we have to browse somewhere that will fire off commands that require + // authentication so that those commands get rejected due to the expired + // auth and then that will trigger the confirmation modal we expect. + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.OpenShellItem, + false + ); await browser.$(Selectors.ConfirmationModal).waitForDisplayed(); const modalHeader = await browser.$(Selectors.ConfirmationModalHeading); @@ -366,11 +359,9 @@ describe('OIDC integration', function () { }; }; - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.removeConnection(connectionName); - await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); - await browser.$(Selectors.ConnectionModal).waitForDisplayed(); - } + await browser.removeConnection(connectionName); + await browser.clickVisible(Selectors.Multiple.SidebarNewConnectionButton); + await browser.$(Selectors.ConnectionModal).waitForDisplayed(); await browser.setValueVisible( Selectors.ConnectionFormStringInput, connectionString @@ -380,16 +371,14 @@ describe('OIDC integration', function () { // wait for the token to expire (see expires_in above) await browser.pause(10_000); - if (TEST_MULTIPLE_CONNECTIONS) { - // we have to browse somewhere that will fire off commands that require - // authentication so that those commands get rejected due to the expired - // auth and then that will trigger the confirmation modal we expect - await browser.selectConnectionMenuItem( - connectionName, - Selectors.Multiple.OpenShellItem, - false - ); - } + // we have to browse somewhere that will fire off commands that require + // authentication so that those commands get rejected due to the expired + // auth and then that will trigger the confirmation modal we expect + await browser.selectConnectionMenuItem( + connectionName, + Selectors.Multiple.OpenShellItem, + false + ); await browser.$(Selectors.ConfirmationModal).waitForDisplayed(); const modalHeader = await browser.$(Selectors.ConfirmationModalHeading); diff --git a/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts b/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts index 2dcf921c4cd..111a57fb19a 100644 --- a/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts +++ b/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts @@ -4,7 +4,6 @@ import { cleanup, screenshotIfFailed, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import clipboard from 'clipboardy'; @@ -17,9 +16,7 @@ async function expectCopyConnectionStringToClipboard( favoriteName: string, expected: string ): Promise { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE !== 'true') { await browser.selectConnectionMenuItem( favoriteName, @@ -81,10 +78,7 @@ describe('protectConnectionStrings', function () { defaultPassword: 'bar', }; await browser.setConnectFormState(state); - await browser.saveFavorite( - favoriteName, - TEST_MULTIPLE_CONNECTIONS ? 'Yellow' : 'color4' - ); + await browser.saveFavorite(favoriteName, 'Yellow'); await browser.selectConnection(favoriteName); expect(await browser.getConnectFormConnectionString()).to.equal( @@ -106,9 +100,7 @@ describe('protectConnectionStrings', function () { 'shows password when input is focused' ).to.equal('mongodb://foo:bar@localhost:12345/'); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible(Selectors.ConnectionModalCloseButton); - } + await browser.clickVisible(Selectors.ConnectionModalCloseButton); await expectCopyConnectionStringToClipboard( browser, @@ -116,9 +108,7 @@ describe('protectConnectionStrings', function () { 'mongodb://foo:bar@localhost:12345/' ); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.selectConnection(favoriteName); - } + await browser.selectConnection(favoriteName); await browser.setFeature('protectConnectionStrings', true); @@ -126,9 +116,7 @@ describe('protectConnectionStrings', function () { 'mongodb://foo:*****@localhost:12345/' ); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.clickVisible(Selectors.ConnectionModalCloseButton); - } + await browser.clickVisible(Selectors.ConnectionModalCloseButton); await expectCopyConnectionStringToClipboard( browser, diff --git a/packages/compass-e2e-tests/tests/read-only.test.ts b/packages/compass-e2e-tests/tests/read-only.test.ts index 1866470ce58..893ec4edb46 100644 --- a/packages/compass-e2e-tests/tests/read-only.test.ts +++ b/packages/compass-e2e-tests/tests/read-only.test.ts @@ -3,7 +3,6 @@ import { cleanup, screenshotIfFailed, skipForWeb, - TEST_MULTIPLE_CONNECTIONS, DEFAULT_CONNECTION_NAME_1, } from '../helpers/compass'; import { expect } from 'chai'; @@ -36,36 +35,25 @@ describe('readOnly: true / Read-Only Edition', function () { }); it('hides and shows the plus icon on the sidebar to create a database', async function () { - const Sidebar = TEST_MULTIPLE_CONNECTIONS - ? Selectors.Multiple - : Selectors.Single; + const Sidebar = Selectors.Multiple; await browser.setFeature('readOnly', true); await browser.connectToDefaults(); - if (TEST_MULTIPLE_CONNECTIONS) { - // navigate to the databases tab so that the connection is - // active/highlighted and then the add button and three dot menu will - // display without needing to hover - await browser.navigateToConnectionTab( - DEFAULT_CONNECTION_NAME_1, - 'Databases' - ); - } - - if (TEST_MULTIPLE_CONNECTIONS) { - expect( - await browser.hasConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Sidebar.CreateDatabaseButton, - false - ) - ).to.be.equal(false); - } else { - expect( - await browser.$(Sidebar.CreateDatabaseButton).isExisting() - ).to.be.equal(false); - } + // navigate to the databases tab so that the connection is + // active/highlighted and then the add button and three dot menu will + // display without needing to hover + await browser.navigateToConnectionTab( + DEFAULT_CONNECTION_NAME_1, + 'Databases' + ); + expect( + await browser.hasConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Sidebar.CreateDatabaseButton, + false + ) + ).to.be.equal(false); await browser.openSettingsModal(); const settingsModal = await browser.$(Selectors.SettingsModal); await settingsModal.waitForDisplayed(); @@ -77,26 +65,18 @@ describe('readOnly: true / Read-Only Edition', function () { // wait for the modal to go away await settingsModal.waitForDisplayed({ reverse: true }); - if (TEST_MULTIPLE_CONNECTIONS) { - await browser.navigateToConnectionTab( - DEFAULT_CONNECTION_NAME_1, - 'Databases' - ); - } + await browser.navigateToConnectionTab( + DEFAULT_CONNECTION_NAME_1, + 'Databases' + ); - if (TEST_MULTIPLE_CONNECTIONS) { - expect( - await browser.hasConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Sidebar.CreateDatabaseButton, - false - ) - ).to.be.equal(true); - } else { - expect( - await browser.$(Sidebar.CreateDatabaseButton).isExisting() - ).to.be.equal(true); - } + expect( + await browser.hasConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Sidebar.CreateDatabaseButton, + false + ) + ).to.be.equal(true); }); it('shows and hides the plus icon on the siderbar to create a collection', async function () { diff --git a/packages/compass-e2e-tests/tests/shell.test.ts b/packages/compass-e2e-tests/tests/shell.test.ts index 742bb7f8acb..e7dada553fe 100644 --- a/packages/compass-e2e-tests/tests/shell.test.ts +++ b/packages/compass-e2e-tests/tests/shell.test.ts @@ -8,7 +8,6 @@ import { skipForWeb, TEST_COMPASS_WEB, DEFAULT_CONNECTION_NAME_1, - TEST_MULTIPLE_CONNECTIONS, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; @@ -66,17 +65,12 @@ describe('Shell', function () { it('shows and hides shell based on settings', async function () { await browser.connectToDefaults(); - if (TEST_MULTIPLE_CONNECTIONS) { - expect( - await browser.hasConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.OpenShellItem - ) - ).to.be.equal(true); - } else { - // Will fail if shell is not on the screen eventually - await browser.$(Selectors.ShellSection).waitForExist(); - } + expect( + await browser.hasConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.OpenShellItem + ) + ).to.be.equal(true); await browser.openSettingsModal(); const settingsModal = await browser.$(Selectors.SettingsModal); @@ -89,16 +83,11 @@ describe('Shell', function () { // wait for the modal to go away await settingsModal.waitForDisplayed({ reverse: true }); - if (TEST_MULTIPLE_CONNECTIONS) { - expect( - await browser.hasConnectionMenuItem( - DEFAULT_CONNECTION_NAME_1, - Selectors.Multiple.OpenShellItem - ) - ).to.be.equal(false); - } else { - // Will fail if shell eventually doesn't go away from the screen - await browser.$(Selectors.ShellSection).waitForExist({ reverse: true }); - } + expect( + await browser.hasConnectionMenuItem( + DEFAULT_CONNECTION_NAME_1, + Selectors.Multiple.OpenShellItem + ) + ).to.be.equal(false); }); }); diff --git a/packages/compass-e2e-tests/tests/tabs.test.ts b/packages/compass-e2e-tests/tests/tabs.test.ts index 2e7a55ee36f..adad0084bfb 100644 --- a/packages/compass-e2e-tests/tests/tabs.test.ts +++ b/packages/compass-e2e-tests/tests/tabs.test.ts @@ -5,7 +5,6 @@ import { screenshotIfFailed, DEFAULT_CONNECTION_NAME_1, DEFAULT_CONNECTION_NAME_2, - TEST_MULTIPLE_CONNECTIONS, TEST_COMPASS_WEB, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; @@ -148,10 +147,6 @@ describe('Global Tabs', function () { }); it("should close a connection's tabs when disconnecting", async function () { - if (!TEST_MULTIPLE_CONNECTIONS) { - this.skip(); - } - // workspace 1: connection 1, Documents tab await browser.navigateToCollectionTab( DEFAULT_CONNECTION_NAME_1, From 66db10e908b29a8a31d6d1ff69e25c117afc468d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:24:18 +0000 Subject: [PATCH 39/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6395) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 88308e14087..16e36ae20a6 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 23, 2024 at 11:59 AM +Generated on Wed, Oct 23, 2024 at 04:24 PM ## Table of Contents From 2ec13eb18d147b19ec22641e9646336011473c06 Mon Sep 17 00:00:00 2001 From: Paula Stachova Date: Wed, 23 Oct 2024 18:24:33 +0200 Subject: [PATCH 40/71] feat(compass-global-writes): zone table - add search and collapse/expand COMPASS-8336 (#6356) --- package-lock.json | 234 ++++++++++++++---- packages/compass-components/package.json | 3 +- .../src/components/leafygreen.tsx | 5 + .../src/components/shard-zones-table.spec.tsx | 100 +++++++- .../src/components/shard-zones-table.tsx | 200 ++++++++++++--- .../components/states/shard-key-correct.tsx | 1 - packages/compass-web/src/url-builder.ts | 4 + 7 files changed, 462 insertions(+), 85 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8b2d922b7c6..e98df17bd67 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5915,32 +5915,6 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, - "node_modules/@leafygreen-ui/table": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@leafygreen-ui/table/-/table-12.6.1.tgz", - "integrity": "sha512-7WcSYVUGHxiekp8BW13n+Q8pICdOuaY68iPJUdrn3HTRF2nkUQ4v2+4XMCQqUbIdSAWb6Lxb2esWmlArqQ/csA==", - "dependencies": { - "@leafygreen-ui/checkbox": "^12.1.1", - "@leafygreen-ui/emotion": "^4.0.7", - "@leafygreen-ui/hooks": "^8.1.2", - "@leafygreen-ui/icon": "^12.0.0", - "@leafygreen-ui/icon-button": "^15.0.20", - "@leafygreen-ui/lib": "^13.2.1", - "@leafygreen-ui/palette": "^4.0.7", - "@leafygreen-ui/polymorphic": "^1.3.6", - "@leafygreen-ui/tokens": "^2.5.1", - "@leafygreen-ui/typography": "^18.2.3", - "@tanstack/react-table": "^8.13.2", - "lodash": "^4.17.21", - "polished": "^4.2.2", - "react-keyed-flatten-children": "^1.3.0", - "react-transition-group": "^4.4.5", - "react-virtual": "^2.10.4" - }, - "peerDependencies": { - "@leafygreen-ui/leafygreen-provider": "^3.1.11" - } - }, "node_modules/@leafygreen-ui/tabs": { "version": "11.1.13", "resolved": "https://registry.npmjs.org/@leafygreen-ui/tabs/-/tabs-11.1.13.tgz", @@ -44078,7 +44052,7 @@ "@leafygreen-ui/search-input": "^2.1.5", "@leafygreen-ui/segmented-control": "^8.2.10", "@leafygreen-ui/select": "^11.2.2", - "@leafygreen-ui/table": "^12.6.1", + "@leafygreen-ui/table": "^12.7.0", "@leafygreen-ui/tabs": "^11.1.13", "@leafygreen-ui/text-area": "^8.1.2", "@leafygreen-ui/text-input": "^12.1.26", @@ -44090,6 +44064,7 @@ "@react-aria/interactions": "^3.9.1", "@react-aria/utils": "^3.13.1", "@react-aria/visually-hidden": "^3.3.1", + "@tanstack/table-core": "^8.14.0", "bson": "^6.8.0", "focus-trap-react": "^9.0.2", "hadron-document": "^8.6.4", @@ -44125,6 +44100,102 @@ "typescript": "^5.0.4" } }, + "packages/compass-components/node_modules/@leafygreen-ui/hooks": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/hooks/-/hooks-8.2.1.tgz", + "integrity": "sha512-yozp+WfMo1aNzQJG4WOa4eoxEEMK3T7Q7D2AObRWEPR+jPeeocsBKSHoAkUsfJ/8AklQ+LIWM1SvtUm4iuLXtQ==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/lib": "^13.3.0", + "lodash": "^4.17.21" + } + }, + "packages/compass-components/node_modules/@leafygreen-ui/table": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/table/-/table-12.7.0.tgz", + "integrity": "sha512-zsenGdk7yXu7aFELSDlGa1yjv4Q6C4KfL4o8MEqAZYXlZqzsB6z/QiZRJfVjti4vIYWVENC2GwDSLRAAUDGuuQ==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/checkbox": "^13.1.0", + "@leafygreen-ui/emotion": "^4.0.8", + "@leafygreen-ui/hooks": "^8.1.3", + "@leafygreen-ui/icon": "^12.5.4", + "@leafygreen-ui/icon-button": "^15.0.21", + "@leafygreen-ui/lib": "^13.6.0", + "@leafygreen-ui/palette": "^4.0.9", + "@leafygreen-ui/polymorphic": "^2.0.0", + "@leafygreen-ui/tokens": "^2.11.0", + "@leafygreen-ui/typography": "^19.2.0", + "@lg-tools/test-harnesses": "^0.1.2", + "@tanstack/react-table": "^8.13.2", + "lodash": "^4.17.21", + "polished": "^4.2.2", + "react-keyed-flatten-children": "^1.3.0", + "react-transition-group": "^4.4.5", + "react-virtual": "^2.10.4" + }, + "peerDependencies": { + "@leafygreen-ui/leafygreen-provider": "^3.1.12" + } + }, + "packages/compass-components/node_modules/@leafygreen-ui/table/node_modules/@leafygreen-ui/checkbox": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/checkbox/-/checkbox-13.1.2.tgz", + "integrity": "sha512-rdn55oDiywyk/t3wKnJKbzDn6CUtCCSm4PQF6t4svZWVaHvNzDgTDjHy5D1s8MYpFQbqhsWbJhf17tpRrzY/Mw==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/a11y": "^1.4.13", + "@leafygreen-ui/emotion": "^4.0.8", + "@leafygreen-ui/hooks": "^8.1.4", + "@leafygreen-ui/lib": "^13.4.0", + "@leafygreen-ui/palette": "^4.0.10", + "@leafygreen-ui/tokens": "^2.5.2", + "@leafygreen-ui/typography": "^19.0.0", + "@lg-tools/test-harnesses": "^0.1.2", + "react-transition-group": "^4.4.5" + }, + "peerDependencies": { + "@leafygreen-ui/leafygreen-provider": "^3.1.12" + } + }, + "packages/compass-components/node_modules/@leafygreen-ui/table/node_modules/@leafygreen-ui/polymorphic": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/polymorphic/-/polymorphic-2.0.2.tgz", + "integrity": "sha512-OjP+hPG/cwADShcGa1SZdm51G2wVpbNqpU0B3GonEAvGLcAvG4LDMXa7BWo3GDliNkPtVMS86w0eZzEDmLfKmQ==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/lib": "^13.6.0", + "lodash": "^4.17.21" + } + }, + "packages/compass-components/node_modules/@leafygreen-ui/table/node_modules/@leafygreen-ui/typography": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/typography/-/typography-19.3.0.tgz", + "integrity": "sha512-pgTRcc4usW/S9nDDzkf5Ac/JPEybhWtOnDpmrp99mAJHM6tH48Pd1HjRNHWjn6bnh0nXWjwANXX1ZEe+8ggCNg==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/emotion": "^4.0.8", + "@leafygreen-ui/icon": "^12.6.0", + "@leafygreen-ui/lib": "^13.6.1", + "@leafygreen-ui/palette": "^4.0.10", + "@leafygreen-ui/polymorphic": "^2.0.0", + "@leafygreen-ui/tokens": "^2.9.0" + }, + "peerDependencies": { + "@leafygreen-ui/leafygreen-provider": "^3.1.12" + } + }, + "packages/compass-components/node_modules/@leafygreen-ui/tokens": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/tokens/-/tokens-2.11.0.tgz", + "integrity": "sha512-/0G+UaDpLBLLtEP1mjGjiDnqReHufUTUkteqNUsyTOz1bpfejoo1anu3f6dZDqNlxoKhHZEEngQ+HvP1l1RJVw==", + "license": "Apache-2.0", + "dependencies": { + "@leafygreen-ui/lib": "^13.7.0", + "@leafygreen-ui/palette": "^4.0.9", + "polished": "^4.2.2" + } + }, "packages/compass-components/node_modules/sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -54412,29 +54483,6 @@ } } }, - "@leafygreen-ui/table": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/@leafygreen-ui/table/-/table-12.6.1.tgz", - "integrity": "sha512-7WcSYVUGHxiekp8BW13n+Q8pICdOuaY68iPJUdrn3HTRF2nkUQ4v2+4XMCQqUbIdSAWb6Lxb2esWmlArqQ/csA==", - "requires": { - "@leafygreen-ui/checkbox": "^12.1.1", - "@leafygreen-ui/emotion": "^4.0.7", - "@leafygreen-ui/hooks": "^8.1.2", - "@leafygreen-ui/icon": "^12.0.0", - "@leafygreen-ui/icon-button": "^15.0.20", - "@leafygreen-ui/lib": "^13.2.1", - "@leafygreen-ui/palette": "^4.0.7", - "@leafygreen-ui/polymorphic": "^1.3.6", - "@leafygreen-ui/tokens": "^2.5.1", - "@leafygreen-ui/typography": "^18.2.3", - "@tanstack/react-table": "^8.13.2", - "lodash": "^4.17.21", - "polished": "^4.2.2", - "react-keyed-flatten-children": "^1.3.0", - "react-transition-group": "^4.4.5", - "react-virtual": "^2.10.4" - } - }, "@leafygreen-ui/tabs": { "version": "11.1.13", "resolved": "https://registry.npmjs.org/@leafygreen-ui/tabs/-/tabs-11.1.13.tgz", @@ -56169,7 +56217,7 @@ "@leafygreen-ui/search-input": "^2.1.5", "@leafygreen-ui/segmented-control": "^8.2.10", "@leafygreen-ui/select": "^11.2.2", - "@leafygreen-ui/table": "^12.6.1", + "@leafygreen-ui/table": "^12.7.0", "@leafygreen-ui/tabs": "^11.1.13", "@leafygreen-ui/text-area": "^8.1.2", "@leafygreen-ui/text-input": "^12.1.26", @@ -56186,6 +56234,7 @@ "@react-aria/interactions": "^3.9.1", "@react-aria/utils": "^3.13.1", "@react-aria/visually-hidden": "^3.3.1", + "@tanstack/table-core": "^8.14.0", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/mocha": "^9.0.0", @@ -56213,6 +56262,89 @@ "typescript": "^5.0.4" }, "dependencies": { + "@leafygreen-ui/hooks": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/hooks/-/hooks-8.2.1.tgz", + "integrity": "sha512-yozp+WfMo1aNzQJG4WOa4eoxEEMK3T7Q7D2AObRWEPR+jPeeocsBKSHoAkUsfJ/8AklQ+LIWM1SvtUm4iuLXtQ==", + "requires": { + "@leafygreen-ui/lib": "^13.3.0", + "lodash": "^4.17.21" + } + }, + "@leafygreen-ui/table": { + "version": "12.7.0", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/table/-/table-12.7.0.tgz", + "integrity": "sha512-zsenGdk7yXu7aFELSDlGa1yjv4Q6C4KfL4o8MEqAZYXlZqzsB6z/QiZRJfVjti4vIYWVENC2GwDSLRAAUDGuuQ==", + "requires": { + "@leafygreen-ui/checkbox": "^13.1.0", + "@leafygreen-ui/emotion": "^4.0.8", + "@leafygreen-ui/hooks": "^8.1.3", + "@leafygreen-ui/icon": "^12.5.4", + "@leafygreen-ui/icon-button": "^15.0.21", + "@leafygreen-ui/lib": "^13.6.0", + "@leafygreen-ui/palette": "^4.0.9", + "@leafygreen-ui/polymorphic": "^2.0.0", + "@leafygreen-ui/tokens": "^2.11.0", + "@leafygreen-ui/typography": "^19.2.0", + "@lg-tools/test-harnesses": "^0.1.2", + "@tanstack/react-table": "^8.13.2", + "lodash": "^4.17.21", + "polished": "^4.2.2", + "react-keyed-flatten-children": "^1.3.0", + "react-transition-group": "^4.4.5", + "react-virtual": "^2.10.4" + }, + "dependencies": { + "@leafygreen-ui/checkbox": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/checkbox/-/checkbox-13.1.2.tgz", + "integrity": "sha512-rdn55oDiywyk/t3wKnJKbzDn6CUtCCSm4PQF6t4svZWVaHvNzDgTDjHy5D1s8MYpFQbqhsWbJhf17tpRrzY/Mw==", + "requires": { + "@leafygreen-ui/a11y": "^1.4.13", + "@leafygreen-ui/emotion": "^4.0.8", + "@leafygreen-ui/hooks": "^8.1.4", + "@leafygreen-ui/lib": "^13.4.0", + "@leafygreen-ui/palette": "^4.0.10", + "@leafygreen-ui/tokens": "^2.5.2", + "@leafygreen-ui/typography": "^19.0.0", + "@lg-tools/test-harnesses": "^0.1.2", + "react-transition-group": "^4.4.5" + } + }, + "@leafygreen-ui/polymorphic": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/polymorphic/-/polymorphic-2.0.2.tgz", + "integrity": "sha512-OjP+hPG/cwADShcGa1SZdm51G2wVpbNqpU0B3GonEAvGLcAvG4LDMXa7BWo3GDliNkPtVMS86w0eZzEDmLfKmQ==", + "requires": { + "@leafygreen-ui/lib": "^13.6.0", + "lodash": "^4.17.21" + } + }, + "@leafygreen-ui/typography": { + "version": "19.3.0", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/typography/-/typography-19.3.0.tgz", + "integrity": "sha512-pgTRcc4usW/S9nDDzkf5Ac/JPEybhWtOnDpmrp99mAJHM6tH48Pd1HjRNHWjn6bnh0nXWjwANXX1ZEe+8ggCNg==", + "requires": { + "@leafygreen-ui/emotion": "^4.0.8", + "@leafygreen-ui/icon": "^12.6.0", + "@leafygreen-ui/lib": "^13.6.1", + "@leafygreen-ui/palette": "^4.0.10", + "@leafygreen-ui/polymorphic": "^2.0.0", + "@leafygreen-ui/tokens": "^2.9.0" + } + } + } + }, + "@leafygreen-ui/tokens": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@leafygreen-ui/tokens/-/tokens-2.11.0.tgz", + "integrity": "sha512-/0G+UaDpLBLLtEP1mjGjiDnqReHufUTUkteqNUsyTOz1bpfejoo1anu3f6dZDqNlxoKhHZEEngQ+HvP1l1RJVw==", + "requires": { + "@leafygreen-ui/lib": "^13.7.0", + "@leafygreen-ui/palette": "^4.0.9", + "polished": "^4.2.2" + } + }, "sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", diff --git a/packages/compass-components/package.json b/packages/compass-components/package.json index 3c8cf00994d..eec0305867c 100644 --- a/packages/compass-components/package.json +++ b/packages/compass-components/package.json @@ -64,7 +64,7 @@ "@leafygreen-ui/search-input": "^2.1.5", "@leafygreen-ui/segmented-control": "^8.2.10", "@leafygreen-ui/select": "^11.2.2", - "@leafygreen-ui/table": "^12.6.1", + "@leafygreen-ui/table": "^12.7.0", "@leafygreen-ui/tabs": "^11.1.13", "@leafygreen-ui/text-area": "^8.1.2", "@leafygreen-ui/text-input": "^12.1.26", @@ -76,6 +76,7 @@ "@react-aria/interactions": "^3.9.1", "@react-aria/utils": "^3.13.1", "@react-aria/visually-hidden": "^3.3.1", + "@tanstack/table-core": "^8.14.0", "bson": "^6.8.0", "focus-trap-react": "^9.0.2", "hadron-document": "^8.6.4", diff --git a/packages/compass-components/src/components/leafygreen.tsx b/packages/compass-components/src/components/leafygreen.tsx index 5684476e0b8..a6f9b120553 100644 --- a/packages/compass-components/src/components/leafygreen.tsx +++ b/packages/compass-components/src/components/leafygreen.tsx @@ -53,7 +53,10 @@ import { TableBody, flexRender, useLeafyGreenTable, + getFilteredRowModel, } from '@leafygreen-ui/table'; +import type { Row as LgTableRowType } from '@tanstack/table-core'; // TODO(COMPASS-8437): import from LG + export type { LGColumnDef, HeaderGroup, @@ -172,4 +175,6 @@ export { InfoSprinkle, flexRender, useLeafyGreenTable, + getFilteredRowModel, + type LgTableRowType, }; diff --git a/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx b/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx index 5aae046e76e..870bc8297fe 100644 --- a/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx +++ b/packages/compass-global-writes/src/components/shard-zones-table.spec.tsx @@ -1,6 +1,11 @@ import React from 'react'; import { expect } from 'chai'; -import { render, screen, within } from '@mongodb-js/testing-library-compass'; +import { + render, + screen, + userEvent, + within, +} from '@mongodb-js/testing-library-compass'; import { ShardZonesTable } from './shard-zones-table'; import { type ShardZoneData } from '../store/reducer'; @@ -26,9 +31,23 @@ describe('Compass GlobalWrites Plugin', function () { }, ]; - it('renders the Location name & Zone for all items', function () { + it('renders the Location name & Zone for top level zones', function () { render(); + const rows = screen.getAllByRole('row'); + expect(rows).to.have.lengthOf(2); // 1 header, 1 item + expect(within(rows[1]).getByText('Germany (DE)')).to.be.visible; + expect(within(rows[1]).getByText('EMEA (Frankfurt)')).to.be.visible; + }); + + it('subrows can be expanded', function () { + render(); + + const expandBtn = screen.getByRole('button', { name: 'Expand row' }); + expect(expandBtn).to.be.visible; + + userEvent.click(expandBtn); + const rows = screen.getAllByRole('row'); expect(rows).to.have.lengthOf(3); // 1 header, 2 items expect(within(rows[1]).getByText('Germany (DE)')).to.be.visible; @@ -36,4 +55,81 @@ describe('Compass GlobalWrites Plugin', function () { expect(within(rows[2]).getByText('Germany - Berlin (DE-BE)')).to.be.visible; expect(within(rows[2]).getByText('EMEA (Frankfurt)')).to.be.visible; }); + + describe('search', function () { + before(function () { + if ( + process.env.NODE_ENV === 'test' && + process.env.npm_lifecycle_event === 'test-electron' + ) { + // TODO(COMPASS-8368) + this.skip(); + } + }); + it('allows top level search', function () { + render( + + ); + + const searchInput = screen.getByLabelText('Search for a location'); + expect(searchInput).to.be.visible; + userEvent.type(searchInput, 'Slo'); + const rows = screen.getAllByRole('row'); + expect(rows).to.have.lengthOf(2); // 1 header, 1 item + expect(within(rows[1]).getByText('Slovakia (SK)')).to.be.visible; + expect(within(rows[1]).getByText('Zone 2 (Location 2)')).to.be.visible; + }); + + it('allows subZone search', function () { + render( + + ); + + const searchInput = screen.getByLabelText('Search for a location'); + expect(searchInput).to.be.visible; + userEvent.type(searchInput, 'Bra'); + const rows = screen.getAllByRole('row'); + expect(rows).to.have.lengthOf(3); // 1 header, 2 items + expect(within(rows[1]).getByText('Slovakia (SK)')).to.be.visible; + expect(within(rows[1]).getByText('Zone 2 (Location 2)')).to.be.visible; + expect(within(rows[2]).getByText('Slovakia - Bratislava (SK-BA)')).to.be + .visible; + expect(within(rows[2]).getByText('Zone 2 (Location 2)')).to.be.visible; + }); + }); }); diff --git a/packages/compass-global-writes/src/components/shard-zones-table.tsx b/packages/compass-global-writes/src/components/shard-zones-table.tsx index abc866c668d..3453c36b613 100644 --- a/packages/compass-global-writes/src/components/shard-zones-table.tsx +++ b/packages/compass-global-writes/src/components/shard-zones-table.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useCallback, useMemo, useRef, useState } from 'react'; import { Table, TableBody, @@ -8,47 +8,187 @@ import { Row, Cell, css, + useLeafyGreenTable, + type LGColumnDef, + type LeafyGreenTableRow, + flexRender, + type HeaderGroup, + SearchInput, + type LGTableDataType, + getFilteredRowModel, + type LgTableRowType, } from '@mongodb-js/compass-components'; import type { ShardZoneData } from '../store/reducer'; const containerStyles = css({ - maxWidth: '700px', height: '400px', }); +interface ShardZoneRow { + locationName: string; + zone: string; +} + +interface ShardZoneExpandableRow extends ShardZoneRow { + subRows: ShardZoneRow[]; +} + +const columns: Array> = [ + { + accessorKey: 'locationName', + header: 'Location Name', + enableSorting: true, + }, + { + accessorKey: 'zone', + header: 'Zone', + enableSorting: true, + enableGlobalFilter: false, + }, +]; + +const parseRow = ({ + isoCode, + readableName, + zoneName, + zoneLocations, +}: ShardZoneData): ShardZoneRow => ({ + locationName: `${readableName} (${isoCode})`, + zone: `${zoneName} (${zoneLocations.join(', ')})`, +}); + +const parseData = (shardZones: ShardZoneData[]): ShardZoneExpandableRow[] => { + const grouppedZones = shardZones.reduce< + Record + >((groups, next) => { + const { typeOneIsoCode, isoCode } = next; + groups[typeOneIsoCode] ??= { ...parseRow(next), subRows: [] }; + if (typeOneIsoCode === isoCode) { + Object.assign(groups[typeOneIsoCode], parseRow(next)); + } else { + groups[typeOneIsoCode].subRows.push(parseRow(next)); + } + return groups; + }, {}); + return Object.values(grouppedZones); +}; + +const hasFilteredChildren = ( + row: LgTableRowType> +) => + row.subRows.some( + (subRow) => Object.values(subRow.columnFilters).includes(true) // columnFilters: e.g. { __global__: true } + ); + export function ShardZonesTable({ shardZones, }: { shardZones: ShardZoneData[]; }) { + const tableContainerRef = useRef(null); + const [searchText, setSearchText] = useState(''); + const [expanded, setExpanded] = useState>({}); + + const data = useMemo( + () => parseData(shardZones), + [shardZones] + ); + + const table = useLeafyGreenTable({ + containerRef: tableContainerRef, + data, + columns, + state: { + globalFilter: searchText, + expanded, + }, + onGlobalFilterChange: setSearchText, + onExpandedChange: setExpanded, + enableGlobalFilter: true, + getFilteredRowModel: getFilteredRowModel(), + getIsRowExpanded: (row) => { + return ( + (searchText && hasFilteredChildren(row)) || + (typeof expanded !== 'boolean' && expanded[row.id]) + ); + }, + globalFilterFn: 'auto', + filterFromLeafRows: true, + maxLeafRowFilterDepth: 2, + }); + + const tableRef = useRef(table); + tableRef.current = table; + + const handleSearchTextChange = useCallback( + (e: React.ChangeEvent) => { + tableRef.current.setGlobalFilter(e.currentTarget.value); + }, + [tableRef] + ); + + const { rows } = table.getRowModel(); + return ( - // TODO(COMPASS-8336): - // Add search - // group zones by ShardZoneData.typeOneIsoCode - // and display them in a single row that can be expanded - - - - Location Name - Zone - - - - {shardZones.map( - ({ readableName, zoneName, zoneLocations, isoCode }, index) => { - return ( - - - {readableName} ({isoCode}) - - - {zoneName} ({zoneLocations.join(', ')}) - - - ); - } - )} - -
+ <> + + + + {table + .getHeaderGroups() + .map((headerGroup: HeaderGroup) => ( + + {headerGroup.headers.map((header) => { + return ( + + {flexRender( + header.column.columnDef.header, + header.getContext() + )} + + ); + })} + + ))} + + + {rows.map((row: LeafyGreenTableRow) => ( + + {row.getVisibleCells().map((cell) => { + return ( + + {flexRender(cell.column.columnDef.cell, cell.getContext())} + + ); + })} + {row.subRows.map((subRow) => ( + + {subRow.getVisibleCells().map((cell) => { + return ( + + {flexRender( + cell.column.columnDef.cell, + cell.getContext() + )} + + ); + })} + + ))} + + ))} + +
+ ); } diff --git a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx index 5a89380c17e..a54ea1b3180 100644 --- a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx +++ b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx @@ -38,7 +38,6 @@ const codeBlockContainerStyles = css({ display: 'flex', flexDirection: 'column', gap: spacing[100], - maxWidth: '700px', }); const paragraphStyles = css({ diff --git a/packages/compass-web/src/url-builder.ts b/packages/compass-web/src/url-builder.ts index 646e2a3ed3b..104a61b778e 100644 --- a/packages/compass-web/src/url-builder.ts +++ b/packages/compass-web/src/url-builder.ts @@ -23,6 +23,8 @@ function getCollectionSubTabFromRoute( return 'Indexes'; case 'validation': return 'Validation'; + case 'global-writes': + return 'GlobalWrites'; default: return undefined; } @@ -40,6 +42,8 @@ function getRouteFromCollectionSubTab(subTab: CollectionSubtab): string { return 'indexes'; case 'Validation': return 'validation'; + case 'GlobalWrites': + return 'global-writes'; default: return ''; } From 39f7ce511b9d84285fe812c353154513f954fd0b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 23 Oct 2024 16:31:42 +0000 Subject: [PATCH 41/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6396) Update report Co-authored-by: paula-stacho <5196720+paula-stacho@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 16e36ae20a6..99ebbfa5ee9 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 23, 2024 at 04:24 PM +Generated on Wed, Oct 23, 2024 at 04:31 PM ## Table of Contents From 11e54e5b2fe66e6de402b20654c2517ee30c8137 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Thu, 24 Oct 2024 11:45:54 +0200 Subject: [PATCH 42/71] chore(deps): update electron/rebuild dependency (#6394) * chore(deps): update electron/rebuild dependency * chore(compass, hadron-build): only run electron-rebuild on linux * chore(deps): update kerberos to latest --- .evergreen/functions.yml | 4 +- package-lock.json | 781 +++++++++---------- packages/compass-e2e-tests/package.json | 2 +- packages/compass/package.json | 7 +- packages/compass/scripts/electron-rebuild.js | 40 + packages/data-service/package.json | 2 +- packages/hadron-build/commands/release.js | 21 +- packages/hadron-build/package.json | 2 +- 8 files changed, 436 insertions(+), 423 deletions(-) create mode 100644 packages/compass/scripts/electron-rebuild.js diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index 4124ba293d1..b5a67ece2ac 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -86,7 +86,7 @@ post: target: src/all-e2e-logs.tgz source_dir: src/packages/compass-e2e-tests/.log include: - - "**" + - '**' - command: s3.put params: <<: *save-artifact-params-private @@ -303,7 +303,7 @@ functions: echo "Running tests in Electron runtime" # Preparing native addons for electron runtime - npm run --unsafe-perm electron-rebuild + DEBUG=electron-rebuild* npm run --unsafe-perm electron-rebuild npm run --unsafe-perm test-ci-electron -- --stream diff --git a/package-lock.json b/package-lock.json index e98df17bd67..72363fe5b31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4249,59 +4249,36 @@ "node": ">= 4.0.0" } }, - "node_modules/@electron/rebuild": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.2.tgz", - "integrity": "sha512-fTSoWdbrPTmQOwvct4VnJH45aJg79WRabuNqt7cAWIno5kTXv1QD6qVmR2e8wmHi/xryaiVINl1gcEhKGjREVw==", + "node_modules/@electron/node-gyp": { + "version": "10.2.0-electron.1", + "resolved": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", + "integrity": "sha512-CrYo6TntjpoMO1SHjl5Pa/JoUsECNqNdB7Kx49WLQpWzPw53eEITJ2Hs9fh/ryUYDn4pxZz11StaBYBrLFJdqg==", + "license": "MIT", "dependencies": { - "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", - "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "read-binary-file-arch": "^1.0.6", + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^8.1.0", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.2.1", + "nopt": "^6.0.0", + "proc-log": "^2.0.1", "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" + "tar": "^6.2.1", + "which": "^2.0.2" }, "bin": { - "electron-rebuild": "lib/cli.js" + "node-gyp": "bin/node-gyp.js" }, "engines": { "node": ">=12.13.0" } }, - "node_modules/@electron/rebuild/node_modules/@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/malept" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" - } - ], - "dependencies": { - "cross-spawn": "^7.0.1" - }, - "engines": { - "node": ">= 12.13.0" - } - }, - "node_modules/@electron/rebuild/node_modules/@npmcli/move-file": { + "node_modules/@electron/node-gyp/node_modules/@npmcli/move-file": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", "dependencies": { "mkdirp": "^1.0.4", "rimraf": "^3.0.2" @@ -4310,29 +4287,20 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@electron/rebuild/node_modules/@tootallnate/once": { + "node_modules/@electron/node-gyp/node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", "engines": { "node": ">= 10" } }, - "node_modules/@electron/rebuild/node_modules/agent-base": { + "node_modules/@electron/node-gyp/node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", "dependencies": { "debug": "4" }, @@ -4340,39 +4308,20 @@ "node": ">= 6.0.0" } }, - "node_modules/@electron/rebuild/node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/@electron/rebuild/node_modules/are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@electron/rebuild/node_modules/brace-expansion": { + "node_modules/@electron/node-gyp/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/@electron/rebuild/node_modules/cacache": { + "node_modules/@electron/node-gyp/node_modules/cacache": { "version": "16.1.3", "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", + "license": "ISC", "dependencies": { "@npmcli/fs": "^2.1.0", "@npmcli/move-file": "^2.0.0", @@ -4397,11 +4346,12 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/node_modules/cacache/node_modules/glob": { + "node_modules/@electron/node-gyp/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "deprecated": "Glob versions prior to v9 are no longer supported", + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4416,101 +4366,11 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@electron/rebuild/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==", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/@electron/rebuild/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/rebuild/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==", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@electron/rebuild/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/rebuild/node_modules/gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@electron/rebuild/node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "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/rebuild/node_modules/http-proxy-agent": { + "node_modules/@electron/node-gyp/node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -4520,10 +4380,11 @@ "node": ">= 6" } }, - "node_modules/@electron/rebuild/node_modules/https-proxy-agent": { + "node_modules/@electron/node-gyp/node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { "agent-base": "6", "debug": "4" @@ -4532,18 +4393,20 @@ "node": ">= 6" } }, - "node_modules/@electron/rebuild/node_modules/lru-cache": { + "node_modules/@electron/node-gyp/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", "engines": { "node": ">=12" } }, - "node_modules/@electron/rebuild/node_modules/make-fetch-happen": { + "node_modules/@electron/node-gyp/node_modules/make-fetch-happen": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", + "license": "ISC", "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^16.1.0", @@ -4566,21 +4429,11 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/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==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@electron/rebuild/node_modules/minimatch": { + "node_modules/@electron/node-gyp/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -4588,10 +4441,11 @@ "node": ">=10" } }, - "node_modules/@electron/rebuild/node_modules/minipass-fetch": { + "node_modules/@electron/node-gyp/node_modules/minipass-fetch": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", + "license": "MIT", "dependencies": { "minipass": "^3.1.6", "minipass-sized": "^1.0.3", @@ -4604,49 +4458,20 @@ "encoding": "^0.1.13" } }, - "node_modules/@electron/rebuild/node_modules/node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": "^12.13 || ^14.13 || >=16" - } - }, - "node_modules/@electron/rebuild/node_modules/npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "deprecated": "This package is no longer supported.", - "dependencies": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - }, + "node_modules/@electron/node-gyp/node_modules/proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "license": "ISC", "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/node_modules/socks-proxy-agent": { + "node_modules/@electron/node-gyp/node_modules/socks-proxy-agent": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "license": "MIT", "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", @@ -4656,10 +4481,11 @@ "node": ">= 10" } }, - "node_modules/@electron/rebuild/node_modules/ssri": { + "node_modules/@electron/node-gyp/node_modules/ssri": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", + "license": "ISC", "dependencies": { "minipass": "^3.1.1" }, @@ -4667,21 +4493,11 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@electron/rebuild/node_modules/unique-filename": { + "node_modules/@electron/node-gyp/node_modules/unique-filename": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", + "license": "ISC", "dependencies": { "unique-slug": "^3.0.0" }, @@ -4689,10 +4505,11 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/rebuild/node_modules/unique-slug": { + "node_modules/@electron/node-gyp/node_modules/unique-slug": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", + "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, @@ -4700,10 +4517,183 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, + "node_modules/@electron/rebuild": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.7.0.tgz", + "integrity": "sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==", + "license": "MIT", + "dependencies": { + "@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.2.0", + "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "bin": { + "electron-rebuild": "lib/cli.js" + }, + "engines": { + "node": ">=12.13.0" + } + }, + "node_modules/@electron/rebuild/node_modules/@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "license": "Apache-2.0", + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/@electron/rebuild/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@electron/rebuild/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/@electron/rebuild/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==", + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/@electron/rebuild/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/rebuild/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==", + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron/rebuild/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/rebuild/node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", + "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/rebuild/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==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@electron/rebuild/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@electron/rebuild/node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -4721,6 +4711,7 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", "engines": { "node": ">=12" } @@ -18704,6 +18695,7 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -27848,9 +27840,9 @@ "dev": true }, "node_modules/kerberos": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.1.1.tgz", - "integrity": "sha512-414s1G/qgK2T60cXnZsHbtRj8Ynjg0DBlQWeY99tkyqQ2e8vGgFHvxRdvjTlLHg/SxBA0zLQcGE6Pk6Dfq/BCA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", + "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { @@ -43685,7 +43677,7 @@ "system-ca": "^2.0.0" }, "devDependencies": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-aggregations": "^9.46.1", @@ -43737,6 +43729,7 @@ "chalk": "^4.1.2", "clean-stack": "^2.0.0", "compass-preferences-model": "^2.29.1", + "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", @@ -44537,7 +44530,7 @@ "packages/compass-e2e-tests": { "version": "1.27.3", "devDependencies": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -48403,7 +48396,7 @@ "hasInstallScript": true, "license": "SSPL", "dependencies": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@mongodb-js/devtools-github-repo": "^1.4.1", "@mongodb-js/dl-center": "^1.0.1", "@mongodb-js/electron-wix-msi": "^3.0.0", @@ -53151,35 +53144,23 @@ } } }, - "@electron/rebuild": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.6.2.tgz", - "integrity": "sha512-fTSoWdbrPTmQOwvct4VnJH45aJg79WRabuNqt7cAWIno5kTXv1QD6qVmR2e8wmHi/xryaiVINl1gcEhKGjREVw==", + "@electron/node-gyp": { + "version": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", + "integrity": "sha512-CrYo6TntjpoMO1SHjl5Pa/JoUsECNqNdB7Kx49WLQpWzPw53eEITJ2Hs9fh/ryUYDn4pxZz11StaBYBrLFJdqg==", + "from": "@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", "requires": { - "@malept/cross-spawn-promise": "^2.0.0", - "chalk": "^4.0.0", - "debug": "^4.1.1", - "detect-libc": "^2.0.1", - "fs-extra": "^10.0.0", - "got": "^11.7.0", - "node-abi": "^3.45.0", - "node-api-version": "^0.2.0", - "node-gyp": "^9.0.0", - "ora": "^5.1.0", - "read-binary-file-arch": "^1.0.6", + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^8.1.0", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^10.2.1", + "nopt": "^6.0.0", + "proc-log": "^2.0.1", "semver": "^7.3.5", - "tar": "^6.0.5", - "yargs": "^17.0.1" + "tar": "^6.2.1", + "which": "^2.0.2" }, "dependencies": { - "@malept/cross-spawn-promise": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", - "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", - "requires": { - "cross-spawn": "^7.0.1" - } - }, "@npmcli/move-file": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", @@ -53189,11 +53170,6 @@ "rimraf": "^3.0.2" } }, - "@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==" - }, "@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", @@ -53207,20 +53183,6 @@ "debug": "4" } }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "are-we-there-yet": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", - "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^3.6.0" - } - }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -53252,86 +53214,18 @@ "ssri": "^9.0.0", "tar": "^6.1.11", "unique-filename": "^2.0.0" - }, - "dependencies": { - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.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==" - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "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==", - "requires": { - "mimic-response": "^3.1.0" - } - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "gauge": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", - "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", - "requires": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^3.0.7", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" } }, - "got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "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" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, "http-proxy-agent": { @@ -53381,11 +53275,6 @@ "ssri": "^9.0.0" } }, - "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==" - }, "minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -53405,34 +53294,10 @@ "minizlib": "^2.1.2" } }, - "node-gyp": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.1.tgz", - "integrity": "sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ==", - "requires": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^7.1.4", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^10.0.3", - "nopt": "^6.0.0", - "npmlog": "^6.0.0", - "rimraf": "^3.0.2", - "semver": "^7.3.5", - "tar": "^6.1.2", - "which": "^2.0.2" - } - }, - "npmlog": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", - "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", - "requires": { - "are-we-there-yet": "^3.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^4.0.3", - "set-blocking": "^2.0.0" - } + "proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==" }, "socks-proxy-agent": { "version": "7.0.0", @@ -53452,14 +53317,6 @@ "minipass": "^3.1.1" } }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } - }, "unique-filename": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", @@ -53475,6 +53332,111 @@ "requires": { "imurmurhash": "^0.1.4" } + } + } + }, + "@electron/rebuild": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.7.0.tgz", + "integrity": "sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==", + "requires": { + "@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", + "@malept/cross-spawn-promise": "^2.0.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "detect-libc": "^2.0.1", + "fs-extra": "^10.0.0", + "got": "^11.7.0", + "node-abi": "^3.45.0", + "node-api-version": "^0.2.0", + "ora": "^5.1.0", + "read-binary-file-arch": "^1.0.6", + "semver": "^7.3.5", + "tar": "^6.0.5", + "yargs": "^17.0.1" + }, + "dependencies": { + "@malept/cross-spawn-promise": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-2.0.0.tgz", + "integrity": "sha512-1DpKU0Z5ThltBwjNySMC14g0CkbyhCaz9FkhxqNsZI6uAPJXFS8cMXlBKo26FJ8ZuW6S9GCMcR9IO5k2X5/9Fg==", + "requires": { + "cross-spawn": "^7.0.1" + } + }, + "@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==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "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==" + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "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==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "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" + } + }, + "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==" + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } }, "yargs": { "version": "17.7.2", @@ -68194,7 +68156,7 @@ "compass-e2e-tests": { "version": "file:packages/compass-e2e-tests", "requires": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -74204,7 +74166,7 @@ "hadron-build": { "version": "file:packages/hadron-build", "requires": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@mongodb-js/devtools-github-repo": "^1.4.1", "@mongodb-js/dl-center": "^1.0.1", "@mongodb-js/electron-wix-msi": "^3.0.0", @@ -76781,9 +76743,9 @@ "dev": true }, "kerberos": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.1.1.tgz", - "integrity": "sha512-414s1G/qgK2T60cXnZsHbtRj8Ynjg0DBlQWeY99tkyqQ2e8vGgFHvxRdvjTlLHg/SxBA0zLQcGE6Pk6Dfq/BCA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", + "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", "requires": { "bindings": "^1.5.0", "node-addon-api": "^6.1.0", @@ -79989,7 +79951,7 @@ "mongodb-compass": { "version": "file:packages/compass", "requires": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-aggregations": "^9.46.1", @@ -80043,6 +80005,7 @@ "clean-stack": "^2.0.0", "clipboard": "^2.0.6", "compass-preferences-model": "^2.29.1", + "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 3e4e32492f4..555dcc7d950 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -30,7 +30,7 @@ "coverage-report": "npm run coverage-merge && nyc report" }, "devDependencies": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", "@mongodb-js/connection-info": "^0.9.1", "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/compass/package.json b/packages/compass/package.json index 3a1bc9753ff..4c1309edbfc 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -140,7 +140,7 @@ }, "scripts": { "install": "node scripts/download-fonts.js && node scripts/download-csfle.js", - "electron-rebuild": "electron-rebuild --only kerberos,keytar,interruptor,os-dns-native,win-export-certificate-and-key,macos-export-certificate-and-key --prebuild-tag-prefix not-real-prefix-to-force-rebuild", + "electron-rebuild": "node scripts/electron-rebuild.js", "prestart": "npm run electron-rebuild && npm run compile --workspace=@mongodb-js/webpack-config-compass", "start": "HADRON_DISTRIBUTION=${HADRON_DISTRIBUTION:-compass} npm run webpack serve -- --mode development", "test-electron": "npm run test-main && npm run test-renderer", @@ -181,14 +181,14 @@ "dependencies": { "@mongosh/node-runtime-worker-thread": "^2.3.2", "clipboard": "^2.0.6", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "keytar": "^7.9.0", "mongodb-client-encryption": "^6.1.0", "os-dns-native": "^1.2.1", "system-ca": "^2.0.0" }, "devDependencies": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@electron/remote": "^2.1.2", "@mongodb-js/atlas-service": "^0.30.1", "@mongodb-js/compass-aggregations": "^9.46.1", @@ -240,6 +240,7 @@ "chalk": "^4.1.2", "clean-stack": "^2.0.0", "compass-preferences-model": "^2.29.1", + "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^30.5.1", diff --git a/packages/compass/scripts/electron-rebuild.js b/packages/compass/scripts/electron-rebuild.js new file mode 100644 index 00000000000..26da7548889 --- /dev/null +++ b/packages/compass/scripts/electron-rebuild.js @@ -0,0 +1,40 @@ +'use strict'; +const spawn = require('cross-spawn'); +const path = require('path'); + +const modulesToRebuild = + require('../package.json').config.hadron.rebuild.onlyModules; + +// We only want to force rebuild on linux to make sure that the version of glibc +// is matching the platform we're running this on instead of the platform the +// prebuilt was generated on, for other platforms it's okay to just download the +// prebuilt modules when available +const forceRebuildFromSource = process.platform === 'linux'; + +/** @type {[string, string[]]} */ +const rebuildArgs = [ + 'electron-rebuild', + [ + '--only', + modulesToRebuild.join(','), + ...(forceRebuildFromSource + ? [ + // electron-rebuild doesn't allow to force rebuild from source, but we + // can force it by passing a fake tag that would not allow prebuilt to + // download the asset + '--prebuild-tag-prefix', + 'not-real-prefix-to-force-rebuild', + ] + : []), + ...process.argv.slice(2), + ], +]; + +// eslint-disable-next-line no-console +console.log('> %s', rebuildArgs.flat().join(' ')); + +spawn(...rebuildArgs, { + cwd: path.resolve(__dirname, '..'), + stdio: 'inherit', + env: process.env, +}); diff --git a/packages/data-service/package.json b/packages/data-service/package.json index ef385ccaff5..fcc703a844d 100644 --- a/packages/data-service/package.json +++ b/packages/data-service/package.json @@ -76,7 +76,7 @@ "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "mocha": "^10.2.0", "mongodb-log-writer": "^1.4.2", "nyc": "^15.1.0", diff --git a/packages/hadron-build/commands/release.js b/packages/hadron-build/commands/release.js index d22649f03d0..bec2c5fba09 100644 --- a/packages/hadron-build/commands/release.js +++ b/packages/hadron-build/commands/release.js @@ -384,15 +384,24 @@ const installDependencies = util.callbackify(async (CONFIG) => { force: true, }; + const forceRebuildFromSourceOptions = + // We only want to force rebuild on linux to make sure that the version of + // glibc is matching the platform we're running this on instead of the + // platform the prebuilt was generated on, for other platforms it's okay to + // just download the prebuilt modules when available + process.platform === 'linux' + ? { + // electron-rebuild doesn't allow to force rebuild from source, but we + // can force it by passing a fake tag that would not allow prebuilt to + // download the asset + prebuildTagPrefix: 'not-real-prefix-to-force-rebuild', + } + : {}; + const allModulesRebuildConfig = { ...sharedRebuildConfig, ...CONFIG.rebuild, - // We want to ensure that we are actually rebuilding native modules on the - // platform we are packaging. There is currently no direct way of passing a - // --build-from-source flag to rebuild-install package, but we can force - // rebuild by providing a tag prefix that will make prebuild think that - // prebuilt files don't exist - prebuildTagPrefix: 'totally-not-a-real-prefix-to-force-rebuild', + ...forceRebuildFromSourceOptions, }; // We can not force rebuild mongodb-client-encryption locally, but we need to diff --git a/packages/hadron-build/package.json b/packages/hadron-build/package.json index 3dfe55d92b3..4acf02872b6 100644 --- a/packages/hadron-build/package.json +++ b/packages/hadron-build/package.json @@ -19,7 +19,7 @@ "url": "https://github.com/mongodb-js/compass.git" }, "dependencies": { - "@electron/rebuild": "^3.6.2", + "@electron/rebuild": "^3.7.0", "@mongodb-js/devtools-github-repo": "^1.4.1", "@mongodb-js/dl-center": "^1.0.1", "@mongodb-js/electron-wix-msi": "^3.0.0", From 19941f5f0cf9a7938d99b20ea24ce949d251f7e9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 24 Oct 2024 09:52:55 +0000 Subject: [PATCH 43/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6397) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 8 ++++---- docs/tracking-plan.md | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 22c71e496e5..51c48092979 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Wed Oct 23 2024. +This document was automatically generated on Thu Oct 24 2024. ## List of dependencies @@ -364,7 +364,7 @@ Package|Version|License **[json5](#16281c6ea25e0cec4bc0bb8c01d1759d66992776381bf9c5af6959bec47d2f77)**|2.2.3|MIT **[jsondiffpatch](#2cc3b990f6692cd23f883319a727b42a76a3a9d6675d1ebd8a05241eb7edc4ac)**|0.5.0|MIT **[jsonfile](#1504ddbe5031429f6d90bb02373b4629ff5da9ef4e869d5015ff42f685817e74)**|6.1.0|MIT -**[kerberos](#e9b8ef28e3d246d5071f34b07b67580523cda7bd0d7d74dc2e422d79d30c238d)**|2.1.1|Apache-2.0 +**[kerberos](#ac70d4903c6441fd96843a6ecb73f258ee27ef26b25290257564a11c10ecd17b)**|2.2.0|Apache-2.0 **[key-tree-store](#63e3bcb8e06ac6b9f7c153030ce57fad6e985a0cc7f0109d3fc6073192a932f8)**|1.3.0|MIT **[keytar](#752f1130bbd6c5dc941bdb20fb39579c1d350252a112c58f2558b7c5f536d6f7)**|7.9.0|MIT **[leaflet-defaulticon-compatibility](#7fba582082c899d764d8e4214d2f6f06cd043b2dce51598ec24ce299f5640a6e)**|0.1.1|BSD-2-Clause @@ -23138,8 +23138,8 @@ License files: -
-### [kerberos](https://www.npmjs.com/package/kerberos) (version 2.1.1) + +### [kerberos](https://www.npmjs.com/package/kerberos) (version 2.2.0) License tags: Apache-2.0 License files: diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 99ebbfa5ee9..d85587e5b62 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Wed, Oct 23, 2024 at 04:31 PM +Generated on Thu, Oct 24, 2024 at 09:52 AM ## Table of Contents From 5065cd381c19f98e6f15e7e478cf444e5f38482e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 27 Oct 2024 03:16:52 +0000 Subject: [PATCH 44/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6401) Update report Co-authored-by: mcasimir <334881+mcasimir@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 51c48092979..eabe5f9d581 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Thu Oct 24 2024. +This document was automatically generated on Sun Oct 27 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index d85587e5b62..01206d96fd4 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Thu, Oct 24, 2024 at 09:52 AM +Generated on Sun, Oct 27, 2024 at 03:16 AM ## Table of Contents From 42e97d38745f052809988f055e0a3f864f5b3ce6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 05:05:08 +0000 Subject: [PATCH 45/71] v1.44.6-beta.1 --- package-lock.json | 10 +++++----- packages/compass/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1262a16eacd..43f52540a8d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43664,13 +43664,13 @@ }, "packages/compass": { "name": "mongodb-compass", - "version": "1.44.6-beta.0", + "version": "1.44.6-beta.1", "hasInstallScript": true, "license": "SSPL", "dependencies": { "@mongosh/node-runtime-worker-thread": "^2.3.2", "clipboard": "^2.0.6", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "keytar": "^7.9.0", "mongodb-client-encryption": "^6.1.0", "os-dns-native": "^1.2.1", @@ -47892,7 +47892,7 @@ "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "mocha": "^10.2.0", "mongodb-log-writer": "^1.4.2", "nyc": "^15.1.0", @@ -80018,7 +80018,7 @@ "hadron-app-registry": "^9.2.7", "hadron-build": "^25.5.12", "hadron-ipc": "^3.2.23", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "keytar": "^7.9.0", "local-links": "^1.4.0", "macos-export-certificate-and-key": "^1.1.2", @@ -80281,7 +80281,7 @@ "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", diff --git a/packages/compass/package.json b/packages/compass/package.json index 421e6ec2dfb..c0b75b955bb 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -4,7 +4,7 @@ "productName": "MongoDB Compass", "description": "The MongoDB GUI", "homepage": "https://www.mongodb.com/products/compass", - "version": "1.44.6-beta.0", + "version": "1.44.6-beta.1", "apiVersion": "3.0.0", "main": "build/main.js", "author": { From ea27e275183677e5ddf45a7c4ceb1db28fb36bc0 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Mon, 28 Oct 2024 09:23:38 +0100 Subject: [PATCH 46/71] chore(deps): bump kerberos in package-lock (#6402) --- package-lock.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 72363fe5b31..07e5691d5c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43670,7 +43670,7 @@ "dependencies": { "@mongosh/node-runtime-worker-thread": "^2.3.2", "clipboard": "^2.0.6", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "keytar": "^7.9.0", "mongodb-client-encryption": "^6.1.0", "os-dns-native": "^1.2.1", @@ -47892,7 +47892,7 @@ "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "mocha": "^10.2.0", "mongodb-log-writer": "^1.4.2", "nyc": "^15.1.0", @@ -80018,7 +80018,7 @@ "hadron-app-registry": "^9.2.7", "hadron-build": "^25.5.12", "hadron-ipc": "^3.2.23", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "keytar": "^7.9.0", "local-links": "^1.4.0", "macos-export-certificate-and-key": "^1.1.2", @@ -80281,7 +80281,7 @@ "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", "eslint": "^7.25.0", - "kerberos": "^2.1.1", + "kerberos": "^2.2.0", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", From 1d5f3e59328711de86298d56dbe86c898035c2b3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 08:31:37 +0000 Subject: [PATCH 47/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6403) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index eabe5f9d581..6b60acfedcc 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Sun Oct 27 2024. +This document was automatically generated on Mon Oct 28 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 01206d96fd4..be3c127d2bf 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Sun, Oct 27, 2024 at 03:16 AM +Generated on Mon, Oct 28, 2024 at 08:31 AM ## Table of Contents From 560ad43bf2f2b32cde759f35adbdd66eb50e53a2 Mon Sep 17 00:00:00 2001 From: Nikola Irinchev Date: Mon, 28 Oct 2024 13:18:10 +0100 Subject: [PATCH 48/71] chore(ci): Add a workflow to validate PR titles (#6400) * Add a workflow to validate PR titles * Update the example ticket --- .github/workflows/check-pr-title.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/check-pr-title.yml diff --git a/.github/workflows/check-pr-title.yml b/.github/workflows/check-pr-title.yml new file mode 100644 index 00000000000..3d7b5a61987 --- /dev/null +++ b/.github/workflows/check-pr-title.yml @@ -0,0 +1,24 @@ +name: "Check PR Title" +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review, labeled, unlabeled, converted_to_draft, edited] + +jobs: + check-pr-title: + name: Check PR Title + runs-on: ubuntu-latest + steps: + - name: Enforce conventional commit style + uses: realm/ci-actions/title-checker@main + with: + regex: '^(build|chore|ci|docs|feat|fix|perf|refactor|revert|style|test|ops){1}(\([\w\-\.]+\))?(!)?: .*' + error-hint: 'Invalid PR title. Make sure it follows the conventional commit specification (i.e. "(): ") or add the no-title-validation label' + ignore-labels: 'no-title-validation' + - name: Enforce JIRA ticket in title + uses: realm/ci-actions/title-checker@main + # Skip the JIRA ticket check for PRs opened by bots + if: ${{ !contains(github.event.pull_request.user.login, '[bot]') }} + with: + regex: '[A-Z]{4,10}-[0-9]{1,5}$' + error-hint: 'Invalid PR title. Make sure it ends with a JIRA ticket - i.e. COMPASS-1234 or add the no-title-validation label' + ignore-labels: 'no-title-validation' From 953769b1eff5722df443b2eae0cd833e324e9896 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:25:02 +0000 Subject: [PATCH 49/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6406) Update report Co-authored-by: nirinchev <2315687+nirinchev@users.noreply.github.com> --- AUTHORS | 1 + docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/AUTHORS b/AUTHORS index 9afdce0409c..761597a732d 100644 --- a/AUTHORS +++ b/AUTHORS @@ -93,3 +93,4 @@ Kræn Hansen Kræn Hansen Ruchitha Rajaghatta <77162985+ruchitharajaghatta@users.noreply.github.com> syn-zhu <167124917+syn-zhu@users.noreply.github.com> +Nikola Irinchev diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index be3c127d2bf..c592d7a3e34 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 28, 2024 at 08:31 AM +Generated on Mon, Oct 28, 2024 at 12:24 PM ## Table of Contents From 8f1cd9f1846feee24a896f7d22d76ef322a77b10 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Mon, 28 Oct 2024 13:36:31 +0100 Subject: [PATCH 50/71] chore(e2e): refactor context to use yargs parser (#6398) --- .depalignrc.json | 3 + .evergreen/functions.yml | 17 +- package-lock.json | 144 +++++- .../helpers/commands/connect-form.ts | 11 +- .../helpers/commands/screenshot.ts | 2 +- packages/compass-e2e-tests/helpers/compass.ts | 56 +-- .../helpers/test-runner-context.ts | 443 ++++++++++++------ .../helpers/test-runner-global-fixtures.ts | 33 +- .../helpers/test-runner-paths.ts | 36 ++ packages/compass-e2e-tests/index.ts | 31 +- packages/compass-e2e-tests/package.json | 11 +- .../tests/collection-bulk-delete.test.ts | 3 +- .../tests/collection-documents-tab.test.ts | 3 +- .../tests/connection-form.test.ts | 3 +- .../tests/connection.test.ts | 10 +- .../tests/my-queries-tab.test.ts | 6 +- .../tests/protect-connection-strings.test.ts | 3 +- 17 files changed, 562 insertions(+), 253 deletions(-) create mode 100644 packages/compass-e2e-tests/helpers/test-runner-paths.ts diff --git a/.depalignrc.json b/.depalignrc.json index 277dbf7ce19..1ba9475076f 100644 --- a/.depalignrc.json +++ b/.depalignrc.json @@ -26,6 +26,9 @@ ], "js-yaml": [ "^3.13.1" + ], + "yargs": [ + "^4.8.1" ] } } \ No newline at end of file diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index b5a67ece2ac..46204d5892b 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -597,10 +597,9 @@ functions: DEBUG: ${debug|} MONGODB_VERSION: ${mongodb_version|} MONGODB_RUNNER_VERSION: ${mongodb_version|} - E2E_TEST_GROUPS: ${e2e_test_groups} - E2E_TEST_GROUP: ${e2e_test_group} + COMPASS_E2E_TEST_GROUPS: ${e2e_test_groups} + COMPASS_E2E_TEST_GROUP: ${e2e_test_group} ATLAS_LOCAL_VERSION: latest - HADRON_DISTRIBUTION: compass script: | set -e # Load environment variables @@ -629,8 +628,8 @@ functions: DEBUG: ${debug|} MONGODB_VERSION: ${mongodb_version|} MONGODB_RUNNER_VERSION: ${mongodb_version|} - E2E_TEST_GROUPS: ${e2e_test_groups} - E2E_TEST_GROUP: ${e2e_test_group} + COMPASS_E2E_TEST_GROUPS: ${e2e_test_groups} + COMPASS_E2E_TEST_GROUP: ${e2e_test_group} script: | set -e # Load environment variables @@ -664,14 +663,14 @@ functions: DEBUG: ${debug|} MONGODB_VERSION: ${mongodb_version|} MONGODB_RUNNER_VERSION: ${mongodb_version|} - COMPASS_WEB_BROWSER_NAME: ${browser_name} - E2E_TEST_GROUPS: ${e2e_test_groups} - E2E_TEST_GROUP: ${e2e_test_group} + COMPASS_E2E_BROWSER_NAME: ${browser_name} + COMPASS_E2E_TEST_GROUPS: ${e2e_test_groups} + COMPASS_E2E_TEST_GROUP: ${e2e_test_group} script: | set -e # Load environment variables eval $(.evergreen/print-compass-env.sh) - npm run --unsafe-perm --workspace compass-e2e-tests test-web + npm run --unsafe-perm --workspace compass-e2e-tests test-ci web test-connectivity: - command: shell.exec diff --git a/package-lock.json b/package-lock.json index 07e5691d5c9..3e979124e1b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13961,6 +13961,16 @@ "@types/node": "*" } }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/yargs-parser": "*" + } + }, "node_modules/@types/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", @@ -44529,6 +44539,9 @@ }, "packages/compass-e2e-tests": { "version": "1.27.3", + "bin": { + "compass-e2e-tests": "index.ts" + }, "devDependencies": { "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", @@ -44540,6 +44553,7 @@ "@types/chai-as-promised": "^7.1.4", "@types/cross-spawn": "^6.0.2", "@types/puppeteer": "^5.4.4", + "@types/yargs": "^17.0.33", "@wdio/types": "^8.32.2", "bson": "^6.8.0", "chai": "^4.3.4", @@ -44572,7 +44586,18 @@ "ts-node": "^10.9.1", "webdriverio": "^8.40.0", "why-is-node-running": "^2.3.0", - "xvfb-maybe": "^0.2.1" + "xvfb-maybe": "^0.2.1", + "yargs": "^17.7.2" + } + }, + "packages/compass-e2e-tests/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" } }, "packages/compass-e2e-tests/node_modules/brace-expansion": { @@ -44598,6 +44623,21 @@ "node": ">=8" } }, + "packages/compass-e2e-tests/node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "packages/compass-e2e-tests/node_modules/electron-to-chromium": { "version": "1.5.41", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", @@ -44831,6 +44871,19 @@ "node": ">=0.10.0" } }, + "packages/compass-e2e-tests/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "packages/compass-e2e-tests/node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -44870,6 +44923,35 @@ "node": ">=8" } }, + "packages/compass-e2e-tests/node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "packages/compass-e2e-tests/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "packages/compass-editor": { "name": "@mongodb-js/compass-editor", "version": "0.31.1", @@ -64861,6 +64943,15 @@ "@types/node": "*" } }, + "@types/yargs": { + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, "@types/yargs-parser": { "version": "21.0.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", @@ -68166,6 +68257,7 @@ "@types/chai-as-promised": "^7.1.4", "@types/cross-spawn": "^6.0.2", "@types/puppeteer": "^5.4.4", + "@types/yargs": "^17.0.33", "@wdio/types": "^8.32.2", "bson": "^6.8.0", "chai": "^4.3.4", @@ -68198,9 +68290,16 @@ "ts-node": "^10.9.1", "webdriverio": "^8.40.0", "why-is-node-running": "^2.3.0", - "xvfb-maybe": "^0.2.1" + "xvfb-maybe": "^0.2.1", + "yargs": "^17.7.2" }, "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -68221,6 +68320,17 @@ "is-wsl": "^2.1.1" } }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, "electron-to-chromium": { "version": "1.5.41", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", @@ -68380,6 +68490,15 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -68411,6 +68530,27 @@ "siginfo": "^2.0.0", "stackback": "0.0.2" } + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true } } }, diff --git a/packages/compass-e2e-tests/helpers/commands/connect-form.ts b/packages/compass-e2e-tests/helpers/commands/connect-form.ts index f47505af19e..fa1e52d5967 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect-form.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect-form.ts @@ -4,7 +4,10 @@ import type { CompassBrowser } from '../compass-browser'; import * as Selectors from '../selectors'; import type { ConnectFormState } from '../connect-form-state'; import Debug from 'debug'; -import { DEFAULT_CONNECTIONS } from '../test-runner-context'; +import { + DEFAULT_CONNECTIONS, + isTestingAtlasCloudExternal, +} from '../test-runner-context'; import { getConnectionTitle } from '@mongodb-js/connection-info'; const debug = Debug('compass-e2e-tests'); @@ -925,6 +928,12 @@ export async function saveConnection( } export async function setupDefaultConnections(browser: CompassBrowser) { + // When running tests against Atlas Cloud, connections can't be added or + // removed from the UI manually, so we skip setup for default connections + if (isTestingAtlasCloudExternal()) { + return; + } + /* This is intended to be used by most test files (ones that don't care too much about the intricacies about connections) in a before() hook after starting diff --git a/packages/compass-e2e-tests/helpers/commands/screenshot.ts b/packages/compass-e2e-tests/helpers/commands/screenshot.ts index 5b01dc7ae4f..8e840db9200 100644 --- a/packages/compass-e2e-tests/helpers/commands/screenshot.ts +++ b/packages/compass-e2e-tests/helpers/commands/screenshot.ts @@ -1,6 +1,6 @@ import path from 'path'; import type { CompassBrowser } from '../compass-browser'; -import { LOG_SCREENSHOTS_PATH } from '../test-runner-context'; +import { LOG_SCREENSHOTS_PATH } from '../test-runner-paths'; const withTimeout = (millis: number, promise: Promise) => { let timeoutPid: NodeJS.Timeout; diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 71800865a86..6f518bdd516 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -29,25 +29,21 @@ import { DEFAULT_CONNECTION_STRINGS, DEFAULT_CONNECTION_NAMES, DEFAULT_CONNECTIONS_SERVER_INFO, + isTestingWeb, + isTestingDesktop, + context, + assertTestingWeb, + isTestingAtlasCloudExternal, +} from './test-runner-context'; +import { ELECTRON_CHROMIUM_VERSION, - TEST_COMPASS_WEB as _TEST_COMPASS_WEB, LOG_PATH, LOG_COVERAGE_PATH, COMPASS_DESKTOP_PATH, LOG_OUTPUT_PATH, LOG_SCREENSHOTS_PATH, - WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT, - WEBDRIVER_DEFAULT_WAITFOR_INTERVAL, - TEST_COMPASS_DESKTOP_PACKAGED_APP, ELECTRON_PATH, - COMPASS_WEB_BROWSER_NAME, - COMPASS_WEB_BROWSER_VERSION, - TEST_ATLAS_CLOUD_EXTERNAL, - TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE, - TEST_ATLAS_CLOUD_EXTERNAL_URL, - TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID, - COMPASS_WEB_SANDBOX_URL, -} from './test-runner-context'; +} from './test-runner-paths'; const debug = Debug('compass-e2e-tests'); @@ -57,7 +53,7 @@ const { Z_SYNC_FLUSH } = zlib.constants; const packageCompassAsync = promisify(packageCompass); // should we test compass-web (true) or compass electron (false)? -export const TEST_COMPASS_WEB = _TEST_COMPASS_WEB; +export const TEST_COMPASS_WEB = isTestingWeb(); /* A helper so we can easily find all the tests we're skipping in compass-web. @@ -75,10 +71,6 @@ export function skipForWeb( } } -export const MONGODB_TEST_SERVER_PORT = Number( - process.env.MONGODB_TEST_SERVER_PORT ?? 27091 -); - export const DEFAULT_CONNECTION_STRING_1 = DEFAULT_CONNECTION_STRINGS[0]; // NOTE: in browser.setupDefaultConnections() we don't give the first connection an // explicit name, so it gets a calculated one based off the connection string @@ -435,7 +427,7 @@ async function getCompassExecutionParameters(): Promise<{ testPackagedApp: boolean; binary: string; }> { - const testPackagedApp = TEST_COMPASS_DESKTOP_PACKAGED_APP; + const testPackagedApp = isTestingDesktop(context) && context.testPackagedApp; const binary = testPackagedApp ? getCompassBinPath(await getCompassBuildMetadata()) : ELECTRON_PATH; @@ -554,8 +546,8 @@ async function processCommonOpts({ // https://webdriver.io/docs/options/#webdriverio const wdioOptions = { - waitforTimeout: WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT, - waitforInterval: WEBDRIVER_DEFAULT_WAITFOR_INTERVAL, + waitforTimeout: context.webdriverWaitforTimeout, + waitforInterval: context.webdriverWaitforInterval, }; process.env.DEBUG = `${process.env.DEBUG ?? ''},mongodb-compass:main:logging`; @@ -727,14 +719,16 @@ export async function startBrowser( // eslint-disable-next-line @typescript-eslint/no-unused-vars opts: StartCompassOptions = {} ) { + assertTestingWeb(context); + runCounter++; const { webdriverOptions, wdioOptions } = await processCommonOpts(); const options: RemoteOptions = { capabilities: { - browserName: COMPASS_WEB_BROWSER_NAME, - ...(COMPASS_WEB_BROWSER_VERSION && { - browserVersion: COMPASS_WEB_BROWSER_VERSION, + browserName: context.browserName, + ...(context.browserVersion && { + browserVersion: context.browserVersion, }), }, ...webdriverOptions, @@ -746,11 +740,17 @@ export async function startBrowser( const browser: CompassBrowser = (await remote(options)) as CompassBrowser; - if (TEST_ATLAS_CLOUD_EXTERNAL) { + if (isTestingAtlasCloudExternal(context)) { + const { + atlasCloudExternalCookiesFile, + atlasCloudExternalUrl, + atlasCloudExternalProjectId, + } = context; + // To be able to use `setCookies` method, we need to first open any page on // the same domain as the cookies we are going to set // https://webdriver.io/docs/api/browser/setCookies/ - await browser.navigateTo(`${TEST_ATLAS_CLOUD_EXTERNAL_URL!}/404`); + await browser.navigateTo(`${atlasCloudExternalUrl}/404`); type StoredAtlasCloudCookies = { name: string; @@ -763,7 +763,7 @@ export async function startBrowser( }[]; const cookies: StoredAtlasCloudCookies = JSON.parse( - await fs.readFile(TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE!, 'utf8') + await fs.readFile(atlasCloudExternalCookiesFile, 'utf8') ); await browser.setCookies( @@ -788,10 +788,10 @@ export async function startBrowser( ); await browser.navigateTo( - `${TEST_ATLAS_CLOUD_EXTERNAL_URL!}/v2/${TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID!}#/explorer` + `${atlasCloudExternalUrl}/v2/${atlasCloudExternalProjectId}#/explorer` ); } else { - await browser.navigateTo(COMPASS_WEB_SANDBOX_URL); + await browser.navigateTo(context.sandboxUrl); } const compass = new Compass(name, browser, { diff --git a/packages/compass-e2e-tests/helpers/test-runner-context.ts b/packages/compass-e2e-tests/helpers/test-runner-context.ts index 3464c11bbbc..f76a729dd31 100644 --- a/packages/compass-e2e-tests/helpers/test-runner-context.ts +++ b/packages/compass-e2e-tests/helpers/test-runner-context.ts @@ -2,145 +2,313 @@ import { getConnectionTitle, type ConnectionInfo, } from '@mongodb-js/connection-info'; -import path from 'path'; -import electronPath from 'electron'; -import electronPackageJson from 'electron/package.json'; -// @ts-expect-error no types for this package -import { electronToChromium } from 'electron-to-chromium'; import type { MongoClusterOptions } from 'mongodb-runner'; +import yargs from 'yargs'; +import type { Argv } from 'yargs'; +import { hideBin } from 'yargs/helpers'; +import Debug from 'debug'; +import fs from 'fs'; -if (typeof electronPath !== 'string') { - throw new Error( - 'Running e2e tests in an unsupported runtime: `electronPath` is not a string' - ); +const debug = Debug('compass-e2e-tests:context'); + +function buildCommonArgs(yargs: Argv) { + return yargs + .option('disable-start-stop', { + type: 'boolean', + description: + 'Disables automatically starting (and stopping) default local test mongodb servers and compass-web sandbox', + }) + .option('test-groups', { + type: 'number', + description: + 'Run tests in batches. Sets the total number of test groups to have', + default: 1, + }) + .option('test-group', { + type: 'number', + description: + 'Run tests in batches. Sets the current test group from the total number', + default: 1, + }) + .option('test-filter', { + type: 'string', + description: 'Filter the spec files picked up for testing', + default: '*', + }) + .option('webdriver-waitfor-timeout', { + type: 'number', + description: 'Set a custom default webdriver waitFor timeout', + default: 120_000, // webdriver default is 3000ms + }) + .option('webdriver-waitfor-interval', { + type: 'number', + description: 'Set a custom default webdriver waitFor interval', + default: 100, // webdriver default is 500ms + }) + .option('mocha-timeout', { + type: 'number', + description: 'Set a custom default mocha timeout', + // Kinda arbitrary, but longer than webdriver-waitfor-timeout so the test + // can fail before Mocha times out + default: 240_000, + }) + .option('mocha-bail', { + type: 'boolean', + description: 'Bail on the first failing test instead of continuing', + }) + .option('hadron-distribution', { + type: 'string', + description: + 'Configure hadron distribution that will be used when packaging compass for tests (has no effect when testing packaged app)', + default: 'compass', + }) + .option('disable-clipboard-usage', { + type: 'boolean', + description: 'Disable tests that are relying on clipboard', + default: false, + }); } -// TODO: Probably time to use some arg parser for this already -export const ALLOWED_RUNNER_ARGS = [ - '--test-compass-web', - '--no-compile', - '--no-native-modules', - '--test-packaged-app', - '--disable-start-stop', - '--bail', -]; +function buildDesktopArgs(yargs: Argv) { + return ( + yargs + .option('test-packaged-app', { + type: 'boolean', + description: + 'Test a packaged binary instead of running compiled assets directly with electron binary', + default: false, + }) + // Skip this step if you are running tests consecutively and don't need to + // rebuild modules all the time. Also no need to ever recompile when testing + // compass-web. + .option('compile', { + type: 'boolean', + description: + 'When not testing a packaged app, re-compile assets before running tests', + default: true, + }) + .option('native-modules', { + type: 'boolean', + describe: + 'When not testing a packaaged app, re-compile native modules before running tests', + default: true, + }) + .epilogue( + 'All command line arguments can be also provided as env vars with `COMPASS_E2E_` prefix:\n\n COMPASS_E2E_TEST_PACKAGED_APP=true compass-e2e-tests desktop' + ) + ); +} /** * Variables used by a special use-case of running e2e tests against a * cloud(-dev).mongodb.com URL. If you're changing anything related to these, * make sure that the tests in mms are also updated to account for that */ -export const TEST_ATLAS_CLOUD_EXTERNAL_URL = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_URL; -export const TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE; -export const TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID = - process.env.TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID; -const TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS: ConnectionInfo[] | null = - JSON.parse(process.env.TEST_ATLAS_CLOUD_DEFAULT_CONNECTIONS ?? 'null'); - -const ALL_ATLAS_CLOUD_EXTERNAL_VARS = [ - TEST_ATLAS_CLOUD_EXTERNAL_URL, - TEST_ATLAS_CLOUD_EXTERNAL_COOKIES_FILE, - TEST_ATLAS_CLOUD_EXTERNAL_GROUP_ID, - TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS, -]; - -export const TEST_ATLAS_CLOUD_EXTERNAL = ALL_ATLAS_CLOUD_EXTERNAL_VARS.some( - (val) => { - return !!val; - } -); +const atlasCloudExternalArgs = [ + 'test-atlas-cloud-external', + 'atlas-cloud-external-url', + 'atlas-cloud-external-project-id', + 'atlas-cloud-external-cookies-file', + 'atlas-cloud-external-default-connections-file', +] as const; -if ( - TEST_ATLAS_CLOUD_EXTERNAL && - ALL_ATLAS_CLOUD_EXTERNAL_VARS.some((val) => { - return !val; - }) -) { - throw new Error( - 'Trying to test Atlas Cloud external URL but some required variables are missing' +let testEnv: 'desktop' | 'web' | undefined; + +function buildWebArgs(yargs: Argv) { + return ( + yargs + .option('browser-name', { + choices: ['chrome', 'firefox'] as const, + description: 'Test runner browser name', + default: 'chrome', + }) + // https://webdriver.io/docs/driverbinaries/ + // + // If you leave out browserVersion it will try and find the browser binary + // on your system. If you specify it it will download that version. The + // main limitation then is that 'latest' is the only 'semantic' version + // that is supported for Firefox. + // https://github.com/puppeteer/puppeteer/blob/ab5d4ac60200d1cea5bcd4910f9ccb323128e79a/packages/browsers/src/browser-data/browser-data.ts#L66 + // + // Alternatively we can download it ourselves and specify the path to the + // binary or we can even start and stop chromedriver/geckodriver manually. + // + // NOTE: The version of chromedriver or geckodriver in play might also be + // relevant. + .option('browser-version', { + type: 'string', + description: + 'Test runner browser version (`unset` will not provide an explicit version to webdriver)', + default: 'latest', + }) + .option('sandbox-url', { + type: 'string', + description: 'Set compass-web sandbox URL', + default: 'http://localhost:7777', + }) + .option('test-atlas-cloud-external', { + type: 'boolean', + description: + 'Run compass-web tests against an external Atlas Cloud URL (e.g., https://cloud-dev.mongodb.com)', + }) + .option('atlas-cloud-external-url', { + type: 'string', + description: 'External URL to run the tests against', + }) + .option('atlas-cloud-external-project-id', { + type: 'string', + description: 'Atlas `projectId` value', + }) + .option('atlas-cloud-external-cookies-file', { + type: 'string', + description: + 'File with a JSON array of cookie values that should contain Atlas Cloud auth cookies', + }) + .option('atlas-cloud-external-default-connections-file', { + type: 'string', + description: + 'File with JSON array of connections (following ConnectionInfo schema) that are expected to be available in the Atlas project', + }) + .implies( + Object.fromEntries( + atlasCloudExternalArgs.map((arg) => { + return [arg, atlasCloudExternalArgs]; + }) + ) + ) + .epilogue( + 'All command line arguments can be also provided as env vars with `COMPASS_E2E_` prefix:\n\n COMPASS_E2E_TEST_ATLAS_CLOUD_EXTERNAL=true compass-e2e-tests web' + ) ); } -export const TEST_COMPASS_WEB = - process.argv.includes('--test-compass-web') || TEST_ATLAS_CLOUD_EXTERNAL; -export const TEST_COMPASS_DESKTOP = !TEST_COMPASS_WEB; -export const TEST_COMPASS_DESKTOP_PACKAGED_APP = process.argv.includes( - '--test-packaged-app' -); -// Skip this step if you are running tests consecutively and don't need to -// rebuild modules all the time. Also no need to ever recompile when testing -// compass-web. -export const SKIP_COMPASS_DESKTOP_COMPILE = - process.argv.includes('--no-compile') && !TEST_COMPASS_WEB; -// Skip this step if you want to run tests against your own compilation (e.g, a -// dev build or a build running in watch mode that autorecompiles). Also no need -// to recompile when testing compass-web. -export const SKIP_NATIVE_MODULE_REBUILD = - process.argv.includes('--no-native-modules') && !TEST_COMPASS_WEB; -export const DISABLE_START_STOP = process.argv.includes('--disable-start-stop'); -export const MOCHA_BAIL = process.argv.includes('--bail'); - -export const COMPASS_WEB_BROWSER_NAME = - process.env.COMPASS_WEB_BROWSER_NAME ?? 'chrome'; -// https://webdriver.io/docs/driverbinaries/ -// -// If you leave out browserVersion it will try and find the browser binary on -// your system. If you specify it it will download that version. The main -// limitation then is that 'latest' is the only 'semantic' version that is -// supported for Firefox. -// https://github.com/puppeteer/puppeteer/blob/ab5d4ac60200d1cea5bcd4910f9ccb323128e79a/packages/browsers/src/browser-data/browser-data.ts#L66 -// -// Alternatively we can download it ourselves and specify the path to the binary -// or we can even start and stop chromedriver/geckodriver manually. -// -// NOTE: The version of chromedriver or geckodriver in play might also be -// relevant. -export const COMPASS_WEB_BROWSER_VERSION = - process.env.COMPASS_WEB_BROWSER_VERSION === 'unset' - ? undefined - : process.env.BROWSER_VERSION ?? 'latest'; -export const COMPASS_WEB_SANDBOX_URL = 'http://localhost:7777'; - -const MONGODB_TESTSERVER_VERSION = +const argv = yargs(hideBin(process.argv)) + .scriptName('compass-e2e-tests') + .env('COMPASS_E2E') + .detectLocale(false) + .version(false) + .strict(); + +const parsedArgs = buildCommonArgs(argv) + .command( + ['$0', 'desktop'], + 'Run e2e tests against Compass desktop', + buildDesktopArgs, + () => { + testEnv = 'desktop'; + } + ) + .command('web', 'Run e2e tests against Compass web', buildWebArgs, () => { + testEnv = 'web'; + }) + .parse(); + +type BuilderCallbackParsedArgs Argv> = + ReturnType['parseSync']>; + +type CommonParsedArgs = BuilderCallbackParsedArgs; + +type DesktopParsedArgs = CommonParsedArgs & + BuilderCallbackParsedArgs; + +type WebParsedArgs = CommonParsedArgs & + BuilderCallbackParsedArgs; + +if (!testEnv) { + throw new Error('Test env was not selected'); +} + +if ('then' in parsedArgs && typeof parsedArgs.then === 'function') { + throw new Error('Async args parser is not allowed'); +} + +export const context = parsedArgs as CommonParsedArgs & + Partial; + +export function isTestingDesktop(ctx = context): ctx is DesktopParsedArgs { + return testEnv === 'desktop'; +} + +export function assertTestingDesktop( + ctx = context +): asserts ctx is DesktopParsedArgs { + if (!isTestingDesktop(ctx)) { + throw new Error( + `Expected tested runtime to be desktop, but got ${String(testEnv)}` + ); + } +} + +export function isTestingWeb(ctx = context): ctx is WebParsedArgs { + return testEnv === 'web'; +} + +export function assertTestingWeb(ctx = context): asserts ctx is WebParsedArgs { + if (!isTestingWeb(ctx)) { + throw new Error( + `Expected tested runtime to be web, but got ${String(testEnv)}` + ); + } +} + +export function isTestingAtlasCloudExternal( + ctx = context +): ctx is WebParsedArgs & { + [K in + | 'testAtlasCloudExternal' + | 'atlasCloudExternalUrl' + | 'atlasCloudExternalProjectId' + | 'atlasCloudExternalCookiesFile' + | 'atlasCloudExternalDefaultConnectionsFile']: NonNullable< + WebParsedArgs[K] + >; +} { + return isTestingWeb(ctx) && !!ctx.testAtlasCloudExternal; +} + +debug('Running tests with the following arguments:', context); + +process.env.HADRON_DISTRIBUTION ??= context.hadronDistribution; + +const testServerVersion = process.env.MONGODB_VERSION ?? process.env.MONGODB_RUNNER_VERSION; export const DEFAULT_CONNECTIONS: (ConnectionInfo & { testServer?: Partial; -})[] = - TEST_ATLAS_CLOUD_EXTERNAL && TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS - ? TEST_ATLAS_CLOUD_EXTERNAL_DEFAULT_CONNECTIONS - : [ - { - id: 'test-connection-1', - connectionOptions: { - connectionString: 'mongodb://127.0.0.1:27091/test', - }, - testServer: { - version: MONGODB_TESTSERVER_VERSION, - topology: 'replset', - secondaries: 0, - args: ['--port', '27091'], - }, +})[] = isTestingAtlasCloudExternal(context) + ? JSON.parse( + fs.readFileSync(context.atlasCloudExternalDefaultConnectionsFile, 'utf-8') + ) + : [ + { + id: 'test-connection-1', + connectionOptions: { + connectionString: 'mongodb://127.0.0.1:27091/test', }, - { - id: 'test-connection-2', - connectionOptions: { - connectionString: 'mongodb://127.0.0.1:27092/test', - }, - favorite: { - name: 'connection-2', - color: 'Iris', - }, - testServer: { - version: MONGODB_TESTSERVER_VERSION, - topology: 'replset', - secondaries: 0, - args: ['--port', '27092'], - }, + testServer: { + version: testServerVersion, + topology: 'replset', + secondaries: 0, + args: ['--port', '27091'], }, - ]; + }, + { + id: 'test-connection-2', + connectionOptions: { + connectionString: 'mongodb://127.0.0.1:27092/test', + }, + favorite: { + name: 'connection-2', + color: 'Iris', + }, + testServer: { + version: testServerVersion, + topology: 'replset', + secondaries: 0, + args: ['--port', '27092'], + }, + }, + ]; export const DEFAULT_CONNECTION_STRINGS = DEFAULT_CONNECTIONS.map((info) => { return info.connectionOptions.connectionString; @@ -154,40 +322,3 @@ export const DEFAULT_CONNECTIONS_SERVER_INFO: { version: string; enterprise: boolean; }[] = []; - -export const E2E_WORKSPACE_PATH = path.dirname( - require.resolve('compass-e2e-tests/package.json') -); -// /packages/compass-e2e-tests -// /packages -// -export const MONOREPO_ROOT_PATH = path.resolve(E2E_WORKSPACE_PATH, '..', '..'); -export const COMPASS_DESKTOP_PATH = path.dirname( - require.resolve('mongodb-compass/package.json') -); -export const COMPASS_WEB_PATH = path.dirname( - require.resolve('@mongodb-js/compass-web/package.json') -); -export const LOG_PATH = path.resolve(E2E_WORKSPACE_PATH, '.log'); -export const LOG_OUTPUT_PATH = path.join(LOG_PATH, 'output'); -export const LOG_SCREENSHOTS_PATH = path.join(LOG_PATH, 'screenshots'); -export const LOG_COVERAGE_PATH = path.join(LOG_PATH, 'coverage'); -// Set coverage to the root of the monorepo so it will be generated for -// everything and not just packages/compass -export const COVERAGE_PATH = (process.env.COVERAGE = MONOREPO_ROOT_PATH); - -export const ELECTRON_PATH = electronPath; -export const ELECTRON_VERSION = electronPackageJson.version; -export const ELECTRON_CHROMIUM_VERSION = electronToChromium(ELECTRON_VERSION); - -export const WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT = process.env - .COMPASS_TEST_DEFAULT_WAITFOR_TIMEOUT - ? Number(process.env.COMPASS_TEST_DEFAULT_WAITFOR_TIMEOUT) - : 120_000; // default is 3000ms -export const WEBDRIVER_DEFAULT_WAITFOR_INTERVAL = process.env - .COMPASS_TEST_DEFAULT_WAITFOR_INTERVAL - ? Number(process.env.COMPASS_TEST_DEFAULT_WAITFOR_INTERVAL) - : 100; // default is 500ms -// Kinda arbitrary, but longer than WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT so the -// test can fail before Mocha times out -export const MOCHA_DEFAULT_TIMEOUT = WEBDRIVER_DEFAULT_WAITFOR_TIMEOUT * 2; diff --git a/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts b/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts index 8fd8e030921..538bf555fb0 100644 --- a/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts +++ b/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts @@ -1,19 +1,14 @@ import gunzip from './gunzip'; import fs from 'fs'; import { - COMPASS_WEB_SANDBOX_URL, + context, DEFAULT_CONNECTIONS, DEFAULT_CONNECTIONS_SERVER_INFO, - DISABLE_START_STOP, - E2E_WORKSPACE_PATH, - LOG_PATH, - SKIP_COMPASS_DESKTOP_COMPILE, - SKIP_NATIVE_MODULE_REBUILD, - TEST_ATLAS_CLOUD_EXTERNAL, - TEST_COMPASS_DESKTOP, - TEST_COMPASS_DESKTOP_PACKAGED_APP, - TEST_COMPASS_WEB, + isTestingAtlasCloudExternal, + isTestingDesktop, + isTestingWeb, } from './test-runner-context'; +import { E2E_WORKSPACE_PATH, LOG_PATH } from './test-runner-paths'; import Debug from 'debug'; import { startTestServer } from '@mongodb-js/compass-test-server'; import crossSpawn from 'cross-spawn'; @@ -76,7 +71,7 @@ export async function mochaGlobalSetup(this: Mocha.Runner) { debug('X DISPLAY', process.env.DISPLAY); - if (!DISABLE_START_STOP) { + if (!context.disableStartStop) { for (const connectionInfo of DEFAULT_CONNECTIONS) { if (connectionInfo.testServer) { debug( @@ -95,7 +90,7 @@ export async function mochaGlobalSetup(this: Mocha.Runner) { throwIfAborted(); } - if (TEST_COMPASS_WEB && !TEST_ATLAS_CLOUD_EXTERNAL) { + if (isTestingWeb(context) && !isTestingAtlasCloudExternal(context)) { debug('Starting Compass Web server ...'); const compassWeb = spawnCompassWeb(); cleanupFns.push(() => { @@ -106,7 +101,7 @@ export async function mochaGlobalSetup(this: Mocha.Runner) { debug('No pid for compass-web'); } }); - await waitForCompassWebToBeReady(); + await waitForCompassWebToBeReady(context.sandboxUrl); } } @@ -124,19 +119,19 @@ export async function mochaGlobalSetup(this: Mocha.Runner) { fs.mkdirSync(LOG_PATH, { recursive: true }); - if (TEST_COMPASS_DESKTOP) { - if (TEST_COMPASS_DESKTOP_PACKAGED_APP) { + if (isTestingDesktop(context)) { + if (context.testPackagedApp) { debug('Building Compass before running the tests ...'); await buildCompass(); } else { debug('Preparing Compass before running the tests'); - if (!SKIP_NATIVE_MODULE_REBUILD) { + if (context.nativeModules) { debug('Rebuilding native modules ...'); await rebuildNativeModules(); } - if (!SKIP_COMPASS_DESKTOP_COMPILE) { + if (context.compile) { debug('Compiling Compass assets ...'); await compileCompassAssets(); } @@ -183,7 +178,7 @@ function spawnCompassWeb() { return proc; } -async function waitForCompassWebToBeReady() { +async function waitForCompassWebToBeReady(sandboxUrl: string) { let serverReady = false; const start = Date.now(); while (!serverReady) { @@ -194,7 +189,7 @@ async function waitForCompassWebToBeReady() { ); } try { - const res = await fetch(COMPASS_WEB_SANDBOX_URL); + const res = await fetch(sandboxUrl); serverReady = res.ok; debug('Web server ready:', serverReady); } catch (err) { diff --git a/packages/compass-e2e-tests/helpers/test-runner-paths.ts b/packages/compass-e2e-tests/helpers/test-runner-paths.ts new file mode 100644 index 00000000000..19b835abe7b --- /dev/null +++ b/packages/compass-e2e-tests/helpers/test-runner-paths.ts @@ -0,0 +1,36 @@ +import path from 'path'; +import electronPath from 'electron'; +import electronPackageJson from 'electron/package.json'; +// @ts-expect-error no types for this package +import { electronToChromium } from 'electron-to-chromium'; + +if (typeof electronPath !== 'string') { + throw new Error( + 'Running e2e tests in an unsupported runtime: `electronPath` is not a string' + ); +} + +export const E2E_WORKSPACE_PATH = path.dirname( + require.resolve('compass-e2e-tests/package.json') +); +// /packages/compass-e2e-tests +// /packages +// +export const MONOREPO_ROOT_PATH = path.resolve(E2E_WORKSPACE_PATH, '..', '..'); +export const COMPASS_DESKTOP_PATH = path.dirname( + require.resolve('mongodb-compass/package.json') +); +export const COMPASS_WEB_PATH = path.dirname( + require.resolve('@mongodb-js/compass-web/package.json') +); +export const LOG_PATH = path.resolve(E2E_WORKSPACE_PATH, '.log'); +export const LOG_OUTPUT_PATH = path.join(LOG_PATH, 'output'); +export const LOG_SCREENSHOTS_PATH = path.join(LOG_PATH, 'screenshots'); +export const LOG_COVERAGE_PATH = path.join(LOG_PATH, 'coverage'); +// Set coverage to the root of the monorepo so it will be generated for +// everything and not just packages/compass +export const COVERAGE_PATH = (process.env.COVERAGE = MONOREPO_ROOT_PATH); + +export const ELECTRON_PATH = electronPath; +export const ELECTRON_VERSION = electronPackageJson.version; +export const ELECTRON_CHROMIUM_VERSION = electronToChromium(ELECTRON_VERSION); diff --git a/packages/compass-e2e-tests/index.ts b/packages/compass-e2e-tests/index.ts index 7efbb9710b8..86a31aec1a1 100644 --- a/packages/compass-e2e-tests/index.ts +++ b/packages/compass-e2e-tests/index.ts @@ -2,14 +2,9 @@ import path from 'path'; import { glob } from 'glob'; import crossSpawn from 'cross-spawn'; - import Mocha from 'mocha'; import Debug from 'debug'; -import { - ALLOWED_RUNNER_ARGS, - MOCHA_BAIL, - MOCHA_DEFAULT_TIMEOUT, -} from './helpers/test-runner-context'; +import { context } from './helpers/test-runner-context'; import { abortRunner, mochaGlobalSetup, @@ -21,16 +16,6 @@ import logRunning from 'why-is-node-running'; const debug = Debug('compass-e2e-tests'); -for (const arg of process.argv) { - if (arg.startsWith('--') && !ALLOWED_RUNNER_ARGS.includes(arg)) { - throw Error( - `Unknown command argument "${arg}". Usage:\n\n npm run test ${ALLOWED_RUNNER_ARGS.map( - (arg) => `[${arg}]` - ).join(' ')}\n` - ); - } -} - const FIRST_TEST = 'tests/time-to-first-query.test.ts'; // Trigger a mocha abort on interrupt. This doesn't stop the test runner @@ -65,9 +50,9 @@ function terminateOnTimeout() { let runnerPromise: Promise | undefined; async function main() { - const e2eTestGroupsAmount = parseInt(process.env.E2E_TEST_GROUPS || '1'); - const e2eTestGroup = parseInt(process.env.E2E_TEST_GROUP || '1'); - const e2eTestFilter = process.env.E2E_TEST_FILTER || '*'; + const e2eTestGroupsAmount = context.testGroups; + const e2eTestGroup = context.testGroup; + const e2eTestFilter = context.testFilter; const tests = ( await glob(`tests/**/${e2eTestFilter}.{test,spec}.ts`, { @@ -99,9 +84,13 @@ async function main() { debug('Test files:', tests); + if (tests.length === 0) { + throw new Error('No tests to run'); + } + const mocha = new Mocha({ - timeout: MOCHA_DEFAULT_TIMEOUT, - bail: MOCHA_BAIL, + timeout: context.mochaTimeout, + bail: context.mochaBail, reporter: require.resolve('@mongodb-js/mocha-config-compass/reporter'), }); diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 555dcc7d950..8cf111bbc2b 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -5,9 +5,10 @@ "description": "E2E test suite for Compass app that follows smoke tests / feature testing matrix", "scripts": { "clean": "node -e \"try { fs.rmdirSync('.mongodb', { recursive: true }); } catch (e) {}\" && node -e \"try { fs.rmdirSync('.log', { recursive: true }); } catch (e) {}\"", + "typecheck": "tsc -p tsconfig-lint.json --noEmit", "eslint": "eslint", "prettier": "prettier", - "lint": "npm run eslint . && npm run prettier -- --check .", + "lint": "npm run typecheck && npm run eslint . && npm run prettier -- --check .", "depcheck": "depcheck", "check": "npm run lint && npm run depcheck", "test": "xvfb-maybe --auto-servernum --server-args=\"-screen 0 1432x840x24\" -- ts-node index.ts", @@ -24,8 +25,8 @@ "stop-servers": "npm run stop-server-1 && npm run stop-server-2", "test-noserver": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --disable-start-stop --bail", "test-noserver-nocompile": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --no-native-modules --no-compile --disable-start-stop --bail", - "test-web": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --test-compass-web", - "test-web-noserver": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test -- --test-compass-web --disable-start-stop --bail", + "test-web": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test web", + "test-web-noserver": "env DEBUG=hadron*,mongo*,compass*,xvfb-maybe* npm run test web -- --disable-start-stop --bail", "coverage-merge": "nyc merge .log/coverage .nyc_output/coverage.json", "coverage-report": "npm run coverage-merge && nyc report" }, @@ -40,6 +41,7 @@ "@types/chai-as-promised": "^7.1.4", "@types/cross-spawn": "^6.0.2", "@types/puppeteer": "^5.4.4", + "@types/yargs": "^17.0.33", "@wdio/types": "^8.32.2", "bson": "^6.8.0", "chai": "^4.3.4", @@ -72,6 +74,7 @@ "ts-node": "^10.9.1", "webdriverio": "^8.40.0", "why-is-node-running": "^2.3.0", - "xvfb-maybe": "^0.2.1" + "xvfb-maybe": "^0.2.1", + "yargs": "^17.7.2" } } diff --git a/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts b/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts index e1a1934a635..eb93e94a822 100644 --- a/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts +++ b/packages/compass-e2e-tests/tests/collection-bulk-delete.test.ts @@ -11,6 +11,7 @@ import { import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; +import { context } from '../helpers/test-runner-context'; describe('Bulk Delete', function () { let compass: Compass; @@ -157,7 +158,7 @@ describe('Bulk Delete', function () { }); it('can export a delete query', async function () { - if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE === 'true') { + if (context.disableClipboardUsage) { this.skip(); } diff --git a/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts b/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts index b590acb7a0d..d662acc2afc 100644 --- a/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts +++ b/packages/compass-e2e-tests/tests/collection-documents-tab.test.ts @@ -17,6 +17,7 @@ import { createNestedDocumentsCollection, createNumbersCollection, } from '../helpers/insert-data'; +import { context } from '../helpers/test-runner-context'; const { expect } = chai; @@ -559,7 +560,7 @@ FindIterable result = collection.find(filter);`); }); it('can copy a document from the contextual toolbar', async function () { - if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE === 'true') { + if (context.disableClipboardUsage) { this.skip(); } diff --git a/packages/compass-e2e-tests/tests/connection-form.test.ts b/packages/compass-e2e-tests/tests/connection-form.test.ts index afd961b8be6..111c074f761 100644 --- a/packages/compass-e2e-tests/tests/connection-form.test.ts +++ b/packages/compass-e2e-tests/tests/connection-form.test.ts @@ -12,6 +12,7 @@ import { import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import type { ConnectFormState } from '../helpers/connect-form-state'; +import { context } from '../helpers/test-runner-context'; const DEFAULT_FLE_ENCRYPTED_FIELDS_MAP = "{\n/**\n * // Client-side encrypted fields map configuration:\n * 'database.collection': {\n * fields: [\n * {\n * keyId: UUID(\"...\"),\n * path: '...',\n * bsonType: '...',\n * queries: [{ queryType: 'equality' }]\n * }\n * ]\n * }\n */\n}\n"; @@ -618,7 +619,7 @@ describe('Connection form', function () { // save await browser.saveFavorite(favoriteName, 'Green'); - if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE !== 'true') { + if (!context.disableClipboardUsage) { // copy the connection string await browser.selectConnectionMenuItem( favoriteName, diff --git a/packages/compass-e2e-tests/tests/connection.test.ts b/packages/compass-e2e-tests/tests/connection.test.ts index 36b7fdc725b..5a431454de3 100644 --- a/packages/compass-e2e-tests/tests/connection.test.ts +++ b/packages/compass-e2e-tests/tests/connection.test.ts @@ -15,7 +15,7 @@ import { TEST_COMPASS_WEB, connectionNameFromString, DEFAULT_CONNECTION_NAME_1, - MONGODB_TEST_SERVER_PORT, + DEFAULT_CONNECTION_STRING_1, } from '../helpers/compass'; import type { Compass } from '../helpers/compass'; import type { ConnectFormState } from '../helpers/connect-form-state'; @@ -317,11 +317,11 @@ describe('Connection string', function () { }); it('fails for authentication errors', async function () { + const [protocol, url] = DEFAULT_CONNECTION_STRING_1.split('://'); // connect - await browser.connectWithConnectionString( - `mongodb://a:b@127.0.0.1:${MONGODB_TEST_SERVER_PORT}/test`, - { connectionStatus: 'failure' } - ); + await browser.connectWithConnectionString(`${protocol}://a:b@${url}`, { + connectionStatus: 'failure', + }); // check the error const toastTitle = await browser.$(Selectors.LGToastTitle).getText(); diff --git a/packages/compass-e2e-tests/tests/my-queries-tab.test.ts b/packages/compass-e2e-tests/tests/my-queries-tab.test.ts index 891577ab9ae..58d833dfdf1 100644 --- a/packages/compass-e2e-tests/tests/my-queries-tab.test.ts +++ b/packages/compass-e2e-tests/tests/my-queries-tab.test.ts @@ -15,8 +15,8 @@ import type { QueryOptions } from '../helpers/commands'; import type { Compass } from '../helpers/compass'; import * as Selectors from '../helpers/selectors'; import { createNumbersCollection } from '../helpers/insert-data'; - import { MongoClient } from 'mongodb'; +import { context as runnerContext } from '../helpers/test-runner-context'; async function openMenuForQueryItem( browser: CompassBrowser, @@ -221,7 +221,7 @@ describe('My Queries tab', function () { // copy to clipboard await browser.clickVisible(Selectors.SavedItemMenuItemCopy); - if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE !== 'true') { + if (!runnerContext.disableClipboardUsage) { await browser.waitUntil( async () => { const text = (await clipboard.read()) @@ -368,7 +368,7 @@ describe('My Queries tab', function () { // copy to clipboard await browser.clickVisible(Selectors.SavedItemMenuItemCopy); - if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE !== 'true') { + if (!runnerContext.disableClipboardUsage) { await browser.waitUntil( async () => { const text = (await clipboard.read()) diff --git a/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts b/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts index 111a57fb19a..c20ebc3476f 100644 --- a/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts +++ b/packages/compass-e2e-tests/tests/protect-connection-strings.test.ts @@ -10,6 +10,7 @@ import clipboard from 'clipboardy'; import { expect } from 'chai'; import * as Selectors from '../helpers/selectors'; import type { ConnectFormState } from '../helpers/connect-form-state'; +import { context } from '../helpers/test-runner-context'; async function expectCopyConnectionStringToClipboard( browser: CompassBrowser, @@ -17,7 +18,7 @@ async function expectCopyConnectionStringToClipboard( expected: string ): Promise { const Sidebar = Selectors.Multiple; - if (process.env.COMPASS_E2E_DISABLE_CLIPBOARD_USAGE !== 'true') { + if (!context.disableClipboardUsage) { await browser.selectConnectionMenuItem( favoriteName, Sidebar.CopyConnectionStringItem From fa94752ecc5adde710d6d9a432406cf7014f4a60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 12:44:14 +0000 Subject: [PATCH 51/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6407) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index c592d7a3e34..d77d36f64c7 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 28, 2024 at 12:24 PM +Generated on Mon, Oct 28, 2024 at 12:44 PM ## Table of Contents From fb5e60815c1ffd7107fb12faa7c1301d69699085 Mon Sep 17 00:00:00 2001 From: Anna Henningsen Date: Mon, 28 Oct 2024 19:40:15 +0100 Subject: [PATCH 52/71] fix(deps): bump electron to 32.2.1 COMPASS-8399 (#6387) Also does the compass-specific bits of COMPASS-8253. Fixes: https://github.com/mongodb-js/compass/pull/6122 Fixes: https://github.com/mongodb-js/compass/pull/6334 Co-authored-by: Sergey Petushkov --- .evergreen/buildvariants-and-tasks.in.yml | 6 +- .evergreen/buildvariants-and-tasks.yml | 2 +- .evergreen/print-compass-env.js | 10 +- configs/webpack-config-compass/package.json | 4 +- package-lock.json | 3138 ++++------------- packages/atlas-service/package.json | 2 +- .../src/components/file-input.spec.tsx | 109 +- .../src/components/file-input.tsx | 35 +- packages/compass-components/src/index.ts | 2 + packages/compass-crud/package.json | 2 +- packages/compass-e2e-tests/package.json | 2 +- packages/compass-editor/src/editor.tsx | 5 + packages/compass-explain-plan/package.json | 2 +- packages/compass-find-in-page/package.json | 2 +- packages/compass-import-export/package.json | 2 +- .../src/components/export-modal.tsx | 2 +- packages/compass-indexes/package.json | 2 +- packages/compass-query-bar/package.json | 2 +- .../compass-schema-validation/package.json | 2 +- packages/compass-shell/package.json | 2 +- packages/compass-utils/package.json | 2 +- packages/compass-web/package.json | 2 +- .../src/stores/workspaces.spec.ts | 2 +- packages/compass/package.json | 2 +- packages/compass/src/app/index.tsx | 6 +- .../csfle-tab/csfle-tab.spec.tsx | 34 +- .../ssh-tunnel-identity.spec.tsx | 16 +- .../tls-ssl-tab/tls-ssl-tab.spec.tsx | 14 +- packages/connection-storage/package.json | 2 +- packages/hadron-build/lib/target.js | 7 +- packages/hadron-build/package.json | 6 +- packages/hadron-ipc/package.json | 2 +- scripts/package.json | 2 +- 33 files changed, 969 insertions(+), 2461 deletions(-) diff --git a/.evergreen/buildvariants-and-tasks.in.yml b/.evergreen/buildvariants-and-tasks.in.yml index a0ae901cefd..4a421254a0b 100644 --- a/.evergreen/buildvariants-and-tasks.in.yml +++ b/.evergreen/buildvariants-and-tasks.in.yml @@ -28,10 +28,10 @@ const PACKAGE_BUILD_VARIANTS = [ name: 'package-ubuntu', display_name: 'Package Ubuntu', - // # NOTE: We are packaging on Ubuntu 16.04 in order to use glibc 2.23 + // # NOTE: We are packaging on Ubuntu 18.04 in order to use glibc 2.27 // # when compiling/re-building addons. This ensures compatibility with other - // # debian platforms that have glibc 2.23 or newer. - run_on: 'ubuntu1604-large', + // # debian platforms that have glibc 2.27 or newer. + run_on: 'ubuntu1804-large', silk_asset_group: 'compass-ubuntu', }, { diff --git a/.evergreen/buildvariants-and-tasks.yml b/.evergreen/buildvariants-and-tasks.yml index 12e0c34f457..a81034c3551 100644 --- a/.evergreen/buildvariants-and-tasks.yml +++ b/.evergreen/buildvariants-and-tasks.yml @@ -35,7 +35,7 @@ buildvariants: expansions: silk_asset_group: compass-ubuntu display_name: Package Ubuntu - run_on: ubuntu1604-large + run_on: ubuntu1804-large tasks: - name: package-compass - name: package-compass-isolated diff --git a/.evergreen/print-compass-env.js b/.evergreen/print-compass-env.js index b9efa68f58f..1497e9e642c 100755 --- a/.evergreen/print-compass-env.js +++ b/.evergreen/print-compass-env.js @@ -71,7 +71,7 @@ function printCompassEnv() { // To build node modules on linux post electron 13 we need a newer c++ // compiler version and at least python v3.9, this adds it. // https://jira.mongodb.org/browse/COMPASS-5150 - pathsToPrepend.unshift('/opt/mongodbtoolchain/v3/bin'); + pathsToPrepend.unshift('/opt/mongodbtoolchain/v4/bin'); } PATH = maybePrependPaths(PATH, pathsToPrepend); @@ -111,12 +111,8 @@ function printCompassEnv() { process.env.EVERGREEN_REVISION_ORDER_ID ); - if (process.platform === 'darwin') { - // Without this, kerberos 2.1.1 is broken on macOS, but this flag is only - // really relevant for Linux. - // https://jira.mongodb.org/browse/NODE-6320 - printVar('GYP_DEFINES', 'kerberos_use_rtld=false'); - } + // https://jira.mongodb.org/browse/NODE-6320 + printVar('GYP_DEFINES', `kerberos_use_rtld=${process.platform === 'linux'}`); } printCompassEnv(); diff --git a/configs/webpack-config-compass/package.json b/configs/webpack-config-compass/package.json index 43ab0dcffa1..4dbf25fd636 100644 --- a/configs/webpack-config-compass/package.json +++ b/configs/webpack-config-compass/package.json @@ -68,12 +68,12 @@ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "babel-loader": "^8.2.5", "babel-plugin-istanbul": "^5.2.0", - "browserslist": "^4.24.0", + "browserslist": "^4.24.2", "chalk": "^4.1.2", "cli-progress": "^3.9.1", "core-js": "^3.17.3", "css-loader": "^4.3.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "html-webpack-plugin": "^5.6.0", "less": "^3.13.1", "less-loader": "^10.0.1", diff --git a/package-lock.json b/package-lock.json index 3e979124e1b..d6eb2b175fa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -511,12 +511,12 @@ "@pmmmwh/react-refresh-webpack-plugin": "^0.5.15", "babel-loader": "^8.2.5", "babel-plugin-istanbul": "^5.2.0", - "browserslist": "^4.24.0", + "browserslist": "^4.24.2", "chalk": "^4.1.2", "cli-progress": "^3.9.1", "core-js": "^3.17.3", "css-loader": "^4.3.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "html-webpack-plugin": "^5.6.0", "less": "^3.13.1", "less-loader": "^10.0.1", @@ -4252,7 +4252,7 @@ "node_modules/@electron/node-gyp": { "version": "10.2.0-electron.1", "resolved": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", - "integrity": "sha512-CrYo6TntjpoMO1SHjl5Pa/JoUsECNqNdB7Kx49WLQpWzPw53eEITJ2Hs9fh/ryUYDn4pxZz11StaBYBrLFJdqg==", + "integrity": "sha512-lBSgDMQqt7QWMuIjS8zNAq5FI5o5RVBAcJUGWGI6GgoQITJt3msAkUrHp8YHj3RTVE+h70ndqMGqURjp3IfRyQ==", "license": "MIT", "dependencies": { "env-paths": "^2.2.0", @@ -4273,41 +4273,6 @@ "node": ">=12.13.0" } }, - "node_modules/@electron/node-gyp/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@electron/node-gyp/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@electron/node-gyp/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/@electron/node-gyp/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -4317,35 +4282,6 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@electron/node-gyp/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@electron/node-gyp/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -4366,69 +4302,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@electron/node-gyp/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@electron/node-gyp/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@electron/node-gyp/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/@electron/node-gyp/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@electron/node-gyp/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -4441,23 +4314,6 @@ "node": ">=10" } }, - "node_modules/@electron/node-gyp/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "node_modules/@electron/node-gyp/node_modules/proc-log": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", @@ -4467,56 +4323,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/@electron/node-gyp/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@electron/node-gyp/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@electron/node-gyp/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "license": "ISC", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@electron/node-gyp/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@electron/rebuild": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.7.0.tgz", @@ -4720,6 +4526,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", "integrity": "sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==", + "license": "MIT", "peerDependencies": { "electron": ">= 13.0.0" } @@ -4982,7 +4789,8 @@ "node_modules/@gar/promisify": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==" + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "license": "MIT" }, "node_modules/@hapi/hoek": { "version": "9.2.0", @@ -9146,19 +8954,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/arborist/node_modules/@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -9221,26 +9016,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/arborist/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/@npmcli/arborist/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -9389,32 +9164,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@npmcli/arborist/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@npmcli/arborist/node_modules/ignore-walk": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", @@ -9442,145 +9191,6 @@ "node": ">=12" } }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/arborist/node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/arborist/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -9600,33 +9210,6 @@ "node": ">=8" } }, - "node_modules/@npmcli/arborist/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/@npmcli/arborist/node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@npmcli/arborist/node_modules/node-gyp": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", @@ -9882,19 +9465,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/@npmcli/arborist/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/@npmcli/arborist/node_modules/ssri": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", @@ -9951,9 +9521,10 @@ } }, "node_modules/@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", + "license": "ISC", "dependencies": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" @@ -10138,19 +9709,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/metavuln-calculator/node_modules/@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -10185,26 +9743,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/@npmcli/metavuln-calculator/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -10322,32 +9860,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/@npmcli/metavuln-calculator/node_modules/ignore-walk": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", @@ -10375,127 +9887,6 @@ "node": ">=12" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "dependencies": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dependencies": { - "unique-slug": "^3.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "node_modules/@npmcli/metavuln-calculator/node_modules/minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -10515,33 +9906,6 @@ "node": ">=8" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/@npmcli/metavuln-calculator/node_modules/minipass-fetch/node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@npmcli/metavuln-calculator/node_modules/node-gyp": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", @@ -10743,19 +10107,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/metavuln-calculator/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, "node_modules/@npmcli/metavuln-calculator/node_modules/ssri": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", @@ -13226,6 +12577,16 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@types/appdmg": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/appdmg/-/appdmg-0.5.5.tgz", + "integrity": "sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -17144,9 +16505,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -17161,11 +16522,12 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -17480,9 +16842,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001663", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", - "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==", + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "funding": [ { "type": "opencollective", @@ -17496,7 +16858,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/caseless": { "version": "0.12.0", @@ -18705,7 +18068,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -20803,10 +20165,11 @@ } }, "node_modules/electron": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-30.5.1.tgz", - "integrity": "sha512-AhL7+mZ8Lg14iaNfoYTkXQ2qee8mmsQyllKdqxlpv/zrKgfxz6jNVtcRRbQtLxtF8yzcImWdfTQROpYiPumdbw==", + "version": "32.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.1.tgz", + "integrity": "sha512-GCPI/5hU34pPcNltNpz+uylhhuTm9BM0N8RmrbVgaWBodLSmmcCkvpgN0BseKhO6IwQOPzWaovrcZ/nPIpfGaQ==", "hasInstallScript": true, + "license": "MIT", "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^20.9.0", @@ -20903,25 +20266,6 @@ "node": ">= 10.0.0" } }, - "node_modules/electron-installer-dmg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-4.0.0.tgz", - "integrity": "sha512-g3W6XnyUa7QGrAF7ViewHdt6bXV2KYU1Pm1CY3pZpp+H6mOjCHHAhf/iZAxtaX1ERCb+SQHz7xSsAHuNH9I8ZQ==", - "optional": true, - "dependencies": { - "debug": "^4.3.2", - "minimist": "^1.1.1" - }, - "bin": { - "electron-installer-dmg": "bin/electron-installer-dmg.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "optionalDependencies": { - "appdmg": "^0.6.4" - } - }, "node_modules/electron-mocha": { "version": "12.2.0", "resolved": "https://registry.npmjs.org/electron-mocha/-/electron-mocha-12.2.0.tgz", @@ -21179,9 +20523,10 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", - "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==" + "version": "1.5.42", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.42.tgz", + "integrity": "sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==", + "license": "ISC" }, "node_modules/electron-window": { "version": "0.8.1", @@ -21245,6 +20590,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "license": "MIT", "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -21265,6 +20611,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -21276,6 +20623,7 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "license": "MIT", "engines": { "node": ">=10.6.0" } @@ -21284,6 +20632,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -21298,6 +20647,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -21311,6 +20661,7 @@ "version": "11.8.6", "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -21335,6 +20686,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -21343,6 +20695,7 @@ "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==", + "license": "MIT", "engines": { "node": ">=10" }, @@ -21354,6 +20707,7 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -21362,6 +20716,7 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -21854,9 +21209,10 @@ } }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -27850,11 +27206,12 @@ "dev": true }, "node_modules/kerberos": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", - "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.1.1.tgz", + "integrity": "sha512-414s1G/qgK2T60cXnZsHbtRj8Ynjg0DBlQWeY99tkyqQ2e8vGgFHvxRdvjTlLHg/SxBA0zLQcGE6Pk6Dfq/BCA==", "hasInstallScript": true, "license": "Apache-2.0", + "optional": true, "dependencies": { "bindings": "^1.5.0", "node-addon-api": "^6.1.0", @@ -27867,7 +27224,8 @@ "node_modules/kerberos/node_modules/node-addon-api": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "optional": true }, "node_modules/key-tree-store": { "version": "1.3.0", @@ -30603,267 +29961,238 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", - "dev": true, + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", - "proc-log": "^4.2.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/make-fetch-happen/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, - "license": "ISC", + "node_modules/make-fetch-happen/node_modules/@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/make-fetch-happen/node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/make-fetch-happen/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" } }, "node_modules/make-fetch-happen/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "ssri": "^10.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "unique-filename": "^2.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/make-fetch-happen/node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, + "node_modules/make-fetch-happen/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" }, "engines": { - "node": ">=14" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-fetch-happen/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", + "node_modules/make-fetch-happen/node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/make-fetch-happen/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" + "node": ">= 6" } }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/make-fetch-happen/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", + "node_modules/make-fetch-happen/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "agent-base": "6", + "debug": "4" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">= 6" } }, - "node_modules/make-fetch-happen/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, + "node_modules/make-fetch-happen/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=12" } }, - "node_modules/make-fetch-happen/node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, + "node_modules/make-fetch-happen/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=10" } }, "node_modules/make-fetch-happen/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "license": "MIT", "dependencies": { - "minipass": "^7.0.3", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, - "node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" + "node_modules/make-fetch-happen/node_modules/socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "license": "MIT", + "dependencies": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">= 10" } }, "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dev": true, + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "minipass": "^3.1.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/make-fetch-happen/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "license": "ISC", "dependencies": { - "unique-slug": "^4.0.0" + "unique-slug": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/make-fetch-happen/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/map-obj": { @@ -31733,7 +31062,6 @@ "version": "1.7.2", "resolved": "https://registry.npmjs.org/mongodb-build-info/-/mongodb-build-info-1.7.2.tgz", "integrity": "sha512-eoLFZvCIjcwijYJdxvYupj1c+55VAVm0o4gBJjrcDxxmmpm+bC4Ix9ayZbyhQdVXDZAGDi03NA0GghXjBVXnxg==", - "license": "Apache-2.0", "dependencies": { "mongodb-connection-string-url": "^3.0.0" } @@ -32460,9 +31788,10 @@ "dev": true }, "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", + "license": "MIT", "optional": true }, "node_modules/nanoid": { @@ -32585,9 +31914,10 @@ "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==" }, "node_modules/node-abi": { - "version": "3.68.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", - "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -32708,6 +32038,19 @@ "node-gyp-build-test": "build-test.js" } }, + "node_modules/node-gyp/node_modules/@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "license": "ISC", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -32728,6 +32071,30 @@ "balanced-match": "^1.0.0" } }, + "node_modules/node-gyp/node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -32745,6 +32112,19 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/node-gyp/node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -32792,6 +32172,37 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "node_modules/node-gyp/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/node-gyp/node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "license": "ISC", + "dependencies": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -32818,6 +32229,37 @@ "node": ">=16 || 14 >=14.17" } }, + "node_modules/node-gyp/node_modules/minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/node-gyp/node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "license": "MIT", + "dependencies": { + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + }, + "optionalDependencies": { + "encoding": "^0.1.13" + } + }, "node_modules/node-gyp/node_modules/nopt": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", @@ -32857,6 +32299,45 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/node-gyp/node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "license": "ISC", + "dependencies": { + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/node-gyp/node_modules/unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/node-gyp/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -41636,9 +41117,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -41653,9 +41134,10 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { "update-browserslist-db": "cli.js" @@ -43561,7 +43043,7 @@ "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", "compass-preferences-model": "^2.29.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", @@ -43742,7 +43224,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-devtools-installer": "^3.2.0", "electron-dl": "^3.5.0", "electron-mocha": "^12.2.0", @@ -44481,7 +43963,7 @@ "chai": "^4.1.2", "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -44539,9 +44021,6 @@ }, "packages/compass-e2e-tests": { "version": "1.27.3", - "bin": { - "compass-e2e-tests": "index.ts" - }, "devDependencies": { "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", @@ -44563,7 +44042,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", "glob": "^10.2.5", @@ -44638,13 +44117,6 @@ "node": ">=12" } }, - "packages/compass-e2e-tests/node_modules/electron-to-chromium": { - "version": "1.5.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", - "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", - "dev": true, - "license": "ISC" - }, "packages/compass-e2e-tests/node_modules/execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -45053,7 +44525,7 @@ "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -45250,7 +44722,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -45600,7 +45072,7 @@ "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", - "electron": "^30.5.1", + "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.4", "hadron-ipc": "^3.2.23", @@ -45720,7 +45192,7 @@ "@types/numeral": "^2.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -46132,7 +45604,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -46342,7 +45814,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -46532,7 +46004,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -46897,7 +46369,7 @@ "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", - "electron": "^30.5.1" + "electron": "^32.2.1" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -46996,7 +46468,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "dns-query": "^0.11.2", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "events": "^3.3.0", "express": "^4.21.1", @@ -47418,84 +46890,6 @@ "url": "https://opencollective.com/sinon" } }, - "packages/compass/node_modules/@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "license": "MIT", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "packages/compass/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "packages/compass/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "packages/compass/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "packages/compass/node_modules/cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "packages/compass/node_modules/debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -47513,178 +46907,26 @@ } } }, - "packages/compass/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "dev": true, - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "packages/compass/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "packages/compass/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "packages/compass/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "packages/compass/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "packages/compass/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "packages/compass/node_modules/minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "packages/compass/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "packages/compass/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "packages/compass/node_modules/unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, - "license": "ISC", + "packages/compass/node_modules/kerberos": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", + "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", + "hasInstallScript": true, + "license": "Apache-2.0", "dependencies": { - "unique-slug": "^3.0.0" + "bindings": "^1.5.0", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.2" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=12.9.0" } }, - "packages/compass/node_modules/unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } + "packages/compass/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "license": "MIT" }, "packages/connection-form": { "name": "@mongodb-js/connection-form", @@ -47891,7 +47133,7 @@ "@mongodb-js/connection-info": "^0.9.1", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "keytar": "^7.9.0", @@ -48045,6 +47287,29 @@ "eslint": ">=5" } }, + "packages/data-service/node_modules/kerberos": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", + "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "bindings": "^1.5.0", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.2" + }, + "engines": { + "node": ">=12.9.0" + } + }, + "packages/data-service/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true, + "license": "MIT" + }, "packages/data-service/node_modules/sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -48491,7 +47756,7 @@ "debug": "^4.3.4", "del": "^2.0.2", "download": "^8.0.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-packager": "^15.5.1", "electron-packager-plugin-non-proprietary-codecs-ffmpeg": "^1.0.2", "flatnest": "^1.0.0", @@ -48505,7 +47770,7 @@ "lodash": "^4.17.21", "moment": "^2.29.4", "mongodb-js-cli": "^0.0.3", - "node-abi": "^3.68.0", + "node-abi": "^3.71.0", "normalize-package-data": "^2.3.5", "parse-github-repo-url": "^1.3.0", "semver": "^7.6.2", @@ -48531,7 +47796,7 @@ }, "optionalDependencies": { "electron-installer-debian": "^3.2.0", - "electron-installer-dmg": "^4.0.0", + "electron-installer-dmg": "^5.0.1", "electron-installer-redhat": "^2.0.0", "electron-winstaller": "^5.1.0" } @@ -48663,6 +47928,27 @@ "semver": "bin/semver.js" } }, + "packages/hadron-build/node_modules/electron-installer-dmg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-5.0.1.tgz", + "integrity": "sha512-qOa1aAQdX57C+vzhDk3549dd/PRlNL4F8y736MTD1a43qptD+PvHY97Bo9gSf+OZ8iUWE7BrYSpk/FgLUe40EA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "@types/appdmg": "^0.5.5", + "debug": "^4.3.2", + "minimist": "^1.2.7" + }, + "bin": { + "electron-installer-dmg": "dist/electron-installer-dmg-bin.js" + }, + "engines": { + "node": ">= 16" + }, + "optionalDependencies": { + "appdmg": "^0.6.4" + } + }, "packages/hadron-build/node_modules/electron-installer-redhat": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/electron-installer-redhat/-/electron-installer-redhat-2.0.0.tgz", @@ -48920,6 +48206,16 @@ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" }, + "packages/hadron-build/node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "packages/hadron-build/node_modules/mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -49324,7 +48620,7 @@ "license": "SSPL", "dependencies": { "debug": "^4.3.4", - "electron": "^30.5.1", + "electron": "^32.2.1", "is-electron-renderer": "^2.0.1" }, "devDependencies": { @@ -50290,7 +49586,7 @@ "@babel/core": "^7.24.3", "@mongodb-js/monorepo-tools": "^1.1.1", "commander": "^11.0.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "jsdom": "^24.1.3", "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", @@ -50311,103 +49607,6 @@ "prettier": "^2.7.1" } }, - "scripts/node_modules/@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "scripts/node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "engines": { - "node": ">= 10" - } - }, - "scripts/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "license": "MIT", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "scripts/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "scripts/node_modules/cacache": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", - "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", - "dependencies": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "scripts/node_modules/cacache/node_modules/glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "scripts/node_modules/cacache/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, "scripts/node_modules/commander": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", @@ -50479,32 +49678,6 @@ "node": ">=18" } }, - "scripts/node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "scripts/node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "license": "MIT", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "scripts/node_modules/jsdom": { "version": "24.1.3", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz", @@ -50579,57 +49752,6 @@ "node": ">= 14" } }, - "scripts/node_modules/lru-cache": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", - "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==", - "engines": { - "node": ">=12" - } - }, - "scripts/node_modules/make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "license": "ISC", - "dependencies": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "scripts/node_modules/minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "dependencies": { - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, "scripts/node_modules/nwsapi": { "version": "2.2.12", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz", @@ -50646,30 +49768,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "scripts/node_modules/socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dependencies": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - }, - "engines": { - "node": ">= 10" - } - }, - "scripts/node_modules/ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, "scripts/node_modules/tough-cookie": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", @@ -53228,7 +52326,7 @@ }, "@electron/node-gyp": { "version": "git+ssh://git@github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", - "integrity": "sha512-CrYo6TntjpoMO1SHjl5Pa/JoUsECNqNdB7Kx49WLQpWzPw53eEITJ2Hs9fh/ryUYDn4pxZz11StaBYBrLFJdqg==", + "integrity": "sha512-lBSgDMQqt7QWMuIjS8zNAq5FI5o5RVBAcJUGWGI6GgoQITJt3msAkUrHp8YHj3RTVE+h70ndqMGqURjp3IfRyQ==", "from": "@electron/node-gyp@git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", "requires": { "env-paths": "^2.2.0", @@ -53243,28 +52341,6 @@ "which": "^2.0.2" }, "dependencies": { - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -53273,31 +52349,6 @@ "balanced-match": "^1.0.0" } }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, "glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -53310,53 +52361,6 @@ "once": "^1.3.0" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - } - }, "minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -53365,55 +52369,10 @@ "brace-expansion": "^2.0.1" } }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, "proc-log": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==" - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "requires": { - "imurmurhash": "^0.1.4" - } } } }, @@ -55974,7 +54933,7 @@ "chai": "^4.3.6", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", @@ -56630,7 +55589,7 @@ "chai-as-promised": "^7.1.1", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -56810,7 +55769,7 @@ "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -56983,7 +55942,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -57255,7 +56214,7 @@ "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -57332,7 +56291,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -57610,7 +56569,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -57823,7 +56782,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -57857,7 +56816,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "commander": "^11.0.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "jsdom": "^24.1.3", "make-fetch-happen": "^10.2.1", @@ -57869,83 +56828,6 @@ "typescript": "^5.0.4" }, "dependencies": { - "@npmcli/move-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", - "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", - "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, "commander": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", @@ -57998,25 +56880,6 @@ "whatwg-encoding": "^3.1.1" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "jsdom": { "version": "24.1.3", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-24.1.3.tgz", @@ -58073,45 +56936,6 @@ } } }, - "lru-cache": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.10.1.tgz", - "integrity": "sha512-BQuhQxPuRl79J5zSXRP+uNzPOyZw2oFI9JLRQ80XswSvg21KMKNtQza9eF42rfI/3Z40RvzBdXgziEkudzjo8A==" - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - } - }, - "minipass-fetch": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", - "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, "nwsapi": { "version": "2.2.12", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.12.tgz", @@ -58125,24 +56949,6 @@ "entities": "^4.4.0" } }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "requires": { - "minipass": "^3.1.1" - } - }, "tough-cookie": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz", @@ -58323,7 +57129,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -58657,7 +57463,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", @@ -58740,7 +57546,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "dns-query": "^0.11.2", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "events": "^3.3.0", "express": "^4.21.1", @@ -59330,7 +58136,7 @@ "chai": "^4.3.6", "compass-preferences-model": "^2.29.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", @@ -60519,13 +59325,13 @@ "@types/webpack-bundle-analyzer": "^4.7.0", "babel-loader": "^8.2.5", "babel-plugin-istanbul": "^5.2.0", - "browserslist": "^4.24.0", + "browserslist": "^4.24.2", "chalk": "^4.1.2", "cli-progress": "^3.9.1", "core-js": "^3.17.3", "css-loader": "^4.3.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "html-webpack-plugin": "^5.6.0", "less": "^3.13.1", @@ -61067,15 +59873,6 @@ "npm-normalize-package-bin": "^3.0.0" } }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -61121,19 +59918,6 @@ } } }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -61243,25 +60027,6 @@ "lru-cache": "^7.5.1" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "ignore-walk": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", @@ -61280,117 +60045,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==" }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "requires": { - "imurmurhash": "^0.1.4" - } - } - } - }, "minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -61404,27 +60058,6 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.1.tgz", "integrity": "sha512-V9esFpNbK0arbN3fm2sxDKqMYgIp7XtVdE4Esj+PE4Qaaxdg1wIw48ITQIOn1sc8xXSmUviVL3cyjMqPlrVkiA==" }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, "node-gyp": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", @@ -61618,16 +60251,6 @@ "process": "^0.11.10" } }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, "ssri": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", @@ -61671,9 +60294,9 @@ } }, "@npmcli/fs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", - "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", + "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", "requires": { "@gar/promisify": "^1.1.3", "semver": "^7.3.5" @@ -61812,15 +60435,6 @@ "npm-normalize-package-bin": "^3.0.0" } }, - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, "@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", @@ -61846,19 +60460,6 @@ "which": "^3.0.0" } }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -61952,25 +60553,6 @@ "lru-cache": "^7.5.1" } }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "ignore-walk": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.0.tgz", @@ -61989,105 +60571,6 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.14.1.tgz", "integrity": "sha512-ysxwsnTKdAx96aTRdhDOCQfDgbHnt8SK0KY8SEjO0wHinhWOFTESbjVCMPbU1uGXg/ch4lifqx0wfjOawU2+WA==" }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - }, - "dependencies": { - "@npmcli/fs": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz", - "integrity": "sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ==", - "requires": { - "@gar/promisify": "^1.1.3", - "semver": "^7.3.5" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "requires": { - "unique-slug": "^3.0.0" - } - }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "requires": { - "imurmurhash": "^0.1.4" - } - } - } - }, "minimatch": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", @@ -62101,27 +60584,6 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-4.0.1.tgz", "integrity": "sha512-V9esFpNbK0arbN3fm2sxDKqMYgIp7XtVdE4Esj+PE4Qaaxdg1wIw48ITQIOn1sc8xXSmUviVL3cyjMqPlrVkiA==" }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "dependencies": { - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, "node-gyp": { "version": "9.3.1", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.3.1.tgz", @@ -62274,16 +60736,6 @@ "npm-normalize-package-bin": "^3.0.0" } }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, "ssri": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.1.tgz", @@ -64210,6 +62662,15 @@ } } }, + "@types/appdmg": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/@types/appdmg/-/appdmg-0.5.5.tgz", + "integrity": "sha512-G+n6DgZTZFOteITE30LnWj+HRVIGr7wMlAiLWOO02uJFWVEitaPU9JVXm9wJokkgshBawb2O1OykdcsmkkZfgg==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -67508,14 +65969,14 @@ } }, "browserslist": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.0.tgz", - "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "requires": { - "caniuse-lite": "^1.0.30001663", - "electron-to-chromium": "^1.5.28", + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" + "update-browserslist-db": "^1.1.1" } }, "bson": { @@ -67771,9 +66232,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001663", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001663.tgz", - "integrity": "sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==" + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==" }, "caseless": { "version": "0.12.0", @@ -68267,7 +66728,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", "glob": "^10.2.5", @@ -68331,12 +66792,6 @@ "wrap-ansi": "^7.0.0" } }, - "electron-to-chromium": { - "version": "1.5.41", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.41.tgz", - "integrity": "sha512-dfdv/2xNjX0P8Vzme4cfzHqnPm5xsZXwsolTYr0eyW18IUmNyG08vL+fttvinTfhKfIKdRoqkDIC9e9iWQCNYQ==", - "dev": true - }, "execa": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", @@ -70685,9 +69140,9 @@ } }, "electron": { - "version": "30.5.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-30.5.1.tgz", - "integrity": "sha512-AhL7+mZ8Lg14iaNfoYTkXQ2qee8mmsQyllKdqxlpv/zrKgfxz6jNVtcRRbQtLxtF8yzcImWdfTQROpYiPumdbw==", + "version": "32.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.1.tgz", + "integrity": "sha512-GCPI/5hU34pPcNltNpz+uylhhuTm9BM0N8RmrbVgaWBodLSmmcCkvpgN0BseKhO6IwQOPzWaovrcZ/nPIpfGaQ==", "requires": { "@electron/get": "^2.0.0", "@types/node": "^20.9.0", @@ -70845,17 +69300,6 @@ "yargs": "^16.0.2" } }, - "electron-installer-dmg": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-4.0.0.tgz", - "integrity": "sha512-g3W6XnyUa7QGrAF7ViewHdt6bXV2KYU1Pm1CY3pZpp+H6mOjCHHAhf/iZAxtaX1ERCb+SQHz7xSsAHuNH9I8ZQ==", - "optional": true, - "requires": { - "appdmg": "^0.6.4", - "debug": "^4.3.2", - "minimist": "^1.1.1" - } - }, "electron-mocha": { "version": "12.2.0", "resolved": "https://registry.npmjs.org/electron-mocha/-/electron-mocha-12.2.0.tgz", @@ -71062,9 +69506,9 @@ } }, "electron-to-chromium": { - "version": "1.5.28", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.28.tgz", - "integrity": "sha512-VufdJl+rzaKZoYVUijN13QcXVF5dWPZANeFTLNy+OSpHdDL5ynXTF35+60RSBbaQYB1ae723lQXHCrf4pyLsMw==" + "version": "1.5.42", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.42.tgz", + "integrity": "sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==" }, "electron-window": { "version": "0.8.1", @@ -71542,9 +69986,9 @@ } }, "escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" }, "escape-goat": { "version": "2.1.1", @@ -74322,9 +72766,9 @@ "del": "^2.0.2", "depcheck": "^1.4.1", "download": "^8.0.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-installer-debian": "^3.2.0", - "electron-installer-dmg": "^4.0.0", + "electron-installer-dmg": "^5.0.1", "electron-installer-redhat": "^2.0.0", "electron-packager": "^15.5.1", "electron-packager-plugin-non-proprietary-codecs-ffmpeg": "^1.0.2", @@ -74343,7 +72787,7 @@ "mocha": "^10.2.0", "moment": "^2.29.4", "mongodb-js-cli": "^0.0.3", - "node-abi": "^3.68.0", + "node-abi": "^3.71.0", "normalize-package-data": "^2.3.5", "parse-github-repo-url": "^1.3.0", "plist": "^3.0.1", @@ -74461,6 +72905,18 @@ } } }, + "electron-installer-dmg": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/electron-installer-dmg/-/electron-installer-dmg-5.0.1.tgz", + "integrity": "sha512-qOa1aAQdX57C+vzhDk3549dd/PRlNL4F8y736MTD1a43qptD+PvHY97Bo9gSf+OZ8iUWE7BrYSpk/FgLUe40EA==", + "optional": true, + "requires": { + "@types/appdmg": "^0.5.5", + "appdmg": "^0.6.4", + "debug": "^4.3.2", + "minimist": "^1.2.7" + } + }, "electron-installer-redhat": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/electron-installer-redhat/-/electron-installer-redhat-2.0.0.tgz", @@ -74673,6 +73129,12 @@ "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "optional": true + }, "mkdirp": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", @@ -75028,7 +73490,7 @@ "chai": "^4.3.6", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "is-electron-renderer": "^2.0.1", "mocha": "^10.2.0", @@ -76883,9 +75345,10 @@ "dev": true }, "kerberos": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", - "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.1.1.tgz", + "integrity": "sha512-414s1G/qgK2T60cXnZsHbtRj8Ynjg0DBlQWeY99tkyqQ2e8vGgFHvxRdvjTlLHg/SxBA0zLQcGE6Pk6Dfq/BCA==", + "optional": true, "requires": { "bindings": "^1.5.0", "node-addon-api": "^6.1.0", @@ -76895,7 +75358,8 @@ "node-addon-api": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", - "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "optional": true } } }, @@ -79190,183 +77654,168 @@ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" }, "make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", - "dev": true, + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", + "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", "requires": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", - "proc-log": "^4.2.0", "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" }, "dependencies": { - "@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", - "dev": true, + "@npmcli/move-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", + "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", "requires": { - "semver": "^7.3.5" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" } }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, "requires": { "balanced-match": "^1.0.0" } }, "cacache": { - "version": "18.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", - "dev": true, + "version": "16.1.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", + "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", "requires": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", "p-map": "^4.0.0", - "ssri": "^10.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", "tar": "^6.1.11", - "unique-filename": "^3.0.0" - } - }, - "foreground-child": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "unique-filename": "^2.0.0" } }, - "fs-minipass": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, + "glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", "requires": { - "minipass": "^7.0.3" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, - "glob": { - "version": "10.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "requires": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" } }, - "jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "requires": { - "@isaacs/cliui": "^8.0.2", - "@pkgjs/parseargs": "^0.11.0" + "agent-base": "6", + "debug": "4" } }, "lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" }, "minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "requires": { "brace-expansion": "^2.0.1" } }, - "minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true - }, - "minipass-collect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", - "dev": true, - "requires": { - "minipass": "^7.0.3" - } - }, "minipass-fetch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", - "dev": true, + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", + "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", "requires": { "encoding": "^0.1.13", - "minipass": "^7.0.3", + "minipass": "^3.1.6", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" } }, - "proc-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true - }, - "signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "dev": true + "socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + } }, "ssri": { - "version": "10.0.6", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", - "dev": true, + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "requires": { - "minipass": "^7.0.3" + "minipass": "^3.1.1" } }, "unique-filename": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", + "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", "requires": { - "unique-slug": "^4.0.0" + "unique-slug": "^3.0.0" } }, "unique-slug": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", + "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", "requires": { "imurmurhash": "^0.1.4" } @@ -80148,7 +78597,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-devtools-installer": "^3.2.0", "electron-dl": "^3.5.0", "electron-mocha": "^12.2.0", @@ -80187,66 +78636,6 @@ "winreg-ts": "^1.0.4" }, "dependencies": { - "@npmcli/move-file": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz", - "integrity": "sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ==", - "dev": true, - "requires": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" - } - }, - "@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "cacache": { - "version": "16.1.3", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz", - "integrity": "sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==", - "dev": true, - "requires": { - "@npmcli/fs": "^2.1.0", - "@npmcli/move-file": "^2.0.0", - "chownr": "^2.0.0", - "fs-minipass": "^2.1.0", - "glob": "^8.0.1", - "infer-owner": "^1.0.4", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "mkdirp": "^1.0.4", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^9.0.0", - "tar": "^6.1.11", - "unique-filename": "^2.0.0" - } - }, "debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -80256,128 +78645,20 @@ "ms": "2.1.2" } }, - "glob": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", - "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^5.0.1", - "once": "^1.3.0" - } - }, - "http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, - "requires": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" - } - }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true - }, - "make-fetch-happen": { - "version": "10.2.1", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz", - "integrity": "sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==", - "dev": true, - "requires": { - "agentkeepalive": "^4.2.1", - "cacache": "^16.1.0", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^7.7.1", - "minipass": "^3.1.6", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^2.0.3", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^7.0.0", - "ssri": "^9.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - }, - "minipass-fetch": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz", - "integrity": "sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA==", - "dev": true, - "requires": { - "encoding": "^0.1.13", - "minipass": "^3.1.6", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - } - }, - "socks-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", - "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", - "dev": true, - "requires": { - "agent-base": "^6.0.2", - "debug": "^4.3.3", - "socks": "^2.6.2" - } - }, - "ssri": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", - "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "unique-filename": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz", - "integrity": "sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==", - "dev": true, + "kerberos": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", + "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", "requires": { - "unique-slug": "^3.0.0" + "bindings": "^1.5.0", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.2" } }, - "unique-slug": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz", - "integrity": "sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4" - } + "node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==" } } }, @@ -80482,6 +78763,23 @@ "eslint-visitor-keys": "^2.0.0" } }, + "kerberos": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/kerberos/-/kerberos-2.2.0.tgz", + "integrity": "sha512-yz6iP+34Qp8XjwfmJ56SD9coeSfLIoH0JBrLi6Iw76FdwsRJoNw3nCgfpzENkfGyb/dgRqzYn3IMXLj7A43Vlg==", + "dev": true, + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.2" + } + }, + "node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true + }, "sinon": { "version": "9.2.4", "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.4.tgz", @@ -81101,9 +79399,9 @@ "dev": true }, "nan": { - "version": "2.18.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", "optional": true }, "nanoid": { @@ -81200,9 +79498,9 @@ } }, "node-abi": { - "version": "3.68.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz", - "integrity": "sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A==", + "version": "3.71.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", + "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", "requires": { "semver": "^7.3.5" } @@ -81277,6 +79575,15 @@ "which": "^4.0.0" }, "dependencies": { + "@npmcli/fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "dev": true, + "requires": { + "semver": "^7.3.5" + } + }, "abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -81292,6 +79599,26 @@ "balanced-match": "^1.0.0" } }, + "cacache": { + "version": "18.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" + } + }, "foreground-child": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", @@ -81302,6 +79629,15 @@ "signal-exit": "^4.0.1" } }, + "fs-minipass": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "dev": true, + "requires": { + "minipass": "^7.0.3" + } + }, "glob": { "version": "10.4.5", "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", @@ -81332,6 +79668,32 @@ "@pkgjs/parseargs": "^0.11.0" } }, + "lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "dev": true, + "requires": { + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" + } + }, "minimatch": { "version": "9.0.5", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", @@ -81347,6 +79709,27 @@ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true }, + "minipass-collect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "dev": true, + "requires": { + "minipass": "^7.0.3" + } + }, + "minipass-fetch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, "nopt": { "version": "7.2.1", "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.1.tgz", @@ -81368,6 +79751,33 @@ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true }, + "ssri": { + "version": "10.0.6", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "dev": true, + "requires": { + "minipass": "^7.0.3" + } + }, + "unique-filename": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "dev": true, + "requires": { + "unique-slug": "^4.0.0" + } + }, + "unique-slug": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, "which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", @@ -88105,12 +86515,12 @@ "dev": true }, "update-browserslist-db": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz", - "integrity": "sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "requires": { - "escalade": "^3.1.2", - "picocolors": "^1.0.1" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" } }, "uri-js": { diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json index 20f8d744d4f..46b8009e682 100644 --- a/packages/atlas-service/package.json +++ b/packages/atlas-service/package.json @@ -84,7 +84,7 @@ "@mongodb-js/oidc-plugin": "^1.1.1", "hadron-app-registry": "^9.2.7", "compass-preferences-model": "^2.29.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "hadron-ipc": "^3.2.23", "lodash": "^4.17.21", "react": "^17.0.2", diff --git a/packages/compass-components/src/components/file-input.spec.tsx b/packages/compass-components/src/components/file-input.spec.tsx index 565ade405c6..4ff89a95dc9 100644 --- a/packages/compass-components/src/components/file-input.spec.tsx +++ b/packages/compass-components/src/components/file-input.spec.tsx @@ -256,15 +256,25 @@ describe('FileInput', function () { describe('when a file is chosen', function () { beforeEach(async function () { render( - + + ({ + getPathForFile() { + return 'a/b/c'; + }, + } as any) + } + > + + ); const fileInput = screen.getByTestId('test-file-input'); @@ -284,7 +294,7 @@ describe('FileInput', function () { it('calls onChange with the chosen file', function () { expect(spy.callCount).to.equal(1); - expect(spy.firstCall.args[0]).to.deep.equal(['new/file/path']); + expect(spy.firstCall.args[0]).to.deep.equal(['a/b/c']); }); }); @@ -343,13 +353,19 @@ describe('FileInput', function () { showOpenDialog: sinon.stub(), }, }; - return { fakeElectron, fakeWindow }; + const fakeWebUtils = { + getPathForFile: sinon.stub().returns('a/b/c'), + }; + return { fakeElectron, fakeWindow, fakeWebUtils }; } it('allows using electron-style APIs for file updates', async function () { - const { fakeElectron, fakeWindow } = createFakeElectron(); + const { fakeElectron, fakeWindow, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); const listener = sinon.stub(); const unsubscribe = backend.onFilesChosen(listener); @@ -378,10 +394,24 @@ describe('FileInput', function () { expect(fakeElectron.dialog.showSaveDialog).to.have.been.calledTwice; }); + it('passes through getPathForFile calls', function () { + const { fakeElectron, fakeWebUtils } = createFakeElectron(); + + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); + + expect(backend.getPathForFile({} as any)).to.equal('a/b/c'); + }); + it('can partially handle browser-compatible accept values', function () { - const { fakeElectron, fakeWindow } = createFakeElectron(); + const { fakeElectron, fakeWindow, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); fakeElectron.dialog.showSaveDialog.resolves({ canceled: true, @@ -404,9 +434,12 @@ describe('FileInput', function () { }); it('does not override existing file filters', function () { - const { fakeElectron, fakeWindow } = createFakeElectron(); + const { fakeElectron, fakeWindow, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); fakeElectron.dialog.showSaveDialog.resolves({ canceled: true, @@ -430,9 +463,12 @@ describe('FileInput', function () { }); it('handles multi:false', function () { - const { fakeElectron, fakeWindow } = createFakeElectron(); + const { fakeElectron, fakeWindow, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); fakeElectron.dialog.showSaveDialog.resolves({ canceled: true, @@ -452,9 +488,12 @@ describe('FileInput', function () { }); it('handles multi:true', function () { - const { fakeElectron, fakeWindow } = createFakeElectron(); + const { fakeElectron, fakeWindow, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); fakeElectron.dialog.showSaveDialog.resolves({ canceled: true, @@ -473,9 +512,12 @@ describe('FileInput', function () { }); it('can call showOpenDialog if requested', async function () { - const { fakeElectron, fakeWindow } = createFakeElectron(); + const { fakeElectron, fakeWindow, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); const listener = sinon.stub(); backend.onFilesChosen(listener); @@ -501,9 +543,12 @@ describe('FileInput', function () { }); it('calls the listener with an empty array if the user canceled the request', async function () { - const { fakeElectron } = createFakeElectron(); + const { fakeElectron, fakeWebUtils } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); const listener = sinon.stub(); backend.onFilesChosen(listener); @@ -521,8 +566,11 @@ describe('FileInput', function () { }); it('handles autoOpen:true', async function () { - const { fakeElectron } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const { fakeElectron, fakeWebUtils } = createFakeElectron(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); const listener = sinon.stub(); backend.onFilesChosen(listener); @@ -577,8 +625,11 @@ describe('FileInput', function () { let openFileChooserSpy: sinon.SinonSpy; beforeEach(async function () { - const { fakeElectron } = createFakeElectron(); - const backend = createElectronFileInputBackend(fakeElectron)(); + const { fakeElectron, fakeWebUtils } = createFakeElectron(); + const backend = createElectronFileInputBackend( + fakeElectron, + fakeWebUtils + )(); listener = sinon.stub(); backend.onFilesChosen(listener); diff --git a/packages/compass-components/src/components/file-input.tsx b/packages/compass-components/src/components/file-input.tsx index bafdb609c16..1c18c5c6eff 100644 --- a/packages/compass-components/src/components/file-input.tsx +++ b/packages/compass-components/src/components/file-input.tsx @@ -134,12 +134,6 @@ const disabledDescriptionDarkStyles = css({ type FileInputVariant = 'default' | 'small' | 'vertical'; -// https://www.electronjs.org/docs/latest/api/file-object -type FileWithPath = File & { - /** Electron-specific property that contains an absolute path to the file */ - path: string; -}; - // Matches Electron's file dialog options. export type ElectronFileDialogOptions = { title?: string; @@ -164,6 +158,8 @@ export type FileInputBackend = { // Should install a listener that is called when files have been selected. // Should return an unsubscribe function. onFilesChosen: (listener: (files: string[]) => void) => () => void; + // Gets the real on-disk path for a `File`, if the current environment supports it. + getPathForFile: (file: File) => string | undefined; }; export const FileInputBackendContext = createContext< @@ -197,6 +193,11 @@ export type ElectronShowFileDialogProvider = { }; }; +export type ElectronWebUtilsProvider = { + // https://github.com/electron/electron/blob/83d704009687956fb4b69cb13ab03664d7950118/docs/breaking-changes.md#removed-filepath + getPathForFile(file: File): string; +}; + export const FileInputBackendProvider: React.FunctionComponent<{ createFileInputBackend: (() => FileInputBackend) | null; }> = ({ children, createFileInputBackend }) => { @@ -209,6 +210,20 @@ export const FileInputBackendProvider: React.FunctionComponent<{ ); }; +export function createJSDomFileInputDummyBackend(): () => FileInputBackend { + return () => ({ + openFileChooser() { + return; + }, + onFilesChosen() { + return () => void 0; + }, + getPathForFile(file: File) { + return (file as any).path; + }, + }); +} + // Use as: // // import * as electronRemote from '@electron/remote'; @@ -217,7 +232,8 @@ export const FileInputBackendProvider: React.FunctionComponent<{ // // export function createElectronFileInputBackend( - electron: ElectronShowFileDialogProvider + electron: ElectronShowFileDialogProvider, + webUtils: ElectronWebUtilsProvider | null ): () => FileInputBackend { return () => { const listeners: ((files: string[]) => void)[] = []; @@ -288,6 +304,9 @@ export function createElectronFileInputBackend( if (index !== -1) listeners.splice(index, 1); }; }, + getPathForFile(file: File): string | undefined { + return webUtils?.getPathForFile(file); + }, }; }; } @@ -357,7 +376,7 @@ function FileInput({ (evt: React.ChangeEvent) => { const fileList = Array.from(evt.currentTarget.files ?? []); const files = fileList.map((file) => { - return (file as FileWithPath).path; + return backend?.getPathForFile(file) ?? ''; }); onChange(files); }, diff --git a/packages/compass-components/src/index.ts b/packages/compass-components/src/index.ts index 5055585a578..3d80c9d7d2f 100644 --- a/packages/compass-components/src/index.ts +++ b/packages/compass-components/src/index.ts @@ -21,6 +21,7 @@ import type { } from './components/file-input'; import FileInput, { createElectronFileInputBackend, + createJSDomFileInputDummyBackend, FileInputBackendProvider, } from './components/file-input'; import { OptionsToggle } from './components/options-toggle'; @@ -119,6 +120,7 @@ export { DropdownMenuButton, defaultSidebarWidth, createElectronFileInputBackend, + createJSDomFileInputDummyBackend, }; export { useFocusState, diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index f2a6da20246..ba1bb68b00f 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -59,7 +59,7 @@ "chai": "^4.1.2", "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 8cf111bbc2b..27abac4d74d 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -51,7 +51,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", "glob": "^10.2.5", diff --git a/packages/compass-editor/src/editor.tsx b/packages/compass-editor/src/editor.tsx index f34031affc2..e366503c54a 100644 --- a/packages/compass-editor/src/editor.tsx +++ b/packages/compass-editor/src/editor.tsx @@ -76,6 +76,11 @@ import { rgba } from 'polished'; import { prettify as _prettify } from './prettify'; import { ActionButton, FormatIcon } from './actions'; +// TODO(COMPASS-8453): Re-enable this once the linked tickets are resolved +// https://github.com/codemirror/dev/issues/1458 +// https://issues.chromium.org/issues/375711382?pli=1 +(EditorView as any).EDIT_CONTEXT = false; + const editorStyle = css({ fontSize: 13, fontFamily: fontFamilies.code, diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index 4e3bdab811f..7de001f0718 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -58,7 +58,7 @@ "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-find-in-page/package.json b/packages/compass-find-in-page/package.json index 3b7048979fc..0554d355232 100644 --- a/packages/compass-find-in-page/package.json +++ b/packages/compass-find-in-page/package.json @@ -61,7 +61,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index 55b47ad71c6..931701c3241 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -59,7 +59,7 @@ "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", "debug": "^4.3.4", - "electron": "^30.5.1", + "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.4", "hadron-ipc": "^3.2.23", diff --git a/packages/compass-import-export/src/components/export-modal.tsx b/packages/compass-import-export/src/components/export-modal.tsx index acf471c1254..82e101ed450 100644 --- a/packages/compass-import-export/src/components/export-modal.tsx +++ b/packages/compass-import-export/src/components/export-modal.tsx @@ -193,7 +193,7 @@ function ExportModal({ const onClickExport = useCallback(() => { // eslint-disable-next-line @typescript-eslint/consistent-type-imports, @typescript-eslint/no-var-requires const electron: typeof import('@electron/remote') = require('@electron/remote'); - const fileBackend = createElectronFileInputBackend(electron)(); + const fileBackend = createElectronFileInputBackend(electron, null)(); fileBackend.onFilesChosen((files: string[]) => { if (files.length > 0) { diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index 327da071c05..bd4f84f8516 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -56,7 +56,7 @@ "@types/numeral": "^2.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index e52a2fe2090..e1e42191cd5 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -55,7 +55,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index a0f173e7261..0e30f1dccb8 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -56,7 +56,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index 99130d40b6d..a66e7f9d3ac 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -76,7 +76,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", diff --git a/packages/compass-utils/package.json b/packages/compass-utils/package.json index cadde61f2b8..c68cb9e76d0 100644 --- a/packages/compass-utils/package.json +++ b/packages/compass-utils/package.json @@ -69,6 +69,6 @@ }, "dependencies": { "@electron/remote": "^2.1.2", - "electron": "^30.5.1" + "electron": "^32.2.1" } } diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 28ca28cf751..8e5e171bbc6 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -109,7 +109,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "dns-query": "^0.11.2", - "electron": "^30.5.1", + "electron": "^32.2.1", "eslint": "^7.25.0", "events": "^3.3.0", "express": "^4.21.1", diff --git a/packages/compass-workspaces/src/stores/workspaces.spec.ts b/packages/compass-workspaces/src/stores/workspaces.spec.ts index d32144dc62d..50f82bdef42 100644 --- a/packages/compass-workspaces/src/stores/workspaces.spec.ts +++ b/packages/compass-workspaces/src/stores/workspaces.spec.ts @@ -22,7 +22,7 @@ describe('tabs behavior', function () { function configureStore() { const result = activatePluginWithConnections(); - return result.plugin.store as WorkspacesStore; + return result.plugin.store; } function openTabs( diff --git a/packages/compass/package.json b/packages/compass/package.json index 4c1309edbfc..e65737469c4 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -243,7 +243,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-devtools-installer": "^3.2.0", "electron-dl": "^3.5.0", "electron-mocha": "^12.2.0", diff --git a/packages/compass/src/app/index.tsx b/packages/compass/src/app/index.tsx index f548530369d..a6a55c210be 100644 --- a/packages/compass/src/app/index.tsx +++ b/packages/compass/src/app/index.tsx @@ -5,6 +5,7 @@ import dns from 'dns'; import ensureError from 'ensure-error'; import { ipcRenderer } from 'hadron-ipc'; import * as remote from '@electron/remote'; +import { webUtils } from 'electron'; import { globalAppRegistry } from 'hadron-app-registry'; import { defaultPreferencesInstance } from 'compass-preferences-model'; import semver from 'semver'; @@ -242,7 +243,10 @@ const Application = View.extend({ { - connectSpy(connectionInfo.connectionOptions); - }} - onSaveClicked={() => { - return Promise.resolve(); - }} - /> + + { + connectSpy(connectionInfo.connectionOptions); + }} + onSaveClicked={() => { + return Promise.resolve(); + }} + /> + ); expect(connectSpy).not.to.have.been.called; diff --git a/packages/connection-form/src/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.spec.tsx b/packages/connection-form/src/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.spec.tsx index a6fda3cb310..a8199d2bcb4 100644 --- a/packages/connection-form/src/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.spec.tsx +++ b/packages/connection-form/src/components/advanced-options-tabs/ssh-tunnel-tab/ssh-tunnel-identity.spec.tsx @@ -7,6 +7,8 @@ import type { SSHConnectionOptions } from '../../../utils/connection-ssh-handler import SSHTunnelIdentity from './ssh-tunnel-identity'; import type { ConnectionFormError } from '../../../utils/validation'; import { errorMessageByFieldName } from '../../../utils/validation'; +import { FileInputBackendProvider } from '@mongodb-js/compass-components'; +import { createJSDomFileInputDummyBackend } from '@mongodb-js/compass-components/lib/components/file-input'; const formFields: { key: keyof SSHConnectionOptions; @@ -49,11 +51,15 @@ describe('SSHTunnelIdentity', function () { updateConnectionFormFieldSpy = sinon.spy(); render( - + + + ); }); diff --git a/packages/connection-form/src/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.spec.tsx b/packages/connection-form/src/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.spec.tsx index 8bfe1c6ec7a..ae02bd615fd 100644 --- a/packages/connection-form/src/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.spec.tsx +++ b/packages/connection-form/src/components/advanced-options-tabs/tls-ssl-tab/tls-ssl-tab.spec.tsx @@ -10,6 +10,8 @@ import sinon from 'sinon'; import ConnectionStringUrl from 'mongodb-connection-string-url'; import SSLTab, { getTLSOptionForConnectionString } from './tls-ssl-tab'; +import { FileInputBackendProvider } from '@mongodb-js/compass-components'; +import { createJSDomFileInputDummyBackend } from '@mongodb-js/compass-components/lib/components/file-input'; describe('SchemaInput', function () { let updateConnectionFormFieldSpy: sinon.SinonSpy; @@ -28,10 +30,14 @@ describe('SchemaInput', function () { 'mongodb+srv://0ranges:p!neapp1es@localhost/?ssl=true' ); const component = render( - + + + ); rerender = component.rerender; }); diff --git a/packages/connection-storage/package.json b/packages/connection-storage/package.json index 3704ee14fa6..0c542b011de 100644 --- a/packages/connection-storage/package.json +++ b/packages/connection-storage/package.json @@ -63,7 +63,7 @@ "@mongodb-js/connection-info": "^0.9.1", "bson": "^6.8.0", "compass-preferences-model": "^2.29.1", - "electron": "^30.5.1", + "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.23", "keytar": "^7.9.0", diff --git a/packages/hadron-build/lib/target.js b/packages/hadron-build/lib/target.js index 873ba6c302c..3aea8795464 100644 --- a/packages/hadron-build/lib/target.js +++ b/packages/hadron-build/lib/target.js @@ -623,8 +623,11 @@ class Target { ); } - const createDMG = require('electron-installer-dmg'); - await createDMG(this.installerOptions); + const { createDMG } = require('electron-installer-dmg'); + // electron-installer-dmg rejects setting both .dmgPath and .out + const installerOptions = { ...this.installerOptions }; + delete installerOptions.out; + await createDMG(installerOptions); if (isNotarizationPossible) { await notarize(this.installerOptions.dmgPath, notarizationOptions); diff --git a/packages/hadron-build/package.json b/packages/hadron-build/package.json index 4acf02872b6..7f4522c23f4 100644 --- a/packages/hadron-build/package.json +++ b/packages/hadron-build/package.json @@ -32,7 +32,7 @@ "debug": "^4.3.4", "del": "^2.0.2", "download": "^8.0.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "electron-packager": "^15.5.1", "electron-packager-plugin-non-proprietary-codecs-ffmpeg": "^1.0.2", "flatnest": "^1.0.0", @@ -46,7 +46,7 @@ "lodash": "^4.17.21", "moment": "^2.29.4", "mongodb-js-cli": "^0.0.3", - "node-abi": "^3.68.0", + "node-abi": "^3.71.0", "normalize-package-data": "^2.3.5", "parse-github-repo-url": "^1.3.0", "semver": "^7.6.2", @@ -69,7 +69,7 @@ }, "optionalDependencies": { "electron-installer-debian": "^3.2.0", - "electron-installer-dmg": "^4.0.0", + "electron-installer-dmg": "^5.0.1", "electron-installer-redhat": "^2.0.0", "electron-winstaller": "^5.1.0" }, diff --git a/packages/hadron-ipc/package.json b/packages/hadron-ipc/package.json index 26c6a4ee419..622c0b0e117 100644 --- a/packages/hadron-ipc/package.json +++ b/packages/hadron-ipc/package.json @@ -69,7 +69,7 @@ }, "dependencies": { "debug": "^4.3.4", - "electron": "^30.5.1", + "electron": "^32.2.1", "is-electron-renderer": "^2.0.1" } } diff --git a/scripts/package.json b/scripts/package.json index 8c8d995b67c..0846983fe62 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -41,7 +41,7 @@ "@babel/core": "^7.24.3", "@mongodb-js/monorepo-tools": "^1.1.1", "commander": "^11.0.0", - "electron": "^30.5.1", + "electron": "^32.2.1", "jsdom": "^24.1.3", "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", From 67cb7b7b227ea2de443f91659ae998712dcccb73 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 18:47:13 +0000 Subject: [PATCH 53/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6409) Update report Co-authored-by: addaleax <899444+addaleax@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 18 +++++++++--------- docs/tracking-plan.md | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 6b60acfedcc..32b30a6ee05 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -248,7 +248,7 @@ Package|Version|License **[ee-first](#e2746902c758ae8a6f91ffb9618cd53717f936cb33c6323e65b6b7b24f7ebefe)**|1.1.1|MIT **[electron-dl](#e97e034c7b93c63e7a433d75f6f1de3e0668764225ebbd61dbde8d1b55d6f3b7)**|3.5.0|MIT **[electron-squirrel-startup](#09fb8168e8fda2e174f8d1a1c392ffd8f762c5637c788edd00d1e2486d060349)**|1.0.1|Apache-2.0 -**[electron](#b8949aa8130b5ef5da1efc84f1a58e30028db62c230eb1da216dcfd7b263f55f)**|30.5.1|MIT +**[electron](#4dac8b39331bcb6b30b99afe0849c00e3153935fcab1f1086622b9a2ccb4afc8)**|32.2.1|MIT **[encodeurl](#b89152db475e86531e570f87b45d8a51aa5e5d87d4cc3b960cee7b8febf1d26a)**|1.0.2|MIT **[encodeurl](#177948a319ae0aeebbd65742c53c62b37c75ec1d021afa5a188d10a7ceae6623)**|2.0.0|MIT **[end-of-stream](#fadc10994f5fa767d06fb25cfff35fb17a895daf3bc3477c782907668ed16563)**|1.4.4|MIT @@ -476,8 +476,8 @@ Package|Version|License **[napi-build-utils](#26912b5ff7632f262d64273f99cd1a869376c5c378960e24501585e35b31054a)**|1.0.2|MIT **[negotiator](#e3856213d8f0a7d28cd4166e53ec7e2c019cb7becf4a8535097bac28d21e8579)**|0.6.3|MIT **[netmask](#2bd5b8ff7fab9adace6c38d3fd32e7328484939fdd07836635b0155d0afc35b2)**|2.0.2|MIT -**[node-abi](#e95a83ce4ffe7621819fbbceed23c54f12e0e1066aad9e5b3093bbdc7c958e0b)**|3.68.0|MIT -**[node-addon-api](#af9f7588524ca4e68f4efe7b24aea46d9c8004263b1d7cf3b558f86d87a163e8)**|4.3.0|MIT +**[node-abi](#26b0c85ed4add770fa688d81ed25b3e4018a6114f488c70ab5b36b25cf4084d3)**|3.71.0|MIT +**[node-addon-api](#75c2a47526765afc024a6641ec7b1b37935dc672a211ebdd9773d74bc43a95b4)**|6.1.0|MIT **[node-domexception](#3c25065fd2bc1b6b56856e30ac5b8f34ddae33ca87b225854f8d855b0ccabfbe)**|1.0.0|MIT **[node-fetch](#364527ef1b51cc6ac34872b931049c9e25b5014f9b40e3898c84e1a830e21720)**|2.6.7|MIT **[node-fetch](#23d7d5a419e9a25e6384dee4aa24f7162544418f0cdc2d92e94e2cf924507b8c)**|2.7.0|MIT @@ -19215,8 +19215,8 @@ License files: - -### [electron](https://www.npmjs.com/package/electron) (version 30.5.1) + +### [electron](https://www.npmjs.com/package/electron) (version 32.2.1) License tags: MIT License files: @@ -28649,8 +28649,8 @@ License files: License tags: MIT - -### [node-abi](https://www.npmjs.com/package/node-abi) (version 3.68.0) + +### [node-abi](https://www.npmjs.com/package/node-abi) (version 3.71.0) License tags: MIT License files: @@ -28680,8 +28680,8 @@ License files: - -### [node-addon-api](https://www.npmjs.com/package/node-addon-api) (version 4.3.0) + +### [node-addon-api](https://www.npmjs.com/package/node-addon-api) (version 6.1.0) License tags: MIT License files: diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index d77d36f64c7..ed0916215a0 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 28, 2024 at 12:44 PM +Generated on Mon, Oct 28, 2024 at 06:47 PM ## Table of Contents From fe3112877920e3b01cbfe95a9388eb92b3ad78ae Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 11:58:58 +0000 Subject: [PATCH 54/71] v1.44.6-beta.2 --- package-lock.json | 2 +- packages/compass/package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5526b9691fb..5b691bd51b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43156,7 +43156,7 @@ }, "packages/compass": { "name": "mongodb-compass", - "version": "1.44.6-beta.1", + "version": "1.44.6-beta.2", "hasInstallScript": true, "license": "SSPL", "dependencies": { diff --git a/packages/compass/package.json b/packages/compass/package.json index 6464534ddee..3328ad4d6ab 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -4,7 +4,7 @@ "productName": "MongoDB Compass", "description": "The MongoDB GUI", "homepage": "https://www.mongodb.com/products/compass", - "version": "1.44.6-beta.1", + "version": "1.44.6-beta.2", "apiVersion": "3.0.0", "main": "build/main.js", "author": { @@ -278,5 +278,5 @@ "macos-export-certificate-and-key": "^1.1.2", "win-export-certificate-and-key": "^2.0.1" }, - "releasePublisher": "Maurizio Casimirri " + "releasePublisher": "Paula Stachova " } From daaa6e3ba17ae9b919534a0bdcb7b46bd7490b23 Mon Sep 17 00:00:00 2001 From: Basit <1305718+mabaasit@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:32:44 +0100 Subject: [PATCH 55/71] fix(compass-crud): persist modified document value COMPASS-8373 (#6404) * persist json value in document * use ref and remove useEffect dep * ref current assignment --- .../src/components/json-editor.tsx | 19 +++++++- .../virtualized-document-json-view.spec.tsx | 44 +++++++++++++++++++ packages/hadron-document/src/document.ts | 8 ++++ 3 files changed, 70 insertions(+), 1 deletion(-) diff --git a/packages/compass-crud/src/components/json-editor.tsx b/packages/compass-crud/src/components/json-editor.tsx index 767c54160d8..2dda284dba4 100644 --- a/packages/compass-crud/src/components/json-editor.tsx +++ b/packages/compass-crud/src/components/json-editor.tsx @@ -76,9 +76,26 @@ const JSONEditor: React.FunctionComponent = ({ const [expanded, setExpanded] = useState(doc.expanded); const [editing, setEditing] = useState(doc.editing); const [deleting, setDeleting] = useState(doc.markedForDeletion); - const [value, setValue] = useState(() => doc.toEJSON()); + const [value, setValue] = useState( + () => doc.modifiedEJSONString ?? doc.toEJSON() + ); const [initialValue] = useState(() => doc.toEJSON()); const [containsErrors, setContainsErrors] = useState(false); + const setModifiedEJSONStringRef = useRef<(value: string | null) => void>( + doc.setModifiedEJSONString.bind(doc) + ); + setModifiedEJSONStringRef.current = doc.setModifiedEJSONString.bind(doc); + + useEffect(() => { + const setModifiedEJSONString = setModifiedEJSONStringRef.current; + return () => { + // When this component is used in virtualized list, the editor is + // unmounted on scroll and if the user is editing the document, the + // editor value is lost. This is a way to keep track of the editor + // value when the it's unmounted and is restored on next mount. + setModifiedEJSONString(editing ? value : null); + }; + }, [value, editing]); const handleCopy = useCallback(() => { copyToClipboard?.(doc); diff --git a/packages/compass-crud/src/components/virtualized-document-json-view.spec.tsx b/packages/compass-crud/src/components/virtualized-document-json-view.spec.tsx index 0c8060d267a..37672979171 100644 --- a/packages/compass-crud/src/components/virtualized-document-json-view.spec.tsx +++ b/packages/compass-crud/src/components/virtualized-document-json-view.spec.tsx @@ -12,6 +12,10 @@ import { import { type VirtualListRef } from '@mongodb-js/compass-components'; import VirtualizedDocumentJsonView from './virtualized-document-json-view'; +import { + getCodemirrorEditorValue, + setCodemirrorEditorValue, +} from '@mongodb-js/compass-editor'; const createBigDocument = (variable: number) => new HadronDocument({ @@ -168,4 +172,44 @@ describe('VirtualizedDocumentJsonView', function () { expect(() => within(documentElement).getByText('Cancel')).to.throw; expect(() => within(documentElement).getByText('Replace')).to.throw; }); + + it('preserves the edit state of document when a document goes out of visible viewport when scrolling', async function () { + const bigDocuments = Array.from({ length: 20 }, (_, idx) => + createBigDocument(idx) + ); + const listRef: VirtualListRef = React.createRef(); + render( + + ); + + let [firstDocumentElement] = screen.getAllByTestId('editable-json'); + // Trigger the edit state (we only set the edited value if the document is being edited) + userEvent.click(within(firstDocumentElement).getByLabelText('Edit')); + + let cmEditor = firstDocumentElement.querySelector( + '[data-codemirror="true"]' + ); + await setCodemirrorEditorValue(cmEditor, '{value: "edited"}'); + + // Scroll down and then scroll back up + act(() => { + listRef.current?.scrollToItem(15); + }); + act(() => { + listRef.current?.scrollToItem(0); + }); + + [firstDocumentElement] = screen.getAllByTestId('editable-json'); + cmEditor = firstDocumentElement.querySelector('[data-codemirror="true"]'); + + const value = getCodemirrorEditorValue(cmEditor); + expect(value).to.equal('{value: "edited"}'); + }); }); diff --git a/packages/hadron-document/src/document.ts b/packages/hadron-document/src/document.ts index 35c51c3995d..1670ca3ccbd 100644 --- a/packages/hadron-document/src/document.ts +++ b/packages/hadron-document/src/document.ts @@ -50,6 +50,9 @@ export class Document extends EventEmitter { maxVisibleElementsCount = DEFAULT_VISIBLE_ELEMENTS; editing = false; markedForDeletion = false; + // This is used to store the changed EJSON string when the document is modified + // via the JSONEditor. + modifiedEJSONString: string | null = null; /** * Send cancel event. @@ -456,6 +459,7 @@ export class Document extends EventEmitter { finishEditing() { if (this.editing) { this.editing = false; + this.setModifiedEJSONString(null); this.emit(DocumentEvents.EditingFinished); } } @@ -503,6 +507,10 @@ export class Document extends EventEmitter { onRemoveError(error: Error) { this.emit('remove-error', error.message); } + + setModifiedEJSONString(ejson: string | null) { + this.modifiedEJSONString = ejson; + } } export default Document; From c301055e306d017c258ff982a23c8681cf46a011 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 12:39:11 +0000 Subject: [PATCH 56/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6412) Update report Co-authored-by: mabaasit <1305718+mabaasit@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 2 +- docs/tracking-plan.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 32b30a6ee05..491a34835a1 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -1,5 +1,5 @@ The following third-party software is used by and included in **Mongodb Compass**. -This document was automatically generated on Mon Oct 28 2024. +This document was automatically generated on Tue Oct 29 2024. ## List of dependencies diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index ed0916215a0..739330d0dbe 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Mon, Oct 28, 2024 at 06:47 PM +Generated on Tue, Oct 29, 2024 at 12:39 PM ## Table of Contents From 8554a6a6b20739e902939e62ad0e6b979aa70741 Mon Sep 17 00:00:00 2001 From: Basit <1305718+mabaasit@users.noreply.github.com> Date: Tue, 29 Oct 2024 14:00:01 +0100 Subject: [PATCH 57/71] feat(global-writes): open global writes tab when creating a collection COMPASS-8280 (#6405) * open global writes tab * dont open tab for special namespaces --- packages/compass-workspaces/src/provider.tsx | 2 +- .../src/stores/workspaces.ts | 2 +- .../src/modules/create-namespace.ts | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/packages/compass-workspaces/src/provider.tsx b/packages/compass-workspaces/src/provider.tsx index fb9bcca6211..d9c6f5bae6a 100644 --- a/packages/compass-workspaces/src/provider.tsx +++ b/packages/compass-workspaces/src/provider.tsx @@ -92,7 +92,7 @@ export type WorkspacesService = { options?: TabOptions & Omit< Extract, - 'type' | 'namespace' | 'editViewName' | 'initialSubtab' | 'connectionId' + 'type' | 'namespace' | 'editViewName' | 'connectionId' > ): void; /** diff --git a/packages/compass-workspaces/src/stores/workspaces.ts b/packages/compass-workspaces/src/stores/workspaces.ts index 924e2a14240..8d9a208141c 100644 --- a/packages/compass-workspaces/src/stores/workspaces.ts +++ b/packages/compass-workspaces/src/stores/workspaces.ts @@ -220,7 +220,7 @@ export const getInitialTabState = ( ); const subTab = - initialSubtab ?? isAggregationsSubtab ? 'Aggregations' : 'Documents'; + initialSubtab ?? (isAggregationsSubtab ? 'Aggregations' : 'Documents'); return { id: tabId, diff --git a/packages/databases-collections/src/modules/create-namespace.ts b/packages/databases-collections/src/modules/create-namespace.ts index e3aa5aa2a0e..b3691509d10 100644 --- a/packages/databases-collections/src/modules/create-namespace.ts +++ b/packages/databases-collections/src/modules/create-namespace.ts @@ -2,6 +2,8 @@ import type { Action, AnyAction, Reducer } from 'redux'; import { parseFilter } from 'mongodb-query-parser'; import type { DataService } from '@mongodb-js/compass-connections/provider'; import type { CreateNamespaceThunkAction } from '../stores/create-namespace'; +import { connectionSupports } from '@mongodb-js/compass-connections'; +import toNS from 'mongodb-ns'; /** * No dots in DB name error message. @@ -402,17 +404,24 @@ export const createNamespace = ( expires: !!data.options.expireAfterSeconds, }; - track( - `${kind} Created`, - trackEvent, - connectionRepository.getConnectionInfoById(connectionId) - ); + const connectionInfo = + connectionRepository.getConnectionInfoById(connectionId); + + track(`${kind} Created`, trackEvent, connectionInfo); globalAppRegistry.emit('collection-created', namespace, { connectionId, }); + + // For special namespaces (admin, local, config), we do not want + // to navigate user to the global-writes tab if it's supported. + const isSpecialNS = toNS(namespace).isSpecial; + const isGlobalWritesSupported = + connectionInfo && connectionSupports(connectionInfo, 'globalWrites'); workspaces.openCollectionWorkspace(connectionId, namespace, { newTab: true, + initialSubtab: + !isSpecialNS && isGlobalWritesSupported ? 'GlobalWrites' : undefined, }); dispatch(reset()); } catch (e) { From 08aadc8e27b27ca5896cb99eb5fd7e31a2c1d7d5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:06:46 +0000 Subject: [PATCH 58/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6413) Update report Co-authored-by: mabaasit <1305718+mabaasit@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 739330d0dbe..47131e74411 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 12:39 PM +Generated on Tue, Oct 29, 2024 at 01:06 PM ## Table of Contents From e1b03084b6c42b83cb9920856e634c16136bd780 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Tue, 29 Oct 2024 14:22:23 +0100 Subject: [PATCH 59/71] chore(e2e): add a new mode to e2e tests to run against logged in sandbox; add rolling index build e2e tests COMPASS-8361 (#6411) chore(e2e): add a new mode to e2e tests to run against logged in sandbox; add rolling index build e2e tests --- .evergreen/buildvariants-and-tasks.in.yml | 21 +++ .evergreen/buildvariants-and-tasks.yml | 19 ++ .evergreen/functions.yml | 36 ++++ .evergreen/start-atlas-cloud-cluster.sh | 39 ++++ .../helpers/commands/connect-form.ts | 3 +- .../helpers/commands/connect.ts | 40 ++-- .../helpers/commands/create-index.ts | 16 +- .../helpers/compass-web-sandbox.ts | 175 ++++++++++++++++++ packages/compass-e2e-tests/helpers/compass.ts | 35 ++-- .../compass-e2e-tests/helpers/insert-data.ts | 11 +- .../helpers/test-runner-context.ts | 103 ++++++++++- .../helpers/test-runner-global-fixtures.ts | 89 ++++----- .../helpers/test-runner-paths.ts | 11 ++ .../tests/atlas-cloud/rolling-indexes.test.ts | 77 ++++++++ .../create-index-form/checkbox-input.tsx | 10 +- .../sandbox/sandbox-atlas-sign-in.tsx | 18 +- .../compass-web/scripts/electron-proxy.js | 5 + 17 files changed, 607 insertions(+), 101 deletions(-) create mode 100644 .evergreen/start-atlas-cloud-cluster.sh create mode 100644 packages/compass-e2e-tests/helpers/compass-web-sandbox.ts create mode 100644 packages/compass-e2e-tests/tests/atlas-cloud/rolling-indexes.test.ts diff --git a/.evergreen/buildvariants-and-tasks.in.yml b/.evergreen/buildvariants-and-tasks.in.yml index 4a421254a0b..c59076373ad 100644 --- a/.evergreen/buildvariants-and-tasks.in.yml +++ b/.evergreen/buildvariants-and-tasks.in.yml @@ -275,6 +275,12 @@ buildvariants: <% } %> <% } %> + - name: test-web-sandbox-atlas-cloud + display_name: Test Web Sandbox (w/ Atlas Cloud login) + run_on: ubuntu2004-large + tasks: + - name: test-web-sandbox-atlas-cloud + - name: generate-vulnerability-report display_name: Vulnerability Report run_on: ubuntu2004-large @@ -504,6 +510,21 @@ tasks: <% } %> <% } %> + - name: test-web-sandbox-atlas-cloud + tags: + - required-for-publish + - run-on-pr + - assigned_to_jira_team_compass_compass + - foliage_check_task_only + commands: + - func: prepare + - func: install + - func: bootstrap + - func: test-web-sandbox-atlas-cloud + vars: + compass_distribution: compass + debug: 'compass-e2e-tests*,electron*,hadron*,mongo*' + - name: create_static_analysis_report tags: ['required-for-publish', 'run-on-pr'] depends_on: diff --git a/.evergreen/buildvariants-and-tasks.yml b/.evergreen/buildvariants-and-tasks.yml index a81034c3551..c0cf6dd6a32 100644 --- a/.evergreen/buildvariants-and-tasks.yml +++ b/.evergreen/buildvariants-and-tasks.yml @@ -257,6 +257,11 @@ buildvariants: - name: test-web-sandbox-firefox-1 - name: test-web-sandbox-firefox-2 - name: test-web-sandbox-firefox-3 + - name: test-web-sandbox-atlas-cloud + display_name: Test Web Sandbox (w/ Atlas Cloud login) + run_on: ubuntu2004-large + tasks: + - name: test-web-sandbox-atlas-cloud - name: generate-vulnerability-report display_name: Vulnerability Report run_on: ubuntu2004-large @@ -1715,6 +1720,20 @@ tasks: e2e_test_groups: 3 e2e_test_group: 3 debug: compass-e2e-tests*,electron*,hadron*,mongo* + - name: test-web-sandbox-atlas-cloud + tags: + - required-for-publish + - run-on-pr + - assigned_to_jira_team_compass_compass + - foliage_check_task_only + commands: + - func: prepare + - func: install + - func: bootstrap + - func: test-web-sandbox-atlas-cloud + vars: + compass_distribution: compass + debug: compass-e2e-tests*,electron*,hadron*,mongo* - name: create_static_analysis_report tags: - required-for-publish diff --git a/.evergreen/functions.yml b/.evergreen/functions.yml index 46204d5892b..b4dc14846d3 100644 --- a/.evergreen/functions.yml +++ b/.evergreen/functions.yml @@ -672,6 +672,42 @@ functions: eval $(.evergreen/print-compass-env.sh) npm run --unsafe-perm --workspace compass-e2e-tests test-ci web + + test-web-sandbox-atlas-cloud: + - command: shell.exec + # It can take a very long time for Atlas cluster to get deployed + timeout_secs: 2400 + params: + working_dir: src + shell: bash + env: + <<: *compass-env + DEBUG: ${debug|} + COMPASS_E2E_ATLAS_CLOUD_SANDBOX_CLOUD_CONFIG: 'qa' + COMPASS_E2E_ATLAS_CLOUD_SANDBOX_USERNAME: ${e2e_tests_compass_web_atlas_username} + COMPASS_E2E_ATLAS_CLOUD_SANDBOX_PASSWORD: ${e2e_tests_compass_web_atlas_password} + COMPASS_E2E_ATLAS_CLOUD_SANDBOX_DBUSER_USERNAME: ${e2e_tests_compass_web_atlas_db_username} + COMPASS_E2E_ATLAS_CLOUD_SANDBOX_DBUSER_PASSWORD: ${e2e_tests_compass_web_atlas_password} + MCLI_PUBLIC_API_KEY: ${e2e_tests_mcli_public_api_key} + MCLI_PRIVATE_API_KEY: ${e2e_tests_mcli_private_api_key} + MCLI_ORG_ID: ${e2e_tests_mcli_org_id} + MCLI_PROJECT_ID: ${e2e_tests_mcli_project_id} + MCLI_OPS_MANAGER_URL: ${e2e_tests_mcli_ops_manager_url} + script: | + set -e + # Load environment variables + eval $(.evergreen/print-compass-env.sh) + # Create Atlas cluster for test project + source .evergreen/start-atlas-cloud-cluster.sh + # Run the tests + echo "Starting e2e tests..." + # We're only running a special subset of tests as provisioning atlas + # clusters in CI is both pricey and flakey, so we want to limit the + # coverage to reduce those factors (at least for now) + npm run --unsafe-perm --workspace compass-e2e-tests test-ci -- -- web \ + --test-atlas-cloud-sandbox \ + --test-filter="atlas-cloud/**/*" + test-connectivity: - command: shell.exec # Fail the task if it's idle for 10 mins diff --git a/.evergreen/start-atlas-cloud-cluster.sh b/.evergreen/start-atlas-cloud-cluster.sh new file mode 100644 index 00000000000..63e87471639 --- /dev/null +++ b/.evergreen/start-atlas-cloud-cluster.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +# Atlas limits the naming to something like /^[\w\d-]{,23}$/ (and will auto +# truncate if it's too long) so we're very limited in terms of how unique this +# name can be. Hopefully the epoch + part of git hash is enough for these to not +# overlap when tests are running +ATLAS_CLOUD_TEST_CLUSTER_NAME="e2e-$(date +"%s")-$(git rev-parse HEAD)" + +function atlascli() { + docker run \ + -e MCLI_PUBLIC_API_KEY \ + -e MCLI_PRIVATE_API_KEY \ + -e MCLI_ORG_ID \ + -e MCLI_PROJECT_ID \ + -e MCLI_OPS_MANAGER_URL \ + mongodb/atlas atlas $@ +} + +cleanup() { + echo "Scheduling Atlas deployment \`$ATLAS_CLOUD_TEST_CLUSTER_NAME\` for deletion..." + atlascli clusters delete $ATLAS_CLOUD_TEST_CLUSTER_NAME --force +} + +trap cleanup EXIT + +echo "Creating Atlas deployment \`$ATLAS_CLOUD_TEST_CLUSTER_NAME\` to test against..." +atlascli clusters create $ATLAS_CLOUD_TEST_CLUSTER_NAME \ + --provider AWS \ + --region US_EAST_1 \ + --tier M10 + +echo "Waiting for the deployment to be provisioned..." +atlascli clusters watch "$ATLAS_CLOUD_TEST_CLUSTER_NAME" + +echo "Getting connection string for provisioned cluster..." +ATLAS_CLOUD_TEST_CLUSTER_CONNECTION_STRING_JSON="$(atlascli clusters connectionStrings describe $ATLAS_CLOUD_TEST_CLUSTER_NAME -o json)" + +export COMPASS_E2E_ATLAS_CLOUD_SANDBOX_DEFAULT_CONNECTIONS="{\"$ATLAS_CLOUD_TEST_CLUSTER_NAME\": $ATLAS_CLOUD_TEST_CLUSTER_CONNECTION_STRING_JSON}" +echo "Cluster connections: $COMPASS_E2E_ATLAS_CLOUD_SANDBOX_DEFAULT_CONNECTIONS" diff --git a/packages/compass-e2e-tests/helpers/commands/connect-form.ts b/packages/compass-e2e-tests/helpers/commands/connect-form.ts index fa1e52d5967..320f13443c2 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect-form.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect-form.ts @@ -7,6 +7,7 @@ import Debug from 'debug'; import { DEFAULT_CONNECTIONS, isTestingAtlasCloudExternal, + isTestingAtlasCloudSandbox, } from '../test-runner-context'; import { getConnectionTitle } from '@mongodb-js/connection-info'; const debug = Debug('compass-e2e-tests'); @@ -930,7 +931,7 @@ export async function saveConnection( export async function setupDefaultConnections(browser: CompassBrowser) { // When running tests against Atlas Cloud, connections can't be added or // removed from the UI manually, so we skip setup for default connections - if (isTestingAtlasCloudExternal()) { + if (isTestingAtlasCloudExternal() || isTestingAtlasCloudSandbox()) { return; } diff --git a/packages/compass-e2e-tests/helpers/commands/connect.ts b/packages/compass-e2e-tests/helpers/commands/connect.ts index 381ada2cf36..97356a91de5 100644 --- a/packages/compass-e2e-tests/helpers/commands/connect.ts +++ b/packages/compass-e2e-tests/helpers/commands/connect.ts @@ -1,13 +1,17 @@ import { - DEFAULT_CONNECTION_NAME_1, - DEFAULT_CONNECTION_NAME_2, DEFAULT_CONNECTION_STRING_1, + DEFAULT_CONNECTION_NAME_1, connectionNameFromString, } from '../compass'; import type { CompassBrowser } from '../compass-browser'; import type { ConnectFormState } from '../connect-form-state'; import * as Selectors from '../selectors'; import Debug from 'debug'; +import { + DEFAULT_CONNECTION_NAMES, + isTestingAtlasCloudExternal, + isTestingAtlasCloudSandbox, +} from '../test-runner-context'; const debug = Debug('compass-e2e-tests'); @@ -35,14 +39,27 @@ type ConnectOptions = ConnectionResultOptions & { removeConnections?: boolean; }; +/** + * Use this command when you need to add a new connection with a specific + * connection string. Most test files should just be using + * browser.connectToDefaults() + */ export async function connectWithConnectionString( browser: CompassBrowser, - connectionString = DEFAULT_CONNECTION_STRING_1, + connectionStringOrName?: string, options: ConnectOptions = {} ): Promise { - // Use this command when you need to add a new connection with a specific - // connection string. Most test files should just be using - // browser.connectToDefaults() + // When testing Atlas Cloud, we can't really create a new connection, so just + // assume a connection name was passed (with a fallback to a default one) and + // try to use it + if (isTestingAtlasCloudExternal() || isTestingAtlasCloudSandbox()) { + await browser.connectByName( + connectionStringOrName ?? DEFAULT_CONNECTION_NAME_1 + ); + return; + } + + connectionStringOrName ??= DEFAULT_CONNECTION_STRING_1; // if the modal is still animating away when we're connecting again, things // are going to get confused @@ -52,7 +69,7 @@ export async function connectWithConnectionString( // if a connection with this name already exists, remove it otherwise we'll // add a duplicate and things will get complicated fast - const connectionName = connectionNameFromString(connectionString); + const connectionName = connectionNameFromString(connectionStringOrName); if (await browser.removeConnection(connectionName)) { debug('Removing existing connection so we do not create a duplicate', { connectionName, @@ -64,7 +81,7 @@ export async function connectWithConnectionString( await browser.setValueVisible( Selectors.ConnectionFormStringInput, - connectionString + connectionStringOrName ); await browser.doConnect(connectionName, options); @@ -173,9 +190,10 @@ export async function connectByName( } export async function connectToDefaults(browser: CompassBrowser) { - // See setupDefaultConnections() for the details behind the thinking here. - await browser.connectByName(DEFAULT_CONNECTION_NAME_1); - await browser.connectByName(DEFAULT_CONNECTION_NAME_2); + for (const name of DEFAULT_CONNECTION_NAMES) { + // See setupDefaultConnections() for the details behind the thinking here. + await browser.connectByName(name); + } // We assume that we connected successfully, so just close the success toasts // early to make sure they aren't in the way of tests. Tests that care about diff --git a/packages/compass-e2e-tests/helpers/commands/create-index.ts b/packages/compass-e2e-tests/helpers/commands/create-index.ts index a62d69cd1af..7a98414189e 100644 --- a/packages/compass-e2e-tests/helpers/commands/create-index.ts +++ b/packages/compass-e2e-tests/helpers/commands/create-index.ts @@ -9,6 +9,7 @@ type CreateIndexOptions = { wildcardProjection?: string; customCollation?: string; sparseIndex?: boolean; + rollingIndex?: boolean; }; type IndexType = '1' | '-1' | '2dsphere' | 'text'; @@ -78,7 +79,14 @@ export async function createIndex( // Select extra options if (extraOptions) { await browser.clickVisible(Selectors.IndexToggleOptions); - const { wildcardProjection } = extraOptions; + const { wildcardProjection, rollingIndex, indexName } = extraOptions; + + if (indexName) { + await browser.clickVisible(Selectors.indexToggleOption('name')); + await browser + .$(Selectors.indexOptionInput('name', 'text')) + .setValue(indexName); + } if (wildcardProjection) { await browser.clickVisible( @@ -91,6 +99,12 @@ export async function createIndex( wildcardProjection ); } + + if (rollingIndex) { + await browser.clickVisible( + Selectors.indexToggleOption('buildInRollingProcess') + ); + } } if (screenshotName) { diff --git a/packages/compass-e2e-tests/helpers/compass-web-sandbox.ts b/packages/compass-e2e-tests/helpers/compass-web-sandbox.ts new file mode 100644 index 00000000000..2f4345dc941 --- /dev/null +++ b/packages/compass-e2e-tests/helpers/compass-web-sandbox.ts @@ -0,0 +1,175 @@ +import crossSpawn from 'cross-spawn'; +import { remote } from 'webdriverio'; +import Debug from 'debug'; +import { + COMPASS_WEB_SANDBOX_RUNNER_PATH, + COMPASS_WEB_WDIO_USER_DATA_PATH, + ELECTRON_CHROMIUM_VERSION, + ELECTRON_PATH, +} from './test-runner-paths'; +import type { ConnectionInfo } from '@mongodb-js/connection-info'; +import ConnectionString from 'mongodb-connection-string-url'; + +const debug = Debug('compass-e2e-tests:compass-web-sandbox'); + +/** + * Setting up in global so that both spawned compass-web and the one started + * with webdriver will get the values + */ +process.env.OPEN_BROWSER = 'false'; // tell webpack dev server not to open the default browser +process.env.DISABLE_DEVSERVER_OVERLAY = 'false'; +process.env.APP_ENV = 'webdriverio'; + +const wait = (ms: number) => { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }); +}; + +export function spawnCompassWebSandbox() { + const proc = crossSpawn.spawn( + 'npm', + ['run', '--unsafe-perm', 'start', '--workspace', '@mongodb-js/compass-web'], + { env: process.env } + ); + proc.stdout.pipe(process.stdout); + proc.stderr.pipe(process.stderr); + return proc; +} + +export async function waitForCompassWebSandboxToBeReady( + sandboxUrl: string, + signal: AbortSignal +) { + let serverReady = false; + const start = Date.now(); + while (!serverReady) { + if (signal.aborted) { + return; + } + if (Date.now() - start >= 120_000) { + throw new Error( + 'The compass-web sandbox is still not running after 120000ms' + ); + } + // No point in trying to fetch sandbox URL right away, give the spawn script + // some time to run + await wait(2000); + try { + const res = await fetch(sandboxUrl); + serverReady = res.ok; + debug('Web server ready:', serverReady); + } catch (err) { + debug('Failed to connect to dev server:', (err as any).message); + } + } +} + +export async function spawnCompassWebSandboxAndSignInToAtlas( + { + username, + password, + sandboxUrl, + waitforTimeout, + }: { + username: string; + password: string; + sandboxUrl: string; + waitforTimeout: number; + }, + signal: AbortSignal +) { + debug('Starting electron-proxy using webdriver ...'); + + const electronProxyRemote = await remote({ + capabilities: { + browserName: 'chromium', + browserVersion: ELECTRON_CHROMIUM_VERSION, + 'goog:chromeOptions': { + binary: ELECTRON_PATH, + args: [ + `--user-data-dir=${COMPASS_WEB_WDIO_USER_DATA_PATH}`, + `--app=${COMPASS_WEB_SANDBOX_RUNNER_PATH}`, + ], + }, + }, + waitforTimeout, + }); + + if (signal.aborted) { + return electronProxyRemote; + } + + debug('Signing in to Atlas as %s ...', username); + + const authenticatePromise = fetch(`${sandboxUrl}/authenticate`, { + method: 'POST', + }); + + const authWindowHandler = await electronProxyRemote.waitUntil(async () => { + const handlers = await electronProxyRemote.getWindowHandles(); + // First window is about:blank, second one is the one we triggered above + // with `/authenticate` request + return handlers[1]; + }); + await electronProxyRemote.switchToWindow(authWindowHandler); + + await electronProxyRemote.$('input[name="username"]').waitForEnabled(); + await electronProxyRemote.$('input[name="username"]').setValue(username); + + await electronProxyRemote.$('button=Next').waitForEnabled(); + await electronProxyRemote.$('button=Next').click(); + + await electronProxyRemote.$('input[name="password"]').waitForEnabled(); + await electronProxyRemote.$('input[name="password"]').setValue(password); + + await electronProxyRemote.$('button=Login').waitForEnabled(); + await electronProxyRemote.$('button=Login').click(); + + if (signal.aborted) { + return electronProxyRemote; + } + + debug('Waiting for the auth to finish ...'); + + const res = await authenticatePromise; + + if (res.ok === false || !(await res.json()).projectId) { + throw new Error( + `Failed to authenticate in Atlas Cloud: ${res.statusText} (${res.status})` + ); + } + + if (signal.aborted) { + return electronProxyRemote; + } + + debug('Waiting for x509 cert to propagate to Atlas clusters ...'); + + await fetch(`${sandboxUrl}/x509`); + + return electronProxyRemote; +} + +export const getAtlasCloudSandboxDefaultConnections = ( + connectionsString: string, + dbUser: string, + dbPassword: string +) => { + type AtlasCloudSandboxDefaultConnections = Record< + string, + { standard: string; standardSrv: string } + >; + const connections: AtlasCloudSandboxDefaultConnections = + JSON.parse(connectionsString); + return Object.entries(connections).map(([name, cluster]): ConnectionInfo => { + const str = new ConnectionString(cluster.standardSrv ?? cluster.standard); + str.username = dbUser; + str.password = dbPassword; + return { + id: name, + connectionOptions: { connectionString: String(str) }, + favorite: { name }, + }; + }); +}; diff --git a/packages/compass-e2e-tests/helpers/compass.ts b/packages/compass-e2e-tests/helpers/compass.ts index 6f518bdd516..02e7ca37bc5 100644 --- a/packages/compass-e2e-tests/helpers/compass.ts +++ b/packages/compass-e2e-tests/helpers/compass.ts @@ -23,7 +23,6 @@ import type { CompassBrowser } from './compass-browser'; import type { LogEntry } from './telemetry'; import Debug from 'debug'; import semver from 'semver'; -import crossSpawn from 'cross-spawn'; import { CHROME_STARTUP_FLAGS } from './chrome-startup-flags'; import { DEFAULT_CONNECTION_STRINGS, @@ -44,6 +43,19 @@ import { LOG_SCREENSHOTS_PATH, ELECTRON_PATH, } from './test-runner-paths'; +import treeKill from 'tree-kill'; + +const killAsync = async (pid: number, signal?: string) => { + return new Promise((resolve, reject) => { + treeKill(pid, signal ?? 'SIGTERM', (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }); + }); +}; const debug = Debug('compass-e2e-tests'); @@ -666,7 +678,7 @@ async function startCompassElectron( return ( p.ppid === process.pid && (p.cmd?.startsWith(binary) || - /(MongoDB Compass|Electron|electron)/.test(p.name)) + /(MongoDB Compass|Electron|electron|chromedriver)/.test(p.name)) ); }); @@ -688,7 +700,7 @@ async function startCompassElectron( ); for (const p of filteredProcesses) { - tryKillProcess(p.pid, p.name); + await killAsync(p.pid); } throw err; } @@ -803,21 +815,6 @@ export async function startBrowser( return compass; } -function tryKillProcess(pid: number, name = ''): void { - try { - debug(`Killing process ${name} with PID ${pid}`); - if (process.platform === 'win32') { - crossSpawn.sync('taskkill', ['/PID', String(pid), '/F', '/T']); - } else { - process.kill(pid); - } - } catch (err) { - debug(`Failed to kill process ${name} with PID ${pid}`, { - error: (err as Error).stack, - }); - } -} - /** * @param {string} logPath The compass application log path * @returns {Promise} @@ -1096,7 +1093,7 @@ export async function cleanup(compass?: Compass): Promise { // this only works for the electron use case try { debug(`Trying to manually kill Compass [${compass.name}]`); - tryKillProcess(compass.mainProcessPid, compass.name); + await killAsync(compass.mainProcessPid); } catch { /* already logged ... */ } diff --git a/packages/compass-e2e-tests/helpers/insert-data.ts b/packages/compass-e2e-tests/helpers/insert-data.ts index 144e9b746dd..ab0fa1894b8 100644 --- a/packages/compass-e2e-tests/helpers/insert-data.ts +++ b/packages/compass-e2e-tests/helpers/insert-data.ts @@ -1,6 +1,7 @@ import { MongoClient } from 'mongodb'; import type { Db, MongoServerError } from 'mongodb'; import { DEFAULT_CONNECTION_STRINGS } from './test-runner-context'; +import { redactConnectionString } from 'mongodb-connection-string-url'; // This is a list of all the known database names that get created by tests so // that we can know what to drop when we clean up before every test. If a new @@ -55,10 +56,14 @@ export const beforeAll = async () => { await Promise.all(clients.map((client) => client.connect())); + const connectionsForPrinting = connectionStrings + .map((str) => { + return redactConnectionString(str); + }) + .join(' and '); + console.log( - `Connected successfully to ${connectionStrings.join( - ' and ' - )} for inserting data` + `Connected successfully to ${connectionsForPrinting} for inserting data` ); test_dbs = clients.map((client) => client.db('test')); diff --git a/packages/compass-e2e-tests/helpers/test-runner-context.ts b/packages/compass-e2e-tests/helpers/test-runner-context.ts index f76a729dd31..4ad3fe13892 100644 --- a/packages/compass-e2e-tests/helpers/test-runner-context.ts +++ b/packages/compass-e2e-tests/helpers/test-runner-context.ts @@ -8,6 +8,7 @@ import type { Argv } from 'yargs'; import { hideBin } from 'yargs/helpers'; import Debug from 'debug'; import fs from 'fs'; +import { getAtlasCloudSandboxDefaultConnections } from './compass-web-sandbox'; const debug = Debug('compass-e2e-tests:context'); @@ -112,6 +113,16 @@ const atlasCloudExternalArgs = [ 'atlas-cloud-external-default-connections-file', ] as const; +const atlasCloudSandboxArgs = [ + 'test-atlas-cloud-sandbox', + 'atlas-cloud-sandbox-cloud-config', + 'atlas-cloud-sandbox-username', + 'atlas-cloud-sandbox-password', + 'atlas-cloud-sandbox-dbuser-username', + 'atlas-cloud-sandbox-dbuser-password', + 'atlas-cloud-sandbox-default-connections', +] as const; + let testEnv: 'desktop' | 'web' | undefined; function buildWebArgs(yargs: Argv) { @@ -146,6 +157,47 @@ function buildWebArgs(yargs: Argv) { description: 'Set compass-web sandbox URL', default: 'http://localhost:7777', }) + .option('test-atlas-cloud-sandbox', { + type: 'boolean', + description: + 'Run compass-web tests against a sandbox with a singed in Atlas Cloud user (allows to test Atlas-only functionality that is only available for Cloud UI backend)', + }) + .options('atlas-cloud-sandbox-cloud-config', { + choices: ['local', 'dev', 'qa', 'prod'] as const, + description: 'Atlas Cloud config preset for the sandbox', + }) + .options('atlas-cloud-sandbox-username', { + type: 'string', + description: + 'Atlas Cloud username. Will be used to sign in to an account before running the tests', + }) + .options('atlas-cloud-sandbox-password', { + type: 'string', + description: + 'Atlas Cloud user password. Will be used to sign in to an account before running the tests', + }) + .options('atlas-cloud-sandbox-dbuser-username', { + type: 'string', + description: + 'Atlas Cloud database username. Will be used to prepolulate cluster with data', + }) + .options('atlas-cloud-sandbox-dbuser-password', { + type: 'string', + description: + 'Atlas Cloud user database user password. Will be used to prepolulate cluster with data', + }) + .options('atlas-cloud-sandbox-default-connections', { + type: 'string', + description: + 'Stringified JSON with connections that are expected to be available in the Atlas project', + }) + .implies( + Object.fromEntries( + atlasCloudSandboxArgs.map((arg) => { + return [arg, atlasCloudSandboxArgs]; + }) + ) + ) .option('test-atlas-cloud-external', { type: 'boolean', description: @@ -176,6 +228,10 @@ function buildWebArgs(yargs: Argv) { }) ) ) + .conflicts({ + 'test-atlas-cloud-external': 'test-atlas-cloud-sandbox', + 'test-atlas-cloud-sandbox': 'test-atlas-cloud-external', + }) .epilogue( 'All command line arguments can be also provided as env vars with `COMPASS_E2E_` prefix:\n\n COMPASS_E2E_TEST_ATLAS_CLOUD_EXTERNAL=true compass-e2e-tests web' ) @@ -266,10 +322,49 @@ export function isTestingAtlasCloudExternal( return isTestingWeb(ctx) && !!ctx.testAtlasCloudExternal; } -debug('Running tests with the following arguments:', context); +export function isTestingAtlasCloudSandbox( + ctx = context +): ctx is WebParsedArgs & { + [K in + | 'testAtlasCloudSandbox' + | 'atlasCloudSandboxUsername' + | 'atlasCloudSandboxPassword' + | 'atlasCloudSandboxDbuserUsername' + | 'atlasCloudSandboxDbuserPassword' + | 'atlasCloudSandboxDefaultConnections']: NonNullable; +} { + return isTestingWeb(ctx) && !!ctx.testAtlasCloudSandbox; +} + +export function assertTestingAtlasCloudSandbox( + ctx = context +): asserts ctx is WebParsedArgs & { + [K in + | 'testAtlasCloudSandbox' + | 'atlasCloudSandboxUsername' + | 'atlasCloudSandboxPassword' + | 'atlasCloudSandboxDbuserUsername' + | 'atlasCloudSandboxDbuserPassword' + | 'atlasCloudSandboxDefaultConnections']: NonNullable; +} { + if (!isTestingAtlasCloudSandbox(ctx)) { + throw new Error(`Expected tested runtime to be web w/ Atlas Cloud account`); + } +} + +const contextForPrinting = Object.fromEntries( + Object.entries(context).map(([k, v]) => { + return [k, /password/i.test(k) ? '' : v]; + }) +); + +debug('Running tests with the following arguments:', contextForPrinting); process.env.HADRON_DISTRIBUTION ??= context.hadronDistribution; +process.env.COMPASS_WEB_HTTP_PROXY_CLOUD_CONFIG ??= + context.atlasCloudSandboxCloudConfig ?? 'dev'; + const testServerVersion = process.env.MONGODB_VERSION ?? process.env.MONGODB_RUNNER_VERSION; @@ -279,6 +374,12 @@ export const DEFAULT_CONNECTIONS: (ConnectionInfo & { ? JSON.parse( fs.readFileSync(context.atlasCloudExternalDefaultConnectionsFile, 'utf-8') ) + : isTestingAtlasCloudSandbox(context) + ? getAtlasCloudSandboxDefaultConnections( + context.atlasCloudSandboxDefaultConnections, + context.atlasCloudSandboxDbuserUsername, + context.atlasCloudSandboxDbuserPassword + ) : [ { id: 'test-connection-1', diff --git a/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts b/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts index 538bf555fb0..9c163d61b60 100644 --- a/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts +++ b/packages/compass-e2e-tests/helpers/test-runner-global-fixtures.ts @@ -5,13 +5,13 @@ import { DEFAULT_CONNECTIONS, DEFAULT_CONNECTIONS_SERVER_INFO, isTestingAtlasCloudExternal, + isTestingAtlasCloudSandbox, isTestingDesktop, isTestingWeb, } from './test-runner-context'; import { E2E_WORKSPACE_PATH, LOG_PATH } from './test-runner-paths'; import Debug from 'debug'; import { startTestServer } from '@mongodb-js/compass-test-server'; -import crossSpawn from 'cross-spawn'; import kill from 'tree-kill'; import { MongoClient } from 'mongodb'; import { isEnterprise } from 'mongodb-build-info'; @@ -22,6 +22,11 @@ import { removeUserDataDir, } from './compass'; import { getConnectionTitle } from '@mongodb-js/connection-info'; +import { + spawnCompassWebSandbox, + spawnCompassWebSandboxAndSignInToAtlas, + waitForCompassWebSandboxToBeReady, +} from './compass-web-sandbox'; export const globalFixturesAbortController = new AbortController(); @@ -35,11 +40,6 @@ export let abortRunner: (() => void) | undefined; const debug = Debug('compass-e2e-tests:mocha-global-fixtures'); -const wait = (ms: number) => - new Promise((resolve) => { - setTimeout(resolve, ms); - }); - const cleanupFns: (() => Promise | void)[] = []; /** @@ -92,16 +92,34 @@ export async function mochaGlobalSetup(this: Mocha.Runner) { if (isTestingWeb(context) && !isTestingAtlasCloudExternal(context)) { debug('Starting Compass Web server ...'); - const compassWeb = spawnCompassWeb(); - cleanupFns.push(() => { - if (compassWeb.pid) { - debug(`Killing compass-web [${compassWeb.pid}]`); - kill(compassWeb.pid, 'SIGINT'); - } else { - debug('No pid for compass-web'); - } - }); - await waitForCompassWebToBeReady(context.sandboxUrl); + if (isTestingAtlasCloudSandbox(context)) { + const compassWeb = await spawnCompassWebSandboxAndSignInToAtlas( + { + username: context.atlasCloudSandboxUsername, + password: context.atlasCloudSandboxPassword, + sandboxUrl: context.sandboxUrl, + waitforTimeout: context.webdriverWaitforTimeout, + }, + globalFixturesAbortController.signal + ); + cleanupFns.push(async () => { + await compassWeb.deleteSession({ shutdownDriver: true }); + }); + } else { + const compassWeb = spawnCompassWebSandbox(); + cleanupFns.push(() => { + if (compassWeb.pid) { + debug(`Killing compass-web [${compassWeb.pid}]`); + kill(compassWeb.pid, 'SIGINT'); + } else { + debug('No pid for compass-web'); + } + }); + await waitForCompassWebSandboxToBeReady( + context.sandboxUrl, + globalFixturesAbortController.signal + ); + } } } @@ -160,45 +178,6 @@ export async function mochaGlobalTeardown() { ); } -function spawnCompassWeb() { - const proc = crossSpawn.spawn( - 'npm', - ['run', '--unsafe-perm', 'start', '--workspace', '@mongodb-js/compass-web'], - { - env: { - ...process.env, - OPEN_BROWSER: 'false', // tell webpack dev server not to open the default browser - DISABLE_DEVSERVER_OVERLAY: 'true', - APP_ENV: 'webdriverio', - }, - } - ); - proc.stdout.pipe(process.stdout); - proc.stderr.pipe(process.stderr); - return proc; -} - -async function waitForCompassWebToBeReady(sandboxUrl: string) { - let serverReady = false; - const start = Date.now(); - while (!serverReady) { - throwIfAborted(); - if (Date.now() - start >= 120_000) { - throw new Error( - 'The compass-web sandbox is still not running after 120000ms' - ); - } - try { - const res = await fetch(sandboxUrl); - serverReady = res.ok; - debug('Web server ready:', serverReady); - } catch (err) { - debug('Failed to connect to dev server:', (err as any).message); - } - await wait(1000); - } -} - async function updateMongoDBServerInfo() { try { for (const { connectionOptions } of DEFAULT_CONNECTIONS) { diff --git a/packages/compass-e2e-tests/helpers/test-runner-paths.ts b/packages/compass-e2e-tests/helpers/test-runner-paths.ts index 19b835abe7b..eae834363b4 100644 --- a/packages/compass-e2e-tests/helpers/test-runner-paths.ts +++ b/packages/compass-e2e-tests/helpers/test-runner-paths.ts @@ -3,6 +3,7 @@ import electronPath from 'electron'; import electronPackageJson from 'electron/package.json'; // @ts-expect-error no types for this package import { electronToChromium } from 'electron-to-chromium'; +import os from 'os'; if (typeof electronPath !== 'string') { throw new Error( @@ -34,3 +35,13 @@ export const COVERAGE_PATH = (process.env.COVERAGE = MONOREPO_ROOT_PATH); export const ELECTRON_PATH = electronPath; export const ELECTRON_VERSION = electronPackageJson.version; export const ELECTRON_CHROMIUM_VERSION = electronToChromium(ELECTRON_VERSION); + +export const COMPASS_WEB_SANDBOX_RUNNER_PATH = path.resolve( + path.dirname(require.resolve('@mongodb-js/compass-web/package.json')), + 'scripts', + 'electron-proxy.js' +); +export const COMPASS_WEB_WDIO_USER_DATA_PATH = path.resolve( + os.tmpdir(), + `wdio-electron-proxy-${Date.now()}` +); diff --git a/packages/compass-e2e-tests/tests/atlas-cloud/rolling-indexes.test.ts b/packages/compass-e2e-tests/tests/atlas-cloud/rolling-indexes.test.ts new file mode 100644 index 00000000000..4c2fa9aac5e --- /dev/null +++ b/packages/compass-e2e-tests/tests/atlas-cloud/rolling-indexes.test.ts @@ -0,0 +1,77 @@ +import type { Compass } from '../../helpers/compass'; +import { cleanup, init, Selectors } from '../../helpers/compass'; +import type { CompassBrowser } from '../../helpers/compass-browser'; +import { createNumbersCollection } from '../../helpers/insert-data'; +import { + DEFAULT_CONNECTION_NAMES, + isTestingAtlasCloudSandbox, +} from '../../helpers/test-runner-context'; + +describe('Rolling indexes', function () { + let compass: Compass; + let browser: CompassBrowser; + + before(async function () { + compass = await init(this.test?.fullTitle()); + browser = compass.browser; + await browser.setupDefaultConnections(); + }); + + before(function () { + if (!isTestingAtlasCloudSandbox()) { + this.skip(); + } + }); + + after(async function () { + await cleanup(compass); + }); + + it('should be able to create, list, and delete rolling indexes', async function () { + // Building rolling indexes is a slow process + const extendedRollingIndexesTimeout = 1000 * 60 * 20; + + this.timeout(extendedRollingIndexesTimeout * 1.2); + + await createNumbersCollection(); + await browser.connectToDefaults(); + await browser.navigateToCollectionTab( + DEFAULT_CONNECTION_NAMES[0], + 'test', + 'numbers', + 'Indexes' + ); + + const indexName = 'compass-e2e-rolling-build-index-for-testing'; + + // Fail fast if index with this name already exists: should never happen as + // every run in CI gets their own cluster but if we try to create over + // existing or one being created, it can bork the whole cluster and we don't + // want that + await browser + .$(Selectors.indexComponent(indexName)) + .waitForDisplayed({ reverse: true }); + + await browser.createIndex( + { fieldName: 'i', indexType: '1' }, + { rollingIndex: true, indexName } + ); + + // Special rolling index badge indicating that build has started (we got it + // listed by automation agent) + await browser + .$(Selectors.indexComponent(indexName)) + .$('[data-testid="index-building"]') + .waitForDisplayed(); + + // Now wait for index to finish building + await browser + .$(Selectors.indexComponent(indexName)) + .$('[data-testid="index-ready"]') + .waitForDisplayed({ timeout: extendedRollingIndexesTimeout }); + + // Now that it's ready, delete it (it will also check that it's eventually + // removed from the list) + await browser.dropIndex(indexName); + }); +}); diff --git a/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx b/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx index 9e7916625f0..3590ad90475 100644 --- a/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx +++ b/packages/compass-indexes/src/components/create-index-form/checkbox-input.tsx @@ -26,17 +26,21 @@ export const CheckboxInput: React.FunctionComponent = ({ checked, onChange, }) => { - const labelId = `create-index-modal-${name}-checkbox`; + const labelId = `create-index-modal-${name}`; return ( { onChange(name, event.target.checked); }} - label={} + label={ + + } // @ts-expect-error leafygreen types only allow strings here, but can // render a ReactNode too (and we use that to render links inside // descriptions) diff --git a/packages/compass-web/sandbox/sandbox-atlas-sign-in.tsx b/packages/compass-web/sandbox/sandbox-atlas-sign-in.tsx index e87d8370f3d..00b04fb64fb 100644 --- a/packages/compass-web/sandbox/sandbox-atlas-sign-in.tsx +++ b/packages/compass-web/sandbox/sandbox-atlas-sign-in.tsx @@ -55,6 +55,13 @@ function ToastBodyWithAction({ ); } +const IS_CI = + process.env.ci || + process.env.CI || + process.env.IS_CI || + process.env.NODE_ENV === 'test' || + process.env.APP_ENV === 'webdriverio'; + export function useAtlasProxySignIn(): AtlasLoginReturnValue { const [status, setStatus] = useState('checking'); const [projectId, setProjectId] = useState(null); @@ -99,6 +106,9 @@ export function useAtlasProxySignIn(): AtlasLoginReturnValue { } setProjectId(projectId); setStatus('signed-in'); + if (IS_CI) { + return; + } openToast('atlas-proxy', { title: 'Signed in to local Atlas Cloud proxy', description: ( @@ -116,13 +126,7 @@ export function useAtlasProxySignIn(): AtlasLoginReturnValue { .catch(() => { if (mounted) { setStatus('signed-out'); - if ( - process.env.ci || - process.env.CI || - process.env.IS_CI || - process.env.NODE_ENV === 'test' || - process.env.APP_ENV === 'webdriverio' - ) { + if (IS_CI) { return; } openToast('atlas-proxy', { diff --git a/packages/compass-web/scripts/electron-proxy.js b/packages/compass-web/scripts/electron-proxy.js index 2d7db2d6805..df51a2d87bb 100644 --- a/packages/compass-web/scripts/electron-proxy.js +++ b/packages/compass-web/scripts/electron-proxy.js @@ -542,6 +542,11 @@ function cleanupAndExit() { } electronApp.whenReady().then(async () => { + // Create an empty browser window so that webdriver session can be + // immediately get attached to something without failing + const emptyBrowserWindow = new BrowserWindow({ show: false }); + emptyBrowserWindow.loadURL('about:blank'); + electronApp.on('window-all-closed', () => { // We want proxy to keep running even when all the windows are closed, but // hide the dock icon because there are not windows associated with it From 3f988c4ee7e2d5dbc918417d8f5264f952e03f55 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:28:58 +0000 Subject: [PATCH 60/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6415) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 47131e74411..0081f08f4a4 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 01:06 PM +Generated on Tue, Oct 29, 2024 at 01:28 PM ## Table of Contents From d4533d1d3a20ac2440e96ed2dc6b07536ddb45ec Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Tue, 29 Oct 2024 14:36:52 +0100 Subject: [PATCH 61/71] chore(scripts): include electron-to-chromium to the list of packages to be updated with electron (#6414) --- scripts/update-electron.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/update-electron.js b/scripts/update-electron.js index e184c8fe3e1..fde6b285116 100644 --- a/scripts/update-electron.js +++ b/scripts/update-electron.js @@ -109,12 +109,16 @@ async function main() { ); const latestBrowserslistVersion = await getLatestVersion('browserslist'); + const latestElectronToChromiumVersion = await getLatestVersion( + 'electron-to-chromium' + ); const newVersions = { 'node-abi': `^${latestNodeAbiVersion}`, '@electron/remote': `^${latestElectronRemoteVersion}`, '@electron/rebuild': `^${latestElectronRebuildVersion}`, electron: `^${latestElectronVersion}`, + 'electron-to-chromium': `^${latestElectronToChromiumVersion}`, browserslist: `^${latestBrowserslistVersion}`, }; From f1b8e6ee7847982bbe46445c6a7192580564eb7e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 13:43:32 +0000 Subject: [PATCH 62/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6416) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 0081f08f4a4..7cebe5b6500 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 01:28 PM +Generated on Tue, Oct 29, 2024 at 01:43 PM ## Table of Contents From fc362f1a75d335870223b190507531c965e209bf Mon Sep 17 00:00:00 2001 From: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> Date: Tue, 29 Oct 2024 10:03:34 -0400 Subject: [PATCH 63/71] chore(release): bump package versions (#6366) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- configs/webpack-config-compass/package.json | 2 +- package-lock.json | 1500 ++++++++--------- packages/atlas-service/package.json | 18 +- packages/collection-model/package.json | 4 +- packages/compass-aggregations/package.json | 42 +- packages/compass-app-stores/package.json | 16 +- packages/compass-collection/package.json | 20 +- packages/compass-components/package.json | 4 +- .../package.json | 12 +- .../package.json | 14 +- packages/compass-connections/package.json | 22 +- packages/compass-crud/package.json | 32 +- packages/compass-e2e-tests/package.json | 8 +- packages/compass-editor/package.json | 4 +- packages/compass-explain-plan/package.json | 16 +- .../compass-export-to-language/package.json | 16 +- packages/compass-field-store/package.json | 6 +- packages/compass-find-in-page/package.json | 6 +- packages/compass-generative-ai/package.json | 12 +- packages/compass-global-writes/package.json | 16 +- packages/compass-import-export/package.json | 24 +- packages/compass-indexes/package.json | 28 +- packages/compass-intercom/package.json | 6 +- packages/compass-logging/package.json | 4 +- .../package.json | 4 +- .../compass-preferences-model/package.json | 8 +- packages/compass-query-bar/package.json | 28 +- .../package.json | 22 +- .../compass-schema-validation/package.json | 26 +- packages/compass-schema/package.json | 24 +- packages/compass-serverstats/package.json | 12 +- packages/compass-settings/package.json | 14 +- packages/compass-shell/package.json | 18 +- packages/compass-sidebar/package.json | 30 +- packages/compass-telemetry/package.json | 6 +- packages/compass-user-data/package.json | 6 +- packages/compass-utils/package.json | 2 +- packages/compass-web/package.json | 54 +- packages/compass-welcome/package.json | 14 +- packages/compass-workspaces/package.json | 16 +- packages/compass/package.json | 80 +- packages/connection-form/package.json | 10 +- packages/connection-info/package.json | 4 +- packages/connection-storage/package.json | 16 +- packages/data-service/package.json | 6 +- packages/database-model/package.json | 6 +- .../databases-collections-list/package.json | 14 +- packages/databases-collections/package.json | 28 +- packages/hadron-build/package.json | 2 +- packages/hadron-document/package.json | 2 +- packages/hadron-ipc/package.json | 2 +- packages/instance-model/package.json | 8 +- packages/my-queries-storage/package.json | 6 +- scripts/package.json | 2 +- 54 files changed, 1151 insertions(+), 1151 deletions(-) diff --git a/configs/webpack-config-compass/package.json b/configs/webpack-config-compass/package.json index 4dbf25fd636..1e917ca91ab 100644 --- a/configs/webpack-config-compass/package.json +++ b/configs/webpack-config-compass/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.4.4", + "version": "1.4.5", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/package-lock.json b/package-lock.json index d6eb2b175fa..ff4a8ccb0d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -497,7 +497,7 @@ }, "configs/webpack-config-compass": { "name": "@mongodb-js/webpack-config-compass", - "version": "1.4.4", + "version": "1.4.5", "license": "SSPL", "dependencies": { "@babel/core": "^7.21.4", @@ -43030,22 +43030,22 @@ }, "packages/atlas-service": { "name": "@mongodb-js/atlas-service", - "version": "0.30.1", + "version": "0.31.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -43136,12 +43136,12 @@ }, "packages/collection-model": { "name": "mongodb-collection-model", - "version": "5.23.5", + "version": "5.23.6", "license": "SSPL", "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2" }, "devDependencies": { @@ -43171,56 +43171,56 @@ "devDependencies": { "@electron/rebuild": "^3.7.0", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-aggregations": "^9.46.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-databases-collections": "^1.43.1", - "@mongodb-js/compass-explain-plan": "^6.44.1", - "@mongodb-js/compass-export-to-language": "^9.20.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-find-in-page": "^4.31.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-global-writes": "^1.3.1", - "@mongodb-js/compass-import-export": "^7.43.1", - "@mongodb-js/compass-indexes": "^5.43.1", - "@mongodb-js/compass-intercom": "^0.13.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-saved-aggregations-queries": "^1.44.1", - "@mongodb-js/compass-schema": "^6.45.1", - "@mongodb-js/compass-schema-validation": "^6.44.1", - "@mongodb-js/compass-serverstats": "^16.43.1", - "@mongodb-js/compass-settings": "^0.42.1", - "@mongodb-js/compass-shell": "^3.43.1", - "@mongodb-js/compass-sidebar": "^5.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.42.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-aggregations": "^9.47.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connection-import-export": "^0.41.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-databases-collections": "^1.44.0", + "@mongodb-js/compass-explain-plan": "^6.45.0", + "@mongodb-js/compass-export-to-language": "^9.21.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-find-in-page": "^4.32.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-global-writes": "^1.4.0", + "@mongodb-js/compass-import-export": "^7.44.0", + "@mongodb-js/compass-indexes": "^5.44.0", + "@mongodb-js/compass-intercom": "^0.13.2", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-saved-aggregations-queries": "^1.45.0", + "@mongodb-js/compass-schema": "^6.46.0", + "@mongodb-js/compass-schema-validation": "^6.45.0", + "@mongodb-js/compass-serverstats": "^16.44.0", + "@mongodb-js/compass-settings": "^0.43.0", + "@mongodb-js/compass-shell": "^3.44.0", + "@mongodb-js/compass-sidebar": "^5.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-welcome": "^0.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongodb-js/webpack-config-compass": "^1.4.5", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", "chai": "^4.3.4", "chalk": "^4.1.2", "clean-stack": "^2.0.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -43232,8 +43232,8 @@ "ensure-error": "^3.0.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-build": "^25.5.12", - "hadron-ipc": "^3.2.23", + "hadron-build": "^25.5.13", + "hadron-ipc": "^3.2.24", "local-links": "^1.4.0", "make-fetch-happen": "^10.2.1", "marky": "^1.2.1", @@ -43241,8 +43241,8 @@ "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-data-service": "^22.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2", @@ -43262,7 +43262,7 @@ }, "packages/compass-aggregations": { "name": "@mongodb-js/compass-aggregations", - "version": "9.46.1", + "version": "9.47.0", "license": "SSPL", "dependencies": { "@babel/generator": "^7.19.5", @@ -43271,34 +43271,34 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -43363,17 +43363,17 @@ }, "packages/compass-app-stores": { "name": "@mongodb-js/compass-app-stores", - "version": "7.30.1", + "version": "7.31.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/connection-info": "^0.9.2", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, @@ -43427,20 +43427,20 @@ }, "packages/compass-collection": { "name": "@mongodb-js/compass-collection", - "version": "4.43.1", + "version": "4.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/mongodb-constants": "^0.10.2", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.5", + "mongodb-collection-model": "^5.23.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -43501,7 +43501,7 @@ }, "packages/compass-components": { "name": "@mongodb-js/compass-components", - "version": "1.30.1", + "version": "1.31.0", "license": "SSPL", "dependencies": { "@dnd-kit/core": "^6.0.7", @@ -43552,7 +43552,7 @@ "@tanstack/table-core": "^8.14.0", "bson": "^6.8.0", "focus-trap-react": "^9.0.2", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "is-electron-renderer": "^2.0.1", "lodash": "^4.17.21", @@ -43710,14 +43710,14 @@ }, "packages/compass-connection-import-export": { "name": "@mongodb-js/compass-connection-import-export", - "version": "0.40.1", + "version": "0.41.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/connection-storage": "^0.22.2", - "compass-preferences-model": "^2.29.1", - "hadron-ipc": "^3.2.23", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/connection-storage": "^0.22.3", + "compass-preferences-model": "^2.29.2", + "hadron-ipc": "^3.2.24", "react": "^17.0.2" }, "devDependencies": { @@ -43772,24 +43772,24 @@ }, "packages/compass-connections": { "name": "@mongodb-js/compass-connections", - "version": "1.44.1", + "version": "1.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-storage": "^0.22.3", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -43821,15 +43821,15 @@ }, "packages/compass-connections-navigation": { "name": "@mongodb-js/compass-connections-navigation", - "version": "1.43.1", + "version": "1.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "compass-preferences-model": "^2.29.2", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", "react-virtualized-auto-sizer": "^1.0.6", @@ -43916,33 +43916,33 @@ }, "packages/compass-crud": { "name": "@mongodb-js/compass-crud", - "version": "13.44.1", + "version": "13.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/explain-plan-helper": "^1.2.4", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -43968,7 +43968,7 @@ "enzyme": "^3.11.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", @@ -44020,11 +44020,11 @@ } }, "packages/compass-e2e-tests": { - "version": "1.27.3", + "version": "1.27.4", "devDependencies": { "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -44038,7 +44038,7 @@ "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -44046,7 +44046,7 @@ "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", "glob": "^10.2.5", - "hadron-build": "^25.5.12", + "hadron-build": "^25.5.13", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", @@ -44426,7 +44426,7 @@ }, "packages/compass-editor": { "name": "@mongodb-js/compass-editor", - "version": "0.31.1", + "version": "0.32.0", "license": "SSPL", "dependencies": { "@codemirror/autocomplete": "^6.17.0", @@ -44438,7 +44438,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-components": "^1.31.0", "@mongodb-js/mongodb-constants": "^0.10.0", "mongodb-query-parser": "^4.2.3", "polished": "^4.2.2", @@ -44492,17 +44492,17 @@ }, "packages/compass-explain-plan": { "name": "@mongodb-js/compass-explain-plan", - "version": "6.44.1", + "version": "6.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/explain-plan-helper": "^1.2.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", @@ -44571,18 +44571,18 @@ }, "packages/compass-export-to-language": { "name": "@mongodb-js/compass-export-to-language", - "version": "9.20.1", + "version": "9.21.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson-transpilers": "^3.0.10", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", @@ -44634,11 +44634,11 @@ }, "packages/compass-field-store": { "name": "@mongodb-js/compass-field-store", - "version": "9.19.1", + "version": "9.20.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-schema": "^12.2.0", @@ -44697,12 +44697,12 @@ }, "packages/compass-find-in-page": { "name": "@mongodb-js/compass-find-in-page", - "version": "4.31.1", + "version": "4.32.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-components": "^1.31.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -44763,15 +44763,15 @@ }, "packages/compass-generative-ai": { "name": "@mongodb-js/compass-generative-ai", - "version": "0.24.1", + "version": "0.25.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-intercom": "^0.13.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-intercom": "^0.13.2", + "@mongodb-js/compass-logging": "^1.4.9", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", @@ -44864,16 +44864,16 @@ }, "packages/compass-global-writes": { "name": "@mongodb-js/compass-global-writes", - "version": "1.3.1", + "version": "1.4.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-ns": "^2.4.2", @@ -45058,27 +45058,27 @@ }, "packages/compass-import-export": { "name": "@mongodb-js/compass-import-export", - "version": "7.43.1", + "version": "7.44.0", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "debug": "^4.3.4", "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", - "hadron-ipc": "^3.2.23", + "hadron-document": "^8.6.5", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -45152,28 +45152,28 @@ }, "packages/compass-indexes": { "name": "@mongodb-js/compass-indexes", - "version": "5.43.1", + "version": "5.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -45282,11 +45282,11 @@ }, "packages/compass-intercom": { "name": "@mongodb-js/compass-intercom", - "version": "0.13.1", + "version": "0.13.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "compass-preferences-model": "^2.29.1" + "@mongodb-js/compass-logging": "^1.4.9", + "compass-preferences-model": "^2.29.2" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -45389,12 +45389,12 @@ }, "packages/compass-logging": { "name": "@mongodb-js/compass-logging", - "version": "1.4.8", + "version": "1.4.9", "license": "SSPL", "dependencies": { "debug": "^4.3.4", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "is-electron-renderer": "^2.0.1", "mongodb-log-writer": "^1.4.2", "react": "^17.0.2" @@ -45447,10 +45447,10 @@ }, "packages/compass-maybe-protect-connection-string": { "name": "@mongodb-js/compass-maybe-protect-connection-string", - "version": "0.27.1", + "version": "0.27.2", "license": "SSPL", "dependencies": { - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "mongodb-connection-string-url": "^3.0.1" }, "devDependencies": { @@ -45500,15 +45500,15 @@ } }, "packages/compass-preferences-model": { - "version": "2.29.1", + "version": "2.29.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-user-data": "^0.3.9", "@mongodb-js/devtools-proxy-support": "^0.4.1", "bson": "^6.8.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "react": "^17.0.2", @@ -45566,27 +45566,27 @@ }, "packages/compass-query-bar": { "name": "@mongodb-js/compass-query-bar", - "version": "8.45.1", + "version": "8.46.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-query-util": "^2.2.9", @@ -45644,20 +45644,20 @@ }, "packages/compass-saved-aggregations-queries": { "name": "@mongodb-js/compass-saved-aggregations-queries", - "version": "1.44.1", + "version": "1.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/my-queries-storage": "^0.18.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "fuse.js": "^6.5.3", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", @@ -45720,23 +45720,23 @@ }, "packages/compass-schema": { "name": "@mongodb-js/compass-schema", - "version": "6.45.1", + "version": "6.46.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/reflux-state-mixin": "^1.0.7", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "d3": "^3.5.17", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", @@ -45755,7 +45755,7 @@ "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", @@ -45779,20 +45779,20 @@ }, "packages/compass-schema-validation": { "name": "@mongodb-js/compass-schema-validation", - "version": "6.44.1", + "version": "6.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", @@ -45818,9 +45818,9 @@ "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", @@ -45856,14 +45856,14 @@ }, "packages/compass-serverstats": { "name": "@mongodb-js/compass-serverstats", - "version": "16.43.1", + "version": "16.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", @@ -45905,16 +45905,16 @@ }, "packages/compass-settings": { "name": "@mongodb-js/compass-settings", - "version": "0.42.1", + "version": "0.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", @@ -45974,21 +45974,21 @@ }, "packages/compass-shell": { "name": "@mongodb-js/compass-shell", - "version": "3.43.1", + "version": "3.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongosh/browser-repl": "^2.3.2", "@mongosh/logging": "^2.3.2", "@mongosh/node-runtime-worker-thread": "^2.3.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46044,25 +46044,25 @@ }, "packages/compass-sidebar": { "name": "@mongodb-js/compass-sidebar", - "version": "5.44.1", + "version": "5.45.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-connections-navigation": "^1.43.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connection-import-export": "^0.41.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-connections-navigation": "^1.44.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46086,7 +46086,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "nyc": "^15.1.0", "prettier": "^2.7.1", "react-dom": "^17.0.2", @@ -46124,12 +46124,12 @@ }, "packages/compass-telemetry": { "name": "@mongodb-js/compass-telemetry", - "version": "1.2.1", + "version": "1.2.2", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-logging": "^1.4.9", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "react": "^17.0.2" }, "devDependencies": { @@ -46285,11 +46285,11 @@ }, "packages/compass-user-data": { "name": "@mongodb-js/compass-user-data", - "version": "0.3.8", + "version": "0.3.9", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-utils": "^0.6.12", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-utils": "^0.6.13", "write-file-atomic": "^5.0.1", "zod": "^3.22.3" }, @@ -46365,7 +46365,7 @@ }, "packages/compass-utils": { "name": "@mongodb-js/compass-utils", - "version": "0.6.12", + "version": "0.6.13", "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", @@ -46419,39 +46419,39 @@ }, "packages/compass-web": { "name": "@mongodb-js/compass-web", - "version": "0.9.1", + "version": "0.10.0", "license": "SSPL", "devDependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-aggregations": "^9.46.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-databases-collections": "^1.43.1", - "@mongodb-js/compass-explain-plan": "^6.44.1", - "@mongodb-js/compass-export-to-language": "^9.20.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-global-writes": "^1.3.1", - "@mongodb-js/compass-indexes": "^5.43.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-schema": "^6.45.1", - "@mongodb-js/compass-schema-validation": "^6.44.1", - "@mongodb-js/compass-sidebar": "^5.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-welcome": "^0.42.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-aggregations": "^9.47.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-databases-collections": "^1.44.0", + "@mongodb-js/compass-explain-plan": "^6.45.0", + "@mongodb-js/compass-export-to-language": "^9.21.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-global-writes": "^1.4.0", + "@mongodb-js/compass-indexes": "^5.44.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-schema": "^6.46.0", + "@mongodb-js/compass-schema-validation": "^6.45.0", + "@mongodb-js/compass-sidebar": "^5.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-welcome": "^0.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongodb-js/webpack-config-compass": "^1.4.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -46463,7 +46463,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -46479,7 +46479,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", @@ -46684,15 +46684,15 @@ }, "packages/compass-welcome": { "name": "@mongodb-js/compass-welcome", - "version": "0.42.1", + "version": "0.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "redux": "^4.2.1", @@ -46750,19 +46750,19 @@ }, "packages/compass-workspaces": { "name": "@mongodb-js/compass-workspaces", - "version": "0.25.1", + "version": "0.26.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -46930,18 +46930,18 @@ }, "packages/connection-form": { "name": "@mongodb-js/connection-form", - "version": "1.42.0", + "version": "1.43.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/shell-bson-parser": "^1.1.2", "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-query-parser": "^4.2.3", "react": "^17.0.2" }, @@ -46997,13 +46997,13 @@ }, "packages/connection-info": { "name": "@mongodb-js/connection-info", - "version": "0.9.1", + "version": "0.9.2", "license": "SSPL", "dependencies": { "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5" + "mongodb-data-service": "^22.23.6" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47123,19 +47123,19 @@ }, "packages/connection-storage": { "name": "@mongodb-js/connection-storage", - "version": "0.22.2", + "version": "0.22.3", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-info": "^0.9.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "keytar": "^7.9.0", "lodash": "^4.17.21", "mongodb-connection-string-url": "^3.0.1", @@ -47188,11 +47188,11 @@ }, "packages/data-service": { "name": "mongodb-data-service", - "version": "22.23.5", + "version": "22.23.6", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-utils": "^0.6.12", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-utils": "^0.6.13", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "bson": "^6.8.0", @@ -47373,13 +47373,13 @@ }, "packages/database-model": { "name": "mongodb-database-model", - "version": "2.23.5", + "version": "2.23.6", "license": "SSPL", "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5" + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -47440,24 +47440,24 @@ }, "packages/databases-collections": { "name": "@mongodb-js/compass-databases-collections", - "version": "1.43.1", + "version": "1.44.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/databases-collections-list": "^1.41.1", - "@mongodb-js/my-queries-storage": "^0.17.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/databases-collections-list": "^1.42.0", + "@mongodb-js/my-queries-storage": "^0.18.0", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "prop-types": "^15.7.2", @@ -47487,15 +47487,15 @@ }, "packages/databases-collections-list": { "name": "@mongodb-js/databases-collections-list", - "version": "1.41.1", + "version": "1.42.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", + "compass-preferences-model": "^2.29.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, @@ -47739,7 +47739,7 @@ } }, "packages/hadron-build": { - "version": "25.5.12", + "version": "25.5.13", "hasInstallScript": true, "license": "SSPL", "dependencies": { @@ -48496,7 +48496,7 @@ } }, "packages/hadron-document": { - "version": "8.6.4", + "version": "8.6.5", "license": "SSPL", "dependencies": { "bson": "^6.8.0", @@ -48616,7 +48616,7 @@ } }, "packages/hadron-ipc": { - "version": "3.2.23", + "version": "3.2.24", "license": "SSPL", "dependencies": { "debug": "^4.3.4", @@ -48687,13 +48687,13 @@ }, "packages/instance-model": { "name": "mongodb-instance-model", - "version": "12.24.5", + "version": "12.24.6", "license": "SSPL", "dependencies": { "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", - "mongodb-database-model": "^2.23.5" + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", + "mongodb-database-model": "^2.23.6" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -48959,11 +48959,11 @@ }, "packages/my-queries-storage": { "name": "@mongodb-js/my-queries-storage", - "version": "0.17.1", + "version": "0.18.0", "license": "SSPL", "dependencies": { - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-user-data": "^0.3.9", "bson": "^6.8.0", "hadron-app-registry": "^9.2.7", "react": "^17.0.2" @@ -49580,7 +49580,7 @@ }, "scripts": { "name": "@mongodb-js/compass-scripts", - "version": "0.16.23", + "version": "0.16.24", "license": "SSPL", "dependencies": { "@babel/core": "^7.24.3", @@ -54913,12 +54913,12 @@ "@mongodb-js/atlas-service": { "version": "file:packages/atlas-service", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -54931,12 +54931,12 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -54980,24 +54980,24 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/shell-bson-parser": "^1.1.2", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -55008,21 +55008,21 @@ "@types/semver": "^7.3.9", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -55066,10 +55066,10 @@ "@mongodb-js/compass-app-stores": { "version": "file:packages/compass-app-stores", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55084,9 +55084,9 @@ "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -55121,13 +55121,13 @@ "@mongodb-js/compass-collection": { "version": "file:packages/compass-collection", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.2", @@ -55141,13 +55141,13 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.5", + "mongodb-collection-model": "^5.23.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -55246,7 +55246,7 @@ "chai": "^4.3.4", "eslint": "^7.25.0", "focus-trap-react": "^9.0.2", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "is-electron-renderer": "^2.0.1", "lodash": "^4.17.21", @@ -55375,9 +55375,9 @@ "@mongodb-js/compass-connection-import-export": { "version": "file:packages/compass-connection-import-export", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55389,11 +55389,11 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "mocha": "^10.2.0", "nyc": "^15.1.0", @@ -55430,14 +55430,14 @@ "@mongodb-js/compass-connections": { "version": "file:packages/compass-connections", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55451,7 +55451,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -55460,7 +55460,7 @@ "mocha": "^10.2.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "nyc": "^15.1.0", "prettier": "^2.7.1", "react": "^17.0.2", @@ -55499,11 +55499,11 @@ "@mongodb-js/compass-connections-navigation": { "version": "file:packages/compass-connections-navigation", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55518,7 +55518,7 @@ "@types/react-window": "^1.8.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -55560,21 +55560,21 @@ "@mongodb-js/compass-crud": { "version": "file:packages/compass-crud", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", @@ -55587,20 +55587,20 @@ "bson": "^6.8.0", "chai": "^4.1.2", "chai-as-promised": "^7.1.1", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-data-service": "^22.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -55624,32 +55624,32 @@ "@mongodb-js/compass-databases-collections": { "version": "file:packages/databases-collections", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/databases-collections-list": "^1.41.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/databases-collections-list": "^1.42.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", @@ -55698,7 +55698,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-components": "^1.31.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -55748,12 +55748,12 @@ "@mongodb-js/compass-explain-plan": { "version": "file:packages/compass-explain-plan", "requires": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -55764,7 +55764,7 @@ "@types/d3-flextree": "^2.1.0", "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", @@ -55818,12 +55818,12 @@ "@mongodb-js/compass-export-to-language": { "version": "file:packages/compass-export-to-language", "requires": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55832,7 +55832,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "bson-transpilers": "^3.0.10", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -55874,8 +55874,8 @@ "@mongodb-js/compass-field-store": { "version": "file:packages/compass-field-store", "requires": { - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55928,7 +55928,7 @@ "@mongodb-js/compass-find-in-page": { "version": "file:packages/compass-find-in-page", "requires": { - "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-components": "^1.31.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -55946,7 +55946,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "mocha": "^10.2.0", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -55987,10 +55987,10 @@ "@mongodb-js/compass-generative-ai": { "version": "file:packages/compass-generative-ai", "requires": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-intercom": "^0.13.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-intercom": "^0.13.2", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56003,7 +56003,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -56067,13 +56067,13 @@ "@mongodb-js/compass-global-writes": { "version": "file:packages/compass-global-writes", "requires": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56185,14 +56185,14 @@ "version": "file:packages/compass-import-export", "requires": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56211,19 +56211,19 @@ "bson": "^6.8.0", "chai": "^4.3.6", "chai-as-promised": "^7.1.1", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "debug": "^4.3.4", "depcheck": "^1.4.1", "electron": "^32.2.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", - "hadron-ipc": "^3.2.23", + "hadron-document": "^8.6.5", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", @@ -56269,16 +56269,16 @@ "@mongodb-js/compass-indexes": { "version": "file:packages/compass-indexes", "requires": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", @@ -56289,7 +56289,7 @@ "@types/numeral": "^2.0.5", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "electron-mocha": "^12.2.0", @@ -56298,8 +56298,8 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", @@ -56347,7 +56347,7 @@ "@mongodb-js/compass-intercom": { "version": "file:packages/compass-intercom", "requires": { - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56356,7 +56356,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -56463,7 +56463,7 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "is-electron-renderer": "^2.0.1", "mocha": "^10.2.0", "mongodb-log-writer": "^1.4.2", @@ -56509,7 +56509,7 @@ "@types/mocha": "^9.0.0", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", @@ -56548,26 +56548,26 @@ "@mongodb-js/compass-query-bar": { "version": "file:packages/compass-query-bar", "requires": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "electron-mocha": "^12.2.0", @@ -56576,7 +56576,7 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-query-util": "^2.2.9", @@ -56617,17 +56617,17 @@ "@mongodb-js/compass-saved-aggregations-queries": { "version": "file:packages/compass-saved-aggregations-queries", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", @@ -56639,7 +56639,7 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -56686,17 +56686,17 @@ "@mongodb-js/compass-schema": { "version": "file:packages/compass-schema", "requires": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/testing-library-compass": "^1.0.2", @@ -56709,13 +56709,13 @@ "@types/react-dom": "^17.0.10", "bson": "^6.8.0", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "d3": "^3.5.17", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", @@ -56763,15 +56763,15 @@ "@mongodb-js/compass-schema-validation": { "version": "file:packages/compass-schema-validation", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -56780,18 +56780,18 @@ "@types/enzyme": "^3.10.14", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", @@ -57000,11 +57000,11 @@ "@mongodb-js/compass-serverstats": { "version": "file:packages/compass-serverstats", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57047,10 +57047,10 @@ "@mongodb-js/compass-settings": { "version": "file:packages/compass-settings", "requires": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57063,12 +57063,12 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "mocha": "^10.2.0", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -57109,13 +57109,13 @@ "@mongodb-js/compass-shell": { "version": "file:packages/compass-shell", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57127,7 +57127,7 @@ "@types/enzyme": "^3.10.14", "bson": "^6.8.0", "chai": "^4.2.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "electron-mocha": "^12.2.0", @@ -57170,17 +57170,17 @@ "@mongodb-js/compass-sidebar": { "version": "file:packages/compass-sidebar", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-connections-navigation": "^1.43.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connection-import-export": "^0.41.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-connections-navigation": "^1.44.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57193,7 +57193,7 @@ "@types/react-dom": "^17.0.10", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -57201,8 +57201,8 @@ "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-data-service": "^22.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -57243,7 +57243,7 @@ "@mongodb-js/compass-telemetry": { "version": "file:packages/compass-telemetry", "requires": { - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57256,7 +57256,7 @@ "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "mocha": "^10.2.0", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -57391,8 +57391,8 @@ "@mongodb-js/compass-user-data": { "version": "file:packages/compass-user-data", "requires": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-utils": "^0.6.12", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-utils": "^0.6.13", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57500,36 +57500,36 @@ "@mongodb-js/compass-web": { "version": "file:packages/compass-web", "requires": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-aggregations": "^9.46.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-databases-collections": "^1.43.1", - "@mongodb-js/compass-explain-plan": "^6.44.1", - "@mongodb-js/compass-export-to-language": "^9.20.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-global-writes": "^1.3.1", - "@mongodb-js/compass-indexes": "^5.43.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-schema": "^6.45.1", - "@mongodb-js/compass-schema-validation": "^6.44.1", - "@mongodb-js/compass-sidebar": "^5.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-welcome": "^0.42.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-aggregations": "^9.47.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-databases-collections": "^1.44.0", + "@mongodb-js/compass-explain-plan": "^6.45.0", + "@mongodb-js/compass-export-to-language": "^9.21.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-global-writes": "^1.4.0", + "@mongodb-js/compass-indexes": "^5.44.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-schema": "^6.46.0", + "@mongodb-js/compass-schema-validation": "^6.45.0", + "@mongodb-js/compass-sidebar": "^5.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-welcome": "^0.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongodb-js/webpack-config-compass": "^1.4.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -57541,7 +57541,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -57557,7 +57557,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", @@ -57733,11 +57733,11 @@ "@mongodb-js/compass-welcome": { "version": "file:packages/compass-welcome", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57749,7 +57749,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", @@ -57792,10 +57792,10 @@ "@mongodb-js/compass-workspaces": { "version": "file:packages/compass-workspaces", "requires": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57809,15 +57809,15 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -57934,9 +57934,9 @@ "@mongodb-js/connection-form": { "version": "file:packages/connection-form", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -57958,7 +57958,7 @@ "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-query-parser": "^4.2.3", "nyc": "^15.1.0", "prettier": "^2.7.1", @@ -58010,7 +58010,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "nyc": "^15.1.0", "prettier": "^2.7.1", "sinon": "^17.0.1", @@ -58120,11 +58120,11 @@ "@mongodb-js/connection-storage": { "version": "file:packages/connection-storage", "requires": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58134,12 +58134,12 @@ "@types/sinon-chai": "^3.2.5", "bson": "^6.8.0", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "electron": "^32.2.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "keytar": "^7.9.0", "lodash": "^4.17.21", "mocha": "^10.2.0", @@ -58176,11 +58176,11 @@ "@mongodb-js/databases-collections-list": { "version": "file:packages/databases-collections-list", "requires": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -58192,7 +58192,7 @@ "@types/react": "^17.0.5", "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -58813,8 +58813,8 @@ "@mongodb-js/my-queries-storage": { "version": "file:packages/my-queries-storage", "requires": { - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-user-data": "^0.3.9", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -66710,7 +66710,7 @@ "requires": { "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -66724,7 +66724,7 @@ "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -66732,7 +66732,7 @@ "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", "glob": "^10.2.5", - "hadron-build": "^25.5.12", + "hadron-build": "^25.5.13", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", @@ -67012,8 +67012,8 @@ "compass-preferences-model": { "version": "file:packages/compass-preferences-model", "requires": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-user-data": "^0.3.9", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", @@ -67026,7 +67026,7 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "mocha": "^10.2.0", @@ -78532,7 +78532,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "xvfb-maybe": "^0.2.1" } @@ -78542,50 +78542,50 @@ "requires": { "@electron/rebuild": "^3.7.0", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-aggregations": "^9.46.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-databases-collections": "^1.43.1", - "@mongodb-js/compass-explain-plan": "^6.44.1", - "@mongodb-js/compass-export-to-language": "^9.20.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-find-in-page": "^4.31.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-global-writes": "^1.3.1", - "@mongodb-js/compass-import-export": "^7.43.1", - "@mongodb-js/compass-indexes": "^5.43.1", - "@mongodb-js/compass-intercom": "^0.13.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-saved-aggregations-queries": "^1.44.1", - "@mongodb-js/compass-schema": "^6.45.1", - "@mongodb-js/compass-schema-validation": "^6.44.1", - "@mongodb-js/compass-serverstats": "^16.43.1", - "@mongodb-js/compass-settings": "^0.42.1", - "@mongodb-js/compass-shell": "^3.43.1", - "@mongodb-js/compass-sidebar": "^5.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.42.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-aggregations": "^9.47.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connection-import-export": "^0.41.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-databases-collections": "^1.44.0", + "@mongodb-js/compass-explain-plan": "^6.45.0", + "@mongodb-js/compass-export-to-language": "^9.21.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-find-in-page": "^4.32.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-global-writes": "^1.4.0", + "@mongodb-js/compass-import-export": "^7.44.0", + "@mongodb-js/compass-indexes": "^5.44.0", + "@mongodb-js/compass-intercom": "^0.13.2", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-saved-aggregations-queries": "^1.45.0", + "@mongodb-js/compass-schema": "^6.46.0", + "@mongodb-js/compass-schema-validation": "^6.45.0", + "@mongodb-js/compass-serverstats": "^16.44.0", + "@mongodb-js/compass-settings": "^0.43.0", + "@mongodb-js/compass-shell": "^3.44.0", + "@mongodb-js/compass-sidebar": "^5.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-welcome": "^0.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongodb-js/webpack-config-compass": "^1.4.5", "@mongosh/node-runtime-worker-thread": "^2.3.2", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", @@ -78593,7 +78593,7 @@ "chalk": "^4.1.2", "clean-stack": "^2.0.0", "clipboard": "^2.0.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -78605,8 +78605,8 @@ "ensure-error": "^3.0.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-build": "^25.5.12", - "hadron-ipc": "^3.2.23", + "hadron-build": "^25.5.13", + "hadron-ipc": "^3.2.24", "kerberos": "^2.2.0", "keytar": "^7.9.0", "local-links": "^1.4.0", @@ -78618,8 +78618,8 @@ "mongodb-client-encryption": "^6.1.0", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-data-service": "^22.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "os-dns-native": "^1.2.1", @@ -78684,9 +78684,9 @@ "mongodb-data-service": { "version": "file:packages/data-service", "requires": { - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-logging": "^1.4.9", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/compass-utils": "^0.6.12", + "@mongodb-js/compass-utils": "^0.6.13", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-docker-test-envs": "^1.3.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", @@ -78839,8 +78839,8 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5" + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6" } }, "mongodb-download-url": { @@ -78874,9 +78874,9 @@ "depcheck": "^1.4.1", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", - "mongodb-database-model": "^2.23.5" + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", + "mongodb-database-model": "^2.23.6" } }, "mongodb-js-cli": { diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json index 46b8009e682..7e9adaa7f10 100644 --- a/packages/atlas-service/package.json +++ b/packages/atlas-service/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.30.1", + "version": "0.31.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,19 +73,19 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", "hadron-app-registry": "^9.2.7", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "electron": "^32.2.1", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/collection-model/package.json b/packages/collection-model/package.json index 9259ab64a57..42c5c11a3e7 100644 --- a/packages/collection-model/package.json +++ b/packages/collection-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-collection-model", "description": "MongoDB collection model", "author": "Lucas Hrabovsky ", - "version": "5.23.5", + "version": "5.23.6", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -31,7 +31,7 @@ "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2" }, "devDependencies": { diff --git a/packages/compass-aggregations/package.json b/packages/compass-aggregations/package.json index 03a9742d458..9fc31abeffb 100644 --- a/packages/compass-aggregations/package.json +++ b/packages/compass-aggregations/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-aggregations", "description": "Compass Aggregation Pipeline Builder", "private": true, - "version": "9.46.1", + "version": "9.47.0", "main": "dist/index.js", "compass:main": "src/index.ts", "types": "dist/index.d.ts", @@ -61,34 +61,34 @@ "@dnd-kit/core": "^6.0.7", "@dnd-kit/sortable": "^7.0.2", "@dnd-kit/utilities": "^3.2.1", - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/explain-plan-helper": "^1.2.4", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-app-stores/package.json b/packages/compass-app-stores/package.json index fce0925d8a4..2c6b9c3470a 100644 --- a/packages/compass-app-stores/package.json +++ b/packages/compass-app-stores/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.30.1", + "version": "7.31.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,14 +73,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/connection-info": "^0.9.2", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, diff --git a/packages/compass-collection/package.json b/packages/compass-collection/package.json index 649fe0ee207..33a597ff289 100644 --- a/packages/compass-collection/package.json +++ b/packages/compass-collection/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "4.43.1", + "version": "4.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,17 +48,17 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/mongodb-constants": "^0.10.2", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "mongodb-collection-model": "^5.23.5", + "mongodb-collection-model": "^5.23.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-components/package.json b/packages/compass-components/package.json index eec0305867c..1066802b726 100644 --- a/packages/compass-components/package.json +++ b/packages/compass-components/package.json @@ -1,6 +1,6 @@ { "name": "@mongodb-js/compass-components", - "version": "1.30.1", + "version": "1.31.0", "description": "React Components used in Compass", "license": "SSPL", "main": "lib/index.js", @@ -79,7 +79,7 @@ "@tanstack/table-core": "^8.14.0", "bson": "^6.8.0", "focus-trap-react": "^9.0.2", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "is-electron-renderer": "^2.0.1", "lodash": "^4.17.21", diff --git a/packages/compass-connection-import-export/package.json b/packages/compass-connection-import-export/package.json index eb904adbc82..3a38a4f87a2 100644 --- a/packages/compass-connection-import-export/package.json +++ b/packages/compass-connection-import-export/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.40.1", + "version": "0.41.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,11 +51,11 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/connection-storage": "^0.22.2", - "compass-preferences-model": "^2.29.1", - "hadron-ipc": "^3.2.23", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/connection-storage": "^0.22.3", + "compass-preferences-model": "^2.29.2", + "hadron-ipc": "^3.2.24", "react": "^17.0.2" }, "devDependencies": { diff --git a/packages/compass-connections-navigation/package.json b/packages/compass-connections-navigation/package.json index 58f297defda..d1f7129104b 100644 --- a/packages/compass-connections-navigation/package.json +++ b/packages/compass-connections-navigation/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.43.1", + "version": "1.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,12 +49,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/compass-workspaces": "^0.25.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "compass-preferences-model": "^2.29.2", "mongodb-build-info": "^1.7.2", "react": "^17.0.2", "react-virtualized-auto-sizer": "^1.0.6", diff --git a/packages/compass-connections/package.json b/packages/compass-connections/package.json index 5aabc134e45..8789d0cb781 100644 --- a/packages/compass-connections/package.json +++ b/packages/compass-connections/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.44.1", + "version": "1.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,21 +51,21 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-storage": "^0.22.3", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index ba1bb68b00f..60097354367 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "13.44.1", + "version": "13.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -64,37 +64,37 @@ "enzyme": "^3.11.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongodb-js/explain-plan-helper": "^1.2.4", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/reflux-state-mixin": "^1.0.7", "@mongodb-js/shell-bson-parser": "^1.1.2", "ag-grid-community": "^20.2.0", "ag-grid-react": "^20.2.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "hadron-type-checker": "^7.2.3", "jsondiffpatch": "^0.5.0", "lodash": "^4.17.21", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "numeral": "^2.0.6", diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 27abac4d74d..78ee48df513 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -1,6 +1,6 @@ { "name": "compass-e2e-tests", - "version": "1.27.3", + "version": "1.27.4", "private": true, "description": "E2E test suite for Compass app that follows smoke tests / feature testing matrix", "scripts": { @@ -33,7 +33,7 @@ "devDependencies": { "@electron/rebuild": "^3.7.0", "@mongodb-js/compass-test-server": "^0.1.22", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/oidc-mock-provider": "^0.9.3", "@mongodb-js/prettier-config-compass": "^1.0.2", @@ -47,7 +47,7 @@ "chai": "^4.3.4", "chai-as-promised": "^7.1.1", "clipboardy": "^2.3.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -55,7 +55,7 @@ "electron-to-chromium": "^1.5.41", "eslint": "^7.25.0", "glob": "^10.2.5", - "hadron-build": "^25.5.12", + "hadron-build": "^25.5.13", "lodash": "^4.17.21", "mocha": "^10.2.0", "mongodb": "^6.9.0", diff --git a/packages/compass-editor/package.json b/packages/compass-editor/package.json index d1b625d932c..85c2ef7f6c9 100644 --- a/packages/compass-editor/package.json +++ b/packages/compass-editor/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.31.1", + "version": "0.32.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -72,7 +72,7 @@ "@codemirror/state": "^6.1.4", "@codemirror/view": "^6.7.1", "@lezer/highlight": "^1.2.0", - "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-components": "^1.31.0", "@mongodb-js/mongodb-constants": "^0.10.0", "mongodb-query-parser": "^4.2.3", "polished": "^4.2.2", diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index 7de001f0718..6c4eb433a1a 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.1", + "version": "6.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,14 +69,14 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/explain-plan-helper": "^1.2.4", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "d3": "^3.5.17", "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", diff --git a/packages/compass-export-to-language/package.json b/packages/compass-export-to-language/package.json index 72aa88fa2a1..42813e88814 100644 --- a/packages/compass-export-to-language/package.json +++ b/packages/compass-export-to-language/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.20.1", + "version": "9.21.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,15 +48,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson-transpilers": "^3.0.10", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", "react": "^17.0.2", diff --git a/packages/compass-field-store/package.json b/packages/compass-field-store/package.json index 7636a8de604..07fbabb3a34 100644 --- a/packages/compass-field-store/package.json +++ b/packages/compass-field-store/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "9.19.1", + "version": "9.20.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -69,8 +69,8 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-find-in-page/package.json b/packages/compass-find-in-page/package.json index 0554d355232..e362593fab6 100644 --- a/packages/compass-find-in-page/package.json +++ b/packages/compass-find-in-page/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "4.31.1", + "version": "4.32.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,9 +73,9 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", + "@mongodb-js/compass-components": "^1.31.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", diff --git a/packages/compass-generative-ai/package.json b/packages/compass-generative-ai/package.json index 399443a91f1..bbf9b1142dc 100644 --- a/packages/compass-generative-ai/package.json +++ b/packages/compass-generative-ai/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.24.1", + "version": "0.25.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,12 +52,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-intercom": "^0.13.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-intercom": "^0.13.2", + "@mongodb-js/compass-logging": "^1.4.9", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "mongodb": "^6.9.0", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-global-writes/package.json b/packages/compass-global-writes/package.json index 095d2779729..4d49e7b09ec 100644 --- a/packages/compass-global-writes/package.json +++ b/packages/compass-global-writes/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.3.1", + "version": "1.4.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,15 +49,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "@mongodb-js/compass-field-store": "^9.19.1", + "@mongodb-js/compass-field-store": "^9.20.0", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index 931701c3241..8045c01716f 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "7.43.1", + "version": "7.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,23 +49,23 @@ }, "dependencies": { "@electron/remote": "^2.1.2", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "debug": "^4.3.4", "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", - "hadron-ipc": "^3.2.23", + "hadron-document": "^8.6.5", + "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-schema": "^12.2.0", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index bd4f84f8516..056dcb88c98 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "5.43.1", + "version": "5.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -67,25 +67,25 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/mongodb-constants": "^0.10.0", "@mongodb-js/shell-bson-parser": "^1.1.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", "mongodb-query-parser": "^4.2.3", "mongodb-ns": "^2.4.2", "numeral": "^2.0.6", diff --git a/packages/compass-intercom/package.json b/packages/compass-intercom/package.json index 36dbaf0e0fd..9ddeb6f49d8 100644 --- a/packages/compass-intercom/package.json +++ b/packages/compass-intercom/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.13.1", + "version": "0.13.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -67,7 +67,7 @@ "typescript": "^5.0.4" }, "dependencies": { - "compass-preferences-model": "^2.29.1", - "@mongodb-js/compass-logging": "^1.4.8" + "compass-preferences-model": "^2.29.2", + "@mongodb-js/compass-logging": "^1.4.9" } } diff --git a/packages/compass-logging/package.json b/packages/compass-logging/package.json index fd4acf4ccca..aa312c6dc2e 100644 --- a/packages/compass-logging/package.json +++ b/packages/compass-logging/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.4.8", + "version": "1.4.9", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -53,7 +53,7 @@ "dependencies": { "debug": "^4.3.4", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "is-electron-renderer": "^2.0.1", "mongodb-log-writer": "^1.4.2", "react": "^17.0.2" diff --git a/packages/compass-maybe-protect-connection-string/package.json b/packages/compass-maybe-protect-connection-string/package.json index a0c0189b645..c5d55987d1c 100644 --- a/packages/compass-maybe-protect-connection-string/package.json +++ b/packages/compass-maybe-protect-connection-string/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.27.1", + "version": "0.27.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,7 +50,7 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "mongodb-connection-string-url": "^3.0.1" }, "devDependencies": { diff --git a/packages/compass-preferences-model/package.json b/packages/compass-preferences-model/package.json index 8ea4b3a069e..4827c4195c9 100644 --- a/packages/compass-preferences-model/package.json +++ b/packages/compass-preferences-model/package.json @@ -2,7 +2,7 @@ "name": "compass-preferences-model", "description": "Compass preferences model", "author": "Lucas Hrabovsky ", - "version": "2.29.1", + "version": "2.29.2", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -49,12 +49,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-user-data": "^0.3.9", "@mongodb-js/devtools-proxy-support": "^0.4.1", "bson": "^6.8.0", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "js-yaml": "^4.1.0", "lodash": "^4.17.21", "react": "^17.0.2", diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index e1e42191cd5..0b07e42e702 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "8.45.1", + "version": "8.46.0", "homepage": "https://github.com/mongodb-js/compass", "license": "SSPL", "bugs": { @@ -66,24 +66,24 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "@mongodb-js/mongodb-constants": "^0.10.0", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "mongodb-query-util": "^2.2.9", diff --git a/packages/compass-saved-aggregations-queries/package.json b/packages/compass-saved-aggregations-queries/package.json index 22d100e43ff..0fa574d269b 100644 --- a/packages/compass-saved-aggregations-queries/package.json +++ b/packages/compass-saved-aggregations-queries/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.44.1", + "version": "1.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,17 +48,17 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/my-queries-storage": "^0.18.0", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "fuse.js": "^6.5.3", "hadron-app-registry": "^9.2.7", "mongodb-ns": "^2.4.2", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index 0e30f1dccb8..ffc5a4d2a38 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.44.1", + "version": "6.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -60,26 +60,26 @@ "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "mocha": "^10.2.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "nyc": "^15.1.0", "react-dom": "^17.0.2", "sinon": "^8.1.1", "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "javascript-stringify": "^2.0.1", "lodash": "^4.17.21", diff --git a/packages/compass-schema/package.json b/packages/compass-schema/package.json index a281c598e72..12aafda2adb 100644 --- a/packages/compass-schema/package.json +++ b/packages/compass-schema/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "6.45.1", + "version": "6.46.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -50,7 +50,7 @@ "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", @@ -72,19 +72,19 @@ "xvfb-maybe": "^0.2.1" }, "dependencies": { - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/connection-storage": "^0.22.3", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "d3": "^3.5.17", "hadron-app-registry": "^9.2.7", - "hadron-document": "^8.6.4", + "hadron-document": "^8.6.5", "leaflet": "^1.5.1", "leaflet-defaulticon-compatibility": "^0.1.1", "leaflet-draw": "^1.0.4", diff --git a/packages/compass-serverstats/package.json b/packages/compass-serverstats/package.json index c4337766518..c273a02fba4 100644 --- a/packages/compass-serverstats/package.json +++ b/packages/compass-serverstats/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-serverstats", "description": "Compass Real Time", "private": true, - "version": "16.43.1", + "version": "16.44.0", "main": "dist/index.js", "compass:main": "src/index.ts", "exports": { @@ -30,11 +30,11 @@ }, "license": "SSPL", "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", "d3": "^3.5.17", "d3-timer": "^1.0.3", "debug": "^4.3.4", diff --git a/packages/compass-settings/package.json b/packages/compass-settings/package.json index b7f95afe1e1..d89210adc9f 100644 --- a/packages/compass-settings/package.json +++ b/packages/compass-settings/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.42.1", + "version": "0.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,13 +49,13 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-logging": "^1.4.8", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-logging": "^1.4.9", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "react": "^17.0.2", "react-redux": "^8.1.3", "redux": "^4.2.1", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index a66e7f9d3ac..b42928e330d 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -6,7 +6,7 @@ "email": "compass@mongodb.com" }, "private": true, - "version": "3.43.1", + "version": "3.44.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,18 +49,18 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-workspaces": "^0.25.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-workspaces": "^0.26.0", "@mongosh/browser-repl": "^2.3.2", "@mongosh/logging": "^2.3.2", "@mongosh/node-runtime-worker-thread": "^2.3.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass-sidebar/package.json b/packages/compass-sidebar/package.json index 4518a09bd8e..87902dc3673 100644 --- a/packages/compass-sidebar/package.json +++ b/packages/compass-sidebar/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "5.44.1", + "version": "5.45.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,22 +48,22 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-connections-navigation": "^1.43.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-form": "^1.42.0", - "@mongodb-js/connection-info": "^0.9.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connection-import-export": "^0.41.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-connections-navigation": "^1.44.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-maybe-protect-connection-string": "^0.27.2", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-form": "^1.43.0", + "@mongodb-js/connection-info": "^0.9.2", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", "mongodb": "^6.9.0", - "mongodb-instance-model": "^12.24.5", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", @@ -87,7 +87,7 @@ "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "nyc": "^15.1.0", "prettier": "^2.7.1", "react-dom": "^17.0.2", diff --git a/packages/compass-telemetry/package.json b/packages/compass-telemetry/package.json index 64d257971d2..68b21c9ce9a 100644 --- a/packages/compass-telemetry/package.json +++ b/packages/compass-telemetry/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.2.1", + "version": "1.2.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -52,9 +52,9 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-logging": "^1.4.9", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "react": "^17.0.2" }, "devDependencies": { diff --git a/packages/compass-user-data/package.json b/packages/compass-user-data/package.json index d06bc76592b..94236f814ce 100644 --- a/packages/compass-user-data/package.json +++ b/packages/compass-user-data/package.json @@ -12,7 +12,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.3.8", + "version": "0.3.9", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,8 +49,8 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-utils": "^0.6.12", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-utils": "^0.6.13", "write-file-atomic": "^5.0.1", "zod": "^3.22.3" }, diff --git a/packages/compass-utils/package.json b/packages/compass-utils/package.json index c68cb9e76d0..007e1d724f1 100644 --- a/packages/compass-utils/package.json +++ b/packages/compass-utils/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.6.12", + "version": "0.6.13", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index 8e5e171bbc6..a1f240fa7f2 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.9.1", + "version": "0.10.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -63,36 +63,36 @@ "react-dom": "^17.0.2" }, "devDependencies": { - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-aggregations": "^9.46.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-databases-collections": "^1.43.1", - "@mongodb-js/compass-explain-plan": "^6.44.1", - "@mongodb-js/compass-export-to-language": "^9.20.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-global-writes": "^1.3.1", - "@mongodb-js/compass-indexes": "^5.43.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-schema": "^6.45.1", - "@mongodb-js/compass-schema-validation": "^6.44.1", - "@mongodb-js/compass-sidebar": "^5.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-welcome": "^0.42.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-aggregations": "^9.47.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-databases-collections": "^1.44.0", + "@mongodb-js/compass-explain-plan": "^6.45.0", + "@mongodb-js/compass-export-to-language": "^9.21.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-global-writes": "^1.4.0", + "@mongodb-js/compass-indexes": "^5.44.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-schema": "^6.46.0", + "@mongodb-js/compass-schema-validation": "^6.45.0", + "@mongodb-js/compass-sidebar": "^5.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-welcome": "^0.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongodb-js/webpack-config-compass": "^1.4.5", "@types/chai": "^4.2.21", "@types/chai-dom": "^0.0.10", "@types/express-http-proxy": "^1.6.6", @@ -104,7 +104,7 @@ "bson": "^6.2.0", "buffer": "^6.0.3", "chai": "^4.3.6", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "crypto-browserify": "^3.12.0", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -120,7 +120,7 @@ "mocha": "^10.2.0", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-ns": "^2.4.2", "nyc": "^15.1.0", "os-browserify": "^0.3.0", diff --git a/packages/compass-welcome/package.json b/packages/compass-welcome/package.json index 05092dd3e38..7d09adb834d 100644 --- a/packages/compass-welcome/package.json +++ b/packages/compass-welcome/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.42.1", + "version": "0.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -49,12 +49,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "react": "^17.0.2", "redux": "^4.2.1", diff --git a/packages/compass-workspaces/package.json b/packages/compass-workspaces/package.json index fd699ee2154..ee3f8f2b0fd 100644 --- a/packages/compass-workspaces/package.json +++ b/packages/compass-workspaces/package.json @@ -11,7 +11,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.25.1", + "version": "0.26.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,16 +51,16 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-logging": "^1.4.8", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-logging": "^1.4.9", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", "mongodb-ns": "^2.4.2", "react": "^17.0.2", "react-redux": "^8.1.3", diff --git a/packages/compass/package.json b/packages/compass/package.json index e65737469c4..3c589d57218 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -190,56 +190,56 @@ "devDependencies": { "@electron/rebuild": "^3.7.0", "@electron/remote": "^2.1.2", - "@mongodb-js/atlas-service": "^0.30.1", - "@mongodb-js/compass-aggregations": "^9.46.1", - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-collection": "^4.43.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connection-import-export": "^0.40.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-crud": "^13.44.1", - "@mongodb-js/compass-databases-collections": "^1.43.1", - "@mongodb-js/compass-explain-plan": "^6.44.1", - "@mongodb-js/compass-export-to-language": "^9.20.1", - "@mongodb-js/compass-field-store": "^9.19.1", - "@mongodb-js/compass-find-in-page": "^4.31.1", - "@mongodb-js/compass-generative-ai": "^0.24.1", - "@mongodb-js/compass-global-writes": "^1.3.1", - "@mongodb-js/compass-import-export": "^7.43.1", - "@mongodb-js/compass-indexes": "^5.43.1", - "@mongodb-js/compass-intercom": "^0.13.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-query-bar": "^8.45.1", - "@mongodb-js/compass-saved-aggregations-queries": "^1.44.1", - "@mongodb-js/compass-schema": "^6.45.1", - "@mongodb-js/compass-schema-validation": "^6.44.1", - "@mongodb-js/compass-serverstats": "^16.43.1", - "@mongodb-js/compass-settings": "^0.42.1", - "@mongodb-js/compass-shell": "^3.43.1", - "@mongodb-js/compass-sidebar": "^5.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/compass-welcome": "^0.42.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", - "@mongodb-js/connection-storage": "^0.22.2", + "@mongodb-js/atlas-service": "^0.31.0", + "@mongodb-js/compass-aggregations": "^9.47.0", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-collection": "^4.44.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connection-import-export": "^0.41.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-crud": "^13.45.0", + "@mongodb-js/compass-databases-collections": "^1.44.0", + "@mongodb-js/compass-explain-plan": "^6.45.0", + "@mongodb-js/compass-export-to-language": "^9.21.0", + "@mongodb-js/compass-field-store": "^9.20.0", + "@mongodb-js/compass-find-in-page": "^4.32.0", + "@mongodb-js/compass-generative-ai": "^0.25.0", + "@mongodb-js/compass-global-writes": "^1.4.0", + "@mongodb-js/compass-import-export": "^7.44.0", + "@mongodb-js/compass-indexes": "^5.44.0", + "@mongodb-js/compass-intercom": "^0.13.2", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-query-bar": "^8.46.0", + "@mongodb-js/compass-saved-aggregations-queries": "^1.45.0", + "@mongodb-js/compass-schema": "^6.46.0", + "@mongodb-js/compass-schema-validation": "^6.45.0", + "@mongodb-js/compass-serverstats": "^16.44.0", + "@mongodb-js/compass-settings": "^0.43.0", + "@mongodb-js/compass-shell": "^3.44.0", + "@mongodb-js/compass-sidebar": "^5.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/compass-welcome": "^0.43.0", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", + "@mongodb-js/connection-storage": "^0.22.3", "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/eslint-config-compass": "^1.1.7", "@mongodb-js/get-os-info": "^0.3.24", "@mongodb-js/mocha-config-compass": "^1.4.2", "@mongodb-js/mongodb-downloader": "^0.3.5", - "@mongodb-js/my-queries-storage": "^0.17.1", + "@mongodb-js/my-queries-storage": "^0.18.0", "@mongodb-js/prettier-config-compass": "^1.0.2", "@mongodb-js/sbom-tools": "^0.7.0", "@mongodb-js/testing-library-compass": "^1.0.2", "@mongodb-js/tsconfig-compass": "^1.0.5", - "@mongodb-js/webpack-config-compass": "^1.4.4", + "@mongodb-js/webpack-config-compass": "^1.4.5", "@segment/analytics-node": "^1.1.4", "ampersand-view": "^9.0.0", "chai": "^4.3.4", "chalk": "^4.1.2", "clean-stack": "^2.0.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", @@ -251,8 +251,8 @@ "ensure-error": "^3.0.1", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", - "hadron-build": "^25.5.12", - "hadron-ipc": "^3.2.23", + "hadron-build": "^25.5.13", + "hadron-ipc": "^3.2.24", "local-links": "^1.4.0", "make-fetch-happen": "^10.2.1", "marky": "^1.2.1", @@ -260,8 +260,8 @@ "mongodb-build-info": "^1.7.2", "mongodb-cloud-info": "^2.1.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-data-service": "^22.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-log-writer": "^1.4.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2", diff --git a/packages/connection-form/package.json b/packages/connection-form/package.json index 24419599910..323ade6c0c6 100644 --- a/packages/connection-form/package.json +++ b/packages/connection-form/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.42.0", + "version": "1.43.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,15 +48,15 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/connection-info": "^0.9.2", "@mongodb-js/shell-bson-parser": "^1.1.2", "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-build-info": "^1.7.2", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5", + "mongodb-data-service": "^22.23.6", "mongodb-query-parser": "^4.2.3", "react": "^17.0.2" }, diff --git a/packages/connection-info/package.json b/packages/connection-info/package.json index 39b25675061..a15cfe2d8f3 100644 --- a/packages/connection-info/package.json +++ b/packages/connection-info/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.9.1", + "version": "0.9.2", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -54,7 +54,7 @@ "lodash": "^4.17.21", "mongodb": "^6.9.0", "mongodb-connection-string-url": "^3.0.1", - "mongodb-data-service": "^22.23.5" + "mongodb-data-service": "^22.23.6" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/connection-storage/package.json b/packages/connection-storage/package.json index 0c542b011de..dd8ad7b32d7 100644 --- a/packages/connection-storage/package.json +++ b/packages/connection-storage/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.22.2", + "version": "0.22.3", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -56,16 +56,16 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-user-data": "^0.3.8", - "@mongodb-js/compass-utils": "^0.6.12", - "@mongodb-js/connection-info": "^0.9.1", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-user-data": "^0.3.9", + "@mongodb-js/compass-utils": "^0.6.13", + "@mongodb-js/connection-info": "^0.9.2", "bson": "^6.8.0", - "compass-preferences-model": "^2.29.1", + "compass-preferences-model": "^2.29.2", "electron": "^32.2.1", "hadron-app-registry": "^9.2.7", - "hadron-ipc": "^3.2.23", + "hadron-ipc": "^3.2.24", "keytar": "^7.9.0", "lodash": "^4.17.21", "mongodb-connection-string-url": "^3.0.1", diff --git a/packages/data-service/package.json b/packages/data-service/package.json index fcc703a844d..6c33a016f01 100644 --- a/packages/data-service/package.json +++ b/packages/data-service/package.json @@ -7,7 +7,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "22.23.5", + "version": "22.23.6", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -51,8 +51,8 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-utils": "^0.6.12", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-utils": "^0.6.13", "@mongodb-js/devtools-connect": "^3.3.1", "@mongodb-js/devtools-proxy-support": "^0.4.1", "bson": "^6.8.0", diff --git a/packages/database-model/package.json b/packages/database-model/package.json index 1c9246f4a54..d524fe2713d 100644 --- a/packages/database-model/package.json +++ b/packages/database-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-database-model", "description": "MongoDB database model", "author": "Lucas Hrabovsky ", - "version": "2.23.5", + "version": "2.23.6", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -30,8 +30,8 @@ "dependencies": { "ampersand-collection": "^2.0.2", "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5" + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/databases-collections-list/package.json b/packages/databases-collections-list/package.json index ed5db53fc56..6f07a4d0108 100644 --- a/packages/databases-collections-list/package.json +++ b/packages/databases-collections-list/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "1.41.1", + "version": "1.42.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -48,12 +48,12 @@ "reformat": "npm run eslint . -- --fix && npm run prettier -- --write ." }, "dependencies": { - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/connection-info": "^0.9.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/connection-info": "^0.9.2", + "compass-preferences-model": "^2.29.2", "mongodb-ns": "^2.4.2", "react": "^17.0.2" }, diff --git a/packages/databases-collections/package.json b/packages/databases-collections/package.json index 58e85347e24..1c6a55eb64b 100644 --- a/packages/databases-collections/package.json +++ b/packages/databases-collections/package.json @@ -2,7 +2,7 @@ "name": "@mongodb-js/compass-databases-collections", "description": "Plugin for viewing the list of, creating, and dropping databases and collections", "private": true, - "version": "1.43.1", + "version": "1.44.0", "license": "SSPL", "homepage": "https://github.com/mongodb-js/compass", "bugs": { @@ -59,21 +59,21 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-app-stores": "^7.30.1", - "@mongodb-js/compass-components": "^1.30.1", - "@mongodb-js/compass-connections": "^1.44.1", - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-logging": "^1.4.8", - "@mongodb-js/compass-telemetry": "^1.2.1", - "@mongodb-js/compass-workspaces": "^0.25.1", - "@mongodb-js/databases-collections-list": "^1.41.1", - "@mongodb-js/my-queries-storage": "^0.17.1", - "compass-preferences-model": "^2.29.1", + "@mongodb-js/compass-app-stores": "^7.31.0", + "@mongodb-js/compass-components": "^1.31.0", + "@mongodb-js/compass-connections": "^1.45.0", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-logging": "^1.4.9", + "@mongodb-js/compass-telemetry": "^1.2.2", + "@mongodb-js/compass-workspaces": "^0.26.0", + "@mongodb-js/databases-collections-list": "^1.42.0", + "@mongodb-js/my-queries-storage": "^0.18.0", + "compass-preferences-model": "^2.29.2", "hadron-app-registry": "^9.2.7", "lodash": "^4.17.21", - "mongodb-collection-model": "^5.23.5", - "mongodb-database-model": "^2.23.5", - "mongodb-instance-model": "^12.24.5", + "mongodb-collection-model": "^5.23.6", + "mongodb-database-model": "^2.23.6", + "mongodb-instance-model": "^12.24.6", "mongodb-ns": "^2.4.2", "mongodb-query-parser": "^4.2.3", "prop-types": "^15.7.2", diff --git a/packages/hadron-build/package.json b/packages/hadron-build/package.json index 7f4522c23f4..4b697d8f9f4 100644 --- a/packages/hadron-build/package.json +++ b/packages/hadron-build/package.json @@ -1,7 +1,7 @@ { "name": "hadron-build", "description": "Tooling for Hadron apps like Compass", - "version": "25.5.12", + "version": "25.5.13", "scripts": { "check": "npm run lint && npm run depcheck", "test": "mocha -R spec", diff --git a/packages/hadron-document/package.json b/packages/hadron-document/package.json index 10d3f3c7f1e..c7a499f76c7 100644 --- a/packages/hadron-document/package.json +++ b/packages/hadron-document/package.json @@ -7,7 +7,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "8.6.4", + "version": "8.6.5", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" diff --git a/packages/hadron-ipc/package.json b/packages/hadron-ipc/package.json index 622c0b0e117..ea14836d959 100644 --- a/packages/hadron-ipc/package.json +++ b/packages/hadron-ipc/package.json @@ -1,7 +1,7 @@ { "name": "hadron-ipc", "description": "Simplified IPC for electron apps.", - "version": "3.2.23", + "version": "3.2.24", "author": { "name": "MongoDB Inc", "email": "compass@mongodb.com" diff --git a/packages/instance-model/package.json b/packages/instance-model/package.json index 7a12da0e1b2..2bc195de79f 100644 --- a/packages/instance-model/package.json +++ b/packages/instance-model/package.json @@ -2,7 +2,7 @@ "name": "mongodb-instance-model", "description": "MongoDB instance model", "author": "Lucas Hrabovsky ", - "version": "12.24.5", + "version": "12.24.6", "bugs": { "url": "https://jira.mongodb.org/projects/COMPASS/issues", "email": "compass@mongodb.com" @@ -29,9 +29,9 @@ }, "dependencies": { "ampersand-model": "^8.0.1", - "mongodb-collection-model": "^5.23.5", - "mongodb-data-service": "^22.23.5", - "mongodb-database-model": "^2.23.5" + "mongodb-collection-model": "^5.23.6", + "mongodb-data-service": "^22.23.6", + "mongodb-database-model": "^2.23.6" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", diff --git a/packages/my-queries-storage/package.json b/packages/my-queries-storage/package.json index 844dd4dd2fd..1f62ea70519 100644 --- a/packages/my-queries-storage/package.json +++ b/packages/my-queries-storage/package.json @@ -13,7 +13,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.17.1", + "version": "0.18.0", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" @@ -73,8 +73,8 @@ "typescript": "^5.0.4" }, "dependencies": { - "@mongodb-js/compass-editor": "^0.31.1", - "@mongodb-js/compass-user-data": "^0.3.8", + "@mongodb-js/compass-editor": "^0.32.0", + "@mongodb-js/compass-user-data": "^0.3.9", "bson": "^6.8.0", "hadron-app-registry": "^9.2.7", "react": "^17.0.2" diff --git a/scripts/package.json b/scripts/package.json index 0846983fe62..1d758e6894d 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -14,7 +14,7 @@ "email": "compass@mongodb.com" }, "homepage": "https://github.com/mongodb-js/compass", - "version": "0.16.23", + "version": "0.16.24", "repository": { "type": "git", "url": "https://github.com/mongodb-js/compass.git" From 39d722232b1b9ecefb0d41e44681d2d137400b8c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 14:12:46 +0000 Subject: [PATCH 64/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6417) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 29 ----------------------------- docs/tracking-plan.md | 2 +- 2 files changed, 1 insertion(+), 30 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 491a34835a1..75a7a8c33b9 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -211,7 +211,6 @@ Package|Version|License **[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)**|1.0.6|MIT **[cookie](#6fffbd43d8f0d9a659c21e31a0935f0a1226c9990be593a9649dcd61e4db1204)**|0.7.1|MIT **[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)**|3.17.3|MIT -**[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)**|0.0.9|MIT **[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)**|1.0.5|MIT **[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)**|3.1.8|MIT **[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)**|7.0.3|MIT @@ -17718,34 +17717,6 @@ License files: - -### [cpu-features](https://www.npmjs.com/package/cpu-features) (version 0.0.9) -License tags: MIT - -License files: -* LICENSE: - - Copyright Brian White. All rights reserved. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to - deal in the Software without restriction, including without limitation the - rights to use, copy, modify, merge, publish, distribute, sublicense, and/or - sell copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS - IN THE SOFTWARE. - - ### [crelt](https://www.npmjs.com/package/crelt) (version 1.0.5) License tags: MIT diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 7cebe5b6500..ce511ade873 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 01:43 PM +Generated on Tue, Oct 29, 2024 at 02:12 PM ## Table of Contents From 0ba313745fa43c65c85d2bec5fb2ee33d92d0a24 Mon Sep 17 00:00:00 2001 From: Sergey Petushkov Date: Tue, 29 Oct 2024 16:32:57 +0100 Subject: [PATCH 65/71] chore(ci): add no-title-validation label to autogenerated PRs (#6418) --- .github/workflows/bump-packages.yaml | 1 + .github/workflows/update-electron.yaml | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bump-packages.yaml b/.github/workflows/bump-packages.yaml index 1fe9cfc428f..87d62542842 100644 --- a/.github/workflows/bump-packages.yaml +++ b/.github/workflows/bump-packages.yaml @@ -55,5 +55,6 @@ jobs: commit-message: 'chore(release): bump package versions' branch: ci/bump-packages title: 'chore(release): bump package versions' + labels: no-title-validation body: | - Bump package versions diff --git a/.github/workflows/update-electron.yaml b/.github/workflows/update-electron.yaml index 5edb15632db..89d25c81b62 100644 --- a/.github/workflows/update-electron.yaml +++ b/.github/workflows/update-electron.yaml @@ -40,14 +40,15 @@ jobs: run: | node scripts/update-electron.js git add . - git commit --no-allow-empty -m "chore: update electron" || true + git commit --no-allow-empty -m "chore(deps): update electron" || true - name: Create Pull Request id: cpr uses: peter-evans/create-pull-request@v6 with: token: ${{ secrets.SVC_DEVTOOLSBOT_TOKEN }} - commit-message: 'chore: update electron' + commit-message: 'chore(deps): update electron' branch: ci/update-electron - title: 'chore: update electron' + title: 'chore(deps): update electron' + labels: no-title-validation body: | - Update electron From 44b9988e78770cf95f34d09e8ebb7e434534442c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:39:32 +0000 Subject: [PATCH 66/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6419) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 29 +++++++++++++++++++++++++++++ docs/tracking-plan.md | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 75a7a8c33b9..491a34835a1 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -211,6 +211,7 @@ Package|Version|License **[cookie-signature](#28f6116b52488ac66a14424869fc346f611bea6c894e7d0f7f2ca701deb8e49c)**|1.0.6|MIT **[cookie](#6fffbd43d8f0d9a659c21e31a0935f0a1226c9990be593a9649dcd61e4db1204)**|0.7.1|MIT **[core-js](#2d0305d15eab4ad23db10b97faf9d8e8e0d5ad30a616c5892d1edd535d8a08c8)**|3.17.3|MIT +**[cpu-features](#fa992e00865a6ed732ac63bbf64c89ee2da4ec39944684e6002a3a34b5adb65c)**|0.0.9|MIT **[crelt](#9eba7acaba2af9d27a0a18fcf40d1f133ffa888d85321e4633e7dac58cab2db9)**|1.0.5|MIT **[cross-fetch](#2cd4375069c47bf89a4b399cd21cd9573086803b2cb9fc56c29df5a598e051e5)**|3.1.8|MIT **[cross-spawn](#67de3a765808182ee1018c35bc07d7a023a8d645e98cc32814dcac2fc2c427ff)**|7.0.3|MIT @@ -17717,6 +17718,34 @@ License files: + +### [cpu-features](https://www.npmjs.com/package/cpu-features) (version 0.0.9) +License tags: MIT + +License files: +* LICENSE: + + Copyright Brian White. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + + ### [crelt](https://www.npmjs.com/package/crelt) (version 1.0.5) License tags: MIT diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index ce511ade873..45416883d5d 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 02:12 PM +Generated on Tue, Oct 29, 2024 at 03:39 PM ## Table of Contents From f4dd8c8fce5f8419c358b65a0678a5e60779a39f Mon Sep 17 00:00:00 2001 From: svc-devtoolsbot <79531021+svc-devtoolsbot@users.noreply.github.com> Date: Tue, 29 Oct 2024 12:21:09 -0400 Subject: [PATCH 67/71] chore: update electron (#6410) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- configs/webpack-config-compass/package.json | 2 +- package-lock.json | 116 ++++++++---------- packages/atlas-service/package.json | 2 +- packages/compass-crud/package.json | 2 +- packages/compass-e2e-tests/package.json | 4 +- packages/compass-explain-plan/package.json | 2 +- packages/compass-find-in-page/package.json | 2 +- packages/compass-import-export/package.json | 2 +- packages/compass-indexes/package.json | 2 +- packages/compass-query-bar/package.json | 2 +- .../compass-schema-validation/package.json | 2 +- packages/compass-shell/package.json | 2 +- packages/compass-utils/package.json | 2 +- packages/compass-web/package.json | 2 +- packages/compass/package.json | 2 +- packages/connection-storage/package.json | 2 +- packages/hadron-build/package.json | 2 +- packages/hadron-ipc/package.json | 2 +- scripts/package.json | 2 +- 19 files changed, 69 insertions(+), 85 deletions(-) diff --git a/configs/webpack-config-compass/package.json b/configs/webpack-config-compass/package.json index 1e917ca91ab..2c9d6cac679 100644 --- a/configs/webpack-config-compass/package.json +++ b/configs/webpack-config-compass/package.json @@ -73,7 +73,7 @@ "cli-progress": "^3.9.1", "core-js": "^3.17.3", "css-loader": "^4.3.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "html-webpack-plugin": "^5.6.0", "less": "^3.13.1", "less-loader": "^10.0.1", diff --git a/package-lock.json b/package-lock.json index ff4a8ccb0d3..8d1ec369fa8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -516,7 +516,7 @@ "cli-progress": "^3.9.1", "core-js": "^3.17.3", "css-loader": "^4.3.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "html-webpack-plugin": "^5.6.0", "less": "^3.13.1", "less-loader": "^10.0.1", @@ -4327,7 +4327,6 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/@electron/rebuild/-/rebuild-3.7.0.tgz", "integrity": "sha512-VW++CNSlZwMYP7MyXEbrKjpzEwhB5kDNbzGtiPEjwYysqyTCF+YbNJ210Dj3AjWsGSV4iEEwNkmJN9yGZmVvmw==", - "license": "MIT", "dependencies": { "@electron/node-gyp": "git+https://github.com/electron/node-gyp.git#06b29aafb7708acef8b3669835c8a7857ebc92d2", "@malept/cross-spawn-promise": "^2.0.0", @@ -4526,7 +4525,6 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", "integrity": "sha512-EPwNx+nhdrTBxyCqXt/pftoQg/ybtWDW3DUWHafejvnB1ZGGfMpv6e15D8KeempocjXe78T7WreyGGb3mlZxdA==", - "license": "MIT", "peerDependencies": { "electron": ">= 13.0.0" } @@ -16522,7 +16520,6 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "MIT", "dependencies": { "caniuse-lite": "^1.0.30001669", "electron-to-chromium": "^1.5.41", @@ -20165,11 +20162,10 @@ } }, "node_modules/electron": { - "version": "32.2.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.1.tgz", - "integrity": "sha512-GCPI/5hU34pPcNltNpz+uylhhuTm9BM0N8RmrbVgaWBodLSmmcCkvpgN0BseKhO6IwQOPzWaovrcZ/nPIpfGaQ==", + "version": "32.2.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.2.tgz", + "integrity": "sha512-c7TRE42JcgEmJ4elJyCdKk/2os0UX7YMkRDeXBkxFEoM34iX1/2x+c5T9PgeroKz8FEG7omRU5TvjulqVtXvdw==", "hasInstallScript": true, - "license": "MIT", "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^20.9.0", @@ -20523,10 +20519,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.5.42", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.42.tgz", - "integrity": "sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==", - "license": "ISC" + "version": "1.5.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.49.tgz", + "integrity": "sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==" }, "node_modules/electron-window": { "version": "0.8.1", @@ -20590,7 +20585,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", - "license": "MIT", "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -20611,7 +20605,6 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -20623,7 +20616,6 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "license": "MIT", "engines": { "node": ">=10.6.0" } @@ -20632,7 +20624,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "license": "MIT", "dependencies": { "mimic-response": "^3.1.0" }, @@ -20647,7 +20638,6 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -20661,7 +20651,6 @@ "version": "11.8.6", "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "license": "MIT", "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -20686,7 +20675,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "license": "MIT", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -20695,7 +20683,6 @@ "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==", - "license": "MIT", "engines": { "node": ">=10" }, @@ -20707,7 +20694,6 @@ "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "license": "ISC", "bin": { "semver": "bin/semver.js" } @@ -20716,7 +20702,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "license": "MIT", "engines": { "node": ">= 4.0.0" } @@ -31917,7 +31902,6 @@ "version": "3.71.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", - "license": "MIT", "dependencies": { "semver": "^7.3.5" }, @@ -43043,7 +43027,7 @@ "@mongodb-js/devtools-proxy-support": "^0.4.1", "@mongodb-js/oidc-plugin": "^1.1.1", "compass-preferences-model": "^2.29.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", @@ -43224,7 +43208,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-devtools-installer": "^3.2.0", "electron-dl": "^3.5.0", "electron-mocha": "^12.2.0", @@ -43963,7 +43947,7 @@ "chai": "^4.1.2", "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -44042,8 +44026,8 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", - "electron-to-chromium": "^1.5.41", + "electron": "^32.2.2", + "electron-to-chromium": "^1.5.49", "eslint": "^7.25.0", "glob": "^10.2.5", "hadron-build": "^25.5.13", @@ -44525,7 +44509,7 @@ "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -44722,7 +44706,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -45072,7 +45056,7 @@ "bson": "^6.8.0", "compass-preferences-model": "^2.29.2", "debug": "^4.3.4", - "electron": "^32.2.1", + "electron": "^32.2.2", "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.5", "hadron-ipc": "^3.2.24", @@ -45192,7 +45176,7 @@ "@types/numeral": "^2.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -45604,7 +45588,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", @@ -45814,7 +45798,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -46004,7 +45988,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -46369,7 +46353,7 @@ "license": "SSPL", "dependencies": { "@electron/remote": "^2.1.2", - "electron": "^32.2.1" + "electron": "^32.2.2" }, "devDependencies": { "@mongodb-js/eslint-config-compass": "^1.1.7", @@ -46468,7 +46452,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "dns-query": "^0.11.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "events": "^3.3.0", "express": "^4.21.1", @@ -47133,7 +47117,7 @@ "@mongodb-js/connection-info": "^0.9.2", "bson": "^6.8.0", "compass-preferences-model": "^2.29.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.24", "keytar": "^7.9.0", @@ -47756,7 +47740,7 @@ "debug": "^4.3.4", "del": "^2.0.2", "download": "^8.0.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-packager": "^15.5.1", "electron-packager-plugin-non-proprietary-codecs-ffmpeg": "^1.0.2", "flatnest": "^1.0.0", @@ -48620,7 +48604,7 @@ "license": "SSPL", "dependencies": { "debug": "^4.3.4", - "electron": "^32.2.1", + "electron": "^32.2.2", "is-electron-renderer": "^2.0.1" }, "devDependencies": { @@ -49586,7 +49570,7 @@ "@babel/core": "^7.24.3", "@mongodb-js/monorepo-tools": "^1.1.1", "commander": "^11.0.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "jsdom": "^24.1.3", "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", @@ -54933,7 +54917,7 @@ "chai": "^4.3.6", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.24", @@ -55589,7 +55573,7 @@ "chai-as-promised": "^7.1.1", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -55769,7 +55753,7 @@ "d3-flextree": "^2.1.2", "d3-hierarchy": "^3.1.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -55942,7 +55926,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -56214,7 +56198,7 @@ "compass-preferences-model": "^2.29.2", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -56291,7 +56275,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -56569,7 +56553,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", @@ -56782,7 +56766,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -56816,7 +56800,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "commander": "^11.0.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "jsdom": "^24.1.3", "make-fetch-happen": "^10.2.1", @@ -57129,7 +57113,7 @@ "chai": "^4.2.0", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", @@ -57463,7 +57447,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.6", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "gen-esm-wrapper": "^1.1.0", "mocha": "^10.2.0", @@ -57546,7 +57530,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "dns-query": "^0.11.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "events": "^3.3.0", "express": "^4.21.1", @@ -58136,7 +58120,7 @@ "chai": "^4.3.6", "compass-preferences-model": "^2.29.2", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.24", @@ -59331,7 +59315,7 @@ "core-js": "^3.17.3", "css-loader": "^4.3.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "html-webpack-plugin": "^5.6.0", "less": "^3.13.1", @@ -66728,8 +66712,8 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", - "electron-to-chromium": "^1.5.41", + "electron": "^32.2.2", + "electron-to-chromium": "^1.5.49", "eslint": "^7.25.0", "glob": "^10.2.5", "hadron-build": "^25.5.13", @@ -69140,9 +69124,9 @@ } }, "electron": { - "version": "32.2.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.1.tgz", - "integrity": "sha512-GCPI/5hU34pPcNltNpz+uylhhuTm9BM0N8RmrbVgaWBodLSmmcCkvpgN0BseKhO6IwQOPzWaovrcZ/nPIpfGaQ==", + "version": "32.2.2", + "resolved": "https://registry.npmjs.org/electron/-/electron-32.2.2.tgz", + "integrity": "sha512-c7TRE42JcgEmJ4elJyCdKk/2os0UX7YMkRDeXBkxFEoM34iX1/2x+c5T9PgeroKz8FEG7omRU5TvjulqVtXvdw==", "requires": { "@electron/get": "^2.0.0", "@types/node": "^20.9.0", @@ -69506,9 +69490,9 @@ } }, "electron-to-chromium": { - "version": "1.5.42", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.42.tgz", - "integrity": "sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==" + "version": "1.5.49", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.49.tgz", + "integrity": "sha512-ZXfs1Of8fDb6z7WEYZjXpgIRF6MEu8JdeGA0A40aZq6OQbS+eJpnnV49epZRna2DU/YsEjSQuGtQPPtvt6J65A==" }, "electron-window": { "version": "0.8.1", @@ -72766,7 +72750,7 @@ "del": "^2.0.2", "depcheck": "^1.4.1", "download": "^8.0.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-installer-debian": "^3.2.0", "electron-installer-dmg": "^5.0.1", "electron-installer-redhat": "^2.0.0", @@ -73490,7 +73474,7 @@ "chai": "^4.3.6", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "is-electron-renderer": "^2.0.1", "mocha": "^10.2.0", @@ -78597,7 +78581,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-devtools-installer": "^3.2.0", "electron-dl": "^3.5.0", "electron-mocha": "^12.2.0", diff --git a/packages/atlas-service/package.json b/packages/atlas-service/package.json index 7e9adaa7f10..8166484a3ed 100644 --- a/packages/atlas-service/package.json +++ b/packages/atlas-service/package.json @@ -84,7 +84,7 @@ "@mongodb-js/oidc-plugin": "^1.1.1", "hadron-app-registry": "^9.2.7", "compass-preferences-model": "^2.29.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "hadron-ipc": "^3.2.24", "lodash": "^4.17.21", "react": "^17.0.2", diff --git a/packages/compass-crud/package.json b/packages/compass-crud/package.json index 60097354367..824fe06f1ef 100644 --- a/packages/compass-crud/package.json +++ b/packages/compass-crud/package.json @@ -59,7 +59,7 @@ "chai": "^4.1.2", "chai-as-promised": "^7.1.1", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", diff --git a/packages/compass-e2e-tests/package.json b/packages/compass-e2e-tests/package.json index 78ee48df513..cae7fa21011 100644 --- a/packages/compass-e2e-tests/package.json +++ b/packages/compass-e2e-tests/package.json @@ -51,8 +51,8 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", - "electron-to-chromium": "^1.5.41", + "electron": "^32.2.2", + "electron-to-chromium": "^1.5.49", "eslint": "^7.25.0", "glob": "^10.2.5", "hadron-build": "^25.5.13", diff --git a/packages/compass-explain-plan/package.json b/packages/compass-explain-plan/package.json index 6c4eb433a1a..d6c35ca71f4 100644 --- a/packages/compass-explain-plan/package.json +++ b/packages/compass-explain-plan/package.json @@ -58,7 +58,7 @@ "@types/d3-hierarchy": "^3.1.2", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-find-in-page/package.json b/packages/compass-find-in-page/package.json index e362593fab6..d75ec0a3d65 100644 --- a/packages/compass-find-in-page/package.json +++ b/packages/compass-find-in-page/package.json @@ -61,7 +61,7 @@ "@types/sinon-chai": "^3.2.5", "chai": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-import-export/package.json b/packages/compass-import-export/package.json index 8045c01716f..02d06604bba 100644 --- a/packages/compass-import-export/package.json +++ b/packages/compass-import-export/package.json @@ -59,7 +59,7 @@ "bson": "^6.8.0", "compass-preferences-model": "^2.29.2", "debug": "^4.3.4", - "electron": "^32.2.1", + "electron": "^32.2.2", "hadron-app-registry": "^9.2.7", "hadron-document": "^8.6.5", "hadron-ipc": "^3.2.24", diff --git a/packages/compass-indexes/package.json b/packages/compass-indexes/package.json index 056dcb88c98..5c4d6f498d5 100644 --- a/packages/compass-indexes/package.json +++ b/packages/compass-indexes/package.json @@ -56,7 +56,7 @@ "@types/numeral": "^2.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-query-bar/package.json b/packages/compass-query-bar/package.json index 0b07e42e702..f6aa1907e77 100644 --- a/packages/compass-query-bar/package.json +++ b/packages/compass-query-bar/package.json @@ -55,7 +55,7 @@ "@mongodb-js/tsconfig-compass": "^1.0.5", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "eslint": "^7.25.0", "mocha": "^10.2.0", diff --git a/packages/compass-schema-validation/package.json b/packages/compass-schema-validation/package.json index ffc5a4d2a38..bf327eead79 100644 --- a/packages/compass-schema-validation/package.json +++ b/packages/compass-schema-validation/package.json @@ -56,7 +56,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", diff --git a/packages/compass-shell/package.json b/packages/compass-shell/package.json index b42928e330d..71b9306e6c2 100644 --- a/packages/compass-shell/package.json +++ b/packages/compass-shell/package.json @@ -76,7 +76,7 @@ "@types/enzyme": "^3.10.14", "chai": "^4.2.0", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-mocha": "^12.2.0", "enzyme": "^3.11.0", "eslint": "^7.25.0", diff --git a/packages/compass-utils/package.json b/packages/compass-utils/package.json index 007e1d724f1..0f5a3813421 100644 --- a/packages/compass-utils/package.json +++ b/packages/compass-utils/package.json @@ -69,6 +69,6 @@ }, "dependencies": { "@electron/remote": "^2.1.2", - "electron": "^32.2.1" + "electron": "^32.2.2" } } diff --git a/packages/compass-web/package.json b/packages/compass-web/package.json index a1f240fa7f2..b08b9bf6ffb 100644 --- a/packages/compass-web/package.json +++ b/packages/compass-web/package.json @@ -109,7 +109,7 @@ "debug": "^4.3.4", "depcheck": "^1.4.1", "dns-query": "^0.11.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "eslint": "^7.25.0", "events": "^3.3.0", "express": "^4.21.1", diff --git a/packages/compass/package.json b/packages/compass/package.json index 3c589d57218..779dbabd789 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -243,7 +243,7 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "depcheck": "^1.4.1", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-devtools-installer": "^3.2.0", "electron-dl": "^3.5.0", "electron-mocha": "^12.2.0", diff --git a/packages/connection-storage/package.json b/packages/connection-storage/package.json index dd8ad7b32d7..1c65e8f9696 100644 --- a/packages/connection-storage/package.json +++ b/packages/connection-storage/package.json @@ -63,7 +63,7 @@ "@mongodb-js/connection-info": "^0.9.2", "bson": "^6.8.0", "compass-preferences-model": "^2.29.2", - "electron": "^32.2.1", + "electron": "^32.2.2", "hadron-app-registry": "^9.2.7", "hadron-ipc": "^3.2.24", "keytar": "^7.9.0", diff --git a/packages/hadron-build/package.json b/packages/hadron-build/package.json index 4b697d8f9f4..fbddd8879f7 100644 --- a/packages/hadron-build/package.json +++ b/packages/hadron-build/package.json @@ -32,7 +32,7 @@ "debug": "^4.3.4", "del": "^2.0.2", "download": "^8.0.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "electron-packager": "^15.5.1", "electron-packager-plugin-non-proprietary-codecs-ffmpeg": "^1.0.2", "flatnest": "^1.0.0", diff --git a/packages/hadron-ipc/package.json b/packages/hadron-ipc/package.json index ea14836d959..570b0bf2ba6 100644 --- a/packages/hadron-ipc/package.json +++ b/packages/hadron-ipc/package.json @@ -69,7 +69,7 @@ }, "dependencies": { "debug": "^4.3.4", - "electron": "^32.2.1", + "electron": "^32.2.2", "is-electron-renderer": "^2.0.1" } } diff --git a/scripts/package.json b/scripts/package.json index 1d758e6894d..aa8fa87bd85 100644 --- a/scripts/package.json +++ b/scripts/package.json @@ -41,7 +41,7 @@ "@babel/core": "^7.24.3", "@mongodb-js/monorepo-tools": "^1.1.1", "commander": "^11.0.0", - "electron": "^32.2.1", + "electron": "^32.2.2", "jsdom": "^24.1.3", "make-fetch-happen": "^10.2.1", "pacote": "^11.3.5", From 41a14143fc3b35700126620be83082597475d6b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 16:29:29 +0000 Subject: [PATCH 68/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6421) Update report Co-authored-by: gribnoysup <5036933+gribnoysup@users.noreply.github.com> --- THIRD-PARTY-NOTICES.md | 6 +++--- docs/tracking-plan.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md index 491a34835a1..17d5cc02d80 100644 --- a/THIRD-PARTY-NOTICES.md +++ b/THIRD-PARTY-NOTICES.md @@ -248,7 +248,7 @@ Package|Version|License **[ee-first](#e2746902c758ae8a6f91ffb9618cd53717f936cb33c6323e65b6b7b24f7ebefe)**|1.1.1|MIT **[electron-dl](#e97e034c7b93c63e7a433d75f6f1de3e0668764225ebbd61dbde8d1b55d6f3b7)**|3.5.0|MIT **[electron-squirrel-startup](#09fb8168e8fda2e174f8d1a1c392ffd8f762c5637c788edd00d1e2486d060349)**|1.0.1|Apache-2.0 -**[electron](#4dac8b39331bcb6b30b99afe0849c00e3153935fcab1f1086622b9a2ccb4afc8)**|32.2.1|MIT +**[electron](#ddfad0a406da8c661d832155ebc87c378ac67db5d3c70f33126149f0084c639b)**|32.2.2|MIT **[encodeurl](#b89152db475e86531e570f87b45d8a51aa5e5d87d4cc3b960cee7b8febf1d26a)**|1.0.2|MIT **[encodeurl](#177948a319ae0aeebbd65742c53c62b37c75ec1d021afa5a188d10a7ceae6623)**|2.0.0|MIT **[end-of-stream](#fadc10994f5fa767d06fb25cfff35fb17a895daf3bc3477c782907668ed16563)**|1.4.4|MIT @@ -19215,8 +19215,8 @@ License files: - -### [electron](https://www.npmjs.com/package/electron) (version 32.2.1) + +### [electron](https://www.npmjs.com/package/electron) (version 32.2.2) License tags: MIT License files: diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index 45416883d5d..acb223106e4 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 03:39 PM +Generated on Tue, Oct 29, 2024 at 04:29 PM ## Table of Contents From b377452eac5124adc3443bd2c21c720ce06da626 Mon Sep 17 00:00:00 2001 From: Paula Stachova Date: Tue, 29 Oct 2024 18:22:52 +0100 Subject: [PATCH 69/71] feat(compass-global-writes): sharding error state COMPASS-8349 (#6374) --- .../src/components/common-styles.ts | 19 + .../components/create-shard-key-form.spec.tsx | 211 +++++++++++ .../src/components/create-shard-key-form.tsx | 336 +++++++++++++++++ .../src/components/index.tsx | 9 + .../src/components/shard-zones-table.tsx | 2 +- .../components/states/shard-key-correct.tsx | 22 +- .../components/states/shard-key-invalid.tsx | 10 +- .../components/states/shard-key-mismatch.tsx | 12 +- .../components/states/sharding-error.spec.tsx | 64 ++++ .../src/components/states/sharding-error.tsx | 81 +++++ .../src/components/states/sharding.tsx | 11 +- .../src/components/states/unsharded.tsx | 341 +----------------- .../src/components/states/usharded.spec.tsx | 176 +-------- .../services/atlas-global-writes-service.ts | 9 +- .../src/store/index.spec.ts | 59 ++- .../src/store/reducer.ts | 47 ++- 16 files changed, 858 insertions(+), 551 deletions(-) create mode 100644 packages/compass-global-writes/src/components/common-styles.ts create mode 100644 packages/compass-global-writes/src/components/create-shard-key-form.spec.tsx create mode 100644 packages/compass-global-writes/src/components/create-shard-key-form.tsx create mode 100644 packages/compass-global-writes/src/components/states/sharding-error.spec.tsx create mode 100644 packages/compass-global-writes/src/components/states/sharding-error.tsx diff --git a/packages/compass-global-writes/src/components/common-styles.ts b/packages/compass-global-writes/src/components/common-styles.ts new file mode 100644 index 00000000000..b9ec0bd7e84 --- /dev/null +++ b/packages/compass-global-writes/src/components/common-styles.ts @@ -0,0 +1,19 @@ +import { css, spacing } from '@mongodb-js/compass-components'; + +export const bannerStyles = css({ + textAlign: 'justify', +}); + +export const paragraphStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[100], +}); + +export const containerStyles = css({ + display: 'flex', + flexDirection: 'column', + gap: spacing[400], + marginBottom: spacing[400], + textAlign: 'justify', +}); diff --git a/packages/compass-global-writes/src/components/create-shard-key-form.spec.tsx b/packages/compass-global-writes/src/components/create-shard-key-form.spec.tsx new file mode 100644 index 00000000000..ce3ccd02ac7 --- /dev/null +++ b/packages/compass-global-writes/src/components/create-shard-key-form.spec.tsx @@ -0,0 +1,211 @@ +import React from 'react'; +import { expect } from 'chai'; +import { screen, userEvent } from '@mongodb-js/testing-library-compass'; +import { + CreateShardKeyForm, + type CreateShardKeyFormProps, +} from './create-shard-key-form'; +import { renderWithStore } from '../../tests/create-store'; +import sinon from 'sinon'; + +function renderWithProps(props?: Partial) { + return renderWithStore( + {}} + {...props} + /> + ); +} + +function setShardingKeyFieldValue(value: string) { + const input = screen.getByLabelText('Second shard key field'); + expect(input).to.exist; + userEvent.type(input, value); + expect(input).to.have.value(value); + userEvent.keyboard('{Escape}'); + + // For some reason, when running tests in electron mode, the value of + // the input field is not being updated. This is a workaround to ensure + // the value is being updated before clicking the submit button. + userEvent.click(screen.getByText(value), undefined, { + skipPointerEventsCheck: true, + }); +} + +describe('CreateShardKeyForm', function () { + let onCreateShardKeySpy: sinon.SinonSpy; + context('default', function () { + beforeEach(async function () { + onCreateShardKeySpy = sinon.spy(); + await renderWithProps({ onCreateShardKey: onCreateShardKeySpy }); + }); + + it('renders location form field as disabled', function () { + expect(screen.getByLabelText('First shard key field')).to.have.attribute( + 'aria-disabled', + 'true' + ); + }); + + it('does not allow user to submit when no second shard key is selected', function () { + expect(screen.getByTestId('shard-collection-button')).to.have.attribute( + 'aria-disabled', + 'true' + ); + + userEvent.click(screen.getByTestId('shard-collection-button')); + expect(onCreateShardKeySpy.called).to.be.false; + }); + + it('allows user to input second shard key and submit it', function () { + setShardingKeyFieldValue('name'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: false, + isCustomShardKeyHashed: false, + presplitHashedZones: false, + numInitialChunks: null, + }); + }); + + it('renders advanced options and radio buttons for: default, unique-index and hashed index', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + expect(accordian).to.exist; + + userEvent.click(accordian); + + const defaultRadio = screen.getByLabelText('Default'); + const uniqueIndexRadio = screen.getByLabelText( + 'Use unique index as the shard key' + ); + const hashedIndexRadio = screen.getByLabelText( + 'Use hashed index as the shard key' + ); + + expect(defaultRadio).to.exist; + expect(uniqueIndexRadio).to.exist; + expect(hashedIndexRadio).to.exist; + }); + + it('allows user to select unique index as shard key', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + userEvent.click(accordian); + + const uniqueIndexRadio = screen.getByLabelText( + 'Use unique index as the shard key' + ); + userEvent.click(uniqueIndexRadio); + + expect(uniqueIndexRadio).to.have.attribute('aria-checked', 'true'); + + setShardingKeyFieldValue('name'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: true, + isCustomShardKeyHashed: false, + presplitHashedZones: false, + numInitialChunks: null, + }); + }); + + it('allows user to select hashed index as shard key with split-chunks option', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + userEvent.click(accordian); + + const hashedIndexRadio = screen.getByLabelText( + 'Use hashed index as the shard key' + ); + userEvent.click(hashedIndexRadio); + + expect(hashedIndexRadio).to.have.attribute('aria-checked', 'true'); + + setShardingKeyFieldValue('name'); + + // Check pre-split data + userEvent.click(screen.getByTestId('presplit-data-checkbox'), undefined, { + skipPointerEventsCheck: true, + }); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: false, + isCustomShardKeyHashed: true, + presplitHashedZones: true, + numInitialChunks: null, + }); + }); + + it('allows user to select hashed index as shard key with all its options', function () { + const accordian = screen.getByText('Advanced Shard Key Configuration'); + userEvent.click(accordian); + + const hashedIndexRadio = screen.getByLabelText( + 'Use hashed index as the shard key' + ); + userEvent.click(hashedIndexRadio); + + expect(hashedIndexRadio).to.have.attribute('aria-checked', 'true'); + + setShardingKeyFieldValue('name'); + + // Check pre-split data + userEvent.click(screen.getByTestId('presplit-data-checkbox'), undefined, { + skipPointerEventsCheck: true, + }); + + // Enter number of chunks + userEvent.type(screen.getByTestId('chunks-per-shard-input'), '10'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.true; + expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ + customShardKey: 'name', + isShardKeyUnique: false, + isCustomShardKeyHashed: true, + presplitHashedZones: true, + numInitialChunks: 10, + }); + }); + }); + + it('cannot be submitted when already submitting', async function () { + onCreateShardKeySpy = sinon.spy(); + await renderWithProps({ + onCreateShardKey: onCreateShardKeySpy, + isSubmittingForSharding: true, + }); + setShardingKeyFieldValue('name'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.false; + }); + + it('cannot be submitted when cancelling', async function () { + onCreateShardKeySpy = sinon.spy(); + await renderWithProps({ + onCreateShardKey: onCreateShardKeySpy, + isCancellingSharding: true, + }); + setShardingKeyFieldValue('name'); + + userEvent.click(screen.getByTestId('shard-collection-button')); + + expect(onCreateShardKeySpy.calledOnce).to.be.false; + }); +}); diff --git a/packages/compass-global-writes/src/components/create-shard-key-form.tsx b/packages/compass-global-writes/src/components/create-shard-key-form.tsx new file mode 100644 index 00000000000..19c801e7b1d --- /dev/null +++ b/packages/compass-global-writes/src/components/create-shard-key-form.tsx @@ -0,0 +1,336 @@ +import React, { useCallback, useState } from 'react'; +import { + Accordion, + Body, + Button, + Checkbox, + ComboboxOption, + ComboboxWithCustomOption, + css, + cx, + InlineInfoLink, + Label, + Link, + Radio, + RadioGroup, + spacing, + SpinLoader, + Subtitle, + TextInput, +} from '@mongodb-js/compass-components'; +import { + createShardKey, + type RootState, + ShardingStatuses, + type CreateShardKeyData, +} from '../store/reducer'; +import { useAutocompleteFields } from '@mongodb-js/compass-field-store'; +import { connect } from 'react-redux'; +import { containerStyles } from './common-styles'; + +const listStyles = css({ + listStyle: 'disc', + paddingLeft: 'auto', + marginTop: 0, +}); + +const shardKeyFormFieldsStyles = css({ + display: 'flex', + flexDirection: 'row', + gap: spacing[400], +}); + +const secondShardKeyStyles = css({ + width: '300px', +}); + +const hasedIndexOptionsStyles = css({ + marginLeft: spacing[1200], // This aligns it with the radio button text + marginTop: spacing[400], +}); + +const advanceOptionsGroupStyles = css({ + paddingLeft: spacing[500], // Avoid visual cutoff +}); + +const chunksInputStyles = css({ + display: 'flex', + alignItems: 'center', + gap: spacing[100], +}); + +const nbsp = '\u00a0'; + +type ShardingAdvancedOption = 'default' | 'unique-index' | 'hashed-index'; + +function CreateShardKeyDescription() { + return ( +
+ Configure compound shard key + + To properly configure Global Writes, your collections must be sharded + using a compound shard key made up of a ‘location’ field and a second + field of your choosing. + + + + All documents in your collection should contain both the ‘location’ + field and your chosen second field. + + +
    +
  • + + The second field should represent a well-distributed and immutable + value to ensure that data is equally distributed across shards in a + particular zone.{nbsp} + + Note that the value of this field cannot be an array. + + {nbsp} + For more information, read our documentation on{' '} + + selecting a shard key + + . + +
  • +
+ + + Once you shard your collection, it cannot be unsharded. + +
+ ); +} + +export type CreateShardKeyFormProps = { + namespace: string; + isSubmittingForSharding: boolean; + isCancellingSharding: boolean; + onCreateShardKey: (data: CreateShardKeyData) => void; +}; + +export function CreateShardKeyForm({ + namespace, + isSubmittingForSharding, + isCancellingSharding, + onCreateShardKey, +}: CreateShardKeyFormProps) { + const [isAdvancedOptionsOpen, setIsAdvancedOptionsOpen] = useState(false); + const [selectedAdvancedOption, setSelectedAdvancedOption] = + useState('default'); + const fields = useAutocompleteFields(namespace); + + const [secondShardKey, setSecondShardKey] = useState(null); + const [numInitialChunks, setNumInitialChunks] = useState< + string | undefined + >(); + const [isPreSplitData, setIsPreSplitData] = useState(false); + + const onSubmit = useCallback(() => { + if (!secondShardKey) { + return; + } + const isCustomShardKeyHashed = selectedAdvancedOption === 'hashed-index'; + const presplitHashedZones = isCustomShardKeyHashed && isPreSplitData; + + const data: CreateShardKeyData = { + customShardKey: secondShardKey, + isShardKeyUnique: selectedAdvancedOption === 'unique-index', + isCustomShardKeyHashed, + presplitHashedZones, + numInitialChunks: + presplitHashedZones && numInitialChunks + ? Number(numInitialChunks) + : null, + }; + + onCreateShardKey(data); + }, [ + isPreSplitData, + numInitialChunks, + secondShardKey, + selectedAdvancedOption, + onCreateShardKey, + ]); + + return ( + <> + +
+
+
+ + +
+
+ + ({ value }))} + className={secondShardKeyStyles} + value={secondShardKey} + searchEmptyMessage="No fields found. Please enter a valid field name." + renderOption={(option, index, isCustom) => { + return ( + + ); + }} + /> +
+
+ + ) => { + setSelectedAdvancedOption( + event.target.value as ShardingAdvancedOption + ); + }} + > + + Default + + +
+ + + Enforce a uniqueness constraint on the shard key of this + Global Collection.{' '} + + Learn more + + +
+
+ +
+ + + Improve even distribution of the sharded data by hashing the + second field of the shard key.{' '} + + Learn more + + +
+
+
+ {selectedAdvancedOption === 'hashed-index' && ( +
+ setIsPreSplitData(!isPreSplitData)} + label="Pre-split data for even distribution." + checked={isPreSplitData} + /> +
+ setNumInitialChunks(event.target.value)} + /> + chunks per shard. +
+
+ )} +
+
+ +
+
+ + ); +} + +export default connect( + (state: RootState) => { + return { + namespace: state.namespace, + isSubmittingForSharding: [ + ShardingStatuses.SUBMITTING_FOR_SHARDING, + ShardingStatuses.SUBMITTING_FOR_SHARDING_ERROR, + ].includes(state.status), + isCancellingSharding: [ + ShardingStatuses.CANCELLING_SHARDING, + ShardingStatuses.CANCELLING_SHARDING_ERROR, + ].includes(state.status), + }; + }, + { + onCreateShardKey: createShardKey, + } +)(CreateShardKeyForm); diff --git a/packages/compass-global-writes/src/components/index.tsx b/packages/compass-global-writes/src/components/index.tsx index dd6ea046be4..f27f9c2a989 100644 --- a/packages/compass-global-writes/src/components/index.tsx +++ b/packages/compass-global-writes/src/components/index.tsx @@ -14,6 +14,7 @@ import ShardingState from './states/sharding'; import ShardKeyCorrect from './states/shard-key-correct'; import ShardKeyInvalid from './states/shard-key-invalid'; import ShardKeyMismatch from './states/shard-key-mismatch'; +import ShardingError from './states/sharding-error'; const containerStyles = css({ paddingLeft: spacing[400], @@ -66,6 +67,14 @@ function ShardingStateView({ return ; } + if ( + shardingStatus === ShardingStatuses.SHARDING_ERROR || + shardingStatus === ShardingStatuses.CANCELLING_SHARDING_ERROR || + shardingStatus === ShardingStatuses.SUBMITTING_FOR_SHARDING_ERROR + ) { + return ; + } + if ( shardingStatus === ShardingStatuses.SHARD_KEY_CORRECT || shardingStatus === ShardingStatuses.UNMANAGING_NAMESPACE diff --git a/packages/compass-global-writes/src/components/shard-zones-table.tsx b/packages/compass-global-writes/src/components/shard-zones-table.tsx index 3453c36b613..6d3952235d0 100644 --- a/packages/compass-global-writes/src/components/shard-zones-table.tsx +++ b/packages/compass-global-writes/src/components/shard-zones-table.tsx @@ -122,7 +122,7 @@ export function ShardZonesTable({ const handleSearchTextChange = useCallback( (e: React.ChangeEvent) => { - tableRef.current.setGlobalFilter(e.currentTarget.value); + tableRef.current.setGlobalFilter(e.currentTarget?.value || ''); }, [tableRef] ); diff --git a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx index a54ea1b3180..12e7f64f313 100644 --- a/packages/compass-global-writes/src/components/states/shard-key-correct.tsx +++ b/packages/compass-global-writes/src/components/states/shard-key-correct.tsx @@ -11,6 +11,7 @@ import { Label, Button, ButtonVariant, + SpinLoader, } from '@mongodb-js/compass-components'; import { connect } from 'react-redux'; import { @@ -24,28 +25,20 @@ import toNS from 'mongodb-ns'; import { ShardZonesTable } from '../shard-zones-table'; import { useConnectionInfo } from '@mongodb-js/compass-connections/provider'; import ShardKeyMarkup from '../shard-key-markup'; +import { + containerStyles, + paragraphStyles, + bannerStyles, +} from '../common-styles'; const nbsp = '\u00a0'; -const containerStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[400], - marginBottom: spacing[400], -}); - const codeBlockContainerStyles = css({ display: 'flex', flexDirection: 'column', gap: spacing[100], }); -const paragraphStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[100], -}); - export type ShardKeyCorrectProps = { namespace: string; shardKey: ShardKey; @@ -81,7 +74,7 @@ export function ShardKeyCorrect({ return (
- + All documents in your collection should contain both the ‘location’ field (with a ISO country or subdivision code) and your{' '} @@ -175,6 +168,7 @@ export function ShardKeyCorrect({ onClick={onUnmanageNamespace} variant={ButtonVariant.Primary} isLoading={isUnmanagingNamespace} + loadingIndicator={} > Unmanage collection diff --git a/packages/compass-global-writes/src/components/states/shard-key-invalid.tsx b/packages/compass-global-writes/src/components/states/shard-key-invalid.tsx index 3ee10060743..6cfcda3a531 100644 --- a/packages/compass-global-writes/src/components/states/shard-key-invalid.tsx +++ b/packages/compass-global-writes/src/components/states/shard-key-invalid.tsx @@ -8,13 +8,7 @@ import React from 'react'; import ShardKeyMarkup from '../shard-key-markup'; import type { RootState, ShardKey } from '../../store/reducer'; import { connect } from 'react-redux'; - -const containerStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[400], - marginBottom: spacing[400], -}); +import { containerStyles, bannerStyles } from '../common-styles'; const paragraphStyles = css({ display: 'flex', @@ -30,7 +24,7 @@ export interface ShardKeyInvalidProps { export function ShardKeyInvalid({ shardKey, namespace }: ShardKeyInvalidProps) { return (
- + To configure Global Writes, the first shard key of this collection must be "location" with ranged sharding and you must also diff --git a/packages/compass-global-writes/src/components/states/shard-key-mismatch.tsx b/packages/compass-global-writes/src/components/states/shard-key-mismatch.tsx index 78ee1fc4091..33d3b87be2d 100644 --- a/packages/compass-global-writes/src/components/states/shard-key-mismatch.tsx +++ b/packages/compass-global-writes/src/components/states/shard-key-mismatch.tsx @@ -5,6 +5,7 @@ import { spacing, css, ButtonVariant, + SpinLoader, } from '@mongodb-js/compass-components'; import React from 'react'; import ShardKeyMarkup from '../shard-key-markup'; @@ -16,13 +17,7 @@ import { } from '../../store/reducer'; import { connect } from 'react-redux'; import type { ManagedNamespace } from '../../services/atlas-global-writes-service'; - -const containerStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[400], - marginBottom: spacing[400], -}); +import { containerStyles, bannerStyles } from '../common-styles'; const unmanageBtnStyles = css({ marginTop: spacing[100], @@ -61,7 +56,7 @@ export function ShardKeyMismatch({ }: ShardKeyMismatchProps) { return (
- + Your requested shard key cannot be configured because the collection has already been sharded with a different key. @@ -75,6 +70,7 @@ export function ShardKeyMismatch({ onClick={onUnmanageNamespace} variant={ButtonVariant.Default} isLoading={isUnmanagingNamespace} + loadingIndicator={} className={unmanageBtnStyles} > Unmanage collection diff --git a/packages/compass-global-writes/src/components/states/sharding-error.spec.tsx b/packages/compass-global-writes/src/components/states/sharding-error.spec.tsx new file mode 100644 index 00000000000..2b1058b379e --- /dev/null +++ b/packages/compass-global-writes/src/components/states/sharding-error.spec.tsx @@ -0,0 +1,64 @@ +import React from 'react'; +import { expect } from 'chai'; +import { screen, userEvent } from '@mongodb-js/testing-library-compass'; +import { ShardingError } from './sharding-error'; +import { renderWithStore } from '../../../tests/create-store'; +import Sinon from 'sinon'; + +const shardingError = 'This is an error'; +function renderWithProps( + props?: Partial> +) { + return renderWithStore( + {}} + {...props} + /> + ); +} + +describe('ShardingError', function () { + it('renders the error', async function () { + await renderWithProps(); + expect(screen.getByText(/There was an error sharding your collection/)).to + .be.visible; + expect(screen.getByText(shardingError)).to.be.visible; + }); + + it('includes a button to cancel sharding', async function () { + const onCancelSharding = Sinon.spy(); + await renderWithProps({ onCancelSharding }); + const btn = screen.getByRole('button', { name: 'Cancel Request' }); + expect(btn).to.be.visible; + + userEvent.click(btn); + expect(onCancelSharding).to.have.been.called; + }); + + it('the cancel sharding button is disabled when cancelling is in progress', async function () { + const onCancelSharding = Sinon.spy(); + await renderWithProps({ onCancelSharding, isCancellingSharding: true }); + const btn = screen.getByTestId('cancel-sharding-btn'); + + userEvent.click(btn); + expect(onCancelSharding).not.to.have.been.called; + }); + + it('the cancel sharding button is disabled also when sharding is in progress', async function () { + const onCancelSharding = Sinon.spy(); + await renderWithProps({ onCancelSharding, isSubmittingForSharding: true }); + const btn = screen.getByTestId('cancel-sharding-btn'); + + userEvent.click(btn); + expect(onCancelSharding).not.to.have.been.called; + }); + + it('includes the createShardKeyForm', async function () { + await renderWithProps(); + expect(screen.getByRole('button', { name: 'Shard Collection' })).to.be + .visible; + }); +}); diff --git a/packages/compass-global-writes/src/components/states/sharding-error.tsx b/packages/compass-global-writes/src/components/states/sharding-error.tsx new file mode 100644 index 00000000000..a71c2d583b6 --- /dev/null +++ b/packages/compass-global-writes/src/components/states/sharding-error.tsx @@ -0,0 +1,81 @@ +import React from 'react'; +import { + Banner, + BannerVariant, + Button, + css, + spacing, + SpinLoader, +} from '@mongodb-js/compass-components'; +import { connect } from 'react-redux'; +import { + cancelSharding, + type RootState, + ShardingStatuses, +} from '../../store/reducer'; +import CreateShardKeyForm from '../create-shard-key-form'; +import { containerStyles, bannerStyles } from '../common-styles'; + +const btnStyles = css({ + float: 'right', + height: spacing[600], +}); + +const errorStyles = css({ + marginTop: spacing[200], + whiteSpace: 'pre-wrap', + textAlign: 'left', +}); + +interface ShardingErrorProps { + shardingError: string; + isCancellingSharding: boolean; + isSubmittingForSharding: boolean; + onCancelSharding: () => void; +} + +export function ShardingError({ + shardingError, + isCancellingSharding, + isSubmittingForSharding, + onCancelSharding, +}: ShardingErrorProps) { + return ( +
+ + There was an error sharding your collection. Please cancel the request, + make any necessary changes to your collection, and try again. +
{shardingError}
+ +
+ +
+ ); +} + +export default connect( + (state: RootState) => { + if (!state.shardingError) { + throw new Error('No shardingError found in ShardingError component'); + } + return { + shardingError: state.shardingError, + isCancellingSharding: + state.status === ShardingStatuses.CANCELLING_SHARDING_ERROR, + isSubmittingForSharding: + state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING_ERROR, + }; + }, + { + onCancelSharding: cancelSharding, + } +)(ShardingError); diff --git a/packages/compass-global-writes/src/components/states/sharding.tsx b/packages/compass-global-writes/src/components/states/sharding.tsx index 3bef1cf75d8..914e3197080 100644 --- a/packages/compass-global-writes/src/components/states/sharding.tsx +++ b/packages/compass-global-writes/src/components/states/sharding.tsx @@ -7,6 +7,7 @@ import { css, Link, spacing, + SpinLoader, } from '@mongodb-js/compass-components'; import { connect } from 'react-redux'; import { @@ -14,15 +15,10 @@ import { type RootState, ShardingStatuses, } from '../../store/reducer'; +import { containerStyles, bannerStyles } from '../common-styles'; const nbsp = '\u00a0'; -const containerStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[400], -}); - const btnStyles = css({ float: 'right', height: spacing[600], @@ -39,7 +35,7 @@ export function ShardingState({ }: ShardingStateProps) { return (
- + Sharding your collection … {nbsp}this should not take too long. diff --git a/packages/compass-global-writes/src/components/states/unsharded.tsx b/packages/compass-global-writes/src/components/states/unsharded.tsx index 073929dfe0d..43f05af7742 100644 --- a/packages/compass-global-writes/src/components/states/unsharded.tsx +++ b/packages/compass-global-writes/src/components/states/unsharded.tsx @@ -1,329 +1,14 @@ -import React, { useCallback, useState } from 'react'; -import { - Banner, - BannerVariant, - Body, - css, - Label, - Link, - spacing, - Subtitle, - InlineInfoLink, - TextInput, - Accordion, - RadioGroup, - Radio, - ComboboxWithCustomOption, - ComboboxOption, - Checkbox, - Button, - SpinLoader, - cx, -} from '@mongodb-js/compass-components'; -import { useAutocompleteFields } from '@mongodb-js/compass-field-store'; -import { connect } from 'react-redux'; -import type { CreateShardKeyData, RootState } from '../../store/reducer'; -import { createShardKey, ShardingStatuses } from '../../store/reducer'; +import React from 'react'; +import { Banner, BannerVariant } from '@mongodb-js/compass-components'; +import CreateShardKeyForm from '../create-shard-key-form'; +import { containerStyles, bannerStyles } from '../common-styles'; const nbsp = '\u00a0'; -const containerStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[400], -}); - -const contentStyles = css({ - display: 'flex', - flexDirection: 'column', - gap: spacing[200], -}); - -const listStyles = css({ - listStyle: 'disc', - paddingLeft: 'auto', - marginTop: 0, -}); - -const shardKeyFormFieldsStyles = css({ - display: 'flex', - flexDirection: 'row', - gap: spacing[400], -}); - -const secondShardKeyStyles = css({ - width: '300px', -}); - -const hasedIndexOptionsStyles = css({ - marginLeft: spacing[1200], // This aligns it with the radio button text - marginTop: spacing[400], -}); - -const advanceOptionsGroupStyles = css({ - paddingLeft: spacing[500], // Avoid visual cutoff -}); - -const chunksInputStyles = css({ - display: 'flex', - alignItems: 'center', - gap: spacing[100], -}); - -function CreateShardKeyDescription() { - return ( -
- Configure compound shard key - - To properly configure Global Writes, your collections must be sharded - using a compound shard key made up of a ‘location’ field and a second - field of your choosing. - - - - All documents in your collection should contain both the ‘location’ - field and your chosen second field. - - -
    -
  • - - The second field should represent a well-distributed and immutable - value to ensure that data is equally distributed across shards in a - particular zone.{nbsp} - - Note that the value of this field cannot be an array. - - {nbsp} - For more information, read our documentation on{' '} - - selecting a shard key - - . - -
  • -
- - - Once you shard your collection, it cannot be unsharded. - -
- ); -} - -type ShardingAdvancedOption = 'default' | 'unique-index' | 'hashed-index'; - -function CreateShardKeyForm({ - namespace, - isSubmittingForSharding, - onCreateShardKey, -}: Pick< - UnshardedStateProps, - 'isSubmittingForSharding' | 'namespace' | 'onCreateShardKey' ->) { - const [isAdvancedOptionsOpen, setIsAdvancedOptionsOpen] = useState(false); - const [selectedAdvancedOption, setSelectedAdvancedOption] = - useState('default'); - const fields = useAutocompleteFields(namespace); - - const [secondShardKey, setSecondShardKey] = useState(null); - const [numInitialChunks, setNumInitialChunks] = useState< - string | undefined - >(); - const [isPreSplitData, setIsPreSplitData] = useState(false); - - const onSubmit = useCallback(() => { - if (!secondShardKey) { - return; - } - const isCustomShardKeyHashed = selectedAdvancedOption === 'hashed-index'; - const presplitHashedZones = isCustomShardKeyHashed && isPreSplitData; - - const data: CreateShardKeyData = { - customShardKey: secondShardKey, - isShardKeyUnique: selectedAdvancedOption === 'unique-index', - isCustomShardKeyHashed, - presplitHashedZones, - numInitialChunks: - presplitHashedZones && numInitialChunks - ? Number(numInitialChunks) - : null, - }; - - onCreateShardKey(data); - }, [ - isPreSplitData, - numInitialChunks, - secondShardKey, - selectedAdvancedOption, - onCreateShardKey, - ]); - - return ( -
-
-
- - -
-
- - ({ value }))} - className={secondShardKeyStyles} - value={secondShardKey} - searchEmptyMessage="No fields found. Please enter a valid field name." - renderOption={(option, index, isCustom) => { - return ( - - ); - }} - /> -
-
- - ) => { - setSelectedAdvancedOption( - event.target.value as ShardingAdvancedOption - ); - }} - > - - Default - - -
- - - Enforce a uniqueness constraint on the shard key of this Global - Collection.{' '} - - Learn more - - -
-
- -
- - - Improve even distribution of the sharded data by hashing the - second field of the shard key.{' '} - - Learn more - - -
-
-
- {selectedAdvancedOption === 'hashed-index' && ( -
- setIsPreSplitData(!isPreSplitData)} - label="Pre-split data for even distribution." - checked={isPreSplitData} - /> -
- setNumInitialChunks(event.target.value)} - /> - chunks per shard. -
-
- )} -
-
- -
-
- ); -} - -type UnshardedStateProps = { - namespace: string; - isSubmittingForSharding: boolean; - onCreateShardKey: (data: CreateShardKeyData) => void; -}; -export function UnshardedState(props: UnshardedStateProps) { +export function UnshardedState() { return (
- + To use Global Writes, this collection must be configured with a compound shard key made up of both a ‘location’ field and an @@ -331,19 +16,9 @@ export function UnshardedState(props: UnshardedStateProps) { {nbsp}See the instructions below for details. - - +
); } -export default connect( - (state: RootState) => ({ - namespace: state.namespace, - isSubmittingForSharding: - state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING, - }), - { - onCreateShardKey: createShardKey, - } -)(UnshardedState); +export default UnshardedState; diff --git a/packages/compass-global-writes/src/components/states/usharded.spec.tsx b/packages/compass-global-writes/src/components/states/usharded.spec.tsx index 74d57ccb925..13c8b9aafcc 100644 --- a/packages/compass-global-writes/src/components/states/usharded.spec.tsx +++ b/packages/compass-global-writes/src/components/states/usharded.spec.tsx @@ -1,36 +1,13 @@ import React from 'react'; import { expect } from 'chai'; -import { screen, userEvent } from '@mongodb-js/testing-library-compass'; +import { screen } from '@mongodb-js/testing-library-compass'; import { UnshardedState } from './unsharded'; import { renderWithStore } from '../../../tests/create-store'; -import sinon from 'sinon'; function renderWithProps( props?: Partial> ) { - return renderWithStore( - {}} - {...props} - /> - ); -} - -function setShardingKeyFieldValue(value: string) { - const input = screen.getByLabelText('Second shard key field'); - expect(input).to.exist; - userEvent.type(input, value); - expect(input).to.have.value(value); - userEvent.keyboard('{Escape}'); - - // For some reason, when running tests in electron mode, the value of - // the input field is not being updated. This is a workaround to ensure - // the value is being updated before clicking the submit button. - userEvent.click(screen.getByText(value), undefined, { - skipPointerEventsCheck: true, - }); + return renderWithStore(); } describe('UnshardedState', function () { @@ -44,150 +21,9 @@ describe('UnshardedState', function () { expect(screen.getByTestId('unsharded-text-description')).to.exist; }); - context('shard collection form', function () { - let onCreateShardKeySpy: sinon.SinonSpy; - beforeEach(async function () { - onCreateShardKeySpy = sinon.spy(); - await renderWithProps({ onCreateShardKey: onCreateShardKeySpy }); - }); - - it('renders location form field as disabled', function () { - expect(screen.getByLabelText('First shard key field')).to.have.attribute( - 'aria-disabled', - 'true' - ); - }); - - it('does not allow user to submit when no second shard key is selected', function () { - expect(screen.getByTestId('shard-collection-button')).to.have.attribute( - 'aria-disabled', - 'true' - ); - - userEvent.click(screen.getByTestId('shard-collection-button')); - expect(onCreateShardKeySpy.called).to.be.false; - }); - - it('allows user to input second shard key and submit it', function () { - setShardingKeyFieldValue('name'); - - userEvent.click(screen.getByTestId('shard-collection-button')); - - expect(onCreateShardKeySpy.calledOnce).to.be.true; - expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ - customShardKey: 'name', - isShardKeyUnique: false, - isCustomShardKeyHashed: false, - presplitHashedZones: false, - numInitialChunks: null, - }); - }); - - it('renders advanced options and radio buttons for: default, unique-index and hashed index', function () { - const accordian = screen.getByText('Advanced Shard Key Configuration'); - expect(accordian).to.exist; - - userEvent.click(accordian); - - const defaultRadio = screen.getByLabelText('Default'); - const uniqueIndexRadio = screen.getByLabelText( - 'Use unique index as the shard key' - ); - const hashedIndexRadio = screen.getByLabelText( - 'Use hashed index as the shard key' - ); - - expect(defaultRadio).to.exist; - expect(uniqueIndexRadio).to.exist; - expect(hashedIndexRadio).to.exist; - }); - - it('allows user to select unique index as shard key', function () { - const accordian = screen.getByText('Advanced Shard Key Configuration'); - userEvent.click(accordian); - - const uniqueIndexRadio = screen.getByLabelText( - 'Use unique index as the shard key' - ); - userEvent.click(uniqueIndexRadio); - - expect(uniqueIndexRadio).to.have.attribute('aria-checked', 'true'); - - setShardingKeyFieldValue('name'); - - userEvent.click(screen.getByTestId('shard-collection-button')); - - expect(onCreateShardKeySpy.calledOnce).to.be.true; - expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ - customShardKey: 'name', - isShardKeyUnique: true, - isCustomShardKeyHashed: false, - presplitHashedZones: false, - numInitialChunks: null, - }); - }); - - it('allows user to select hashed index as shard key with split-chunks option', function () { - const accordian = screen.getByText('Advanced Shard Key Configuration'); - userEvent.click(accordian); - - const hashedIndexRadio = screen.getByLabelText( - 'Use hashed index as the shard key' - ); - userEvent.click(hashedIndexRadio); - - expect(hashedIndexRadio).to.have.attribute('aria-checked', 'true'); - - setShardingKeyFieldValue('name'); - - // Check pre-split data - userEvent.click(screen.getByTestId('presplit-data-checkbox'), undefined, { - skipPointerEventsCheck: true, - }); - - userEvent.click(screen.getByTestId('shard-collection-button')); - - expect(onCreateShardKeySpy.calledOnce).to.be.true; - expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ - customShardKey: 'name', - isShardKeyUnique: false, - isCustomShardKeyHashed: true, - presplitHashedZones: true, - numInitialChunks: null, - }); - }); - - it('allows user to select hashed index as shard key with all its options', function () { - const accordian = screen.getByText('Advanced Shard Key Configuration'); - userEvent.click(accordian); - - const hashedIndexRadio = screen.getByLabelText( - 'Use hashed index as the shard key' - ); - userEvent.click(hashedIndexRadio); - - expect(hashedIndexRadio).to.have.attribute('aria-checked', 'true'); - - setShardingKeyFieldValue('name'); - - // Check pre-split data - userEvent.click(screen.getByTestId('presplit-data-checkbox'), undefined, { - skipPointerEventsCheck: true, - }); - - // Enter number of chunks - userEvent.type(screen.getByTestId('chunks-per-shard-input'), '10'); - - userEvent.click(screen.getByTestId('shard-collection-button')); - - expect(onCreateShardKeySpy.calledOnce).to.be.true; - expect(onCreateShardKeySpy.firstCall.args[0]).to.deep.equal({ - customShardKey: 'name', - isShardKeyUnique: false, - isCustomShardKeyHashed: true, - presplitHashedZones: true, - numInitialChunks: 10, - }); - }); + it('includes the createShardKeyForm', async function () { + await renderWithProps(); + expect(screen.getByRole('button', { name: 'Shard Collection' })).to.be + .visible; }); }); diff --git a/packages/compass-global-writes/src/services/atlas-global-writes-service.ts b/packages/compass-global-writes/src/services/atlas-global-writes-service.ts index 80390f1def2..8ce8f1456c7 100644 --- a/packages/compass-global-writes/src/services/atlas-global-writes-service.ts +++ b/packages/compass-global-writes/src/services/atlas-global-writes-service.ts @@ -4,6 +4,8 @@ import type { AtlasService } from '@mongodb-js/atlas-service/provider'; import type { CreateShardKeyData } from '../store/reducer'; import type { ConnectionInfoRef } from '@mongodb-js/compass-connections/provider'; +const TIMESTAMP_REGEX = /\[\d{1,2}:\d{2}:\d{2}\.\d{3}\]/; + export type ShardZoneMapping = { isoCode: string; typeOneIsoCode: string; @@ -184,10 +186,13 @@ export class AtlasGlobalWritesService { const namespaceShardingError = data.automationStatus.processes.find( (process) => process.statusType === 'ERROR' && - process.workingOnShort === 'ShardingCollections' && + process.workingOnShort === 'ShardCollections' && process.errorText.indexOf(namespace) !== -1 ); - return namespaceShardingError?.errorText; + if (!namespaceShardingError) return undefined; + const errorTextSplit = + namespaceShardingError.errorText.split(TIMESTAMP_REGEX); + return errorTextSplit[errorTextSplit.length - 1].trim(); } async getShardingKeys(namespace: string) { diff --git a/packages/compass-global-writes/src/store/index.spec.ts b/packages/compass-global-writes/src/store/index.spec.ts index ee001aeb6f2..a32c7d032ff 100644 --- a/packages/compass-global-writes/src/store/index.spec.ts +++ b/packages/compass-global-writes/src/store/index.spec.ts @@ -51,8 +51,8 @@ const managedNamespace: ManagedNamespace = { const failedShardingProcess: AutomationAgentProcess = { statusType: 'ERROR', - workingOnShort: 'ShardingCollections', - errorText: `Failed to shard ${NS}`, + workingOnShort: 'ShardCollections', + errorText: `before timestamp[01:02:03.456]Failed to shard ${NS}`, }; function createAuthFetchResponse< @@ -230,6 +230,9 @@ describe('GlobalWritesStore Store', function () { clock.tick(POLLING_INTERVAL); await waitFor(() => { expect(store.getState().status).to.equal('SHARDING_ERROR'); + expect(store.getState().shardingError).to.equal( + `Failed to shard ${NS}` + ); // the original error text was: `before timestamp[01:02:03.456]Failed to shard ${NS}` }); }); @@ -392,6 +395,7 @@ describe('GlobalWritesStore Store', function () { }, unique: true, }), + hasShardingError: () => true, // mismatch will also trigger an error }); await waitFor(() => { expect(store.getState().status).to.equal('SHARD_KEY_MISMATCH'); @@ -409,6 +413,7 @@ describe('GlobalWritesStore Store', function () { }, unique: false, // this does not match }), + hasShardingError: () => true, // mismatch will also trigger an error }); await waitFor(() => { expect(store.getState().status).to.equal('SHARD_KEY_MISMATCH'); @@ -442,15 +447,61 @@ describe('GlobalWritesStore Store', function () { }); }); - it('sharding error', async function () { + it('sharding error -> cancelling request -> not managed', async function () { + // initial state === sharding error + let mockManagedNamespace = true; + let mockShardingError = true; + clock = sinon.useFakeTimers({ + shouldAdvanceTime: true, + }); + const store = createStore({ + isNamespaceManaged: Sinon.fake(() => mockManagedNamespace), + hasShardingError: Sinon.fake(() => mockShardingError), + }); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARDING_ERROR'); + expect(store.getState().managedNamespace).to.equal(managedNamespace); + }); + + // user triggers a cancellation + const promise = store.dispatch(cancelSharding()); + mockManagedNamespace = false; + mockShardingError = false; + await promise; + expect(store.getState().status).to.equal('UNSHARDED'); + expect(confirmationStub).to.have.been.called; + }); + + it('sharding error -> submitting form -> sharding -> sharded', async function () { + // initial state === sharding error= + let mockShardingError = true; + let mockShardKey = false; + clock = sinon.useFakeTimers({ + shouldAdvanceTime: true, + }); const store = createStore({ isNamespaceManaged: () => true, - hasShardingError: () => true, + hasShardingError: Sinon.fake(() => mockShardingError), + hasShardKey: Sinon.fake(() => mockShardKey), }); await waitFor(() => { expect(store.getState().status).to.equal('SHARDING_ERROR'); expect(store.getState().managedNamespace).to.equal(managedNamespace); }); + + // user submits the form + const promise = store.dispatch(createShardKey(shardKeyData)); + mockShardingError = false; + expect(store.getState().status).to.equal('SUBMITTING_FOR_SHARDING_ERROR'); + await promise; + expect(store.getState().status).to.equal('SHARDING'); + + // the key is created + mockShardKey = true; + clock.tick(POLLING_INTERVAL); + await waitFor(() => { + expect(store.getState().status).to.equal('SHARD_KEY_CORRECT'); + }); }); it('sends correct data to the server when creating a shard key', async function () { diff --git a/packages/compass-global-writes/src/store/reducer.ts b/packages/compass-global-writes/src/store/reducer.ts index 4255bb49072..97b6d18b3c8 100644 --- a/packages/compass-global-writes/src/store/reducer.ts +++ b/packages/compass-global-writes/src/store/reducer.ts @@ -130,6 +130,7 @@ export enum ShardingStatuses { * we are waiting for server to accept the request. */ SUBMITTING_FOR_SHARDING = 'SUBMITTING_FOR_SHARDING', + SUBMITTING_FOR_SHARDING_ERROR = 'SUBMITTING_FOR_SHARDING_ERROR', /** * Namespace is being sharded. @@ -141,6 +142,7 @@ export enum ShardingStatuses { * we are waiting for server to accept the request. */ CANCELLING_SHARDING = 'CANCELLING_SHARDING', + CANCELLING_SHARDING_ERROR = 'CANCELLING_SHARDING_ERROR', /** * Sharding failed. @@ -224,7 +226,10 @@ export type RootState = { pollingTimeout?: NodeJS.Timeout; } | { - status: ShardingStatuses.SHARDING_ERROR; + status: + | ShardingStatuses.SHARDING_ERROR + | ShardingStatuses.CANCELLING_SHARDING_ERROR + | ShardingStatuses.SUBMITTING_FOR_SHARDING_ERROR; shardKey?: never; shardingError: string; pollingTimeout?: never; @@ -330,16 +335,31 @@ const reducer: Reducer = (state = initialState, action) => { }; } + if ( + isAction( + action, + GlobalWritesActionTypes.SubmittingForShardingStarted + ) && + state.status === ShardingStatuses.SHARDING_ERROR + ) { + return { + ...state, + status: ShardingStatuses.SUBMITTING_FOR_SHARDING_ERROR, + }; + } + if ( isAction( action, GlobalWritesActionTypes.SubmittingForShardingFinished ) && (state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING || + state.status === ShardingStatuses.SUBMITTING_FOR_SHARDING_ERROR || state.status === ShardingStatuses.NOT_READY) ) { return { ...state, + shardingError: undefined, managedNamespace: action.managedNamespace || state.managedNamespace, status: ShardingStatuses.SHARDING, }; @@ -388,15 +408,30 @@ const reducer: Reducer = (state = initialState, action) => { }; } + if ( + isAction( + action, + GlobalWritesActionTypes.CancellingShardingStarted + ) && + state.status === ShardingStatuses.SHARDING_ERROR + ) { + return { + ...state, + status: ShardingStatuses.CANCELLING_SHARDING_ERROR, + }; + } + if ( isAction( action, GlobalWritesActionTypes.CancellingShardingErrored ) && - state.status === ShardingStatuses.CANCELLING_SHARDING + (state.status === ShardingStatuses.CANCELLING_SHARDING || + state.status === ShardingStatuses.CANCELLING_SHARDING_ERROR) ) { return { ...state, + shardingError: undefined, status: ShardingStatuses.SHARDING, }; } @@ -407,7 +442,8 @@ const reducer: Reducer = (state = initialState, action) => { GlobalWritesActionTypes.CancellingShardingFinished ) && (state.status === ShardingStatuses.CANCELLING_SHARDING || - state.status === ShardingStatuses.SHARDING_ERROR) + state.status === ShardingStatuses.SHARDING_ERROR || + state.status === ShardingStatuses.CANCELLING_SHARDING_ERROR) // the error might come before the cancel request was processed ) { return { @@ -696,7 +732,10 @@ export const fetchNamespaceShardKey = (): GlobalWritesThunkAction< atlasGlobalWritesService.getShardingKeys(namespace), ]); - if (shardingError) { + if (shardingError && !shardKey) { + // if there is an existing shard key and an error both, + // means we have a key mismatch + // this will be handled in NamespaceShardKeyFetched if (status === ShardingStatuses.SHARDING) { dispatch(stopPollingForShardKey()); } From 2b44d2663f9ab824985d1abdf858b6d7361a835f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:29:35 +0000 Subject: [PATCH 70/71] chore: update AUTHORS, THIRD-PARTY-NOTICES, Security Test Summary (#6422) Update report Co-authored-by: paula-stacho <5196720+paula-stacho@users.noreply.github.com> --- docs/tracking-plan.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/tracking-plan.md b/docs/tracking-plan.md index acb223106e4..3efef1ae2ad 100644 --- a/docs/tracking-plan.md +++ b/docs/tracking-plan.md @@ -1,7 +1,7 @@ # Compass Tracking Plan -Generated on Tue, Oct 29, 2024 at 04:29 PM +Generated on Tue, Oct 29, 2024 at 05:29 PM ## Table of Contents From b57dc5374b53e903228eaf4cca106fbfcb9afb12 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 29 Oct 2024 17:33:43 +0000 Subject: [PATCH 71/71] v1.44.6-beta.3 --- package-lock.json | 2 +- packages/compass/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 999a0f646b2..13b36b4cb9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43140,7 +43140,7 @@ }, "packages/compass": { "name": "mongodb-compass", - "version": "1.44.6-beta.2", + "version": "1.44.6-beta.3", "hasInstallScript": true, "license": "SSPL", "dependencies": { diff --git a/packages/compass/package.json b/packages/compass/package.json index 1e9f1378b89..cba316cb678 100644 --- a/packages/compass/package.json +++ b/packages/compass/package.json @@ -4,7 +4,7 @@ "productName": "MongoDB Compass", "description": "The MongoDB GUI", "homepage": "https://www.mongodb.com/products/compass", - "version": "1.44.6-beta.2", + "version": "1.44.6-beta.3", "apiVersion": "3.0.0", "main": "build/main.js", "author": {