diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a029f0f5a5..7d127e79eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -29,26 +29,26 @@ jobs: run: npm ci - name: CI Node Engine Check run: npm run ci:checkNodeEngine - # check-lint: - # name: Lint - # timeout-minutes: 15 - # runs-on: ubuntu-18.04 - # steps: - # - uses: actions/checkout@v2 - # - name: Use Node.js ${{ env.NODE_VERSION }} - # uses: actions/setup-node@v1 - # with: - # node-version: ${{ env.node-version }} - # - name: Cache Node.js modules - # uses: actions/cache@v2 - # with: - # path: ~/.npm - # key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }} - # restore-keys: | - # ${{ runner.os }}-node-${{ env.NODE_VERSION }}- - # - name: Install dependencies - # run: npm ci - # - run: npm run lint + check-lint: + name: Lint + timeout-minutes: 15 + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v1 + with: + node-version: ${{ env.node-version }} + - name: Cache Node.js modules + uses: actions/cache@v2 + with: + path: ~/.npm + key: ${{ runner.os }}-node-${{ env.NODE_VERSION }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node-${{ env.NODE_VERSION }}- + - name: Install dependencies + run: npm ci + - run: npm run lint check-circular: name: Circular Dependencies timeout-minutes: 5 @@ -147,6 +147,8 @@ jobs: - name: Install dependencies (Node >= 10) run: npm ci if: ${{ steps.node.outputs.node_major >= 10 }} + - name: Tests + run: npm test - name: Test bundles run: ./scripts/before_script.sh env: diff --git a/changelogs/CHANGELOG_alpha.md b/changelogs/CHANGELOG_alpha.md index fcf7f5b3e5..0447648801 100644 --- a/changelogs/CHANGELOG_alpha.md +++ b/changelogs/CHANGELOG_alpha.md @@ -1,3 +1,10 @@ +# [4.1.0-alpha.2](https://github.com/ParsePlatform/parse-dashboard/compare/4.1.0-alpha.1...4.1.0-alpha.2) (2022-03-24) + + +### Bug Fixes + +* security vulnerability bump minimist from 1.2.5 to 1.2.6 ([#2070](https://github.com/ParsePlatform/parse-dashboard/issues/2070)) ([9730379](https://github.com/ParsePlatform/parse-dashboard/commit/973037980aab05680072eba8a313b0f6280e12b7)) + # [4.1.0-alpha.1](https://github.com/ParsePlatform/parse-dashboard/compare/4.0.1...4.1.0-alpha.1) (2022-03-23) diff --git a/jsconfig.json b/jsconfig.json new file mode 100644 index 0000000000..a40157ac93 --- /dev/null +++ b/jsconfig.json @@ -0,0 +1,8 @@ +{ + "typeAcquisition": { + "include": [ + "jest" + ] + }, + "exclude": ["node_modules"] +} diff --git a/package-lock.json b/package-lock.json index 3f89dabc87..ae39714f74 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "parse-dashboard", - "version": "4.1.0-beta.1", + "version": "4.1.0-alpha.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2212,22 +2212,22 @@ } }, "@codemirror/highlight": { - "version": "0.19.6", - "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.6.tgz", - "integrity": "sha512-+eibu6on9quY8uN3xJ/n3rH+YIDLlpX7YulVmFvqAIz/ukRQ5tWaBmB7fMixHmnmRIRBRZgB8rNtonuMwZSAHQ==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@codemirror/highlight/-/highlight-0.19.7.tgz", + "integrity": "sha512-3W32hBCY0pbbv/xidismw+RDMKuIag+fo4kZIbD7WoRj+Ttcaxjf+vP6RttRHXLaaqbWh031lTeON8kMlDhMYw==", "requires": { "@codemirror/language": "^0.19.0", "@codemirror/rangeset": "^0.19.0", - "@codemirror/state": "^0.19.0", + "@codemirror/state": "^0.19.3", "@codemirror/view": "^0.19.0", "@lezer/common": "^0.15.0", "style-mod": "^4.0.0" } }, "@codemirror/language": { - "version": "0.19.7", - "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.19.7.tgz", - "integrity": "sha512-pNNUtYWMIMG0lUSKyUXJr8U0rFiCKsKFXbA2Oj17PC+S1FY99hV0z1vcntW67ekAIZw9DMEUQnLsKBuIbAUX7Q==", + "version": "0.19.8", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-0.19.8.tgz", + "integrity": "sha512-KhRne8qmzSKkaw+qhkwgNsPKxmThlyeJ3umfc33B9kJzVP7xhTkwX2MEPl0almM3brxMi+lPYx7gCPOy1gHsWw==", "requires": { "@codemirror/state": "^0.19.0", "@codemirror/text": "^0.19.0", @@ -2237,25 +2237,25 @@ } }, "@codemirror/rangeset": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.5.tgz", - "integrity": "sha512-L3b+RIwIRKOJ3pJLOtpkxCUjGnxZKFyPb0CjYWKnVLuzEIaEExWWK7sp6rsejxOy8RjYzfCHlFhYB4UdQN7brw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@codemirror/rangeset/-/rangeset-0.19.9.tgz", + "integrity": "sha512-V8YUuOvK+ew87Xem+71nKcqu1SXd5QROMRLMS/ljT5/3MCxtgrRie1Cvild0G/Z2f1fpWxzX78V0U4jjXBorBQ==", "requires": { "@codemirror/state": "^0.19.0" } }, "@codemirror/state": { - "version": "0.19.6", - "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.19.6.tgz", - "integrity": "sha512-sqIQZE9VqwQj7D4c2oz9mfLhlT1ElAzGB5lO1lE33BPyrdNy1cJyCIOecT4cn4VeJOFrnjOeu+IftZ3zqdFETw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-0.19.9.tgz", + "integrity": "sha512-psOzDolKTZkx4CgUqhBQ8T8gBc0xN5z4gzed109aF6x7D7umpDRoimacI/O6d9UGuyl4eYuDCZmDFr2Rq7aGOw==", "requires": { "@codemirror/text": "^0.19.0" } }, "@codemirror/stream-parser": { - "version": "0.19.3", - "resolved": "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.3.tgz", - "integrity": "sha512-9fV6GgcZSLVvvPCd/SUt00G/Sqt91r0ojEQsgH7koWn4McTFvSujhOs0LHJlQGQRazuuWW1j3eqrv19+E9t40g==", + "version": "0.19.7", + "resolved": "https://registry.npmjs.org/@codemirror/stream-parser/-/stream-parser-0.19.7.tgz", + "integrity": "sha512-4ExcbKksmU4PIT8s11/dPESgMNLQqlMlbQzRQ1CyMcmygcuQk+58zQ84nv/X17OCUd2ephZ1DKEaHHACifzCiA==", "requires": { "@codemirror/highlight": "^0.19.0", "@codemirror/language": "^0.19.0", @@ -2266,14 +2266,14 @@ } }, "@codemirror/text": { - "version": "0.19.5", - "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.19.5.tgz", - "integrity": "sha512-Syu5Xc7tZzeUAM/y4fETkT0zgGr48rDG+w4U38bPwSIUr+L9S/7w2wDE1WGNzjaZPz12F6gb1gxWiSTg9ocLow==" + "version": "0.19.6", + "resolved": "https://registry.npmjs.org/@codemirror/text/-/text-0.19.6.tgz", + "integrity": "sha512-T9jnREMIygx+TPC1bOuepz18maGq/92q2a+n4qTqObKwvNMg+8cMTslb8yxeEDEq7S3kpgGWxgO1UWbQRij0dA==" }, "@codemirror/view": { - "version": "0.19.37", - "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.37.tgz", - "integrity": "sha512-SLuLx9p0O1ZHXLehvl5MwSvUrQRcsNGemzTgJ0zRajmc3BBsNigI1PXxdo7tvBhO5DcAzRRBXoke9DZFUR6Qqg==", + "version": "0.19.47", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-0.19.47.tgz", + "integrity": "sha512-SfbagKvJQl5dtt+9wYpo9sa3ZkMgUxTq+/hXDf0KVwIx+zu3cJIqfEm9xSx6yXkq7it7RsPGHaPasApNffF/8g==", "requires": { "@codemirror/rangeset": "^0.19.5", "@codemirror/state": "^0.19.3", @@ -2316,11 +2316,11 @@ } }, "@graphql-tools/batch-execute": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.3.1.tgz", - "integrity": "sha512-63kHY8ZdoO5FoeDXYHnAak1R3ysMViMPwWC2XUblFckuVLMUPmB2ONje8rjr2CvzWBHAW8c1Zsex+U3xhKtGIA==", + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-8.4.1.tgz", + "integrity": "sha512-63+lNWrwXmofjZVa7ML+n9CBviClF3K+RP3Xx3hxGQ8BrhvB1pWS1yzaUZqrkiiKdTu1v3mJGVfmooHwzlyPwQ==", "requires": { - "@graphql-tools/utils": "^8.5.1", + "@graphql-tools/utils": "8.6.5", "dataloader": "2.0.0", "tslib": "~2.3.0", "value-or-promise": "1.0.11" @@ -2334,14 +2334,15 @@ } }, "@graphql-tools/delegate": { - "version": "8.4.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.4.3.tgz", - "integrity": "sha512-hKTJdJXJnKL0+2vpU+Kt7OHQTIXZ9mBmNBwHsYiG5WNArz/vNI7910r6TC2XMf/e7zhyyK+mXxMDBmDQkkJagA==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-8.7.0.tgz", + "integrity": "sha512-tsmNFV8nVvPY2nApCj69ck32/Jdj44rYbUZx+cpyUWOzfbUT1iu0d1mUwn5UeHuGnB+Bzgn3fuTypg97mDEyEw==", "requires": { - "@graphql-tools/batch-execute": "^8.3.1", - "@graphql-tools/schema": "^8.3.1", - "@graphql-tools/utils": "^8.5.4", + "@graphql-tools/batch-execute": "8.4.1", + "@graphql-tools/schema": "8.3.5", + "@graphql-tools/utils": "8.6.5", "dataloader": "2.0.0", + "graphql-executor": "0.0.22", "tslib": "~2.3.0", "value-or-promise": "1.0.11" }, @@ -2354,12 +2355,12 @@ } }, "@graphql-tools/graphql-file-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.3.tgz", - "integrity": "sha512-6kUJZiNpYKVhum9E5wfl5PyLLupEDYdH7c8l6oMrk6c7EPEVs6iSUyB7yQoWrtJccJLULBW2CRQ5IHp5JYK0mA==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-7.3.7.tgz", + "integrity": "sha512-fwXLycYvabPhusGtYuFrOPbjeIvLWr6viGkQc9KmiBm2Z2kZrlNRNUlYkXXRzMoiqRkzqFJYhOgWDE7LsOnbjw==", "requires": { - "@graphql-tools/import": "^6.5.7", - "@graphql-tools/utils": "^8.5.1", + "@graphql-tools/import": "6.6.9", + "@graphql-tools/utils": "8.6.5", "globby": "^11.0.3", "tslib": "~2.3.0", "unixify": "^1.0.0" @@ -2373,11 +2374,11 @@ } }, "@graphql-tools/import": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.3.tgz", - "integrity": "sha512-k/QkWCZ5rPVgFw1eE4GXPXltw9/mEiJj6F6bJvFKJr1C6im8Y60pl0Pv+SByGZQGuukXE0uR16Mv4OFGSMQIaQ==", + "version": "6.6.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.6.9.tgz", + "integrity": "sha512-sKaLqvPmNLQlY4te+nnBhRrf5WBISoiyVkbriCLz0kHw805iHdJaU2KxUoHsRTR7WlYq0g9gzB0oVaRh99Q5aA==", "requires": { - "@graphql-tools/utils": "8.5.5", + "@graphql-tools/utils": "8.6.5", "resolve-from": "5.0.0", "tslib": "~2.3.0" }, @@ -2390,11 +2391,11 @@ } }, "@graphql-tools/json-file-loader": { - "version": "7.3.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.3.tgz", - "integrity": "sha512-CN2Qk9rt+Gepa3rb3X/mpxYA5MIYLwZBPj2Njw6lbZ6AaxG+O1ArDCL5ACoiWiBimn1FCOM778uhRM9znd0b3Q==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-7.3.7.tgz", + "integrity": "sha512-dm0LcfiWYin7cUR4RWC33C9bNppujvSU7hwTH+sHmSguNnat9Kn8dBntVSgrY3qCbKuGfz/PshQHIODXrRwAKg==", "requires": { - "@graphql-tools/utils": "^8.5.1", + "@graphql-tools/utils": "8.6.5", "globby": "^11.0.3", "tslib": "~2.3.0", "unixify": "^1.0.0" @@ -2408,12 +2409,12 @@ } }, "@graphql-tools/load": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.0.tgz", - "integrity": "sha512-f0k12xZzxfV4BxWyvt/f8opqICXvz4WzDrVVG4udHFgUJIjhGeE67SRTWFAK/jlIp4QgaDux7L1DXQkJnmx64w==", + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-7.5.5.tgz", + "integrity": "sha512-qPasit140nwTbMQbFCfZcgaS7q/0+xMQGdkMGU11rtHt6/jMgJIKDUU8/fJGKltNY3EeHlEdVtZmggZD7Rr6bA==", "requires": { - "@graphql-tools/schema": "8.3.1", - "@graphql-tools/utils": "^8.5.5", + "@graphql-tools/schema": "8.3.5", + "@graphql-tools/utils": "8.6.5", "p-limit": "3.1.0", "tslib": "~2.3.0" }, @@ -2434,11 +2435,11 @@ } }, "@graphql-tools/merge": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.1.tgz", - "integrity": "sha512-Q240kcUszhXiAYudjuJgNuLgy9CryDP3wp83NOZQezfA6h3ByYKU7xI6DiKrdjyVaGpYN3ppUmdj0uf5GaXzMA==", + "version": "8.2.6", + "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-8.2.6.tgz", + "integrity": "sha512-dkwTm4czMISi/Io47IVvq2Fl9q4TIGKpJ0VZjuXYdEFkECyH6A5uwxZfPVandZG+gQs8ocFFoa6RisiUJLZrJw==", "requires": { - "@graphql-tools/utils": "^8.5.1", + "@graphql-tools/utils": "8.6.5", "tslib": "~2.3.0" }, "dependencies": { @@ -2450,12 +2451,12 @@ } }, "@graphql-tools/schema": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.1.tgz", - "integrity": "sha512-3R0AJFe715p4GwF067G5i0KCr/XIdvSfDLvTLEiTDQ8V/hwbOHEKHKWlEBHGRQwkG5lwFQlW1aOn7VnlPERnWQ==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-8.3.5.tgz", + "integrity": "sha512-3mJ/K7TdL+fnEUtCUqF4qkh1fcNMzaxgwKgO9fSYSTS7zyT16hbi5XSulSTshygHgaD2u+MO588iR4ZJcbZcIg==", "requires": { - "@graphql-tools/merge": "^8.2.1", - "@graphql-tools/utils": "^8.5.1", + "@graphql-tools/merge": "8.2.6", + "@graphql-tools/utils": "8.6.5", "tslib": "~2.3.0", "value-or-promise": "1.0.11" }, @@ -2468,17 +2469,17 @@ } }, "@graphql-tools/url-loader": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.7.0.tgz", - "integrity": "sha512-mBBb+aJqI4E0MVEzyfi76Pi/G6lGxGTVt/tP1YtKJly7UnonNoWOtDusdL3zIVAGhGgLsNrLbGhLDbwSd6TV6A==", + "version": "7.9.7", + "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.7.tgz", + "integrity": "sha512-cJoZcv6oJrhArRPmSnw8wcqnz7F8p+HzwvjoJyHbs0ne2jTXazD+LOHaXMAa1L7lKK2YmH2Txy8pOI76JnvUiQ==", "requires": { - "@graphql-tools/delegate": "^8.4.1", - "@graphql-tools/utils": "^8.5.1", - "@graphql-tools/wrap": "^8.3.1", + "@graphql-tools/delegate": "8.7.0", + "@graphql-tools/utils": "8.6.5", + "@graphql-tools/wrap": "8.4.9", "@n1ru4l/graphql-live-query": "^0.9.0", "@types/websocket": "^1.0.4", "@types/ws": "^8.0.0", - "cross-undici-fetch": "^0.1.4", + "cross-undici-fetch": "^0.1.19", "dset": "^3.1.0", "extract-files": "^11.0.0", "graphql-sse": "^1.0.1", @@ -2488,7 +2489,6 @@ "subscriptions-transport-ws": "^0.11.0", "sync-fetch": "^0.3.1", "tslib": "^2.3.0", - "valid-url": "^1.0.9", "value-or-promise": "^1.0.11", "ws": "^8.3.0" }, @@ -2499,16 +2499,16 @@ "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" }, "ws": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", - "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==" + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==" } } }, "@graphql-tools/utils": { - "version": "8.5.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.5.5.tgz", - "integrity": "sha512-y7zRXWIUI73X+9/rf/0KzrNFMlpRKFfzLiwdbIeWwgLs+NV9vfUOoVkX8luXX6LwQxhSypHATMiwZGM2ro/wJA==", + "version": "8.6.5", + "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.6.5.tgz", + "integrity": "sha512-mjOtaWiS2WIqRz/cq5gaeM3sVrllcu2xbtHROw1su1v3xWa3D3dKgn8Lrl7+tvWs5WUVySsBss/VZ3WdoPkCrA==", "requires": { "tslib": "~2.3.0" }, @@ -2521,13 +2521,13 @@ } }, "@graphql-tools/wrap": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.3.2.tgz", - "integrity": "sha512-7DcOBFB+Dd84x9dxSm7qS4iJONMyfLnCJb8A19vGPffpu4SMJ3sFcgwibKFu5l6mMUiigKgXna2RRgWI+02bKQ==", + "version": "8.4.9", + "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-8.4.9.tgz", + "integrity": "sha512-YFb34itVWyE3sMifvPRqvYjXYpjJle2hkq9nIELQOumc1yqxT7jf/+YnNZalS1DoOdWn4GbDmqO/uljf6AuuDA==", "requires": { - "@graphql-tools/delegate": "^8.4.2", - "@graphql-tools/schema": "^8.3.1", - "@graphql-tools/utils": "^8.5.3", + "@graphql-tools/delegate": "8.7.0", + "@graphql-tools/schema": "8.3.5", + "@graphql-tools/utils": "8.6.5", "tslib": "~2.3.0", "value-or-promise": "1.0.11" }, @@ -3201,14 +3201,14 @@ } }, "@lezer/common": { - "version": "0.15.11", - "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.11.tgz", - "integrity": "sha512-vv0nSdIaVCRcJ8rPuDdsrNVfBOYe/4Szr/LhF929XyDmBndLDuWiCCHooGlGlJfzELyO608AyDhVsuX/ZG36NA==" + "version": "0.15.12", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-0.15.12.tgz", + "integrity": "sha512-edfwCxNLnzq5pBA/yaIhwJ3U3Kz8VAUOTRg0hhxaizaI1N+qxV7EXDv/kLCkLeq2RzSFvxexlaj5Mzfn2kY0Ig==" }, "@lezer/lr": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.5.tgz", - "integrity": "sha512-DEcLyhdmBxD1foQe7RegLrSlfS/XaTMGLkO5evkzHWAQKh/JnFWp7j7iNB7s2EpxzRrBCh0U+W7JDCeFhv2mng==", + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-0.15.8.tgz", + "integrity": "sha512-bM6oE6VQZ6hIFxDNKk8bKPa14hqFrV07J/vHGOeiAbJReIaQXmkVb6xQu4MR+JBTLa5arGRyAAjJe1qaQt3Uvg==", "requires": { "@lezer/common": "^0.15.0" } @@ -3751,6 +3751,95 @@ "@types/istanbul-lib-report": "*" } }, + "@types/jest": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-27.4.0.tgz", + "integrity": "sha512-gHl8XuC1RZ8H2j5sHv/JqsaxXkDDM9iDOgu0Wp8sjs4u/snb2PVehyWXJPr+ORA0RPpgw231mnutWI1+0hgjIQ==", + "dev": true, + "requires": { + "jest-diff": "^27.0.0", + "pretty-format": "^27.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "diff-sequences": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz", + "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==", + "dev": true + }, + "jest-diff": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz", + "integrity": "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^27.4.0", + "jest-get-type": "^27.4.0", + "pretty-format": "^27.4.6" + } + }, + "jest-get-type": { + "version": "27.4.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz", + "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==", + "dev": true + }, + "pretty-format": { + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz", + "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1", + "ansi-styles": "^5.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + } + } + }, "@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -3833,17 +3922,17 @@ "dev": true }, "@types/websocket": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.4.tgz", - "integrity": "sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.5.tgz", + "integrity": "sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==", "requires": { "@types/node": "*" } }, "@types/ws": { - "version": "8.2.2", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.2.2.tgz", - "integrity": "sha512-NOn5eIcgWLOo6qW8AcuLZ7G8PycXu0xTxxkS6Q18VWFxgPUSOwV0pBj2a/4viNZVu25i7RIB7GttdkAIUUXOOg==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", "requires": { "@types/node": "*" } @@ -5448,17 +5537,29 @@ "dev": true }, "codemirror": { - "version": "5.65.0", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.0.tgz", - "integrity": "sha512-gWEnHKEcz1Hyz7fsQWpK7P0sPI2/kSkRX2tc7DFA6TmZuDN75x/1ejnH/Pn8adYKrLEA1V2ww6L00GudHZbSKw==" + "version": "5.65.2", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.2.tgz", + "integrity": "sha512-SZM4Zq7XEC8Fhroqe3LxbEEX1zUPWH1wMr5zxiBuiUF64iYOUH/JI88v4tBag8MiBS8B8gRv8O1pPXGYXQ4ErA==" }, "codemirror-graphql": { - "version": "1.2.11", - "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.11.tgz", - "integrity": "sha512-pB3LVgrwj+qfO1vaVvnzTYBKhkms1hU/t0fiOM7tiov/Kq+l1BXCgYJyh5/muGDxpz7hqzg/fWJwIYNi40kLiA==", + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/codemirror-graphql/-/codemirror-graphql-1.2.14.tgz", + "integrity": "sha512-zt2N0sZgaZZUOp8eTNIy2d364gGKjtAu0PKHMjQqogB2S4KrD/z/wICCjRf0JXskPM8jN/kNqufhHt59UKf6gQ==", "requires": { "@codemirror/stream-parser": "^0.19.2", - "graphql-language-service": "^4.1.4" + "graphql-language-service": "^5.0.1" + }, + "dependencies": { + "graphql-language-service": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.1.tgz", + "integrity": "sha512-DGaGtCyU5ugCJIkTWqFxNESFCqjNEHJGWDhcu2jXY28GcPnTSqfKAk4ryCK4E514AKNFrvX9WwZEB6Csi+xbdQ==", + "requires": { + "graphql-config": "^4.1.0", + "nullthrows": "^1.0.0", + "vscode-languageserver-types": "^3.15.1" + } + } } }, "collection-visit": { @@ -5519,9 +5620,9 @@ } }, "commander": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", - "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.0.0.tgz", + "integrity": "sha512-JJfP2saEKbQqvW+FI93OYUB4ByV5cizMpFMiiJI8xDbBvQvSkIk0VvQdn1CZ8mqAO8Loq2h0gYTYtDFUZUeERw==" }, "commondir": { "version": "1.0.1", @@ -5858,15 +5959,26 @@ } }, "cross-undici-fetch": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.12.tgz", - "integrity": "sha512-JNUr0ANEwc3MEUT5xBl2fVnCJqcPa7hpQfEYNsrCG/7/M4pUH5W0nQOe6FKAQGB6SqFPyAeoEn8G375QXWxwWQ==", + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.1.27.tgz", + "integrity": "sha512-Oz/zXdh2HCq55xARCwFAYtKlyGp3VFAIfOEexN6nVm06rD6O5g47fKp7fggf/kBtc7iG09asNoGW+CUwIi4Efg==", "requires": { "abort-controller": "^3.0.0", "form-data-encoder": "^1.7.1", "formdata-node": "^4.3.1", - "node-fetch": "^2.6.5", - "undici": "^4.9.3" + "node-fetch": "^2.6.7", + "undici": "^4.9.3", + "web-streams-polyfill": "^3.2.0" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } } }, "crypto-js": { @@ -7965,12 +8077,19 @@ "integrity": "sha512-EFRDrsMm/kyqbTQocNvRXMLjc7Es2Vk+IQFx/YW7hkUH1eBl4J1fqiP34l74Yt0pFLCNpc06fkbVk00008mzjg==" }, "formdata-node": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.1.tgz", - "integrity": "sha512-8xKSa9et4zb+yziWsD/bI+EYjdg1z2p9EpKr+o+Yk12F/wP66bmDdvjj2ZXd2K/MJlR3HBzWnuV7f82jzHRqCA==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.2.tgz", + "integrity": "sha512-k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg==", "requires": { "node-domexception": "1.0.0", "web-streams-polyfill": "4.0.0-beta.1" + }, + "dependencies": { + "web-streams-polyfill": { + "version": "4.0.0-beta.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz", + "integrity": "sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==" + } } }, "forwarded": { @@ -8387,18 +8506,18 @@ "dev": true }, "graphiql": { - "version": "1.5.16", - "resolved": "https://registry.npmjs.org/graphiql/-/graphiql-1.5.16.tgz", - "integrity": "sha512-G1ucZ+1GS6Soq+ftr7eOihy6BcmJHYo29j1/GxXKclUr/z768WWjjIqDcF1/+geI0KOzVeEKkceA1bgT5hG4oQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/graphiql/-/graphiql-1.6.0.tgz", + "integrity": "sha512-VUxnzehiv5BiJzoHQOL7CVFfVjMidate93wSRvFotW7gZluF6PQE45B+LeVWLMRoC59KIUcL+6gtgLHJ5FssvA==", "requires": { "@graphiql/toolkit": "^0.4.2", "codemirror": "^5.58.2", - "codemirror-graphql": "^1.2.11", + "codemirror-graphql": "^1.2.12", "copy-to-clipboard": "^3.2.0", "dset": "^3.1.0", "entities": "^2.0.0", "escape-html": "^1.0.3", - "graphql-language-service": "^4.1.4", + "graphql-language-service": "^4.1.5", "markdown-it": "^12.2.0" } }, @@ -8425,10 +8544,15 @@ "string-env-interpolation": "1.0.1" } }, + "graphql-executor": { + "version": "0.0.22", + "resolved": "https://registry.npmjs.org/graphql-executor/-/graphql-executor-0.0.22.tgz", + "integrity": "sha512-WbKSnSHFn6REKKH4T6UAwDM3mLUnYMQlQLNG0Fw+Lkb3ilCnL3m5lkJ7411LAI9sF7BvPbthovVZhsEUh9Xfag==" + }, "graphql-language-service": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-4.1.4.tgz", - "integrity": "sha512-LJk1vwwWwh8onewIzjbXXfa7C5mI6tNN67yztFbmQmfDQv1naZfqKLitudQWaDwJgLqAlpKIefRaeU3cNYHRFQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-4.1.5.tgz", + "integrity": "sha512-6vvZ+4L1xMNpQdlt6a9BaEzZD3ZIiaTmFdjKu81UTIVRh02QKfbW6tcz4UJNTY+4LsTWjR1rNtG3H4pVNrKJ2Q==", "requires": { "graphql-language-service-interface": "^2.10.2", "graphql-language-service-parser": "^1.10.4", @@ -8476,14 +8600,14 @@ } }, "graphql-sse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/graphql-sse/-/graphql-sse-1.0.6.tgz", - "integrity": "sha512-y2mVBN2KwNrzxX2KBncQ6kzc6JWvecxuBernrl0j65hsr6MAS3+Yn8PTFSOgRmtolxugepxveyZVQEuaNEbw3w==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/graphql-sse/-/graphql-sse-1.1.0.tgz", + "integrity": "sha512-xE8AGPJa5X+g7iFmRQw/8H+7lXIDJvSkW6lou/XSSq17opPQl+dbKOMiqraHMx52VrDgS061ZVx90OSuqS6ykA==" }, "graphql-ws": { - "version": "5.5.5", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.5.5.tgz", - "integrity": "sha512-hvyIS71vs4Tu/yUYHPvGXsTgo0t3arU820+lT5VjZS2go0ewp2LqyCgxEN56CzOG7Iys52eRhHBiD1gGRdiQtw==" + "version": "5.6.4", + "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.6.4.tgz", + "integrity": "sha512-5r8tAzznI1zeh7k12+3z07KkgXPckQbnC9h4kJ2TBDWG2wb26TJTbVHQOiAncDBgPbtXtc1A2BlttiRuPH2t/w==" }, "graphviz": { "version": "0.0.9", @@ -8643,16 +8767,11 @@ "dev": true }, "history": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", - "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", "requires": { - "@babel/runtime": "^7.1.2", - "loose-envify": "^1.2.0", - "resolve-pathname": "^3.0.0", - "tiny-invariant": "^1.0.2", - "tiny-warning": "^1.0.0", - "value-equal": "^1.0.1" + "@babel/runtime": "^7.7.6" } }, "hoist-non-react-statics": { @@ -11796,9 +11915,9 @@ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "meros": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/meros/-/meros-1.1.4.tgz", - "integrity": "sha512-E9ZXfK9iQfG9s73ars9qvvvbSIkJZF5yOo9j4tcwM5tN8mUKfj/EKN5PzOr3ZH0y5wL7dLAHw3RVEfpQV9Q7VQ==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/meros/-/meros-1.2.0.tgz", + "integrity": "sha512-3QRZIS707pZQnijHdhbttXRWwrHhZJ/gzolneoxKVz9N/xmsvY/7Ls8lpnI9gxbgxjcHsAVEW3mgwiZCo6kkJQ==" }, "methods": { "version": "1.1.2", @@ -11866,9 +11985,9 @@ } }, "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" }, "minimist-options": { "version": "4.1.0", @@ -15785,6 +15904,19 @@ "tiny-warning": "^1.0.0" }, "dependencies": { + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", @@ -15812,6 +15944,21 @@ "react-router": "5.2.1", "tiny-invariant": "^1.0.2", "tiny-warning": "^1.0.0" + }, + "dependencies": { + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + } } }, "react-side-effect": { @@ -18204,9 +18351,9 @@ } }, "typescript": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz", - "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==" + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz", + "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==" }, "ua-parser-js": { "version": "0.7.28", @@ -18256,9 +18403,9 @@ } }, "undici": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/undici/-/undici-4.12.1.tgz", - "integrity": "sha512-MSfap7YiQJqTPP12C11PFRs9raZuVicDbwsZHTjB0a8+SsCqt7KdUis54f373yf7ZFhJzAkGJLaKm0202OIxHg==" + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/undici/-/undici-4.16.0.tgz", + "integrity": "sha512-tkZSECUYi+/T1i4u+4+lwZmQgLXd4BLGlrc7KZPcLIW7Jpq99+Xpc30ONv7nS6F5UNOxp/HBZSSL9MafUrvJbw==" }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", @@ -18471,11 +18618,6 @@ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", "dev": true }, - "valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=" - }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -18581,9 +18723,9 @@ } }, "web-streams-polyfill": { - "version": "4.0.0-beta.1", - "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-4.0.0-beta.1.tgz", - "integrity": "sha512-3ux37gEX670UUphBF9AMCq8XM6iQ8Ac6A+DSRRjDoRBm1ufCkaCDdNVbaqq60PsEkdNlLKrGtv/YBP4EJXqNtQ==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.0.tgz", + "integrity": "sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==" }, "webidl-conversions": { "version": "3.0.1", diff --git a/package.json b/package.json index 1ce538b6a6..2d0a39c5be 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "parse-dashboard", - "version": "4.1.0-beta.1", + "version": "4.1.0-alpha.2", "repository": { "type": "git", "url": "https://github.com/ParsePlatform/parse-dashboard" @@ -38,15 +38,15 @@ "@babel/runtime": "7.17.2", "bcryptjs": "2.3.0", "body-parser": "1.19.2", - "commander": "6.2.1", + "commander": "9.0.0", "connect-flash": "0.1.1", "cookie-session": "2.0.0", "copy-to-clipboard": "3.3.1", "csurf": "1.11.0", "express": "4.17.3", - "graphiql": "1.5.16", + "graphiql": "1.6.0", "graphql": "16.3.0", - "history": "4.10.1", + "history": "5.3.0", "immutable": "4.0.0", "immutable-devtools": "0.1.5", "inquirer": "8.2.0", @@ -72,7 +72,7 @@ "react-router-dom": "5.3.0", "regenerator-runtime": "0.13.8", "semver": "7.3.4", - "typescript": "4.5.5" + "typescript": "4.6.2" }, "devDependencies": { "@actions/core": "1.2.6", @@ -89,6 +89,7 @@ "@semantic-release/github": "7.2.3", "@semantic-release/npm": "7.1.3", "@semantic-release/release-notes-generator": "9.0.3", + "@types/jest": "27.4.0", "all-node-versions": "8.0.0", "babel-eslint": "10.1.0", "babel-loader": "8.2.3", @@ -127,7 +128,6 @@ "build": "webpack --node-env=production --config webpack/production.config.js && webpack --config webpack/PIG.config.js", "test": "jest", "lint": "eslint . --ignore-path .gitignore --cache", - "pretest": "npm run lint", "generate": "node scripts/generate.js", "prepare": "webpack --config webpack/publish.config.js --progress", "start": "node ./Parse-Dashboard/index.js", @@ -148,6 +148,9 @@ "transform": { ".*": "/testing/preprocessor.js" }, + "moduleNameMapper": { + "\\.(css|less)$": "/testing/styleMock.js" + }, "unmockedModulePathPatterns": [ "react", "react-dom", diff --git a/release.config.js b/release.config.js index b6fec11c3d..e67b08526f 100644 --- a/release.config.js +++ b/release.config.js @@ -26,7 +26,7 @@ async function config() { // Get branch const branch = ref.split('/').pop(); console.log(`Running on branch: ${branch}`); - + // Set changelog file const changelogFile = `./changelogs/CHANGELOG_${branch}.md`; console.log(`Changelog file output to: ${changelogFile}`); @@ -96,7 +96,7 @@ async function config() { ['@semantic-release/github', { successComment: getReleaseComment(), labels: ['type:ci'], - releasedLabels: ['state:released<%= nextRelease.channel ? `-\${nextRelease.channel}` : "" %>'] + releasedLabels: ['state:released<%= nextRelease.channel ? `-${nextRelease.channel}` : "" %>'] }], ], }; diff --git a/src/components/Markdown/Markdown.react.js b/src/components/Markdown/Markdown.react.js index e3ba5dc3c6..7860b06860 100644 --- a/src/components/Markdown/Markdown.react.js +++ b/src/components/Markdown/Markdown.react.js @@ -6,7 +6,7 @@ * the root directory of this source tree. */ import CodeSnippet from 'components/CodeSnippet/CodeSnippet.react'; -import marked from 'marked'; +import { marked } from 'marked'; import PropTypes from 'lib/PropTypes'; import React from 'react'; import ReactDOMServer from 'react-dom/server'; diff --git a/src/components/Pill/Pill.react.js b/src/components/Pill/Pill.react.js index 81d7fe5818..ffef318f39 100644 --- a/src/components/Pill/Pill.react.js +++ b/src/components/Pill/Pill.react.js @@ -7,7 +7,7 @@ */ import React from 'react'; import styles from 'components/Pill/Pill.scss'; -import Icon from "components/Icon/Icon.react"; +import Icon from 'components/Icon/Icon.react'; //TODO: refactor, may want to move onClick outside or need to make onClick able to handle link/button a11y let Pill = ({ value, onClick, fileDownloadLink, followClick = false, shrinkablePill = false }) => ( @@ -15,7 +15,7 @@ let Pill = ({ value, onClick, fileDownloadLink, followClick = false, shrinkableP className={[ styles.pill, !followClick && onClick ? styles.action : void 0 - ].join(" ")} + ].join(' ')} onClick={!followClick && onClick ? onClick : null} > {value} diff --git a/src/components/PushPreview/PushPreview.react.js b/src/components/PushPreview/PushPreview.react.js index e654136278..8c1c7b90bb 100644 --- a/src/components/PushPreview/PushPreview.react.js +++ b/src/components/PushPreview/PushPreview.react.js @@ -5,8 +5,6 @@ * This source code is licensed under the license found in the LICENSE file in * the root directory of this source tree. */ -import PropTypes from 'lib/PropTypes'; -import ParseApp from 'lib/ParseApp'; import React from 'react'; import SegmentSelect from 'components/SegmentSelect/SegmentSelect.react'; import styles from 'components/PushPreview/PushPreview.scss'; diff --git a/src/components/Sidebar/Pin.react.js b/src/components/Sidebar/Pin.react.js index 035610fd00..21c4eb2d7f 100644 --- a/src/components/Sidebar/Pin.react.js +++ b/src/components/Sidebar/Pin.react.js @@ -1,7 +1,7 @@ -import React from "react"; +import React from 'react'; -import Icon from "components/Icon/Icon.react"; -import styles from "components/Sidebar/Sidebar.scss"; +import Icon from 'components/Icon/Icon.react'; +import styles from 'components/Sidebar/Sidebar.scss'; const Pin = ({ onClick }) => (
diff --git a/src/dashboard/Data/Browser/Browser.react.js b/src/dashboard/Data/Browser/Browser.react.js index 816c038e11..df711ebb44 100644 --- a/src/dashboard/Data/Browser/Browser.react.js +++ b/src/dashboard/Data/Browser/Browser.react.js @@ -402,7 +402,7 @@ class Browser extends DashboardView { if (name === 'objectId' || this.state.isUnique && name !== this.state.uniqueField) { return; } - if (!!required) { + if (required) { requiredCols.push(name); } if (className === '_User' && (name === 'username' || name === 'password')) { @@ -419,7 +419,7 @@ class Browser extends DashboardView { for (let idx = 0; idx < requiredCols.length; idx++) { const name = requiredCols[idx]; if (obj.get(name) == null) { - this.showNote("Please enter all required fields", true); + this.showNote('Please enter all required fields', true); this.setState({ markRequiredFieldRow: -1 }); @@ -461,7 +461,7 @@ class Browser extends DashboardView { if (msg) { msg = msg[0].toUpperCase() + msg.substr(1); } - obj.set(attr, prev); + obj.revert(); this.setState({ data: this.state.data }); this.showNote(msg, true); } @@ -506,7 +506,7 @@ class Browser extends DashboardView { if (name === 'objectId' || this.state.isUnique && name !== this.state.uniqueField) { return; } - if (!!required) { + if (required) { requiredCols.push(name); } if (className === '_User' && (name === 'username' || name === 'password')) { @@ -523,7 +523,7 @@ class Browser extends DashboardView { for (let idx = 0; idx < requiredCols.length; idx++) { const name = requiredCols[idx]; if (obj.get(name) == null) { - this.showNote("Please enter all required fields", true); + this.showNote('Please enter all required fields', true); this.setState({ markRequiredFieldRow: rowIndex }); diff --git a/src/dashboard/Data/Browser/BrowserToolbar.react.js b/src/dashboard/Data/Browser/BrowserToolbar.react.js index 418f837bd0..8079c48a41 100644 --- a/src/dashboard/Data/Browser/BrowserToolbar.react.js +++ b/src/dashboard/Data/Browser/BrowserToolbar.react.js @@ -326,7 +326,7 @@ let BrowserToolbar = ({ {editCloneRows && editCloneRows.length > 0 && ( diff --git a/src/dashboard/Data/Browser/DataBrowser.react.js b/src/dashboard/Data/Browser/DataBrowser.react.js index 8827b35dbb..962ba7e46c 100644 --- a/src/dashboard/Data/Browser/DataBrowser.react.js +++ b/src/dashboard/Data/Browser/DataBrowser.react.js @@ -257,6 +257,7 @@ export default class DataBrowser extends React.Component { getNextVisibleColumnIndex(distance = 1, min = 0, max = 0) { if (distance === 0) { return this.state.current.col; } let newIndex = this.state.current.col + distance; + // eslint-disable-next-line no-constant-condition while (true) { if (this.state.order[newIndex]?.visible) { return newIndex; } if (newIndex <= min) { return min; } diff --git a/src/dashboard/Data/Browser/ExportSelectedRowsDialog.react.js b/src/dashboard/Data/Browser/ExportSelectedRowsDialog.react.js index 1e4b5bf2db..9152d11662 100644 --- a/src/dashboard/Data/Browser/ExportSelectedRowsDialog.react.js +++ b/src/dashboard/Data/Browser/ExportSelectedRowsDialog.react.js @@ -27,7 +27,7 @@ export default class ExportSelectedRowsDialog extends React.Component { { it('has a default state', () => { const component = renderer.create(