diff --git a/client/package-lock.json b/client/package-lock.json
index 69b178e7..39e0f467 100644
--- a/client/package-lock.json
+++ b/client/package-lock.json
@@ -4,17 +4,17 @@
"lockfileVersion": 1,
"dependencies": {
"@babel/code-frame": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz",
- "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"requires": {
- "@babel/highlight": "^7.10.1"
+ "@babel/highlight": "^7.10.4"
}
},
"@babel/compat-data": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz",
- "integrity": "sha512-CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz",
+ "integrity": "sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==",
"requires": {
"browserslist": "^4.12.0",
"invariant": "^2.2.4",
@@ -52,13 +52,12 @@
}
},
"@babel/generator": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz",
- "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.11.0.tgz",
+ "integrity": "sha512-fEm3Uzw7Mc9Xi//qU20cBKatTfs2aOtKqmvy/Vm7RkJEGFQ4xc9myCfbXxqK//ZS8MR/ciOHw6meGASJuKmDfQ==",
"requires": {
- "@babel/types": "^7.10.2",
+ "@babel/types": "^7.11.0",
"jsesc": "^2.5.1",
- "lodash": "^4.17.13",
"source-map": "^0.5.0"
},
"dependencies": {
@@ -70,47 +69,47 @@
}
},
"@babel/helper-annotate-as-pure": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz",
- "integrity": "sha512-ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz",
+ "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz",
- "integrity": "sha512-cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz",
+ "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==",
"requires": {
- "@babel/helper-explode-assignable-expression": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-explode-assignable-expression": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-builder-react-jsx": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.1.tgz",
- "integrity": "sha512-KXzzpyWhXgzjXIlJU1ZjIXzUPdej1suE6vzqgImZ/cpAsR/CC8gUcX4EWRmDfWz/cs6HOCPMBIJ3nKoXt3BFuw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
+ "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-builder-react-jsx-experimental": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz",
- "integrity": "sha512-irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.5.tgz",
+ "integrity": "sha512-Buewnx6M4ttG+NLkKyt7baQn7ScC/Td+e99G914fRU8fGIUivDDgVIQeDHFa5e4CRSJQt58WpNHhsAZgtzVhsg==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/helper-module-imports": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/types": "^7.10.5"
}
},
"@babel/helper-compilation-targets": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz",
- "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz",
+ "integrity": "sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==",
"requires": {
- "@babel/compat-data": "^7.10.1",
+ "@babel/compat-data": "^7.10.4",
"browserslist": "^4.12.0",
"invariant": "^2.2.4",
"levenary": "^1.1.1",
@@ -118,196 +117,204 @@
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz",
- "integrity": "sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz",
+ "integrity": "sha512-0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==",
"requires": {
- "@babel/helper-function-name": "^7.10.1",
- "@babel/helper-member-expression-to-functions": "^7.10.1",
- "@babel/helper-optimise-call-expression": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-replace-supers": "^7.10.1",
- "@babel/helper-split-export-declaration": "^7.10.1"
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-member-expression-to-functions": "^7.10.5",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz",
- "integrity": "sha512-Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz",
+ "integrity": "sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/helper-regex": "^7.10.1",
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-regex": "^7.10.4",
"regexpu-core": "^4.7.0"
}
},
"@babel/helper-define-map": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz",
- "integrity": "sha512-+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz",
+ "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==",
"requires": {
- "@babel/helper-function-name": "^7.10.1",
- "@babel/types": "^7.10.1",
- "lodash": "^4.17.13"
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/types": "^7.10.5",
+ "lodash": "^4.17.19"
}
},
"@babel/helper-explode-assignable-expression": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz",
- "integrity": "sha512-vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz",
+ "integrity": "sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A==",
"requires": {
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-function-name": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz",
- "integrity": "sha512-fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz",
+ "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==",
"requires": {
- "@babel/helper-get-function-arity": "^7.10.1",
- "@babel/template": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-get-function-arity": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz",
- "integrity": "sha512-F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz",
+ "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-hoist-variables": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz",
- "integrity": "sha512-vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz",
+ "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz",
- "integrity": "sha512-u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz",
+ "integrity": "sha512-JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-module-imports": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz",
- "integrity": "sha512-SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz",
+ "integrity": "sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-module-transforms": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz",
- "integrity": "sha512-RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz",
+ "integrity": "sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==",
"requires": {
- "@babel/helper-module-imports": "^7.10.1",
- "@babel/helper-replace-supers": "^7.10.1",
- "@babel/helper-simple-access": "^7.10.1",
- "@babel/helper-split-export-declaration": "^7.10.1",
- "@babel/template": "^7.10.1",
- "@babel/types": "^7.10.1",
- "lodash": "^4.17.13"
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-simple-access": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.11.0",
+ "lodash": "^4.17.19"
}
},
"@babel/helper-optimise-call-expression": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz",
- "integrity": "sha512-a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz",
+ "integrity": "sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz",
- "integrity": "sha512-fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA=="
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz",
+ "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg=="
},
"@babel/helper-regex": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz",
- "integrity": "sha512-7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz",
+ "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==",
"requires": {
- "lodash": "^4.17.13"
+ "lodash": "^4.17.19"
}
},
"@babel/helper-remap-async-to-generator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz",
- "integrity": "sha512-RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz",
+ "integrity": "sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/helper-wrap-function": "^7.10.1",
- "@babel/template": "^7.10.1",
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-wrap-function": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-replace-supers": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz",
- "integrity": "sha512-SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz",
+ "integrity": "sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==",
"requires": {
- "@babel/helper-member-expression-to-functions": "^7.10.1",
- "@babel/helper-optimise-call-expression": "^7.10.1",
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-member-expression-to-functions": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helper-simple-access": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz",
- "integrity": "sha512-VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz",
+ "integrity": "sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==",
"requires": {
- "@babel/template": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/template": "^7.10.4",
+ "@babel/types": "^7.10.4"
+ }
+ },
+ "@babel/helper-skip-transparent-expression-wrappers": {
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz",
+ "integrity": "sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==",
+ "requires": {
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-split-export-declaration": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz",
- "integrity": "sha512-UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz",
+ "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==",
"requires": {
- "@babel/types": "^7.10.1"
+ "@babel/types": "^7.11.0"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz",
- "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw=="
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw=="
},
"@babel/helper-wrap-function": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz",
- "integrity": "sha512-C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz",
+ "integrity": "sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==",
"requires": {
- "@babel/helper-function-name": "^7.10.1",
- "@babel/template": "^7.10.1",
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/helpers": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz",
- "integrity": "sha512-muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz",
+ "integrity": "sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==",
"requires": {
- "@babel/template": "^7.10.1",
- "@babel/traverse": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/template": "^7.10.4",
+ "@babel/traverse": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/highlight": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz",
- "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
"requires": {
- "@babel/helper-validator-identifier": "^7.10.1",
+ "@babel/helper-validator-identifier": "^7.10.4",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
},
@@ -341,27 +348,27 @@
}
},
"@babel/parser": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz",
- "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ=="
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.0.tgz",
+ "integrity": "sha512-qvRvi4oI8xii8NllyEc4MDJjuZiNaRzyb7Y7lup1NqJV8TZHF4O27CcP+72WPn/k1zkgJ6WJfnIbk4jTsVAZHw=="
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz",
- "integrity": "sha512-vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz",
+ "integrity": "sha512-cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-remap-async-to-generator": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-remap-async-to-generator": "^7.10.4",
"@babel/plugin-syntax-async-generators": "^7.8.0"
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz",
- "integrity": "sha512-sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz",
+ "integrity": "sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-create-class-features-plugin": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-proposal-decorators": {
@@ -375,85 +382,104 @@
}
},
"@babel/plugin-proposal-dynamic-import": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz",
- "integrity": "sha512-Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz",
+ "integrity": "sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.8.0"
}
},
- "@babel/plugin-proposal-json-strings": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz",
- "integrity": "sha512-m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==",
+ "@babel/plugin-proposal-export-namespace-from": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz",
+ "integrity": "sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3"
+ }
+ },
+ "@babel/plugin-proposal-json-strings": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz",
+ "integrity": "sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-json-strings": "^7.8.0"
}
},
- "@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz",
- "integrity": "sha512-56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==",
+ "@babel/plugin-proposal-logical-assignment-operators": {
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz",
+ "integrity": "sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
+ }
+ },
+ "@babel/plugin-proposal-nullish-coalescing-operator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz",
+ "integrity": "sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0"
}
},
"@babel/plugin-proposal-numeric-separator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz",
- "integrity": "sha512-jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-syntax-numeric-separator": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4"
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz",
- "integrity": "sha512-Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz",
+ "integrity": "sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
- "@babel/plugin-transform-parameters": "^7.10.1"
+ "@babel/plugin-transform-parameters": "^7.10.4"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz",
- "integrity": "sha512-VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz",
+ "integrity": "sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.0"
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz",
- "integrity": "sha512-dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz",
+ "integrity": "sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.0"
}
},
"@babel/plugin-proposal-private-methods": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz",
- "integrity": "sha512-RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz",
+ "integrity": "sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-create-class-features-plugin": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz",
- "integrity": "sha512-JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz",
+ "integrity": "sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-async-generators": {
@@ -465,19 +491,19 @@
}
},
"@babel/plugin-syntax-class-properties": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz",
- "integrity": "sha512-Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz",
+ "integrity": "sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-decorators": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.1.tgz",
- "integrity": "sha512-a9OAbQhKOwSle1Vr0NJu/ISg1sPfdEkfRKWpgPuzhnWWzForou2gIeUIIwjAMHRekhhpJ7eulZlYs0H14Cbi+g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz",
+ "integrity": "sha512-2NaoC6fAk2VMdhY1eerkfHV+lVYC1u8b+jmRJISqANCJlTxYy19HGdIkkQtix2UtkcPuPu+IlDgrVseZnU03bw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-dynamic-import": {
@@ -488,12 +514,20 @@
"@babel/helper-plugin-utils": "^7.8.0"
}
},
- "@babel/plugin-syntax-flow": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz",
- "integrity": "sha512-b3pWVncLBYoPP60UOTc7NMlbtsHQ6ITim78KQejNHK6WJ2mzV5kCcg4mIWpasAfJEgwVTibwo2e+FU7UEIKQUg==",
+ "@babel/plugin-syntax-export-namespace-from": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.8.3"
+ }
+ },
+ "@babel/plugin-syntax-flow": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz",
+ "integrity": "sha512-yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-json-strings": {
@@ -505,11 +539,19 @@
}
},
"@babel/plugin-syntax-jsx": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz",
- "integrity": "sha512-+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz",
+ "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
+ }
+ },
+ "@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-nullish-coalescing-operator": {
@@ -521,11 +563,11 @@
}
},
"@babel/plugin-syntax-numeric-separator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz",
- "integrity": "sha512-uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-object-rest-spread": {
@@ -553,111 +595,110 @@
}
},
"@babel/plugin-syntax-top-level-await": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz",
- "integrity": "sha512-hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz",
+ "integrity": "sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-syntax-typescript": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz",
- "integrity": "sha512-X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz",
+ "integrity": "sha512-oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz",
- "integrity": "sha512-6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz",
+ "integrity": "sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz",
- "integrity": "sha512-XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz",
+ "integrity": "sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==",
"requires": {
- "@babel/helper-module-imports": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-remap-async-to-generator": "^7.10.1"
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-remap-async-to-generator": "^7.10.4"
}
},
"@babel/plugin-transform-block-scoped-functions": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz",
- "integrity": "sha512-B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz",
+ "integrity": "sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz",
- "integrity": "sha512-8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.5.tgz",
+ "integrity": "sha512-6Ycw3hjpQti0qssQcA6AMSFDHeNJ++R6dIMnpRqUjFeBBTmTDPa8zgF90OVfTvAo11mXZTlVUViY1g8ffrURLg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "lodash": "^4.17.13"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz",
- "integrity": "sha512-P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz",
+ "integrity": "sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/helper-define-map": "^7.10.1",
- "@babel/helper-function-name": "^7.10.1",
- "@babel/helper-optimise-call-expression": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-replace-supers": "^7.10.1",
- "@babel/helper-split-export-declaration": "^7.10.1",
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-define-map": "^7.10.4",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-optimise-call-expression": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.10.4",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz",
- "integrity": "sha512-mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz",
+ "integrity": "sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz",
- "integrity": "sha512-V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz",
+ "integrity": "sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-dotall-regex": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz",
- "integrity": "sha512-19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz",
+ "integrity": "sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz",
- "integrity": "sha512-wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz",
+ "integrity": "sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-exponentiation-operator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz",
- "integrity": "sha512-lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz",
+ "integrity": "sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==",
"requires": {
- "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-flow-strip-types": {
@@ -670,199 +711,199 @@
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz",
- "integrity": "sha512-US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz",
+ "integrity": "sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-function-name": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz",
- "integrity": "sha512-//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz",
+ "integrity": "sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==",
"requires": {
- "@babel/helper-function-name": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-literals": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz",
- "integrity": "sha512-qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz",
+ "integrity": "sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-member-expression-literals": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz",
- "integrity": "sha512-UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz",
+ "integrity": "sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz",
- "integrity": "sha512-31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz",
+ "integrity": "sha512-elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==",
"requires": {
- "@babel/helper-module-transforms": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-module-transforms": "^7.10.5",
+ "@babel/helper-plugin-utils": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz",
- "integrity": "sha512-AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz",
+ "integrity": "sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==",
"requires": {
- "@babel/helper-module-transforms": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-simple-access": "^7.10.1",
+ "@babel/helper-module-transforms": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-simple-access": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz",
- "integrity": "sha512-ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz",
+ "integrity": "sha512-f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==",
"requires": {
- "@babel/helper-hoist-variables": "^7.10.1",
- "@babel/helper-module-transforms": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
+ "@babel/helper-hoist-variables": "^7.10.4",
+ "@babel/helper-module-transforms": "^7.10.5",
+ "@babel/helper-plugin-utils": "^7.10.4",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-umd": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz",
- "integrity": "sha512-EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz",
+ "integrity": "sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==",
"requires": {
- "@babel/helper-module-transforms": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-module-transforms": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz",
- "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz",
+ "integrity": "sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.8.3"
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4"
}
},
"@babel/plugin-transform-new-target": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz",
- "integrity": "sha512-MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz",
+ "integrity": "sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-object-super": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz",
- "integrity": "sha512-WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz",
+ "integrity": "sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-replace-supers": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-replace-supers": "^7.10.4"
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz",
- "integrity": "sha512-tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz",
+ "integrity": "sha512-xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==",
"requires": {
- "@babel/helper-get-function-arity": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-get-function-arity": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-property-literals": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz",
- "integrity": "sha512-Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz",
+ "integrity": "sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-react-constant-elements": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.1.tgz",
- "integrity": "sha512-V4os6bkWt/jbrzfyVcZn2ZpuHZkvj3vyBU0U/dtS8SZuMS7Rfx5oknTrtfyXJ2/QZk8gX7Yls5Z921ItNpE30Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz",
+ "integrity": "sha512-cYmQBW1pXrqBte1raMkAulXmi7rjg3VI6ZLg9QIic8Hq7BtYXaWuZSxsr2siOMI6SWwpxjWfnwhTUrd7JlAV7g==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-react-display-name": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.1.tgz",
- "integrity": "sha512-rBjKcVwjk26H3VX8pavMxGf33LNlbocMHdSeldIEswtQ/hrjyTG8fKKILW1cSkODyRovckN/uZlGb2+sAV9JUQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz",
+ "integrity": "sha512-Zd4X54Mu9SBfPGnEcaGcOrVAYOtjT2on8QZkLKEq1S/tHexG39d9XXGZv19VfRrDjPJzFmPfTAqOQS1pfFOujw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.1.tgz",
- "integrity": "sha512-MBVworWiSRBap3Vs39eHt+6pJuLUAaK4oxGc8g+wY+vuSJvLiEQjW1LSTqKb8OUPtDvHCkdPhk7d6sjC19xyFw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz",
+ "integrity": "sha512-L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==",
"requires": {
- "@babel/helper-builder-react-jsx": "^7.10.1",
- "@babel/helper-builder-react-jsx-experimental": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-syntax-jsx": "^7.10.1"
+ "@babel/helper-builder-react-jsx": "^7.10.4",
+ "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx-development": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.1.tgz",
- "integrity": "sha512-XwDy/FFoCfw9wGFtdn5Z+dHh6HXKHkC6DwKNWpN74VWinUagZfDcEJc3Y8Dn5B3WMVnAllX8Kviaw7MtC5Epwg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.10.4.tgz",
+ "integrity": "sha512-RM3ZAd1sU1iQ7rI2dhrZRZGv0aqzNQMbkIUCS1txYpi9wHQ2ZHNjo5TwX+UD6pvFW4AbWqLVYvKy5qJSAyRGjQ==",
"requires": {
- "@babel/helper-builder-react-jsx-experimental": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-syntax-jsx": "^7.10.1"
+ "@babel/helper-builder-react-jsx-experimental": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx-self": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.1.tgz",
- "integrity": "sha512-4p+RBw9d1qV4S749J42ZooeQaBomFPrSxa9JONLHJ1TxCBo3TzJ79vtmG2S2erUT8PDDrPdw4ZbXGr2/1+dILA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz",
+ "integrity": "sha512-yOvxY2pDiVJi0axdTWHSMi5T0DILN+H+SaeJeACHKjQLezEzhLx9nEF9xgpBLPtkZsks9cnb5P9iBEi21En3gg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-syntax-jsx": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-jsx-source": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.1.tgz",
- "integrity": "sha512-neAbaKkoiL+LXYbGDvh6PjPG+YeA67OsZlE78u50xbWh2L1/C81uHiNP5d1fw+uqUIoiNdCC8ZB+G4Zh3hShJA==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz",
+ "integrity": "sha512-wTeqHVkN1lfPLubRiZH3o73f4rfon42HpgxUSs86Nc+8QIcm/B9s8NNVXu/gwGcOyd7yDib9ikxoDLxJP0UiDA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-syntax-jsx": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-jsx": "^7.10.4"
}
},
"@babel/plugin-transform-react-pure-annotations": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.1.tgz",
- "integrity": "sha512-mfhoiai083AkeewsBHUpaS/FM1dmUENHBMpS/tugSJ7VXqXO5dCN1Gkint2YvM1Cdv1uhmAKt1ZOuAjceKmlLA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz",
+ "integrity": "sha512-+njZkqcOuS8RaPakrnR9KvxjoG1ASJWpoIv/doyWngId88JoFlPlISenGXjrVacZUIALGUr6eodRs1vmPnF23A==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz",
- "integrity": "sha512-B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz",
+ "integrity": "sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==",
"requires": {
"regenerator-transform": "^0.14.2"
}
},
"@babel/plugin-transform-reserved-words": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz",
- "integrity": "sha512-qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz",
+ "integrity": "sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-runtime": {
@@ -877,138 +918,143 @@
}
},
"@babel/plugin-transform-shorthand-properties": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz",
- "integrity": "sha512-AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz",
+ "integrity": "sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-spread": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz",
- "integrity": "sha512-8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz",
+ "integrity": "sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-skip-transparent-expression-wrappers": "^7.11.0"
}
},
"@babel/plugin-transform-sticky-regex": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz",
- "integrity": "sha512-j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz",
+ "integrity": "sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/helper-regex": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/helper-regex": "^7.10.4"
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz",
- "integrity": "sha512-t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==",
+ "version": "7.10.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz",
+ "integrity": "sha512-V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-annotate-as-pure": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz",
- "integrity": "sha512-qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz",
+ "integrity": "sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-typescript": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.1.tgz",
- "integrity": "sha512-v+QWKlmCnsaimLeqq9vyCsVRMViZG1k2SZTlcZvB+TqyH570Zsij8nvVUZzOASCRiQFUxkLrn9Wg/kH0zgy5OQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz",
+ "integrity": "sha512-edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==",
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-syntax-typescript": "^7.10.1"
+ "@babel/helper-create-class-features-plugin": "^7.10.5",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-syntax-typescript": "^7.10.4"
}
},
"@babel/plugin-transform-unicode-escapes": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz",
- "integrity": "sha512-zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz",
+ "integrity": "sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/plugin-transform-unicode-regex": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz",
- "integrity": "sha512-Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz",
+ "integrity": "sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==",
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1"
+ "@babel/helper-create-regexp-features-plugin": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4"
}
},
"@babel/preset-env": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz",
- "integrity": "sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz",
+ "integrity": "sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==",
"requires": {
- "@babel/compat-data": "^7.10.1",
- "@babel/helper-compilation-targets": "^7.10.2",
- "@babel/helper-module-imports": "^7.10.1",
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-proposal-async-generator-functions": "^7.10.1",
- "@babel/plugin-proposal-class-properties": "^7.10.1",
- "@babel/plugin-proposal-dynamic-import": "^7.10.1",
- "@babel/plugin-proposal-json-strings": "^7.10.1",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.1",
- "@babel/plugin-proposal-numeric-separator": "^7.10.1",
- "@babel/plugin-proposal-object-rest-spread": "^7.10.1",
- "@babel/plugin-proposal-optional-catch-binding": "^7.10.1",
- "@babel/plugin-proposal-optional-chaining": "^7.10.1",
- "@babel/plugin-proposal-private-methods": "^7.10.1",
- "@babel/plugin-proposal-unicode-property-regex": "^7.10.1",
+ "@babel/compat-data": "^7.11.0",
+ "@babel/helper-compilation-targets": "^7.10.4",
+ "@babel/helper-module-imports": "^7.10.4",
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-proposal-async-generator-functions": "^7.10.4",
+ "@babel/plugin-proposal-class-properties": "^7.10.4",
+ "@babel/plugin-proposal-dynamic-import": "^7.10.4",
+ "@babel/plugin-proposal-export-namespace-from": "^7.10.4",
+ "@babel/plugin-proposal-json-strings": "^7.10.4",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.11.0",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4",
+ "@babel/plugin-proposal-numeric-separator": "^7.10.4",
+ "@babel/plugin-proposal-object-rest-spread": "^7.11.0",
+ "@babel/plugin-proposal-optional-catch-binding": "^7.10.4",
+ "@babel/plugin-proposal-optional-chaining": "^7.11.0",
+ "@babel/plugin-proposal-private-methods": "^7.10.4",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.10.4",
"@babel/plugin-syntax-async-generators": "^7.8.0",
- "@babel/plugin-syntax-class-properties": "^7.10.1",
+ "@babel/plugin-syntax-class-properties": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.8.0",
+ "@babel/plugin-syntax-export-namespace-from": "^7.8.3",
"@babel/plugin-syntax-json-strings": "^7.8.0",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0",
- "@babel/plugin-syntax-numeric-separator": "^7.10.1",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
"@babel/plugin-syntax-object-rest-spread": "^7.8.0",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.0",
- "@babel/plugin-syntax-top-level-await": "^7.10.1",
- "@babel/plugin-transform-arrow-functions": "^7.10.1",
- "@babel/plugin-transform-async-to-generator": "^7.10.1",
- "@babel/plugin-transform-block-scoped-functions": "^7.10.1",
- "@babel/plugin-transform-block-scoping": "^7.10.1",
- "@babel/plugin-transform-classes": "^7.10.1",
- "@babel/plugin-transform-computed-properties": "^7.10.1",
- "@babel/plugin-transform-destructuring": "^7.10.1",
- "@babel/plugin-transform-dotall-regex": "^7.10.1",
- "@babel/plugin-transform-duplicate-keys": "^7.10.1",
- "@babel/plugin-transform-exponentiation-operator": "^7.10.1",
- "@babel/plugin-transform-for-of": "^7.10.1",
- "@babel/plugin-transform-function-name": "^7.10.1",
- "@babel/plugin-transform-literals": "^7.10.1",
- "@babel/plugin-transform-member-expression-literals": "^7.10.1",
- "@babel/plugin-transform-modules-amd": "^7.10.1",
- "@babel/plugin-transform-modules-commonjs": "^7.10.1",
- "@babel/plugin-transform-modules-systemjs": "^7.10.1",
- "@babel/plugin-transform-modules-umd": "^7.10.1",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3",
- "@babel/plugin-transform-new-target": "^7.10.1",
- "@babel/plugin-transform-object-super": "^7.10.1",
- "@babel/plugin-transform-parameters": "^7.10.1",
- "@babel/plugin-transform-property-literals": "^7.10.1",
- "@babel/plugin-transform-regenerator": "^7.10.1",
- "@babel/plugin-transform-reserved-words": "^7.10.1",
- "@babel/plugin-transform-shorthand-properties": "^7.10.1",
- "@babel/plugin-transform-spread": "^7.10.1",
- "@babel/plugin-transform-sticky-regex": "^7.10.1",
- "@babel/plugin-transform-template-literals": "^7.10.1",
- "@babel/plugin-transform-typeof-symbol": "^7.10.1",
- "@babel/plugin-transform-unicode-escapes": "^7.10.1",
- "@babel/plugin-transform-unicode-regex": "^7.10.1",
+ "@babel/plugin-syntax-top-level-await": "^7.10.4",
+ "@babel/plugin-transform-arrow-functions": "^7.10.4",
+ "@babel/plugin-transform-async-to-generator": "^7.10.4",
+ "@babel/plugin-transform-block-scoped-functions": "^7.10.4",
+ "@babel/plugin-transform-block-scoping": "^7.10.4",
+ "@babel/plugin-transform-classes": "^7.10.4",
+ "@babel/plugin-transform-computed-properties": "^7.10.4",
+ "@babel/plugin-transform-destructuring": "^7.10.4",
+ "@babel/plugin-transform-dotall-regex": "^7.10.4",
+ "@babel/plugin-transform-duplicate-keys": "^7.10.4",
+ "@babel/plugin-transform-exponentiation-operator": "^7.10.4",
+ "@babel/plugin-transform-for-of": "^7.10.4",
+ "@babel/plugin-transform-function-name": "^7.10.4",
+ "@babel/plugin-transform-literals": "^7.10.4",
+ "@babel/plugin-transform-member-expression-literals": "^7.10.4",
+ "@babel/plugin-transform-modules-amd": "^7.10.4",
+ "@babel/plugin-transform-modules-commonjs": "^7.10.4",
+ "@babel/plugin-transform-modules-systemjs": "^7.10.4",
+ "@babel/plugin-transform-modules-umd": "^7.10.4",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.10.4",
+ "@babel/plugin-transform-new-target": "^7.10.4",
+ "@babel/plugin-transform-object-super": "^7.10.4",
+ "@babel/plugin-transform-parameters": "^7.10.4",
+ "@babel/plugin-transform-property-literals": "^7.10.4",
+ "@babel/plugin-transform-regenerator": "^7.10.4",
+ "@babel/plugin-transform-reserved-words": "^7.10.4",
+ "@babel/plugin-transform-shorthand-properties": "^7.10.4",
+ "@babel/plugin-transform-spread": "^7.11.0",
+ "@babel/plugin-transform-sticky-regex": "^7.10.4",
+ "@babel/plugin-transform-template-literals": "^7.10.4",
+ "@babel/plugin-transform-typeof-symbol": "^7.10.4",
+ "@babel/plugin-transform-unicode-escapes": "^7.10.4",
+ "@babel/plugin-transform-unicode-regex": "^7.10.4",
"@babel/preset-modules": "^0.1.3",
- "@babel/types": "^7.10.2",
+ "@babel/types": "^7.11.0",
"browserslist": "^4.12.0",
"core-js-compat": "^3.6.2",
"invariant": "^2.2.2",
@@ -1029,17 +1075,17 @@
}
},
"@babel/preset-react": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.1.tgz",
- "integrity": "sha512-Rw0SxQ7VKhObmFjD/cUcKhPTtzpeviEFX1E6PgP+cYOhQ98icNqtINNFANlsdbQHrmeWnqdxA4Tmnl1jy5tp3Q==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.10.4.tgz",
+ "integrity": "sha512-BrHp4TgOIy4M19JAfO1LhycVXOPWdDbTRep7eVyatf174Hff+6Uk53sDyajqZPu8W1qXRBiYOfIamek6jA7YVw==",
"requires": {
- "@babel/helper-plugin-utils": "^7.10.1",
- "@babel/plugin-transform-react-display-name": "^7.10.1",
- "@babel/plugin-transform-react-jsx": "^7.10.1",
- "@babel/plugin-transform-react-jsx-development": "^7.10.1",
- "@babel/plugin-transform-react-jsx-self": "^7.10.1",
- "@babel/plugin-transform-react-jsx-source": "^7.10.1",
- "@babel/plugin-transform-react-pure-annotations": "^7.10.1"
+ "@babel/helper-plugin-utils": "^7.10.4",
+ "@babel/plugin-transform-react-display-name": "^7.10.4",
+ "@babel/plugin-transform-react-jsx": "^7.10.4",
+ "@babel/plugin-transform-react-jsx-development": "^7.10.4",
+ "@babel/plugin-transform-react-jsx-self": "^7.10.4",
+ "@babel/plugin-transform-react-jsx-source": "^7.10.4",
+ "@babel/plugin-transform-react-pure-annotations": "^7.10.4"
}
},
"@babel/preset-typescript": {
@@ -1052,55 +1098,55 @@
}
},
"@babel/runtime": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz",
- "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.0.tgz",
+ "integrity": "sha512-qArkXsjJq7H+T86WrIFV0Fnu/tNOkZ4cgXmjkzAu3b/58D5mFIO8JH/y77t7C9q0OdDRdh9s7Ue5GasYssxtXw==",
"requires": {
"regenerator-runtime": "^0.13.4"
}
},
"@babel/runtime-corejs3": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz",
- "integrity": "sha512-+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.0.tgz",
+ "integrity": "sha512-K0ioacsw8JgzDSPpUiGWokMvLzGvnZPXLrTsJfyHPrFsnp4yoKn+Ap/8NNZgWKZG9o5+qotH8tAa8AXn8gTN5A==",
"requires": {
"core-js-pure": "^3.0.0",
"regenerator-runtime": "^0.13.4"
}
},
"@babel/template": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz",
- "integrity": "sha512-OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz",
+ "integrity": "sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==",
"requires": {
- "@babel/code-frame": "^7.10.1",
- "@babel/parser": "^7.10.1",
- "@babel/types": "^7.10.1"
+ "@babel/code-frame": "^7.10.4",
+ "@babel/parser": "^7.10.4",
+ "@babel/types": "^7.10.4"
}
},
"@babel/traverse": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz",
- "integrity": "sha512-C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz",
+ "integrity": "sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==",
"requires": {
- "@babel/code-frame": "^7.10.1",
- "@babel/generator": "^7.10.1",
- "@babel/helper-function-name": "^7.10.1",
- "@babel/helper-split-export-declaration": "^7.10.1",
- "@babel/parser": "^7.10.1",
- "@babel/types": "^7.10.1",
+ "@babel/code-frame": "^7.10.4",
+ "@babel/generator": "^7.11.0",
+ "@babel/helper-function-name": "^7.10.4",
+ "@babel/helper-split-export-declaration": "^7.11.0",
+ "@babel/parser": "^7.11.0",
+ "@babel/types": "^7.11.0",
"debug": "^4.1.0",
"globals": "^11.1.0",
- "lodash": "^4.17.13"
+ "lodash": "^4.17.19"
}
},
"@babel/types": {
- "version": "7.10.2",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz",
- "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==",
+ "version": "7.11.0",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz",
+ "integrity": "sha512-O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==",
"requires": {
- "@babel/helper-validator-identifier": "^7.10.1",
- "lodash": "^4.17.13",
+ "@babel/helper-validator-identifier": "^7.10.4",
+ "lodash": "^4.17.19",
"to-fast-properties": "^2.0.0"
}
},
@@ -1673,9 +1719,9 @@
}
},
"@types/babel__core": {
- "version": "7.1.8",
- "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.8.tgz",
- "integrity": "sha512-KXBiQG2OXvaPWFPDS1rD8yV9vO0OuWIqAEqLsbfX0oU2REN5KuoMnZ1gClWcBhO5I3n6oTVAmrMufOvRqdmFTQ==",
+ "version": "7.1.9",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz",
+ "integrity": "sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==",
"requires": {
"@babel/parser": "^7.1.0",
"@babel/types": "^7.0.0",
@@ -1702,9 +1748,9 @@
}
},
"@types/babel__traverse": {
- "version": "7.0.12",
- "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.12.tgz",
- "integrity": "sha512-t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA==",
+ "version": "7.0.13",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz",
+ "integrity": "sha512-i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==",
"requires": {
"@babel/types": "^7.3.0"
}
@@ -1720,18 +1766,18 @@
"integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag=="
},
"@types/glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==",
+ "version": "7.1.3",
+ "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz",
+ "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==",
"requires": {
"@types/minimatch": "*",
"@types/node": "*"
}
},
"@types/istanbul-lib-coverage": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.2.tgz",
- "integrity": "sha512-rsZg7eL+Xcxsxk2XlBt9KcG8nOp9iYdKCOikY9x2RFJCyOdNj4MKPQty0e8oZr29vVAzKXr1BmR+kZauti3o1w=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
+ "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw=="
},
"@types/istanbul-lib-report": {
"version": "3.0.0",
@@ -1751,9 +1797,9 @@
}
},
"@types/json-schema": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz",
- "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA=="
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz",
+ "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ=="
},
"@types/json5": {
"version": "0.0.29",
@@ -1767,9 +1813,9 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
},
"@types/node": {
- "version": "14.0.11",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.11.tgz",
- "integrity": "sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg=="
+ "version": "14.0.27",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz",
+ "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g=="
},
"@types/parse-json": {
"version": "4.0.0",
@@ -2022,9 +2068,9 @@
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
},
"abab": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
- "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz",
+ "integrity": "sha512-Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ=="
},
"abbrev": {
"version": "1.1.1",
@@ -2041,9 +2087,9 @@
}
},
"acorn": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
- "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ=="
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
+ "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w=="
},
"acorn-globals": {
"version": "4.3.4",
@@ -2140,9 +2186,9 @@
}
},
"ajv": {
- "version": "6.12.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
- "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+ "version": "6.12.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+ "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
"requires": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -2156,9 +2202,9 @@
"integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ=="
},
"ajv-keywords": {
- "version": "3.4.1",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz",
- "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ=="
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ=="
},
"alphanum-sort": {
"version": "1.0.2",
@@ -2317,6 +2363,17 @@
"es-abstract": "^1.17.0-next.1"
}
},
+ "array.prototype.flatmap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz",
+ "integrity": "sha512-OOEk+lkePcg+ODXIpvuU9PAryCikCJyo7GlDG1upleEpQRx6mzL9puEBkozQ5iAx20KV0l3DbyQwqciJtqe5Pg==",
+ "dev": true,
+ "requires": {
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.17.0-next.1",
+ "function-bind": "^1.1.1"
+ }
+ },
"arraybuffer.slice": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz",
@@ -2419,50 +2476,22 @@
"integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
},
"attr-accept": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.1.0.tgz",
- "integrity": "sha512-sLzVM3zCCmmDtDNhI0i96k6PUztkotSOXqE4kDGQt/6iDi5M+H0srjeF+QC6jN581l4X/Zq3Zu/tgcErEssavg=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/attr-accept/-/attr-accept-2.2.0.tgz",
+ "integrity": "sha512-Tee7K1V8BPZ3OS74UBk3I3e5wfSikSvjy2hb5UvnCJauA8gkg5MENw4dILT018rB3Lze1a3m93lhtJk7xFuAPQ=="
},
"autoprefixer": {
- "version": "9.8.0",
- "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz",
- "integrity": "sha512-D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A==",
+ "version": "9.8.6",
+ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz",
+ "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==",
"requires": {
"browserslist": "^4.12.0",
- "caniuse-lite": "^1.0.30001061",
- "chalk": "^2.4.2",
+ "caniuse-lite": "^1.0.30001109",
+ "colorette": "^1.2.1",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
- "postcss": "^7.0.30",
+ "postcss": "^7.0.32",
"postcss-value-parser": "^4.1.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
}
},
"aws-sign2": {
@@ -2475,10 +2504,16 @@
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
"integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
},
+ "axe-core": {
+ "version": "3.5.5",
+ "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-3.5.5.tgz",
+ "integrity": "sha512-5P0QZ6J5xGikH780pghEdbEKijCTrruK9KxtPZCFWUpef0f6GipO+xEZ5GKCb020mmqgbiNO6TcA55CriL784Q==",
+ "dev": true
+ },
"axobject-query": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.1.2.tgz",
- "integrity": "sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ=="
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz",
+ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA=="
},
"babel-code-frame": {
"version": "6.26.0",
@@ -2648,9 +2683,9 @@
}
},
"parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
"requires": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -2992,9 +3027,9 @@
"integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ=="
},
"binary-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
- "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ=="
},
"bindings": {
"version": "1.5.0",
@@ -3241,14 +3276,14 @@
}
},
"browserslist": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz",
- "integrity": "sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==",
+ "version": "4.13.0",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.13.0.tgz",
+ "integrity": "sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ==",
"requires": {
- "caniuse-lite": "^1.0.30001043",
- "electron-to-chromium": "^1.3.413",
- "node-releases": "^1.1.53",
- "pkg-up": "^2.0.0"
+ "caniuse-lite": "^1.0.30001093",
+ "electron-to-chromium": "^1.3.488",
+ "escalade": "^3.0.1",
+ "node-releases": "^1.1.58"
}
},
"bser": {
@@ -3416,9 +3451,9 @@
}
},
"caniuse-lite": {
- "version": "1.0.30001079",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001079.tgz",
- "integrity": "sha512-2KaYheg0iOY+CMmDuAB3DHehrXhhb4OZU4KBVGDr/YKyYAcpudaiUQ9PJ9rxrPlKEoJ3ATasQ5AN48MqpwS43Q=="
+ "version": "1.0.30001109",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001109.tgz",
+ "integrity": "sha512-4JIXRodHzdS3HdK8nSgIqXYLExOvG+D2/EenSvcub2Kp3QEADjo2v2oUn5g0n0D+UNwG9BtwKOyGcSq2qvQXvQ=="
},
"capture-exit": {
"version": "2.0.0",
@@ -3471,9 +3506,9 @@
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
},
"chokidar": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
- "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz",
+ "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==",
"requires": {
"anymatch": "~3.1.1",
"braces": "~3.0.2",
@@ -3612,9 +3647,9 @@
}
},
"cli-width": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
- "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw=="
},
"cliui": {
"version": "5.0.0",
@@ -3668,6 +3703,11 @@
"shallow-clone": "^0.1.2"
}
},
+ "clsx": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz",
+ "integrity": "sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA=="
+ },
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
@@ -3761,6 +3801,11 @@
"simple-swizzle": "^0.2.2"
}
},
+ "colorette": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
+ "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
+ },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -4424,9 +4469,9 @@
}
},
"date-fns": {
- "version": "2.14.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.14.0.tgz",
- "integrity": "sha512-1zD+68jhFgDIM0rF05rcwYO8cExdNqxjq4xP1QKM60Q45mnO6zaMWB4tOzrIr4M4GSLntsKeE4c9Bdl2jhL/yw=="
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.15.0.tgz",
+ "integrity": "sha512-ZCPzAMJZn3rNUvvQIMlXhDr4A+Ar07eLeGsGREoWU19a3Pqf5oYa+ccd+B3F6XVtQY6HANMFdOQ8A+ipFnvJdQ=="
},
"debug": {
"version": "4.1.1",
@@ -4589,9 +4634,9 @@
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"dequal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dequal/-/dequal-1.0.0.tgz",
- "integrity": "sha512-/Nd1EQbQbI9UbSHrMiKZjFLrXSnU328iQdZKPQf78XQI6C+gutkFUeoHpG5J08Ioa6HeRbRNFpSIclh1xyG0mw=="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dequal/-/dequal-1.0.1.tgz",
+ "integrity": "sha512-Fx8jxibzkJX2aJgyfSdLhr9tlRoTnHKrRJuu2XHlAgKioN2j19/Bcbe0d4mFXYZ3+wpE2KVobUVTfDutcD17xQ=="
},
"des.js": {
"version": "1.0.1",
@@ -4828,14 +4873,14 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
- "version": "1.3.464",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.464.tgz",
- "integrity": "sha512-Oo+0+CN9d2z6FToQW6Hwvi9ez09Y/usKwr0tsDsyg43a871zVJCi1nR0v03djLbRNcaCKjtrnVf2XJhTxEpPCg=="
+ "version": "1.3.517",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.517.tgz",
+ "integrity": "sha512-8wucrMsmXxeBxaM3TPg+YiwIJwPd1IZMudOj1XytmkP3UPXRagMhO9vo4nzzbSWeq91N1zhfUhJW2u9/MVhPxw=="
},
"elliptic": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz",
- "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==",
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz",
+ "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==",
"requires": {
"bn.js": "^4.4.0",
"brorand": "^1.0.1",
@@ -4917,9 +4962,9 @@
}
},
"enhanced-resolve": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz",
- "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz",
+ "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==",
"requires": {
"graceful-fs": "^4.1.2",
"memory-fs": "^0.5.0",
@@ -4959,21 +5004,21 @@
}
},
"es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
"object-inspect": "^1.7.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
}
},
"es-to-primitive": {
@@ -5015,6 +5060,11 @@
"ext": "^1.1.2"
}
},
+ "escalade": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz",
+ "integrity": "sha512-gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ=="
+ },
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -5026,9 +5076,9 @@
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
},
"escodegen": {
- "version": "1.14.2",
- "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.2.tgz",
- "integrity": "sha512-InuOIiKk8wwuOFg6x9BQXbzjrQhtyXh46K9bqVTPzSo2FnyMBaYGBMC6PhQy7yxxil9vIedFBweQBMK74/7o8A==",
+ "version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
"requires": {
"esprima": "^4.0.1",
"estraverse": "^4.2.0",
@@ -5190,25 +5240,25 @@
}
},
"eslint-config-airbnb": {
- "version": "18.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.1.0.tgz",
- "integrity": "sha512-kZFuQC/MPnH7KJp6v95xsLBf63G/w7YqdPfQ0MUanxQ7zcKUNG8j+sSY860g3NwCBOa62apw16J6pRN+AOgXzw==",
+ "version": "18.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-18.2.0.tgz",
+ "integrity": "sha512-Fz4JIUKkrhO0du2cg5opdyPKQXOI2MvF8KUvN2710nJMT6jaRUpRE2swrJftAjVGL7T1otLM5ieo5RqS1v9Udg==",
"dev": true,
"requires": {
- "eslint-config-airbnb-base": "^14.1.0",
+ "eslint-config-airbnb-base": "^14.2.0",
"object.assign": "^4.1.0",
- "object.entries": "^1.1.1"
+ "object.entries": "^1.1.2"
}
},
"eslint-config-airbnb-base": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz",
- "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz",
+ "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==",
"dev": true,
"requires": {
"confusing-browser-globals": "^1.0.9",
"object.assign": "^4.1.0",
- "object.entries": "^1.1.1"
+ "object.entries": "^1.1.2"
}
},
"eslint-config-prettier": {
@@ -5237,9 +5287,9 @@
}
},
"eslint-import-resolver-node": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
- "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
+ "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
"requires": {
"debug": "^2.6.9",
"resolve": "^1.13.1"
@@ -5356,9 +5406,9 @@
}
},
"eslint-plugin-import": {
- "version": "2.21.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.1.tgz",
- "integrity": "sha512-qYOOsgUv63vHof7BqbzuD+Ud34bXHxFJxntuAC1ZappFZXYbRIek3aJ7jc9i2dHDGDyZ/0zlO0cpioES265Lsw==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
+ "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
"dev": true,
"requires": {
"array-includes": "^3.1.1",
@@ -5501,47 +5551,68 @@
}
},
"eslint-plugin-jsx-a11y": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
- "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.3.1.tgz",
+ "integrity": "sha512-i1S+P+c3HOlBJzMFORRbC58tHa65Kbo8b52/TwCwSKLohwvpfT5rm2GjGWzOHTEuq4xxf2aRlHHTtmExDQOP+g==",
+ "dev": true,
"requires": {
- "@babel/runtime": "^7.4.5",
- "aria-query": "^3.0.0",
- "array-includes": "^3.0.3",
+ "@babel/runtime": "^7.10.2",
+ "aria-query": "^4.2.2",
+ "array-includes": "^3.1.1",
"ast-types-flow": "^0.0.7",
- "axobject-query": "^2.0.2",
- "damerau-levenshtein": "^1.0.4",
- "emoji-regex": "^7.0.2",
+ "axe-core": "^3.5.4",
+ "axobject-query": "^2.1.2",
+ "damerau-levenshtein": "^1.0.6",
+ "emoji-regex": "^9.0.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.2.1"
+ "jsx-ast-utils": "^2.4.1",
+ "language-tags": "^1.0.5"
+ },
+ "dependencies": {
+ "aria-query": {
+ "version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz",
+ "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==",
+ "dev": true,
+ "requires": {
+ "@babel/runtime": "^7.10.2",
+ "@babel/runtime-corejs3": "^7.10.2"
+ }
+ },
+ "emoji-regex": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.0.0.tgz",
+ "integrity": "sha512-6p1NII1Vm62wni/VR/cUMauVQoxmLVb9csqQlvLz+hO2gk8U2UYDfXHQSUYIBKmZwAKz867IDqG7B+u0mj+M6w==",
+ "dev": true
+ }
}
},
"eslint-plugin-prettier": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz",
- "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz",
+ "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
},
"eslint-plugin-react": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.0.tgz",
- "integrity": "sha512-rqe1abd0vxMjmbPngo4NaYxTcR3Y4Hrmc/jg4T+sYz63yqlmJRknpEQfmWY+eDWPuMmix6iUIK+mv0zExjeLgA==",
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.20.5.tgz",
+ "integrity": "sha512-ajbJfHuFnpVNJjhyrfq+pH1C0gLc2y94OiCbAXT5O0J0YCKaFEHDV8+3+mDOr+w8WguRX+vSs1bM2BDG0VLvCw==",
"dev": true,
"requires": {
"array-includes": "^3.1.1",
+ "array.prototype.flatmap": "^1.2.3",
"doctrine": "^2.1.0",
"has": "^1.0.3",
- "jsx-ast-utils": "^2.2.3",
- "object.entries": "^1.1.1",
+ "jsx-ast-utils": "^2.4.1",
+ "object.entries": "^1.1.2",
"object.fromentries": "^2.0.2",
"object.values": "^1.1.1",
"prop-types": "^15.7.2",
- "resolve": "^1.15.1",
- "string.prototype.matchall": "^4.0.2",
- "xregexp": "^4.3.0"
+ "resolve": "^1.17.0",
+ "string.prototype.matchall": "^4.0.2"
},
"dependencies": {
"doctrine": {
@@ -5556,9 +5627,9 @@
}
},
"eslint-plugin-react-hooks": {
- "version": "4.0.4",
- "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.4.tgz",
- "integrity": "sha512-equAdEIsUETLFNCmmCkiCGq6rkSK5MoJhXFPFYeUebcjKgBmWWcgVOqZyQC8Bv1BwVCnTq9tBxgJFgAJTWoJtA==",
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.0.8.tgz",
+ "integrity": "sha512-6SSb5AiMCPd8FDJrzah+Z4F44P2CdOaK026cXFV+o/xSRzfOiV1FNFeLl2z6xm3yqWOQEZ5OfVgiec90qV2xrQ==",
"dev": true
},
"eslint-scope": {
@@ -5571,17 +5642,17 @@
}
},
"eslint-utils": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz",
- "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"requires": {
"eslint-visitor-keys": "^1.1.0"
}
},
"eslint-visitor-keys": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz",
- "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ=="
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ=="
},
"espree": {
"version": "6.2.1",
@@ -5642,9 +5713,9 @@
"integrity": "sha512-rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ=="
},
"events": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/events/-/events-3.1.0.tgz",
- "integrity": "sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg=="
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz",
+ "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="
},
"eventsource": {
"version": "1.0.7",
@@ -6188,22 +6259,9 @@
}
},
"follow-redirects": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz",
- "integrity": "sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==",
- "requires": {
- "debug": "^3.0.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.2.6",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
- "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
- "requires": {
- "ms": "^2.1.1"
- }
- }
- }
+ "version": "1.12.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.12.1.tgz",
+ "integrity": "sha512-tmRv0AVuR7ZyouUHLeNSiO6pqulF7dYa3s19c6t+wz9LD69/uSzdMxJ2S91nTI9U3rt/IldxpzMOFejp6f0hjg=="
},
"for-in": {
"version": "1.0.2",
@@ -6516,12 +6574,12 @@
}
},
"globule": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.1.tgz",
- "integrity": "sha512-OVyWOHgw29yosRHCHo7NncwR1hW5ew0W/UrvtwvjefVJeQ26q4/8r8FmPsSF1hJ93IgWkyv16pCTz6WblMzm/g==",
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz",
+ "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==",
"requires": {
"glob": "~7.1.1",
- "lodash": "~4.17.12",
+ "lodash": "~4.17.10",
"minimatch": "~3.0.2"
}
},
@@ -6567,11 +6625,11 @@
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator": {
- "version": "5.1.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
- "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
"requires": {
- "ajv": "^6.5.5",
+ "ajv": "^6.12.3",
"har-schema": "^2.0.0"
}
},
@@ -6927,17 +6985,17 @@
"integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM="
},
"i18next": {
- "version": "19.4.5",
- "resolved": "https://registry.npmjs.org/i18next/-/i18next-19.4.5.tgz",
- "integrity": "sha512-aLvSsURoupi3x9IndmV6+m3IGhzLzhYv7Gw+//K3ovdliyGcFRV0I1MuddI0Bk/zR7BG1U+kJOjeHFUcUIdEgg==",
+ "version": "19.6.3",
+ "resolved": "https://registry.npmjs.org/i18next/-/i18next-19.6.3.tgz",
+ "integrity": "sha512-eYr98kw/C5z6kY21ti745p4IvbOJwY8F2T9tf/Lvy5lFnYRqE45+bppSgMPmcZZqYNT+xO0N0x6rexVR2wtZZQ==",
"requires": {
- "@babel/runtime": "^7.3.1"
+ "@babel/runtime": "^7.10.1"
}
},
"i18next-browser-languagedetector": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-4.2.0.tgz",
- "integrity": "sha512-qRSCBWgDUSqVQb3sTxkDC+ImYLhF+wB387Y1RpOcJvyex+V3abi+W83n4Awy+dx719AOBbKTy97FjrUGrAhbyw==",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-5.0.0.tgz",
+ "integrity": "sha512-ekeKbRvTOsSOABSEPHFqyb6Q37JagZXjkISgQKHP84t/VZRW/B3FMVz+tBNQDVdZLsEaOe8fuJpeZsw2TvWeVQ==",
"requires": {
"@babel/runtime": "^7.5.5"
}
@@ -7089,25 +7147,25 @@
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
"initials": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/initials/-/initials-3.1.0.tgz",
- "integrity": "sha512-kWcyG5epBl4Wxvz49eW8dZAYgexQKI9qu2WP0XogWCu9nzigV7DEKhrkrKzGjYoynguxpEyo22ZCBB+NgHWiGQ=="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/initials/-/initials-3.1.1.tgz",
+ "integrity": "sha512-imRkwIpCUer+w9NB41dTENhJrTQTGOJthRa3URF0O9+L7MOMBPmN8njwkiX4u8YnzxbjEp4Is0ohiW6NSA8ZCw=="
},
"inquirer": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
- "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
"requires": {
"ansi-escapes": "^4.2.1",
- "chalk": "^3.0.0",
+ "chalk": "^4.1.0",
"cli-cursor": "^3.1.0",
- "cli-width": "^2.0.0",
+ "cli-width": "^3.0.0",
"external-editor": "^3.0.3",
"figures": "^3.0.0",
- "lodash": "^4.17.15",
+ "lodash": "^4.17.19",
"mute-stream": "0.0.8",
"run-async": "^2.4.0",
- "rxjs": "^6.5.3",
+ "rxjs": "^6.6.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0",
"through": "^2.3.6"
@@ -7128,9 +7186,9 @@
}
},
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -7356,9 +7414,9 @@
"integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE="
},
"is-docker": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz",
- "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ=="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.0.tgz",
+ "integrity": "sha512-mB2WygGsSeoXtLKpSYzP6sa0Z9DyU9ZyKlnvuZWxCociaI0qsF8u12sR72DFTX236g1u6oWSWYFuUk09nGQEjg=="
},
"is-extendable": {
"version": "0.1.1",
@@ -8114,9 +8172,9 @@
}
},
"jest-pnp-resolver": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz",
- "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ=="
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz",
+ "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w=="
},
"jest-regex-util": {
"version": "24.9.0",
@@ -8587,9 +8645,9 @@
}
},
"js-base64": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz",
- "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ=="
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ=="
},
"js-tokens": {
"version": "4.0.0",
@@ -8726,9 +8784,9 @@
}
},
"jsx-ast-utils": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.3.0.tgz",
- "integrity": "sha512-3HNoc7nZ1hpZIKB3hJ7BlFRkzCx2BynRtfSwbkqZdpRdvAPsGMnzclPwrvDBS7/lalHTj21NwIeaEpysHBOudg==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
+ "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
"requires": {
"array-includes": "^3.1.1",
"object.assign": "^4.1.0"
@@ -8757,6 +8815,21 @@
"resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w=="
},
+ "language-subtag-registry": {
+ "version": "0.3.20",
+ "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.20.tgz",
+ "integrity": "sha512-KPMwROklF4tEx283Xw0pNKtfTj1gZ4UByp4EsIFWLgBavJltF4TiYPc39k06zSTsLzxTVXXDSpbwaQXaFB4Qeg==",
+ "dev": true
+ },
+ "language-tags": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz",
+ "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=",
+ "dev": true,
+ "requires": {
+ "language-subtag-registry": "~0.3.2"
+ }
+ },
"last-call-webpack-plugin": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz",
@@ -8894,9 +8967,9 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
@@ -9296,9 +9369,9 @@
}
},
"minipass-pipeline": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz",
- "integrity": "sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==",
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"requires": {
"minipass": "^3.0.0"
}
@@ -9441,9 +9514,9 @@
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"neo-async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
- "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw=="
},
"next-tick": {
"version": "1.0.0",
@@ -9568,9 +9641,9 @@
}
},
"node-releases": {
- "version": "1.1.58",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz",
- "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg=="
+ "version": "1.1.60",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz",
+ "integrity": "sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA=="
},
"node-sass": {
"version": "4.14.1",
@@ -9722,9 +9795,9 @@
"integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg=="
},
"object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
},
"object-is": {
"version": "1.1.2",
@@ -9840,17 +9913,17 @@
}
},
"onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz",
+ "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==",
"requires": {
"mimic-fn": "^2.1.0"
}
},
"open": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/open/-/open-7.0.4.tgz",
- "integrity": "sha512-brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-7.1.0.tgz",
+ "integrity": "sha512-lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==",
"requires": {
"is-docker": "^2.0.0",
"is-wsl": "^2.1.1"
@@ -10246,55 +10319,20 @@
}
},
"pkg-up": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz",
- "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=",
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
+ "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
"requires": {
- "find-up": "^2.1.0"
+ "find-up": "^3.0.0"
},
"dependencies": {
"find-up": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "requires": {
- "locate-path": "^2.0.0"
- }
- },
- "locate-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "requires": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
- "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
- "requires": {
- "p-try": "^1.0.0"
- }
- },
- "p-locate": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "requires": {
- "p-limit": "^1.1.0"
- }
- },
- "p-try": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
- "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M="
- },
- "path-exists": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
}
}
},
@@ -10317,13 +10355,13 @@
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ=="
},
"portfinder": {
- "version": "1.0.26",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz",
- "integrity": "sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==",
+ "version": "1.0.28",
+ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
+ "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==",
"requires": {
"async": "^2.6.2",
"debug": "^3.1.1",
- "mkdirp": "^0.5.1"
+ "mkdirp": "^0.5.5"
},
"dependencies": {
"debug": {
@@ -10867,14 +10905,14 @@
}
},
"postcss-modules-local-by-default": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz",
- "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==",
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz",
+ "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==",
"requires": {
"icss-utils": "^4.1.1",
- "postcss": "^7.0.16",
+ "postcss": "^7.0.32",
"postcss-selector-parser": "^6.0.2",
- "postcss-value-parser": "^4.0.0"
+ "postcss-value-parser": "^4.1.0"
}
},
"postcss-modules-scope": {
@@ -11359,11 +11397,6 @@
}
}
},
- "private": {
- "version": "0.1.8",
- "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
- "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
- },
"process": {
"version": "0.11.10",
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
@@ -11538,9 +11571,9 @@
"integrity": "sha512-VhlMZmGy6A6hrkJWHLNTGl5gtgMUm+xfGza6wbwnE914yeQ5Ybm18vgM734RZhMgfw4tacUrWseGZlpUrrakEQ=="
},
"ramda": {
- "version": "0.27.0",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz",
- "integrity": "sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA=="
+ "version": "0.27.1",
+ "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz",
+ "integrity": "sha512-PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw=="
},
"randombytes": {
"version": "2.1.0",
@@ -11625,9 +11658,9 @@
}
},
"react-datepicker": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-3.0.0.tgz",
- "integrity": "sha512-Yrxan1tERAiWS0EzitpiaiXOIz0APTUtV75uWbaS+jSaKoGCR6wUN2FDwr1ACGlnEoGhR9QQ2Vq3odnWtgJsOA==",
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/react-datepicker/-/react-datepicker-3.1.3.tgz",
+ "integrity": "sha512-4KbdWWAxa/AZJIDhQZwiBpZE9hCYZ4/gTVstdo9WEpFCsfh69xHklB/FZrR95mgkIU7ecU36V2eCuGgIO+ci0A==",
"requires": {
"classnames": "^2.2.6",
"date-fns": "^2.0.1",
@@ -11716,6 +11749,11 @@
}
}
},
+ "cli-width": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
+ "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
+ },
"cross-spawn": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz",
@@ -11748,16 +11786,6 @@
"requires": {
"locate-path": "^5.0.0",
"path-exists": "^4.0.0"
- },
- "dependencies": {
- "locate-path": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
- "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
- "requires": {
- "p-locate": "^4.1.0"
- }
- }
}
},
"inquirer": {
@@ -11818,6 +11846,14 @@
"json5": "^1.0.1"
}
},
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
"p-locate": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
@@ -11836,24 +11872,6 @@
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
},
- "pkg-up": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
- "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
- "requires": {
- "find-up": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "requires": {
- "locate-path": "^3.0.0"
- }
- }
- }
- },
"shebang-command": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
@@ -11915,9 +11933,9 @@
}
},
"react-dropzone": {
- "version": "11.0.1",
- "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.0.1.tgz",
- "integrity": "sha512-x/6wqRHaR8jsrNiu/boVMIPYuoxb83Vyfv77hO7/3ZRn8Pr+KH5onsCsB8MLBa3zdJl410C5FXPUINbu16XIzw==",
+ "version": "11.0.2",
+ "resolved": "https://registry.npmjs.org/react-dropzone/-/react-dropzone-11.0.2.tgz",
+ "integrity": "sha512-/Wde9Il1aJ1FtWllg3N2taIeJh4aftx6UGUG8R1TmLnZit2RnDcEjcKwEEbKwgLXTTh8QQpiZWQJq45jTy1jCA==",
"requires": {
"attr-accept": "^2.0.0",
"file-selector": "^0.1.12",
@@ -11930,9 +11948,9 @@
"integrity": "sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA=="
},
"react-i18next": {
- "version": "11.5.0",
- "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.5.0.tgz",
- "integrity": "sha512-V6rUT7MzYBdFCgUrhfr78FHRfnY3CFoR75ET9EP5Py5UPHKyaGiK1MvPx03TesLwsmIaVHlRFU/WLzqCedXevA==",
+ "version": "11.7.0",
+ "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-11.7.0.tgz",
+ "integrity": "sha512-8tvVkpuxQlubcszZON+jmoCgiA9gCZ74OAYli9KChPhETtq8pJsANBTe9KRLRLmX3ubumgvidURWr0VvKz1tww==",
"requires": {
"@babel/runtime": "^7.3.1",
"html-parse-stringify2": "2.0.1"
@@ -11987,9 +12005,9 @@
}
},
"react-redux": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.0.tgz",
- "integrity": "sha512-EvCAZYGfOLqwV7gh849xy9/pt55rJXPwmYvI4lilPM5rUT/1NxuuN59ipdBksRVSvz0KInbPnp4IfoXJXCqiDA==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-7.2.1.tgz",
+ "integrity": "sha512-T+VfD/bvgGTUA74iW9d2i5THrDQWbweXP0AVNI8tNd1Rk5ch1rnMiJkDD67ejw7YBKM4+REvcvqRuWJb7BLuEg==",
"requires": {
"@babel/runtime": "^7.5.5",
"hoist-non-react-statics": "^3.3.0",
@@ -12130,6 +12148,22 @@
"resolve": "^1.12.0"
}
},
+ "eslint-plugin-jsx-a11y": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz",
+ "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==",
+ "requires": {
+ "@babel/runtime": "^7.4.5",
+ "aria-query": "^3.0.0",
+ "array-includes": "^3.0.3",
+ "ast-types-flow": "^0.0.7",
+ "axobject-query": "^2.0.2",
+ "damerau-levenshtein": "^1.0.4",
+ "emoji-regex": "^7.0.2",
+ "has": "^1.0.3",
+ "jsx-ast-utils": "^2.2.1"
+ }
+ },
"eslint-plugin-react": {
"version": "7.19.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz",
@@ -12279,11 +12313,11 @@
}
},
"react-textarea-autosize": {
- "version": "8.0.1",
- "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.0.1.tgz",
- "integrity": "sha512-Qs7Lm17F0CIsWeDaUcHPpP22etVQHkayOcMgOXTfVasVToS6G+IL+5a7ECZtbDR2qTgTRIXjYcLmuZUuTX4tNA==",
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/react-textarea-autosize/-/react-textarea-autosize-8.2.0.tgz",
+ "integrity": "sha512-grajUlVbkx6VdtSxCgzloUIphIZF5bKr21OYMceWPKkniy7H0mRAT/AXPrRtObAe+zUePnNlBwUc4ivVjUGIjw==",
"requires": {
- "@babel/runtime": "^7.8.4",
+ "@babel/runtime": "^7.10.2",
"use-composed-ref": "^1.0.0",
"use-latest": "^1.0.0"
}
@@ -12412,17 +12446,16 @@
}
},
"regenerator-runtime": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
- "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA=="
+ "version": "0.13.7",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz",
+ "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew=="
},
"regenerator-transform": {
- "version": "0.14.4",
- "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz",
- "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==",
+ "version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz",
+ "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==",
"requires": {
- "@babel/runtime": "^7.8.4",
- "private": "^0.1.8"
+ "@babel/runtime": "^7.8.4"
}
},
"regex-not": {
@@ -12649,19 +12682,19 @@
}
},
"request-promise-core": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz",
- "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==",
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz",
+ "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
"requires": {
- "lodash": "^4.17.15"
+ "lodash": "^4.17.19"
}
},
"request-promise-native": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz",
- "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==",
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz",
+ "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==",
"requires": {
- "request-promise-core": "1.1.3",
+ "request-promise-core": "1.1.4",
"stealthy-require": "^1.1.1",
"tough-cookie": "^2.3.3"
}
@@ -12901,9 +12934,9 @@
}
},
"rxjs": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
- "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz",
+ "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -13060,20 +13093,20 @@
}
},
"semantic-ui-react": {
- "version": "0.88.2",
- "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-0.88.2.tgz",
- "integrity": "sha512-+02kN2z8PuA/cMdvDUsHhbJmBzxxgOXVHMFr9XK7zGb0wkW9A6OPQMFokWz7ozlVtKjN6r7zsb+Qvjk/qq1OWw==",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/semantic-ui-react/-/semantic-ui-react-1.1.1.tgz",
+ "integrity": "sha512-QtzLNkK4MUe1HQo4S7/tIkSp4NFtxSGDzTMKxmvztMJ6jt+nKGmMyjpyxJsrm3ohU8Z3sTyBUyiBsDYW4jNtjw==",
"requires": {
- "@babel/runtime": "^7.1.2",
+ "@babel/runtime": "^7.10.5",
"@semantic-ui-react/event-stack": "^3.1.0",
"@stardust-ui/react-component-event-listener": "~0.38.0",
"@stardust-ui/react-component-ref": "~0.38.0",
- "classnames": "^2.2.6",
- "keyboard-key": "^1.0.4",
- "lodash": "^4.17.15",
+ "clsx": "^1.1.1",
+ "keyboard-key": "^1.1.0",
+ "lodash": "^4.17.19",
"prop-types": "^15.7.2",
"react-is": "^16.8.6",
- "react-popper": "^1.3.4",
+ "react-popper": "^1.3.7",
"shallowequal": "^1.1.0"
}
},
@@ -13876,26 +13909,6 @@
"es-abstract": "^1.17.5"
}
},
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
- }
- },
"string.prototype.trimstart": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
@@ -13969,9 +13982,9 @@
}
},
"strip-json-comments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
- "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w=="
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"style-loader": {
"version": "0.23.1",
@@ -14141,9 +14154,9 @@
}
},
"terser": {
- "version": "4.7.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz",
- "integrity": "sha512-Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==",
+ "version": "4.8.0",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz",
+ "integrity": "sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==",
"requires": {
"commander": "^2.20.0",
"source-map": "~0.6.1",
@@ -14868,10 +14881,18 @@
"ts-essentials": "^2.0.3"
}
},
- "use-latest": {
+ "use-isomorphic-layout-effect": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.0.0.tgz",
- "integrity": "sha512-CxmFi75KTXeTIBlZq3LhJ4Hz98pCaRKZHCpnbiaEHIr5QnuHvH8lKYoluPBt/ik7j/hFVPB8K3WqF6mQvLyQTg=="
+ "resolved": "https://registry.npmjs.org/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.0.0.tgz",
+ "integrity": "sha512-JMwJ7Vd86NwAt1jH7q+OIozZSIxA4ND0fx6AsOe2q1H8ooBUp5aN6DvVCqZiIaYU6JaMRJGyR0FO7EBCIsb/Rg=="
+ },
+ "use-latest": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/use-latest/-/use-latest-1.1.0.tgz",
+ "integrity": "sha512-gF04d0ZMV3AMB8Q7HtfkAWe+oq1tFXP6dZKwBHQF5nVXtGsh2oAYeeqma5ZzxtlpOcW8Ro/tLcfmEodjDeqtuw==",
+ "requires": {
+ "use-isomorphic-layout-effect": "^1.0.0"
+ }
},
"use-memo-one": {
"version": "1.1.1",
@@ -14939,9 +14960,9 @@
}
},
"validator": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-13.0.0.tgz",
- "integrity": "sha512-anYx5fURbgF04lQV18nEQWZ/3wHGnxiKdG4aL8J+jEDsm98n/sU/bey+tYk6tnGJzm7ioh5FoqrAiQ6m03IgaA=="
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.1.1.tgz",
+ "integrity": "sha512-8GfPiwzzRoWTg7OV1zva1KvrSemuMkv07MA9TTl91hfhe+wKrsrgVN4H2QSFd/U/FhiU3iWPYVgvbsOGwhyFWw=="
},
"value-equal": {
"version": "1.0.1",
@@ -15037,11 +15058,11 @@
}
},
"watchpack": {
- "version": "1.7.2",
- "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz",
- "integrity": "sha512-ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==",
+ "version": "1.7.4",
+ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz",
+ "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==",
"requires": {
- "chokidar": "^3.4.0",
+ "chokidar": "^3.4.1",
"graceful-fs": "^4.1.2",
"neo-async": "^2.5.0",
"watchpack-chokidar2": "^2.0.0"
@@ -15649,9 +15670,9 @@
}
},
"whatwg-fetch": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz",
- "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q=="
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.2.0.tgz",
+ "integrity": "sha512-SdGPoQMMnzVYThUbSrEvqTlkvC1Ux27NehaJ/GUHBfNrh5Mjg+1/uRyFMwVnxO2MrikMWvWAqUGgQOfVU4hT7w=="
},
"whatwg-mimetype": {
"version": "2.3.0",
diff --git a/client/package.json b/client/package.json
index cc57a0b3..74ebf858 100755
--- a/client/package.json
+++ b/client/package.json
@@ -48,47 +48,47 @@
"dependencies": {
"classnames": "^2.2.6",
"connected-react-router": "^6.8.0",
- "date-fns": "^2.14.0",
- "dequal": "^1.0.0",
+ "date-fns": "^2.15.0",
+ "dequal": "^1.0.1",
"history": "^4.10.1",
- "i18next": "^19.4.5",
- "i18next-browser-languagedetector": "^4.2.0",
- "initials": "^3.1.0",
- "lodash": "^4.17.15",
+ "i18next": "^19.6.3",
+ "i18next-browser-languagedetector": "^5.0.0",
+ "initials": "^3.1.1",
+ "lodash": "^4.17.19",
"node-sass": "^4.14.1",
"prop-types": "^15.7.2",
"react": "^16.13.1",
"react-beautiful-dnd": "^13.0.0",
- "react-datepicker": "^3.0.0",
+ "react-datepicker": "^3.1.3",
"react-dom": "^16.13.1",
- "react-dropzone": "^11.0.1",
- "react-i18next": "^11.5.0",
+ "react-dropzone": "^11.0.2",
+ "react-i18next": "^11.7.0",
"react-input-mask": "^2.0.4",
"react-markdown": "^4.3.1",
- "react-redux": "^7.2.0",
+ "react-redux": "^7.2.1",
"react-router-dom": "^5.2.0",
"react-scripts": "3.4.1",
- "react-textarea-autosize": "^8.0.1",
+ "react-textarea-autosize": "^8.2.0",
"redux": "^4.0.5",
"redux-logger": "^3.0.6",
"redux-orm": "^0.16.1",
"redux-saga": "^1.1.3",
"reselect": "^4.0.0",
"sails.io.js": "^1.2.1",
- "semantic-ui-react": "^0.88.2",
+ "semantic-ui-react": "^1.1.1",
"socket.io-client": "^2.3.0",
- "validator": "^13.0.0",
- "whatwg-fetch": "^3.0.0"
+ "validator": "^13.1.1",
+ "whatwg-fetch": "^3.2.0"
},
"devDependencies": {
"eslint": "^6.8.0",
- "eslint-config-airbnb": "^18.1.0",
+ "eslint-config-airbnb": "^18.2.0",
"eslint-config-prettier": "^6.11.0",
- "eslint-plugin-import": "^2.21.1",
- "eslint-plugin-jsx-a11y": "^6.2.3",
- "eslint-plugin-prettier": "^3.1.3",
- "eslint-plugin-react": "^7.20.0",
- "eslint-plugin-react-hooks": "^4.0.4",
+ "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-jsx-a11y": "^6.3.1",
+ "eslint-plugin-prettier": "^3.1.4",
+ "eslint-plugin-react": "^7.20.5",
+ "eslint-plugin-react-hooks": "^4.0.8",
"prettier": "2.0.5"
}
}
diff --git a/client/src/actions/board.js b/client/src/actions/board.js
index 0f91ac43..acf3519e 100644
--- a/client/src/actions/board.js
+++ b/client/src/actions/board.js
@@ -70,8 +70,8 @@ export const fetchBoardRequested = (id) => ({
export const fetchBoardSucceeded = (
board,
- lists,
labels,
+ lists,
cards,
cardMemberships,
cardLabels,
@@ -81,8 +81,8 @@ export const fetchBoardSucceeded = (
type: ActionTypes.BOARD_FETCH_SUCCEEDED,
payload: {
board,
- lists,
labels,
+ lists,
cards,
cardMemberships,
cardLabels,
diff --git a/client/src/actions/entry/index.js b/client/src/actions/entry/index.js
index a6c6498b..39449483 100755
--- a/client/src/actions/entry/index.js
+++ b/client/src/actions/entry/index.js
@@ -4,8 +4,8 @@ export * from './user';
export * from './project';
export * from './project-membership';
export * from './board';
-export * from './list';
export * from './label';
+export * from './list';
export * from './card';
export * from './task';
export * from './attachment';
diff --git a/client/src/actions/entry/modal.js b/client/src/actions/entry/modal.js
index 533bddc8..f300dbb7 100755
--- a/client/src/actions/entry/modal.js
+++ b/client/src/actions/entry/modal.js
@@ -15,10 +15,10 @@ export const openUserSettingsModal = () => ({
},
});
-export const openAddProjectModal = () => ({
+export const openProjectAddModal = () => ({
type: EntryActionTypes.MODAL_OPEN,
payload: {
- type: ModalTypes.ADD_PROJECT,
+ type: ModalTypes.PROJECT_ADD,
},
});
diff --git a/client/src/actions/index.js b/client/src/actions/index.js
index ec0e807e..3e29ec5d 100644
--- a/client/src/actions/index.js
+++ b/client/src/actions/index.js
@@ -8,8 +8,8 @@ export * from './projects';
export * from './project';
export * from './project-membership';
export * from './board';
-export * from './list';
export * from './label';
+export * from './list';
export * from './card';
export * from './card-membership';
export * from './card-label';
diff --git a/client/src/api/cards.js b/client/src/api/cards.js
index 3a7ef149..edb808b1 100755
--- a/client/src/api/cards.js
+++ b/client/src/api/cards.js
@@ -35,8 +35,18 @@ export const transformCardData = (data) => ({
/* Actions */
-const createCard = (listId, data, headers) =>
- socket.post(`/lists/${listId}/cards`, transformCardData(data), headers).then((body) => ({
+const getCards = (boardId, data, headers) =>
+ socket.get(`/board/${boardId}/cards`, data, headers).then((body) => ({
+ ...body,
+ items: body.items.map(transformCard),
+ included: {
+ ...body.included,
+ attachments: body.included.attachments.map(transformAttachment),
+ },
+ }));
+
+const createCard = (boardId, data, headers) =>
+ socket.post(`/boards/${boardId}/cards`, transformCardData(data), headers).then((body) => ({
...body,
item: transformCard(body.item),
included: {
@@ -86,6 +96,7 @@ const makeHandleCardUpdate = (next) => (body) => {
const makeHandleCardDelete = makeHandleCardUpdate;
export default {
+ getCards,
createCard,
getCard,
updateCard,
diff --git a/client/src/api/index.js b/client/src/api/index.js
index 245a1dd8..9ed9a239 100755
--- a/client/src/api/index.js
+++ b/client/src/api/index.js
@@ -5,8 +5,8 @@ import users from './users';
import projects from './projects';
import projectMemberships from './project-memberships';
import boards from './boards';
-import lists from './lists';
import labels from './labels';
+import lists from './lists';
import cards from './cards';
import cardMemberships from './card-memberships';
import cardLabels from './card-labels';
@@ -24,8 +24,8 @@ export default {
...projects,
...projectMemberships,
...boards,
- ...lists,
...labels,
+ ...lists,
...cards,
...cardMemberships,
...cardLabels,
diff --git a/client/src/components/AddProjectModal/index.js b/client/src/components/AddProjectModal/index.js
deleted file mode 100644
index 92ff6c74..00000000
--- a/client/src/components/AddProjectModal/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import AddProjectModal from './AddProjectModal';
-
-export default AddProjectModal;
diff --git a/client/src/components/AddUserPopup/index.js b/client/src/components/AddUserPopup/index.js
deleted file mode 100644
index b57b51db..00000000
--- a/client/src/components/AddUserPopup/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import AddUserPopup from './AddUserPopup';
-
-export default AddUserPopup;
diff --git a/client/src/components/Board/index.js b/client/src/components/Board/index.js
deleted file mode 100755
index 354b0580..00000000
--- a/client/src/components/Board/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import Board from './Board';
-
-export default Board;
diff --git a/client/src/components/Board/Board.jsx b/client/src/components/BoardKanban/BoardKanban.jsx
similarity index 97%
rename from client/src/components/Board/Board.jsx
rename to client/src/components/BoardKanban/BoardKanban.jsx
index 748cdafc..985e5705 100755
--- a/client/src/components/Board/Board.jsx
+++ b/client/src/components/BoardKanban/BoardKanban.jsx
@@ -7,15 +7,15 @@ import { closePopup } from '../../lib/popup';
import DroppableTypes from '../../constants/DroppableTypes';
import ListContainer from '../../containers/ListContainer';
import CardModalContainer from '../../containers/CardModalContainer';
-import AddList from './AddList';
+import ListAdd from './ListAdd';
import Filter from './Filter';
import { ReactComponent as PlusMathIcon } from '../../assets/images/plus-math-icon.svg';
-import styles from './Board.module.scss';
+import styles from './BoardKanban.module.scss';
const parseDndId = (dndId) => dndId.split(':')[1];
-const Board = React.memo(
+const BoardKanban = React.memo(
({
listIds,
filterUsers,
@@ -167,7 +167,7 @@ const Board = React.memo(
{placeholder}
{isAddListOpened ? (
-
{
+const ListAdd = React.memo(({ onCreate, onClose }) => {
const [t] = useTranslation();
const [data, handleFieldChange, setData] = useForm(DEFAULT_DATA);
const [selectNameFieldState, selectNameField] = useToggle();
@@ -81,9 +81,9 @@ const AddList = React.memo(({ onCreate, onClose }) => {
);
});
-AddList.propTypes = {
+ListAdd.propTypes = {
onCreate: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-export default AddList;
+export default ListAdd;
diff --git a/client/src/components/Board/AddList.module.scss b/client/src/components/BoardKanban/ListAdd.module.scss
similarity index 100%
rename from client/src/components/Board/AddList.module.scss
rename to client/src/components/BoardKanban/ListAdd.module.scss
diff --git a/client/src/components/BoardKanban/index.js b/client/src/components/BoardKanban/index.js
new file mode 100755
index 00000000..7d7c1398
--- /dev/null
+++ b/client/src/components/BoardKanban/index.js
@@ -0,0 +1,3 @@
+import BoardKanban from './BoardKanban';
+
+export default BoardKanban;
diff --git a/client/src/components/BoardWrapper.jsx b/client/src/components/BoardWrapper.jsx
index dc248c12..f91607f6 100755
--- a/client/src/components/BoardWrapper.jsx
+++ b/client/src/components/BoardWrapper.jsx
@@ -2,17 +2,23 @@ import React from 'react';
import PropTypes from 'prop-types';
import { Loader } from 'semantic-ui-react';
-import BoardContainer from '../containers/BoardContainer';
+import { BoardTypes } from '../constants/Enums';
+import BoardKanbanContainer from '../containers/BoardKanbanContainer';
-const BoardWrapper = React.memo(({ isFetching }) => {
+const BoardWrapper = React.memo(({ type, isFetching }) => {
if (isFetching) {
return ;
}
- return ;
+ if (type === BoardTypes.KANBAN) {
+ return ;
+ }
+
+ return null;
});
BoardWrapper.propTypes = {
+ type: PropTypes.string.isRequired,
isFetching: PropTypes.bool.isRequired,
};
diff --git a/client/src/components/Boards/AddPopup.jsx b/client/src/components/Boards/AddPopup.jsx
index d5225bb8..0fa0f8c1 100755
--- a/client/src/components/Boards/AddPopup.jsx
+++ b/client/src/components/Boards/AddPopup.jsx
@@ -21,6 +21,7 @@ const AddStep = React.memo(({ onCreate, onClose }) => {
const handleSubmit = useCallback(() => {
const cleanData = {
...data,
+ type: 'kanban',
name: data.name.trim(),
};
diff --git a/client/src/components/Card/ActionsPopup.jsx b/client/src/components/Card/ActionsPopup.jsx
index fa7f53e7..7a5a8141 100644
--- a/client/src/components/Card/ActionsPopup.jsx
+++ b/client/src/components/Card/ActionsPopup.jsx
@@ -9,9 +9,9 @@ import { Popup } from '../../lib/custom-ui';
import { useSteps } from '../../hooks';
import ProjectMembershipsStep from '../ProjectMembershipsStep';
import LabelsStep from '../LabelsStep';
-import EditDueDateStep from '../EditDueDateStep';
-import EditTimerStep from '../EditTimerStep';
-import MoveCardStep from '../MoveCardStep';
+import DueDateEditStep from '../DueDateEditStep';
+import TimerEditStep from '../TimerEditStep';
+import CardMoveStep from '../CardMoveStep';
import DeleteStep from '../DeleteStep';
import styles from './ActionsPopup.module.scss';
@@ -125,7 +125,7 @@ const ActionsStep = React.memo(
);
case StepTypes.EDIT_DUE_DATE:
return (
- {
- const editName = useRef(null);
+ const nameEdit = useRef(null);
const handleClick = useCallback(() => {
if (document.activeElement) {
@@ -66,7 +66,7 @@ const Card = React.memo(
);
const handleNameEdit = useCallback(() => {
- editName.current.open();
+ nameEdit.current.open();
}, []);
const contentNode = (
@@ -133,7 +133,7 @@ const Card = React.memo(
{({ innerRef, draggableProps, dragHandleProps }) => (
// eslint-disable-next-line react/jsx-props-no-spreading
-
+
{isPersisted ? (
<>
@@ -150,8 +150,8 @@ const Card = React.memo(
name,
dueDate,
timer,
- listId,
boardId,
+ listId,
projectId,
isPersisted,
}}
@@ -183,7 +183,7 @@ const Card = React.memo(
{contentNode}
)}
-
+
)}
@@ -198,8 +198,8 @@ Card.propTypes = {
dueDate: PropTypes.instanceOf(Date),
timer: PropTypes.object, // eslint-disable-line react/forbid-prop-types
coverUrl: PropTypes.string,
- listId: PropTypes.string.isRequired,
boardId: PropTypes.string.isRequired,
+ listId: PropTypes.string.isRequired,
projectId: PropTypes.string.isRequired,
isPersisted: PropTypes.bool.isRequired,
notificationsTotal: PropTypes.number.isRequired,
diff --git a/client/src/components/Card/EditName.jsx b/client/src/components/Card/NameEdit.jsx
similarity index 94%
rename from client/src/components/Card/EditName.jsx
rename to client/src/components/Card/NameEdit.jsx
index 25d22348..7bf77f2c 100644
--- a/client/src/components/Card/EditName.jsx
+++ b/client/src/components/Card/NameEdit.jsx
@@ -6,9 +6,9 @@ import { Button, Form, TextArea } from 'semantic-ui-react';
import { useClosableForm, useField } from '../../hooks';
-import styles from './EditName.module.scss';
+import styles from './NameEdit.module.scss';
-const EditName = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
+const NameEdit = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
const [t] = useTranslation();
const [isOpened, setIsOpened] = useState(false);
const [value, handleFieldChange, setValue] = useField(defaultValue);
@@ -117,10 +117,10 @@ const EditName = React.forwardRef(({ children, defaultValue, onUpdate }, ref) =>
);
});
-EditName.propTypes = {
+NameEdit.propTypes = {
children: PropTypes.element.isRequired,
defaultValue: PropTypes.string.isRequired,
onUpdate: PropTypes.func.isRequired,
};
-export default React.memo(EditName);
+export default React.memo(NameEdit);
diff --git a/client/src/components/Card/EditName.module.scss b/client/src/components/Card/NameEdit.module.scss
similarity index 100%
rename from client/src/components/Card/EditName.module.scss
rename to client/src/components/Card/NameEdit.module.scss
diff --git a/client/src/components/CardModal/Actions/Actions.jsx b/client/src/components/CardModal/Actions/Actions.jsx
index 48dbb772..c36a6bfe 100755
--- a/client/src/components/CardModal/Actions/Actions.jsx
+++ b/client/src/components/CardModal/Actions/Actions.jsx
@@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next';
import { Comment, Icon, Loader, Visibility } from 'semantic-ui-react';
import { ActionTypes } from '../../../constants/Enums';
-import AddComment from './AddComment';
+import CommentAdd from './CommentAdd';
import Item from './Item';
import styles from './Actions.module.scss';
@@ -42,7 +42,7 @@ const Actions = React.memo(
{t('common.addComment')}
-
+
diff --git a/client/src/components/CardModal/Actions/AddComment.jsx b/client/src/components/CardModal/Actions/CommentAdd.jsx
similarity index 91%
rename from client/src/components/CardModal/Actions/AddComment.jsx
rename to client/src/components/CardModal/Actions/CommentAdd.jsx
index 6a30272d..c8c09e56 100755
--- a/client/src/components/CardModal/Actions/AddComment.jsx
+++ b/client/src/components/CardModal/Actions/CommentAdd.jsx
@@ -6,13 +6,13 @@ import { Button, Form, TextArea } from 'semantic-ui-react';
import { useForm } from '../../../hooks';
-import styles from './AddComment.module.scss';
+import styles from './CommentAdd.module.scss';
const DEFAULT_DATA = {
text: '',
};
-const AddComment = React.memo(({ onCreate }) => {
+const CommentAdd = React.memo(({ onCreate }) => {
const [t] = useTranslation();
const [data, handleFieldChange, setData] = useForm(DEFAULT_DATA);
@@ -68,8 +68,8 @@ const AddComment = React.memo(({ onCreate }) => {
);
});
-AddComment.propTypes = {
+CommentAdd.propTypes = {
onCreate: PropTypes.func.isRequired,
};
-export default AddComment;
+export default CommentAdd;
diff --git a/client/src/components/CardModal/Actions/AddComment.module.scss b/client/src/components/CardModal/Actions/CommentAdd.module.scss
similarity index 100%
rename from client/src/components/CardModal/Actions/AddComment.module.scss
rename to client/src/components/CardModal/Actions/CommentAdd.module.scss
diff --git a/client/src/components/CardModal/Actions/EditComment.jsx b/client/src/components/CardModal/Actions/CommentEdit.jsx
similarity index 93%
rename from client/src/components/CardModal/Actions/EditComment.jsx
rename to client/src/components/CardModal/Actions/CommentEdit.jsx
index 0bf6e9ee..eb4ee0c5 100755
--- a/client/src/components/CardModal/Actions/EditComment.jsx
+++ b/client/src/components/CardModal/Actions/CommentEdit.jsx
@@ -7,9 +7,9 @@ import { Button, Form, TextArea } from 'semantic-ui-react';
import { useClosableForm, useForm } from '../../../hooks';
-import styles from './EditComment.module.scss';
+import styles from './CommentEdit.module.scss';
-const EditComment = React.forwardRef(({ children, defaultData, onUpdate }, ref) => {
+const CommentEdit = React.forwardRef(({ children, defaultData, onUpdate }, ref) => {
const [t] = useTranslation();
const [isOpened, setIsOpened] = useState(false);
const [data, handleFieldChange, setData] = useForm(null);
@@ -111,10 +111,10 @@ const EditComment = React.forwardRef(({ children, defaultData, onUpdate }, ref)
);
});
-EditComment.propTypes = {
+CommentEdit.propTypes = {
children: PropTypes.element.isRequired,
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
onUpdate: PropTypes.func.isRequired,
};
-export default React.memo(EditComment);
+export default React.memo(CommentEdit);
diff --git a/client/src/components/CardModal/Actions/EditComment.module.scss b/client/src/components/CardModal/Actions/CommentEdit.module.scss
similarity index 100%
rename from client/src/components/CardModal/Actions/EditComment.module.scss
rename to client/src/components/CardModal/Actions/CommentEdit.module.scss
diff --git a/client/src/components/CardModal/Actions/ItemComment.jsx b/client/src/components/CardModal/Actions/ItemComment.jsx
index 39db3232..23f33aee 100755
--- a/client/src/components/CardModal/Actions/ItemComment.jsx
+++ b/client/src/components/CardModal/Actions/ItemComment.jsx
@@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next';
import { Comment } from 'semantic-ui-react';
import { Markdown } from '../../../lib/custom-ui';
-import EditComment from './EditComment';
+import CommentEdit from './CommentEdit';
import User from '../../User';
import DeletePopup from '../../DeletePopup';
@@ -15,10 +15,10 @@ const ItemComment = React.memo(
({ data, createdAt, isPersisted, user, isEditable, onUpdate, onDelete }) => {
const [t] = useTranslation();
- const editComment = useRef(null);
+ const commentEdit = useRef(null);
const handleEditClick = useCallback(() => {
- editComment.current.open();
+ commentEdit.current.open();
}, []);
return (
@@ -36,7 +36,7 @@ const ItemComment = React.memo(
})}
-
+
<>
@@ -66,7 +66,7 @@ const ItemComment = React.memo(
)}
>
-
+
);
diff --git a/client/src/components/CardModal/AddAttachmentZone/index.js b/client/src/components/CardModal/AddAttachmentZone/index.js
deleted file mode 100644
index f330f6b2..00000000
--- a/client/src/components/CardModal/AddAttachmentZone/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import AddAttachmentZone from './AddAttachmentZone';
-
-export default AddAttachmentZone;
diff --git a/client/src/components/CardModal/AddAttachmentPopup.jsx b/client/src/components/CardModal/AttachmentAddPopup.jsx
similarity index 86%
rename from client/src/components/CardModal/AddAttachmentPopup.jsx
rename to client/src/components/CardModal/AttachmentAddPopup.jsx
index fc7a1338..cc6a052d 100644
--- a/client/src/components/CardModal/AddAttachmentPopup.jsx
+++ b/client/src/components/CardModal/AttachmentAddPopup.jsx
@@ -5,9 +5,9 @@ import { Menu } from 'semantic-ui-react';
import { withPopup } from '../../lib/popup';
import { FilePicker, Popup } from '../../lib/custom-ui';
-import styles from './AddAttachmentPopup.module.scss';
+import styles from './AttachmentAddPopup.module.scss';
-const AddAttachmentStep = React.memo(({ onCreate, onClose }) => {
+const AttachmentAddStep = React.memo(({ onCreate, onClose }) => {
const [t] = useTranslation();
const handleFileSelect = useCallback(
@@ -46,9 +46,9 @@ const AddAttachmentStep = React.memo(({ onCreate, onClose }) => {
);
});
-AddAttachmentStep.propTypes = {
+AttachmentAddStep.propTypes = {
onCreate: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-export default withPopup(AddAttachmentStep);
+export default withPopup(AttachmentAddStep);
diff --git a/client/src/components/CardModal/AddAttachmentPopup.module.scss b/client/src/components/CardModal/AttachmentAddPopup.module.scss
similarity index 100%
rename from client/src/components/CardModal/AddAttachmentPopup.module.scss
rename to client/src/components/CardModal/AttachmentAddPopup.module.scss
diff --git a/client/src/components/CardModal/AddAttachmentZone/AddAttachmentZone.jsx b/client/src/components/CardModal/AttachmentAddZone/AttachmentAddZone.jsx
similarity index 89%
rename from client/src/components/CardModal/AddAttachmentZone/AddAttachmentZone.jsx
rename to client/src/components/CardModal/AttachmentAddZone/AttachmentAddZone.jsx
index e80ac298..5403dc6c 100644
--- a/client/src/components/CardModal/AddAttachmentZone/AddAttachmentZone.jsx
+++ b/client/src/components/CardModal/AttachmentAddZone/AttachmentAddZone.jsx
@@ -5,11 +5,11 @@ import { useTranslation } from 'react-i18next';
import { closePopup } from '../../../lib/popup';
import { useModal } from '../../../hooks';
-import AddTextFileModal from './AddTextFileModal';
+import TextFileAddModal from './TextFileAddModal';
-import styles from './AddAttachmentZone.module.scss';
+import styles from './AttachmentAddZone.module.scss';
-const AddAttachmentZone = React.memo(({ children, onCreate }) => {
+const AttachmentAddZone = React.memo(({ children, onCreate }) => {
const [t] = useTranslation();
const [modal, openModal, handleModalClose] = useModal();
@@ -90,7 +90,7 @@ const AddAttachmentZone = React.memo(({ children, onCreate }) => {
{modal && (
- {
);
});
-AddAttachmentZone.propTypes = {
+AttachmentAddZone.propTypes = {
children: PropTypes.element.isRequired,
onCreate: PropTypes.func.isRequired,
};
-export default AddAttachmentZone;
+export default AttachmentAddZone;
diff --git a/client/src/components/CardModal/AddAttachmentZone/AddAttachmentZone.module.scss b/client/src/components/CardModal/AttachmentAddZone/AttachmentAddZone.module.scss
similarity index 100%
rename from client/src/components/CardModal/AddAttachmentZone/AddAttachmentZone.module.scss
rename to client/src/components/CardModal/AttachmentAddZone/AttachmentAddZone.module.scss
diff --git a/client/src/components/CardModal/AddAttachmentZone/AddTextFileModal.jsx b/client/src/components/CardModal/AttachmentAddZone/TextFileAddModal.jsx
similarity index 91%
rename from client/src/components/CardModal/AddAttachmentZone/AddTextFileModal.jsx
rename to client/src/components/CardModal/AttachmentAddZone/TextFileAddModal.jsx
index 37e565c4..9423d0b5 100644
--- a/client/src/components/CardModal/AddAttachmentZone/AddTextFileModal.jsx
+++ b/client/src/components/CardModal/AttachmentAddZone/TextFileAddModal.jsx
@@ -6,9 +6,9 @@ import { Input } from '../../../lib/custom-ui';
import { useForm } from '../../../hooks';
-import styles from './AddTextFileModal.module.scss';
+import styles from './TextFileAddModal.module.scss';
-const AddTextFileModal = React.memo(({ content, onCreate, onClose }) => {
+const TextFileAddModal = React.memo(({ content, onCreate, onClose }) => {
const [t] = useTranslation();
const [data, handleFieldChange] = useForm(() => ({
@@ -74,10 +74,10 @@ const AddTextFileModal = React.memo(({ content, onCreate, onClose }) => {
);
});
-AddTextFileModal.propTypes = {
+TextFileAddModal.propTypes = {
content: PropTypes.string.isRequired,
onCreate: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-export default AddTextFileModal;
+export default TextFileAddModal;
diff --git a/client/src/components/AddProjectModal/AddProjectModal.module.scss b/client/src/components/CardModal/AttachmentAddZone/TextFileAddModal.module.scss
similarity index 100%
rename from client/src/components/AddProjectModal/AddProjectModal.module.scss
rename to client/src/components/CardModal/AttachmentAddZone/TextFileAddModal.module.scss
diff --git a/client/src/components/CardModal/AttachmentAddZone/index.js b/client/src/components/CardModal/AttachmentAddZone/index.js
new file mode 100644
index 00000000..d0d6fe87
--- /dev/null
+++ b/client/src/components/CardModal/AttachmentAddZone/index.js
@@ -0,0 +1,3 @@
+import AttachmentAddZone from './AttachmentAddZone';
+
+export default AttachmentAddZone;
diff --git a/client/src/components/CardModal/CardModal.jsx b/client/src/components/CardModal/CardModal.jsx
index 9279b122..fb3522b8 100755
--- a/client/src/components/CardModal/CardModal.jsx
+++ b/client/src/components/CardModal/CardModal.jsx
@@ -6,11 +6,11 @@ import { Button, Grid, Icon, Modal } from 'semantic-ui-react';
import { Markdown } from '../../lib/custom-ui';
import NameField from './NameField';
-import EditDescription from './EditDescription';
+import DescriptionEdit from './DescriptionEdit';
import Tasks from './Tasks';
import Attachments from './Attachments';
-import AddAttachmentZone from './AddAttachmentZone';
-import AddAttachmentPopup from './AddAttachmentPopup';
+import AttachmentAddZone from './AttachmentAddZone';
+import AttachmentAddPopup from './AttachmentAddPopup';
import Actions from './Actions';
import User from '../User';
import Label from '../Label';
@@ -18,9 +18,9 @@ import DueDate from '../DueDate';
import Timer from '../Timer';
import ProjectMembershipsPopup from '../ProjectMembershipsPopup';
import LabelsPopup from '../LabelsPopup';
-import EditDueDatePopup from '../EditDueDatePopup';
-import EditTimerPopup from '../EditTimerPopup';
-import MoveCardPopup from '../MoveCardPopup';
+import DueDateEditPopup from '../DueDateEditPopup';
+import TimerEditPopup from '../TimerEditPopup';
+import CardMovePopup from '../CardMovePopup';
import DeletePopup from '../DeletePopup';
import styles from './CardModal.module.scss';
@@ -128,7 +128,7 @@ const CardModal = React.memo(
return (
-
+
@@ -227,9 +227,9 @@ const CardModal = React.memo(
})}
-
+
-
+
)}
@@ -241,9 +241,9 @@ const CardModal = React.memo(
})}
-
+
-
+
)}
@@ -253,7 +253,7 @@ const CardModal = React.memo(
{t('common.description')}
-
+
{description ? (
)}
-
+
@@ -333,26 +333,26 @@ const CardModal = React.memo(
{t('common.labels')}
-
+
-
-
+
+
-
-
+
+
-
+
{t('common.actions')}
@@ -364,7 +364,7 @@ const CardModal = React.memo(
{isSubscribed ? t('action.unsubscribe') : t('action.subscribe')}
-
{t('action.move')}
-
+
-
+
);
},
diff --git a/client/src/components/CardModal/EditDescription.jsx b/client/src/components/CardModal/DescriptionEdit.jsx
similarity index 92%
rename from client/src/components/CardModal/EditDescription.jsx
rename to client/src/components/CardModal/DescriptionEdit.jsx
index a1f6f56a..c0794281 100755
--- a/client/src/components/CardModal/EditDescription.jsx
+++ b/client/src/components/CardModal/DescriptionEdit.jsx
@@ -6,9 +6,9 @@ import { Button, Form, TextArea } from 'semantic-ui-react';
import { useClosableForm, useField } from '../../hooks';
-import styles from './EditDescription.module.scss';
+import styles from './DescriptionEdit.module.scss';
-const EditDescription = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
+const DescriptionEdit = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
const [t] = useTranslation();
const [isOpened, setIsOpened] = useState(false);
const [value, handleFieldChange, setValue] = useField(null);
@@ -103,14 +103,14 @@ const EditDescription = React.forwardRef(({ children, defaultValue, onUpdate },
);
});
-EditDescription.propTypes = {
+DescriptionEdit.propTypes = {
children: PropTypes.element.isRequired,
defaultValue: PropTypes.string,
onUpdate: PropTypes.func.isRequired,
};
-EditDescription.defaultProps = {
+DescriptionEdit.defaultProps = {
defaultValue: undefined,
};
-export default React.memo(EditDescription);
+export default React.memo(DescriptionEdit);
diff --git a/client/src/components/CardModal/EditDescription.module.scss b/client/src/components/CardModal/DescriptionEdit.module.scss
similarity index 100%
rename from client/src/components/CardModal/EditDescription.module.scss
rename to client/src/components/CardModal/DescriptionEdit.module.scss
diff --git a/client/src/components/CardModal/Tasks/Item.jsx b/client/src/components/CardModal/Tasks/Item.jsx
index ad572bb4..a9370809 100755
--- a/client/src/components/CardModal/Tasks/Item.jsx
+++ b/client/src/components/CardModal/Tasks/Item.jsx
@@ -3,17 +3,17 @@ import PropTypes from 'prop-types';
import classNames from 'classnames';
import { Button, Checkbox, Icon } from 'semantic-ui-react';
-import EditName from './EditName';
+import NameEdit from './NameEdit';
import ActionsPopup from './ActionsPopup';
import styles from './Item.module.scss';
const Item = React.memo(({ name, isCompleted, isPersisted, onUpdate, onDelete }) => {
- const editName = useRef(null);
+ const nameEdit = useRef(null);
const handleClick = useCallback(() => {
if (isPersisted) {
- editName.current.open();
+ nameEdit.current.open();
}
}, [isPersisted]);
@@ -33,7 +33,7 @@ const Item = React.memo(({ name, isCompleted, isPersisted, onUpdate, onDelete })
}, [isCompleted, onUpdate]);
const handleNameEdit = useCallback(() => {
- editName.current.open();
+ nameEdit.current.open();
}, []);
return (
@@ -46,7 +46,7 @@ const Item = React.memo(({ name, isCompleted, isPersisted, onUpdate, onDelete })
onChange={handleToggleChange}
/>
-
+
{/* eslint-disable jsx-a11y/click-events-have-key-events,
jsx-a11y/no-static-element-interactions */}
@@ -65,7 +65,7 @@ const Item = React.memo(({ name, isCompleted, isPersisted, onUpdate, onDelete })
)}
-
+
);
});
diff --git a/client/src/components/CardModal/Tasks/EditName.jsx b/client/src/components/CardModal/Tasks/NameEdit.jsx
similarity index 93%
rename from client/src/components/CardModal/Tasks/EditName.jsx
rename to client/src/components/CardModal/Tasks/NameEdit.jsx
index c39878a8..247baf26 100755
--- a/client/src/components/CardModal/Tasks/EditName.jsx
+++ b/client/src/components/CardModal/Tasks/NameEdit.jsx
@@ -6,9 +6,9 @@ import { Button, Form, TextArea } from 'semantic-ui-react';
import { useClosableForm, useField } from '../../../hooks';
-import styles from './EditName.module.scss';
+import styles from './NameEdit.module.scss';
-const EditName = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
+const NameEdit = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
const [t] = useTranslation();
const [isOpened, setIsOpened] = useState(false);
const [value, handleFieldChange, setValue] = useField(null);
@@ -105,10 +105,10 @@ const EditName = React.forwardRef(({ children, defaultValue, onUpdate }, ref) =>
);
});
-EditName.propTypes = {
+NameEdit.propTypes = {
children: PropTypes.element.isRequired,
defaultValue: PropTypes.string.isRequired,
onUpdate: PropTypes.func.isRequired,
};
-export default React.memo(EditName);
+export default React.memo(NameEdit);
diff --git a/client/src/components/CardModal/Tasks/EditName.module.scss b/client/src/components/CardModal/Tasks/NameEdit.module.scss
similarity index 100%
rename from client/src/components/CardModal/Tasks/EditName.module.scss
rename to client/src/components/CardModal/Tasks/NameEdit.module.scss
diff --git a/client/src/components/CardMovePopup.jsx b/client/src/components/CardMovePopup.jsx
new file mode 100644
index 00000000..090cb7f4
--- /dev/null
+++ b/client/src/components/CardMovePopup.jsx
@@ -0,0 +1,5 @@
+import { withPopup } from '../lib/popup';
+
+import CardMoveStep from './CardMoveStep';
+
+export default withPopup(CardMoveStep);
diff --git a/client/src/components/MoveCardStep/MoveCardStep.jsx b/client/src/components/CardMoveStep/CardMoveStep.jsx
similarity index 96%
rename from client/src/components/MoveCardStep/MoveCardStep.jsx
rename to client/src/components/CardMoveStep/CardMoveStep.jsx
index 14b95a01..f92b3b10 100644
--- a/client/src/components/MoveCardStep/MoveCardStep.jsx
+++ b/client/src/components/CardMoveStep/CardMoveStep.jsx
@@ -6,9 +6,9 @@ import { Popup } from '../../lib/custom-ui';
import { useForm } from '../../hooks';
-import styles from './MoveCardStep.module.scss';
+import styles from './CardMoveStep.module.scss';
-const MoveCardStep = React.memo(
+const CardMoveStep = React.memo(
({ projectsToLists, defaultPath, onMove, onTransfer, onBoardFetch, onBack, onClose }) => {
const [t] = useTranslation();
@@ -142,7 +142,7 @@ const MoveCardStep = React.memo(
},
);
-MoveCardStep.propTypes = {
+CardMoveStep.propTypes = {
/* eslint-disable react/forbid-prop-types */
projectsToLists: PropTypes.array.isRequired,
defaultPath: PropTypes.object.isRequired,
@@ -154,8 +154,8 @@ MoveCardStep.propTypes = {
onClose: PropTypes.func.isRequired,
};
-MoveCardStep.defaultProps = {
+CardMoveStep.defaultProps = {
onBack: undefined,
};
-export default MoveCardStep;
+export default CardMoveStep;
diff --git a/client/src/components/AddUserPopup/AddUserPopup.module.scss b/client/src/components/CardMoveStep/CardMoveStep.module.scss
similarity index 100%
rename from client/src/components/AddUserPopup/AddUserPopup.module.scss
rename to client/src/components/CardMoveStep/CardMoveStep.module.scss
diff --git a/client/src/components/CardMoveStep/index.js b/client/src/components/CardMoveStep/index.js
new file mode 100644
index 00000000..08cee205
--- /dev/null
+++ b/client/src/components/CardMoveStep/index.js
@@ -0,0 +1,3 @@
+import CardMoveStep from './CardMoveStep';
+
+export default CardMoveStep;
diff --git a/client/src/components/Core.jsx b/client/src/components/Core.jsx
index c3405b5f..d17b8532 100755
--- a/client/src/components/Core.jsx
+++ b/client/src/components/Core.jsx
@@ -6,7 +6,7 @@ import FixedContainer from '../containers/FixedContainer';
import StaticContainer from '../containers/StaticContainer';
import UsersModalContainer from '../containers/UsersModalContainer';
import UserSettingsModalContainer from '../containers/UserSettingsModalContainer';
-import AddProjectModalContainer from '../containers/AddProjectModalContainer';
+import ProjectAddModalContainer from '../containers/ProjectAddModalContainer';
import Background from './Background';
const Core = ({ currentModal, currentProject }) => (
@@ -22,7 +22,7 @@ const Core = ({ currentModal, currentProject }) => (
{currentModal === ModalTypes.USERS && }
{currentModal === ModalTypes.USER_SETTINGS && }
- {currentModal === ModalTypes.ADD_PROJECT && }
+ {currentModal === ModalTypes.ADD_PROJECT && }
>
);
diff --git a/client/src/components/DueDateEditPopup.jsx b/client/src/components/DueDateEditPopup.jsx
new file mode 100644
index 00000000..eaee72c8
--- /dev/null
+++ b/client/src/components/DueDateEditPopup.jsx
@@ -0,0 +1,5 @@
+import { withPopup } from '../lib/popup';
+
+import DueDateEditStep from './DueDateEditStep';
+
+export default withPopup(DueDateEditStep);
diff --git a/client/src/components/EditDueDateStep/EditDueDateStep.jsx b/client/src/components/DueDateEditStep/DueDateEditStep.jsx
similarity index 94%
rename from client/src/components/EditDueDateStep/EditDueDateStep.jsx
rename to client/src/components/DueDateEditStep/DueDateEditStep.jsx
index d333809e..2e72e63c 100755
--- a/client/src/components/EditDueDateStep/EditDueDateStep.jsx
+++ b/client/src/components/DueDateEditStep/DueDateEditStep.jsx
@@ -8,9 +8,9 @@ import { Input, Popup } from '../../lib/custom-ui';
import { useForm } from '../../hooks';
-import styles from './EditDueDateStep.module.scss';
+import styles from './DueDateEditStep.module.scss';
-const EditDueDateStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) => {
+const DueDateEditStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) => {
const [t] = useTranslation();
const [data, handleFieldChange, setData] = useForm(() => {
@@ -132,16 +132,16 @@ const EditDueDateStep = React.memo(({ defaultValue, onUpdate, onBack, onClose })
);
});
-EditDueDateStep.propTypes = {
+DueDateEditStep.propTypes = {
defaultValue: PropTypes.instanceOf(Date),
onUpdate: PropTypes.func.isRequired,
onBack: PropTypes.func,
onClose: PropTypes.func.isRequired,
};
-EditDueDateStep.defaultProps = {
+DueDateEditStep.defaultProps = {
defaultValue: undefined,
onBack: undefined,
};
-export default EditDueDateStep;
+export default DueDateEditStep;
diff --git a/client/src/components/EditDueDateStep/EditDueDateStep.module.scss b/client/src/components/DueDateEditStep/DueDateEditStep.module.scss
similarity index 100%
rename from client/src/components/EditDueDateStep/EditDueDateStep.module.scss
rename to client/src/components/DueDateEditStep/DueDateEditStep.module.scss
diff --git a/client/src/components/DueDateEditStep/index.js b/client/src/components/DueDateEditStep/index.js
new file mode 100644
index 00000000..210868b8
--- /dev/null
+++ b/client/src/components/DueDateEditStep/index.js
@@ -0,0 +1,3 @@
+import DueDateEditStep from './DueDateEditStep';
+
+export default DueDateEditStep;
diff --git a/client/src/components/EditDueDatePopup.jsx b/client/src/components/EditDueDatePopup.jsx
deleted file mode 100644
index 0f0bdb35..00000000
--- a/client/src/components/EditDueDatePopup.jsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { withPopup } from '../lib/popup';
-
-import EditDueDateStep from './EditDueDateStep';
-
-export default withPopup(EditDueDateStep);
diff --git a/client/src/components/EditDueDateStep/index.js b/client/src/components/EditDueDateStep/index.js
deleted file mode 100644
index af9622bb..00000000
--- a/client/src/components/EditDueDateStep/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import EditDueDateStep from './EditDueDateStep';
-
-export default EditDueDateStep;
diff --git a/client/src/components/EditTimerPopup.jsx b/client/src/components/EditTimerPopup.jsx
deleted file mode 100644
index a08b68e2..00000000
--- a/client/src/components/EditTimerPopup.jsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { withPopup } from '../lib/popup';
-
-import EditTimerStep from './EditTimerStep';
-
-export default withPopup(EditTimerStep);
diff --git a/client/src/components/EditTimerStep/index.js b/client/src/components/EditTimerStep/index.js
deleted file mode 100644
index e0b3baa5..00000000
--- a/client/src/components/EditTimerStep/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import EditTimerStep from './EditTimerStep';
-
-export default EditTimerStep;
diff --git a/client/src/components/List/AddCard.jsx b/client/src/components/List/CardAdd.jsx
similarity index 94%
rename from client/src/components/List/AddCard.jsx
rename to client/src/components/List/CardAdd.jsx
index 2d6a79af..4b3f81e0 100755
--- a/client/src/components/List/AddCard.jsx
+++ b/client/src/components/List/CardAdd.jsx
@@ -8,13 +8,13 @@ import { useDidUpdate, useToggle } from '../../lib/hooks';
import { useClosableForm, useForm } from '../../hooks';
-import styles from './AddCard.module.scss';
+import styles from './CardAdd.module.scss';
const DEFAULT_DATA = {
name: '',
};
-const AddCard = React.memo(({ isOpened, onCreate, onClose }) => {
+const CardAdd = React.memo(({ isOpened, onCreate, onClose }) => {
const [t] = useTranslation();
const [data, handleFieldChange, setData] = useForm(DEFAULT_DATA);
const [selectNameFieldState, selectNameField] = useToggle();
@@ -107,10 +107,10 @@ const AddCard = React.memo(({ isOpened, onCreate, onClose }) => {
);
});
-AddCard.propTypes = {
+CardAdd.propTypes = {
isOpened: PropTypes.bool.isRequired,
onCreate: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-export default AddCard;
+export default CardAdd;
diff --git a/client/src/components/List/AddCard.module.scss b/client/src/components/List/CardAdd.module.scss
similarity index 100%
rename from client/src/components/List/AddCard.module.scss
rename to client/src/components/List/CardAdd.module.scss
diff --git a/client/src/components/List/List.jsx b/client/src/components/List/List.jsx
index 132660f9..61155567 100755
--- a/client/src/components/List/List.jsx
+++ b/client/src/components/List/List.jsx
@@ -7,8 +7,8 @@ import { Button, Icon } from 'semantic-ui-react';
import DroppableTypes from '../../constants/DroppableTypes';
import CardContainer from '../../containers/CardContainer';
-import EditName from './EditName';
-import AddCard from './AddCard';
+import NameEdit from './NameEdit';
+import CardAdd from './CardAdd';
import ActionsPopup from './ActionsPopup';
import { ReactComponent as PlusMathIcon } from '../../assets/images/plus-math-icon.svg';
@@ -19,12 +19,12 @@ const List = React.memo(
const [t] = useTranslation();
const [isAddCardOpened, setIsAddCardOpened] = useState(false);
- const editName = useRef(null);
+ const nameEdit = useRef(null);
const listWrapper = useRef(null);
const handleHeaderClick = useCallback(() => {
if (isPersisted) {
- editName.current.open();
+ nameEdit.current.open();
}
}, [isPersisted]);
@@ -46,7 +46,7 @@ const List = React.memo(
}, []);
const handleNameEdit = useCallback(() => {
- editName.current.open();
+ nameEdit.current.open();
}, []);
const handleCardAdd = useCallback(() => {
@@ -73,7 +73,7 @@ const List = React.memo(
))}
{placeholder}
-
+
{name}
-
+
{isPersisted && (
{
+const NameEdit = React.forwardRef(({ children, defaultValue, onUpdate }, ref) => {
const [isOpened, setIsOpened] = useState(false);
const [value, handleFieldChange, setValue] = useField(defaultValue);
@@ -94,10 +94,10 @@ const EditName = React.forwardRef(({ children, defaultValue, onUpdate }, ref) =>
);
});
-EditName.propTypes = {
+NameEdit.propTypes = {
children: PropTypes.element.isRequired,
defaultValue: PropTypes.string.isRequired,
onUpdate: PropTypes.func.isRequired,
};
-export default React.memo(EditName);
+export default React.memo(NameEdit);
diff --git a/client/src/components/List/EditName.module.scss b/client/src/components/List/NameEdit.module.scss
similarity index 100%
rename from client/src/components/List/EditName.module.scss
rename to client/src/components/List/NameEdit.module.scss
diff --git a/client/src/components/MoveCardPopup.jsx b/client/src/components/MoveCardPopup.jsx
deleted file mode 100644
index 1f0cdb82..00000000
--- a/client/src/components/MoveCardPopup.jsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { withPopup } from '../lib/popup';
-
-import MoveCardStep from './MoveCardStep';
-
-export default withPopup(MoveCardStep);
diff --git a/client/src/components/MoveCardStep/index.js b/client/src/components/MoveCardStep/index.js
deleted file mode 100644
index 68e47a88..00000000
--- a/client/src/components/MoveCardStep/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import MoveCardStep from './MoveCardStep';
-
-export default MoveCardStep;
diff --git a/client/src/components/Project/ActionsPopup/ActionsPopup.jsx b/client/src/components/Project/ActionsPopup/ActionsPopup.jsx
index db6737a1..4ab01643 100755
--- a/client/src/components/Project/ActionsPopup/ActionsPopup.jsx
+++ b/client/src/components/Project/ActionsPopup/ActionsPopup.jsx
@@ -6,8 +6,8 @@ import { withPopup } from '../../../lib/popup';
import { Popup } from '../../../lib/custom-ui';
import { useSteps } from '../../../hooks';
-import EditNameStep from './EditNameStep';
-import EditBackgroundStep from './EditBackgroundStep';
+import NameEditStep from './NameEditStep';
+import BackgroundEditStep from './BackgroundEditStep';
import DeleteStep from '../../DeleteStep';
import styles from './ActionsPopup.module.scss';
@@ -64,7 +64,7 @@ const ActionsStep = React.memo(
switch (step.type) {
case StepTypes.EDIT_NAME:
return (
- {
+const NameEditStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) => {
const [t] = useTranslation();
const [value, handleFieldChange] = useField(defaultValue);
@@ -57,11 +57,11 @@ const EditNameStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) =>
);
});
-EditNameStep.propTypes = {
+NameEditStep.propTypes = {
defaultValue: PropTypes.string.isRequired,
onUpdate: PropTypes.func.isRequired,
onBack: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-export default EditNameStep;
+export default NameEditStep;
diff --git a/client/src/components/MoveCardStep/MoveCardStep.module.scss b/client/src/components/Project/ActionsPopup/NameEditStep.module.scss
similarity index 100%
rename from client/src/components/MoveCardStep/MoveCardStep.module.scss
rename to client/src/components/Project/ActionsPopup/NameEditStep.module.scss
diff --git a/client/src/components/Project/AddMembershipPopup/index.js b/client/src/components/Project/AddMembershipPopup/index.js
deleted file mode 100644
index 652b0203..00000000
--- a/client/src/components/Project/AddMembershipPopup/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-import AddMembershipPopup from './AddMembershipPopup';
-
-export default AddMembershipPopup;
diff --git a/client/src/components/Project/AddMembershipPopup/AddMembershipPopup.jsx b/client/src/components/Project/MembershipAddPopup/MembershipAddPopup.jsx
similarity index 86%
rename from client/src/components/Project/AddMembershipPopup/AddMembershipPopup.jsx
rename to client/src/components/Project/MembershipAddPopup/MembershipAddPopup.jsx
index 9316ff41..d4d110d3 100755
--- a/client/src/components/Project/AddMembershipPopup/AddMembershipPopup.jsx
+++ b/client/src/components/Project/MembershipAddPopup/MembershipAddPopup.jsx
@@ -6,9 +6,9 @@ import { Popup } from '../../../lib/custom-ui';
import UserItem from './UserItem';
-import styles from './AddMembershipPopup.module.scss';
+import styles from './MembershipAddPopup.module.scss';
-const AddMembershipStep = React.memo(({ users, currentUserIds, onCreate, onClose }) => {
+const MembershipAddStep = React.memo(({ users, currentUserIds, onCreate, onClose }) => {
const [t] = useTranslation();
const handleUserSelect = useCallback(
@@ -46,7 +46,7 @@ const AddMembershipStep = React.memo(({ users, currentUserIds, onCreate, onClose
);
});
-AddMembershipStep.propTypes = {
+MembershipAddStep.propTypes = {
/* eslint-disable react/forbid-prop-types */
users: PropTypes.array.isRequired,
currentUserIds: PropTypes.array.isRequired,
@@ -55,4 +55,4 @@ AddMembershipStep.propTypes = {
onClose: PropTypes.func.isRequired,
};
-export default withPopup(AddMembershipStep);
+export default withPopup(MembershipAddStep);
diff --git a/client/src/components/Project/AddMembershipPopup/AddMembershipPopup.module.scss b/client/src/components/Project/MembershipAddPopup/MembershipAddPopup.module.scss
similarity index 100%
rename from client/src/components/Project/AddMembershipPopup/AddMembershipPopup.module.scss
rename to client/src/components/Project/MembershipAddPopup/MembershipAddPopup.module.scss
diff --git a/client/src/components/Project/AddMembershipPopup/UserItem.jsx b/client/src/components/Project/MembershipAddPopup/UserItem.jsx
similarity index 100%
rename from client/src/components/Project/AddMembershipPopup/UserItem.jsx
rename to client/src/components/Project/MembershipAddPopup/UserItem.jsx
diff --git a/client/src/components/Project/AddMembershipPopup/UserItem.module.scss b/client/src/components/Project/MembershipAddPopup/UserItem.module.scss
similarity index 100%
rename from client/src/components/Project/AddMembershipPopup/UserItem.module.scss
rename to client/src/components/Project/MembershipAddPopup/UserItem.module.scss
diff --git a/client/src/components/Project/MembershipAddPopup/index.js b/client/src/components/Project/MembershipAddPopup/index.js
new file mode 100644
index 00000000..f2945935
--- /dev/null
+++ b/client/src/components/Project/MembershipAddPopup/index.js
@@ -0,0 +1,3 @@
+import MembershipAddPopup from './MembershipAddPopup';
+
+export default MembershipAddPopup;
diff --git a/client/src/components/Project/EditMembershipPopup.jsx b/client/src/components/Project/MembershipEditPopup.jsx
similarity index 89%
rename from client/src/components/Project/EditMembershipPopup.jsx
rename to client/src/components/Project/MembershipEditPopup.jsx
index d1aa228b..752a42ec 100755
--- a/client/src/components/Project/EditMembershipPopup.jsx
+++ b/client/src/components/Project/MembershipEditPopup.jsx
@@ -8,13 +8,13 @@ import { useSteps } from '../../hooks';
import User from '../User';
import DeleteStep from '../DeleteStep';
-import styles from './EditMembershipPopup.module.scss';
+import styles from './MembershipEditPopup.module.scss';
const StepTypes = {
DELETE: 'DELETE',
};
-const EditMembershipStep = React.memo(({ user, isEditable, onDelete }) => {
+const MembershipEditStep = React.memo(({ user, isEditable, onDelete }) => {
const [t] = useTranslation();
const [step, openStep, handleBack] = useSteps();
@@ -56,10 +56,10 @@ const EditMembershipStep = React.memo(({ user, isEditable, onDelete }) => {
);
});
-EditMembershipStep.propTypes = {
+MembershipEditStep.propTypes = {
user: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
isEditable: PropTypes.bool.isRequired,
onDelete: PropTypes.func.isRequired,
};
-export default withPopup(EditMembershipStep);
+export default withPopup(MembershipEditStep);
diff --git a/client/src/components/Project/EditMembershipPopup.module.scss b/client/src/components/Project/MembershipEditPopup.module.scss
similarity index 100%
rename from client/src/components/Project/EditMembershipPopup.module.scss
rename to client/src/components/Project/MembershipEditPopup.module.scss
diff --git a/client/src/components/Project/Project.jsx b/client/src/components/Project/Project.jsx
index 6bf44d9f..f82d64a0 100755
--- a/client/src/components/Project/Project.jsx
+++ b/client/src/components/Project/Project.jsx
@@ -4,8 +4,8 @@ import { Button, Grid } from 'semantic-ui-react';
import BoardsContainer from '../../containers/BoardsContainer';
import ActionsPopup from './ActionsPopup';
-import AddMembershipPopup from './AddMembershipPopup';
-import EditMembershipPopup from './EditMembershipPopup';
+import MembershipAddPopup from './MembershipAddPopup';
+import MembershipEditPopup from './MembershipEditPopup';
import User from '../User';
import styles from './Project.module.scss';
@@ -63,7 +63,7 @@ const Project = React.memo(
{memberships.map((membership) => (
- handleMembershipDelete(membership.id)}
@@ -74,18 +74,18 @@ const Project = React.memo(
size="large"
isDisabled={!membership.isPersisted}
/>
-
+
))}
{isEditable && (
- membership.user.id)}
onCreate={onMembershipCreate}
>
-
+
)}
diff --git a/client/src/components/AddProjectModal/AddProjectModal.jsx b/client/src/components/ProjectAddModal/ProjectAddModal.jsx
similarity index 91%
rename from client/src/components/AddProjectModal/AddProjectModal.jsx
rename to client/src/components/ProjectAddModal/ProjectAddModal.jsx
index 9b63566d..ba29f9ec 100755
--- a/client/src/components/AddProjectModal/AddProjectModal.jsx
+++ b/client/src/components/ProjectAddModal/ProjectAddModal.jsx
@@ -6,9 +6,9 @@ import { Input } from '../../lib/custom-ui';
import { useForm } from '../../hooks';
-import styles from './AddProjectModal.module.scss';
+import styles from './ProjectAddModal.module.scss';
-const AddProjectModal = React.memo(({ defaultData, isSubmitting, onCreate, onClose }) => {
+const ProjectAddModal = React.memo(({ defaultData, isSubmitting, onCreate, onClose }) => {
const [t] = useTranslation();
const [data, handleFieldChange] = useForm(() => ({
@@ -71,11 +71,11 @@ const AddProjectModal = React.memo(({ defaultData, isSubmitting, onCreate, onClo
);
});
-AddProjectModal.propTypes = {
+ProjectAddModal.propTypes = {
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
isSubmitting: PropTypes.bool.isRequired,
onCreate: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-export default AddProjectModal;
+export default ProjectAddModal;
diff --git a/client/src/components/CardModal/AddAttachmentZone/AddTextFileModal.module.scss b/client/src/components/ProjectAddModal/ProjectAddModal.module.scss
similarity index 100%
rename from client/src/components/CardModal/AddAttachmentZone/AddTextFileModal.module.scss
rename to client/src/components/ProjectAddModal/ProjectAddModal.module.scss
diff --git a/client/src/components/ProjectAddModal/index.js b/client/src/components/ProjectAddModal/index.js
new file mode 100644
index 00000000..875517c8
--- /dev/null
+++ b/client/src/components/ProjectAddModal/index.js
@@ -0,0 +1,3 @@
+import ProjectAddModal from './ProjectAddModal';
+
+export default ProjectAddModal;
diff --git a/client/src/components/TimerEditPopup.jsx b/client/src/components/TimerEditPopup.jsx
new file mode 100644
index 00000000..c59e463c
--- /dev/null
+++ b/client/src/components/TimerEditPopup.jsx
@@ -0,0 +1,5 @@
+import { withPopup } from '../lib/popup';
+
+import TimerEditStep from './TimerEditStep';
+
+export default withPopup(TimerEditStep);
diff --git a/client/src/components/EditTimerStep/EditTimerStep.jsx b/client/src/components/TimerEditStep/TimerEditStep.jsx
similarity index 96%
rename from client/src/components/EditTimerStep/EditTimerStep.jsx
rename to client/src/components/TimerEditStep/TimerEditStep.jsx
index 56699cc5..cecfb44f 100644
--- a/client/src/components/EditTimerStep/EditTimerStep.jsx
+++ b/client/src/components/TimerEditStep/TimerEditStep.jsx
@@ -9,7 +9,7 @@ import { Input, Popup } from '../../lib/custom-ui';
import { useForm } from '../../hooks';
import { createTimer, getTimerParts, startTimer, stopTimer, updateTimer } from '../../utils/timer';
-import styles from './EditTimerStep.module.scss';
+import styles from './TimerEditStep.module.scss';
const createData = (timer) => {
if (!timer) {
@@ -29,7 +29,7 @@ const createData = (timer) => {
};
};
-const EditTimerStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) => {
+const TimerEditStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) => {
const [t] = useTranslation();
const [data, handleFieldChange, setData] = useForm(() => createData(defaultValue));
const [isEditing, toggleEdit] = useToggle();
@@ -171,16 +171,16 @@ const EditTimerStep = React.memo(({ defaultValue, onUpdate, onBack, onClose }) =
);
});
-EditTimerStep.propTypes = {
+TimerEditStep.propTypes = {
defaultValue: PropTypes.object, // eslint-disable-line react/forbid-prop-types
onUpdate: PropTypes.func.isRequired,
onBack: PropTypes.func,
onClose: PropTypes.func.isRequired,
};
-EditTimerStep.defaultProps = {
+TimerEditStep.defaultProps = {
defaultValue: undefined,
onBack: undefined,
};
-export default EditTimerStep;
+export default TimerEditStep;
diff --git a/client/src/components/EditTimerStep/EditTimerStep.module.scss b/client/src/components/TimerEditStep/TimerEditStep.module.scss
similarity index 100%
rename from client/src/components/EditTimerStep/EditTimerStep.module.scss
rename to client/src/components/TimerEditStep/TimerEditStep.module.scss
diff --git a/client/src/components/TimerEditStep/index.js b/client/src/components/TimerEditStep/index.js
new file mode 100644
index 00000000..61329c29
--- /dev/null
+++ b/client/src/components/TimerEditStep/index.js
@@ -0,0 +1,3 @@
+import TimerEditStep from './TimerEditStep';
+
+export default TimerEditStep;
diff --git a/client/src/components/AddUserPopup/AddUserPopup.jsx b/client/src/components/UserAddPopup/UserAddPopup.jsx
similarity index 96%
rename from client/src/components/AddUserPopup/AddUserPopup.jsx
rename to client/src/components/UserAddPopup/UserAddPopup.jsx
index 5fc991a2..f7970fa8 100755
--- a/client/src/components/AddUserPopup/AddUserPopup.jsx
+++ b/client/src/components/UserAddPopup/UserAddPopup.jsx
@@ -10,7 +10,7 @@ import { Input, Popup } from '../../lib/custom-ui';
import { useForm } from '../../hooks';
import { isUsername } from '../../utils/validator';
-import styles from './AddUserPopup.module.scss';
+import styles from './UserAddPopup.module.scss';
const createMessage = (error) => {
if (!error) {
@@ -36,7 +36,7 @@ const createMessage = (error) => {
}
};
-const AddUserPopup = React.memo(
+const UserAddStep = React.memo(
({ defaultData, isSubmitting, error, onCreate, onMessageDismiss, onClose }) => {
const [t] = useTranslation();
const wasSubmitting = usePrevious(isSubmitting);
@@ -190,7 +190,7 @@ const AddUserPopup = React.memo(
},
);
-AddUserPopup.propTypes = {
+UserAddStep.propTypes = {
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
isSubmitting: PropTypes.bool.isRequired,
error: PropTypes.object, // eslint-disable-line react/forbid-prop-types
@@ -199,8 +199,8 @@ AddUserPopup.propTypes = {
onClose: PropTypes.func.isRequired,
};
-AddUserPopup.defaultProps = {
+UserAddStep.defaultProps = {
error: undefined,
};
-export default withPopup(AddUserPopup);
+export default withPopup(UserAddStep);
diff --git a/client/src/components/Project/ActionsPopup/EditNameStep.module.scss b/client/src/components/UserAddPopup/UserAddPopup.module.scss
similarity index 100%
rename from client/src/components/Project/ActionsPopup/EditNameStep.module.scss
rename to client/src/components/UserAddPopup/UserAddPopup.module.scss
diff --git a/client/src/components/UserAddPopup/index.js b/client/src/components/UserAddPopup/index.js
new file mode 100644
index 00000000..a61ece78
--- /dev/null
+++ b/client/src/components/UserAddPopup/index.js
@@ -0,0 +1,3 @@
+import UserAddPopup from './UserAddPopup';
+
+export default UserAddPopup;
diff --git a/client/src/components/UserSettingsModal/AccountPane/AccountPane.jsx b/client/src/components/UserSettingsModal/AccountPane/AccountPane.jsx
index d2222ae5..75fe0118 100644
--- a/client/src/components/UserSettingsModal/AccountPane/AccountPane.jsx
+++ b/client/src/components/UserSettingsModal/AccountPane/AccountPane.jsx
@@ -3,11 +3,11 @@ import PropTypes from 'prop-types';
import { useTranslation } from 'react-i18next';
import { Button, Divider, Header, Tab } from 'semantic-ui-react';
-import EditInformation from './EditInformation';
-import EditAvatarPopup from './EditAvatarPopup';
-import EditUsernamePopup from './EditUsernamePopup';
-import EditEmailPopup from './EditEmailPopup';
-import EditPasswordPopup from './EditPasswordPopup';
+import InformationEdit from './InformationEdit';
+import AvatarEditPopup from './AvatarEditPopup';
+import UsernameEditPopup from './UsernameEditPopup';
+import EmailEditPopup from './EmailEditPopup';
+import PasswordEditPopup from './PasswordEditPopup';
import User from '../../User';
import styles from './AccountPane.module.scss';
@@ -43,16 +43,16 @@ const AccountPane = React.memo(
return (
-
-
+
-
-
-
+
-
-
+
-
-
+
);
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditAvatarPopup.jsx b/client/src/components/UserSettingsModal/AccountPane/AvatarEditPopup.jsx
similarity index 87%
rename from client/src/components/UserSettingsModal/AccountPane/EditAvatarPopup.jsx
rename to client/src/components/UserSettingsModal/AccountPane/AvatarEditPopup.jsx
index c062b65d..a56d2a56 100644
--- a/client/src/components/UserSettingsModal/AccountPane/EditAvatarPopup.jsx
+++ b/client/src/components/UserSettingsModal/AccountPane/AvatarEditPopup.jsx
@@ -5,9 +5,9 @@ import { Button } from 'semantic-ui-react';
import { withPopup } from '../../../lib/popup';
import { FilePicker, Popup } from '../../../lib/custom-ui';
-import styles from './EditAvatarPopup.module.scss';
+import styles from './AvatarEditPopup.module.scss';
-const EditAvatarStep = React.memo(({ defaultValue, onUpdate, onDelete, onClose }) => {
+const AvatarEditStep = React.memo(({ defaultValue, onUpdate, onDelete, onClose }) => {
const [t] = useTranslation();
const field = useRef(null);
@@ -57,15 +57,15 @@ const EditAvatarStep = React.memo(({ defaultValue, onUpdate, onDelete, onClose }
);
});
-EditAvatarStep.propTypes = {
+AvatarEditStep.propTypes = {
defaultValue: PropTypes.string,
onUpdate: PropTypes.func.isRequired,
onDelete: PropTypes.func.isRequired,
onClose: PropTypes.func.isRequired,
};
-EditAvatarStep.defaultProps = {
+AvatarEditStep.defaultProps = {
defaultValue: undefined,
};
-export default withPopup(EditAvatarStep);
+export default withPopup(AvatarEditStep);
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditAvatarPopup.module.scss b/client/src/components/UserSettingsModal/AccountPane/AvatarEditPopup.module.scss
similarity index 100%
rename from client/src/components/UserSettingsModal/AccountPane/EditAvatarPopup.module.scss
rename to client/src/components/UserSettingsModal/AccountPane/AvatarEditPopup.module.scss
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditEmailPopup.jsx b/client/src/components/UserSettingsModal/AccountPane/EmailEditPopup.jsx
similarity index 96%
rename from client/src/components/UserSettingsModal/AccountPane/EditEmailPopup.jsx
rename to client/src/components/UserSettingsModal/AccountPane/EmailEditPopup.jsx
index c0e4fbca..6bd0fd32 100644
--- a/client/src/components/UserSettingsModal/AccountPane/EditEmailPopup.jsx
+++ b/client/src/components/UserSettingsModal/AccountPane/EmailEditPopup.jsx
@@ -9,7 +9,7 @@ import { Input, Popup } from '../../../lib/custom-ui';
import { useForm } from '../../../hooks';
-import styles from './EditEmailPopup.module.scss';
+import styles from './EmailEditPopup.module.scss';
const createMessage = (error) => {
if (!error) {
@@ -35,7 +35,7 @@ const createMessage = (error) => {
}
};
-const EditEmailStep = React.memo(
+const EmailEditStep = React.memo(
({ defaultData, email, isSubmitting, error, onUpdate, onMessageDismiss, onClose }) => {
const [t] = useTranslation();
const wasSubmitting = usePrevious(isSubmitting);
@@ -160,7 +160,7 @@ const EditEmailStep = React.memo(
},
);
-EditEmailStep.propTypes = {
+EmailEditStep.propTypes = {
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
email: PropTypes.string.isRequired,
isSubmitting: PropTypes.bool.isRequired,
@@ -170,8 +170,8 @@ EditEmailStep.propTypes = {
onClose: PropTypes.func.isRequired,
};
-EditEmailStep.defaultProps = {
+EmailEditStep.defaultProps = {
error: undefined,
};
-export default withPopup(EditEmailStep);
+export default withPopup(EmailEditStep);
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditEmailPopup.module.scss b/client/src/components/UserSettingsModal/AccountPane/EmailEditPopup.module.scss
similarity index 100%
rename from client/src/components/UserSettingsModal/AccountPane/EditEmailPopup.module.scss
rename to client/src/components/UserSettingsModal/AccountPane/EmailEditPopup.module.scss
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditInformation.jsx b/client/src/components/UserSettingsModal/AccountPane/InformationEdit.jsx
similarity index 91%
rename from client/src/components/UserSettingsModal/AccountPane/EditInformation.jsx
rename to client/src/components/UserSettingsModal/AccountPane/InformationEdit.jsx
index c87ad11f..3f0ba08a 100644
--- a/client/src/components/UserSettingsModal/AccountPane/EditInformation.jsx
+++ b/client/src/components/UserSettingsModal/AccountPane/InformationEdit.jsx
@@ -7,9 +7,9 @@ import { Button, Form, Input } from 'semantic-ui-react';
import { useForm } from '../../../hooks';
-import styles from './EditInformation.module.scss';
+import styles from './InformationEdit.module.scss';
-const EditInformation = React.memo(({ defaultData, onUpdate }) => {
+const InformationEdit = React.memo(({ defaultData, onUpdate }) => {
const [t] = useTranslation();
const [data, handleFieldChange] = useForm(() => ({
@@ -72,9 +72,9 @@ const EditInformation = React.memo(({ defaultData, onUpdate }) => {
);
});
-EditInformation.propTypes = {
+InformationEdit.propTypes = {
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
onUpdate: PropTypes.func.isRequired,
};
-export default EditInformation;
+export default InformationEdit;
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditInformation.module.scss b/client/src/components/UserSettingsModal/AccountPane/InformationEdit.module.scss
similarity index 100%
rename from client/src/components/UserSettingsModal/AccountPane/EditInformation.module.scss
rename to client/src/components/UserSettingsModal/AccountPane/InformationEdit.module.scss
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditPasswordPopup.jsx b/client/src/components/UserSettingsModal/AccountPane/PasswordEditPopup.jsx
similarity index 95%
rename from client/src/components/UserSettingsModal/AccountPane/EditPasswordPopup.jsx
rename to client/src/components/UserSettingsModal/AccountPane/PasswordEditPopup.jsx
index 2a110497..332cd13a 100644
--- a/client/src/components/UserSettingsModal/AccountPane/EditPasswordPopup.jsx
+++ b/client/src/components/UserSettingsModal/AccountPane/PasswordEditPopup.jsx
@@ -8,7 +8,7 @@ import { Input, Popup } from '../../../lib/custom-ui';
import { useForm } from '../../../hooks';
-import styles from './EditPasswordPopup.module.scss';
+import styles from './PasswordEditPopup.module.scss';
const createMessage = (error) => {
if (!error) {
@@ -29,7 +29,7 @@ const createMessage = (error) => {
}
};
-const EditPasswordStep = React.memo(
+const PasswordEditStep = React.memo(
({ defaultData, isSubmitting, error, onUpdate, onMessageDismiss, onClose }) => {
const [t] = useTranslation();
const wasSubmitting = usePrevious(isSubmitting);
@@ -133,7 +133,7 @@ const EditPasswordStep = React.memo(
},
);
-EditPasswordStep.propTypes = {
+PasswordEditStep.propTypes = {
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
isSubmitting: PropTypes.bool.isRequired,
error: PropTypes.object, // eslint-disable-line react/forbid-prop-types
@@ -142,8 +142,8 @@ EditPasswordStep.propTypes = {
onClose: PropTypes.func.isRequired,
};
-EditPasswordStep.defaultProps = {
+PasswordEditStep.defaultProps = {
error: undefined,
};
-export default withPopup(EditPasswordStep);
+export default withPopup(PasswordEditStep);
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditPasswordPopup.module.scss b/client/src/components/UserSettingsModal/AccountPane/PasswordEditPopup.module.scss
similarity index 100%
rename from client/src/components/UserSettingsModal/AccountPane/EditPasswordPopup.module.scss
rename to client/src/components/UserSettingsModal/AccountPane/PasswordEditPopup.module.scss
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditUsernamePopup.jsx b/client/src/components/UserSettingsModal/AccountPane/UsernameEditPopup.jsx
similarity index 95%
rename from client/src/components/UserSettingsModal/AccountPane/EditUsernamePopup.jsx
rename to client/src/components/UserSettingsModal/AccountPane/UsernameEditPopup.jsx
index 7fb644c0..da82e730 100644
--- a/client/src/components/UserSettingsModal/AccountPane/EditUsernamePopup.jsx
+++ b/client/src/components/UserSettingsModal/AccountPane/UsernameEditPopup.jsx
@@ -9,7 +9,7 @@ import { Input, Popup } from '../../../lib/custom-ui';
import { useForm } from '../../../hooks';
import { isUsername } from '../../../utils/validator';
-import styles from './EditUsernamePopup.module.scss';
+import styles from './UsernameEditPopup.module.scss';
const createMessage = (error) => {
if (!error) {
@@ -35,7 +35,7 @@ const createMessage = (error) => {
}
};
-const EditUsernameStep = React.memo(
+const UsernameEditStep = React.memo(
({ defaultData, username, isSubmitting, error, onUpdate, onMessageDismiss, onClose }) => {
const [t] = useTranslation();
const wasSubmitting = usePrevious(isSubmitting);
@@ -160,7 +160,7 @@ const EditUsernameStep = React.memo(
},
);
-EditUsernameStep.propTypes = {
+UsernameEditStep.propTypes = {
defaultData: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types
username: PropTypes.string,
isSubmitting: PropTypes.bool.isRequired,
@@ -170,9 +170,9 @@ EditUsernameStep.propTypes = {
onClose: PropTypes.func.isRequired,
};
-EditUsernameStep.defaultProps = {
+UsernameEditStep.defaultProps = {
username: undefined,
error: undefined,
};
-export default withPopup(EditUsernameStep);
+export default withPopup(UsernameEditStep);
diff --git a/client/src/components/UserSettingsModal/AccountPane/EditUsernamePopup.module.scss b/client/src/components/UserSettingsModal/AccountPane/UsernameEditPopup.module.scss
similarity index 100%
rename from client/src/components/UserSettingsModal/AccountPane/EditUsernamePopup.module.scss
rename to client/src/components/UserSettingsModal/AccountPane/UsernameEditPopup.module.scss
diff --git a/client/src/components/UsersModal/UsersModal.jsx b/client/src/components/UsersModal/UsersModal.jsx
index 0a81b3af..38a01c46 100755
--- a/client/src/components/UsersModal/UsersModal.jsx
+++ b/client/src/components/UsersModal/UsersModal.jsx
@@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
import { useTranslation } from 'react-i18next';
import { Button, Modal, Table } from 'semantic-ui-react';
-import AddUserPopupContainer from '../../containers/AddUserPopupContainer';
+import UserAddPopupContainer from '../../containers/UserAddPopupContainer';
import Item from './Item';
const UsersModal = React.memo(({ items, onUpdate, onDelete, onClose }) => {
@@ -57,9 +57,9 @@ const UsersModal = React.memo(({ items, onUpdate, onDelete, onClose }) => {
-
+
-
+
);
diff --git a/client/src/constants/ActionTypes.js b/client/src/constants/ActionTypes.js
index dabc357a..fb30de89 100644
--- a/client/src/constants/ActionTypes.js
+++ b/client/src/constants/ActionTypes.js
@@ -129,24 +129,6 @@ export default {
BOARD_DELETE_FAILED: 'BOARD_DELETE_FAILED',
BOARD_DELETE_RECEIVED: 'BOARD_DELETE_RECEIVED',
- /* List */
-
- LIST_CREATE: 'LIST_CREATE',
- LIST_UPDATE: 'LIST_UPDATE',
- LIST_DELETE: 'LIST_DELETE',
- LIST_CREATE_REQUESTED: 'LIST_CREATE_REQUESTED',
- LIST_CREATE_SUCCEEDED: 'LIST_CREATE_SUCCEEDED',
- LIST_CREATE_FAILED: 'LIST_CREATE_FAILED',
- LIST_CREATE_RECEIVED: 'LIST_CREATE_RECEIVED',
- LIST_UPDATE_REQUESTED: 'LIST_UPDATE_REQUESTED',
- LIST_UPDATE_SUCCEEDED: 'LIST_UPDATE_SUCCEEDED',
- LIST_UPDATE_FAILED: 'LIST_UPDATE_FAILED',
- LIST_UPDATE_RECEIVED: 'LIST_UPDATE_RECEIVED',
- LIST_DELETE_REQUESTED: 'LIST_DELETE_REQUESTED',
- LIST_DELETE_SUCCEEDED: 'LIST_DELETE_SUCCEEDED',
- LIST_DELETE_FAILED: 'LIST_DELETE_FAILED',
- LIST_DELETE_RECEIVED: 'LIST_DELETE_RECEIVED',
-
/* Label */
LABEL_CREATE: 'LABEL_CREATE',
@@ -169,6 +151,24 @@ export default {
LABEL_DELETE_FAILED: 'LABEL_DELETE_FAILED',
LABEL_DELETE_RECEIVED: 'LABEL_DELETE_RECEIVED',
+ /* List */
+
+ LIST_CREATE: 'LIST_CREATE',
+ LIST_UPDATE: 'LIST_UPDATE',
+ LIST_DELETE: 'LIST_DELETE',
+ LIST_CREATE_REQUESTED: 'LIST_CREATE_REQUESTED',
+ LIST_CREATE_SUCCEEDED: 'LIST_CREATE_SUCCEEDED',
+ LIST_CREATE_FAILED: 'LIST_CREATE_FAILED',
+ LIST_CREATE_RECEIVED: 'LIST_CREATE_RECEIVED',
+ LIST_UPDATE_REQUESTED: 'LIST_UPDATE_REQUESTED',
+ LIST_UPDATE_SUCCEEDED: 'LIST_UPDATE_SUCCEEDED',
+ LIST_UPDATE_FAILED: 'LIST_UPDATE_FAILED',
+ LIST_UPDATE_RECEIVED: 'LIST_UPDATE_RECEIVED',
+ LIST_DELETE_REQUESTED: 'LIST_DELETE_REQUESTED',
+ LIST_DELETE_SUCCEEDED: 'LIST_DELETE_SUCCEEDED',
+ LIST_DELETE_FAILED: 'LIST_DELETE_FAILED',
+ LIST_DELETE_RECEIVED: 'LIST_DELETE_RECEIVED',
+
/* Card */
CARD_CREATE: 'CARD_CREATE',
diff --git a/client/src/constants/EntryActionTypes.js b/client/src/constants/EntryActionTypes.js
index 4b0c7398..b9cac35a 100755
--- a/client/src/constants/EntryActionTypes.js
+++ b/client/src/constants/EntryActionTypes.js
@@ -55,13 +55,6 @@ export default {
BOARD_MOVE: `${PREFIX}/BOARD_MOVE`,
BOARD_DELETE: `${PREFIX}/BOARD_DELETE`,
- /* List */
-
- LIST_IN_CURRENT_BOARD_CREATE: `${PREFIX}/LIST_IN_CURRENT_BOARD_CREATE`,
- LIST_UPDATE: `${PREFIX}/LIST_UPDATE`,
- LIST_MOVE: `${PREFIX}/LIST_MOVE`,
- LIST_DELETE: `${PREFIX}/LIST_DELETE`,
-
/* Label */
LABEL_IN_CURRENT_BOARD_CREATE: `${PREFIX}/LABEL_IN_CURRENT_BOARD_CREATE`,
@@ -74,6 +67,13 @@ export default {
LABEL_TO_FILTER_IN_CURRENT_BOARD_ADD: `${PREFIX}/LABEL_TO_FILTER_IN_CURRENT_BOARD_ADD`,
LABEL_FROM_FILTER_IN_CURRENT_BOARD_REMOVE: `${PREFIX}/LABEL_FROM_FILTER_IN_CURRENT_BOARD_REMOVE`,
+ /* List */
+
+ LIST_IN_CURRENT_BOARD_CREATE: `${PREFIX}/LIST_IN_CURRENT_BOARD_CREATE`,
+ LIST_UPDATE: `${PREFIX}/LIST_UPDATE`,
+ LIST_MOVE: `${PREFIX}/LIST_MOVE`,
+ LIST_DELETE: `${PREFIX}/LIST_DELETE`,
+
/* Card */
CARD_CREATE: `${PREFIX}/CARD_CREATE`,
diff --git a/client/src/constants/Enums.js b/client/src/constants/Enums.js
index 400c252d..1479f499 100755
--- a/client/src/constants/Enums.js
+++ b/client/src/constants/Enums.js
@@ -3,6 +3,10 @@ export const ProjectBackgroundTypes = {
IMAGE: 'image',
};
+export const BoardTypes = {
+ KANBAN: 'kanban',
+};
+
export const ActionTypes = {
CREATE_CARD: 'createCard',
MOVE_CARD: 'moveCard',
diff --git a/client/src/constants/ModalTypes.js b/client/src/constants/ModalTypes.js
index 83032401..64ce49e8 100755
--- a/client/src/constants/ModalTypes.js
+++ b/client/src/constants/ModalTypes.js
@@ -1,9 +1,9 @@
const USERS = 'USERS';
const USER_SETTINGS = 'USER_SETTINGS';
-const ADD_PROJECT = 'ADD_PROJECT';
+const PROJECT_ADD = 'PROJECT_ADD';
export default {
USERS,
USER_SETTINGS,
- ADD_PROJECT,
+ PROJECT_ADD,
};
diff --git a/client/src/containers/BoardContainer.js b/client/src/containers/BoardKanbanContainer.js
similarity index 96%
rename from client/src/containers/BoardContainer.js
rename to client/src/containers/BoardKanbanContainer.js
index 412db609..9f8027ce 100755
--- a/client/src/containers/BoardContainer.js
+++ b/client/src/containers/BoardKanbanContainer.js
@@ -21,13 +21,13 @@ import {
removeUserFromFilterInCurrentBoard,
updateLabel,
} from '../actions/entry';
-import Board from '../components/Board';
+import BoardKanban from '../components/BoardKanban';
const mapStateToProps = (state) => {
const { cardId } = pathSelector(state);
const allProjectMemberships = membershipsForCurrentProjectSelector(state);
- const listIds = listIdsForCurrentBoardSelector(state);
const allLabels = labelsForCurrentBoardSelector(state);
+ const listIds = listIdsForCurrentBoardSelector(state);
const filterUsers = filterUsersForCurrentBoardSelector(state);
const filterLabels = filterLabelsForCurrentBoardSelector(state);
@@ -45,8 +45,8 @@ const mapDispatchToProps = (dispatch) =>
bindActionCreators(
{
onListCreate: createListInCurrentBoard,
- onCardMove: moveCard,
onListMove: moveList,
+ onCardMove: moveCard,
onUserToFilterAdd: addUserToFilterInCurrentBoard,
onUserFromFilterRemove: removeUserFromFilterInCurrentBoard,
onLabelToFilterAdd: addLabelToFilterInCurrentBoard,
@@ -58,4 +58,4 @@ const mapDispatchToProps = (dispatch) =>
dispatch,
);
-export default connect(mapStateToProps, mapDispatchToProps)(Board);
+export default connect(mapStateToProps, mapDispatchToProps)(BoardKanban);
diff --git a/client/src/containers/BoardWrapperContainer.js b/client/src/containers/BoardWrapperContainer.js
index 2a8d0ac4..d58886cb 100755
--- a/client/src/containers/BoardWrapperContainer.js
+++ b/client/src/containers/BoardWrapperContainer.js
@@ -4,9 +4,10 @@ import { currentBoardSelector } from '../selectors';
import BoardWrapper from '../components/BoardWrapper';
const mapStateToProps = (state) => {
- const { isFetching } = currentBoardSelector(state);
+ const { type, isFetching } = currentBoardSelector(state);
return {
+ type,
isFetching,
};
};
diff --git a/client/src/containers/CardContainer.js b/client/src/containers/CardContainer.js
index a768a422..7722668d 100755
--- a/client/src/containers/CardContainer.js
+++ b/client/src/containers/CardContainer.js
@@ -41,7 +41,7 @@ const makeMapStateToProps = () => {
const allProjectMemberships = membershipsForCurrentProjectSelector(state);
const allLabels = labelsForCurrentBoardSelector(state);
- const { name, dueDate, timer, coverUrl, listId, boardId, isPersisted } = cardByIdSelector(
+ const { name, dueDate, timer, coverUrl, boardId, listId, isPersisted } = cardByIdSelector(
state,
id,
);
@@ -58,8 +58,8 @@ const makeMapStateToProps = () => {
dueDate,
timer,
coverUrl,
- listId,
boardId,
+ listId,
projectId,
isPersisted,
notificationsTotal,
diff --git a/client/src/containers/CardModalContainer.js b/client/src/containers/CardModalContainer.js
index e0d7d26e..bcce3870 100755
--- a/client/src/containers/CardModalContainer.js
+++ b/client/src/containers/CardModalContainer.js
@@ -58,8 +58,8 @@ const mapStateToProps = (state) => {
isSubscribed,
isActionsFetching,
isAllActionsFetched,
- listId,
boardId,
+ listId,
} = currentCardSelector(state);
const users = usersForCurrentCardSelector(state);
diff --git a/client/src/containers/AddProjectModalContainer.js b/client/src/containers/ProjectAddModalContainer.js
similarity index 75%
rename from client/src/containers/AddProjectModalContainer.js
rename to client/src/containers/ProjectAddModalContainer.js
index 7b7c827d..1325cedc 100755
--- a/client/src/containers/AddProjectModalContainer.js
+++ b/client/src/containers/ProjectAddModalContainer.js
@@ -2,7 +2,7 @@ import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { closeModal, createProject } from '../actions/entry';
-import AddProjectModal from '../components/AddProjectModal';
+import ProjectAddModal from '../components/ProjectAddModal';
const mapStateToProps = ({ projectCreateForm: { data: defaultData, isSubmitting } }) => ({
defaultData,
@@ -18,4 +18,4 @@ const mapDispatchToProps = (dispatch) =>
dispatch,
);
-export default connect(mapStateToProps, mapDispatchToProps)(AddProjectModal);
+export default connect(mapStateToProps, mapDispatchToProps)(ProjectAddModal);
diff --git a/client/src/containers/ProjectsContainer.js b/client/src/containers/ProjectsContainer.js
index 69446559..69f4f02b 100755
--- a/client/src/containers/ProjectsContainer.js
+++ b/client/src/containers/ProjectsContainer.js
@@ -2,7 +2,7 @@ import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { currentUserSelector, projectsForCurrentUserSelector } from '../selectors';
-import { openAddProjectModal } from '../actions/entry';
+import { openProjectAddModal } from '../actions/entry';
import Projects from '../components/Projects';
const mapStateToProps = (state) => {
@@ -18,7 +18,7 @@ const mapStateToProps = (state) => {
const mapDispatchToProps = (dispatch) =>
bindActionCreators(
{
- onAdd: openAddProjectModal,
+ onAdd: openProjectAddModal,
},
dispatch,
);
diff --git a/client/src/containers/AddUserPopupContainer.js b/client/src/containers/UserAddPopupContainer.js
similarity index 78%
rename from client/src/containers/AddUserPopupContainer.js
rename to client/src/containers/UserAddPopupContainer.js
index 0f2dcf83..4a6cae2b 100755
--- a/client/src/containers/AddUserPopupContainer.js
+++ b/client/src/containers/UserAddPopupContainer.js
@@ -2,7 +2,7 @@ import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
import { clearUserCreateError, createUser } from '../actions/entry';
-import AddUserPopup from '../components/AddUserPopup';
+import UserAddPopup from '../components/UserAddPopup';
const mapStateToProps = ({ userCreateForm: { data: defaultData, isSubmitting, error } }) => ({
defaultData,
@@ -19,4 +19,4 @@ const mapDispatchToProps = (dispatch) =>
dispatch,
);
-export default connect(mapStateToProps, mapDispatchToProps)(AddUserPopup);
+export default connect(mapStateToProps, mapDispatchToProps)(UserAddPopup);
diff --git a/client/src/models/Board.js b/client/src/models/Board.js
index 2eec0220..207c9553 100755
--- a/client/src/models/Board.js
+++ b/client/src/models/Board.js
@@ -7,6 +7,7 @@ export default class extends Model {
static fields = {
id: attr(),
+ type: attr(),
position: attr(),
name: attr(),
isFetching: attr({
diff --git a/client/src/models/Card.js b/client/src/models/Card.js
index 9ad77436..877dab9f 100755
--- a/client/src/models/Card.js
+++ b/client/src/models/Card.js
@@ -22,16 +22,16 @@ export default class extends Model {
isAllActionsFetched: attr({
getDefault: () => false,
}),
- listId: fk({
- to: 'List',
- as: 'list',
- relatedName: 'cards',
- }),
boardId: fk({
to: 'Board',
as: 'board',
relatedName: 'cards',
}),
+ listId: fk({
+ to: 'List',
+ as: 'list',
+ relatedName: 'cards',
+ }),
coverAttachmentId: oneToOne({
to: 'Attachment',
as: 'coverAttachment',
diff --git a/client/src/models/index.js b/client/src/models/index.js
index e2e92001..f7748ee9 100755
--- a/client/src/models/index.js
+++ b/client/src/models/index.js
@@ -2,8 +2,8 @@ import User from './User';
import Project from './Project';
import ProjectMembership from './ProjectMembership';
import Board from './Board';
-import List from './List';
import Label from './Label';
+import List from './List';
import Card from './Card';
import Task from './Task';
import Attachment from './Attachment';
@@ -15,8 +15,8 @@ export {
Project,
ProjectMembership,
Board,
- List,
Label,
+ List,
Card,
Task,
Attachment,
diff --git a/client/src/orm.js b/client/src/orm.js
index efe74970..503db4a6 100755
--- a/client/src/orm.js
+++ b/client/src/orm.js
@@ -23,8 +23,8 @@ orm.register(
Project,
ProjectMembership,
Board,
- List,
Label,
+ List,
Card,
Task,
Attachment,
diff --git a/client/src/sagas/core/index.js b/client/src/sagas/core/index.js
index 97e09ba7..41682624 100755
--- a/client/src/sagas/core/index.js
+++ b/client/src/sagas/core/index.js
@@ -7,7 +7,7 @@ import { removeAccessToken } from '../../utils/access-token-storage';
import ActionTypes from '../../constants/ActionTypes';
import Paths from '../../constants/Paths';
-export default function* () {
+export default function* coreSaga() {
yield all(watchers.map((watcher) => fork(watcher)));
yield apply(socket, socket.connect);
diff --git a/client/src/sagas/core/requests/board.js b/client/src/sagas/core/requests/board.js
index 7e826adc..04def426 100644
--- a/client/src/sagas/core/requests/board.js
+++ b/client/src/sagas/core/requests/board.js
@@ -55,13 +55,13 @@ export function* fetchBoardRequest(id) {
try {
const {
item,
- included: { lists, labels, cards, cardMemberships, cardLabels, tasks, attachments },
+ included: { labels, lists, cards, cardMemberships, cardLabels, tasks, attachments },
} = yield call(request, api.getBoard, id);
const action = fetchBoardSucceeded(
item,
- lists,
labels,
+ lists,
cards,
cardMemberships,
cardLabels,
diff --git a/client/src/sagas/core/requests/card.js b/client/src/sagas/core/requests/card.js
index 772f400f..6f808859 100644
--- a/client/src/sagas/core/requests/card.js
+++ b/client/src/sagas/core/requests/card.js
@@ -17,11 +17,11 @@ import {
} from '../../../actions';
import api from '../../../api';
-export function* createCardRequest(listId, localId, data) {
+export function* createCardRequest(boardId, localId, data) {
yield put(
createCardRequested(localId, {
...data,
- listId,
+ boardId,
}),
);
@@ -29,7 +29,7 @@ export function* createCardRequest(listId, localId, data) {
const {
item,
included: { cardMemberships, cardLabels, tasks, attachments },
- } = yield call(request, api.createCard, listId, data);
+ } = yield call(request, api.createCard, boardId, data);
const action = createCardSucceeded(
localId,
diff --git a/client/src/sagas/core/requests/index.js b/client/src/sagas/core/requests/index.js
index f762ec78..c4e3f3b9 100644
--- a/client/src/sagas/core/requests/index.js
+++ b/client/src/sagas/core/requests/index.js
@@ -4,8 +4,8 @@ export * from './projects';
export * from './project';
export * from './project-membership';
export * from './board';
-export * from './list';
export * from './label';
+export * from './list';
export * from './card';
export * from './card-membership';
export * from './card-label';
diff --git a/client/src/sagas/core/requests/request.js b/client/src/sagas/core/requests/request.js
index f61acaf2..7d8025a0 100755
--- a/client/src/sagas/core/requests/request.js
+++ b/client/src/sagas/core/requests/request.js
@@ -4,7 +4,7 @@ import { accessTokenSelector } from '../../../selectors';
import { logout } from '../../../actions';
import ErrorCodes from '../../../constants/ErrorCodes';
-export default function* (method, ...args) {
+export default function* request(method, ...args) {
try {
const accessToken = yield select(accessTokenSelector);
diff --git a/client/src/sagas/core/services/card.js b/client/src/sagas/core/services/card.js
index 4a668cc9..42bb3695 100644
--- a/client/src/sagas/core/services/card.js
+++ b/client/src/sagas/core/services/card.js
@@ -11,6 +11,7 @@ export function* createCardService(listId, data) {
const nextData = {
...data,
+ listId,
position: yield select(nextCardPositionSelector, listId),
};
@@ -19,13 +20,12 @@ export function* createCardService(listId, data) {
yield put(
createCard({
...nextData,
- listId,
boardId,
id: localId,
}),
);
- yield call(createCardRequest, listId, localId, nextData);
+ yield call(createCardRequest, boardId, localId, nextData);
}
export function* updateCardService(id, data) {
@@ -65,8 +65,8 @@ export function* transferCardService(id, boardId, listId, index) {
yield put(deleteCard(id));
yield call(updateCardRequest, id, {
- listId,
boardId,
+ listId,
position,
});
}
diff --git a/client/src/sagas/core/services/index.js b/client/src/sagas/core/services/index.js
index 86f81092..cb555d68 100644
--- a/client/src/sagas/core/services/index.js
+++ b/client/src/sagas/core/services/index.js
@@ -7,8 +7,8 @@ export * from './user';
export * from './project';
export * from './project-membership';
export * from './board';
-export * from './list';
export * from './label';
+export * from './list';
export * from './card';
export * from './task';
export * from './attachment';
diff --git a/client/src/sagas/core/watchers/actions.js b/client/src/sagas/core/watchers/actions.js
index c5ec16c8..a40e7091 100644
--- a/client/src/sagas/core/watchers/actions.js
+++ b/client/src/sagas/core/watchers/actions.js
@@ -3,7 +3,7 @@ import { takeLatest } from 'redux-saga/effects';
import { fetchActionsInCurrentCardService } from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* actionsWatchers() {
yield takeLatest(EntryActionTypes.ACTIONS_IN_CURRENT_CARD_FETCH, () =>
fetchActionsInCurrentCardService(),
);
diff --git a/client/src/sagas/core/watchers/attachment.js b/client/src/sagas/core/watchers/attachment.js
index b5dd87ec..39f5a8ff 100644
--- a/client/src/sagas/core/watchers/attachment.js
+++ b/client/src/sagas/core/watchers/attachment.js
@@ -7,7 +7,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* attachmentWatchers() {
yield all([
takeLatest(EntryActionTypes.ATTACHMENT_IN_CURRENT_CARD_CREATE, ({ payload: { data } }) =>
createAttachmentInCurrentCardService(data),
diff --git a/client/src/sagas/core/watchers/board.js b/client/src/sagas/core/watchers/board.js
index 919e0265..1aba2509 100644
--- a/client/src/sagas/core/watchers/board.js
+++ b/client/src/sagas/core/watchers/board.js
@@ -9,7 +9,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* boardWatchers() {
yield all([
takeLatest(EntryActionTypes.BOARD_IN_CURRENT_PROJECT_CREATE, ({ payload: { data } }) =>
createBoardInCurrentProjectService(data),
diff --git a/client/src/sagas/core/watchers/card.js b/client/src/sagas/core/watchers/card.js
index 699ee6f5..f22523d6 100644
--- a/client/src/sagas/core/watchers/card.js
+++ b/client/src/sagas/core/watchers/card.js
@@ -13,7 +13,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* cardWatchers() {
yield all([
takeLatest(EntryActionTypes.CARD_CREATE, ({ payload: { listId, data } }) =>
createCardService(listId, data),
diff --git a/client/src/sagas/core/watchers/comment-action.js b/client/src/sagas/core/watchers/comment-action.js
index 685ca2ac..8c70edbd 100644
--- a/client/src/sagas/core/watchers/comment-action.js
+++ b/client/src/sagas/core/watchers/comment-action.js
@@ -7,7 +7,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* commentActionWatchers() {
yield all([
takeLatest(EntryActionTypes.COMMENT_ACTION_IN_CURRENT_CARD_CREATE, ({ payload: { data } }) =>
createCommentActionInCurrentCardService(data),
diff --git a/client/src/sagas/core/watchers/index.js b/client/src/sagas/core/watchers/index.js
index e7de1613..77be27b6 100755
--- a/client/src/sagas/core/watchers/index.js
+++ b/client/src/sagas/core/watchers/index.js
@@ -6,8 +6,8 @@ import user from './user';
import project from './project';
import projectMembership from './project-membership';
import board from './board';
-import list from './list';
import label from './label';
+import list from './list';
import card from './card';
import task from './task';
import attachment from './attachment';
@@ -24,8 +24,8 @@ export default [
project,
projectMembership,
board,
- list,
label,
+ list,
card,
task,
attachment,
diff --git a/client/src/sagas/core/watchers/label.js b/client/src/sagas/core/watchers/label.js
index 83d4d946..a7202517 100644
--- a/client/src/sagas/core/watchers/label.js
+++ b/client/src/sagas/core/watchers/label.js
@@ -13,7 +13,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* labelWatchers() {
yield all([
takeLatest(EntryActionTypes.LABEL_IN_CURRENT_BOARD_CREATE, ({ payload: { data } }) =>
createLabelInCurrentBoardService(data),
diff --git a/client/src/sagas/core/watchers/list.js b/client/src/sagas/core/watchers/list.js
index 8104dfe8..6b3e8bad 100644
--- a/client/src/sagas/core/watchers/list.js
+++ b/client/src/sagas/core/watchers/list.js
@@ -8,7 +8,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* listWatchers() {
yield all([
takeLatest(EntryActionTypes.LIST_IN_CURRENT_BOARD_CREATE, ({ payload: { data } }) =>
createListInCurrentBoardService(data),
diff --git a/client/src/sagas/core/watchers/login.js b/client/src/sagas/core/watchers/login.js
index 4c73f70b..e0519f45 100644
--- a/client/src/sagas/core/watchers/login.js
+++ b/client/src/sagas/core/watchers/login.js
@@ -3,6 +3,6 @@ import { takeLatest } from 'redux-saga/effects';
import { logoutService } from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* loginWatchers() {
yield takeLatest(EntryActionTypes.LOGOUT, () => logoutService());
}
diff --git a/client/src/sagas/core/watchers/modal.js b/client/src/sagas/core/watchers/modal.js
index 2663d5c1..d22dc781 100644
--- a/client/src/sagas/core/watchers/modal.js
+++ b/client/src/sagas/core/watchers/modal.js
@@ -3,7 +3,7 @@ import { all, takeLatest } from 'redux-saga/effects';
import { closeModalService, openModalService } from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* modalWatchers() {
yield all([
takeLatest(EntryActionTypes.MODAL_OPEN, ({ payload: { type } }) => openModalService(type)),
takeLatest(EntryActionTypes.MODAL_CLOSE, () => closeModalService()),
diff --git a/client/src/sagas/core/watchers/notification.js b/client/src/sagas/core/watchers/notification.js
index 8fc091bb..83aeec48 100644
--- a/client/src/sagas/core/watchers/notification.js
+++ b/client/src/sagas/core/watchers/notification.js
@@ -3,7 +3,7 @@ import { takeLatest } from 'redux-saga/effects';
import { deleteNotificationService } from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* notificationWatchers() {
yield takeLatest(EntryActionTypes.NOTIFICATION_DELETE, ({ payload: { id } }) =>
deleteNotificationService(id),
);
diff --git a/client/src/sagas/core/watchers/project-membership.js b/client/src/sagas/core/watchers/project-membership.js
index 2d587a1e..4a46505c 100644
--- a/client/src/sagas/core/watchers/project-membership.js
+++ b/client/src/sagas/core/watchers/project-membership.js
@@ -6,7 +6,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* projectMembershipWatchers() {
yield all([
takeLatest(EntryActionTypes.MEMBERSHIP_IN_CURRENT_PROJECT_CREATE, ({ payload: { data } }) =>
createMembershipInCurrentProjectService(data),
diff --git a/client/src/sagas/core/watchers/project.js b/client/src/sagas/core/watchers/project.js
index d16d93fe..b24f1910 100644
--- a/client/src/sagas/core/watchers/project.js
+++ b/client/src/sagas/core/watchers/project.js
@@ -8,7 +8,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* projectWatchers() {
yield all([
takeLatest(EntryActionTypes.PROJECT_CREATE, ({ payload: { data } }) =>
createProjectService(data),
diff --git a/client/src/sagas/core/watchers/router.js b/client/src/sagas/core/watchers/router.js
index 5670b4c2..75c58e4a 100755
--- a/client/src/sagas/core/watchers/router.js
+++ b/client/src/sagas/core/watchers/router.js
@@ -3,6 +3,6 @@ import { LOCATION_CHANGE } from 'connected-react-router';
import { locationChangedService } from '../services';
-export default function* () {
+export default function* routerWatchers() {
yield takeEvery(LOCATION_CHANGE, () => locationChangedService());
}
diff --git a/client/src/sagas/core/watchers/socket.js b/client/src/sagas/core/watchers/socket.js
index 5cb2c637..5b94278b 100644
--- a/client/src/sagas/core/watchers/socket.js
+++ b/client/src/sagas/core/watchers/socket.js
@@ -304,7 +304,7 @@ const createSocketEventsChannel = () =>
};
});
-export default function* () {
+export default function* socketWatchers() {
const socketEventsChannel = yield call(createSocketEventsChannel);
try {
diff --git a/client/src/sagas/core/watchers/task.js b/client/src/sagas/core/watchers/task.js
index cebc404b..4a0abae7 100644
--- a/client/src/sagas/core/watchers/task.js
+++ b/client/src/sagas/core/watchers/task.js
@@ -3,7 +3,7 @@ import { all, takeLatest } from 'redux-saga/effects';
import { createTaskInCurrentCardService, deleteTaskService, updateTaskService } from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* taskWatchers() {
yield all([
takeLatest(EntryActionTypes.TASK_IN_CURRENT_CARD_CREATE, ({ payload: { data } }) =>
createTaskInCurrentCardService(data),
diff --git a/client/src/sagas/core/watchers/user.js b/client/src/sagas/core/watchers/user.js
index ff54d574..70776d1e 100644
--- a/client/src/sagas/core/watchers/user.js
+++ b/client/src/sagas/core/watchers/user.js
@@ -22,7 +22,7 @@ import {
} from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* userWatchers() {
yield all([
takeLatest(EntryActionTypes.USER_CREATE, ({ payload: { data } }) => createUserService(data)),
takeLatest(EntryActionTypes.USER_CREATE_ERROR_CLEAR, () => clearUserCreateErrorService()),
diff --git a/client/src/sagas/index.js b/client/src/sagas/index.js
index 0c0895b3..84e84aed 100755
--- a/client/src/sagas/index.js
+++ b/client/src/sagas/index.js
@@ -4,7 +4,7 @@ import loginSaga from './login';
import coreSaga from './core';
import { accessTokenSelector } from '../selectors';
-export default function* () {
+export default function* rootSaga() {
const accessToken = yield select(accessTokenSelector);
if (!accessToken) {
diff --git a/client/src/sagas/login/index.js b/client/src/sagas/login/index.js
index 9877c4c4..4a437204 100755
--- a/client/src/sagas/login/index.js
+++ b/client/src/sagas/login/index.js
@@ -5,7 +5,7 @@ import { goToRootService } from './services';
import { setAccessToken } from '../../utils/access-token-storage';
import ActionTypes from '../../constants/ActionTypes';
-export default function* () {
+export default function* loginSaga() {
const watcherTasks = yield all(watchers.map((watcher) => fork(watcher)));
const {
diff --git a/client/src/sagas/login/watchers/login.js b/client/src/sagas/login/watchers/login.js
index 0210adca..f4ae09ec 100644
--- a/client/src/sagas/login/watchers/login.js
+++ b/client/src/sagas/login/watchers/login.js
@@ -3,7 +3,7 @@ import { all, takeLatest } from 'redux-saga/effects';
import { authenticateService, clearAuthenticateErrorService } from '../services';
import EntryActionTypes from '../../../constants/EntryActionTypes';
-export default function* () {
+export default function* loginWatchers() {
yield all([
takeLatest(EntryActionTypes.AUTHENTICATE, ({ payload: { data } }) => authenticateService(data)),
takeLatest(EntryActionTypes.AUTHENTICATE_ERROR_CLEAR, () => clearAuthenticateErrorService()),
diff --git a/client/src/sagas/login/watchers/router.js b/client/src/sagas/login/watchers/router.js
index 5670b4c2..75c58e4a 100755
--- a/client/src/sagas/login/watchers/router.js
+++ b/client/src/sagas/login/watchers/router.js
@@ -3,6 +3,6 @@ import { LOCATION_CHANGE } from 'connected-react-router';
import { locationChangedService } from '../services';
-export default function* () {
+export default function* routerWatchers() {
yield takeEvery(LOCATION_CHANGE, () => locationChangedService());
}
diff --git a/client/src/selectors/current.js b/client/src/selectors/current.js
index af2d604f..489ad52a 100755
--- a/client/src/selectors/current.js
+++ b/client/src/selectors/current.js
@@ -210,27 +210,6 @@ export const currentBoardSelector = createSelector(
},
);
-export const listIdsForCurrentBoardSelector = createSelector(
- orm,
- (state) => pathSelector(state).boardId,
- ({ Board }, id) => {
- if (!id) {
- return id;
- }
-
- const boardModel = Board.withId(id);
-
- if (!boardModel) {
- return boardModel;
- }
-
- return boardModel
- .getOrderedListsQuerySet()
- .toRefArray()
- .map((list) => list.id);
- },
-);
-
export const labelsForCurrentBoardSelector = createSelector(
orm,
(state) => pathSelector(state).boardId,
@@ -252,6 +231,27 @@ export const labelsForCurrentBoardSelector = createSelector(
},
);
+export const listIdsForCurrentBoardSelector = createSelector(
+ orm,
+ (state) => pathSelector(state).boardId,
+ ({ Board }, id) => {
+ if (!id) {
+ return id;
+ }
+
+ const boardModel = Board.withId(id);
+
+ if (!boardModel) {
+ return boardModel;
+ }
+
+ return boardModel
+ .getOrderedListsQuerySet()
+ .toRefArray()
+ .map((list) => list.id);
+ },
+);
+
export const filterUsersForCurrentBoardSelector = createSelector(
orm,
(state) => pathSelector(state).boardId,
diff --git a/package-lock.json b/package-lock.json
index 29d7f84c..d514c572 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,49 +5,31 @@
"requires": true,
"dependencies": {
"@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.8.3"
+ "@babel/highlight": "^7.10.4"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.9.5",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz",
- "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
"@babel/highlight": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz",
- "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.9.0",
+ "@babel/helper-validator-identifier": "^7.10.4",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
},
- "@babel/runtime": {
- "version": "7.9.2",
- "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz",
- "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==",
- "dev": true,
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@samverschueren/stream-to-observable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz",
- "integrity": "sha512-MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==",
- "dev": true,
- "requires": {
- "any-observable": "^0.3.0"
- }
- },
"@types/color-name": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
@@ -71,9 +53,9 @@
}
},
"ansi-colors": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
- "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==",
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
"dev": true
},
"ansi-escapes": {
@@ -100,12 +82,6 @@
"color-convert": "^1.9.0"
}
},
- "any-observable": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.3.0.tgz",
- "integrity": "sha512-/FQM1EDkTsf63Ub2C6O7GuYFDsSXUwsaZDurV0np41ocwq0jthUAYCmhBX9f+KwlaCgIuWyr/4WlUQUBfKfZog==",
- "dev": true
- },
"astral-regex": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
@@ -237,12 +213,6 @@
"wrap-ansi": "^5.1.0"
}
},
- "clone": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
- "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
- "dev": true
- },
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -301,9 +271,9 @@
},
"dependencies": {
"parse-json": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz",
- "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz",
+ "integrity": "sha512-ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -315,9 +285,9 @@
}
},
"cross-spawn": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz",
- "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==",
+ "version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"requires": {
"path-key": "^3.1.0",
@@ -326,9 +296,9 @@
}
},
"date-fns": {
- "version": "2.12.0",
- "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.12.0.tgz",
- "integrity": "sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw==",
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.15.0.tgz",
+ "integrity": "sha512-ZCPzAMJZn3rNUvvQIMlXhDr4A+Ar07eLeGsGREoWU19a3Pqf5oYa+ccd+B3F6XVtQY6HANMFdOQ8A+ipFnvJdQ==",
"dev": true
},
"debug": {
@@ -352,21 +322,6 @@
"integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=",
"dev": true
},
- "defaults": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
- "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
- "dev": true,
- "requires": {
- "clone": "^1.0.2"
- }
- },
- "elegant-spinner": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-2.0.0.tgz",
- "integrity": "sha512-5YRYHhvhYzV/FC4AiMdeSIg3jAYGq9xFvbhZMpPlJoBsfYgrw2DSCYeXfat6tYBu45PWiyRr3+flaCPPmviPaA==",
- "dev": true
- },
"emoji-regex": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
@@ -383,12 +338,12 @@
}
},
"enquirer": {
- "version": "2.3.5",
- "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.5.tgz",
- "integrity": "sha512-BNT1C08P9XD0vNg3J475yIUG+mVdp9T6towYFHUv897X0KoHBjB1shyrNmhmtHWKP17iSWgo7Gqh7BBuzLZMSA==",
+ "version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
"dev": true,
"requires": {
- "ansi-colors": "^3.2.1"
+ "ansi-colors": "^4.1.1"
}
},
"error-ex": {
@@ -407,9 +362,9 @@
"dev": true
},
"execa": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz",
- "integrity": "sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz",
+ "integrity": "sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
@@ -527,9 +482,9 @@
}
},
"chalk": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
- "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -645,19 +600,21 @@
"dev": true
},
"lint-staged": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.0.tgz",
- "integrity": "sha512-4Dw2XMtEOGpICl0wvicE5KT/eFlt/kmwMmpNS4v09I/ywRWuR5udbMWjdfZez24jE6r0bQmPpkLZ1+wUGE1S+w==",
+ "version": "10.2.11",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.2.11.tgz",
+ "integrity": "sha512-LRRrSogzbixYaZItE2APaS4l2eJMjjf5MbclRZpLJtcQJShcvUzKXsNeZgsLIZ0H0+fg2tL4B59fU9wHIHtFIA==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
- "commander": "^5.0.0",
+ "cli-truncate": "2.1.0",
+ "commander": "^5.1.0",
"cosmiconfig": "^6.0.0",
"debug": "^4.1.1",
"dedent": "^0.7.0",
- "execa": "^4.0.0",
- "listr2": "1.3.8",
- "log-symbols": "^3.0.0",
+ "enquirer": "^2.3.5",
+ "execa": "^4.0.1",
+ "listr2": "^2.1.0",
+ "log-symbols": "^4.0.0",
"micromatch": "^4.0.2",
"normalize-path": "^3.0.0",
"please-upgrade-node": "^3.2.0",
@@ -676,9 +633,9 @@
}
},
"chalk": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz",
- "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -718,25 +675,19 @@
}
},
"listr2": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/listr2/-/listr2-1.3.8.tgz",
- "integrity": "sha512-iRDRVTgSDz44tBeBBg/35TQz4W+EZBWsDUq7hPpqeUHm7yLPNll0rkwW3lIX9cPAK7l+x95mGWLpxjqxftNfZA==",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-2.4.1.tgz",
+ "integrity": "sha512-8pYsCZCztr5+KAjReLyBeGhLV0vaQ2Du/eMe/ux9QAfQl7efiWejM1IWjALh0zHIRYuIbhQ8N2KztZ4ci56pnQ==",
"dev": true,
"requires": {
- "@samverschueren/stream-to-observable": "^0.3.0",
- "chalk": "^3.0.0",
- "cli-cursor": "^3.1.0",
+ "chalk": "^4.1.0",
"cli-truncate": "^2.1.0",
- "elegant-spinner": "^2.0.0",
- "enquirer": "^2.3.4",
"figures": "^3.2.0",
"indent-string": "^4.0.0",
"log-update": "^4.0.0",
"p-map": "^4.0.0",
- "pad": "^3.2.0",
- "rxjs": "^6.3.3",
- "through": "^2.3.8",
- "uuid": "^7.0.2"
+ "rxjs": "^6.6.0",
+ "through": "^2.3.8"
},
"dependencies": {
"ansi-styles": {
@@ -750,9 +701,9 @@
}
},
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -802,18 +753,70 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==",
"dev": true
},
"log-symbols": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
- "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
+ "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
"dev": true,
"requires": {
- "chalk": "^2.4.2"
+ "chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "chalk": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
+ "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"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
}
},
"log-update": {
@@ -980,18 +983,18 @@
}
},
"onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz",
+ "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==",
"dev": true,
"requires": {
"mimic-fn": "^2.1.0"
}
},
"opencollective-postinstall": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz",
- "integrity": "sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==",
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
+ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
"dev": true
},
"p-limit": {
@@ -1027,15 +1030,6 @@
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
"dev": true
},
- "pad": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/pad/-/pad-3.2.0.tgz",
- "integrity": "sha512-2u0TrjcGbOjBTJpyewEl4hBO3OeX5wWue7eIFPzQTg6wFSvoaHcBTTUY5m+n0hd04gmTCPuY0kCpVIVuw5etwg==",
- "dev": true,
- "requires": {
- "wcwidth": "^1.0.1"
- }
- },
"parent-module": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
@@ -1166,12 +1160,6 @@
"pify": "^3.0.0"
}
},
- "regenerator-runtime": {
- "version": "0.13.5",
- "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz",
- "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==",
- "dev": true
- },
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
@@ -1210,9 +1198,9 @@
}
},
"rxjs": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
- "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz",
+ "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
@@ -1320,9 +1308,9 @@
"dev": true
},
"spdx-correct": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz",
- "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
"dev": true,
"requires": {
"spdx-expression-parse": "^3.0.0",
@@ -1336,9 +1324,9 @@
"dev": true
},
"spdx-expression-parse": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
- "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
"dev": true,
"requires": {
"spdx-exceptions": "^2.1.0",
@@ -1425,9 +1413,9 @@
"dev": true
},
"tslib": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz",
- "integrity": "sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==",
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
+ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==",
"dev": true
},
"type-fest": {
@@ -1436,12 +1424,6 @@
"integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
"dev": true
},
- "uuid": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz",
- "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==",
- "dev": true
- },
"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",
@@ -1452,15 +1434,6 @@
"spdx-expression-parse": "^3.0.0"
}
},
- "wcwidth": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
- "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
- "dev": true,
- "requires": {
- "defaults": "^1.0.3"
- }
- },
"which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
@@ -1506,13 +1479,10 @@
"dev": true
},
"yaml": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz",
- "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==",
- "dev": true,
- "requires": {
- "@babel/runtime": "^7.9.2"
- }
+ "version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
+ "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
+ "dev": true
},
"yargs": {
"version": "13.3.2",
diff --git a/package.json b/package.json
index be2582c1..a5ff3da9 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,6 @@
"devDependencies": {
"concurrently": "^5.2.0",
"husky": "^4.2.5",
- "lint-staged": "^10.2.0"
+ "lint-staged": "^10.2.11"
}
}
diff --git a/server/api/controllers/attachments/update.js b/server/api/controllers/attachments/update.js
index 6713ec22..c3767266 100755
--- a/server/api/controllers/attachments/update.js
+++ b/server/api/controllers/attachments/update.js
@@ -43,7 +43,6 @@ module.exports = {
}
const values = _.pick(inputs, ['name']);
-
attachment = await sails.helpers.updateAttachment(attachment, values, board, this.req);
if (!attachment) {
diff --git a/server/api/controllers/boards/create.js b/server/api/controllers/boards/create.js
index 16e1e506..7c5f1b27 100755
--- a/server/api/controllers/boards/create.js
+++ b/server/api/controllers/boards/create.js
@@ -11,6 +11,11 @@ module.exports = {
regex: /^[0-9]+$/,
required: true,
},
+ type: {
+ type: 'string',
+ isIn: Board.TYPES,
+ required: true,
+ },
position: {
type: 'number',
required: true,
@@ -39,8 +44,7 @@ module.exports = {
throw Errors.PROJECT_NOT_FOUND;
}
- const values = _.pick(inputs, ['position', 'name']);
-
+ const values = _.pick(inputs, ['type', 'position', 'name']);
const board = await sails.helpers.createBoard(project, values, this.req);
sails.sockets.join(this.req, `board:${board.id}`); // TODO: only when subscription needed
diff --git a/server/api/controllers/boards/show.js b/server/api/controllers/boards/show.js
index bb7b7da7..c871fa85 100755
--- a/server/api/controllers/boards/show.js
+++ b/server/api/controllers/boards/show.js
@@ -40,10 +40,10 @@ module.exports = {
throw Errors.BOARD_NOT_FOUND; // Forbidden
}
- const lists = await sails.helpers.getListsForBoard(board.id);
const labels = await sails.helpers.getLabelsForBoard(board.id);
+ const lists = await sails.helpers.getListsForBoard(board.id);
- const cards = await sails.helpers.getCardsForBoard(board.id);
+ const cards = await sails.helpers.getCardsForBoard(board);
const cardIds = sails.helpers.mapRecords(cards);
const cardSubscriptions = await sails.helpers.getSubscriptionsByUserForCard(
@@ -75,8 +75,8 @@ module.exports = {
return exits.success({
item: board,
included: {
- lists,
labels,
+ lists,
cards,
cardMemberships,
cardLabels,
diff --git a/server/api/controllers/boards/update.js b/server/api/controllers/boards/update.js
index f812e792..66163bca 100755
--- a/server/api/controllers/boards/update.js
+++ b/server/api/controllers/boards/update.js
@@ -34,7 +34,6 @@ module.exports = {
}
const values = _.pick(inputs, ['position', 'name']);
-
board = await sails.helpers.updateBoard(board, values, this.req);
if (!board) {
diff --git a/server/api/controllers/cards/create.js b/server/api/controllers/cards/create.js
index b486f063..da427bf1 100755
--- a/server/api/controllers/cards/create.js
+++ b/server/api/controllers/cards/create.js
@@ -1,21 +1,33 @@
const moment = require('moment');
const Errors = {
+ BOARD_NOT_FOUND: {
+ boardNotFound: 'Board not found',
+ },
LIST_NOT_FOUND: {
listNotFound: 'List not found',
},
+ LIST_MUST_BE_PRESENT: {
+ listMustBePresent: 'List must be present',
+ },
+ POSITION_MUST_BE_PRESENT: {
+ positionMustBePresent: 'Position must be present',
+ },
};
module.exports = {
inputs: {
- listId: {
+ boardId: {
type: 'string',
regex: /^[0-9]+$/,
required: true,
},
+ listId: {
+ type: 'string',
+ regex: /^[0-9]+$/,
+ },
position: {
type: 'number',
- required: true,
},
name: {
type: 'string',
@@ -32,26 +44,49 @@ module.exports = {
},
timer: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) &&
- _.size(value) === 2 &&
- (_.isNull(value.startedAt) || moment(value.startedAt, moment.ISO_8601, true).isValid()) &&
- _.isFinite(value.total),
+ custom: (value) => {
+ if (!_.isPlainObject(value) || _.size(value) !== 2) {
+ return false;
+ }
+
+ if (
+ !_.isNull(value.startedAt) &&
+ _.isString(value.startedAt) &&
+ !moment(value.startedAt, moment.ISO_8601, true).isValid()
+ ) {
+ return false;
+ }
+
+ if (!_.isFinite(value.total)) {
+ return false;
+ }
+
+ return true;
+ },
},
},
exits: {
+ boardNotFound: {
+ responseType: 'notFound',
+ },
listNotFound: {
responseType: 'notFound',
},
+ listMustBePresent: {
+ responseType: 'unprocessableEntity',
+ },
+ positionMustBePresent: {
+ responseType: 'unprocessableEntity',
+ },
},
async fn(inputs, exits) {
const { currentUser } = this.req;
- const { list, project } = await sails.helpers
- .getListToProjectPath(inputs.listId)
- .intercept('pathNotFound', () => Errors.LIST_NOT_FOUND);
+ const { board, project } = await sails.helpers
+ .getBoardToProjectPath(inputs.boardId)
+ .intercept('pathNotFound', () => Errors.BOARD_NOT_FOUND);
const isUserMemberForProject = await sails.helpers.isUserMemberForProject(
project.id,
@@ -62,9 +97,24 @@ module.exports = {
throw Errors.LIST_NOT_FOUND; // Forbidden
}
+ let list;
+ if (!_.isUndefined(inputs.listId)) {
+ list = await List.findOne({
+ id: inputs.listId,
+ boardId: board.id,
+ });
+
+ if (!list) {
+ throw Errors.LIST_NOT_FOUND;
+ }
+ }
+
const values = _.pick(inputs, ['position', 'name', 'description', 'dueDate', 'timer']);
- const card = await sails.helpers.createCard(list, values, currentUser, this.req);
+ const card = await sails.helpers
+ .createCard(board, list, values, currentUser, this.req)
+ .intercept('listMustBePresent', () => Errors.LIST_MUST_BE_PRESENT)
+ .intercept('positionMustBeInValues', () => Errors.POSITION_MUST_BE_PRESENT);
return exits.success({
item: card,
diff --git a/server/api/controllers/cards/index.js b/server/api/controllers/cards/index.js
new file mode 100644
index 00000000..a5c12210
--- /dev/null
+++ b/server/api/controllers/cards/index.js
@@ -0,0 +1,79 @@
+const Errors = {
+ BOARD_NOT_FOUND: {
+ boardNotFound: 'Board not found',
+ },
+};
+
+module.exports = {
+ inputs: {
+ boardId: {
+ type: 'string',
+ regex: /^[0-9]+$/,
+ required: true,
+ },
+ beforeId: {
+ type: 'string',
+ regex: /^[0-9]+$/,
+ },
+ },
+
+ exits: {
+ boardNotFound: {
+ responseType: 'notFound',
+ },
+ },
+
+ async fn(inputs, exits) {
+ const { currentUser } = this.req;
+
+ const { board, project } = await sails.helpers
+ .getBoardToProjectPath(inputs.boardId)
+ .intercept('pathNotFound', () => Errors.BOARD_NOT_FOUND);
+
+ const isUserMemberForProject = await sails.helpers.isUserMemberForProject(
+ project.id,
+ currentUser.id,
+ );
+
+ if (!isUserMemberForProject) {
+ throw Errors.BOARD_NOT_FOUND; // Forbidden
+ }
+
+ const cards = await sails.helpers.getCardsForBoard(board, inputs.beforeId);
+ const cardIds = sails.helpers.mapRecords(cards);
+
+ const cardSubscriptions = await sails.helpers.getSubscriptionsByUserForCard(
+ cardIds,
+ currentUser.id,
+ );
+
+ const cardMemberships = await sails.helpers.getMembershipsForCard(cardIds);
+ const cardLabels = await sails.helpers.getCardLabelsForCard(cardIds);
+
+ const tasks = await sails.helpers.getTasksForCard(cardIds);
+ const attachments = await sails.helpers.getAttachmentsForCard(cardIds);
+
+ const isSubscribedByCardId = cardSubscriptions.reduce(
+ (result, cardSubscription) => ({
+ ...result,
+ [cardSubscription.cardId]: true,
+ }),
+ {},
+ );
+
+ cards.map((card) => ({
+ ...card,
+ isSubscribed: isSubscribedByCardId[card.id] || false,
+ }));
+
+ return exits.success({
+ items: cards,
+ included: {
+ cardMemberships,
+ cardLabels,
+ tasks,
+ attachments,
+ },
+ });
+ },
+};
diff --git a/server/api/controllers/cards/update.js b/server/api/controllers/cards/update.js
index 740e2a74..8c9a0d56 100755
--- a/server/api/controllers/cards/update.js
+++ b/server/api/controllers/cards/update.js
@@ -4,9 +4,18 @@ const Errors = {
CARD_NOT_FOUND: {
cardNotFound: 'Card not found',
},
+ BOARD_NOT_FOUND: {
+ boardNotFound: 'Board not found',
+ },
LIST_NOT_FOUND: {
listNotFound: 'List not found',
},
+ LIST_MUST_BE_PRESENT: {
+ listMustBePresent: 'List must be present',
+ },
+ POSITION_MUST_BE_PRESENT: {
+ positionMustBePresent: 'Position must be present',
+ },
};
module.exports = {
@@ -16,11 +25,11 @@ module.exports = {
regex: /^[0-9]+$/,
required: true,
},
- listId: {
+ boardId: {
type: 'string',
regex: /^[0-9]+$/,
},
- boardId: {
+ listId: {
type: 'string',
regex: /^[0-9]+$/,
},
@@ -48,11 +57,25 @@ module.exports = {
},
timer: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) &&
- _.size(value) === 2 &&
- (_.isNull(value.startedAt) || moment(value.startedAt, moment.ISO_8601, true).isValid()) &&
- _.isFinite(value.total),
+ custom: (value) => {
+ if (!_.isPlainObject(value) || _.size(value) !== 2) {
+ return false;
+ }
+
+ if (
+ !_.isNull(value.startedAt) &&
+ _.isString(value.startedAt) &&
+ !moment(value.startedAt, moment.ISO_8601, true).isValid()
+ ) {
+ return false;
+ }
+
+ if (!_.isFinite(value.total)) {
+ return false;
+ }
+
+ return true;
+ },
},
isSubscribed: {
type: 'boolean',
@@ -63,9 +86,18 @@ module.exports = {
cardNotFound: {
responseType: 'notFound',
},
+ boardNotFound: {
+ responseType: 'notFound',
+ },
listNotFound: {
responseType: 'notFound',
},
+ listMustBePresent: {
+ responseType: 'unprocessableEntity',
+ },
+ positionMustBePresent: {
+ responseType: 'unprocessableEntity',
+ },
},
async fn(inputs, exits) {
@@ -87,22 +119,11 @@ module.exports = {
throw Errors.CARD_NOT_FOUND; // Forbidden
}
- let toList;
let toBoard;
-
- if (!_.isUndefined(inputs.listId) && inputs.listId !== list.id) {
- toList = await List.findOne({
- id: inputs.listId,
- boardId: inputs.boardId || card.boardId,
- });
-
- if (!toList) {
- throw Errors.LIST_NOT_FOUND;
- }
-
+ if (!_.isUndefined(inputs.boardId)) {
({ board: toBoard, project } = await sails.helpers
- .getListToProjectPath(toList.id)
- .intercept('pathNotFound', () => Errors.LIST_NOT_FOUND));
+ .getBoardToProjectPath(inputs.boardId)
+ .intercept('pathNotFound', () => Errors.BOARD_NOT_FOUND));
isUserMemberForProject = await sails.helpers.isUserMemberForProject(
project.id,
@@ -110,6 +131,18 @@ module.exports = {
);
if (!isUserMemberForProject) {
+ throw Errors.BOARD_NOT_FOUND; // Forbidden
+ }
+ }
+
+ let toList;
+ if (!_.isUndefined(inputs.listId)) {
+ toList = await List.findOne({
+ id: inputs.listId,
+ boardId: (toBoard || board).id,
+ });
+
+ if (!toList) {
throw Errors.LIST_NOT_FOUND; // Forbidden
}
}
@@ -124,16 +157,10 @@ module.exports = {
'isSubscribed',
]);
- card = await sails.helpers.updateCard(
- card,
- values,
- toList,
- toBoard,
- list,
- board,
- currentUser,
- this.req,
- );
+ card = await sails.helpers
+ .updateCard(card, toBoard, toList, values, board, list, currentUser, this.req)
+ .intercept('toListMustBePresent', () => Errors.LIST_MUST_BE_PRESENT)
+ .intercept('positionMustBeInValues', () => Errors.POSITION_MUST_BE_PRESENT);
if (!card) {
throw Errors.CARD_NOT_FOUND;
diff --git a/server/api/controllers/labels/create.js b/server/api/controllers/labels/create.js
index 2340012f..fcce4047 100755
--- a/server/api/controllers/labels/create.js
+++ b/server/api/controllers/labels/create.js
@@ -46,7 +46,6 @@ module.exports = {
}
const values = _.pick(inputs, ['name', 'color']);
-
const label = await sails.helpers.createLabel(board, values, this.req);
return exits.success({
diff --git a/server/api/controllers/labels/update.js b/server/api/controllers/labels/update.js
index 85fc305e..d16e5246 100755
--- a/server/api/controllers/labels/update.js
+++ b/server/api/controllers/labels/update.js
@@ -49,7 +49,6 @@ module.exports = {
}
const values = _.pick(inputs, ['name', 'color']);
-
label = await sails.helpers.updateLabel(label, values, this.req);
return exits.success({
diff --git a/server/api/controllers/lists/create.js b/server/api/controllers/lists/create.js
index 7acb5315..4dbab37b 100755
--- a/server/api/controllers/lists/create.js
+++ b/server/api/controllers/lists/create.js
@@ -44,7 +44,6 @@ module.exports = {
}
const values = _.pick(inputs, ['position', 'name']);
-
const list = await sails.helpers.createList(board, values, this.req);
return exits.success({
diff --git a/server/api/controllers/lists/update.js b/server/api/controllers/lists/update.js
index 31ef18c0..757c1df3 100755
--- a/server/api/controllers/lists/update.js
+++ b/server/api/controllers/lists/update.js
@@ -46,7 +46,6 @@ module.exports = {
}
const values = _.pick(inputs, ['position', 'name']);
-
list = await sails.helpers.updateList(list, values, this.req);
if (!list) {
diff --git a/server/api/controllers/projects/create.js b/server/api/controllers/projects/create.js
index ac5f917b..bed49cfe 100755
--- a/server/api/controllers/projects/create.js
+++ b/server/api/controllers/projects/create.js
@@ -12,8 +12,8 @@ module.exports = {
const values = _.pick(inputs, ['name']);
const { project, projectMembership } = await sails.helpers.createProject(
- values,
currentUser,
+ values,
this.req,
true,
);
diff --git a/server/api/controllers/projects/index.js b/server/api/controllers/projects/index.js
index 5cba1522..4a694514 100755
--- a/server/api/controllers/projects/index.js
+++ b/server/api/controllers/projects/index.js
@@ -3,7 +3,6 @@ module.exports = {
const { currentUser } = this.req;
const projectIds = await sails.helpers.getMembershipProjectIdsForUser(currentUser.id);
-
const projects = await sails.helpers.getProjects(projectIds);
const { userIds, projectMemberships } = await sails.helpers.getMembershipUserIdsForProject(
@@ -12,7 +11,6 @@ module.exports = {
);
const users = await sails.helpers.getUsers(userIds);
-
const boards = await sails.helpers.getBoardsForProject(projectIds);
return exits.success({
diff --git a/server/api/controllers/projects/update.js b/server/api/controllers/projects/update.js
index 54f12f91..9a8ae228 100755
--- a/server/api/controllers/projects/update.js
+++ b/server/api/controllers/projects/update.js
@@ -65,7 +65,6 @@ module.exports = {
}
const values = _.pick(inputs, ['name', 'background', 'backgroundImage']);
-
project = await sails.helpers.updateProject(project, values, this.req);
if (!project) {
diff --git a/server/api/controllers/tasks/create.js b/server/api/controllers/tasks/create.js
index 3ce5b4ae..cbc2b83b 100755
--- a/server/api/controllers/tasks/create.js
+++ b/server/api/controllers/tasks/create.js
@@ -43,7 +43,6 @@ module.exports = {
}
const values = _.pick(inputs, ['name', 'isCompleted']);
-
const task = await sails.helpers.createTask(card, values, this.req);
return exits.success({
diff --git a/server/api/controllers/tasks/update.js b/server/api/controllers/tasks/update.js
index f2fd3f2e..888a8c3d 100755
--- a/server/api/controllers/tasks/update.js
+++ b/server/api/controllers/tasks/update.js
@@ -46,7 +46,6 @@ module.exports = {
}
const values = _.pick(inputs, ['name', 'isCompleted']);
-
task = await sails.helpers.updateTask(task, values, board, this.req);
if (!task) {
diff --git a/server/api/controllers/users/update-password.js b/server/api/controllers/users/update-password.js
index 56770d1d..decbf1b9 100644
--- a/server/api/controllers/users/update-password.js
+++ b/server/api/controllers/users/update-password.js
@@ -60,7 +60,6 @@ module.exports = {
}
const values = _.pick(inputs, ['password']);
-
user = await sails.helpers.updateUser(user, values, this.req);
if (!user) {
diff --git a/server/api/helpers/create-card-membership.js b/server/api/helpers/create-card-membership.js
index bcdd8574..df59e651 100644
--- a/server/api/helpers/create-card-membership.js
+++ b/server/api/helpers/create-card-membership.js
@@ -6,7 +6,7 @@ module.exports = {
},
userOrUserId: {
type: 'ref',
- custom: (value) => _.isPlainObject(value) || _.isString(value),
+ custom: (value) => _.isObjectLike(value) || _.isString(value),
required: true,
},
request: {
diff --git a/server/api/helpers/create-card.js b/server/api/helpers/create-card.js
index a33360f5..8c68e48f 100644
--- a/server/api/helpers/create-card.js
+++ b/server/api/helpers/create-card.js
@@ -1,12 +1,25 @@
module.exports = {
inputs: {
- list: {
+ board: {
type: 'ref',
required: true,
},
+ list: {
+ type: 'ref',
+ },
values: {
type: 'json',
- custom: (value) => _.isPlainObject(value) && _.isFinite(value.position),
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.position) && !_.isFinite(value.position)) {
+ return false;
+ }
+
+ return true;
+ },
required: true,
},
user: {
@@ -18,36 +31,61 @@ module.exports = {
},
},
+ exits: {
+ listMustBePresent: {},
+ listMustBelongToBoard: {},
+ positionMustBeInValues: {},
+ },
+
async fn(inputs, exits) {
- const cards = await sails.helpers.getCardsForList(inputs.list.id);
+ const { values } = inputs;
- const { position, repositions } = sails.helpers.insertToPositionables(
- inputs.values.position,
- cards,
- );
+ values.boardId = inputs.board.id;
- repositions.forEach(async ({ id, position: nextPosition }) => {
- await Card.update({
- id,
- listId: inputs.list.id,
- }).set({
- position: nextPosition,
- });
+ if (inputs.board.type === 'kanban') {
+ if (!inputs.list) {
+ throw 'listMustBePresent';
+ }
- sails.sockets.broadcast(`board:${list.boardId}`, 'cardUpdate', {
- item: {
+ if (inputs.list.boardId !== inputs.board.id) {
+ throw 'listMustBelongToBoard';
+ }
+
+ values.listId = inputs.list.id;
+
+ if (_.isUndefined(values.position)) {
+ throw 'positionMustBeInValues';
+ }
+
+ const cards = await sails.helpers.getCardsForList(inputs.list.id);
+
+ const { position, repositions } = sails.helpers.insertToPositionables(
+ inputs.values.position,
+ cards,
+ );
+
+ repositions.forEach(async ({ id, position: nextPosition }) => {
+ await Card.update({
id,
+ listId: inputs.list.id,
+ }).set({
position: nextPosition,
- },
- });
- });
+ });
- const card = await Card.create({
- ...inputs.values,
- position,
- listId: inputs.list.id,
- boardId: inputs.list.boardId,
- }).fetch();
+ sails.sockets.broadcast(`board:${inputs.board.id}`, 'cardUpdate', {
+ item: {
+ id,
+ position: nextPosition,
+ },
+ });
+ });
+
+ values.position = position;
+ } else if (inputs.board.type === 'collection') {
+ delete values.position;
+ }
+
+ const card = await Card.create(values).fetch();
if (inputs.user.subscribeToOwnCards) {
await CardSubscription.create({
@@ -60,6 +98,7 @@ module.exports = {
card.isSubscribed = false;
}
+ // FIXME: broadcast subscription separately
sails.sockets.broadcast(
`board:${card.boardId}`,
'cardCreate',
@@ -75,14 +114,12 @@ module.exports = {
inputs.request,
);
- const values = {
+ await sails.helpers.createAction(card, inputs.user, {
type: 'createCard',
data: {
list: _.pick(inputs.list, ['id', 'name']),
},
- };
-
- await sails.helpers.createAction(card, inputs.user, values);
+ });
return exits.success(card);
},
diff --git a/server/api/helpers/create-project-membership.js b/server/api/helpers/create-project-membership.js
index 6395b87f..207aabfa 100644
--- a/server/api/helpers/create-project-membership.js
+++ b/server/api/helpers/create-project-membership.js
@@ -47,7 +47,6 @@ module.exports = {
});
const users = await sails.helpers.getUsers(userIds);
-
const boards = await sails.helpers.getBoardsForProject(projectMembership.projectId);
sails.sockets.broadcast(`user:${projectMembership.userId}`, 'projectCreate', {
diff --git a/server/api/helpers/create-project.js b/server/api/helpers/create-project.js
index 09781c34..96f20d22 100644
--- a/server/api/helpers/create-project.js
+++ b/server/api/helpers/create-project.js
@@ -1,13 +1,13 @@
module.exports = {
inputs: {
- values: {
- type: 'json',
- required: true,
- },
user: {
type: 'ref',
required: true,
},
+ values: {
+ type: 'json',
+ required: true,
+ },
request: {
type: 'ref',
},
diff --git a/server/api/helpers/create-user.js b/server/api/helpers/create-user.js
index 4d2951ab..364024fc 100644
--- a/server/api/helpers/create-user.js
+++ b/server/api/helpers/create-user.js
@@ -4,11 +4,25 @@ module.exports = {
inputs: {
values: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) &&
- _.isString(value.email) &&
- _.isString(value.password) &&
- (!value.username || _.isString(value.username)),
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (!_.isString(value.email)) {
+ return false;
+ }
+
+ if (!_.isString(value.password)) {
+ return false;
+ }
+
+ if (value.username && !_.isString(value.username)) {
+ return false;
+ }
+
+ return true;
+ },
required: true,
},
request: {
diff --git a/server/api/helpers/delete-project-membership.js b/server/api/helpers/delete-project-membership.js
index 0ab32bc7..29ebbed2 100644
--- a/server/api/helpers/delete-project-membership.js
+++ b/server/api/helpers/delete-project-membership.js
@@ -11,7 +11,6 @@ module.exports = {
async fn(inputs, exits) {
const boards = await sails.helpers.getBoardsForProject(inputs.record.projectId);
-
const boardIds = sails.helpers.mapRecords(boards);
const cards = await sails.helpers.getCardsForBoard(boardIds);
diff --git a/server/api/helpers/delete-user.js b/server/api/helpers/delete-user.js
index 1af5ed9b..7113ebe6 100644
--- a/server/api/helpers/delete-user.js
+++ b/server/api/helpers/delete-user.js
@@ -31,11 +31,8 @@ module.exports = {
if (user) {
const adminUserIds = await sails.helpers.getAdminUserIds();
-
const projectIds = await sails.helpers.getMembershipProjectIdsForUser(user.id);
-
const userIdsForProject = await sails.helpers.getMembershipUserIdsForProject(projectIds);
-
const userIds = _.union([user.id], adminUserIds, userIdsForProject);
userIds.forEach((userId) => {
diff --git a/server/api/helpers/get-card-to-project-path.js b/server/api/helpers/get-card-to-project-path.js
index cdf2506b..cfc548a4 100755
--- a/server/api/helpers/get-card-to-project-path.js
+++ b/server/api/helpers/get-card-to-project-path.js
@@ -17,14 +17,26 @@ module.exports = {
throw 'pathNotFound';
}
- const path = await sails.helpers
- .getListToProjectPath(card.listId)
- .intercept('pathNotFound', (nodes) => ({
- pathNotFound: {
- card,
- ...nodes,
- },
- }));
+ let path;
+ if (card.listId) {
+ path = await sails.helpers
+ .getListToProjectPath(card.listId)
+ .intercept('pathNotFound', (nodes) => ({
+ pathNotFound: {
+ card,
+ ...nodes,
+ },
+ }));
+ } else {
+ path = await sails.helpers
+ .getBoardToProjectPath(card.boardId)
+ .intercept('pathNotFound', (nodes) => ({
+ pathNotFound: {
+ card,
+ ...nodes,
+ },
+ }));
+ }
return exits.success({
card,
diff --git a/server/api/helpers/get-cards-for-board.js b/server/api/helpers/get-cards-for-board.js
index 6dcd8bdc..abd7d5f4 100644
--- a/server/api/helpers/get-cards-for-board.js
+++ b/server/api/helpers/get-cards-for-board.js
@@ -1,16 +1,42 @@
+const LIMIT = 10;
+
module.exports = {
inputs: {
- id: {
- type: 'json',
- custom: (value) => _.isString(value) || _.isArray(value),
+ recordOrId: {
+ type: 'ref',
+ custom: (value) => _.isObjectLike(value) || _.isString(value) || _.every(value, _.isString),
required: true,
},
+ beforeId: {
+ type: 'string',
+ },
},
async fn(inputs, exits) {
- const cards = await sails.helpers.getCards({
- boardId: inputs.id,
- });
+ const criteria = {};
+
+ let sort;
+ let limit;
+
+ if (_.isObjectLike(inputs.recordOrId)) {
+ criteria.boardId = inputs.recordOrId.id;
+
+ if (inputs.recordOrId.type === 'kanban') {
+ sort = 'position';
+ } else if (inputs.recordOrId.type === 'collection') {
+ if (inputs.beforeId) {
+ criteria.id = {
+ '<': inputs.beforeId,
+ };
+ }
+
+ limit = LIMIT;
+ }
+ } else {
+ criteria.boardId = inputs.recordOrId;
+ }
+
+ const cards = await sails.helpers.getCards(criteria, sort, limit);
return exits.success(cards);
},
diff --git a/server/api/helpers/get-cards.js b/server/api/helpers/get-cards.js
index f347e666..764caef7 100644
--- a/server/api/helpers/get-cards.js
+++ b/server/api/helpers/get-cards.js
@@ -4,10 +4,17 @@ module.exports = {
type: 'json',
custom: (value) => _.isArray(value) || _.isPlainObject(value),
},
+ sort: {
+ type: 'json',
+ defaultsTo: 'id DESC',
+ },
+ limit: {
+ type: 'number',
+ },
},
async fn(inputs, exits) {
- const cards = await Card.find(inputs.criteria).sort('position');
+ const cards = await Card.find(inputs.criteria).sort(inputs.sort).limit(inputs.limit);
return exits.success(cards);
},
diff --git a/server/api/helpers/get-label-ids-for-card.js b/server/api/helpers/get-label-ids-for-card.js
index 3cb5e76b..c09440a0 100644
--- a/server/api/helpers/get-label-ids-for-card.js
+++ b/server/api/helpers/get-label-ids-for-card.js
@@ -9,7 +9,6 @@ module.exports = {
async fn(inputs, exits) {
const cardLabels = await sails.helpers.getCardLabelsForCard(inputs.id);
-
const labelIds = sails.helpers.mapRecords(cardLabels, 'labelId', _.isArray(inputs.id));
return exits.success(labelIds);
diff --git a/server/api/helpers/get-labels-for-card.js b/server/api/helpers/get-labels-for-card.js
index bfbcf46e..83c05bcd 100644
--- a/server/api/helpers/get-labels-for-card.js
+++ b/server/api/helpers/get-labels-for-card.js
@@ -9,7 +9,6 @@ module.exports = {
async fn(inputs, exits) {
const labelIds = await sails.helpers.getLabelIdsForCard(inputs.id);
-
const labels = await sails.helpers.getLabels(labelIds);
return exits.success(labels);
diff --git a/server/api/helpers/get-membership-user-ids-for-project.js b/server/api/helpers/get-membership-user-ids-for-project.js
index 405868fc..fa07e712 100755
--- a/server/api/helpers/get-membership-user-ids-for-project.js
+++ b/server/api/helpers/get-membership-user-ids-for-project.js
@@ -13,7 +13,6 @@ module.exports = {
async fn(inputs, exits) {
const projectMemberships = await sails.helpers.getMembershipsForProject(inputs.id);
-
const userIds = sails.helpers.mapRecords(projectMemberships, 'userId', _.isArray(inputs.id));
return exits.success(
diff --git a/server/api/helpers/update-board.js b/server/api/helpers/update-board.js
index 37755fe5..c99eafb2 100644
--- a/server/api/helpers/update-board.js
+++ b/server/api/helpers/update-board.js
@@ -6,8 +6,17 @@ module.exports = {
},
values: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) && (_.isUndefined(value.position) || _.isFinite(value.position)),
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.position) && !_.isFinite(value.position)) {
+ return false;
+ }
+
+ return true;
+ },
required: true,
},
request: {
diff --git a/server/api/helpers/update-card.js b/server/api/helpers/update-card.js
index c98f2314..b0261c6e 100644
--- a/server/api/helpers/update-card.js
+++ b/server/api/helpers/update-card.js
@@ -4,24 +4,33 @@ module.exports = {
type: 'ref',
required: true,
},
- values: {
- type: 'json',
- custom: (value) =>
- _.isPlainObject(value) && (_.isUndefined(value.position) || _.isFinite(value.position)),
- required: true,
+ toBoard: {
+ type: 'ref',
},
toList: {
type: 'ref',
},
- toBoard: {
+ values: {
+ type: 'json',
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.position) && !_.isFinite(value.position)) {
+ return false;
+ }
+
+ return true;
+ },
+ required: true,
+ },
+ board: {
type: 'ref',
},
list: {
type: 'ref',
},
- board: {
- type: 'ref',
- },
user: {
type: 'ref',
},
@@ -31,41 +40,72 @@ module.exports = {
},
exits: {
- invalidParams: {},
+ boardMustBePresent: {},
+ listMustBePresent: {},
+ toListMustBelongToBoard: {},
+ toListMustBePresent: {},
+ positionMustBeInValues: {},
+ userMustBePresent: {},
},
async fn(inputs, exits) {
const { isSubscribed, ...values } = inputs.values;
- if (inputs.toList) {
- if (!inputs.list || !inputs.user) {
- throw 'invalidParams';
+ if (inputs.toBoard || inputs.toList || !_.isUndefined(values.position)) {
+ if (!inputs.board) {
+ throw 'boardMustBePresent';
}
- if (inputs.toList.id === inputs.list.id) {
- delete inputs.toList; // eslint-disable-line no-param-reassign
- } else {
- values.listId = inputs.toList.id;
+ if (inputs.toBoard) {
+ if (inputs.toBoard.id === inputs.board.id) {
+ delete inputs.toBoard; // eslint-disable-line no-param-reassign
+ } else {
+ values.boardId = inputs.toBoard.id;
+ }
+ }
- if (inputs.toBoard) {
- if (!inputs.board) {
- throw 'invalidParams';
- }
+ const board = inputs.toBoard || inputs.board;
- if (inputs.toBoard.id === inputs.board.id) {
- delete inputs.toBoard; // eslint-disable-line no-param-reassign
- } else {
- values.boardId = inputs.toBoard.id;
- }
+ if (inputs.toList) {
+ if (inputs.board.type === 'kanban' && !inputs.list) {
+ throw 'listMustBePresent';
+ }
+
+ if (inputs.toList.boardId !== board.id) {
+ throw 'toListMustBelongToBoard';
+ }
+
+ if (
+ board.type === 'collection' ||
+ (inputs.board.type === 'kanban' && inputs.toList.id === inputs.list.id)
+ ) {
+ delete inputs.toList; // eslint-disable-line no-param-reassign
+ } else {
+ values.listId = inputs.toList.id;
+ }
+ }
+
+ if (inputs.toList) {
+ if (_.isUndefined(values.position)) {
+ throw 'positionMustBeInValues';
+ }
+ } else if (inputs.toBoard) {
+ if (inputs.toBoard.type === 'kanban') {
+ throw 'toListMustBePresent';
+ }
+
+ if (inputs.board.type === 'kanban') {
+ values.listId = null;
+ values.position = null;
}
}
}
- if (!_.isUndefined(isSubscribed) && !inputs.user) {
- throw 'invalidParams';
+ if ((!_.isUndefined(isSubscribed) || inputs.toBoard || inputs.toList) && !inputs.user) {
+ throw 'userMustBePresent';
}
- if (!_.isUndefined(values.position)) {
+ if (!_.isNil(values.position)) {
const cards = await sails.helpers.getCardsForList(
values.listId || inputs.record.listId,
inputs.record.id,
@@ -73,8 +113,6 @@ module.exports = {
const { position, repositions } = sails.helpers.insertToPositionables(values.position, cards);
- values.position = position;
-
repositions.forEach(async ({ id, position: nextPosition }) => {
await Card.update({
id,
@@ -83,19 +121,21 @@ module.exports = {
position: nextPosition,
});
- sails.sockets.broadcast(`board:${inputs.record.boardId}`, 'cardUpdate', {
+ sails.sockets.broadcast(`board:${values.boardId || inputs.record.boardId}`, 'cardUpdate', {
item: {
id,
position: nextPosition,
},
});
});
+
+ values.position = position;
}
let card;
if (!_.isEmpty(values)) {
let prevLabels;
- if (inputs.toList && inputs.toBoard) {
+ if (inputs.toBoard) {
if (inputs.toBoard.projectId !== inputs.board.projectId) {
const userIds = await sails.helpers.getMembershipUserIdsForProject(
inputs.toBoard.projectId,
@@ -129,7 +169,7 @@ module.exports = {
return exits.success(card);
}
- if (inputs.toList && inputs.toBoard) {
+ if (inputs.toBoard) {
sails.sockets.broadcast(
`board:${inputs.board.id}`,
'cardDelete',
@@ -204,7 +244,7 @@ module.exports = {
);
}
- if (inputs.toList) {
+ if (!inputs.toBoard && inputs.toList) {
// TODO: add transfer action
await sails.helpers.createAction(card, inputs.user, {
type: 'moveCard',
diff --git a/server/api/helpers/update-list.js b/server/api/helpers/update-list.js
index fdb76cc8..818516cc 100644
--- a/server/api/helpers/update-list.js
+++ b/server/api/helpers/update-list.js
@@ -6,8 +6,17 @@ module.exports = {
},
values: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) && (_.isUndefined(value.position) || _.isFinite(value.position)),
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.position) && !_.isFinite(value.position)) {
+ return false;
+ }
+
+ return true;
+ },
required: true,
},
request: {
diff --git a/server/api/helpers/update-project.js b/server/api/helpers/update-project.js
index b29122b1..e34ffd93 100644
--- a/server/api/helpers/update-project.js
+++ b/server/api/helpers/update-project.js
@@ -9,12 +9,25 @@ module.exports = {
},
values: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) &&
- (_.isUndefined(value.background) ||
- _.isNull(value.background) ||
- _.isPlainObject(value.background)) &&
- (_.isUndefined(value.backgroundImage) || _.isNull(value.backgroundImage)),
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (
+ !_.isUndefined(value.background) &&
+ !_.isNull(value.background) &&
+ !_.isPlainObject(value.background)
+ ) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.backgroundImage) && !_.isNull(value.backgroundImage)) {
+ return false;
+ }
+
+ return true;
+ },
required: true,
},
request: {
@@ -23,7 +36,7 @@ module.exports = {
},
exits: {
- invalidParams: {},
+ backgroundImageDirnameMustBeNotNullInValues: {},
},
async fn(inputs, exits) {
@@ -50,7 +63,7 @@ module.exports = {
let project;
if (inputs.values.background && inputs.values.background.type === 'image') {
if (_.isNull(inputs.values.backgroundImageDirname)) {
- throw 'invalidParams';
+ throw 'backgroundImageDirnameMustBeNotNullInValues';
}
if (_.isUndefined(inputs.values.backgroundImageDirname)) {
diff --git a/server/api/helpers/update-user.js b/server/api/helpers/update-user.js
index 0df79366..6e2eb83a 100644
--- a/server/api/helpers/update-user.js
+++ b/server/api/helpers/update-user.js
@@ -10,12 +10,29 @@ module.exports = {
},
values: {
type: 'json',
- custom: (value) =>
- _.isPlainObject(value) &&
- (_.isUndefined(value.email) || _.isString(value.email)) &&
- (_.isUndefined(value.password) || _.isString(value.password)) &&
- (!value.username || _.isString(value.username)) &&
- (_.isUndefined(value.avatarUrl) || _.isNull(value.avatarUrl)),
+ custom: (value) => {
+ if (!_.isPlainObject(value)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.email) && !_.isString(value.email)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.password) && !_.isString(value.password)) {
+ return false;
+ }
+
+ if (value.username && !_.isString(value.username)) {
+ return false;
+ }
+
+ if (!_.isUndefined(value.avatarUrl) && !_.isNull(value.avatarUrl)) {
+ return false;
+ }
+
+ return true;
+ },
required: true,
},
request: {
@@ -88,11 +105,8 @@ module.exports = {
if (!isOnlyPasswordChange) {
const adminUserIds = await sails.helpers.getAdminUserIds();
-
const projectIds = await sails.helpers.getMembershipProjectIdsForUser(user.id);
-
const userIdsForProject = await sails.helpers.getMembershipUserIdsForProject(projectIds);
-
const userIds = _.union([user.id], adminUserIds, userIdsForProject);
userIds.forEach((userId) => {
diff --git a/server/api/models/Board.js b/server/api/models/Board.js
index e7173f34..e48edccc 100755
--- a/server/api/models/Board.js
+++ b/server/api/models/Board.js
@@ -5,12 +5,21 @@
* @docs :: https://sailsjs.com/docs/concepts/models-and-orm/models
*/
+const TYPES = ['kanban', 'collection'];
+
module.exports = {
+ TYPES,
+
attributes: {
// ╔═╗╦═╗╦╔╦╗╦╔╦╗╦╦ ╦╔═╗╔═╗
// ╠═╝╠╦╝║║║║║ ║ ║╚╗╔╝║╣ ╚═╗
// ╩ ╩╚═╩╩ ╩╩ ╩ ╩ ╚╝ ╚═╝╚═╝
+ type: {
+ type: 'string',
+ isIn: TYPES,
+ required: true,
+ },
position: {
type: 'number',
required: true,
diff --git a/server/api/models/Card.js b/server/api/models/Card.js
index 6dcd7aa6..6ec9ba3a 100755
--- a/server/api/models/Card.js
+++ b/server/api/models/Card.js
@@ -13,7 +13,7 @@ module.exports = {
position: {
type: 'number',
- required: true,
+ allowNull: true,
},
name: {
type: 'string',
@@ -40,16 +40,15 @@ module.exports = {
// ╠═╣╚═╗╚═╗║ ║║ ║╠═╣ ║ ║║ ║║║║╚═╗
// ╩ ╩╚═╝╚═╝╚═╝╚═╝╩╩ ╩ ╩ ╩╚═╝╝╚╝╚═╝
- listId: {
- model: 'List',
- required: true,
- columnName: 'list_id',
- },
boardId: {
model: 'Board',
required: true,
columnName: 'board_id',
},
+ listId: {
+ model: 'List',
+ columnName: 'list_id',
+ },
coverAttachmentId: {
model: 'Attachment',
columnName: 'cover_attachment_id',
diff --git a/server/config/routes.js b/server/config/routes.js
index e037d601..807ff5a2 100644
--- a/server/config/routes.js
+++ b/server/config/routes.js
@@ -35,15 +35,16 @@ module.exports.routes = {
'PATCH /api/boards/:id': 'boards/update',
'DELETE /api/boards/:id': 'boards/delete',
- 'POST /api/boards/:boardId/lists': 'lists/create',
- 'PATCH /api/lists/:id': 'lists/update',
- 'DELETE /api/lists/:id': 'lists/delete',
-
'POST /api/boards/:boardId/labels': 'labels/create',
'PATCH /api/labels/:id': 'labels/update',
'DELETE /api/labels/:id': 'labels/delete',
- 'POST /api/lists/:listId/cards': 'cards/create',
+ 'POST /api/boards/:boardId/lists': 'lists/create',
+ 'PATCH /api/lists/:id': 'lists/update',
+ 'DELETE /api/lists/:id': 'lists/delete',
+
+ 'GET /api/boards/:boardId/cards': 'cards/index',
+ 'POST /api/boards/:boardId/cards': 'cards/create',
'GET /api/cards/:id': 'cards/show',
'PATCH /api/cards/:id': 'cards/update',
'DELETE /api/cards/:id': 'cards/delete',
diff --git a/server/db/migrations/20180722000627_create_board_table.js b/server/db/migrations/20180722000627_create_board_table.js
index 80342022..2f03f6ff 100755
--- a/server/db/migrations/20180722000627_create_board_table.js
+++ b/server/db/migrations/20180722000627_create_board_table.js
@@ -6,6 +6,7 @@ module.exports.up = (knex) =>
table.bigInteger('project_id').notNullable();
+ table.text('type').notNullable();
table.specificType('position', 'double precision').notNullable();
table.text('name').notNullable();
diff --git a/server/db/migrations/20180722003502_create_label_table.js b/server/db/migrations/20180722003437_create_label_table.js
similarity index 100%
rename from server/db/migrations/20180722003502_create_label_table.js
rename to server/db/migrations/20180722003437_create_label_table.js
diff --git a/server/db/migrations/20180722003437_create_list_table.js b/server/db/migrations/20180722003502_create_list_table.js
similarity index 100%
rename from server/db/migrations/20180722003437_create_list_table.js
rename to server/db/migrations/20180722003502_create_list_table.js
diff --git a/server/db/migrations/20180722003614_create_card_table.js b/server/db/migrations/20180722003614_create_card_table.js
index 56da488e..5cac56b1 100755
--- a/server/db/migrations/20180722003614_create_card_table.js
+++ b/server/db/migrations/20180722003614_create_card_table.js
@@ -4,11 +4,11 @@ module.exports.up = (knex) =>
table.bigInteger('id').primary().defaultTo(knex.raw('next_id()'));
- table.bigInteger('list_id').notNullable();
table.bigInteger('board_id').notNullable();
+ table.bigInteger('list_id');
table.bigInteger('cover_attachment_id');
- table.specificType('position', 'double precision').notNullable();
+ table.specificType('position', 'double precision');
table.text('name').notNullable();
table.text('description');
table.timestamp('dueDate', true);
@@ -20,6 +20,7 @@ module.exports.up = (knex) =>
/* Indexes */
table.index('list_id');
+ table.index('board_id');
table.index('position');
});
diff --git a/server/package-lock.json b/server/package-lock.json
index 746d80cc..e8b38a2a 100644
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -4,27 +4,27 @@
"lockfileVersion": 1,
"dependencies": {
"@babel/code-frame": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz",
- "integrity": "sha512-IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz",
+ "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==",
"dev": true,
"requires": {
- "@babel/highlight": "^7.10.1"
+ "@babel/highlight": "^7.10.4"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz",
- "integrity": "sha512-5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz",
+ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==",
"dev": true
},
"@babel/highlight": {
- "version": "7.10.1",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz",
- "integrity": "sha512-8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==",
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz",
+ "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==",
"dev": true,
"requires": {
- "@babel/helper-validator-identifier": "^7.10.1",
+ "@babel/helper-validator-identifier": "^7.10.4",
"chalk": "^2.0.0",
"js-tokens": "^4.0.0"
}
@@ -76,9 +76,9 @@
}
},
"acorn": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz",
- "integrity": "sha512-apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==",
+ "version": "7.4.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz",
+ "integrity": "sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==",
"dev": true
},
"acorn-jsx": {
@@ -93,9 +93,9 @@
"integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8="
},
"ajv": {
- "version": "6.12.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
- "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+ "version": "6.12.3",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz",
+ "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -455,9 +455,9 @@
}
},
"binary-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
- "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
+ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
"dev": true
},
"binary-search-tree": {
@@ -858,9 +858,9 @@
"dev": true
},
"chokidar": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz",
- "integrity": "sha512-aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==",
+ "version": "3.4.1",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.1.tgz",
+ "integrity": "sha512-TQTJyr2stihpC4Sya9hs2Xh+O2wf+igjL36Y75xx2WdHuiICcn/XJza46Jwt0eT5hVpQOzo3FpY3cj3RVYLX0g==",
"dev": true,
"requires": {
"anymatch": "~3.1.1",
@@ -971,9 +971,9 @@
}
},
"cli-width": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
- "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
+ "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
"dev": true
},
"clone-response": {
@@ -1039,9 +1039,9 @@
}
},
"colorette": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.1.0.tgz",
- "integrity": "sha512-6S062WDQUXi6hOfkO/sBPVwE5ASXY4G2+b4atvhJfSsuUUhIaUKlkjLe9692Ipyt5/a+IPF5aVTu3V5gvXq5cg=="
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz",
+ "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw=="
},
"colors": {
"version": "0.6.2",
@@ -1443,9 +1443,9 @@
"integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw=="
},
"dotenv-cli": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-3.1.0.tgz",
- "integrity": "sha512-sT16Zg7m71IVP/MX2ZBm6JBu6fy8aEgN9kJPywaYhBZnmq7MSQbpvCEhuiGPI08X8G+CQ1Gj/oZZUH1lGvGmqA==",
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/dotenv-cli/-/dotenv-cli-3.2.0.tgz",
+ "integrity": "sha512-zg/dfXISo7ntL3JKC+oj7eXEMg8LbOsARWTeypfVsmYtazDYOptmKLqA9u3LTee9x/sIPiLqmI6wskRP+89ohQ==",
"requires": {
"cross-spawn": "^7.0.1",
"dotenv": "^8.1.0",
@@ -1610,21 +1610,21 @@
}
},
"es-abstract": {
- "version": "1.17.5",
- "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz",
- "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==",
+ "version": "1.17.6",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz",
+ "integrity": "sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==",
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1",
- "is-callable": "^1.1.5",
- "is-regex": "^1.0.5",
+ "is-callable": "^1.2.0",
+ "is-regex": "^1.1.0",
"object-inspect": "^1.7.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.0",
- "string.prototype.trimleft": "^2.1.1",
- "string.prototype.trimright": "^2.1.1"
+ "string.prototype.trimend": "^1.0.1",
+ "string.prototype.trimstart": "^1.0.1"
}
},
"es-get-iterator": {
@@ -1801,9 +1801,9 @@
}
},
"strip-json-comments": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz",
- "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==",
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"dev": true
},
"which": {
@@ -1818,14 +1818,14 @@
}
},
"eslint-config-airbnb-base": {
- "version": "14.1.0",
- "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.1.0.tgz",
- "integrity": "sha512-+XCcfGyCnbzOnktDVhwsCAx+9DmrzEmuwxyHUJpw+kqBVT744OUBrB09khgFKlK1lshVww6qXGsYPZpavoNjJw==",
+ "version": "14.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz",
+ "integrity": "sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q==",
"dev": true,
"requires": {
"confusing-browser-globals": "^1.0.9",
"object.assign": "^4.1.0",
- "object.entries": "^1.1.1"
+ "object.entries": "^1.1.2"
}
},
"eslint-config-prettier": {
@@ -1838,9 +1838,9 @@
}
},
"eslint-import-resolver-node": {
- "version": "0.3.3",
- "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz",
- "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz",
+ "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==",
"dev": true,
"requires": {
"debug": "^2.6.9",
@@ -1892,9 +1892,9 @@
}
},
"eslint-plugin-import": {
- "version": "2.21.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.1.tgz",
- "integrity": "sha512-qYOOsgUv63vHof7BqbzuD+Ud34bXHxFJxntuAC1ZappFZXYbRIek3aJ7jc9i2dHDGDyZ/0zlO0cpioES265Lsw==",
+ "version": "2.22.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz",
+ "integrity": "sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg==",
"dev": true,
"requires": {
"array-includes": "^3.1.1",
@@ -1940,9 +1940,9 @@
}
},
"eslint-plugin-prettier": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.3.tgz",
- "integrity": "sha512-+HG5jmu/dN3ZV3T6eCD7a4BlAySdN7mLIbJYo0z1cFQuI+r2DiTJEFeF68ots93PsnrMxbzIZ2S/ieX+mkrBeQ==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.4.tgz",
+ "integrity": "sha512-jZDa8z76klRqo+TdGDTFJSavwbnWK2ZpqGKNZ+VvweMW516pDUMmQ2koXvxEE4JhzNvTv+radye/bWGBmA6jmg==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
@@ -1968,9 +1968,9 @@
}
},
"eslint-visitor-keys": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz",
- "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true
},
"esm": {
@@ -3092,21 +3092,21 @@
"integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
},
"inquirer": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
- "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
+ "version": "7.3.3",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
+ "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
"dev": true,
"requires": {
"ansi-escapes": "^4.2.1",
- "chalk": "^3.0.0",
+ "chalk": "^4.1.0",
"cli-cursor": "^3.1.0",
- "cli-width": "^2.0.0",
+ "cli-width": "^3.0.0",
"external-editor": "^3.0.3",
"figures": "^3.0.0",
- "lodash": "^4.17.15",
+ "lodash": "^4.17.19",
"mute-stream": "0.0.8",
"run-async": "^2.4.0",
- "rxjs": "^6.5.3",
+ "rxjs": "^6.6.0",
"string-width": "^4.1.0",
"strip-ansi": "^6.0.0",
"through": "^2.3.6"
@@ -3129,9 +3129,9 @@
}
},
"chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
+ "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -3654,25 +3654,25 @@
}
},
"knex": {
- "version": "0.21.1",
- "resolved": "https://registry.npmjs.org/knex/-/knex-0.21.1.tgz",
- "integrity": "sha512-uWszXC2DPaLn/YznGT9wFTWUG9+kqbL4DMz+hCH789GLcLuYzq8werHPDKBJxtKvxrW/S1XIXgrTWdMypiVvsw==",
+ "version": "0.21.2",
+ "resolved": "https://registry.npmjs.org/knex/-/knex-0.21.2.tgz",
+ "integrity": "sha512-hNp9f3yXCHtMrhV2pVsuCNYmPlgXhyqviMQGLBd9zdF03ZqCO9MPng0oYhNMgIs+vDr55VC6tjEbF1OQ1La7Kg==",
"requires": {
- "colorette": "1.1.0",
+ "colorette": "1.2.1",
"commander": "^5.1.0",
"debug": "4.1.1",
"esm": "^3.2.25",
"getopts": "2.2.5",
"inherits": "~2.0.4",
- "interpret": "^2.0.0",
+ "interpret": "^2.2.0",
"liftoff": "3.1.0",
- "lodash": "^4.17.15",
+ "lodash": "^4.17.19",
"mkdirp": "^1.0.4",
- "pg-connection-string": "2.2.0",
+ "pg-connection-string": "2.3.0",
"tarn": "^3.0.0",
"tildify": "2.0.0",
"uuid": "^7.0.3",
- "v8flags": "^3.1.3"
+ "v8flags": "^3.2.0"
},
"dependencies": {
"debug": {
@@ -3750,9 +3750,9 @@
}
},
"localforage": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.7.4.tgz",
- "integrity": "sha512-3EmVZatmNVeCo/t6Te7P06h2alGwbq8wXlSkcSXMvDE2/edPmsVqTPlzGnZaqwZZDBs6v+kxWpqjVsqsNJT8jA==",
+ "version": "1.9.0",
+ "resolved": "https://registry.npmjs.org/localforage/-/localforage-1.9.0.tgz",
+ "integrity": "sha512-rR1oyNrKulpe+VM9cYmcFn6tsHuokyVHFaCM3+osEmxaHTbEk8oQu6eGDfS6DQLWi/N67XRmB8ECG37OES368g==",
"requires": {
"lie": "3.1.1"
}
@@ -3768,9 +3768,9 @@
}
},
"lodash": {
- "version": "4.17.15",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
- "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
+ "version": "4.17.19",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+ "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
},
"lodash.includes": {
"version": "4.3.0",
@@ -4130,9 +4130,9 @@
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
},
"moment": {
- "version": "2.26.0",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz",
- "integrity": "sha512-oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw=="
+ "version": "2.27.0",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
+ "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ=="
},
"ms": {
"version": "2.1.2",
@@ -4419,9 +4419,9 @@
}
},
"object-inspect": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
- "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw=="
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
+ "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
},
"object-is": {
"version": "1.1.2",
@@ -4548,9 +4548,9 @@
}
},
"onetime": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
- "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.1.tgz",
+ "integrity": "sha512-ZpZpjcJeugQfWsfyQlshVoowIIQ1qBGSVll4rfDq6JJVO//fesjoX808hXWfBjY+ROZgpKDI5TRSRBSoJiZ8eg==",
"dev": true,
"requires": {
"mimic-fn": "^2.1.0"
@@ -4843,9 +4843,9 @@
}
},
"pg-connection-string": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.0.tgz",
- "integrity": "sha512-xB/+wxcpFipUZOQcSzcgkjcNOosGhEoPSjz06jC89lv1dj7mc9bZv6wLVy8M2fVjP0a/xN0N988YDq1L0FhK3A=="
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.3.0.tgz",
+ "integrity": "sha512-ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w=="
},
"pg-int8": {
"version": "1.0.1",
@@ -4948,9 +4948,9 @@
}
},
"prebuild-install": {
- "version": "5.3.4",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.4.tgz",
- "integrity": "sha512-AkKN+pf4fSEihjapLEEj8n85YIw/tN6BQqkhzbDc0RvEZGdkpJBGMUYx66AAMcPG2KzmPQS7Cm16an4HVBRRMA==",
+ "version": "5.3.5",
+ "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz",
+ "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==",
"requires": {
"detect-libc": "^1.0.3",
"expand-template": "^2.0.3",
@@ -5238,9 +5238,9 @@
}
},
"redis-commands": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.5.0.tgz",
- "integrity": "sha512-6KxamqpZ468MeQC3bkWmCB1fp56XL64D4Kf0zJSwDZbVLLm7KFkoIcHrgRvQ+sk8dnhySs7+yBg94yIkAK7aJg=="
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/redis-commands/-/redis-commands-1.6.0.tgz",
+ "integrity": "sha512-2jnZ0IkjZxvguITjFTrGiLyzQZcTvaw8DAaCXxZq/dsHXz7KfMQ3OUJy7Tz9vnRtZRVz6VRCPDvruvU8Ts44wQ=="
},
"redis-parser": {
"version": "2.6.0",
@@ -5285,9 +5285,9 @@
"dev": true
},
"registry-auth-token": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz",
- "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz",
+ "integrity": "sha512-P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==",
"dev": true,
"requires": {
"rc": "^1.2.8"
@@ -5455,9 +5455,9 @@
"dev": true
},
"rxjs": {
- "version": "6.5.5",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
- "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==",
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz",
+ "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==",
"dev": true,
"requires": {
"tslib": "^1.9.0"
@@ -5913,15 +5913,15 @@
"integrity": "sha1-gaVSFB7BBLiOic44MQOtXGZWTQg="
},
"sharp": {
- "version": "0.25.3",
- "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.25.3.tgz",
- "integrity": "sha512-qV3n30NaBEhAjBhFo+d8h5N4X3DHteFdwxXoWUiubk72G0VKT5fX50nlcawGYjPqfFV4Z2e/G9gDPeSGAdn/gg==",
+ "version": "0.25.4",
+ "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.25.4.tgz",
+ "integrity": "sha512-umSzJJ1oBwIOfwFFt/fJ7JgCva9FvrEU2cbbm7u/3hSDZhXvkME8WE5qpaJqLIe2Har5msF5UG4CzYlEg5o3BQ==",
"requires": {
"color": "^3.1.2",
"detect-libc": "^1.0.3",
"node-addon-api": "^3.0.0",
"npmlog": "^4.1.2",
- "prebuild-install": "^5.3.3",
+ "prebuild-install": "^5.3.4",
"semver": "^7.3.2",
"simple-get": "^4.0.0",
"tar": "^6.0.2",
@@ -6016,9 +6016,9 @@
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
},
"simple-concat": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz",
- "integrity": "sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY="
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
+ "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
},
"simple-get": {
"version": "4.0.0",
@@ -6518,26 +6518,6 @@
"es-abstract": "^1.17.5"
}
},
- "string.prototype.trimleft": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz",
- "integrity": "sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==",
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimstart": "^1.0.0"
- }
- },
- "string.prototype.trimright": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz",
- "integrity": "sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==",
- "requires": {
- "define-properties": "^1.1.3",
- "es-abstract": "^1.17.5",
- "string.prototype.trimend": "^1.0.0"
- }
- },
"string.prototype.trimstart": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
@@ -6673,9 +6653,9 @@
}
},
"tar-stream": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz",
- "integrity": "sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==",
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz",
+ "integrity": "sha512-Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==",
"requires": {
"bl": "^4.0.1",
"end-of-stream": "^1.4.1",
@@ -7133,9 +7113,9 @@
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"uuid": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz",
- "integrity": "sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg=="
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz",
+ "integrity": "sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ=="
},
"v8-compile-cache": {
"version": "2.1.1",
@@ -7162,9 +7142,9 @@
}
},
"validator": {
- "version": "13.0.0",
- "resolved": "https://registry.npmjs.org/validator/-/validator-13.0.0.tgz",
- "integrity": "sha512-anYx5fURbgF04lQV18nEQWZ/3wHGnxiKdG4aL8J+jEDsm98n/sU/bey+tYk6tnGJzm7ioh5FoqrAiQ6m03IgaA=="
+ "version": "13.1.1",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-13.1.1.tgz",
+ "integrity": "sha512-8GfPiwzzRoWTg7OV1zva1KvrSemuMkv07MA9TTl91hfhe+wKrsrgVN4H2QSFd/U/FhiU3iWPYVgvbsOGwhyFWw=="
},
"vary": {
"version": "1.1.2",
diff --git a/server/package.json b/server/package.json
index d7157b9e..8fac2b17 100644
--- a/server/package.json
+++ b/server/package.json
@@ -41,28 +41,28 @@
"dependencies": {
"bcrypt": "^5.0.0",
"dotenv": "^8.2.0",
- "dotenv-cli": "^3.1.0",
+ "dotenv-cli": "^3.2.0",
"filenamify": "^4.1.0",
"jsonwebtoken": "^8.5.1",
- "knex": "^0.21.1",
- "lodash": "^4.17.15",
- "moment": "^2.26.0",
+ "knex": "^0.21.2",
+ "lodash": "^4.17.19",
+ "moment": "^2.27.0",
"rimraf": "^3.0.2",
"sails": "^1.2.4",
"sails-hook-orm": "^3.0.1",
"sails-hook-sockets": "^2.0.0",
"sails-postgresql": "^1.0.2",
- "sharp": "^0.25.3",
+ "sharp": "^0.25.4",
"stream-to-array": "^2.3.0",
- "uuid": "^8.1.0",
- "validator": "^13.0.0"
+ "uuid": "^8.3.0",
+ "validator": "^13.1.1"
},
"devDependencies": {
"eslint": "^6.8.0",
- "eslint-config-airbnb-base": "^14.1.0",
+ "eslint-config-airbnb-base": "^14.2.0",
"eslint-config-prettier": "^6.11.0",
- "eslint-plugin-import": "^2.21.1",
- "eslint-plugin-prettier": "^3.1.3",
+ "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-prettier": "^3.1.4",
"nodemon": "^2.0.4",
"prettier": "2.0.5"
},