diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index b730cf648f..b8c8175b5a 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,35 @@ +# [4.2.0-alpha.4](https://github.com/ParsePlatform/parse-dashboard/compare/4.2.0-alpha.3...4.2.0-alpha.4) (2022-07-20) + + +### Bug Fixes + +* security upgrade terser from 5.10.0 to 5.14.2 ([#2222](https://github.com/ParsePlatform/parse-dashboard/issues/2222)) ([645cfdd](https://github.com/ParsePlatform/parse-dashboard/commit/645cfdd5939aca429b988e7a7c1a1b6a68230810)) + +# [4.2.0-alpha.3](https://github.com/ParsePlatform/parse-dashboard/compare/4.2.0-alpha.2...4.2.0-alpha.3) (2022-07-15) + + +### Bug Fixes + +* button text "Show all" in column menu is truncated ([#2208](https://github.com/ParsePlatform/parse-dashboard/issues/2208)) ([b89d044](https://github.com/ParsePlatform/parse-dashboard/commit/b89d044a504c6748932907f075819a13aa08fb51)) + +# [4.2.0-alpha.2](https://github.com/ParsePlatform/parse-dashboard/compare/4.2.0-alpha.1...4.2.0-alpha.2) (2022-07-11) + + +### Features + +* improve button labels to be more concise in text ([#2207](https://github.com/ParsePlatform/parse-dashboard/issues/2207)) ([230fc14](https://github.com/ParsePlatform/parse-dashboard/commit/230fc1419db4d4de67c7e591cde415dbbe461c84)) + +# [4.2.0-alpha.1](https://github.com/ParsePlatform/parse-dashboard/compare/4.1.3-alpha.1...4.2.0-alpha.1) (2022-07-04) + + +### Bug Fixes + +* login fails with error `req.session.regenerate is not a function` ([#2195](https://github.com/ParsePlatform/parse-dashboard/issues/2195)) [skip release] ([31a2b78](https://github.com/ParsePlatform/parse-dashboard/commit/31a2b7813531e370e11b1a050ea28b575a058816)) + +### Features + +* remove support and documentation links ([#2203](https://github.com/ParsePlatform/parse-dashboard/issues/2203)) ([35e4476](https://github.com/ParsePlatform/parse-dashboard/commit/35e44768f65c64a228cb6ea8314aa534c5342f08)) + ## [4.1.3-alpha.1](https://github.com/ParsePlatform/parse-dashboard/compare/4.1.2...4.1.3-alpha.1) (2022-06-18) diff --git a/package-lock.json b/package-lock.json index f17f3678a3..4ff9b5ce91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "parse-dashboard", - "version": "4.1.3-alpha.1", + "version": "4.2.0-alpha.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2149,9 +2149,9 @@ } }, "@babel/runtime": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz", - "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -2220,10 +2220,44 @@ "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", "dev": true }, + "@graphiql/react": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@graphiql/react/-/react-0.4.3.tgz", + "integrity": "sha512-MnH+7LqRqFnwo8YBDtgDfJOdeS5QqNTzH2gTvTbEYYWaNQW1+Vhbsyu2RKHnPSgKVQlfLzdjw6SAMtSb3q1Qog==", + "requires": { + "@graphiql/toolkit": "^0.6.0", + "codemirror": "^5.65.3", + "codemirror-graphql": "^1.3.2", + "copy-to-clipboard": "^3.2.0", + "escape-html": "^1.0.3", + "graphql-language-service": "^5.0.6", + "markdown-it": "^12.2.0", + "set-value": "^4.1.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "set-value": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", + "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", + "requires": { + "is-plain-object": "^2.0.4", + "is-primitive": "^3.0.1" + } + } + } + }, "@graphiql/toolkit": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@graphiql/toolkit/-/toolkit-0.4.5.tgz", - "integrity": "sha512-QXuuMSSK/0GfBS7tltrGZdyhIvm6oe9TK4VW9pfa8dALYttpzyJ64Q4Sx9I1Ng++yOMJWziM/ksa043zkNHsjQ==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@graphiql/toolkit/-/toolkit-0.6.0.tgz", + "integrity": "sha512-mbAwbt4lw2bFp9QW3NLVmh/r/ymczlcqvXk1HfvuC7Ma4h0yzrJiQauJyh1/gF5kjqevcRSquvP/YQJSvh1u6w==", "requires": { "@n1ru4l/push-pull-async-iterable-iterator": "^3.1.0", "meros": "^1.1.4" @@ -2885,6 +2919,55 @@ } } }, + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "@n1ru4l/push-pull-async-iterable-iterator": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@n1ru4l/push-pull-async-iterable-iterator/-/push-pull-async-iterable-iterator-3.2.0.tgz", @@ -5197,16 +5280,16 @@ "dev": true }, "codemirror": { - "version": "5.65.5", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.5.tgz", - "integrity": "sha512-HNyhvGLnYz5c+kIsB9QKVitiZUevha3ovbIYaQiGzKo7ECSL/elWD9RXt3JgNr0NdnyqE9/Rc/7uLfkJQL638w==" + "version": "5.65.6", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.6.tgz", + "integrity": "sha512-zNihMSMoDxK9Gqv9oEyDT8oM51rcRrQ+IEo2zyS48gJByBq5Fj8XuNEguMra+MuIOuh6lkpnLUJeL70DoTt6yw==" }, "codemirror-graphql": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.3.0.tgz", - "integrity": "sha512-Inqecp/PpUsNFz6+V6jpgQD1m7jjGg3yby60baw2t5yb2stBH8Z/6cHm/IYp9eN0Aq2EWqomd0GkGmiISPi4jQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.3.2.tgz", + "integrity": "sha512-glwFsEVlH5TvxjSKGymZ1sNy37f3Mes58CB4fXOd0zy9+JzDL08Wti1b5ycy4vFZYghMDK1/Or/zRSjMAGtC2w==", "requires": { - "graphql-language-service": "^5.0.4" + "graphql-language-service": "^5.0.6" } }, "collection-visit": { @@ -5476,9 +5559,9 @@ } }, "core-js": { - "version": "3.22.8", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz", - "integrity": "sha512-UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==" + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.3.tgz", + "integrity": "sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==" }, "core-js-compat": { "version": "3.19.2", @@ -6295,7 +6378,7 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" } } }, @@ -8046,38 +8129,15 @@ "dev": true }, "graphiql": { - "version": "1.8.9", - "resolved": "https://registry.npmjs.org/graphiql/-/graphiql-1.8.9.tgz", - "integrity": "sha512-X+olqol3VfOrFrsAfYzgNbvHoEE0lDUtg52+f3yLeNY4Ens+rAH4RSdH4wVtoRdh3CafmhVsfLQvn04hHkgftQ==", + "version": "1.9.7", + "resolved": "https://registry.npmjs.org/graphiql/-/graphiql-1.9.7.tgz", + "integrity": "sha512-rn0njwDkCpFn5GwDbSuzt7GwjiFLhYCdgiscYm4n8Oq9EeOyGrIxQK/PjUz1YaR/+T7lg1raIBuRAX/Nei9KcQ==", "requires": { - "@graphiql/toolkit": "^0.4.4", - "codemirror": "^5.65.3", - "codemirror-graphql": "^1.3.0", - "copy-to-clipboard": "^3.2.0", + "@graphiql/react": "^0.4.1", + "@graphiql/toolkit": "^0.6.0", "entities": "^2.0.0", - "escape-html": "^1.0.3", - "graphql-language-service": "^5.0.4", - "markdown-it": "^12.2.0", - "set-value": "^4.1.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "requires": { - "isobject": "^3.0.1" - } - }, - "set-value": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-4.1.0.tgz", - "integrity": "sha512-zTEg4HL0RwVrqcWs3ztF+x1vkxfm0lP+MQQFPiMJTKVceBwEV0A569Ou8l9IYQG8jOZdMVI1hGsc0tmeD2o/Lw==", - "requires": { - "is-plain-object": "^2.0.4", - "is-primitive": "^3.0.1" - } - } + "graphql-language-service": "^5.0.5", + "markdown-it": "^12.2.0" } }, "graphql": { @@ -8086,9 +8146,9 @@ "integrity": "sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA==" }, "graphql-language-service": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.4.tgz", - "integrity": "sha512-lX+ahYBwvTHJe1N7JqA08moNwbr0RWaFILxVnbciaaeb469TTIhQi87ZgVJ/y9Szre4d0r3vjIt2EstwafzcDA==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.6.tgz", + "integrity": "sha512-FjE23aTy45Lr5metxCv3ZgSKEZOzN7ERR+OFC1isV5mHxI0Ob8XxayLTYjQKrs8b3kOpvgTYmSmu6AyXOzYslg==", "requires": { "nullthrows": "^1.0.0", "vscode-languageserver-types": "^3.15.1" @@ -10700,11 +10760,11 @@ "dev": true }, "js-beautify": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.2.tgz", - "integrity": "sha512-H85kX95a53os+q1OCqtYe8AXAmgy3BvtysA/V83S3fdhznm6WlUpGi14DqSPbKFsL3dXZFXYl7YQwW9U1+76ng==", + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.4.tgz", + "integrity": "sha512-+b4A9c3glceZEmxyIbxDOYB0ZJdReLvyU1077RqKsO4dZx9FUHjTOJn8VHwpg33QoucIykOiYbh7MfqBOghnrA==", "requires": { - "config-chain": "^1.1.12", + "config-chain": "^1.1.13", "editorconfig": "^0.15.3", "glob": "^7.1.3", "nopt": "^5.0.0" @@ -14529,13 +14589,12 @@ "dev": true }, "passport": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/passport/-/passport-0.6.0.tgz", - "integrity": "sha512-0fe+p3ZnrWRW74fe8+SvCyf4a3Pb2/h7gFkQ8yTJpAO50gDzlfjZUZTO1k5Eg9kUct22OxHLqDZoKUWRHOh9ug==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/passport/-/passport-0.5.3.tgz", + "integrity": "sha512-gGc+70h4gGdBWNsR3FuV3byLDY6KBTJAIExGFXTpQaYfbbcHCBlRRKx7RBQSpqEqc5Hh2qVzRs7ssvSfOpkUEA==", "requires": { "passport-strategy": "1.x.x", - "pause": "0.0.1", - "utils-merge": "^1.0.1" + "pause": "0.0.1" } }, "passport-local": { @@ -14978,7 +15037,7 @@ "proto-list": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==" }, "proxy-addr": { "version": "2.0.7", @@ -14998,7 +15057,7 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" }, "psl": { "version": "1.8.0", @@ -15398,9 +15457,9 @@ } }, "react-popper-tooltip": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-4.4.1.tgz", - "integrity": "sha512-Qe4KH/CAdUYKWzCiV5g7XQGAHxqw9HIbZJpCUmvS+9s0d4qXk+ViCBp/lcTjUr1EG9FeNRt5LCy52tYBh2kO1Q==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/react-popper-tooltip/-/react-popper-tooltip-4.4.2.tgz", + "integrity": "sha512-y48r0mpzysRTZAIh8m2kpZ8S1YPNqGtQPDrlXYSGvDS1c1GpG/NUXbsbIdfbhXfmSaRJuTcaT6N1q3CKuHRVbg==", "requires": { "@babel/runtime": "^7.18.3", "@popperjs/core": "^2.11.5", @@ -16676,7 +16735,7 @@ "sigmund": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", - "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==" }, "signal-exit": { "version": "3.0.4", @@ -17451,27 +17510,28 @@ } }, "terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "version": "5.14.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.2.tgz", + "integrity": "sha512-oL0rGeM/WFQCUd0y2QrWxYnq7tfSuKBiqTjRPWrRgB46WD/kiwHwF8T23z78H6Q6kGCuuHcPB+KULHRdxvVGQA==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "dependencies": { + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "dev": true + }, "commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true } } }, @@ -17824,9 +17884,9 @@ } }, "typescript": { - "version": "4.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz", - "integrity": "sha512-WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==" + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" }, "ua-parser-js": { "version": "0.7.28", diff --git a/package.json b/package.json index 761b8a16d3..d9648d7a02 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse-dashboard", - "version": "4.1.3-alpha.1", + "version": "4.2.0-alpha.4", "repository": { "type": "git", "url": "https://github.com/ParsePlatform/parse-dashboard" @@ -35,27 +35,27 @@ "LICENSE" ], "dependencies": { - "@babel/runtime": "7.18.3", + "@babel/runtime": "7.18.6", "bcryptjs": "2.3.0", "body-parser": "1.20.0", "commander": "9.3.0", "connect-flash": "0.1.1", "cookie-session": "2.0.0", "copy-to-clipboard": "3.3.1", - "core-js": "3.22.8", + "core-js": "3.23.3", "csurf": "1.11.0", "express": "4.18.1", - "graphiql": "1.8.9", + "graphiql": "1.9.7", "graphql": "16.5.0", "history": "4.10.1", "immutable": "4.1.0", "immutable-devtools": "0.1.5", "inquirer": "8.2.4", - "js-beautify": "1.14.2", + "js-beautify": "1.14.4", "otpauth": "7.1.3", "package-json": "7.0.0", "parse": "3.4.2", - "passport": "0.6.0", + "passport": "0.5.3", "passport-local": "1.0.0", "prismjs": "1.28.0", "prop-types": "15.8.1", @@ -67,13 +67,13 @@ "react-dom": "16.14.0", "react-helmet": "6.1.0", "react-json-view": "1.21.3", - "react-popper-tooltip": "4.4.1", + "react-popper-tooltip": "4.4.2", "react-redux": "8.0.2", "react-router": "5.2.1", "react-router-dom": "5.3.0", "regenerator-runtime": "0.13.9", "semver": "7.3.7", - "typescript": "4.7.3" + "typescript": "4.7.4" }, "devDependencies": { "@actions/core": "1.2.6", diff --git a/src/components/Button/Button.scss b/src/components/Button/Button.scss index 7de9e42e30..6612992b9e 100644 --- a/src/components/Button/Button.scss +++ b/src/components/Button/Button.scss @@ -17,7 +17,6 @@ text-decoration: none; text-align: center; border-radius: 5px; - min-width: 110px; font-size: 14px; color: $blue; diff --git a/src/components/ColumnsConfiguration/ColumnsConfiguration.react.js b/src/components/ColumnsConfiguration/ColumnsConfiguration.react.js index f190d098fa..5a1f7ad0d0 100644 --- a/src/components/ColumnsConfiguration/ColumnsConfiguration.react.js +++ b/src/components/ColumnsConfiguration/ColumnsConfiguration.react.js @@ -112,13 +112,11 @@ export default class ColumnsConfiguration extends React.Component {
diff --git a/src/components/Sidebar/FooterMenu.react.js b/src/components/Sidebar/FooterMenu.react.js index af09f3abf0..de471f5ce7 100644 --- a/src/components/Sidebar/FooterMenu.react.js +++ b/src/components/Sidebar/FooterMenu.react.js @@ -26,7 +26,7 @@ export default class FooterMenu extends React.Component { toggle() { let pos = Position.inWindow(this.moreRef.current); - pos.x += 24; + pos.x += 95; this.setState({ show: true, position: pos @@ -50,11 +50,7 @@ export default class FooterMenu extends React.Component { position={this.state.position} onExternalClick={() => this.setState({ show: false })}>
- Log Out 👋 - Server Guide 📚 - Code-level Questions - Server Questions - Deployment/Maintenance ⚡️ + ➡️ Log out
); diff --git a/src/components/Sidebar/Sidebar.react.js b/src/components/Sidebar/Sidebar.react.js index c3c2c6c806..cc51068214 100644 --- a/src/components/Sidebar/Sidebar.react.js +++ b/src/components/Sidebar/Sidebar.react.js @@ -179,13 +179,6 @@ const Sidebar = ({ {sidebarContent}
- {!collapsed && ( - <> - Open Source Hub - GitHub - Docs - - )}
diff --git a/src/components/Sidebar/Sidebar.scss b/src/components/Sidebar/Sidebar.scss index 65e9bfe414..6281bcaaf2 100644 --- a/src/components/Sidebar/Sidebar.scss +++ b/src/components/Sidebar/Sidebar.scss @@ -363,16 +363,16 @@ a.subitem { content: ''; position: absolute; bottom: -6px; - right: 11px; + right: 94px; } a { @include NotoSansFont; display: block; - height: 30px; - line-height: 31px; + height: 40px; + line-height: 41px; font-size: 13px; - text-align: right; + text-align: center; border-bottom: 1px solid #e0e0ea; color: $mainTextColor; padding-right: 8px; @@ -381,12 +381,12 @@ a.subitem { } &:first-child { - border-radius: 5px 5px 0 0; + border-radius: 5px 5px 5px 5px; } &:last-child { border-bottom: 0; - border-radius: 0 0 5px 5px; + border-radius: 5px 5px 5px 5px; } .emoji{ diff --git a/src/dashboard/Account/AccountOverview.react.js b/src/dashboard/Account/AccountOverview.react.js index c6966ad5f7..2fce5c9ca8 100644 --- a/src/dashboard/Account/AccountOverview.react.js +++ b/src/dashboard/Account/AccountOverview.react.js @@ -291,7 +291,7 @@ export default class AccountOverview extends React.Component { onClose={() => { this.setState({showAccountKeyModal: false}); }} - submitText='Create Key' + submitText='Create' inProgressText={'Creating\u2026'} clearFields={() => { this.setState({accountKeyName: ''}); @@ -332,7 +332,7 @@ export default class AccountOverview extends React.Component { subtitle='If you delete this account key, anything that was using it will stop working.' type={Modal.Types.DANGER} open={this.state.showDeleteAccountKeyModal} - submitText='Yes, delete it' + submitText='Delete' inProgressText={'Deleting\u2026'} onSubmit={() => { return AccountManager.deleteAccountKeyById(this.state.accountKeyIdToDelete); diff --git a/src/dashboard/Data/Browser/AddColumnDialog.react.js b/src/dashboard/Data/Browser/AddColumnDialog.react.js index 6b11c174b3..fd244551b4 100644 --- a/src/dashboard/Data/Browser/AddColumnDialog.react.js +++ b/src/dashboard/Data/Browser/AddColumnDialog.react.js @@ -200,10 +200,10 @@ export default class AddColumnDialog extends React.Component { title='Add a new column' subtitle='Store another type of data in this class.' disabled={!this.valid()} - confirmText='Add column' - cancelText={'Never mind, don\u2019t.'} + confirmText='Add' + cancelText='Cancel' onCancel={this.props.onCancel} - continueText={'Add column & continue'} + continueText={'Add & continue'} showContinue={true} onContinue={() => { this.props.onContinue(this.state); diff --git a/src/dashboard/Data/Browser/AttachRowsDialog.react.js b/src/dashboard/Data/Browser/AttachRowsDialog.react.js index 3bd27b54f1..79a850c520 100644 --- a/src/dashboard/Data/Browser/AttachRowsDialog.react.js +++ b/src/dashboard/Data/Browser/AttachRowsDialog.react.js @@ -43,7 +43,7 @@ export default class AttachRowsDialog extends React.Component { onClose={this.props.onCancel} onSubmit={this.handleConfirm} submitText="Attach" - inProgressText="Attaching ..." + inProgressText={'Attaching\u2026'} > diff --git a/src/dashboard/Data/Browser/CloneSelectedRowsDialog.react.js b/src/dashboard/Data/Browser/CloneSelectedRowsDialog.react.js index 14e7221f6e..3a387f4a21 100644 --- a/src/dashboard/Data/Browser/CloneSelectedRowsDialog.react.js +++ b/src/dashboard/Data/Browser/CloneSelectedRowsDialog.react.js @@ -56,8 +56,8 @@ export default class CloneSelectedRowsDialog extends React.Component { title={this.props.selection['*'] ? 'Clone all rows?' : (selectionLength === 1 ? 'Clone this row?' : `Clone ${selectionLength} rows?`)} subtitle={''} disabled={!this.valid()} - confirmText={'Yes clone'} - cancelText={'Never mind, don\u2019t.'} + confirmText='Clone' + cancelText='Cancel' onCancel={this.props.onCancel} onConfirm={this.props.onConfirm}> {content} diff --git a/src/dashboard/Data/Browser/CreateClassDialog.react.js b/src/dashboard/Data/Browser/CreateClassDialog.react.js index 6f17b7c178..e54f345157 100644 --- a/src/dashboard/Data/Browser/CreateClassDialog.react.js +++ b/src/dashboard/Data/Browser/CreateClassDialog.react.js @@ -64,12 +64,12 @@ export default class CreateClassDialog extends React.Component { type={Modal.Types.INFO} icon='plus' iconSize={40} - title='Add a new class' - subtitle='Create a new collection of objects.' + title='Create a new class?' + subtitle='This creates a new class to hold objects.' disabled={!this.valid()} - confirmText='Create class' - cancelText={'Cancel'} - continueText={'Create class & add columns'} + confirmText='Create' + cancelText='Cancel' + continueText={'Create & add columns'} onCancel={this.props.onCancel} showContinue={true} onContinue={async () => { diff --git a/src/dashboard/Data/Browser/DeleteRowsDialog.react.js b/src/dashboard/Data/Browser/DeleteRowsDialog.react.js index 66e16e3e4e..93fc24a994 100644 --- a/src/dashboard/Data/Browser/DeleteRowsDialog.react.js +++ b/src/dashboard/Data/Browser/DeleteRowsDialog.react.js @@ -57,8 +57,8 @@ export default class DeleteRowsDialog extends React.Component { title={this.props.selection['*'] ? `${deleteText} all rows?` : (selectionLength === 1 ? `${deleteText} this row?` : `${deleteText} ${selectionLength} rows?`)} subtitle={this.props.relation ? 'You need to delete origin record. This is a reference.' : 'This action cannot be undone!'} disabled={!this.valid()} - confirmText={`Yes, ${this.props.relation ? 'detach' : 'delete'}`} - cancelText={'Never mind, don\u2019t.'} + confirmText='Delete' + cancelText='Cancel' onCancel={this.props.onCancel} onConfirm={this.props.onConfirm}> {content} diff --git a/src/dashboard/Data/Browser/DropClassDialog.react.js b/src/dashboard/Data/Browser/DropClassDialog.react.js index 56623b2ebf..b007ab559e 100644 --- a/src/dashboard/Data/Browser/DropClassDialog.react.js +++ b/src/dashboard/Data/Browser/DropClassDialog.react.js @@ -35,8 +35,8 @@ export default class DropClassDialog extends React.Component { title='Delete this class?' subtitle='This action cannot be undone!' disabled={!this.valid()} - confirmText='Yes, delete.' - cancelText={'Never mind, don\u2019t.'} + confirmText='Delete' + cancelText='Cancel' onCancel={this.props.onCancel} onConfirm={this.props.onConfirm}> {} diff --git a/src/dashboard/Data/Browser/PointerKeyDialog.react.js b/src/dashboard/Data/Browser/PointerKeyDialog.react.js index 74ea430745..f102a514cb 100644 --- a/src/dashboard/Data/Browser/PointerKeyDialog.react.js +++ b/src/dashboard/Data/Browser/PointerKeyDialog.react.js @@ -52,10 +52,10 @@ export default class PointerKeyDialog extends React.Component { return ( { diff --git a/src/dashboard/Data/Browser/RemoveColumnDialog.react.js b/src/dashboard/Data/Browser/RemoveColumnDialog.react.js index bcf0a119cc..38eef79be8 100644 --- a/src/dashboard/Data/Browser/RemoveColumnDialog.react.js +++ b/src/dashboard/Data/Browser/RemoveColumnDialog.react.js @@ -46,10 +46,10 @@ export default class RemoveColumnDialog extends React.Component { { diff --git a/src/dashboard/Data/Browser/SecureFieldsDialog.react.js b/src/dashboard/Data/Browser/SecureFieldsDialog.react.js index d82fd3690e..87a878b36c 100644 --- a/src/dashboard/Data/Browser/SecureFieldsDialog.react.js +++ b/src/dashboard/Data/Browser/SecureFieldsDialog.react.js @@ -128,7 +128,7 @@ export default class SecureFieldsDialog extends React.Component { protectedFields={this.props.perms.protectedFields} enablePointerPermissions={parseServerSupportsPointerPermissions} advanced={true} - confirmText="Save Fields" + confirmText="Save" details={ Learn more about CLPs and app security} permissions={this.props.perms} userPointers={this.props.userPointers} - validateEntry={entry => + validateEntry={entry => validateEntry(this.props.userPointers, entry, parseServerSupportsPointerPermissions)} onCancel={this.handleClose} - onConfirm={perms => + onConfirm={perms => this.props.onChangeCLP(perms).then(this.handleClose)} /> ); @@ -134,7 +134,7 @@ export default class SecurityDialog extends React.Component { if (this.props.disabled) { classes.push(styles.toolbarButtonDisabled); } - + return dialog; } } diff --git a/src/dashboard/Data/Config/ConfigDialog.react.js b/src/dashboard/Data/Config/ConfigDialog.react.js index e2778e5fcb..be14f77388 100644 --- a/src/dashboard/Data/Config/ConfigDialog.react.js +++ b/src/dashboard/Data/Config/ConfigDialog.react.js @@ -203,8 +203,8 @@ export default class ConfigDialog extends React.Component { iconSize={30} subtitle={'Dynamically configure parts of your app'} disabled={!this.valid()} - confirmText={newParam ? 'Create parameter' : 'Save parameter'} - cancelText={'Cancel'} + confirmText={newParam ? 'Create' : 'Save'} + cancelText='Cancel' onCancel={this.props.onCancel} onConfirm={this.submit.bind(this)}> } input={EDITORS[this.state.type](this.state.value, (value) => { this.setState({ value }) })} /> - + { /* Add `Requires master key` field if parse-server version >= 3.9.0, that is the minimum version that supports this feature. */ - semver.valid(this.props.parseServerVersion) && semver.gte(this.props.parseServerVersion, '3.9.0') + semver.valid(this.props.parseServerVersion) && semver.gte(this.props.parseServerVersion, '3.9.0') ? this.setState({ masterKeyOnly })} + onChange={(masterKeyOnly) => this.setState({ masterKeyOnly })} additionalStyles={{ margin: '0px' }} /> } className={styles.addColumnToggleWrapper} diff --git a/src/dashboard/Data/Config/DeleteParameterDialog.react.js b/src/dashboard/Data/Config/DeleteParameterDialog.react.js index c3c4ed252e..d545b0c777 100644 --- a/src/dashboard/Data/Config/DeleteParameterDialog.react.js +++ b/src/dashboard/Data/Config/DeleteParameterDialog.react.js @@ -46,11 +46,11 @@ export default class DeleteParameterDialog extends React.Component { {content} diff --git a/src/dashboard/Data/Jobs/Jobs.react.js b/src/dashboard/Data/Jobs/Jobs.react.js index 98ef7574fa..5d1521f9fd 100644 --- a/src/dashboard/Data/Jobs/Jobs.react.js +++ b/src/dashboard/Data/Jobs/Jobs.react.js @@ -230,8 +230,8 @@ class Jobs extends TableView { type={Modal.Types.DANGER} title='Delete job schedule?' subtitle='Careful, this action cannot be undone' - confirmText='Yes, delete it' - cancelText={'Never mind, don\'t'} + confirmText='Delete' + cancelText='Cancel' onCancel={() => this.setState({ toDelete: null })} onConfirm={() => { this.setState({ toDelete: null }); diff --git a/src/dashboard/Data/Webhooks/Webhooks.react.js b/src/dashboard/Data/Webhooks/Webhooks.react.js index 99e797db67..b200fb5d29 100644 --- a/src/dashboard/Data/Webhooks/Webhooks.react.js +++ b/src/dashboard/Data/Webhooks/Webhooks.react.js @@ -166,7 +166,7 @@ class Webhooks extends TableView { onClose={() => { this.setState({showNewWebhookModal: false}); }} - submitText='Create Webhook' + submitText='Create' inProgressText={'Creating\u2026'} clearFields={this.clearFields.bind(this)} enabled={true /* TODO: do some validation here */}> @@ -184,7 +184,7 @@ class Webhooks extends TableView { onClose={() => { this.setState({showEditWebhookModal: false}); }} - submitText='Save Webhook' + submitText='Save' inProgressText={'Saving\u2026'} clearFields={this.clearFields.bind(this)} enabled={true /* TODO: do some validation here */}> @@ -212,7 +212,7 @@ class Webhooks extends TableView { onClose={() => { this.setState({showDeleteWebhookModal: false}); }} - submitText='Delete Webhook' + submitText='Delete' inProgressText={'Deleting\u2026'} clearFields={() => { this.setState({ diff --git a/src/dashboard/Settings/AppleCerts.react.js b/src/dashboard/Settings/AppleCerts.react.js index 1de385a640..b083758de6 100644 --- a/src/dashboard/Settings/AppleCerts.react.js +++ b/src/dashboard/Settings/AppleCerts.react.js @@ -61,10 +61,10 @@ export default class AppleCerts extends React.Component { {this.state.deletePending === null ? null : this.setState({ deletePending: null })} onConfirm={() => { let id = this.state.deletePending; diff --git a/src/dashboard/Settings/GeneralSettings.react.js b/src/dashboard/Settings/GeneralSettings.react.js index 31de3b49b2..8cff83780a 100644 --- a/src/dashboard/Settings/GeneralSettings.react.js +++ b/src/dashboard/Settings/GeneralSettings.react.js @@ -409,8 +409,8 @@ export default class GeneralSettings extends DashboardView { iconSize={30} type={Modal.Types.DANGER} open={this.state.showMigrateAppModal} - submitText={this.state.migrationWarnings && this.state.migrationWarnings.length > 0 ? 'Migrate anyway' : 'Begin the migration'} - inProgressText={'Beginning the migration\u2026'} + submitText={this.state.migrationWarnings && this.state.migrationWarnings.length > 0 ? 'Migrate anyway' : 'Migrate'} + inProgressText={'Migrating\u2026'} showErrors={this.state.showMongoConnectionValidationErrors} width={900} onSubmit={() => { @@ -463,7 +463,7 @@ export default class GeneralSettings extends DashboardView { }} onClose={closeModalWithConnectionString} type={Modal.Types.DANGER} - submitText={this.state.migrationWarnings && this.state.migrationWarnings.length > 0 ? 'Change anyway' : 'Change connection string'} + submitText={this.state.migrationWarnings && this.state.migrationWarnings.length > 0 ? 'Change anyway' : 'Change'} inProgressText={'Changing\u2026'} showErrors={this.state.showMongoConnectionValidationErrors} width={900} @@ -494,7 +494,7 @@ export default class GeneralSettings extends DashboardView { iconSize={30} type={Modal.Types.DANGER} open={this.state.showTransferAppModal} - submitText='Transfer ownership' + submitText='Transfer' inProgressText={'Transferring\u2026'} enabled={ (this.state.password.length > 0 || !AccountManager.currentUser().has_password) @@ -531,7 +531,7 @@ export default class GeneralSettings extends DashboardView { subtitle='This is an irreversible action!' type={Modal.Types.DANGER} open={this.state.showDeleteAppModal} - submitText='Permanently delete this app' + submitText='Delete' inProgressText={'Deleting\u2026'} enabled={this.state.password.length > 0} onSubmit={() => AppsManager.deleteApp(this.context.slug, this.state.password)} diff --git a/src/dashboard/Settings/SecuritySettings.react.js b/src/dashboard/Settings/SecuritySettings.react.js index 5930cd3556..059f61947d 100644 --- a/src/dashboard/Settings/SecuritySettings.react.js +++ b/src/dashboard/Settings/SecuritySettings.react.js @@ -48,7 +48,7 @@ export default class SecuritySettings extends DashboardView { } open={this.state.showResetDialog} type={Modal.Types.DANGER} - submitText='Reset it' + submitText='Reset' inProgressText={'Resetting\u2026'} enabled={this.state.passwordInput.length > 0 || !AccountManager.currentUser().has_password} onSubmit={() => currentApp.resetMasterKey(this.state.passwordInput)}