From 264c1a6f594371be3f6e824a50d2717d9cd5b1ce Mon Sep 17 00:00:00 2001 From: Ulf Gebhardt Date: Fri, 7 May 2021 11:06:16 +0200 Subject: [PATCH 1/4] eslint rule standard --- frontend/.eslintrc.js | 1 + frontend/package.json | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index 412341955..925aceb9a 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -9,6 +9,7 @@ module.exports = { parser: 'babel-eslint' }, extends: [ + 'standard', 'plugin:vue/essential', 'plugin:prettier/recommended' ], diff --git a/frontend/package.json b/frontend/package.json index a7f59eaa1..53e5fdbcb 100755 --- a/frontend/package.json +++ b/frontend/package.json @@ -31,7 +31,7 @@ "dropzone": "^5.5.1", "element-ui": "2.4.11", "es6-promise": "^4.1.1", - "eslint": "^5.16.0", + "eslint": "^7.25.0", "eslint-config-prettier": "^8.1.0", "eslint-config-standard": "^16.0.2", "eslint-loader": "^4.0.2", @@ -40,7 +40,6 @@ "eslint-plugin-node": "^11.1.0", "eslint-plugin-prettier": "^3.3.1", "eslint-plugin-promise": "^4.3.1", - "eslint-plugin-standard": "^5.0.0", "eslint-plugin-vue": "^7.8.0", "express": "^4.17.1", "flatpickr": "^4.5.7", From 7f38c801213ad886e9d34a8d43b00ae423f5f2a0 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 7 May 2021 11:12:54 +0200 Subject: [PATCH 2/4] update yarn.lock after running yarn install --- frontend/yarn.lock | 408 +++++++++++++++++++++++++++------------------ 1 file changed, 246 insertions(+), 162 deletions(-) diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 44028c65e..1f293d882 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" @@ -356,6 +363,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== +"@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" @@ -389,6 +401,15 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" +"@babel/highlight@^7.10.4": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + "@babel/highlight@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.12.13.tgz#8ab538393e00370b26271b01fa08f7f27f2e795c" @@ -1218,6 +1239,21 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@eslint/eslintrc@^0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" + integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + "@hapi/address@2.x.x": version "2.1.4" resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" @@ -2364,7 +2400,7 @@ acorn-jsx@^3.0.0: dependencies: acorn "^3.0.4" -acorn-jsx@^5.0.0, acorn-jsx@^5.2.0: +acorn-jsx@^5.2.0, acorn-jsx@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== @@ -2389,12 +2425,12 @@ acorn@^5.5.0, acorn@^5.5.3: resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== -acorn@^6.0.1, acorn@^6.0.7, acorn@^6.1.1, acorn@^6.4.1: +acorn@^6.0.1, acorn@^6.1.1, acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.0, acorn@^7.1.1: +acorn@^7.1.0, acorn@^7.1.1, acorn@^7.4.0: version "7.4.1" resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== @@ -2434,7 +2470,7 @@ ajv@^5.2.3, ajv@^5.3.0: fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.3.0" -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.9.1: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2444,6 +2480,16 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.2.0.tgz#c89d3380a784ce81b2085f48811c4c101df4c602" + integrity sha512-WSNGFuyWd//XO8n/m/EaOlNLtO0yL8EXT/74LqT4khdhpZjP7lkj/kT5uwRmGitKEVp/Oj7ZUHeGfPtgHhQ5CA== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -2459,7 +2505,12 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: +ansi-colors@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== @@ -2678,6 +2729,11 @@ astral-regex@^1.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" @@ -3640,11 +3696,6 @@ chardet@^0.4.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== - chart.js@^2.9.3: version "2.9.4" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" @@ -4229,7 +4280,7 @@ cross-spawn@^5.0.1, cross-spawn@^5.1.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: +cross-spawn@^6.0.0: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== @@ -4240,7 +4291,7 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: +cross-spawn@^7.0.0, cross-spawn@^7.0.2: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -4860,7 +4911,7 @@ deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-is@~0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= @@ -5316,6 +5367,13 @@ enhanced-resolve@^4.5.0: memory-fs "^0.5.0" tapable "^1.0.0" +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + entities@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" @@ -5646,11 +5704,6 @@ eslint-plugin-promise@^4.3.1: resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz#61485df2a359e03149fdafc0a68b0e030ad2ac45" integrity sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ== -eslint-plugin-standard@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4" - integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== - eslint-plugin-vue@^4.7.1: version "4.7.1" resolved "https://registry.yarnpkg.com/eslint-plugin-vue/-/eslint-plugin-vue-4.7.1.tgz#c829b9fc62582c1897b5a0b94afd44ecca511e63" @@ -5684,7 +5737,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint-scope@^5.0.0: +eslint-scope@^5.0.0, eslint-scope@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== @@ -5692,13 +5745,6 @@ eslint-scope@^5.0.0: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^1.3.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - eslint-utils@^2.0.0, eslint-utils@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" @@ -5706,7 +5752,7 @@ eslint-utils@^2.0.0, eslint-utils@^2.1.0: dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== @@ -5760,47 +5806,48 @@ eslint@^4.19.1: table "4.0.2" text-table "~0.2.0" -eslint@^5.16.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== +eslint@^7.25.0: + version "7.25.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67" + integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw== dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" - chalk "^2.1.0" - cross-spawn "^6.0.5" + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" - esquery "^1.0.1" + enquirer "^2.3.5" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" + glob-parent "^5.0.0" + globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.11" + levn "^0.4.1" + lodash "^4.17.21" minimatch "^3.0.4" - mkdirp "^0.5.1" natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" + optionator "^0.9.1" progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.2.3" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.4" text-table "^0.2.0" + v8-compile-cache "^2.0.3" esm@^3.2.13: version "3.2.25" @@ -5815,15 +5862,6 @@ espree@^3.5.2, espree@^3.5.4: acorn "^5.5.0" acorn-jsx "^3.0.0" -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - espree@^6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" @@ -5833,6 +5871,15 @@ espree@^6.2.1: acorn-jsx "^5.2.0" eslint-visitor-keys "^1.1.0" +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + esprima@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" @@ -5843,7 +5890,7 @@ esprima@^4.0.0, esprima@^4.0.1: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.0, esquery@^1.0.1, esquery@^1.4.0: +esquery@^1.0.0, esquery@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== @@ -6096,15 +6143,6 @@ external-editor@^2.0.4: iconv-lite "^0.4.17" tmp "^0.0.33" -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== - dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -6195,7 +6233,7 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@~2.0.6: +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= @@ -6246,12 +6284,12 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - flat-cache "^2.0.1" + flat-cache "^3.0.4" file-loader@^3.0.1: version "3.0.1" @@ -6385,14 +6423,13 @@ flat-cache@^1.2.1: rimraf "~2.6.2" write "^0.2.1" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.1.0" + rimraf "^3.0.2" flat@^5.0.0: version "5.0.2" @@ -6404,10 +6441,10 @@ flatpickr@^4.5.7, flatpickr@^4.6.6: resolved "https://registry.yarnpkg.com/flatpickr/-/flatpickr-4.6.9.tgz#9a13383e8a6814bda5d232eae3fcdccb97dc1499" integrity sha512-F0azNNi8foVWKSF+8X+ZJzz8r9sE1G4hl06RyceIaLvyltKvDl6vqk9Lm/6AUUCi5HWaIjiUbk7UpeE/fOXOpw== -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +flatted@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flush-promises@^1.0.2: version "1.0.2" @@ -6648,7 +6685,7 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-parent@^5.1.0: +glob-parent@^5.0.0, glob-parent@^5.1.0: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -6679,11 +6716,25 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, gl once "^1.3.0" path-is-absolute "^1.0.0" -globals@^11.0.1, globals@^11.1.0, globals@^11.7.0: +globals@^11.0.1, globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globals@^13.6.0: + version "13.8.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.8.0.tgz#3e20f504810ce87a8d72e55aecf8435b50f4c1b3" + integrity sha512-rHtdA6+PDBIjeEvA91rpqzEvk/k3/i7EeNQiryiWuJH0Hw9cpyJMAt2jtbAwUaRdhD+573X4vWw6IcjKPasi9Q== + dependencies: + type-fest "^0.20.2" + globals@^9.18.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -7115,7 +7166,7 @@ iconv-lite@0.2: resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.2.11.tgz#1ce60a3a57864a292d1321ff4609ca4bb965adc8" integrity sha1-HOYKOleGSiktEyH/RgnKS7llrcg= -iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: +iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== @@ -7181,7 +7232,7 @@ import-fresh@^2.0.0: caller-path "^2.0.0" resolve-from "^3.0.0" -import-fresh@^3.0.0: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -7287,25 +7338,6 @@ inquirer@^3.0.6: strip-ansi "^4.0.0" through "^2.3.6" -inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - internal-ip@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" @@ -8626,7 +8658,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= -js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.9.1: +js-yaml@^3.13.1, js-yaml@^3.9.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -8765,6 +8797,11 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -8888,6 +8925,14 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + lines-and-columns@^1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" @@ -9048,12 +9093,17 @@ lodash.transform@^4.6.0: resolved "https://registry.yarnpkg.com/lodash.transform/-/lodash.transform-4.6.0.tgz#12306422f63324aed8483d3f38332b5f670547a0" integrity sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A= +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@~4.17.10: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9972,6 +10022,18 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" word-wrap "~1.2.3" +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + ora@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/ora/-/ora-3.4.0.tgz#bf0752491059a3ef3ed4c85097531de9fdbcd318" @@ -10780,6 +10842,11 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.27, postcss@^7.0.3 source-map "^0.6.1" supports-color "^6.1.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -11264,12 +11331,7 @@ regexpp@^1.0.1: resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-1.1.0.tgz#0e3516dd0b7904f413d2d4193dce4618c3a689ab" integrity sha512-LOPw8FpgdQF9etWMaAfG/WRthIdXJGYp4mJ2Jgn/2lpkbod9jPn0t9UqN7AxBOKNfzRbYyVfgc7Vk4t/MpnXgw== -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.0.0: +regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== @@ -11383,6 +11445,11 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -11503,20 +11570,20 @@ rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@2.6.3, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -11573,13 +11640,6 @@ rx-lite@*, rx-lite@^4.0.8: resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= -rxjs@^6.4.0: - version "6.6.3" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz#8ca84635c4daa900c0d3967a6ee7ac60271ee552" - integrity sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ== - dependencies: - tslib "^1.9.0" - safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -11705,7 +11765,7 @@ selfsigned@^1.10.8: dependencies: node-forge "^0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -11720,6 +11780,13 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.2.1: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + semver@^7.3.2: version "7.3.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" @@ -11928,14 +11995,14 @@ slice-ansi@1.0.0: dependencies: is-fullwidth-code-point "^2.0.0" -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -12423,11 +12490,16 @@ strip-indent@^2.0.0: resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-2.0.0.tgz#5ef8db295d01e6ed6cbf7aab96998d7822527b68" integrity sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g= -strip-json-comments@^2.0.0, strip-json-comments@^2.0.1, strip-json-comments@~2.0.1: +strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -12517,15 +12589,17 @@ table@4.0.2: slice-ansi "1.0.0" string-width "^2.1.1" -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.4: + version "6.7.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.0.tgz#26274751f0ee099c547f6cb91d3eff0d61d155b2" + integrity sha512-SAM+5p6V99gYiiy2gT5ArdzgM1dLDed0nkrWmG6Fry/bUS/m9x83BwpJUOf1Qj/x2qJd+thL6IkIx7qPGRxqBw== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -12873,6 +12947,13 @@ tweetnacl@^0.14.3, tweetnacl@~0.14.0: resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" @@ -12890,6 +12971,11 @@ type-fest@^0.11.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + type-fest@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" @@ -13148,6 +13234,11 @@ uuid@^8.3.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + v8-to-istanbul@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-7.1.0.tgz#5b95cef45c0f83217ec79f8fc7ee1c8b486aee07" @@ -13728,7 +13819,7 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -word-wrap@~1.2.3: +word-wrap@^1.2.3, word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== @@ -13796,13 +13887,6 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" From bfb652864c2dbe43a3545701a8a8084b01b8dd7c Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 7 May 2021 11:59:43 +0200 Subject: [PATCH 3/4] eslint standard rules implemented --- frontend/.eslintrc.js | 27 ++++++-------- frontend/jest.config.js | 2 +- frontend/run/server.js | 1 + frontend/src/App.vue | 5 --- frontend/src/apis/communityAPI.js | 20 +++++------ frontend/src/apis/loginAPI.js | 16 ++++----- frontend/src/components/BaseAlert.vue | 2 +- frontend/src/components/BaseSlider.vue | 2 +- frontend/src/components/Charts/config.js | 24 ++++++------- .../src/components/Charts/optionHelpers.js | 2 +- .../Charts/roundedCornersExtension.js | 36 +++++++++---------- frontend/src/components/CloseButton.spec.js | 2 +- .../src/components/Collapse/CollapseItem.vue | 2 +- frontend/src/components/Inputs/BaseInput.vue | 2 +- frontend/src/components/Modal-OLD.vue | 4 +-- frontend/src/components/Modal.vue | 2 +- frontend/src/components/Navbar/BaseNav.vue | 4 +-- .../NotificationPlugin/Notification.vue | 14 ++++---- .../components/NotificationPlugin/index.js | 2 +- frontend/src/components/SearchUser.vue | 2 +- .../components/SidebarPlugin/SidebarItem.vue | 4 +-- .../src/components/SidebarPlugin/index.js | 2 +- frontend/src/components/Tabs/Tabs.vue | 4 +-- frontend/src/directives/click-ouside.js | 2 +- frontend/src/main.js | 1 - frontend/src/plugins/dashboard-plugin.js | 5 ++- frontend/src/routes/routes.js | 8 ++--- frontend/src/store/store.js | 12 +++---- frontend/src/store/store.test.js | 26 +++++++------- .../src/views/Layout/ContentFooter.spec.js | 2 +- .../views/Layout/DashboardLayout_gdd.spec.js | 32 ++++++++--------- .../src/views/Layout/DashboardLayout_gdd.vue | 17 ++++----- .../src/views/Pages/AccountOverview.spec.js | 2 +- .../Pages/AccountOverview/GddAddWork2.vue | 10 +++--- .../Pages/AccountOverview/GddSend.spec.js | 6 ++-- .../views/Pages/AccountOverview/GddSend.vue | 2 +- .../Pages/AccountOverview/GddStatus.spec.js | 4 +-- .../views/Pages/AccountOverview/GddTable.vue | 2 +- .../Pages/AccountOverview/GddWorkTable.vue | 1 + frontend/src/views/Pages/Login.spec.js | 8 ++--- frontend/src/views/Pages/Login.vue | 4 +-- frontend/src/views/Pages/Register.spec.js | 8 ++--- frontend/src/views/Pages/Register.vue | 4 +-- .../src/views/Pages/ResetPassword.spec.js | 16 ++++----- frontend/src/views/Pages/ResetPassword.vue | 4 +-- .../Pages/UserProfile/ImageUploaderAvatar.vue | 10 +++--- frontend/test/testSetup.js | 4 +-- frontend/vue.config.js | 1 + 48 files changed, 181 insertions(+), 191 deletions(-) diff --git a/frontend/.eslintrc.js b/frontend/.eslintrc.js index 925aceb9a..8c410feba 100644 --- a/frontend/.eslintrc.js +++ b/frontend/.eslintrc.js @@ -3,29 +3,24 @@ module.exports = { env: { browser: true, node: true, - jest: true + jest: true, }, parserOptions: { - parser: 'babel-eslint' + parser: 'babel-eslint', }, - extends: [ - 'standard', - 'plugin:vue/essential', - 'plugin:prettier/recommended' - ], + extends: ['standard', 'plugin:vue/essential', 'plugin:prettier/recommended'], // required to lint *.vue files - plugins: [ - 'vue', - 'prettier', - 'jest' - ], + plugins: ['vue', 'prettier', 'jest'], // add your custom rules here rules: { 'no-console': ['error'], 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 'vue/component-name-in-template-casing': ['error', 'kebab-case'], - 'prettier/prettier': ['error', { - htmlWhitespaceSensitivity: 'ignore' - }], - } + 'prettier/prettier': [ + 'error', + { + htmlWhitespaceSensitivity: 'ignore', + }, + ], + }, } diff --git a/frontend/jest.config.js b/frontend/jest.config.js index f1082faad..dc44ca43e 100644 --- a/frontend/jest.config.js +++ b/frontend/jest.config.js @@ -3,7 +3,7 @@ module.exports = { collectCoverageFrom: ['src/**/*.{js,vue}', '!**/node_modules/**', '!**/?(*.)+(spec|test).js?(x)'], moduleFileExtensions: [ 'js', - //'jsx', + // 'jsx', 'json', 'vue', ], diff --git a/frontend/run/server.js b/frontend/run/server.js index 470acdc4e..8a3f54557 100644 --- a/frontend/run/server.js +++ b/frontend/run/server.js @@ -7,6 +7,7 @@ const port = process.env.PORT || 3000 // Express Server const app = express() +// eslint-disable-next-line node/no-path-concat app.use(serveStatic(__dirname + '/../dist')) app.listen(port) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index f0b7e513c..b47b9caf0 100755 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -36,11 +36,6 @@ export default { DashboardLayout, AuthLayoutGDD, }, - data() { - return { - language: 'en', - } - }, data() { return { config: { diff --git a/frontend/src/apis/communityAPI.js b/frontend/src/apis/communityAPI.js index d2e71439c..5d56f4a1b 100644 --- a/frontend/src/apis/communityAPI.js +++ b/frontend/src/apis/communityAPI.js @@ -32,17 +32,17 @@ const apiPost = async (url, payload) => { } const communityAPI = { - balance: async (session_id) => { - return apiGet(CONFIG.COMMUNITY_API_URL + 'getBalance/' + session_id) + balance: async (sessionId) => { + return apiGet(CONFIG.COMMUNITY_API_URL + 'getBalance/' + sessionId) }, - transactions: async (session_id, firstPage = 1, items = 25, order = 'DESC') => { + transactions: async (sessionId, firstPage = 1, items = 25, order = 'DESC') => { return apiGet( - `${CONFIG.COMMUNITY_API_URL}listTransactions/${firstPage}/${items}/${order}/${session_id}`, + `${CONFIG.COMMUNITY_API_URL}listTransactions/${firstPage}/${items}/${order}/${sessionId}`, ) }, - /*create: async (session_id, email, amount, memo, target_date = new Date() ) => { + /* create: async (sessionId, email, amount, memo, target_date = new Date() ) => { const payload = { - session_id, + sessionId, email, amount, target_date, @@ -50,14 +50,14 @@ const communityAPI = { auto_sign: true, } return apiPost(CONFIG.COMMUNITY_API__URL + 'createCoins/', payload) - },*/ - send: async (session_id, email, amount, memo, target_date) => { + }, */ + send: async (sessionId, email, amount, memo, targetDate) => { const payload = { - session_id, + session_id: sessionId, email, amount, memo, - target_date, + target_date: targetDate, auto_sign: true, } return apiPost(CONFIG.COMMUNITY_API_URL + 'sendCoins/', payload) diff --git a/frontend/src/apis/loginAPI.js b/frontend/src/apis/loginAPI.js index a31a4062e..f5b0c57f5 100644 --- a/frontend/src/apis/loginAPI.js +++ b/frontend/src/apis/loginAPI.js @@ -29,7 +29,7 @@ const apiPost = async (url, payload) => { throw new Error('HTTP Status Error ' + result.status) } if (result.data.state === 'warning') { - return { success: true, result: error } + return { success: true, result: result.error } } if (result.data.state !== 'success') { throw new Error(result.data.msg) @@ -48,15 +48,15 @@ const loginAPI = { } return apiPost(CONFIG.LOGIN_API_URL + 'unsecureLogin', payload) }, - logout: async (session_id) => { - const payload = { session_id } + logout: async (sessionId) => { + const payload = { session_id: sessionId } return apiPost(CONFIG.LOGIN_API_URL + 'logout', payload) }, - create: async (email, first_name, last_name, password) => { + create: async (email, firstName, lastName, password) => { const payload = { email, - first_name, - last_name, + first_name: firstName, + last_name: lastName, password, emailType: EMAIL_TYPE.DEFAULT, login_after_register: true, @@ -76,9 +76,9 @@ const loginAPI = { CONFIG.LOGIN_API_URL + 'loginViaEmailVerificationCode?emailVerificationCode=' + optin, ) }, - changePassword: async (session_id, email, password) => { + changePassword: async (sessionId, email, password) => { const payload = { - session_id, + session_id: sessionId, email, update: { 'User.password': password, diff --git a/frontend/src/components/BaseAlert.vue b/frontend/src/components/BaseAlert.vue index 3349bde50..fe17428a2 100644 --- a/frontend/src/components/BaseAlert.vue +++ b/frontend/src/components/BaseAlert.vue @@ -42,7 +42,7 @@ export default { FadeTransition, }, created() { - //console.log('base-alert gesetzt in =>', this.$route.path) + // console.log('base-alert gesetzt in =>', this.$route.path) }, props: { type: { diff --git a/frontend/src/components/BaseSlider.vue b/frontend/src/components/BaseSlider.vue index 754bea355..14180674a 100644 --- a/frontend/src/components/BaseSlider.vue +++ b/frontend/src/components/BaseSlider.vue @@ -62,7 +62,7 @@ export default { }) const slider = this.$el.noUiSlider slider.on('slide', () => { - let value = slider.get() + const value = slider.get() if (value !== this.value) { this.$emit('input', value) } diff --git a/frontend/src/components/Charts/config.js b/frontend/src/components/Charts/config.js index 5da4578f0..694a036b5 100644 --- a/frontend/src/components/Charts/config.js +++ b/frontend/src/components/Charts/config.js @@ -2,7 +2,7 @@ import { parseOptions } from '@/components/Charts/optionHelpers' import Chart from 'chart.js' export const Charts = { - mode: 'light', //(themeMode) ? themeMode : 'light'; + mode: 'light', // (themeMode) ? themeMode : 'light'; fonts: { base: 'Open Sans', }, @@ -34,9 +34,9 @@ export const Charts = { } function chartOptions() { - let { colors, mode, fonts } = Charts + const { colors, mode, fonts } = Charts // Options - let options = { + const options = { defaults: { global: { responsive: true, @@ -59,21 +59,21 @@ function chartOptions() { elements: { point: { radius: 0, - backgroundColor: colors.theme['primary'], + backgroundColor: colors.theme.primary, }, line: { tension: 0.4, borderWidth: 4, - borderColor: colors.theme['primary'], + borderColor: colors.theme.primary, backgroundColor: colors.transparent, borderCapStyle: 'rounded', }, rectangle: { - backgroundColor: colors.theme['warning'], + backgroundColor: colors.theme.warning, }, arc: { - backgroundColor: colors.theme['primary'], - borderColor: mode == 'dark' ? colors.gray[800] : colors.white, + backgroundColor: colors.theme.primary, + borderColor: mode === 'dark' ? colors.gray[800] : colors.white, borderWidth: 4, }, }, @@ -94,11 +94,11 @@ function chartOptions() { }, cutoutPercentage: 83, legendCallback: function (chart) { - let data = chart.data + const data = chart.data let content = '' data.labels.forEach(function (label, index) { - let bgColor = data.datasets[0].backgroundColor[index] + const bgColor = data.datasets[0].backgroundColor[index] content += '' content += @@ -172,7 +172,7 @@ export const basicOptions = { }, responsive: true, } -export let blueChartOptions = { +export const blueChartOptions = { scales: { yAxes: [ { @@ -185,7 +185,7 @@ export let blueChartOptions = { }, } -export let lineChartOptionsBlue = { +export const lineChartOptionsBlue = { ...basicOptions, tooltips: { backgroundColor: '#f5f5f5', diff --git a/frontend/src/components/Charts/optionHelpers.js b/frontend/src/components/Charts/optionHelpers.js index 4caa22367..5b4630b73 100644 --- a/frontend/src/components/Charts/optionHelpers.js +++ b/frontend/src/components/Charts/optionHelpers.js @@ -1,6 +1,6 @@ // Parse global options export function parseOptions(parent, options) { - for (let item in options) { + for (const item in options) { if (typeof options[item] !== 'object') { parent[item] = options[item] } else { diff --git a/frontend/src/components/Charts/roundedCornersExtension.js b/frontend/src/components/Charts/roundedCornersExtension.js index ae7f84ce8..2ef8fd1d2 100644 --- a/frontend/src/components/Charts/roundedCornersExtension.js +++ b/frontend/src/components/Charts/roundedCornersExtension.js @@ -4,13 +4,13 @@ // import Chart from 'chart.js' Chart.elements.Rectangle.prototype.draw = function () { - let ctx = this._chart.ctx - let vm = this._view - let left, right, top, bottom, signX, signY, borderSkipped, radius + const ctx = this._chart.ctx + const vm = this._view + let left, right, top, bottom, signX, signY, borderSkipped let borderWidth = vm.borderWidth // Set Radius Here // If radius is large enough to cause drawing errors a max radius is imposed - let cornerRadius = 6 + const cornerRadius = 6 if (!vm.horizontal) { // bar @@ -36,14 +36,14 @@ Chart.elements.Rectangle.prototype.draw = function () { // adjust the sizes to fit if we're setting a stroke on the line if (borderWidth) { // borderWidth shold be less than bar width and bar height. - let barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom)) + const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom)) borderWidth = borderWidth > barSize ? barSize : borderWidth - let halfStroke = borderWidth / 2 + const halfStroke = borderWidth / 2 // Adjust borderWidth when bar top position is near vm.base(zero). - let borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0) - let borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0) - let borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0) - let borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0) + const borderLeft = left + (borderSkipped !== 'left' ? halfStroke * signX : 0) + const borderRight = right + (borderSkipped !== 'right' ? -halfStroke * signX : 0) + const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0) + const borderBottom = bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0) // not become a vertical line? if (borderLeft !== borderRight) { top = borderTop @@ -64,7 +64,7 @@ Chart.elements.Rectangle.prototype.draw = function () { // Corner points, from bottom-left to bottom-right clockwise // | 1 2 | // | 0 3 | - let corners = [ + const corners = [ [left, bottom], [left, top], [right, top], @@ -72,7 +72,7 @@ Chart.elements.Rectangle.prototype.draw = function () { ] // Find first (starting) corner with fallback to 'bottom' - let borders = ['bottom', 'left', 'top', 'right'] + const borders = ['bottom', 'left', 'top', 'right'] let startCorner = borders.indexOf(borderSkipped, 0) if (startCorner === -1) { startCorner = 0 @@ -89,16 +89,14 @@ Chart.elements.Rectangle.prototype.draw = function () { for (let i = 1; i < 4; i++) { corner = cornerAt(i) let nextCornerId = i + 1 - if (nextCornerId == 4) { + if (nextCornerId === 4) { nextCornerId = 0 } - let nextCorner = cornerAt(nextCornerId) - - let width = corners[2][0] - corners[1][0] - let height = corners[0][1] - corners[1][1] - let x = corners[1][0] - let y = corners[1][1] + const width = corners[2][0] - corners[1][0] + const height = corners[0][1] - corners[1][1] + const x = corners[1][0] + const y = corners[1][1] let radius = cornerRadius diff --git a/frontend/src/components/CloseButton.spec.js b/frontend/src/components/CloseButton.spec.js index 7bf4d52de..b92422df8 100644 --- a/frontend/src/components/CloseButton.spec.js +++ b/frontend/src/components/CloseButton.spec.js @@ -6,7 +6,7 @@ const localVue = global.localVue describe('CloseButton', () => { let wrapper - let propsData = { + const propsData = { target: 'Target', expanded: false, } diff --git a/frontend/src/components/Collapse/CollapseItem.vue b/frontend/src/components/Collapse/CollapseItem.vue index 80a0cbe49..7d6b8ded1 100644 --- a/frontend/src/components/Collapse/CollapseItem.vue +++ b/frontend/src/components/Collapse/CollapseItem.vue @@ -70,7 +70,7 @@ export default { }, methods: { activate() { - let wasActive = this.active + const wasActive = this.active if (!this.multipleActive) { this.deactivateAll() } diff --git a/frontend/src/components/Inputs/BaseInput.vue b/frontend/src/components/Inputs/BaseInput.vue index c4e323696..c43e0a265 100644 --- a/frontend/src/components/Inputs/BaseInput.vue +++ b/frontend/src/components/Inputs/BaseInput.vue @@ -170,7 +170,7 @@ export default { }, methods: { updateValue(evt) { - let value = evt.target.value + const value = evt.target.value this.$emit('input', value) }, onFocus(evt) { diff --git a/frontend/src/components/Modal-OLD.vue b/frontend/src/components/Modal-OLD.vue index 4e2ea3cae..515b510a0 100644 --- a/frontend/src/components/Modal-OLD.vue +++ b/frontend/src/components/Modal-OLD.vue @@ -60,7 +60,7 @@ export default { type: String, default: '', validator(value) { - let acceptedValues = ['', 'notice', 'mini'] + const acceptedValues = ['', 'notice', 'mini'] return acceptedValues.indexOf(value) !== -1 }, description: 'Modal type (notice|mini|"") ', @@ -73,7 +73,7 @@ export default { type: String, description: 'Modal size', validator(value) { - let acceptedValues = ['', 'sm', 'lg'] + const acceptedValues = ['', 'sm', 'lg'] return acceptedValues.indexOf(value) !== -1 }, }, diff --git a/frontend/src/components/Modal.vue b/frontend/src/components/Modal.vue index 88bcd1e6f..c43bf6c67 100644 --- a/frontend/src/components/Modal.vue +++ b/frontend/src/components/Modal.vue @@ -39,7 +39,7 @@ export default { submittedNames: [], } }, - /*Modal*/ + /* Modal */ checkFormValidity() { const valid = this.$refs.form.checkValidity() this.nameState = valid diff --git a/frontend/src/components/Navbar/BaseNav.vue b/frontend/src/components/Navbar/BaseNav.vue index a656648e5..778f550fc 100644 --- a/frontend/src/components/Navbar/BaseNav.vue +++ b/frontend/src/components/Navbar/BaseNav.vue @@ -90,8 +90,8 @@ export default { }, computed: { classes() { - let color = `bg-${this.type}` - let classes = [ + const color = `bg-${this.type}` + const classes = [ { 'navbar-transparent': this.transparent }, { [`navbar-expand-${this.expand}`]: this.expand }, ] diff --git a/frontend/src/components/NotificationPlugin/Notification.vue b/frontend/src/components/NotificationPlugin/Notification.vue index 20251d9fa..e36985036 100644 --- a/frontend/src/components/NotificationPlugin/Notification.vue +++ b/frontend/src/components/NotificationPlugin/Notification.vue @@ -59,7 +59,7 @@ export default { type: String, default: 'top', validator: (value) => { - let acceptedValues = ['top', 'bottom'] + const acceptedValues = ['top', 'bottom'] return acceptedValues.indexOf(value) !== -1 }, description: 'Vertical alignment of notification (top|bottom)', @@ -68,7 +68,7 @@ export default { type: String, default: 'right', validator: (value) => { - let acceptedValues = ['left', 'center', 'right'] + const acceptedValues = ['left', 'center', 'right'] return acceptedValues.indexOf(value) !== -1 }, description: 'Horizontal alignment of notification (left|center|right)', @@ -77,7 +77,7 @@ export default { type: String, default: 'info', validator: (value) => { - let acceptedValues = ['default', 'info', 'primary', 'danger', 'warning', 'success'] + const acceptedValues = ['default', 'info', 'primary', 'danger', 'warning', 'success'] return acceptedValues.indexOf(value) !== -1 }, description: @@ -129,8 +129,8 @@ export default { return `alert-${this.type}` }, customPosition() { - let initialMargin = 20 - let alertHeight = this.elmHeight + 10 + const initialMargin = 20 + const alertHeight = this.elmHeight + 10 let sameAlertsCount = this.$notifications.state.filter((alert) => { return ( alert.horizontalAlign === this.horizontalAlign && @@ -141,8 +141,8 @@ export default { if (this.$notifications.settings.overlap) { sameAlertsCount = 1 } - let pixels = (sameAlertsCount - 1) * alertHeight + initialMargin - let styles = {} + const pixels = (sameAlertsCount - 1) * alertHeight + initialMargin + const styles = {} if (this.verticalAlign === 'top') { styles.top = `${pixels}px` } else { diff --git a/frontend/src/components/NotificationPlugin/index.js b/frontend/src/components/NotificationPlugin/index.js index fbf48d214..5b6bbe67b 100644 --- a/frontend/src/components/NotificationPlugin/index.js +++ b/frontend/src/components/NotificationPlugin/index.js @@ -44,7 +44,7 @@ const NotificationStore = { const NotificationsPlugin = { install(Vue, options) { - let app = new Vue({ + const app = new Vue({ data: { notificationStore: NotificationStore, }, diff --git a/frontend/src/components/SearchUser.vue b/frontend/src/components/SearchUser.vue index ae06c6dd8..dd3fe34a6 100644 --- a/frontend/src/components/SearchUser.vue +++ b/frontend/src/components/SearchUser.vue @@ -5,7 +5,7 @@ import VueBootstrapTypeahead from 'vue-bootstrap-typeahead' // Global registration -//Vue.component('vue-bootstrap-typeahead', VueBootstrapTypeahead) +// Vue.component('vue-bootstrap-typeahead', VueBootstrapTypeahead) // OR diff --git a/frontend/src/components/SidebarPlugin/SidebarItem.vue b/frontend/src/components/SidebarPlugin/SidebarItem.vue index 84a722aa3..309af33b0 100755 --- a/frontend/src/components/SidebarPlugin/SidebarItem.vue +++ b/frontend/src/components/SidebarPlugin/SidebarItem.vue @@ -110,7 +110,7 @@ export default { }, linkPrefix() { if (this.link.name) { - let words = this.link.name.split(' ') + const words = this.link.name.split(' ') return words.map((word) => word.substring(0, 1)).join('') } return '' @@ -120,7 +120,7 @@ export default { }, isActive() { if (this.$route && this.$route.path) { - let matchingRoute = this.children.find((c) => this.$route.path.startsWith(c.link.path)) + const matchingRoute = this.children.find((c) => this.$route.path.startsWith(c.link.path)) if (matchingRoute !== undefined) { return true } diff --git a/frontend/src/components/SidebarPlugin/index.js b/frontend/src/components/SidebarPlugin/index.js index cbe421862..ab59a9595 100755 --- a/frontend/src/components/SidebarPlugin/index.js +++ b/frontend/src/components/SidebarPlugin/index.js @@ -29,7 +29,7 @@ const SidebarPlugin = { if (options && options.sidebarLinks) { SidebarStore.sidebarLinks = options.sidebarLinks } - let app = new Vue({ + const app = new Vue({ data: { sidebarStore: SidebarStore, }, diff --git a/frontend/src/components/Tabs/Tabs.vue b/frontend/src/components/Tabs/Tabs.vue index 7ba788329..211c8d0cd 100644 --- a/frontend/src/components/Tabs/Tabs.vue +++ b/frontend/src/components/Tabs/Tabs.vue @@ -67,7 +67,7 @@ export default { type: String, default: 'primary', validator: (value) => { - let acceptedValues = ['primary', 'info', 'success', 'warning', 'danger'] + const acceptedValues = ['primary', 'info', 'success', 'warning', 'danger'] return acceptedValues.indexOf(value) !== -1 }, }, @@ -102,7 +102,7 @@ export default { }, methods: { findAndActivateTab(title) { - let tabToActivate = this.tabs.find((t) => t.title === title) + const tabToActivate = this.tabs.find((t) => t.title === title) if (tabToActivate) { this.activateTab(tabToActivate) } diff --git a/frontend/src/directives/click-ouside.js b/frontend/src/directives/click-ouside.js index 9661a4e16..be4afb4ce 100644 --- a/frontend/src/directives/click-ouside.js +++ b/frontend/src/directives/click-ouside.js @@ -2,7 +2,7 @@ export default { bind: function (el, binding, vnode) { el.clickOutsideEvent = function (event) { // here I check that click was outside the el and his childrens - if (!(el == event.target || el.contains(event.target))) { + if (!(el === event.target || el.contains(event.target))) { // and if it did, call method provided in attribute value vnode.context[binding.expression](event) } diff --git a/frontend/src/main.js b/frontend/src/main.js index f1b7ee0c2..dea19c3fe 100755 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -2,7 +2,6 @@ import Vue from 'vue' import DashboardPlugin from './plugins/dashboard-plugin' import App from './App.vue' import i18n from './i18n.js' -import VeeValidate from './vee-validate.js' // store import { store } from './store/store' diff --git a/frontend/src/plugins/dashboard-plugin.js b/frontend/src/plugins/dashboard-plugin.js index 881fecf7d..6bafb569e 100755 --- a/frontend/src/plugins/dashboard-plugin.js +++ b/frontend/src/plugins/dashboard-plugin.js @@ -3,7 +3,7 @@ import '@/polyfills' // Notifications plugin. Used on Notifications page import Notifications from '@/components/NotificationPlugin' // Validation plugin used to validate forms -import { configure } from 'vee-validate' +import { configure, extend } from 'vee-validate' // A plugin file where you could register global components used across the app import GlobalComponents from './globalComponents' // A plugin file where you could register global directives @@ -14,7 +14,6 @@ import SideBar from '@/components/SidebarPlugin' // element ui language configuration import lang from 'element-ui/lib/locale/lang/en' import locale from 'element-ui/lib/locale' -locale.use(lang) // vue-bootstrap import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' @@ -22,7 +21,6 @@ import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' // asset imports import '@/assets/scss/argon.scss' import '@/assets/vendor/nucleo/css/nucleo.css' -import { extend } from 'vee-validate' import * as rules from 'vee-validate/dist/rules' import { messages } from 'vee-validate/dist/locale/en.json' @@ -40,6 +38,7 @@ import VueMoment from 'vue-moment' import Loading from 'vue-loading-overlay' // import the styles import 'vue-loading-overlay/dist/vue-loading.css' +locale.use(lang) Object.keys(rules).forEach((rule) => { extend(rule, { diff --git a/frontend/src/routes/routes.js b/frontend/src/routes/routes.js index 236cc15af..e9bcf38c8 100755 --- a/frontend/src/routes/routes.js +++ b/frontend/src/routes/routes.js @@ -21,20 +21,20 @@ const routes = [ requiresAuth: true, }, }, - //{ + // { // path: '/profileedit', // component: () => import('../views/Pages/UserProfileEdit.vue'), // meta: { // requiresAuth: true, // }, - //}, - //{ + // }, + // { // path: '/activity', // component: () => import('../views/Pages/UserProfileActivity.vue'), // meta: { // requiresAuth: true, // }, - //}, + // }, { path: '/transactions', component: () => import('../views/Pages/UserProfileTransactionList.vue'), diff --git a/frontend/src/store/store.js b/frontend/src/store/store.js index 5c9e1bc1e..070074bfd 100644 --- a/frontend/src/store/store.js +++ b/frontend/src/store/store.js @@ -1,7 +1,7 @@ import Vue from 'vue' import Vuex from 'vuex' -Vue.use(Vuex) import createPersistedState from 'vuex-persistedstate' +Vue.use(Vuex) export const mutations = { language: (state, language) => { @@ -10,18 +10,18 @@ export const mutations = { email: (state, email) => { state.email = email }, - session_id: (state, session_id) => { - state.session_id = session_id + sessionId: (state, sessionId) => { + state.sessionId = sessionId }, } export const actions = { login: ({ dispatch, commit }, data) => { - commit('session_id', data.session_id) + commit('sessionId', data.session_id) commit('email', data.email) }, logout: ({ commit, state }) => { - commit('session_id', null) + commit('sessionId', null) commit('email', null) sessionStorage.clear() }, @@ -34,7 +34,7 @@ export const store = new Vuex.Store({ }), ], state: { - session_id: null, + sessionId: null, email: '', language: 'en', modals: false, diff --git a/frontend/src/store/store.test.js b/frontend/src/store/store.test.js index ccf59dfbf..655cca7a0 100644 --- a/frontend/src/store/store.test.js +++ b/frontend/src/store/store.test.js @@ -1,6 +1,6 @@ import { mutations, actions } from './store' -const { language, email, session_id } = mutations +const { language, email, sessionId } = mutations const { login, logout } = actions describe('Vuex store', () => { @@ -21,11 +21,11 @@ describe('Vuex store', () => { }) }) - describe('session_id', () => { - it('sets the state of session_id', () => { - const state = { session_id: null } - session_id(state, '1234') - expect(state.session_id).toEqual('1234') + describe('sessionId', () => { + it('sets the state of sessionId', () => { + const state = { sessionId: null } + sessionId(state, '1234') + expect(state.sessionId).toEqual('1234') }) }) }) @@ -36,17 +36,17 @@ describe('Vuex store', () => { const state = {} it('calls two commits', () => { - login({ commit, state }, { session_id: 1234, email: 'someone@there.is' }) + login({ commit, state }, { sessionId: 1234, email: 'someone@there.is' }) expect(commit).toHaveBeenCalledTimes(2) }) - it('commits session_id', () => { - login({ commit, state }, { session_id: 1234, email: 'someone@there.is' }) - expect(commit).toHaveBeenNthCalledWith(1, 'session_id', 1234) + it('commits sessionId', () => { + login({ commit, state }, { sessionId: 1234, email: 'someone@there.is' }) + expect(commit).toHaveBeenNthCalledWith(1, 'sessionId', 1234) }) it('commits email', () => { - login({ commit, state }, { session_id: 1234, email: 'someone@there.is' }) + login({ commit, state }, { sessionId: 1234, email: 'someone@there.is' }) expect(commit).toHaveBeenNthCalledWith(2, 'email', 'someone@there.is') }) }) @@ -60,9 +60,9 @@ describe('Vuex store', () => { expect(commit).toHaveBeenCalledTimes(2) }) - it('commits session_id', () => { + it('commits sessionId', () => { logout({ commit, state }) - expect(commit).toHaveBeenNthCalledWith(1, 'session_id', null) + expect(commit).toHaveBeenNthCalledWith(1, 'sessionId', null) }) it('commits email', () => { diff --git a/frontend/src/views/Layout/ContentFooter.spec.js b/frontend/src/views/Layout/ContentFooter.spec.js index ec4d3ff74..a5e321466 100644 --- a/frontend/src/views/Layout/ContentFooter.spec.js +++ b/frontend/src/views/Layout/ContentFooter.spec.js @@ -7,7 +7,7 @@ const localVue = global.localVue describe('ContentFooter', () => { let wrapper - let mocks = { + const mocks = { $i18n: { locale: 'en', }, diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.spec.js b/frontend/src/views/Layout/DashboardLayout_gdd.spec.js index acf971a93..ee9bab18b 100644 --- a/frontend/src/views/Layout/DashboardLayout_gdd.spec.js +++ b/frontend/src/views/Layout/DashboardLayout_gdd.spec.js @@ -20,7 +20,7 @@ const transitionStub = () => ({ describe('DashboardLayoutGdd', () => { let wrapper - let mocks = { + const mocks = { $i18n: { locale: 'en', }, @@ -28,7 +28,7 @@ describe('DashboardLayoutGdd', () => { $n: jest.fn(), } - let state = { + const state = { user: { name: 'Peter Lustig', balance: 2546, @@ -37,12 +37,12 @@ describe('DashboardLayoutGdd', () => { email: 'peter.lustig@example.org', } - let stubs = { + const stubs = { RouterLink: RouterLinkStub, FadeTransition: transitionStub(), } - let store = new Vuex.Store({ + const store = new Vuex.Store({ state, }) @@ -104,41 +104,41 @@ describe('DashboardLayoutGdd', () => { expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/transactions') }) - //it('has third item "My profile" in navbar', () => { + // it('has third item "My profile" in navbar', () => { // expect(navbar.findAll('ul > li').at(2).text()).toEqual('site.navbar.my-profil') - //}) + // }) // - //it.skip('has third item "My profile" linked to profile in navbar', async () => { + // it.skip('has third item "My profile" linked to profile in navbar', async () => { // navbar.findAll('ul > li > a').at(2).trigger('click') // await flushPromises() // await jest.runAllTimers() // await flushPromises() // expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/profile') - //}) + // }) - //it('has fourth item "Settigs" in navbar', () => { + // it('has fourth item "Settigs" in navbar', () => { // expect(navbar.findAll('ul > li').at(3).text()).toEqual('site.navbar.settings') - //}) + // }) // - //it.skip('has fourth item "Settings" linked to profileedit in navbar', async () => { + // it.skip('has fourth item "Settings" linked to profileedit in navbar', async () => { // navbar.findAll('ul > li > a').at(3).trigger('click') // await flushPromises() // await jest.runAllTimers() // await flushPromises() // expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/profileedit') - //}) + // }) - //it('has fifth item "Activity" in navbar', () => { + // it('has fifth item "Activity" in navbar', () => { // expect(navbar.findAll('ul > li').at(4).text()).toEqual('site.navbar.activity') - //}) + // }) // - //it.skip('has fourth item "Activity" linked to activity in navbar', async () => { + // it.skip('has fourth item "Activity" linked to activity in navbar', async () => { // navbar.findAll('ul > li > a').at(4).trigger('click') // await flushPromises() // await jest.runAllTimers() // await flushPromises() // expect(wrapper.findComponent(RouterLinkStub).props().to).toBe('/activity') - //}) + // }) }) }) }) diff --git a/frontend/src/views/Layout/DashboardLayout_gdd.vue b/frontend/src/views/Layout/DashboardLayout_gdd.vue index aac4f3743..bc7ad6dad 100755 --- a/frontend/src/views/Layout/DashboardLayout_gdd.vue +++ b/frontend/src/views/Layout/DashboardLayout_gdd.vue @@ -46,12 +46,19 @@ import PerfectScrollbar from 'perfect-scrollbar' import 'perfect-scrollbar/css/perfect-scrollbar.css' import loginAPI from '../../apis/loginAPI' +import DashboardNavbar from './DashboardNavbar.vue' +import ContentFooter from './ContentFooter.vue' +// import DashboardContent from './Content.vue'; +import { FadeTransition } from 'vue2-transitions' +import communityAPI from '../../apis/communityAPI' + function hasElement(className) { return document.getElementsByClassName(className).length > 0 } function initScrollbar(className) { if (hasElement(className)) { + // eslint-disable-next-line no-new new PerfectScrollbar(`.${className}`) } else { // try to init it later in case this component is loaded async @@ -61,12 +68,6 @@ function initScrollbar(className) { } } -import DashboardNavbar from './DashboardNavbar.vue' -import ContentFooter from './ContentFooter.vue' -// import DashboardContent from './Content.vue'; -import { FadeTransition } from 'vue2-transitions' -import communityAPI from '../../apis/communityAPI' - export default { components: { DashboardNavbar, @@ -84,13 +85,13 @@ export default { }, methods: { initScrollbar() { - let isWindows = navigator.platform.startsWith('Win') + const isWindows = navigator.platform.startsWith('Win') if (isWindows) { initScrollbar('sidenav') } }, async logout() { - const result = await loginAPI.logout(this.$store.state.session_id) + await loginAPI.logout(this.$store.state.session_id) // do we have to check success? this.$store.dispatch('logout') this.$router.push('/login') diff --git a/frontend/src/views/Pages/AccountOverview.spec.js b/frontend/src/views/Pages/AccountOverview.spec.js index 668521cf6..1454ada5c 100644 --- a/frontend/src/views/Pages/AccountOverview.spec.js +++ b/frontend/src/views/Pages/AccountOverview.spec.js @@ -6,7 +6,7 @@ const localVue = global.localVue describe('AccountOverview', () => { let wrapper - let mocks = { + const mocks = { $t: jest.fn((t) => t), } diff --git a/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue b/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue index 0c3dad131..419742874 100644 --- a/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue +++ b/frontend/src/views/Pages/AccountOverview/GddAddWork2.vue @@ -102,7 +102,7 @@ export default { created() {}, watch: { $form: function () { - stunden(this.form) + this.stunden(this.form) }, }, mounted() {}, @@ -133,16 +133,16 @@ export default { }, deleteNewMessage: function (event) { this.form.splice(event, null) - this.messages.splice(index, 1) + this.messages.splice(this.index, 1) this.index-- }, submitForm: function (e) { - //console.log('submitForm') + // console.log('submitForm') this.messages = [{ DaysNumber: '', TextDecoded: '' }] this.submitted = true }, textFocus() { - //console.log('textFocus TODO') + // console.log('textFocus TODO') }, newWorkForm() { this.formular = ` @@ -174,7 +174,7 @@ export default { > - ` + ` // console.log('newWorkForm TODO') const myElement = this.$refs.mydiv diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js index b206eb803..ffc8fd211 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddSend.spec.js @@ -7,18 +7,18 @@ const localVue = global.localVue describe('GddSend', () => { let wrapper - let state = { + const state = { user: { balance: 1234, balance_gdt: 9876, }, } - let store = new Vuex.Store({ + const store = new Vuex.Store({ state, }) - let mocks = { + const mocks = { // $n: jest.fn((n) => n), $t: jest.fn((t) => t), $moment: jest.fn((m) => ({ diff --git a/frontend/src/views/Pages/AccountOverview/GddSend.vue b/frontend/src/views/Pages/AccountOverview/GddSend.vue index a353d0485..b54340de5 100644 --- a/frontend/src/views/Pages/AccountOverview/GddSend.vue +++ b/frontend/src/views/Pages/AccountOverview/GddSend.vue @@ -240,7 +240,7 @@ export default { this.scan = false }, async onSubmit() { - //event.preventDefault() + // event.preventDefault() this.ajaxCreateData.email = this.form.email this.ajaxCreateData.amount = this.form.amount const now = new Date(Date.now()).toISOString() diff --git a/frontend/src/views/Pages/AccountOverview/GddStatus.spec.js b/frontend/src/views/Pages/AccountOverview/GddStatus.spec.js index 83b306ace..9adc3b4ca 100644 --- a/frontend/src/views/Pages/AccountOverview/GddStatus.spec.js +++ b/frontend/src/views/Pages/AccountOverview/GddStatus.spec.js @@ -6,11 +6,11 @@ const localVue = global.localVue describe('GddStatus', () => { let wrapper - let mocks = { + const mocks = { $n: jest.fn((n) => n), } - let propsData = { + const propsData = { balance: 1234, GdtBalance: 9876, } diff --git a/frontend/src/views/Pages/AccountOverview/GddTable.vue b/frontend/src/views/Pages/AccountOverview/GddTable.vue index 84a049537..bb93a04f2 100644 --- a/frontend/src/views/Pages/AccountOverview/GddTable.vue +++ b/frontend/src/views/Pages/AccountOverview/GddTable.vue @@ -127,7 +127,7 @@ export default { }, methods: { ojectToArray(obj) { - let result = new Array(Object.keys(obj).length) + const result = new Array(Object.keys(obj).length) Object.entries(obj).forEach((entry) => { const [key, value] = entry result[key] = value diff --git a/frontend/src/views/Pages/AccountOverview/GddWorkTable.vue b/frontend/src/views/Pages/AccountOverview/GddWorkTable.vue index c17e3dc2d..247175a63 100644 --- a/frontend/src/views/Pages/AccountOverview/GddWorkTable.vue +++ b/frontend/src/views/Pages/AccountOverview/GddWorkTable.vue @@ -68,6 +68,7 @@ export default { if (item.status === 'earned') return 'table-primary' }, toogle(item) { + // eslint-disable-next-line no-unused-vars const temp = 'xxx porta' }, diff --git a/frontend/src/views/Pages/Login.spec.js b/frontend/src/views/Pages/Login.spec.js index f0bb1b3b8..c95aa5a4c 100644 --- a/frontend/src/views/Pages/Login.spec.js +++ b/frontend/src/views/Pages/Login.spec.js @@ -9,22 +9,22 @@ const localVue = global.localVue describe('Login', () => { let wrapper - let mocks = { + const mocks = { $i18n: { locale: 'en', }, $t: jest.fn((t) => t), } - let state = { + const state = { loginfail: false, } - let store = new Vuex.Store({ + const store = new Vuex.Store({ state, }) - let stubs = { + const stubs = { RouterLink: RouterLinkStub, } diff --git a/frontend/src/views/Pages/Login.vue b/frontend/src/views/Pages/Login.vue index ee71bad87..ae0bdeaf5 100755 --- a/frontend/src/views/Pages/Login.vue +++ b/frontend/src/views/Pages/Login.vue @@ -112,7 +112,7 @@ export default { }, methods: { async onSubmit() { - let loader = this.$loading.show({ + const loader = this.$loading.show({ container: this.$refs.submitButton, }) const result = await loginAPI.login(this.model.email, this.model.password) @@ -129,7 +129,7 @@ export default { } }, closeAlert() { - loader.hide() + this.$loading.hide() this.loginfail = false }, }, diff --git a/frontend/src/views/Pages/Register.spec.js b/frontend/src/views/Pages/Register.spec.js index e9d09a242..dcb97cf42 100644 --- a/frontend/src/views/Pages/Register.spec.js +++ b/frontend/src/views/Pages/Register.spec.js @@ -9,22 +9,22 @@ const localVue = global.localVue describe('Register', () => { let wrapper - let mocks = { + const mocks = { $i18n: { locale: 'en', }, $t: jest.fn((t) => t), } - let state = { + const state = { // loginfail: false, } - let store = new Vuex.Store({ + const store = new Vuex.Store({ state, }) - let stubs = { + const stubs = { RouterLink: RouterLinkStub, } diff --git a/frontend/src/views/Pages/Register.vue b/frontend/src/views/Pages/Register.vue index 80a93c5d5..75bf46bd3 100755 --- a/frontend/src/views/Pages/Register.vue +++ b/frontend/src/views/Pages/Register.vue @@ -232,8 +232,8 @@ export default { return this.model.email !== '' }, passwordValidation() { - let errors = [] - for (let condition of this.rules) { + const errors = [] + for (const condition of this.rules) { if (!condition.regex.test(this.password)) { errors.push(condition.message) } diff --git a/frontend/src/views/Pages/ResetPassword.spec.js b/frontend/src/views/Pages/ResetPassword.spec.js index 7e87bb90f..6ad405e71 100644 --- a/frontend/src/views/Pages/ResetPassword.spec.js +++ b/frontend/src/views/Pages/ResetPassword.spec.js @@ -11,9 +11,9 @@ const router = new VueRouter({ routes }) describe('ResetPassword', () => { let wrapper - let emailVerification = jest.fn() + const emailVerification = jest.fn() - let mocks = { + const mocks = { $i18n: { locale: 'en', }, @@ -49,13 +49,13 @@ describe('ResetPassword', () => { expect(wrapper.find('div.resetpwd-form').exists()).toBeTruthy() }) - //describe('Register header', () => { + // describe('Register header', () => { // it('has a welcome message', () => { // expect(wrapper.find('div.header').text()).toBe('site.signup.title site.signup.subtitle') // }) - //}) + // }) - //describe('links', () => { + // describe('links', () => { // it('has a link "Back"', () => { // expect(wrapper.findAllComponents(RouterLinkStub).at(0).text()).toEqual('back') // }) @@ -63,9 +63,9 @@ describe('ResetPassword', () => { // it('links to /login when clicking "Back"', () => { // expect(wrapper.findAllComponents(RouterLinkStub).at(0).props().to).toBe('/login') // }) - //}) + // }) - //describe('Register form', () => { + // describe('Register form', () => { // it('has a register form', () => { // expect(wrapper.find('form').exists()).toBeTruthy() // }) @@ -108,7 +108,7 @@ describe('ResetPassword', () => { // }) // //TODO test different invalid password combinations - //}) + // }) // TODO test submit button }) diff --git a/frontend/src/views/Pages/ResetPassword.vue b/frontend/src/views/Pages/ResetPassword.vue index 4935b47db..243a8519a 100644 --- a/frontend/src/views/Pages/ResetPassword.vue +++ b/frontend/src/views/Pages/ResetPassword.vue @@ -141,8 +141,8 @@ export default { return this.password !== '' && this.checkPassword !== '' }, passwordValidation() { - let errors = [] - for (let condition of this.rules) { + const errors = [] + for (const condition of this.rules) { if (!condition.regex.test(this.password)) { errors.push(condition.message) } diff --git a/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue b/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue index c355699eb..8c35b918a 100644 --- a/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue +++ b/frontend/src/views/Pages/UserProfile/ImageUploaderAvatar.vue @@ -43,11 +43,11 @@ export default { }, onFileChange(fieldName, file) { const { maxSize } = this - let imageFile = file[0] + const imageFile = file[0] - //check if user actually selected a file + // check if user actually selected a file if (file.length > 0) { - let size = imageFile.size / maxSize / maxSize + const size = imageFile.size / maxSize / maxSize if (!imageFile.type.match('image.*')) { // check whether the upload is an image this.errorDialog = true @@ -58,8 +58,8 @@ export default { this.errorText = 'Your file is too big! Please select an image under 1MB' } else { // Append file into FormData & turn file into image URL - let formData = new FormData() - let imageURL = URL.createObjectURL(imageFile) + const formData = new FormData() + const imageURL = URL.createObjectURL(imageFile) formData.append(fieldName, imageFile) // Emit FormData & image URL to the parent component this.$emit('input', { formData, imageURL }) diff --git a/frontend/test/testSetup.js b/frontend/test/testSetup.js index 497f04e3e..457c13f45 100644 --- a/frontend/test/testSetup.js +++ b/frontend/test/testSetup.js @@ -2,9 +2,9 @@ import { createLocalVue } from '@vue/test-utils' import ElementUI from 'element-ui' import { BootstrapVue, IconsPlugin } from 'bootstrap-vue' import Vuex from 'vuex' -import { ValidationProvider, ValidationObserver } from 'vee-validate' +import { ValidationProvider, ValidationObserver, extend } from 'vee-validate' import * as rules from 'vee-validate/dist/rules' -import { extend } from 'vee-validate' + import { messages } from 'vee-validate/dist/locale/en.json' import BaseInput from '@/components/Inputs/BaseInput.vue' import BaseButton from '@/components/BaseButton.vue' diff --git a/frontend/vue.config.js b/frontend/vue.config.js index 0ff92c052..9fffda28c 100644 --- a/frontend/vue.config.js +++ b/frontend/vue.config.js @@ -23,6 +23,7 @@ module.exports = { assets: path.join(__dirname, 'src/assets'), }, }, + // eslint-disable-next-line new-cap plugins: [new dotenv()], }, css: { From 5c862bbb16d498dd70dbdcc401f0c1dce18b4059 Mon Sep 17 00:00:00 2001 From: Moriz Wahl Date: Fri, 7 May 2021 12:39:46 +0200 Subject: [PATCH 4/4] fix test of store --- frontend/src/store/store.test.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/frontend/src/store/store.test.js b/frontend/src/store/store.test.js index 655cca7a0..ba629d548 100644 --- a/frontend/src/store/store.test.js +++ b/frontend/src/store/store.test.js @@ -36,17 +36,17 @@ describe('Vuex store', () => { const state = {} it('calls two commits', () => { - login({ commit, state }, { sessionId: 1234, email: 'someone@there.is' }) + login({ commit, state }, { session_id: 1234, email: 'someone@there.is' }) expect(commit).toHaveBeenCalledTimes(2) }) it('commits sessionId', () => { - login({ commit, state }, { sessionId: 1234, email: 'someone@there.is' }) + login({ commit, state }, { session_id: 1234, email: 'someone@there.is' }) expect(commit).toHaveBeenNthCalledWith(1, 'sessionId', 1234) }) it('commits email', () => { - login({ commit, state }, { sessionId: 1234, email: 'someone@there.is' }) + login({ commit, state }, { session_id: 1234, email: 'someone@there.is' }) expect(commit).toHaveBeenNthCalledWith(2, 'email', 'someone@there.is') }) })