diff --git a/package-lock.json b/package-lock.json index 67ce1188e..e948e32ff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -585,9 +585,9 @@ "integrity": "sha512-elh8S1OxmEGe8/wbr6ky//dHhV2ld6oZV8/M9lgozJsL/6Aqm8j5+ElquzoX9k9l3Q+dohuX/SIGR/kTRZHS4g==" }, "@mongosh/async-rewriter": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter/-/async-rewriter-0.0.1-alpha.15.tgz", - "integrity": "sha512-89ydztLoz4Dyl92Bptff8GkIXioei0qxX/Z2uMTV9G4/Esg/Vv2C2VAKhI68uAACxpLjISW+p+guVya5SXJgAA==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/async-rewriter/-/async-rewriter-0.0.1-alpha.17.tgz", + "integrity": "sha512-DXRHTj0k/EuXfqIDIFJVGwAp6tp93sCEqLzEMz2BP/iGK+/0FquN8NiBvPJn4IYawFo+3iCmkmGOSGgVtay5dw==", "requires": { "@babel/core": "^7.9.0", "@babel/parser": "^7.9.4", @@ -595,9 +595,15 @@ "@babel/template": "^7.8.6", "@babel/traverse": "^7.9.0", "@babel/types": "^7.9.0", - "@mongosh/errors": "^0.0.1-alpha.15", + "@mongosh/errors": "^0.0.1-alpha.17", "@types/babel__core": "^7.1.6", "@types/babel__traverse": "^7.0.9", + "acorn": "^7.2.0", + "acorn-class-fields": "^0.3.2", + "acorn-numeric-separator": "^0.3.2", + "acorn-private-methods": "^0.3.1", + "acorn-static-class-features": "^0.2.1", + "acorn-walk": "^7.1.1", "ts-node": "^8.8.1", "typescript": "^3.8.3" }, @@ -640,10 +646,15 @@ "to-fast-properties": "^2.0.0" } }, - "@mongosh/errors": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.15.tgz", - "integrity": "sha512-p1UhubC9Bvvb0HyxbnUzX1bl56ubH45gqlI4p5//cTjabwmMoA5gdErAZYvL7E8t9QYrneVmY1W/2/B7zd1h1A==" + "acorn": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", + "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==" + }, + "acorn-walk": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz", + "integrity": "sha512-wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==" }, "diff": { "version": "4.0.2", @@ -672,57 +683,68 @@ } }, "typescript": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz", - "integrity": "sha512-q2ktq4n/uLuNNShyayit+DTobV2ApPEo/6so68JaD5ojvc/6GClBipedB9zNWYxRSAlZXAe405Rlijzl6qDiSw==" + "version": "3.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", + "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==" } } }, "@mongosh/browser-runtime-core": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-core/-/browser-runtime-core-0.0.1-alpha.15.tgz", - "integrity": "sha512-wpVgRx6KHkt/OZmLAUVYeJ6cqG6U+YClU6TU+3NnwBQ+NdPqEOG678fn2wwbq4EaR4V90X4GTS9E+4o4RfwnuQ==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-core/-/browser-runtime-core-0.0.1-alpha.17.tgz", + "integrity": "sha512-KdJrBDF5NT1wHUWb6Nbplw+x8mVC/EDWEwW54GoWbBLB9h6sg/pl25lNEd7yH91dgNH/AYI1d7aOOkj7FPvAHQ==", "requires": { "@babel/generator": "^7.9.4", "@babel/parser": "^7.9.4", - "@mongosh/cli-repl": "^0.0.1-alpha.15", - "@mongosh/service-provider-core": "^0.0.1-alpha.15", - "@mongosh/shell-evaluator": "^0.0.1-alpha.15" + "@mongosh/cli-repl": "^0.0.1-alpha.17", + "@mongosh/service-provider-core": "^0.0.1-alpha.17", + "@mongosh/shell-evaluator": "^0.0.1-alpha.17" } }, "@mongosh/browser-runtime-electron": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-electron/-/browser-runtime-electron-0.0.1-alpha.15.tgz", - "integrity": "sha512-VpgACHP/UceG5fJ4/JHldA+wUEv8tJdU1xDyah1kcgLecOQZ1Yw24w5R82qVbF6ARI23UgiXjTTSxnYbMWNhjQ==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/browser-runtime-electron/-/browser-runtime-electron-0.0.1-alpha.17.tgz", + "integrity": "sha512-tFHPK0MxZ50+Jn9Z7MKoX3BjRJrbrHKHXc1RvTNU9M4+bDDnfRPj0YppAhx6/DYoZ69wT92X8NGvw7IciigMjg==", "requires": { - "@mongosh/browser-runtime-core": "^0.0.1-alpha.15", - "@mongosh/service-provider-core": "^0.0.1-alpha.15" + "@mongosh/browser-runtime-core": "^0.0.1-alpha.17", + "@mongosh/service-provider-core": "^0.0.1-alpha.17" } }, "@mongosh/build": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/build/-/build-0.0.1-alpha.15.tgz", - "integrity": "sha512-H0Y4dWiyZ2hPjow9rNt3ASkKBpASsx13mrP4q7oQvqA5yQpX6d18SM6jvYUnpQdq6RbhBxVdy4+AGmuEhJDI5Q==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/build/-/build-0.0.1-alpha.17.tgz", + "integrity": "sha512-QayTu+kdfFUOnWQsRo0gzNzE4AQaqqOXrN2581CfcyhwkpsWVRdTeEfF4TK7XsOKr2/9wHQBU2Dse7ZhbsvHaQ==", "requires": { + "@octokit/rest": "^17.9.0", "adm-zip": "^0.4.14", "aws-sdk": "^2.674.0", + "electron-notarize": "^0.3.0", + "electron-osx-sign": "^0.4.16", "handlebars": "^4.7.6", "pkg": "^4.4.3", + "semver": "^7.3.2", "tar": "^6.0.1" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + } } }, "@mongosh/cli-repl": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/cli-repl/-/cli-repl-0.0.1-alpha.15.tgz", - "integrity": "sha512-uZmXFi1Kjd1SMJNgkol5jXZcIJjrSqDbs1UOU/DAZcSkO+wLqYpIzEwYxKCAyq4apAbemTbLNyrLb+E6y2ifhA==", - "requires": { - "@mongosh/build": "^0.0.1-alpha.15", - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/history": "^0.0.1-alpha.15", - "@mongosh/i18n": "^0.0.1-alpha.15", - "@mongosh/service-provider-server": "^0.0.1-alpha.15", - "@mongosh/shell-api": "^0.0.1-alpha.15", - "@mongosh/shell-evaluator": "^0.0.1-alpha.15", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/cli-repl/-/cli-repl-0.0.1-alpha.17.tgz", + "integrity": "sha512-RJa4Dmm/8B7h4UvdV1jI5njgHxyLboUJt6EQoroIJ+8R1KTQebhAXTr4d+ROcF/BOw6B4IkBeRVrnz2b2+FDww==", + "requires": { + "@mongosh/build": "^0.0.1-alpha.17", + "@mongosh/errors": "^0.0.1-alpha.17", + "@mongosh/history": "^0.0.1-alpha.17", + "@mongosh/i18n": "^0.0.1-alpha.17", + "@mongosh/service-provider-server": "^0.0.1-alpha.17", + "@mongosh/shell-api": "^0.0.1-alpha.17", + "@mongosh/shell-evaluator": "^0.0.1-alpha.17", "acorn": "^7.1.1", "acorn-class-fields": "^0.3.2", "acorn-numeric-separator": "^0.3.0", @@ -747,29 +769,6 @@ "text-table": "^0.2.0" }, "dependencies": { - "@mongosh/errors": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.15.tgz", - "integrity": "sha512-p1UhubC9Bvvb0HyxbnUzX1bl56ubH45gqlI4p5//cTjabwmMoA5gdErAZYvL7E8t9QYrneVmY1W/2/B7zd1h1A==" - }, - "@mongosh/i18n": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-0.0.1-alpha.15.tgz", - "integrity": "sha512-BIactWfKx3zC7Z438lKDRqeaoErrTmn2mcHl4V3tx14/mw7m2s3DEBVgO0dju8p3oFviz4oSRhM+HL+FNegX7A==", - "requires": { - "mustache": "^4.0.0" - } - }, - "@mongosh/shell-api": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-0.0.1-alpha.15.tgz", - "integrity": "sha512-cM9xa0DnZuRZg1r6b42LOVue6EREP38/gR9823uzXMwKyOM8vPpF+ScDfCLp7/0+p+H20ij5WCtxWItRdDzJfA==", - "requires": { - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/i18n": "^0.0.1-alpha.15", - "bson": "^4.0.4" - } - }, "acorn": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", @@ -788,85 +787,55 @@ } }, "@mongosh/errors": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.15.tgz", - "integrity": "sha512-p1UhubC9Bvvb0HyxbnUzX1bl56ubH45gqlI4p5//cTjabwmMoA5gdErAZYvL7E8t9QYrneVmY1W/2/B7zd1h1A==" + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.17.tgz", + "integrity": "sha512-3TYdm6jmXYTgeNv6MvG+7x5YzEnk/fE2sjJFcpsjBgl0dNmIRafIsEF3FjPiYoi8NlRTGI8r3Gk0pqvkiUWVhw==" }, "@mongosh/history": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-0.0.1-alpha.15.tgz", - "integrity": "sha512-cIC/H2cecN3xm15L745kdfievsZEvDlGoZu5Oy/ed/ihsc5PeOBWJOra2pyuh0R6ZaXDq6bFaoiXk6JLoB2pqg==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/history/-/history-0.0.1-alpha.17.tgz", + "integrity": "sha512-k29rAcYgm/w+zxOqtY5zcxJyZ6+s4v12F1oCjMw5FjvGTyvaD2hJTY2sTgYDmGf8hJaWqxXfkzFpe784ntze3g==", "requires": { "mongodb-redact": "^0.2.0" } }, "@mongosh/i18n": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-0.0.1-alpha.15.tgz", - "integrity": "sha512-BIactWfKx3zC7Z438lKDRqeaoErrTmn2mcHl4V3tx14/mw7m2s3DEBVgO0dju8p3oFviz4oSRhM+HL+FNegX7A==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-0.0.1-alpha.17.tgz", + "integrity": "sha512-8BdBN+sp2vR34KW7oNejz3ciKT5M+GYnukCROErzhrP4mj7q1GfYLdRdbkWnxUAOobKtgHsJb2nw1RhAFOId6g==", "requires": { "mustache": "^4.0.0" } }, "@mongosh/mapper": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/mapper/-/mapper-0.0.1-alpha.15.tgz", - "integrity": "sha512-nQh/2gcDbp1mh3uxk38T9Or0RilgBj7wR8/Lkk5OS3jMZZuKMyMRbn8GEtasU6RVoG6kSVLn9GGkQvyDBRi1cw==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/mapper/-/mapper-0.0.1-alpha.17.tgz", + "integrity": "sha512-UAhBTsHXXe4QNtefG29tVWlHqIwYCElo6/bRhAhZHmgGyb3sVBx1q55KQbMKsrN7f0M8F/M+v8pvfYRa+R5xMw==", "requires": { - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/service-provider-core": "^0.0.1-alpha.15", - "@mongosh/shell-api": "^0.0.1-alpha.15", + "@mongosh/errors": "^0.0.1-alpha.17", + "@mongosh/service-provider-core": "^0.0.1-alpha.17", + "@mongosh/shell-api": "^0.0.1-alpha.17", "pretty-bytes": "^5.3.0", "text-table": "^0.2.0" - }, - "dependencies": { - "@mongosh/errors": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.15.tgz", - "integrity": "sha512-p1UhubC9Bvvb0HyxbnUzX1bl56ubH45gqlI4p5//cTjabwmMoA5gdErAZYvL7E8t9QYrneVmY1W/2/B7zd1h1A==" - }, - "@mongosh/i18n": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-0.0.1-alpha.15.tgz", - "integrity": "sha512-BIactWfKx3zC7Z438lKDRqeaoErrTmn2mcHl4V3tx14/mw7m2s3DEBVgO0dju8p3oFviz4oSRhM+HL+FNegX7A==", - "requires": { - "mustache": "^4.0.0" - } - }, - "@mongosh/shell-api": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-0.0.1-alpha.15.tgz", - "integrity": "sha512-cM9xa0DnZuRZg1r6b42LOVue6EREP38/gR9823uzXMwKyOM8vPpF+ScDfCLp7/0+p+H20ij5WCtxWItRdDzJfA==", - "requires": { - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/i18n": "^0.0.1-alpha.15", - "bson": "^4.0.4" - } - } } }, "@mongosh/service-provider-core": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-0.0.1-alpha.15.tgz", - "integrity": "sha512-weezX/uVVIpLYsVanKyhrlIBzkBc61smE4hndKzkj4FxwEArsUae0j0DHXeT3Jus0G5+bpAUrTB15u3E8qInTA==" + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/service-provider-core/-/service-provider-core-0.0.1-alpha.17.tgz", + "integrity": "sha512-rTO8b9jocAmak6Mb5PpU2LkYUtAKnHYgnXylW8Y4q26VCRatS/YHDx+UlMA2dxjexcv78A2GIyGManD4jKKerA==" }, "@mongosh/service-provider-server": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/service-provider-server/-/service-provider-server-0.0.1-alpha.15.tgz", - "integrity": "sha512-WxhDwB3x/E2Aiklx/tKtv7S/5MVQGZwBTt/GyurC7jI5G4m7ZBJjw7M6Ma0q60mLNDiS+8wgT3Jd/NVPxK57Xg==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/service-provider-server/-/service-provider-server-0.0.1-alpha.17.tgz", + "integrity": "sha512-oC7KaRTiv3tGsASh8EWRoDBQ39TjhYQlgylrS1ZzYBqtNo/HgCHHreWdqhF9DmVMC0N93xrP34xR+QKmctmr5Q==", "requires": { - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/service-provider-core": "^0.0.1-alpha.15", + "@mongosh/errors": "^0.0.1-alpha.17", + "@mongosh/service-provider-core": "^0.0.1-alpha.17", "@types/sinon": "^7.5.1", "@types/sinon-chai": "^3.2.3", "mongodb": "3.5.3 || ^3.5.5" }, "dependencies": { - "@mongosh/errors": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.15.tgz", - "integrity": "sha512-p1UhubC9Bvvb0HyxbnUzX1bl56ubH45gqlI4p5//cTjabwmMoA5gdErAZYvL7E8t9QYrneVmY1W/2/B7zd1h1A==" - }, "@types/sinon": { "version": "7.5.2", "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.5.2.tgz", @@ -875,49 +844,24 @@ } }, "@mongosh/shell-api": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-0.0.1-alpha.15.tgz", - "integrity": "sha512-cM9xa0DnZuRZg1r6b42LOVue6EREP38/gR9823uzXMwKyOM8vPpF+ScDfCLp7/0+p+H20ij5WCtxWItRdDzJfA==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-0.0.1-alpha.17.tgz", + "integrity": "sha512-j0hwkG+FZ6wMk0TV6lMIP0pwiM5xRNjnAYZdfUjH0glWw71aWwdYowDVLqHHotctQKplQaiJV5ZzOefK9jwVzQ==", "requires": { - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/i18n": "^0.0.1-alpha.15", + "@mongosh/errors": "^0.0.1-alpha.17", + "@mongosh/i18n": "^0.0.1-alpha.17", "bson": "^4.0.4" } }, "@mongosh/shell-evaluator": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-0.0.1-alpha.15.tgz", - "integrity": "sha512-Uwslqbc7u2QJSAPKFE+otqb0K9NvWhU4YsdBqKAe7soOmLoueuYvtPTrtvlHiG3XJ8vaiMzogQxoFV1bDa9kyQ==", + "version": "0.0.1-alpha.17", + "resolved": "https://registry.npmjs.org/@mongosh/shell-evaluator/-/shell-evaluator-0.0.1-alpha.17.tgz", + "integrity": "sha512-5DcyBD2+OFNQ0czrlV+FkCiRTEG4GXfTha/Kxki/a54LakynHAatMD2H19lX8DDAhO/kTivA2VTiwwi8d1NxwQ==", "requires": { - "@mongosh/async-rewriter": "^0.0.1-alpha.15", - "@mongosh/mapper": "^0.0.1-alpha.15", - "@mongosh/service-provider-core": "^0.0.1-alpha.15", - "@mongosh/shell-api": "^0.0.1-alpha.15" - }, - "dependencies": { - "@mongosh/errors": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/errors/-/errors-0.0.1-alpha.15.tgz", - "integrity": "sha512-p1UhubC9Bvvb0HyxbnUzX1bl56ubH45gqlI4p5//cTjabwmMoA5gdErAZYvL7E8t9QYrneVmY1W/2/B7zd1h1A==" - }, - "@mongosh/i18n": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/i18n/-/i18n-0.0.1-alpha.15.tgz", - "integrity": "sha512-BIactWfKx3zC7Z438lKDRqeaoErrTmn2mcHl4V3tx14/mw7m2s3DEBVgO0dju8p3oFviz4oSRhM+HL+FNegX7A==", - "requires": { - "mustache": "^4.0.0" - } - }, - "@mongosh/shell-api": { - "version": "0.0.1-alpha.15", - "resolved": "https://registry.npmjs.org/@mongosh/shell-api/-/shell-api-0.0.1-alpha.15.tgz", - "integrity": "sha512-cM9xa0DnZuRZg1r6b42LOVue6EREP38/gR9823uzXMwKyOM8vPpF+ScDfCLp7/0+p+H20ij5WCtxWItRdDzJfA==", - "requires": { - "@mongosh/errors": "^0.0.1-alpha.15", - "@mongosh/i18n": "^0.0.1-alpha.15", - "bson": "^4.0.4" - } - } + "@mongosh/async-rewriter": "^0.0.1-alpha.17", + "@mongosh/mapper": "^0.0.1-alpha.17", + "@mongosh/service-provider-core": "^0.0.1-alpha.17", + "@mongosh/shell-api": "^0.0.1-alpha.17" } }, "@nodelib/fs.scandir": { @@ -943,6 +887,179 @@ "fastq": "^1.6.0" } }, + "@octokit/auth-token": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.0.tgz", + "integrity": "sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==", + "requires": { + "@octokit/types": "^2.0.0" + }, + "dependencies": { + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "requires": { + "@types/node": ">= 8" + } + } + } + }, + "@octokit/core": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/@octokit/core/-/core-2.5.3.tgz", + "integrity": "sha512-23AHK9xBW0v79Ck8h5U+5iA4MW7aosqv+Yr6uZXolVGNzzHwryNH5wM386/6+etiKUTwLFZTqyMU9oQpIBZcFA==", + "requires": { + "@octokit/auth-token": "^2.4.0", + "@octokit/graphql": "^4.3.1", + "@octokit/request": "^5.4.0", + "@octokit/types": "^4.0.1", + "before-after-hook": "^2.1.0", + "universal-user-agent": "^5.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.1.tgz", + "integrity": "sha512-pOPHaSz57SFT/m3R5P8MUu4wLPszokn5pXcB/pzavLTQf2jbU+6iayTvzaY6/BiotuRS0qyEUkx3QglT4U958A==", + "requires": { + "@octokit/types": "^2.11.1", + "is-plain-object": "^3.0.0", + "universal-user-agent": "^5.0.0" + }, + "dependencies": { + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "requires": { + "@types/node": ">= 8" + } + }, + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "requires": { + "isobject": "^4.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + } + } + }, + "@octokit/graphql": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.5.0.tgz", + "integrity": "sha512-StJWfn0M1QfhL3NKBz31e1TdDNZrHLLS57J2hin92SIfzlOVBuUaRkp31AGkGOAFOAVtyEX6ZiZcsjcJDjeb5g==", + "requires": { + "@octokit/request": "^5.3.0", + "@octokit/types": "^4.0.1", + "universal-user-agent": "^5.0.0" + } + }, + "@octokit/plugin-paginate-rest": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.2.1.tgz", + "integrity": "sha512-/tHpIF2XpN40AyhIq295YRjb4g7Q5eKob0qM3thYJ0Z+CgmNsWKM/fWse/SUR8+LdprP1O4ZzSKQE+71TCwK+w==", + "requires": { + "@octokit/types": "^4.0.1" + } + }, + "@octokit/plugin-request-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz", + "integrity": "sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==" + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "3.12.2", + "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-3.12.2.tgz", + "integrity": "sha512-QUfJ6nriHpwTxf8As99kEyDQV4AGQvypsM8Xyx5rsWi6JY7rzjOkZrleRrFq0aiNcQo7acM4bwaXq462OKTJ9w==", + "requires": { + "@octokit/types": "^4.0.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.4.2.tgz", + "integrity": "sha512-zKdnGuQ2TQ2vFk9VU8awFT4+EYf92Z/v3OlzRaSh4RIP0H6cvW1BFPXq4XYvNez+TPQjqN+0uSkCYnMFFhcFrw==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.0.0", + "@octokit/types": "^2.11.1", + "deprecation": "^2.0.0", + "is-plain-object": "^3.0.0", + "node-fetch": "^2.3.0", + "once": "^1.4.0", + "universal-user-agent": "^5.0.0" + }, + "dependencies": { + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "requires": { + "@types/node": ">= 8" + } + }, + "is-plain-object": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz", + "integrity": "sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==", + "requires": { + "isobject": "^4.0.0" + } + }, + "isobject": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-4.0.0.tgz", + "integrity": "sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==" + } + } + }, + "@octokit/request-error": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.0.tgz", + "integrity": "sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw==", + "requires": { + "@octokit/types": "^2.0.0", + "deprecation": "^2.0.0", + "once": "^1.4.0" + }, + "dependencies": { + "@octokit/types": { + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz", + "integrity": "sha512-O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==", + "requires": { + "@types/node": ">= 8" + } + } + } + }, + "@octokit/rest": { + "version": "17.9.2", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.9.2.tgz", + "integrity": "sha512-UXxiE0HhGQAPB3WDHTEu7lYMHH2uRcs/9f26XyHpGGiiXht8hgHWEk6fA7WglwwEvnj8V7mkJOgIntnij132UA==", + "requires": { + "@octokit/core": "^2.4.3", + "@octokit/plugin-paginate-rest": "^2.2.0", + "@octokit/plugin-request-log": "^1.0.0", + "@octokit/plugin-rest-endpoint-methods": "^3.12.2" + } + }, + "@octokit/types": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-4.0.1.tgz", + "integrity": "sha512-Ho6h7w2h9y8RRE8r656hIj1oiSbwbIHJGF5r9G5FOwS2VdDPq8QLGvsG4x6pKHpvyGK7j+43sAc2cJKMiFoIJw==", + "requires": { + "@types/node": ">= 8" + } + }, "@segment/loosely-validate-event": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@segment/loosely-validate-event/-/loosely-validate-event-2.0.0.tgz", @@ -1177,8 +1294,7 @@ "@types/node": { "version": "13.7.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-13.7.1.tgz", - "integrity": "sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==", - "dev": true + "integrity": "sha512-Zq8gcQGmn4txQEJeiXo/KiLpon8TzAl0kmKH4zdWctPj05nWwp1ClMdAVEloqrQKfaC48PNLdgN/aVaLqUrluA==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -2110,9 +2226,9 @@ } }, "aws-sdk": { - "version": "2.677.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.677.0.tgz", - "integrity": "sha512-vzQWRh1sgM0HRNmbLXgxnFPySLQrtSNgs9dNQsksGiYrJtf1wYjJSh4UHhekeyMuorQqef3m4AY0vFWsWyZSMg==", + "version": "2.680.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.680.0.tgz", + "integrity": "sha512-sq19d5cNrgtcoMQc8GlwRrN11zT5FVxc+ZHL9P6lNAlGA3av3dwpt6+4smvhHpPzpzT0fG5A7HMczgjbLaLUDA==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -2345,6 +2461,11 @@ "tweetnacl": "^0.14.3" } }, + "before-after-hook": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz", + "integrity": "sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==" + }, "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -2388,8 +2509,7 @@ "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, "bn.js": { "version": "4.11.8", @@ -2545,7 +2665,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, "requires": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -2554,8 +2673,7 @@ "buffer-alloc-unsafe": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==" }, "buffer-crc32": { "version": "0.2.13", @@ -2566,8 +2684,7 @@ "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=" }, "buffer-from": { "version": "1.1.1", @@ -3089,6 +3206,11 @@ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", "dev": true }, + "compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=" + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", @@ -3394,7 +3516,6 @@ "version": "6.0.5", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, "requires": { "nice-try": "^1.0.4", "path-key": "^2.0.1", @@ -3829,6 +3950,11 @@ } } }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, "des.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", @@ -4213,6 +4339,48 @@ "safer-buffer": "^2.1.0" } }, + "electron-notarize": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.3.0.tgz", + "integrity": "sha512-tuDw8H0gcDOalNLv6RM2CwGvUXU60MPGZRDEmd0ppX+yP5XqL8Ec2DuXyz9J7WQSA3aRCfzIgH8C5CAivDYWMw==", + "requires": { + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + } + }, + "electron-osx-sign": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/electron-osx-sign/-/electron-osx-sign-0.4.16.tgz", + "integrity": "sha512-ziMWfc3NmQlwnWLW6EaZq8nH2BWVng/atX5GWsGwhexJYpdW6hsg//MkAfRTRx1kR3Veiqkeiog1ibkbA4x0rg==", + "requires": { + "bluebird": "^3.5.0", + "compare-version": "^0.1.2", + "debug": "^2.6.8", + "isbinaryfile": "^3.0.2", + "minimist": "^1.2.0", + "plist": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "electron-to-chromium": { "version": "1.3.386", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.386.tgz", @@ -5148,7 +5316,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, "requires": { "cross-spawn": "^6.0.0", "get-stream": "^4.0.0", @@ -5163,7 +5330,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, "requires": { "pump": "^3.0.0" } @@ -7243,8 +7409,7 @@ "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, "is-string": { "version": "1.0.5", @@ -7303,11 +7468,18 @@ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isbinaryfile": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", + "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "requires": { + "buffer-alloc": "^1.2.0" + } + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isnumber": { "version": "1.0.0", @@ -8265,6 +8437,11 @@ "integrity": "sha1-rALU2HYGIB8TZLr7FcSRz9WuMJI=", "dev": true }, + "macos-release": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz", + "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==" + }, "make-dir": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", @@ -9042,9 +9219,9 @@ } }, "mongodb-connection-model": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/mongodb-connection-model/-/mongodb-connection-model-16.1.0.tgz", - "integrity": "sha512-f3NmkgYoSXdoYYht70LyOPyrLTkLDfxLuYcnKVp9B7YxaWoueJKP3qwxlCeB9UolV6rMQolvHtYCU+hfSs43bA==", + "version": "16.1.2", + "resolved": "https://registry.npmjs.org/mongodb-connection-model/-/mongodb-connection-model-16.1.2.tgz", + "integrity": "sha512-05rCV05dLOYrZ55Zle5fi3YZIkzRH17c0vWRxaP+ueB/2EwbtUIWZ/jxFPqHjoqaJPTHeElHN1X5lxEJ6pPrxQ==", "requires": { "ampersand-model": "^8.0.0", "ampersand-rest-collection": "^6.0.0", @@ -9098,16 +9275,16 @@ } }, "mongodb-data-service": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/mongodb-data-service/-/mongodb-data-service-16.7.0.tgz", - "integrity": "sha512-WKlVnHQqTfQ7UgXNlFLplGbdnUYG1e51ks9QMk+E9EoGjy/LeT41GGAdxqBhK5Deb5SeIaCm+lx0dYpvQdoS5A==", + "version": "16.8.0", + "resolved": "https://registry.npmjs.org/mongodb-data-service/-/mongodb-data-service-16.8.0.tgz", + "integrity": "sha512-iRvTdLCFfARKcN/2/aG16aMNYflfj6gFPSz0BSmT6riP5Dx+bhYiECFJp0E7rDUTtLdX51Fu0AlDesTjYhde+g==", "requires": { "async": "^3.2.0", "debug": "^4.1.1", "lodash": "^4.17.15", "mongodb": "^3.5.7", "mongodb-collection-sample": "^4.5.1", - "mongodb-connection-model": "^16.1.0", + "mongodb-connection-model": "^16.1.2", "mongodb-index-model": "^2.6.1", "mongodb-js-errors": "^0.5.0", "mongodb-ns": "^2.2.0", @@ -10176,8 +10353,7 @@ "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, "nise": { "version": "4.0.2", @@ -10400,7 +10576,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, "requires": { "path-key": "^2.0.0" } @@ -10817,6 +10992,15 @@ "lcid": "^1.0.0" } }, + "os-name": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz", + "integrity": "sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==", + "requires": { + "macos-release": "^2.2.0", + "windows-release": "^3.1.0" + } + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -10856,8 +11040,7 @@ "p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" }, "p-is-promise": { "version": "2.1.0", @@ -11013,8 +11196,7 @@ "path-key": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" }, "path-parse": { "version": "1.0.6", @@ -11318,6 +11500,16 @@ "find-up": "^3.0.0" } }, + "plist": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", + "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "requires": { + "base64-js": "^1.2.3", + "xmlbuilder": "^9.0.7", + "xmldom": "0.1.x" + } + }, "polished": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/polished/-/polished-2.3.3.tgz", @@ -12414,7 +12606,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, "requires": { "shebang-regex": "^1.0.0" } @@ -12422,8 +12613,7 @@ "shebang-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, "shell-quote": { "version": "1.7.2", @@ -13064,8 +13254,7 @@ "strip-eof": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" }, "strip-indent": { "version": "3.0.0", @@ -13736,6 +13925,14 @@ } } }, + "universal-user-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz", + "integrity": "sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==", + "requires": { + "os-name": "^3.1.0" + } + }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -15195,7 +15392,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -15224,6 +15420,14 @@ "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", "optional": true }, + "windows-release": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/windows-release/-/windows-release-3.3.0.tgz", + "integrity": "sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==", + "requires": { + "execa": "^1.0.0" + } + }, "wolfy87-eventemitter": { "version": "5.2.9", "resolved": "https://registry.npmjs.org/wolfy87-eventemitter/-/wolfy87-eventemitter-5.2.9.tgz", @@ -15360,6 +15564,11 @@ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=" }, + "xmldom": { + "version": "0.1.31", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", + "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==" + }, "xregexp": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", diff --git a/package.json b/package.json index 0626fde20..5cbec2ba2 100644 --- a/package.json +++ b/package.json @@ -608,9 +608,9 @@ "@fortawesome/free-solid-svg-icons": "^5.13.0", "@fortawesome/react-fontawesome": "^0.1.9", "@leafygreen-ui/toggle": "^3.0.0", - "@mongosh/browser-runtime-electron": "0.0.1-alpha.15", - "@mongosh/service-provider-server": "0.0.1-alpha.15", - "@mongosh/shell-api": "0.0.1-alpha.15", + "@mongosh/browser-runtime-electron": "0.0.1-alpha.17", + "@mongosh/service-provider-server": "0.0.1-alpha.17", + "@mongosh/shell-api": "0.0.1-alpha.17", "analytics-node": "^3.4.0-beta.1", "bson": "^4.0.3", "classnames": "^2.2.6", @@ -618,8 +618,8 @@ "dotenv": "^8.2.0", "encoding": "^0.1.12", "mongodb-cloud-info": "^1.1.2", - "mongodb-connection-model": "^16.1.0", - "mongodb-data-service": "^16.7.0", + "mongodb-connection-model": "^16.1.2", + "mongodb-data-service": "^16.8.0", "mongodb-ns": "^2.2.0", "mongodb-schema": "^8.2.5", "react": "^16.13.1", diff --git a/src/connectionController.ts b/src/connectionController.ts index eae051be8..d64bb0492 100644 --- a/src/connectionController.ts +++ b/src/connectionController.ts @@ -20,13 +20,13 @@ const MAX_CONNECTION_NAME_LENGTH = 512; export enum DataServiceEventTypes { CONNECTIONS_DID_CHANGE = 'CONNECTIONS_DID_CHANGE', ACTIVE_CONNECTION_CHANGED = 'ACTIVE_CONNECTION_CHANGED', - ACTIVE_CONNECTION_CHANGING = 'ACTIVE_CONNECTION_CHANGING', + ACTIVE_CONNECTION_CHANGING = 'ACTIVE_CONNECTION_CHANGING' } export enum ConnectionTypes { CONNECTION_FORM = 'CONNECTION_FORM', CONNECTION_STRING = 'CONNECTION_STRING', - CONNECTION_ID = 'CONNECTION_ID', + CONNECTION_ID = 'CONNECTION_ID' } export type SavedConnectionInformation = { @@ -258,7 +258,11 @@ export default class ConnectionController { connectionModel: ConnectionModelType, connectionType: ConnectionTypes ): Promise => { - const { driverUrl, instanceId } = connectionModel.getAttributes({ + const { + driverUrl, + instanceId, + sshTunnelOptions + } = connectionModel.getAttributes({ derived: true }); const connectionId = uuidv4(); @@ -266,9 +270,13 @@ export default class ConnectionController { connectionModel, driverUrl }; + const name = + sshTunnelOptions.host && sshTunnelOptions.port + ? `${sshTunnelOptions.host}:${sshTunnelOptions.port}` + : instanceId; const savedConnection: SavedConnection = { id: connectionId, - name: instanceId, + name, // To begin we just store it on the session, the storage controller // handles changing this based on user preference. storageLocation: StorageScope.NONE @@ -578,13 +586,13 @@ export default class ConnectionController { const connectionNameToRemove: | string | undefined = await vscode.window.showQuickPick( - connectionIds.map( - (id, index) => `${index + 1}: ${this._connections[id].name}` - ), - { - placeHolder: 'Choose a connection to remove...' - } - ); + connectionIds.map( + (id, index) => `${index + 1}: ${this._connections[id].name}` + ), + { + placeHolder: 'Choose a connection to remove...' + } + ); if (!connectionNameToRemove) { return Promise.resolve(false); diff --git a/src/connectionModelType.ts b/src/connectionModelType.ts index 0f6c445b7..ebbaea5e8 100644 --- a/src/connectionModelType.ts +++ b/src/connectionModelType.ts @@ -3,6 +3,7 @@ type ConnectionAttributes = { driverUrlWithSsh: string; driverOptions: any; instanceId: string; + sshTunnelOptions: any; }; export type ConnectionModelType = { diff --git a/src/mdbExtensionController.ts b/src/mdbExtensionController.ts index e37350a1c..50105a2a3 100644 --- a/src/mdbExtensionController.ts +++ b/src/mdbExtensionController.ts @@ -399,23 +399,31 @@ export default class MDBExtensionController implements vscode.Disposable { public openMongoDBShell(): Promise { let mdbConnectionString; + if (this._connectionController) { - const activeConnectionDriverUrl = this._connectionController.getActiveConnectionDriverUrl(); - mdbConnectionString = activeConnectionDriverUrl - ? activeConnectionDriverUrl + const activeConnectionModel = this._connectionController + .getActiveConnectionModel() + ?.getAttributes({ derived: true }); + + mdbConnectionString = activeConnectionModel + ? activeConnectionModel.driverUrlWithSsh : ''; } + if (!mdbConnectionString) { vscode.window.showErrorMessage( 'You need to be connected before launching the MongoDB Shell.' ); + return Promise.resolve(false); } + const mongoDBShell = vscode.window.createTerminal({ name: 'MongoDB Shell', env: { MDB_CONNECTION_STRING: mdbConnectionString } }); const shellCommand = vscode.workspace.getConfiguration('mdb').get('shell'); + mongoDBShell.sendText( `${shellCommand} $MDB_CONNECTION_STRING; unset MDB_CONNECTION_STRING` ); diff --git a/src/test/suite/extension.test.ts b/src/test/suite/extension.test.ts index eb0c0fc35..bd765efee 100644 --- a/src/test/suite/extension.test.ts +++ b/src/test/suite/extension.test.ts @@ -1,45 +1,37 @@ import * as assert from 'assert'; import * as vscode from 'vscode'; -import { before, after } from 'mocha'; +import { beforeEach, afterEach } from 'mocha'; import * as sinon from 'sinon'; - +import Connection = require('mongodb-connection-model/lib/model'); import MDBExtensionController from '../../mdbExtensionController'; - import { TestExtensionContext } from './stubs'; -import { TEST_DATABASE_URI } from './dbTestHelper'; -import ConnectionController from '../../connectionController'; -import { StorageController } from '../../storage'; -import { StatusView } from '../../views'; -import TelemetryController from '../../telemetry/telemetryController'; suite('Extension Test Suite', () => { vscode.window.showInformationMessage('Starting tests...'); - const disposables: vscode.Disposable[] = []; const mockExtensionContext = new TestExtensionContext(); const mockMDBExtension = new MDBExtensionController(mockExtensionContext); - const mockStorageController = new StorageController(mockExtensionContext); - const testTelemetryController = new TelemetryController( - mockStorageController, - mockExtensionContext - ); - const testConnectionController = new ConnectionController( - new StatusView(mockExtensionContext), - mockStorageController, - testTelemetryController - ); const sandbox = sinon.createSandbox(); + let fakeShowErrorMessage: any; + let fakeGetActiveConnectionModel: any; + let createTerminalSpy: any; - before(() => { + beforeEach(() => { sandbox.stub(vscode.window, 'showInformationMessage'); + fakeShowErrorMessage = sandbox.stub(vscode.window, 'showErrorMessage'); + fakeGetActiveConnectionModel = sandbox.stub( + mockMDBExtension._connectionController, + 'getActiveConnectionModel' + ); + + createTerminalSpy = sinon.spy(vscode.window, 'createTerminal'); }); - after(() => { - disposables.forEach((d) => d.dispose()); - disposables.length = 0; + afterEach(() => { sandbox.restore(); + sinon.restore(); }); test('commands are registered in vscode', async () => { @@ -102,54 +94,69 @@ suite('Extension Test Suite', () => { }); test('openMongoDBShell should open a terminal with the active connection driver url', async () => { - try { - const succesfullyConnected = await testConnectionController.addNewConnectionStringAndConnect( - TEST_DATABASE_URI - ); + const driverUri = + 'mongodb://localhost:27018/?readPreference=primary&ssl=false'; - assert( - succesfullyConnected === true, - 'Expected a successful connection response.' - ); + fakeGetActiveConnectionModel.returns( + new Connection({ + hostname: 'localhost', + port: 27018 + }) + ); + try { await mockMDBExtension.openMongoDBShell(); - const spyActiveConnectionDriverUrl = sinon.spy( - testConnectionController, - 'getActiveConnectionDriverUrl' + assert(createTerminalSpy.called); + + const terminalOptions: vscode.TerminalOptions = + createTerminalSpy.firstCall.args[0]; + + assert( + terminalOptions.env?.MDB_CONNECTION_STRING === driverUri, + `Expected open terminal to set env var 'MDB_CONNECTION_STRING' to ${driverUri} found ${terminalOptions.env?.MDB_CONNECTION_STRING}` ); - const createTerminalSpy = sinon.spy(vscode.window, 'createTerminal'); - const checkResult = async () => { - await testConnectionController.disconnect(); + await mockMDBExtension._connectionController.disconnect(); + mockMDBExtension._connectionController.clearAllConnections(); + } catch (e) { + assert(false); + return; + } + }); - try { - assert(spyActiveConnectionDriverUrl.called); - assert(createTerminalSpy.called); + test('openMongoDBShell should open a terminal with ssh tunnel port injected', async () => { + const driverUri = + 'mongodb://127.0.0.1:27017/?readPreference=primary&ssl=false'; - const expectedUri = - 'mongodb://localhost:27018/?readPreference=primary&ssl=false'; + fakeGetActiveConnectionModel.returns( + new Connection({ + hostname: '127.0.0.1', + sshTunnel: 'USER_PASSWORD', + sshTunnelHostname: 'my.ssh-server.com', + sshTunnelUsername: 'my-user', + sshTunnelPassword: 'password' + }) + ); - const terminalOptions: vscode.TerminalOptions = createTerminalSpy.firstCall.args[0]; + try { + await mockMDBExtension.openMongoDBShell(); - assert( - terminalOptions.env?.MDB_CONNECTION_STRING === - expectedUri, - `Expected open terminal to set env var 'MDB_CONNECTION_STRING' to ${expectedUri} found ${ - terminalOptions.env?.MDB_CONNECTION_STRING - }` - ); + assert(createTerminalSpy.called); - testConnectionController.clearAllConnections(); - } catch (e) { - assert(false); - return; - } - }; + const terminalOptions: vscode.TerminalOptions = + createTerminalSpy.firstCall.args[0]; - disposables.push(vscode.window.onDidOpenTerminal(checkResult)); - } catch (error) { + assert( + terminalOptions.env?.MDB_CONNECTION_STRING !== driverUri, + `Expected open terminal to set env var 'MDB_CONNECTION_STRING' to driver url with ssh tunnel port injected found ${terminalOptions.env?.MDB_CONNECTION_STRING}` + ); + + await mockMDBExtension._connectionController.disconnect(); + mockMDBExtension._connectionController.clearAllConnections(); + } catch (e) { assert(false); + return; } }); }); diff --git a/src/test/suite/telemetry/telemetryController.test.ts b/src/test/suite/telemetry/telemetryController.test.ts index 9b8fd2367..a7cc224f6 100644 --- a/src/test/suite/telemetry/telemetryController.test.ts +++ b/src/test/suite/telemetry/telemetryController.test.ts @@ -172,7 +172,8 @@ suite('Telemetry Controller Test Suite', () => { sinon.assert.called(mockTrackPlaygroundCodeExecuted); }); - test('track playground loaded and saved events', async () => { + test('track playground loaded and saved events', async function () { + this.timeout(3000); await loadAndSavePlayground(getDocUri('test.mongodb')); sinon.assert.called(mockTrackPlaygroundLoadedMethod);