From feefe7aa6af0bbca06df0f0d0314842f4895fee9 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 13 Jun 2024 09:11:40 +0530 Subject: [PATCH 01/17] chore/updated the packages, libraries and node version to the latest --- package.json | 53 +- yarn.lock | 1787 ++++++++++++++++++++++++++++---------------------- 2 files changed, 1030 insertions(+), 810 deletions(-) diff --git a/package.json b/package.json index 64149101e..0bf384929 100644 --- a/package.json +++ b/package.json @@ -16,38 +16,38 @@ "tdd:watch": "sh scripts/tests/tdd.sh" }, "dependencies": { - "axios": "^1.6.7", - "cloudinary": "^2.0.3", - "config": "3.3.7", + "axios": "^1.7.2", + "cloudinary": "^2.2.0", + "config": "^3.3.11", "cookie-parser": "~1.4.6", "cors": "^2.8.5", "datauri": "^4.1.0", "debug": "~4.3.4", - "express": "~4.18.3", + "express": "~4.19.12", "express-boom": "^3.0.0", - "firebase-admin": "^11.11.1", + "firebase-admin": "^12.1.1", "helmet": "^7.1.0", "http-errors": "~2.0.0", - "joi": "^17.12.2", - "jsdoc": "^4.0.2", - "jsonwebtoken": "^8.5.1", + "joi": "^17.13.1", + "jsdoc": "^4.0.3", + "jsonwebtoken": "^9.0.2", "morgan": "~1.10.0", - "multer": "^1.4.2", - "newrelic": "^11.12.0", + "multer": "^1.4.5-lts.1", + "newrelic": "^11.19.0", "passport": "^0.7.0", "passport-github2": "^0.1.12", - "rate-limiter-flexible": "^5.0.0", - "winston": "^3.12.0" + "rate-limiter-flexible": "^5.0.3", + "winston": "^3.13.0" }, "devDependencies": { - "@types/chai": "^4.3.12", - "@types/config": "^3.3.3", + "@types/chai": "^4.3.16", + "@types/config": "^3.3.4", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.24", + "@types/node": "^20.14.2", "@types/sinon": "^17.0.3", - "@typescript-eslint/parser": "^7.1.1", + "@typescript-eslint/parser": "^7.13.0", "chai": "^4.4.1", "chai-http": "^4.4.0", "cross-env": "^7.0.3", @@ -60,27 +60,26 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", - "eslint-plugin-standard": "^4.1.0", - "firebase-tools": "^13.4.0", - "mocha": "^10.3.0", - "nock": "~13.2.9", - "nodemon": "^3.1.0", - "nyc": "^15.1.0", + "firebase-tools": "^13.11.2", + "mocha": "^10.4.0", + "nock": "^13.5.4", + "nodemon": "^3.1.3", + "nyc": "^17.0.0", "pre-commit": "^1.2.2", "prettier": "^2.5.1", - "sinon": "^17.0.1", + "sinon": "^18.0.0", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", - "typescript": "~5.3.3" + "typescript": "^5.4.5" }, "engines": { - "node": "20.x" + "node": "22.x" }, "pre-commit": [ "lint" ], "volta": { - "node": "20.11.1", - "yarn": "1.22.21" + "node": "22.3.0", + "yarn": "1.22.22" } } diff --git a/yarn.lock b/yarn.lock index 7f54267e1..5967bad35 100644 --- a/yarn.lock +++ b/yarn.lock @@ -25,7 +25,7 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" -"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.23.5": +"@babel/code-frame@^7.12.13": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== @@ -33,128 +33,144 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" -"@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== +"@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" -"@babel/core@^7.7.5": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.0.tgz#56cbda6b185ae9d9bed369816a8f4423c5f2ff1b" - integrity sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw== +"@babel/compat-data@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" + integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== + +"@babel/core@^7.23.9": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" + integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== dependencies: "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.24.0" - "@babel/parser" "^7.24.0" - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-compilation-targets" "^7.24.7" + "@babel/helper-module-transforms" "^7.24.7" + "@babel/helpers" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.7.tgz#1654d01de20ad66b4b4d99c135471bc654c55e6d" + integrity sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA== dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.24.7" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +"@babel/helper-compilation-targets@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz#4eb6c4a80d6ffeac25ab8cd9a21b5dfa48d503a9" + integrity sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" + "@babel/compat-data" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" browserslist "^4.22.2" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== + dependencies: + "@babel/types" "^7.24.7" -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.24.7" -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== dependencies: - "@babel/types" "^7.22.15" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== +"@babel/helper-module-transforms@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz#31b6c9a2930679498db65b685b1698bfd6c7daf8" + integrity sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ== dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== dependencies: - "@babel/types" "^7.22.5" + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== dependencies: - "@babel/types" "^7.22.5" + "@babel/types" "^7.24.7" -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== +"@babel/helper-string-parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" + integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== -"@babel/helpers@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.0.tgz#a3dd462b41769c95db8091e49cfe019389a9409b" - integrity sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA== +"@babel/helper-validator-option@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz#24c3bb77c7a425d1742eec8fb433b5a1b38e62f6" + integrity sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw== + +"@babel/helpers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.7.tgz#aa2ccda29f62185acb5d42fb4a3a1b1082107416" + integrity sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg== dependencies: - "@babel/template" "^7.24.0" - "@babel/traverse" "^7.24.0" - "@babel/types" "^7.24.0" + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" "@babel/highlight@^7.23.4": version "7.23.4" @@ -165,43 +181,58 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.20.15", "@babel/parser@^7.24.0": +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + +"@babel/parser@^7.20.15": version "7.24.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== -"@babel/template@^7.22.15", "@babel/template@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.0.tgz#c6a524aa93a4a05d66aaf31654258fae69d87d50" - integrity sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" - -"@babel/traverse@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.0.tgz#4a408fbf364ff73135c714a2ab46a5eab2831b1e" - integrity sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.24.0" - "@babel/types" "^7.24.0" +"@babel/parser@^7.23.9", "@babel/parser@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" + integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== + +"@babel/template@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + +"@babel/traverse@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.7.tgz#de2b900163fa741721ba382163fe46a936c40cf5" + integrity sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.7" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.24.0": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.0.tgz#3b951f435a92e7333eba05b7566fd297960ea1bf" - integrity sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w== +"@babel/types@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.7.tgz#6027fe12bc1aa724cd32ab113fb7f1988f1f66f2" + integrity sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q== dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-string-parser" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" to-fast-properties "^2.0.0" "@colors/colors@1.5.0": @@ -270,169 +301,172 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== -"@fastify/busboy@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-1.2.1.tgz#9c6db24a55f8b803b5222753b24fe3aea2ba9ca3" - integrity sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q== - dependencies: - text-decoding "^1.0.0" +"@fastify/busboy@^2.1.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== -"@firebase/app-types@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.0.tgz#35b5c568341e9e263b29b3d2ba0e9cfc9ec7f01e" - integrity sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q== +"@firebase/app-check-interop-types@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz#455b6562c7a3de3ef75ea51f72dfec5829ad6997" + integrity sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ== -"@firebase/auth-interop-types@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz#78884f24fa539e34a06c03612c75f222fcc33742" - integrity sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg== +"@firebase/app-types@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.2.tgz#8cbcceba784753a7c0066a4809bc22f93adee080" + integrity sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ== -"@firebase/component@0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.4.tgz#8981a6818bd730a7554aa5e0516ffc9b1ae3f33d" - integrity sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA== +"@firebase/auth-interop-types@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz#927f1f2139a680b55fef0bddbff2c982b08587e8" + integrity sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ== + +"@firebase/component@0.6.7": + version "0.6.7" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.7.tgz#6fbffddb26833e1ed58bf296ad587cb330aee716" + integrity sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA== dependencies: - "@firebase/util" "1.9.3" + "@firebase/util" "1.9.6" tslib "^2.1.0" -"@firebase/database-compat@^0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.3.4.tgz#4e57932f7a5ba761cd5ac946ab6b6ab3f660522c" - integrity sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg== - dependencies: - "@firebase/component" "0.6.4" - "@firebase/database" "0.14.4" - "@firebase/database-types" "0.10.4" - "@firebase/logger" "0.4.0" - "@firebase/util" "1.9.3" +"@firebase/database-compat@^1.0.2": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-1.0.5.tgz#18c2314f169942ac315e46b68f86cbe64bafe063" + integrity sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg== + dependencies: + "@firebase/component" "0.6.7" + "@firebase/database" "1.0.5" + "@firebase/database-types" "1.0.3" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.6" tslib "^2.1.0" -"@firebase/database-types@0.10.4", "@firebase/database-types@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.10.4.tgz#47ba81113512dab637abace61cfb65f63d645ca7" - integrity sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ== +"@firebase/database-types@1.0.3", "@firebase/database-types@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.3.tgz#1b764212dce88eca74b16da9d220cfea6814858e" + integrity sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA== dependencies: - "@firebase/app-types" "0.9.0" - "@firebase/util" "1.9.3" + "@firebase/app-types" "0.9.2" + "@firebase/util" "1.9.6" -"@firebase/database@0.14.4": - version "0.14.4" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.14.4.tgz#9e7435a16a540ddfdeb5d99d45618e6ede179aa6" - integrity sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ== - dependencies: - "@firebase/auth-interop-types" "0.2.1" - "@firebase/component" "0.6.4" - "@firebase/logger" "0.4.0" - "@firebase/util" "1.9.3" +"@firebase/database@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.0.5.tgz#09d7162b7dbc4533f17498ac6a76d5e757ab45be" + integrity sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.7" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.6" faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/logger@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.0.tgz#15ecc03c452525f9d47318ad9491b81d1810f113" - integrity sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA== +"@firebase/logger@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.2.tgz#74dfcfeedee810deb8a7080d5b7eba56aa16ffa2" + integrity sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A== dependencies: tslib "^2.1.0" -"@firebase/util@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.3.tgz#45458dd5cd02d90e55c656e84adf6f3decf4b7ed" - integrity sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA== +"@firebase/util@1.9.6": + version "1.9.6" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.6.tgz#56dc34e20fcbc0dd07b11b800f95f5d0417cbfb4" + integrity sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw== dependencies: tslib "^2.1.0" -"@google-cloud/firestore@^6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-6.8.0.tgz#d8c852844c381afaf62592796606c10e178400b5" - integrity sha512-JRpk06SmZXLGz0pNx1x7yU3YhkUXheKgH5hbDZ4kMsdhtfV5qPLJLRI4wv69K0cZorIk+zTMOwptue7hizo0eA== +"@google-cloud/cloud-sql-connector@^1.2.3": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@google-cloud/cloud-sql-connector/-/cloud-sql-connector-1.3.1.tgz#0a6d050e1dd4f43c5a39f57e742cf70235f21174" + integrity sha512-lF52gnTeO3bf1Yt0DGkCJ8j/+Q9w9bK4Oa99hE6irR1k8WFYOMhwpg+rcMlYL8B1T2niUEFbS+u2gqwX+Krv/w== dependencies: - fast-deep-equal "^3.1.1" - functional-red-black-tree "^1.0.1" - google-gax "^3.5.7" - protobufjs "^7.2.5" + "@googleapis/sqladmin" "^18.0.0" + gaxios "^6.1.1" + google-auth-library "^9.2.0" + p-throttle "^5.1.0" -"@google-cloud/paginator@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" - integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== +"@google-cloud/firestore@^7.7.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-7.8.0.tgz#029bed6c47de84c667a27256acbaca6f6ee50e15" + integrity sha512-m21BWVZLz7H7NF8HZ5hCGUSCEJKNwYB5yzQqDTuE9YUzNDRMDei3BwVDht5k4xF636sGlnobyBL+dcbthSGONg== dependencies: - arrify "^2.0.0" - extend "^3.0.2" + fast-deep-equal "^3.1.1" + functional-red-black-tree "^1.0.1" + google-gax "^4.3.3" + protobufjs "^7.2.6" -"@google-cloud/paginator@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-4.0.1.tgz#5fb8793d4f84d18c50a6f2fad3dadab8d2c533ef" - integrity sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ== +"@google-cloud/paginator@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.2.tgz#86ad773266ce9f3b82955a8f75e22cd012ccc889" + integrity sha512-DJS3s0OVH4zFDB1PzjxAsHqJT6sKVbRwwML0ZBP9PbU7Yebtu/7SWMRzvO2J3nUi9pRNITCfu4LJeooM2w4pjg== dependencies: arrify "^2.0.0" extend "^3.0.2" -"@google-cloud/precise-date@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-3.0.1.tgz#1e6659a14af662442037b8f4d20dbc82bf1a78bd" - integrity sha512-crK2rgNFfvLoSgcKJY7ZBOLW91IimVNmPfi1CL+kMTf78pTJYd29XqEVedAeBu4DwCJc0EDIp1MpctLgoPq+Uw== +"@google-cloud/precise-date@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-4.0.0.tgz#e179893a3ad628b17a6fabdfcc9d468753aac11a" + integrity sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA== -"@google-cloud/projectify@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-3.0.0.tgz#302b25f55f674854dce65c2532d98919b118a408" - integrity sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA== +"@google-cloud/projectify@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" + integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== -"@google-cloud/promisify@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" - integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== +"@google-cloud/promisify@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" + integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== -"@google-cloud/promisify@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-3.0.1.tgz#8d724fb280f47d1ff99953aee0c1669b25238c2e" - integrity sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA== - -"@google-cloud/pubsub@^3.0.1": - version "3.7.5" - resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-3.7.5.tgz#3fed656b7e7ea3a4618d5590004f08321a1389b9" - integrity sha512-4Qrry4vIToth5mqduVslltWVsyb7DR8OhnkBA3F7XiE0jgQsiuUfwp/RB2F559aXnRbwcfmjvP4jSuEaGcjrCQ== - dependencies: - "@google-cloud/paginator" "^4.0.0" - "@google-cloud/precise-date" "^3.0.0" - "@google-cloud/projectify" "^3.0.0" - "@google-cloud/promisify" "^2.0.0" - "@opentelemetry/api" "^1.6.0" - "@opentelemetry/semantic-conventions" "~1.3.0" - "@types/duplexify" "^3.6.0" - "@types/long" "^4.0.0" +"@google-cloud/pubsub@^4.4.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-4.5.0.tgz#0c163038f4f00d40df1c21bfe1c1db87011a997e" + integrity sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA== + dependencies: + "@google-cloud/paginator" "^5.0.0" + "@google-cloud/precise-date" "^4.0.0" + "@google-cloud/projectify" "^4.0.0" + "@google-cloud/promisify" "^4.0.0" + "@opentelemetry/api" "~1.8.0" + "@opentelemetry/semantic-conventions" "~1.21.0" arrify "^2.0.0" extend "^3.0.2" - google-auth-library "^8.0.2" - google-gax "^3.6.1" + google-auth-library "^9.3.0" + google-gax "^4.3.3" heap-js "^2.2.0" is-stream-ended "^0.1.4" lodash.snakecase "^4.1.1" p-defer "^3.0.0" -"@google-cloud/storage@^6.9.5": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-6.12.0.tgz#a5d3093cc075252dca5bd19a3cfda406ad3a9de1" - integrity sha512-78nNAY7iiZ4O/BouWMWTD/oSF2YtYgYB3GZirn0To6eBOugjXVoK+GXgUXOl+HlqbAOyHxAVXOlsj3snfbQ1dw== +"@google-cloud/storage@^7.7.0": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.11.2.tgz#a8942d9a4a75634186d262b82c5b41e90649f11c" + integrity sha512-jJOrKyOdujfrSF8EJODW9yY6hqO4jSTk6eVITEj2gsD43BSXuDlnMlLOaBUQhXL29VGnSkxDgYl5tlFhA6LKSA== dependencies: - "@google-cloud/paginator" "^3.0.7" - "@google-cloud/projectify" "^3.0.0" - "@google-cloud/promisify" "^3.0.0" + "@google-cloud/paginator" "^5.0.0" + "@google-cloud/projectify" "^4.0.0" + "@google-cloud/promisify" "^4.0.0" abort-controller "^3.0.0" async-retry "^1.3.3" - compressible "^2.0.12" - duplexify "^4.0.0" - ent "^2.2.0" - extend "^3.0.2" - fast-xml-parser "^4.2.2" - gaxios "^5.0.0" - google-auth-library "^8.0.1" + duplexify "^4.1.3" + fast-xml-parser "^4.3.0" + gaxios "^6.0.2" + google-auth-library "^9.6.3" + html-entities "^2.5.2" mime "^3.0.0" - mime-types "^2.0.8" p-limit "^3.0.1" - retry-request "^5.0.0" - teeny-request "^8.0.0" + retry-request "^7.0.0" + teeny-request "^9.0.0" uuid "^8.0.0" +"@googleapis/sqladmin@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@googleapis/sqladmin/-/sqladmin-18.0.0.tgz#290a41c05d750130493e08e3b7f0b6f2fd478aab" + integrity sha512-OhGKZzcFVVXPedf4WMecTmLQ7jfRyNte6NZ+unwO3PtDgw1WyTpbR9DMGMRDpOONeSpsdu0vDn8OrKokHCQpaw== + dependencies: + googleapis-common "^7.0.0" + "@grpc/grpc-js@^1.9.4": version "1.10.1" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.1.tgz#be450560c990c08274bc19d514e181ea205ccaa8" @@ -441,15 +475,25 @@ "@grpc/proto-loader" "^0.7.8" "@types/node" ">=12.12.47" -"@grpc/grpc-js@~1.8.0": - version "1.8.21" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.21.tgz#d282b122c71227859bf6c5866f4c40f4a2696513" - integrity sha512-KeyQeZpxeEBSqFVTi3q2K7PiPXmgBfECc4updA1ejCLjYmoAlvvM3ZMp5ztTDUCUQmoY3CpDxvchjO1+rFkoHg== +"@grpc/grpc-js@~1.10.3": + version "1.10.9" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c" + integrity sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ== dependencies: - "@grpc/proto-loader" "^0.7.0" - "@types/node" ">=12.12.47" + "@grpc/proto-loader" "^0.7.13" + "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.5", "@grpc/proto-loader@^0.7.8": +"@grpc/proto-loader@^0.7.13": + version "0.7.13" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" + integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== + dependencies: + lodash.camelcase "^4.3.0" + long "^5.0.0" + protobufjs "^7.2.5" + yargs "^17.7.2" + +"@grpc/proto-loader@^0.7.5", "@grpc/proto-loader@^0.7.8": version "0.7.10" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== @@ -513,7 +557,7 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== @@ -544,7 +588,7 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": +"@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== @@ -576,7 +620,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.24": +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": version "0.3.25" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== @@ -584,6 +628,11 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@js-sdsl/ordered-map@^4.4.2": + version "4.4.2" + resolved "https://registry.yarnpkg.com/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz#9299f82874bab9e4c7f9c48d865becbfe8d6907c" + integrity sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw== + "@jsdevtools/ono@^7.1.3": version "7.1.3" resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" @@ -596,16 +645,6 @@ dependencies: lodash "^4.17.21" -"@newrelic/aws-sdk@^7.1.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@newrelic/aws-sdk/-/aws-sdk-7.2.0.tgz#681657759616f19cae344b3c69c1001ebeb778f2" - integrity sha512-SiFkYBRc0ymzjTm+Ccrx5ox2slW7PbeunOzsFBDfsCxC+umFoqFZIhS10Z23gbrHwQ6wNXmwcDJdhtsxgxZANg== - -"@newrelic/koa@^8.0.1": - version "8.0.1" - resolved "https://registry.yarnpkg.com/@newrelic/koa/-/koa-8.0.1.tgz#26c1c6a69b15ad4b64a148b6be537ec2ca734206" - integrity sha512-GyeZGKPllpUu6gWXRwVP/FlvE9+tU2lOprRiTdoXNM8jdVGL02IfHnvAzrIANoZoUdf3+Vev8NNeCup2Eojcvg== - "@newrelic/native-metrics@^10.0.0": version "10.1.0" resolved "https://registry.yarnpkg.com/@newrelic/native-metrics/-/native-metrics-10.1.0.tgz#d0ea305ee7a3f8a4d0d7ad5b00f917d2bacd364d" @@ -625,12 +664,12 @@ module-details-from-path "^1.0.3" resolve "^1.22.1" -"@newrelic/security-agent@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@newrelic/security-agent/-/security-agent-1.0.1.tgz#ff6f4d89e46da7f7aa2efd1c7e7480d2711fabce" - integrity sha512-Ao5MTULa6CzI8a2poRdQ31jJA0Exv99eyewfMHYbJGAY3H4rj6TZs08rGtrDK9ZyjNTalM/DHhyyTTDq+FJM+Q== +"@newrelic/security-agent@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@newrelic/security-agent/-/security-agent-1.3.0.tgz#bf8fb2b584a5aed635d5c186b29f4fb4af55fcff" + integrity sha512-kIW/9qlGwUlNE1khlta2JzrXqZZhZbWBJxDF+T4s4KC5OtOH/tQSr1OnLgwJ2dqPddcisLJkwlQCX77Kjd0mzw== dependencies: - axios "^1.6.5" + axios "^1.6.8" check-disk-space "^3.4.0" content-type "^1.0.5" fast-safe-stringify "^2.1.1" @@ -652,11 +691,6 @@ uuid "^9.0.1" ws "^8.14.2" -"@newrelic/superagent@^7.0.1": - version "7.0.1" - resolved "https://registry.yarnpkg.com/@newrelic/superagent/-/superagent-7.0.1.tgz#8d5bb92579cf0b291e1298f480c4939a3d70ec09" - integrity sha512-QZlW0VxHSVOXcMAtlkg+Mth0Nz3vFku8rfzTEmoI/pXcckHXGEYuiVUhhboCTD3xTKVgnZRUp9BWF6SOggGUSw== - "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -696,15 +730,15 @@ dependencies: semver "^7.3.5" -"@opentelemetry/api@^1.6.0": +"@opentelemetry/api@~1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== -"@opentelemetry/semantic-conventions@~1.3.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz#ba07b864a3c955f061aa30ea3ef7f4ae4449794a" - integrity sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA== +"@opentelemetry/semantic-conventions@~1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz#83f7479c524ab523ac2df702ade30b9724476c72" + integrity sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g== "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -819,7 +853,7 @@ dependencies: type-detect "4.0.8" -"@sinonjs/commons@^3.0.0": +"@sinonjs/commons@^3.0.0", "@sinonjs/commons@^3.0.1": version "3.0.1" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== @@ -885,11 +919,21 @@ "@types/connect" "*" "@types/node" "*" -"@types/chai@4", "@types/chai@^4.3.12": +"@types/caseless@*": + version "0.12.5" + resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" + integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== + +"@types/chai@4": version "4.3.12" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.12.tgz#b192fe1c553b54f45d20543adc2ab88455a07d5e" integrity sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw== +"@types/chai@^4.3.16": + version "4.3.16" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" + integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== + "@types/concat-stream@^1.6.0": version "1.6.1" resolved "https://registry.yarnpkg.com/@types/concat-stream/-/concat-stream-1.6.1.tgz#24bcfc101ecf68e886aaedce60dfd74b632a1b74" @@ -897,10 +941,10 @@ dependencies: "@types/node" "*" -"@types/config@^3.3.3": - version "3.3.3" - resolved "https://registry.yarnpkg.com/@types/config/-/config-3.3.3.tgz#3e9e286365bd02f8ca079898a14172df47010941" - integrity sha512-BB8DBAud88EgiAKlz8WQStzI771Kb6F3j4dioRJ4GD+tP4tzcZyMlz86aXuZT4s9hyesFORehMQE6eqtA5O+Vg== +"@types/config@^3.3.4": + version "3.3.4" + resolved "https://registry.yarnpkg.com/@types/config/-/config-3.3.4.tgz#e46d1ee74f9b0c53645f644dd5f3ba5bedc68d76" + integrity sha512-qFiTLnWy+TdPSMIXFHP+87lFXFRM4SXjRS+CSB66+56TrpLNw003y1sh7DGaaC1NGesxgKoT5FDy6dyA1Xju/g== "@types/connect@*": version "3.4.38" @@ -914,13 +958,6 @@ resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== -"@types/duplexify@^3.6.0": - version "3.6.4" - resolved "https://registry.yarnpkg.com/@types/duplexify/-/duplexify-3.6.4.tgz#aa7e916c33fcc05be8769546fd0441d9b368613e" - integrity sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg== - dependencies: - "@types/node" "*" - "@types/express-serve-static-core@^4.17.33": version "4.17.43" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" @@ -948,14 +985,6 @@ dependencies: "@types/node" "*" -"@types/glob@*": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" - integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - "@types/http-errors@*": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" @@ -1005,28 +1034,28 @@ dependencies: "@types/node" "*" -"@types/linkify-it@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8" - integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw== +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== "@types/long@^4.0.0": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== -"@types/markdown-it@^12.2.3": - version "12.2.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" - integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== +"@types/markdown-it@^14.1.1": + version "14.1.1" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.1.tgz#06bafb7a4e3f77b62b1f308acf7df76687887e0b" + integrity sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg== dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" + "@types/linkify-it" "^5" + "@types/mdurl" "^2" -"@types/mdurl@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.5.tgz#3e0d2db570e9fb6ccb2dc8fde0be1d79ac810d39" - integrity sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA== +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== "@types/mime@*": version "3.0.4" @@ -1038,17 +1067,12 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/minimatch@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/mocha@^10.0.6": version "10.0.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.11.24": +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": version "20.11.25" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.25.tgz#0f50d62f274e54dd7a49f7704cc16bfbcccaf49f" integrity sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw== @@ -1060,6 +1084,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== +"@types/node@^20.10.3", "@types/node@^20.14.2": + version "20.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" + integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== + dependencies: + undici-types "~5.26.4" + "@types/node@^8.0.0": version "8.10.66" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" @@ -1075,13 +1106,15 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.7.tgz#50ae4353eaaddc04044279812f52c8c65857dbcb" integrity sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ== -"@types/rimraf@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" - integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== +"@types/request@^2.48.8": + version "2.48.12" + resolved "https://registry.yarnpkg.com/@types/request/-/request-2.48.12.tgz#0f590f615a10f87da18e9790ac94c29ec4c5ef30" + integrity sha512-G3sY+NpsA9jnwm0ixhAFQSJ3Q9JkpLZpJbI3GMv0mIAT0y3mRabYeINzal5WOChIiaTEGQYlHOKgkaM9EisWHw== dependencies: - "@types/glob" "*" + "@types/caseless" "*" "@types/node" "*" + "@types/tough-cookie" "*" + form-data "^2.5.0" "@types/send@*": version "0.17.4" @@ -1135,6 +1168,11 @@ "@types/cookiejar" "*" "@types/node" "*" +"@types/tough-cookie@*": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.5.tgz#cb6e2a691b70cb177c6e3ae9c1d2e8b2ea8cd304" + integrity sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA== + "@types/triple-beam@^1.3.2": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/triple-beam/-/triple-beam-1.3.5.tgz#74fef9ffbaa198eb8b588be029f38b00299caa2c" @@ -1152,51 +1190,51 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/parser@^7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.1.1.tgz#6a9d0a5c9ccdf5dbd3cb8c949728c64e24e07d1f" - integrity sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ== +"@typescript-eslint/parser@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.0.tgz#9489098d68d57ad392f507495f2b82ce8b8f0a6b" + integrity sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA== dependencies: - "@typescript-eslint/scope-manager" "7.1.1" - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/typescript-estree" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" + "@typescript-eslint/scope-manager" "7.13.0" + "@typescript-eslint/types" "7.13.0" + "@typescript-eslint/typescript-estree" "7.13.0" + "@typescript-eslint/visitor-keys" "7.13.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz#9e301803ff8e21a74f50c6f89a4baccad9a48f93" - integrity sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA== +"@typescript-eslint/scope-manager@7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz#6927d6451537ce648c6af67a2327378d4cc18462" + integrity sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng== dependencies: - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" + "@typescript-eslint/types" "7.13.0" + "@typescript-eslint/visitor-keys" "7.13.0" -"@typescript-eslint/types@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.1.1.tgz#ca33ba7cf58224fb46a84fea62593c2c53cd795f" - integrity sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q== +"@typescript-eslint/types@7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.0.tgz#0cca95edf1f1fdb0cfe1bb875e121b49617477c5" + integrity sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA== -"@typescript-eslint/typescript-estree@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz#09c54af0151a1b05d0875c0fc7fe2ec7a2476ece" - integrity sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw== +"@typescript-eslint/typescript-estree@7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz#4cc24fc155088ebf3b3adbad62c7e60f72c6de1c" + integrity sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw== dependencies: - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" + "@typescript-eslint/types" "7.13.0" + "@typescript-eslint/visitor-keys" "7.13.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" -"@typescript-eslint/visitor-keys@7.1.1": - version "7.1.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz#e6538a58c9b157f03bcbb29e3b6a92fe39a6ab0d" - integrity sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ== +"@typescript-eslint/visitor-keys@7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz#2eb7ce8eb38c2b0d4a494d1fe1908e7071a1a353" + integrity sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw== dependencies: - "@typescript-eslint/types" "7.1.1" - eslint-visitor-keys "^3.4.1" + "@typescript-eslint/types" "7.13.0" + eslint-visitor-keys "^3.4.3" "@tyriar/fibonacci-heap@^2.0.7": version "2.0.9" @@ -1607,12 +1645,12 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.6.5, axios@^1.6.7: - version "1.6.7" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" - integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== +axios@^1.6.8, axios@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" + integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== dependencies: - follow-redirects "^1.15.4" + follow-redirects "^1.15.6" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -1771,13 +1809,12 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg== +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: - dicer "0.2.5" - readable-stream "1.1.x" + streamsearch "^1.1.0" bytes@3.0.0: version "3.0.0" @@ -2081,10 +2118,10 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cloudinary@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.0.3.tgz#10a0b0239120aec26655fe91fef67ce68ae0fcc9" - integrity sha512-2JPxAUuV4iHwiW4ATSOZvii6+BhhKI9+9KscgUkxJPKa6V6wOnZJHlYyovBGrrIbIgEdmGSZgqEsLfD0wWBhBg== +cloudinary@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.2.0.tgz#9736a7421b5552c43603950fa41d9997c869d0b5" + integrity sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q== dependencies: lodash "^4.17.21" q "^1.5.1" @@ -2159,6 +2196,11 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^2.19.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -2184,7 +2226,7 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" -compressible@^2.0.12, compressible@~2.0.16: +compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== @@ -2237,12 +2279,12 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -config@3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/config/-/config-3.3.7.tgz#4310410dc2bf4e0effdca21a12a4035860a24ee4" - integrity sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA== +config@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/config/-/config-3.3.11.tgz#009e802631363e456d4cf57767a65c1549069ba2" + integrity sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA== dependencies: - json5 "^2.1.1" + json5 "^2.2.3" configstore@^5.0.1: version "5.0.1" @@ -2311,6 +2353,11 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== +cookie@0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== + cookiejar@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.4.tgz#ee669c1fea2cf42dc31585469d193fef0d65771b" @@ -2456,10 +2503,17 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-eql@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" - integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + version "4.1.4" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" + integrity sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg== dependencies: type-detect "^4.0.0" @@ -2481,7 +2535,7 @@ deep-freeze@0.0.1: resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -2542,6 +2596,11 @@ destroy@1.2.0, destroy@^1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + dezalgo@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" @@ -2550,14 +2609,6 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg== - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -2573,7 +2624,7 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.1.0: +diff@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== @@ -2585,6 +2636,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2606,7 +2662,7 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -duplexify@^4.0.0: +duplexify@^4.0.0, duplexify@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== @@ -2679,15 +2735,10 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== - -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== +entities@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== env-paths@^2.2.0: version "2.2.1" @@ -2823,18 +2874,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escodegen@^1.13.0: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - escodegen@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -2932,9 +2971,9 @@ eslint-plugin-prettier@^4.2.1: prettier-linter-helpers "^1.0.0" eslint-plugin-promise@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816" - integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig== + version "6.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.2.0.tgz#e24ab0e3c0a25fa227d98d9ff612156b5af15945" + integrity sha512-QmAqwizauvnKOlifxyDj2ObfULpHQawlg/zQdgEixur9vl0CvZGv/LCJV2rtj3210QCoeGBzVMfMXqGAOr/4fA== eslint-plugin-security@^1.7.1: version "1.7.1" @@ -2943,11 +2982,6 @@ eslint-plugin-security@^1.7.1: dependencies: safe-regex "^2.1.1" -eslint-plugin-standard@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -3029,7 +3063,7 @@ eslint@^8.57.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: +espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -3057,11 +3091,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -3124,6 +3153,11 @@ exegesis@^4.1.0: raw-body "^2.3.3" semver "^7.0.0" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expect@^29.0.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" @@ -3147,7 +3181,7 @@ express-boom@^3.0.0: dependencies: boom "^7.3.x" -express@^4.16.4, express@~4.18.3: +express@^4.16.4: version "4.18.3" resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== @@ -3184,6 +3218,43 @@ express@^4.16.4, express@~4.18.3: utils-merge "1.0.1" vary "~1.1.2" +express@~4.19.12: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.2" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.6.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + extend-shallow@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" @@ -3205,6 +3276,14 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +farmhash@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/farmhash/-/farmhash-3.3.1.tgz#f497dab369d4deb87ae6df2ab062c3bc160e1df4" + integrity sha512-XUizHanzlr/v7suBr/o85HSakOoWh6HKXZjFYl5C2+Gj0f0rkw+XTUZzrd9odDsgI9G5tRUcF4wSbKaX04T0DQ== + dependencies: + node-addon-api "^5.1.0" + prebuild-install "^7.1.2" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3231,7 +3310,7 @@ 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 sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -3241,11 +3320,6 @@ fast-safe-stringify@^2.1.1: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" - integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== - fast-url-parser@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" @@ -3253,10 +3327,10 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" -fast-xml-parser@^4.2.2: - version "4.3.5" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.3.5.tgz#e2f2a2ae8377e9c3dc321b151e58f420ca7e5ccc" - integrity sha512-sWvP1Pl8H03B8oFJpFR3HE31HUfwtX7Rlf9BNsvdpujD4n7WMhfmu8h9wOV2u+c1k0ZilTADhPqypzx2J690ZQ== +fast-xml-parser@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501" + integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg== dependencies: strnum "^1.0.5" @@ -3361,29 +3435,32 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -firebase-admin@^11.11.1: - version "11.11.1" - resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-11.11.1.tgz#6712923de70d218c9f514d73005d976d03339605" - integrity sha512-UyEbq+3u6jWzCYbUntv/HuJiTixwh36G1R9j0v71mSvGAx/YZEWEW7uSGLYxBYE6ckVRQoKMr40PYUEzrm/4dg== +firebase-admin@^12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-12.1.1.tgz#bdc690189e42663e36cfac5ab1e2d502e856ab9b" + integrity sha512-Nuoxk//gaYrspS7TvwBINdGvFhh2QeiaWpRW6+PJ+tWyn2/CugBc7jKa1NaBg0AvhGSOXFOCIsXhzCzHA47Rew== dependencies: - "@fastify/busboy" "^1.2.1" - "@firebase/database-compat" "^0.3.4" - "@firebase/database-types" "^0.10.4" - "@types/node" ">=12.12.47" + "@fastify/busboy" "^2.1.0" + "@firebase/database-compat" "^1.0.2" + "@firebase/database-types" "^1.0.0" + "@types/node" "^20.10.3" + farmhash "^3.3.1" jsonwebtoken "^9.0.0" - jwks-rsa "^3.0.1" + jwks-rsa "^3.1.0" + long "^5.2.3" node-forge "^1.3.1" uuid "^9.0.0" optionalDependencies: - "@google-cloud/firestore" "^6.8.0" - "@google-cloud/storage" "^6.9.5" + "@google-cloud/firestore" "^7.7.0" + "@google-cloud/storage" "^7.7.0" -firebase-tools@^13.4.0: - version "13.4.1" - resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.4.1.tgz#1c274f5f4de32905785a49f2cce7e0d9676a43b9" - integrity sha512-2p/PWAy9BjSN/9VtSPIaBBdrKKx7tmnTvjsI8Wagvgwwk3Qunys24kNYBL4XR+VweIDuFCzY1ZfbULOpURJYBg== +firebase-tools@^13.11.2: + version "13.11.2" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.11.2.tgz#9e22b643836676d2c198da31c2814e8b1e871506" + integrity sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA== dependencies: - "@google-cloud/pubsub" "^3.0.1" + "@google-cloud/cloud-sql-connector" "^1.2.3" + "@google-cloud/pubsub" "^4.4.0" abort-controller "^3.0.0" ajv "^6.12.6" archiver "^5.0.0" @@ -3407,11 +3484,11 @@ firebase-tools@^13.4.0: form-data "^4.0.0" fs-extra "^10.1.0" fuzzy "^0.1.3" + gaxios "^6.1.1" glob "^7.1.2" - google-auth-library "^7.11.0" + google-auth-library "^9.7.0" inquirer "^8.2.6" inquirer-autocomplete-prompt "^2.0.1" - js-yaml "^3.13.1" jsonwebtoken "^9.0.0" leven "^3.1.0" libsodium-wrappers "^0.7.10" @@ -3425,12 +3502,14 @@ firebase-tools@^13.4.0: open "^6.3.0" ora "^5.4.1" p-limit "^3.0.1" + pg "^8.11.3" portfinder "^1.0.32" progress "^2.0.3" proxy-agent "^6.3.0" retry "^0.13.1" rimraf "^3.0.0" semver "^7.5.2" + sql-formatter "^15.3.0" stream-chain "^2.2.4" stream-json "^1.7.3" strip-ansi "^6.0.1" @@ -3445,6 +3524,7 @@ firebase-tools@^13.4.0: winston "^3.0.0" winston-transport "^4.4.0" ws "^7.2.3" + yaml "^2.4.1" flat-cache@^3.0.4: version "3.2.0" @@ -3470,10 +3550,10 @@ fn.name@1.x.x: resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.15.4: - version "1.15.5" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" - integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== for-each@^0.3.3: version "0.3.3" @@ -3498,7 +3578,7 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" -form-data@^2.2.0: +form-data@^2.2.0, form-data@^2.5.0: version "2.5.1" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.1.tgz#f2cbec57b5e59e23716e128fe44d4e5dd23895f4" integrity sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA== @@ -3627,41 +3707,23 @@ fuzzy@^0.1.3: resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== -gaxios@^4.0.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" - integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== +gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.0.3, gaxios@^6.1.1: + version "6.6.0" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4" + integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ== dependencies: - abort-controller "^3.0.0" extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.7" - -gaxios@^5.0.0, gaxios@^5.0.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" - integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA== - dependencies: - extend "^3.0.2" - https-proxy-agent "^5.0.0" + https-proxy-agent "^7.0.1" is-stream "^2.0.0" node-fetch "^2.6.9" + uuid "^9.0.1" -gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - -gcp-metadata@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" - integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w== +gcp-metadata@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" + integrity sha512-Jh/AIwwgaxan+7ZUUmRLCjtchyDiqh4KjBJ5tW3plBZb5iL/BPcso8A5DlzeD9qlw0duCamnNdpFjxwaT0KyKg== dependencies: - gaxios "^5.0.0" + gaxios "^6.0.0" json-bigint "^1.0.0" gensync@^1.0.0-beta.2: @@ -3700,6 +3762,11 @@ get-port@^3.1.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-stdin@=8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" @@ -3719,6 +3786,11 @@ get-uri@^6.0.1: debug "^4.3.4" fs-extra "^11.2.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3747,7 +3819,7 @@ glob-slasher@^1.0.1: lodash.isobject "^2.4.1" toxic "^1.0.0" -glob@8.1.0, glob@^8.0.0: +glob@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -3819,70 +3891,47 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-auth-library@^7.11.0: - version "7.14.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" - integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== +google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.6.3, google-auth-library@^9.7.0: + version "9.11.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.11.0.tgz#bd6da364bcde4e0cc4ed70a0e0df5112b6a671dd" + integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== dependencies: - arrify "^2.0.0" base64-js "^1.3.0" ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" + gaxios "^6.1.1" + gcp-metadata "^6.1.0" + gtoken "^7.0.0" jws "^4.0.0" - lru-cache "^6.0.0" -google-auth-library@^8.0.1, google-auth-library@^8.0.2: - version "8.9.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0" - integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg== +google-gax@^4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.6.tgz#aed8cb1ffc8072615c7ec0cf557ade7343136413" + integrity sha512-z3MR+pE6WqU+tnKtkJl4c723EYY7Il4fcSNgEbehzUJpcNWkca9AyoC2pdBWmEa0cda21VRpUBb4s6VSATiUKg== dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^5.0.0" - gcp-metadata "^5.3.0" - gtoken "^6.1.0" - jws "^4.0.0" - lru-cache "^6.0.0" - -google-gax@^3.5.7, google-gax@^3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-3.6.1.tgz#02c78fc496f5adf86f2ca9145545f4b6575f6118" - integrity sha512-g/lcUjGcB6DSw2HxgEmCDOrI/CByOwqRvsuUvNalHUK2iPPPlmAIpbMbl62u0YufGMr8zgE3JL7th6dCb1Ry+w== - dependencies: - "@grpc/grpc-js" "~1.8.0" - "@grpc/proto-loader" "^0.7.0" + "@grpc/grpc-js" "~1.10.3" + "@grpc/proto-loader" "^0.7.13" "@types/long" "^4.0.0" - "@types/rimraf" "^3.0.2" abort-controller "^3.0.0" duplexify "^4.0.0" - fast-text-encoding "^1.0.3" - google-auth-library "^8.0.2" - is-stream-ended "^0.1.4" + google-auth-library "^9.3.0" node-fetch "^2.6.1" object-hash "^3.0.0" - proto3-json-serializer "^1.0.0" - protobufjs "7.2.4" - protobufjs-cli "1.1.1" - retry-request "^5.0.0" - -google-p12-pem@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" - integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== - dependencies: - node-forge "^1.3.1" + proto3-json-serializer "^2.0.0" + protobufjs "7.3.0" + retry-request "^7.0.0" + uuid "^9.0.1" -google-p12-pem@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" - integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ== +googleapis-common@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42" + integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA== dependencies: - node-forge "^1.3.1" + extend "^3.0.2" + gaxios "^6.0.3" + google-auth-library "^9.7.0" + qs "^6.7.0" + url-template "^2.0.8" + uuid "^9.0.0" gopd@^1.0.1: version "1.0.1" @@ -3906,22 +3955,12 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.1.3" - jws "^4.0.0" - -gtoken@^6.1.0: - version "6.1.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc" - integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ== +gtoken@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26" + integrity sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw== dependencies: - gaxios "^5.0.1" - google-p12-pem "^4.0.0" + gaxios "^6.0.0" jws "^4.0.0" has-bigints@^1.0.1, has-bigints@^1.0.2: @@ -4016,7 +4055,7 @@ hoek@6.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== -html-entities@^2.3.6: +html-entities@^2.3.6, html-entities@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== @@ -4174,7 +4213,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4545,15 +4584,16 @@ istanbul-lib-hook@^3.0.0: dependencies: append-transform "^2.0.0" -istanbul-lib-instrument@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" - integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== +istanbul-lib-instrument@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" + integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== dependencies: - "@babel/core" "^7.7.5" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" istanbul-lib-processinfo@^2.0.2: version "2.0.3" @@ -4659,10 +4699,10 @@ jju@^1.1.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== -joi@^17.12.2: - version "17.12.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.2.tgz#283a664dabb80c7e52943c557aab82faea09f521" - integrity sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw== +joi@^17.13.1: + version "17.13.1" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca" + integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" @@ -4716,21 +4756,21 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsdoc@^4.0.0, jsdoc@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.2.tgz#a1273beba964cf433ddf7a70c23fd02c3c60296e" - integrity sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg== +jsdoc@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.3.tgz#bfee86c6a82f6823e12b5e8be698fd99ae46c061" + integrity sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw== dependencies: "@babel/parser" "^7.20.15" "@jsdoc/salty" "^0.2.1" - "@types/markdown-it" "^12.2.3" + "@types/markdown-it" "^14.1.1" bluebird "^3.7.2" catharsis "^0.9.0" escape-string-regexp "^2.0.0" js2xmlparser "^4.0.2" klaw "^3.0.0" - markdown-it "^12.3.2" - markdown-it-anchor "^8.4.1" + markdown-it "^14.1.0" + markdown-it-anchor "^8.6.7" marked "^4.0.10" mkdirp "^1.0.4" requizzle "^0.2.3" @@ -4793,7 +4833,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.1, json5@^2.2.3: +json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -4819,23 +4859,7 @@ jsonschema@^1.4.1: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== -jsonwebtoken@^8.5.1: - version "8.5.1" - resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" - integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== - dependencies: - jws "^3.2.2" - lodash.includes "^4.3.0" - lodash.isboolean "^3.0.3" - lodash.isinteger "^4.0.4" - lodash.isnumber "^3.0.3" - lodash.isplainobject "^4.0.6" - lodash.isstring "^4.0.1" - lodash.once "^4.0.0" - ms "^2.1.1" - semver "^5.6.0" - -jsonwebtoken@^9.0.0: +jsonwebtoken@^9.0.0, jsonwebtoken@^9.0.2: version "9.0.2" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== @@ -4874,7 +4898,7 @@ jwa@^2.0.0: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jwks-rsa@^3.0.1: +jwks-rsa@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-3.1.0.tgz#50406f23e38c9b2682cd437f824d7d61aa983171" integrity sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg== @@ -4941,14 +4965,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libsodium-wrappers@^0.7.10: version "0.7.13" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" @@ -4966,12 +4982,12 @@ limiter@^1.1.5: resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== -linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== +linkify-it@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" + integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ== dependencies: - uc.micro "^1.0.1" + uc.micro "^2.0.0" locate-path@^5.0.0: version "5.0.0" @@ -5125,7 +5141,7 @@ logform@^2.3.2, logform@^2.4.0: safe-stable-stringify "^2.3.1" triple-beam "^1.3.0" -long@^5.0.0: +long@^5.0.0, long@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== @@ -5221,21 +5237,22 @@ make-fetch-happen@^13.0.0: promise-retry "^2.0.1" ssri "^10.0.0" -markdown-it-anchor@^8.4.1: +markdown-it-anchor@^8.6.7: version "8.6.7" resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== -markdown-it@^12.3.2: - version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" - integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== +markdown-it@^14.1.0: + version "14.1.0" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" + integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg== dependencies: argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" + entities "^4.4.0" + linkify-it "^5.0.0" + mdurl "^2.0.0" + punycode.js "^2.3.1" + uc.micro "^2.1.0" marked-terminal@^5.1.1: version "5.2.0" @@ -5254,10 +5271,10 @@ marked@^4.0.10, marked@^4.0.14: resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== +mdurl@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" + integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w== media-typer@0.3.0: version "0.3.0" @@ -5292,7 +5309,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -5324,6 +5341,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5336,13 +5358,6 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@9.0.3, minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -5364,7 +5379,21 @@ minimatch@^6.1.6: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimatch@^9.0.1: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^9.0.4: + version "9.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" + integrity sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -5450,10 +5479,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== +mocha@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" + integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -5481,6 +5510,11 @@ module-details-from-path@^1.0.3: resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== +moo@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" + integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== + morgan@^1.10.0, morgan@^1.8.2, morgan@~1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" @@ -5507,17 +5541,16 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.2: - version "1.4.4" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" - integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== +multer@^1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== dependencies: append-field "^1.0.0" - busboy "^0.2.11" + busboy "^1.0.0" concat-stream "^1.5.2" mkdirp "^0.5.4" object-assign "^4.1.1" - on-finished "^2.3.0" type-is "^1.6.4" xtend "^4.0.0" @@ -5531,11 +5564,26 @@ nan@^2.17.0, nan@^2.18.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nearley@^2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" + integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== + dependencies: + commander "^2.19.0" + moo "^0.5.0" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -5546,18 +5594,15 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -newrelic@^11.12.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-11.12.0.tgz#da389122166bd910bcf92a56dd02bf52429f0323" - integrity sha512-02TY9+3bp4FAmVTnajWUJyz0ESu21avajRXbsE+zYxI1XSd0tEr+DoL7z2P1BGH2KsOquoDCjR+J4rY2Q88A1A== +newrelic@^11.19.0: + version "11.19.0" + resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-11.19.0.tgz#9fd99fc8cc998335acb4f8c6992bdd01773bd528" + integrity sha512-u1dQYf2wERMcU5il6goqD8Af3o83eGSWJkbKtLZQOYkpTP3EhcxVEM9gCIWnfkK5sw4KBnJOG/UxmtRR00JX5g== dependencies: "@grpc/grpc-js" "^1.9.4" "@grpc/proto-loader" "^0.7.5" - "@newrelic/aws-sdk" "^7.1.0" - "@newrelic/koa" "^8.0.1" "@newrelic/ritm" "^7.2.0" - "@newrelic/security-agent" "^1.0.1" - "@newrelic/superagent" "^7.0.1" + "@newrelic/security-agent" "^1.3.0" "@tyriar/fibonacci-heap" "^2.0.7" concat-stream "^2.0.0" https-proxy-agent "^7.0.1" @@ -5578,10 +5623,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^5.1.5: - version "5.1.9" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" - integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== +nise@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-6.0.0.tgz#ae56fccb5d912037363c3b3f29ebbfa28bde8b48" + integrity sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers" "^11.2.2" @@ -5589,14 +5634,13 @@ nise@^5.1.5: just-extend "^6.2.0" path-to-regexp "^6.2.1" -nock@~13.2.9: - version "13.2.9" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.9.tgz#4faf6c28175d36044da4cfa68e33e5a15086ad4c" - integrity sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA== +nock@^13.5.4: + version "13.5.4" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.4.tgz#8918f0addc70a63736170fef7106a9721e0dc479" + integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" - lodash "^4.17.21" propagate "^2.0.0" node-abi@^3.3.0: @@ -5606,6 +5650,11 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" +node-addon-api@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-emoji@^1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -5658,10 +5707,10 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -nodemon@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.0.tgz#ff7394f2450eb6a5e96fe4180acd5176b29799c9" - integrity sha512-xqlktYlDMCepBJd43ZQhjWwMw2obW/JRvkrLxq5RCNcuDDX1DbcPT+qT1IlIIdf+DhnWs90JpTMe+Y5KxOchvA== +nodemon@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.3.tgz#dcce9ee0aa7d19cd4dcd576ae9a0456d9078b286" + integrity sha512-m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w== dependencies: chokidar "^3.5.2" debug "^4" @@ -5700,10 +5749,10 @@ npm-run-path@^3.1.0: dependencies: path-key "^3.0.0" -nyc@^15.1.0: - version "15.1.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" - integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== +nyc@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.0.0.tgz#d8943407584242a448a70290b15bb72207fac9fd" + integrity sha512-ISp44nqNCaPugLLGGfknzQwSwt10SSS5IMoPR7GLoMAyS18Iw5js8U7ga2VF9lYuMZ42gOHr3UddZw4WZltxKg== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" @@ -5717,7 +5766,7 @@ nyc@^15.1.0: glob "^7.1.6" istanbul-lib-coverage "^3.0.0" istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^4.0.0" + istanbul-lib-instrument "^6.0.2" istanbul-lib-processinfo "^2.0.2" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" @@ -5797,7 +5846,7 @@ object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" -on-finished@2.4.1, on-finished@^2.2.0, on-finished@^2.3.0: +on-finished@2.4.1, on-finished@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -5851,18 +5900,6 @@ openapi3-ts@^3.1.1: dependencies: yaml "^2.2.1" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" @@ -5947,6 +5984,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-throttle@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-throttle/-/p-throttle-5.1.0.tgz#7daf27412a86f34154ff1c462ba33e91a8d7afe6" + integrity sha512-+N+s2g01w1Zch4D0K3OpnPDqLOKmLcQ4BvIFq3JC0K29R28vUOjWpO+OJZBNt8X9i3pFCksZJZ0YXkUGjaFE6g== + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6098,6 +6140,62 @@ pause@0.0.1: resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^8.11.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -6129,6 +6227,28 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" @@ -6138,6 +6258,24 @@ pre-commit@^1.2.2: spawn-sync "^1.0.15" which "1.2.x" +prebuild-install@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prebuildify@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/prebuildify/-/prebuildify-6.0.0.tgz#da3dba61e0e9fad7e63beaf7332b286ae6d8a562" @@ -6156,11 +6294,6 @@ prelude-ls@^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" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -6239,33 +6372,17 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -proto3-json-serializer@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-1.1.1.tgz#1b5703152b6ce811c5cdcc6468032caf53521331" - integrity sha512-AwAuY4g9nxx0u52DnSMkqqgyLHaW/XaPLtaAo3y/ZCfeaQB/g4YDH4kb8Wc/mWzWvu0YjOznVnfn373MVZZrgw== - dependencies: - protobufjs "^7.0.0" - -protobufjs-cli@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.1.tgz#f531201b1c8c7772066aa822bf9a08318b24a704" - integrity sha512-VPWMgIcRNyQwWUv8OLPyGQ/0lQY/QTQAVN5fh+XzfDwsVw1FZ2L3DM/bcBf8WPiRz2tNpaov9lPZfNcmNo6LXA== +proto3-json-serializer@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz#5b705203b4d58f3880596c95fad64902617529dd" + integrity sha512-SAzp/O4Yh02jGdRc+uIrGoe87dkN/XtwxfZ4ZyafJHymd79ozp5VG5nyZ7ygqPM5+cpLDjjGnYFUkngonyDPOQ== dependencies: - chalk "^4.0.0" - escodegen "^1.13.0" - espree "^9.0.0" - estraverse "^5.1.0" - glob "^8.0.0" - jsdoc "^4.0.0" - minimist "^1.2.0" - semver "^7.1.2" - tmp "^0.2.1" - uglify-js "^3.7.7" + protobufjs "^7.2.5" -protobufjs@7.2.4: - version "7.2.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae" - integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ== +protobufjs@7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c" + integrity sha512-YWD03n3shzV9ImZRX3ccbjqLxj7NokGN0V/ESiBV5xWqrommYHYiihuIyavq03pWSGqlyvYUFmfoMKd+1rPA/g== dependencies: "@protobufjs/aspromise" "^1.1.2" "@protobufjs/base64" "^1.1.2" @@ -6280,7 +6397,7 @@ protobufjs@7.2.4: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.0.0, protobufjs@^7.2.4, protobufjs@^7.2.5: +protobufjs@^7.2.4, protobufjs@^7.2.5: version "7.2.6" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== @@ -6298,6 +6415,24 @@ protobufjs@^7.0.0, protobufjs@^7.2.4, protobufjs@^7.2.5: "@types/node" ">=13.7.0" long "^5.0.0" +protobufjs@^7.2.6: + version "7.3.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" + integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -6343,6 +6478,11 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +punycode.js@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/punycode.js/-/punycode.js-2.3.1.tgz#6b53e56ad75588234e79f4affa90972c7dd8cdb7" + integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA== + punycode@^1.3.2: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -6379,6 +6519,13 @@ qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0: dependencies: side-channel "^1.0.6" +qs@^6.7.0: + version "6.12.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" + integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== + dependencies: + side-channel "^1.0.6" + queue-microtask@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" @@ -6391,11 +6538,24 @@ queue@6.0.2: dependencies: inherits "~2.0.3" +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== + rambda@^7.4.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -6408,10 +6568,10 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-5.0.0.tgz#e03de7eac7f8fe55f976b9f2eafc365739bb6cf8" - integrity sha512-ivCyLBwPtR5IRrz+aZnztVwX16ZK3iAjdlW21I/vjHq56at5Zb8eIefDzODg8R7hwPOHpBtb6Pj9Zdmn0nRb8g== +rate-limiter-flexible@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-5.0.3.tgz#bfbfd7585e09073ebe22d177126116862b1024ae" + integrity sha512-lWx2y8NBVlTOLPyqs+6y7dxfEpT6YFqKy3MzWbCy95sTTOhOuxufP2QvRyOHpfXpB9OUJPbVLybw3z3AVAS5fA== raw-body@2.5.2, raw-body@^2.3.3: version "2.5.2" @@ -6423,7 +6583,7 @@ raw-body@2.5.2, raw-body@^2.3.3: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -6447,16 +6607,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -6595,13 +6745,19 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -retry-request@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.2.tgz#143d85f90c755af407fcc46b7166a4ba520e44da" - integrity sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry-request@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.2.tgz#60bf48cfb424ec01b03fca6665dee91d06dd95f3" + integrity sha512-dUOvLMJ0/JJYEn8NrpOaGNE7X3vpI5XlZS/u0ANjqtcZVKnIxP7IgCFwrKTxENw29emmwug53awKtaMm4i9g5w== dependencies: - debug "^4.1.1" + "@types/request" "^2.48.8" extend "^3.0.2" + teeny-request "^9.0.0" retry@0.13.1, retry@^0.13.1: version "0.13.1" @@ -6727,7 +6883,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver@^5.5.0, semver@^5.6.0: +semver@^5.5.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -6737,13 +6893,18 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: +semver@^7.0.0, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: version "7.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== dependencies: lru-cache "^6.0.0" +semver@^7.6.0: + version "7.6.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" + integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== + send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -6856,6 +7017,20 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -6870,17 +7045,17 @@ simple-update-notifier@^2.0.0: dependencies: semver "^7.5.3" -sinon@^17.0.1: - version "17.0.1" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-17.0.1.tgz#26b8ef719261bf8df43f925924cccc96748e407a" - integrity sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g== +sinon@^18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.0.tgz#69ca293dbc3e82590a8b0d46c97f63ebc1e5fc01" + integrity sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA== dependencies: - "@sinonjs/commons" "^3.0.0" + "@sinonjs/commons" "^3.0.1" "@sinonjs/fake-timers" "^11.2.2" "@sinonjs/samsam" "^8.0.0" - diff "^5.1.0" - nise "^5.1.5" - supports-color "^7.2.0" + diff "^5.2.0" + nise "^6.0.0" + supports-color "^7" slash@^3.0.0: version "3.0.0" @@ -6949,6 +7124,11 @@ spawn-wrap@^2.0.0: signal-exit "^3.0.2" which "^2.0.1" +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -6959,6 +7139,15 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +sql-formatter@^15.3.0: + version "15.3.1" + resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.3.1.tgz#e988861d172827b856470a9baefa0135737227df" + integrity sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA== + dependencies: + argparse "^2.0.1" + get-stdin "=8.0.0" + nearley "^2.20.1" + ssri@^10.0.0: version "10.0.5" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" @@ -7021,12 +7210,21 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -7083,11 +7281,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7095,7 +7288,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -7195,7 +7395,7 @@ supports-color@^5.3.0, supports-color@^5.5.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7, supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -7231,7 +7431,7 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" -tar-fs@^2.1.0: +tar-fs@^2.0.0, tar-fs@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -7272,14 +7472,14 @@ tcp-port-used@^1.0.2: debug "4.3.1" is2 "^2.0.6" -teeny-request@^8.0.0: - version "8.0.3" - resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-8.0.3.tgz#5cb9c471ef5e59f2fca8280dc3c5909595e6ca24" - integrity sha512-jJZpA5He2y52yUhA7pyAGZlgQpcB+xLjcN0eUFxr9c8hP/H7uOXbBNVo/O0C/xVfJLJs680jvkFgVJEEvk9+ww== +teeny-request@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" + integrity sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g== dependencies: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.0" - node-fetch "^2.6.1" + node-fetch "^2.6.9" stream-events "^1.0.5" uuid "^9.0.0" @@ -7292,11 +7492,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-decoding@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-decoding/-/text-decoding-1.0.0.tgz#38a5692d23b5c2b12942d6e245599cb58b1bc52f" - integrity sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA== - text-hex@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" @@ -7387,7 +7582,7 @@ triple-beam@^1.3.0: resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.4.1.tgz#6fde70271dc6e5d73ca0c3b24e2d92afb7441984" integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== -ts-api-utils@^1.0.1: +ts-api-utils@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== @@ -7452,6 +7647,13 @@ tslib@^2.0.1, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + 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" @@ -7459,13 +7661,6 @@ type-check@^0.4.0, type-check@~0.4.0: 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" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -7555,20 +7750,15 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@~5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== - -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== -uglify-js@^3.7.7: - version "3.17.4" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +uc.micro@^2.0.0, uc.micro@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" + integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== uid2@0.0.x: version "0.0.4" @@ -7700,6 +7890,11 @@ url-join@0.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" integrity sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw== +url-template@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7850,7 +8045,7 @@ winston-transport@^4.4.0, winston-transport@^4.5.0, winston-transport@^4.7.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@^3.0.0, winston@^3.12.0: +winston@^3.0.0: version "3.12.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.12.0.tgz#a5d965a41d3dc31be5408f8c66e927958846c0d0" integrity sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w== @@ -7867,17 +8062,29 @@ winston@^3.0.0, winston@^3.12.0: triple-beam "^1.3.0" winston-transport "^4.7.0" -word-wrap@~1.2.3: - version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" - integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +winston@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" + integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== + dependencies: + "@colors/colors" "^1.6.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.7.0" workerpool@6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -7895,6 +8102,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -7974,6 +8190,11 @@ yaml@^2.2.1: resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== +yaml@^2.4.1: + version "2.4.5" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" + integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== + yargs-parser@20.2.4: version "20.2.4" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" From 8309e0d74e0fab0017e84d07df61a6957f0142eb Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 13 Jun 2024 11:26:33 +0530 Subject: [PATCH 02/17] chore/upgrade express package --- package.json | 2 +- yarn.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 0bf384929..2f1816f0e 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "cors": "^2.8.5", "datauri": "^4.1.0", "debug": "~4.3.4", - "express": "~4.19.12", + "express": "^4.19.2", "express-boom": "^3.0.0", "firebase-admin": "^12.1.1", "helmet": "^7.1.0", diff --git a/yarn.lock b/yarn.lock index 5967bad35..0bb83b451 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3218,7 +3218,7 @@ express@^4.16.4: utils-merge "1.0.1" vary "~1.1.2" -express@~4.19.12: +express@^4.19.2: version "4.19.2" resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== From 3b29a117b08f4cffc512884a4935c32cdb4bbdaf Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 13 Jun 2024 11:33:29 +0530 Subject: [PATCH 03/17] fix:node to the version 20 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2f1816f0e..740b0a99a 100644 --- a/package.json +++ b/package.json @@ -73,13 +73,13 @@ "typescript": "^5.4.5" }, "engines": { - "node": "22.x" + "node": "20.x" }, "pre-commit": [ "lint" ], "volta": { - "node": "22.3.0", + "node": "20.11.1", "yarn": "1.22.22" } } From b4b4b041c02b747409578259d7c6efa66d8ad190 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 13 Jun 2024 23:44:07 +0530 Subject: [PATCH 04/17] chore/fix-package-updates --- package.json | 6 ++-- yarn.lock | 79 +++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 63 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 740b0a99a..05af73dcd 100644 --- a/package.json +++ b/package.json @@ -30,9 +30,9 @@ "http-errors": "~2.0.0", "joi": "^17.13.1", "jsdoc": "^4.0.3", - "jsonwebtoken": "^9.0.2", + "jsonwebtoken": "^8.5.1", "morgan": "~1.10.0", - "multer": "^1.4.5-lts.1", + "multer": "^1.4.2", "newrelic": "^11.19.0", "passport": "^0.7.0", "passport-github2": "^0.1.12", @@ -70,7 +70,7 @@ "sinon": "^18.0.0", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", - "typescript": "^5.4.5" + "typescript": "^5.3.3" }, "engines": { "node": "20.x" diff --git a/yarn.lock b/yarn.lock index 0bb83b451..062709114 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1809,12 +1809,13 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -busboy@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg== dependencies: - streamsearch "^1.1.0" + dicer "0.2.5" + readable-stream "1.1.x" bytes@3.0.0: version "3.0.0" @@ -2609,6 +2610,14 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg== + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -4213,7 +4222,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4859,7 +4868,23 @@ jsonschema@^1.4.1: resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== -jsonwebtoken@^9.0.0, jsonwebtoken@^9.0.2: +jsonwebtoken@^8.5.1: + version "8.5.1" + resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz#00e71e0b8df54c2121a1f26137df2280673bcc0d" + integrity sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w== + dependencies: + jws "^3.2.2" + lodash.includes "^4.3.0" + lodash.isboolean "^3.0.3" + lodash.isinteger "^4.0.4" + lodash.isnumber "^3.0.3" + lodash.isplainobject "^4.0.6" + lodash.isstring "^4.0.1" + lodash.once "^4.0.0" + ms "^2.1.1" + semver "^5.6.0" + +jsonwebtoken@^9.0.0: version "9.0.2" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz#65ff91f4abef1784697d40952bb1998c504caaf3" integrity sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ== @@ -5541,16 +5566,17 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.5-lts.1: - version "1.4.5-lts.1" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" - integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== +multer@^1.4.2: + version "1.4.4" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" + integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== dependencies: append-field "^1.0.0" - busboy "^1.0.0" + busboy "^0.2.11" concat-stream "^1.5.2" mkdirp "^0.5.4" object-assign "^4.1.1" + on-finished "^2.3.0" type-is "^1.6.4" xtend "^4.0.0" @@ -5846,7 +5872,7 @@ object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" -on-finished@2.4.1, on-finished@^2.2.0: +on-finished@2.4.1, on-finished@^2.2.0, on-finished@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -6607,6 +6633,16 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -6883,7 +6919,7 @@ semver-diff@^3.1.1: dependencies: semver "^6.3.0" -semver@^5.5.0: +semver@^5.5.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== @@ -7210,10 +7246,10 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" @@ -7281,6 +7317,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7750,7 +7791,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^5.4.5: +typescript@^5.3.3: version "5.4.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== From bc8722b483be9458d8fa19e682a4aecd9fc9fc2d Mon Sep 17 00:00:00 2001 From: abhay Date: Mon, 17 Jun 2024 21:58:22 +0530 Subject: [PATCH 05/17] chore:upgrade the packages to the latest --- package.json | 31 +- yarn.lock | 1115 ++++++++++++++++++++++---------------------------- 2 files changed, 500 insertions(+), 646 deletions(-) diff --git a/package.json b/package.json index 05af73dcd..a1a439687 100644 --- a/package.json +++ b/package.json @@ -17,13 +17,13 @@ }, "dependencies": { "axios": "^1.7.2", - "cloudinary": "^2.2.0", - "config": "^3.3.11", + "cloudinary": "^2.0.3", + "config": "3.3.7", "cookie-parser": "~1.4.6", "cors": "^2.8.5", "datauri": "^4.1.0", - "debug": "~4.3.4", - "express": "^4.19.2", + "debug": "^4.3.5", + "express": "~4.18.3", "express-boom": "^3.0.0", "firebase-admin": "^12.1.1", "helmet": "^7.1.0", @@ -32,7 +32,7 @@ "jsdoc": "^4.0.3", "jsonwebtoken": "^8.5.1", "morgan": "~1.10.0", - "multer": "^1.4.2", + "multer": "^1.4.5-lts.1", "newrelic": "^11.19.0", "passport": "^0.7.0", "passport-github2": "^0.1.12", @@ -45,9 +45,9 @@ "@types/express": "^4.17.21", "@types/jest": "^29.5.12", "@types/mocha": "^10.0.6", - "@types/node": "^20.14.2", + "@types/node": "^20.11.24", "@types/sinon": "^17.0.3", - "@typescript-eslint/parser": "^7.13.0", + "@typescript-eslint/parser": "^7.1.1", "chai": "^4.4.1", "chai-http": "^4.4.0", "cross-env": "^7.0.3", @@ -57,20 +57,21 @@ "eslint-plugin-import": "^2.22.1", "eslint-plugin-mocha": "^10.0.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^4.2.1", + "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", - "firebase-tools": "^13.11.2", - "mocha": "^10.4.0", - "nock": "^13.5.4", + "eslint-plugin-standard": "^4.1.0", + "firebase-tools": "^13.4.0", + "mocha": "^10.3.0", + "nock": "~13.2.9", "nodemon": "^3.1.3", - "nyc": "^17.0.0", + "nyc": "^15.1.0", "pre-commit": "^1.2.2", - "prettier": "^2.5.1", + "prettier": "^3.3.2", "sinon": "^18.0.0", "ts-node": "^10.9.2", "ts-node-dev": "^2.0.0", - "typescript": "^5.3.3" + "typescript": "~5.3.3" }, "engines": { "node": "20.x" @@ -80,6 +81,6 @@ ], "volta": { "node": "20.11.1", - "yarn": "1.22.22" + "yarn": "1.22.21" } } diff --git a/yarn.lock b/yarn.lock index 062709114..ceed28b00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,6 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== - "@ampproject/remapping@^2.2.0": version "2.3.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" @@ -25,15 +20,7 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" -"@babel/code-frame@^7.12.13": - version "7.23.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/code-frame@^7.24.7": +"@babel/code-frame@^7.12.13", "@babel/code-frame@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== @@ -46,7 +33,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.7.tgz#d23bbea508c3883ba8251fb4164982c36ea577ed" integrity sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw== -"@babel/core@^7.23.9": +"@babel/core@^7.7.5": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.7.tgz#b676450141e0b52a3d43bc91da86aa608f950ac4" integrity sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g== @@ -149,11 +136,6 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz#4d2d0f14820ede3b9807ea5fc36dfc8cd7da07f2" integrity sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg== -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - "@babel/helper-validator-identifier@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" @@ -172,15 +154,6 @@ "@babel/template" "^7.24.7" "@babel/types" "^7.24.7" -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" - "@babel/highlight@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" @@ -191,12 +164,7 @@ js-tokens "^4.0.0" picocolors "^1.0.0" -"@babel/parser@^7.20.15": - version "7.24.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.0.tgz#26a3d1ff49031c53a97d03b604375f028746a9ac" - integrity sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg== - -"@babel/parser@^7.23.9", "@babel/parser@^7.24.7": +"@babel/parser@^7.20.15", "@babel/parser@^7.24.7": version "7.24.7" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.7.tgz#9a5226f92f0c5c8ead550b750f5608e766c8ce85" integrity sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw== @@ -277,9 +245,9 @@ eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + version "4.10.1" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.1.tgz#361461e5cb3845d874e61731c11cfedd664d83a0" + integrity sha512-Zm2NGpWELsQAD1xsJzGQpYfvICSsFkEpU0jxBjfdC6uNEWXcHnfs9hScFWtXVDVl+rBQJGrl4g1vcKIejpH9dA== "@eslint/eslintrc@^2.1.4": version "2.1.4" @@ -467,15 +435,7 @@ dependencies: googleapis-common "^7.0.0" -"@grpc/grpc-js@^1.9.4": - version "1.10.1" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.1.tgz#be450560c990c08274bc19d514e181ea205ccaa8" - integrity sha512-55ONqFytZExfOIjF1RjXPcVmT/jJqFzbbDqxK9jmRV4nxiYWtL9hENSW1Jfx0SdZfrvoqd44YJ/GJTqfRrawSQ== - dependencies: - "@grpc/proto-loader" "^0.7.8" - "@types/node" ">=12.12.47" - -"@grpc/grpc-js@~1.10.3": +"@grpc/grpc-js@^1.9.4", "@grpc/grpc-js@~1.10.3": version "1.10.9" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c" integrity sha512-5tcgUctCG0qoNyfChZifz2tJqbRbXVO9J7X6duFcOjY3HUNCxg5D0ZCK7EP9vIcZ0zRpLU9bWkyCqVCLZ46IbQ== @@ -483,7 +443,7 @@ "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@^0.7.13": +"@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": version "0.7.13" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== @@ -493,16 +453,6 @@ protobufjs "^7.2.5" yargs "^17.7.2" -"@grpc/proto-loader@^0.7.5", "@grpc/proto-loader@^0.7.8": - version "0.7.10" - resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.10.tgz#6bf26742b1b54d0a473067743da5d3189d06d720" - integrity sha512-CAqDfoaQ8ykFd9zqBDn4k6iWT9loLAlc2ETmDFS9JCD70gDcnA4L3AFEo2iV7KyAtAAHFW9ftq1Fz+Vsgq80RQ== - dependencies: - lodash.camelcase "^4.3.0" - long "^5.0.0" - protobufjs "^7.2.4" - yargs "^17.7.2" - "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -530,9 +480,9 @@ integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3" + integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA== "@isaacs/cliui@^8.0.2": version "8.0.2" @@ -557,7 +507,7 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": +"@istanbuljs/schema@^0.1.2": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== @@ -639,18 +589,19 @@ integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== "@jsdoc/salty@^0.2.1": - version "0.2.7" - resolved "https://registry.yarnpkg.com/@jsdoc/salty/-/salty-0.2.7.tgz#98ddce519fd95d7bee605a658fabf6e8cbf7556d" - integrity sha512-mh8LbS9d4Jq84KLw8pzho7XC2q2/IJGiJss3xwRoLD1A+EE16SjN4PfaG4jRCzKegTFLlN0Zd8SdUPE6XdoPFg== + version "0.2.8" + resolved "https://registry.yarnpkg.com/@jsdoc/salty/-/salty-0.2.8.tgz#8d29923a9429694a437a50ab75004b576131d597" + integrity sha512-5e+SFVavj1ORKlKaKr2BmTOekmXbelU7dC0cDkQLqag7xfuTPuGMUFx7KWJuv4bYZrTsoL2Z18VVCOKYxzoHcg== dependencies: lodash "^4.17.21" "@newrelic/native-metrics@^10.0.0": - version "10.1.0" - resolved "https://registry.yarnpkg.com/@newrelic/native-metrics/-/native-metrics-10.1.0.tgz#d0ea305ee7a3f8a4d0d7ad5b00f917d2bacd364d" - integrity sha512-7ke2ZiqMICNDhmI9oLsBrm8AJfvgpGz/GlGGO9dkJ6jO9mUElmFpOLzFt5XmuWxiZMwwGdDzPWYtzEdtDR+8tg== + version "10.1.1" + resolved "https://registry.yarnpkg.com/@newrelic/native-metrics/-/native-metrics-10.1.1.tgz#5e19f3fbd2e36d33b9e11d4bfa892f3966ba26b9" + integrity sha512-BvdTMAqS3d94ZwJ6u70dWqZVkX8ev3dybkxRInHMbKV2DE1koQR3nzH2ut3hf1MaRQh4SF6SpUNTUznzCZZtjw== dependencies: nan "^2.18.0" + node-gyp "^10.1.0" node-gyp-build "^4.8.0" prebuildify "^6.0.0" semver "^7.5.2" @@ -713,20 +664,20 @@ fastq "^1.6.0" "@npmcli/agent@^2.0.0": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.1.tgz#8aa677d0a4136d57524336a35d5679aedf2d56f7" - integrity sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ== + version "2.2.2" + resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.2.tgz#967604918e62f620a648c7975461c9c9e74fc5d5" + integrity sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og== dependencies: agent-base "^7.1.0" http-proxy-agent "^7.0.0" https-proxy-agent "^7.0.1" lru-cache "^10.0.1" - socks-proxy-agent "^8.0.1" + socks-proxy-agent "^8.0.3" "@npmcli/fs@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" - integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== + version "3.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.1.tgz#59cdaa5adca95d135fc00f2bb53f5771575ce726" + integrity sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg== dependencies: semver "^7.3.5" @@ -745,6 +696,11 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== +"@pkgr/core@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" + integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== + "@pnpm/config.env-replace@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" @@ -892,9 +848,9 @@ integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== "@tsconfig/node10@^1.0.7": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.11.tgz#6ee46400685f130e278128c7b38b7e031ff5b2f2" + integrity sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw== "@tsconfig/node12@^1.0.7": version "1.0.11" @@ -924,12 +880,7 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== -"@types/chai@4": - version "4.3.12" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.12.tgz#b192fe1c553b54f45d20543adc2ab88455a07d5e" - integrity sha512-zNKDHG/1yxm8Il6uCCVsm+dRdEsJlFoDu73X17y09bId6UwoYww+vFBsAcRzl8knM1sab3Dp1VRikFQwDOtDDw== - -"@types/chai@^4.3.16": +"@types/chai@4", "@types/chai@^4.3.16": version "4.3.16" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== @@ -959,9 +910,9 @@ integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== "@types/express-serve-static-core@^4.17.33": - version "4.17.43" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.43.tgz#10d8444be560cb789c4735aea5eac6e5af45df54" - integrity sha512-oaYtiBirUOPQGSWNGPWnzyAFJ0BP3cwvN4oWZQY+zUBwpVIGsKUkpBpSztp74drYcjavs7SKFZ4DX1V2QeN8rg== + version "4.19.3" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" + integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg== dependencies: "@types/node" "*" "@types/qs" "*" @@ -1057,11 +1008,6 @@ resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== -"@types/mime@*": - version "3.0.4" - resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.4.tgz#2198ac274de6017b44d941e00261d5bc6a0e0a45" - integrity sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw== - "@types/mime@^1": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" @@ -1072,10 +1018,10 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0": - version "20.11.25" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.25.tgz#0f50d62f274e54dd7a49f7704cc16bfbcccaf49f" - integrity sha512-TBHyJxk2b7HceLVGFcpAUjsa5zIdsPWlR6XHfyGzd0SFu+/NFgQgMAl96MSDZgQDvJAvV6BKsFOrt6zIL09JDw== +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^20.10.3", "@types/node@^20.11.24": + version "20.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" + integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== dependencies: undici-types "~5.26.4" @@ -1084,22 +1030,15 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" integrity sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw== -"@types/node@^20.10.3", "@types/node@^20.14.2": - version "20.14.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" - integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== - dependencies: - undici-types "~5.26.4" - "@types/node@^8.0.0": version "8.10.66" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" integrity sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw== "@types/qs@*", "@types/qs@^6.2.31": - version "6.9.12" - resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.12.tgz#afa96b383a3a6fdc859453a1892d41b607fc7756" - integrity sha512-bZcOkJ6uWrL0Qb2NAWKa7TBU+mJHPzhx9jjLL1KHF+XpzEcR7EXHvjbHlGtR/IsP1vyPrehuS6XqkmaePy//mg== + version "6.9.15" + resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.15.tgz#adde8a060ec9c305a82de1babc1056e73bd64dce" + integrity sha512-uXHQKES6DQKKCLh441Xv/dwxOq1TVS3JPUMlEqoEglvlhR6Mxnlew/Xq/LRVHpLyk7iK3zODe1qYHIMltO7XGg== "@types/range-parser@*": version "1.2.7" @@ -1125,13 +1064,13 @@ "@types/node" "*" "@types/serve-static@*": - version "1.15.5" - resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.5.tgz#15e67500ec40789a1e8c9defc2d32a896f05b033" - integrity sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ== + version "1.15.7" + resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.15.7.tgz#22174bbd74fb97fe303109738e9b5c2f3064f714" + integrity sha512-W8Ym+h8nhuRwaKPaDw34QUkwsGi6Rc4yYqvKFo5rm2FUEhCFbzVWrxXUxuKK8TASjWsysJY0nsmNCGhCOIsrOw== dependencies: "@types/http-errors" "*" - "@types/mime" "*" "@types/node" "*" + "@types/send" "*" "@types/sinon@^17.0.3": version "17.0.3" @@ -1190,7 +1129,7 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/parser@^7.13.0": +"@typescript-eslint/parser@^7.1.1": version "7.13.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.0.tgz#9489098d68d57ad392f507495f2b82ce8b8f0a6b" integrity sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA== @@ -1246,11 +1185,6 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -abbrev@1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== - abbrev@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" @@ -1271,10 +1205,10 @@ accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-import-assertions@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" - integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== +acorn-import-attributes@^1.9.5: + version "1.9.5" + resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" + integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== acorn-jsx@^5.3.2: version "5.3.2" @@ -1282,14 +1216,16 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.3.2" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" - integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== + version "8.3.3" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.3.tgz#9caeac29eefaa0c41e3d4c65137de4d6f34df43e" + integrity sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw== + dependencies: + acorn "^8.11.0" -acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.11.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.11.0, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.0.tgz#1627bfa2e058148036133b8d9b51a700663c294c" + integrity sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw== agent-base@6: version "6.0.2" @@ -1298,10 +1234,10 @@ agent-base@6: dependencies: debug "4" -agent-base@^7.0.2, agent-base@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" - integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== +agent-base@^7.0.2, agent-base@^7.1.0, agent-base@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.1.tgz#bdbded7dfb096b751a2a087eeeb9664725b2e317" + integrity sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA== dependencies: debug "^4.3.4" @@ -1331,14 +1267,14 @@ ajv@^6.12.4, ajv@^6.12.6: uri-js "^4.2.2" ajv@^8.0.0, ajv@^8.3.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== + version "8.16.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.16.0.tgz#22e2a92b94f005f7e0f9c9d39652ef0b8f6f0cb4" + integrity sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw== dependencies: - fast-deep-equal "^3.1.1" + fast-deep-equal "^3.1.3" json-schema-traverse "^1.0.0" require-from-string "^2.0.2" - uri-js "^4.2.2" + uri-js "^4.4.1" ansi-align@^3.0.0: version "3.0.1" @@ -1360,11 +1296,9 @@ ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: type-fest "^0.21.3" ansi-escapes@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" - integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== - dependencies: - type-fest "^3.0.0" + version "6.2.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.1.tgz#76c54ce9b081dad39acec4b5d53377913825fb0f" + integrity sha512-4nJ3yixlEthEJ9Rk4vPcdBRkZvQZlYyu8j4/Mqz5sgIkddmEnH2Yj2ZrnP9S3tQOvSNRUIgVNF/1yPpRAGNRig== ansi-regex@^5.0.1: version "5.0.1" @@ -1511,14 +1445,15 @@ array-flatten@3.0.0: integrity sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA== array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== + version "3.1.8" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" is-string "^1.0.7" array-union@^2.1.0: @@ -1526,26 +1461,16 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.filter@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" - integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-array-method-boxes-properly "^1.0.0" - is-string "^1.0.7" - array.prototype.findlastindex@^1.2.3: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f" - integrity sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d" + integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.7" define-properties "^1.2.1" - es-abstract "^1.22.3" + es-abstract "^1.23.2" es-errors "^1.3.0" + es-object-atoms "^1.0.0" es-shim-unscopables "^1.0.2" array.prototype.flat@^1.3.2: @@ -1692,9 +1617,9 @@ bignumber.js@^9.0.0: integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== bl@^4.0.3, bl@^4.1.0: version "4.1.0" @@ -1764,12 +1689,12 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3, braces@~3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" browser-stdout@1.3.1: version "1.3.1" @@ -1777,14 +1702,14 @@ browser-stdout@1.3.1: integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== browserslist@^4.22.2: - version "4.23.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" - integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== + version "4.23.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.1.tgz#ce4af0534b3d37db5c1a4ca98b9080f985041e96" + integrity sha512-TUfofFo/KsK/bWZ9TWQ5O26tsWW4Uhmt8IYklbnUa70udB6P2wA7w7o4PY4muaEPBQaAX+CEnmmIA41NVHtPVw== dependencies: - caniuse-lite "^1.0.30001587" - electron-to-chromium "^1.4.668" + caniuse-lite "^1.0.30001629" + electron-to-chromium "^1.4.796" node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + update-browserslist-db "^1.0.16" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" @@ -1809,13 +1734,12 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg== +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: - dicer "0.2.5" - readable-stream "1.1.x" + streamsearch "^1.1.0" bytes@3.0.0: version "3.0.0" @@ -1828,9 +1752,9 @@ bytes@3.1.2: integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== cacache@^18.0.0: - version "18.0.2" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.2.tgz#fd527ea0f03a603be5c0da5805635f8eef00c60c" - integrity sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw== + version "18.0.3" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-18.0.3.tgz#864e2c18414e1e141ae8763f31e46c2cb96d1b21" + integrity sha512-qXCd4rh6I07cnDqh8V48/94Tc/WSfj+o3Gn6NZ0aZovS255bUx8O13uKxRFd2eWG0xgsco7+YItQNPaa5E85hg== dependencies: "@npmcli/fs" "^3.1.0" fs-minipass "^3.0.0" @@ -1886,10 +1810,10 @@ camelcase@^6.0.0, camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001587: - version "1.0.30001597" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001597.tgz#8be94a8c1d679de23b22fbd944232aa1321639e6" - integrity sha512-7LjJvmQU6Sj7bL0j5b5WY/3n7utXUJvAe1lxhsHDbLmwX9mdL86Yjtr+5SRCyf8qME4M7pU2hswj0FpyBVCv9w== +caniuse-lite@^1.0.30001629: + version "1.0.30001636" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001636.tgz#b15f52d2bdb95fad32c2f53c0b68032b85188a78" + integrity sha512-bMg2vmr8XBsbL6Lr0UHXy/21m84FTxDLWn2FSqMd5PrlbMxwJlQnC2YWYxVgp66PZE+BBNF2jYQUBKCo1FDeZg== cardinal@^2.1.1: version "2.1.1" @@ -2033,9 +1957,9 @@ ci-info@^3.2.0: integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== cjs-module-lexer@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz#6c370ab19f8a3394e318fe682686ec0ac684d107" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + version "1.3.1" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz#c485341ae8fd999ca4ee5af2d7a1c9ae01e0099c" + integrity sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q== cjson@^0.3.1: version "0.3.3" @@ -2067,9 +1991,9 @@ cli-spinners@^2.5.0: integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== cli-table3@^0.6.3: - version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" - integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== + version "0.6.5" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.5.tgz#013b91351762739c16a9567c21a04632e449bf2f" + integrity sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ== dependencies: string-width "^4.2.0" optionalDependencies: @@ -2119,7 +2043,7 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cloudinary@^2.2.0: +cloudinary@^2.0.3: version "2.2.0" resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.2.0.tgz#9736a7421b5552c43603950fa41d9997c869d0b5" integrity sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q== @@ -2280,12 +2204,12 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -config@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/config/-/config-3.3.11.tgz#009e802631363e456d4cf57767a65c1549069ba2" - integrity sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA== +config@3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/config/-/config-3.3.7.tgz#4310410dc2bf4e0effdca21a12a4035860a24ee4" + integrity sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA== dependencies: - json5 "^2.2.3" + json5 "^2.1.1" configstore@^5.0.1: version "5.0.1" @@ -2444,15 +2368,42 @@ crypto-random-string@^2.0.0: integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== csv-parse@^5.0.4: - version "5.5.5" - resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-5.5.5.tgz#68a271a9092877b830541805e14c8a80e6a22517" - integrity sha512-erCk7tyU3yLWAhk6wvKxnyPtftuy/6Ak622gOO7BCJ05+TYffnPCJF905wmOQm+BpkX54OdAl8pveJwUdpnCXQ== + version "5.5.6" + resolved "https://registry.yarnpkg.com/csv-parse/-/csv-parse-5.5.6.tgz#0d726d58a60416361358eec291a9f93abe0b6b1a" + integrity sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A== data-uri-to-buffer@^6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.1.tgz#8ea6326efec17a2e42620696e671d7d5a8bc66b2" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz#90721ca95ff280677eb793749fce1011347669e2" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz#5e0bbfb4828ed2d1b9b400cd8a7d119bca0ff18a" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + datauri@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/datauri/-/datauri-4.1.0.tgz#19e6e4fadc38ff8cea724d8ff59dcaad832520e4" @@ -2473,10 +2424,10 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== +debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== dependencies: ms "2.1.2" @@ -2487,6 +2438,13 @@ debug@4.3.1: dependencies: ms "2.1.2" +debug@4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -2564,7 +2522,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: es-errors "^1.3.0" gopd "^1.0.1" -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -2610,14 +2568,6 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg== - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -2705,10 +2655,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== -electron-to-chromium@^1.4.668: - version "1.4.699" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.699.tgz#dd53c939e13da64e94b341e563f0a3011b4ef0e9" - integrity sha512-I7q3BbQi6e4tJJN5CRcyvxhK0iJb34TV8eJQcgh+fR2fQ8miMgZcEInckCo1U9exDHbfz7DLDnFn8oqH/VcRKw== +electron-to-chromium@^1.4.796: + version "1.4.803" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz#cf55808a5ee12e2a2778bbe8cdc941ef87c2093b" + integrity sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g== emoji-regex@^8.0.0: version "8.0.0" @@ -2759,17 +2709,21 @@ err-code@^2.0.2: resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== -es-abstract@^1.22.1, es-abstract@^1.22.3: - version "1.22.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.5.tgz#1417df4e97cc55f09bf7e58d1e614bc61cb8df46" - integrity sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w== +es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.2: + version "1.23.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.23.3.tgz#8f0c5a35cd215312573c5a27c87dfd6c881a0aa0" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== dependencies: array-buffer-byte-length "^1.0.1" arraybuffer.prototype.slice "^1.0.3" available-typed-arrays "^1.0.7" call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" es-define-property "^1.0.0" es-errors "^1.3.0" + es-object-atoms "^1.0.0" es-set-tostringtag "^2.0.3" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" @@ -2780,10 +2734,11 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: has-property-descriptors "^1.0.2" has-proto "^1.0.3" has-symbols "^1.0.3" - hasown "^2.0.1" + hasown "^2.0.2" internal-slot "^1.0.7" is-array-buffer "^3.0.4" is-callable "^1.2.7" + is-data-view "^1.0.1" is-negative-zero "^2.0.3" is-regex "^1.1.4" is-shared-array-buffer "^1.0.3" @@ -2794,22 +2749,17 @@ es-abstract@^1.22.1, es-abstract@^1.22.3: object-keys "^1.1.1" object.assign "^4.1.5" regexp.prototype.flags "^1.5.2" - safe-array-concat "^1.1.0" + safe-array-concat "^1.1.2" safe-regex-test "^1.0.3" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" typed-array-buffer "^1.0.2" typed-array-byte-length "^1.0.1" typed-array-byte-offset "^1.0.2" - typed-array-length "^1.0.5" + typed-array-length "^1.0.6" unbox-primitive "^1.0.2" - which-typed-array "^1.1.14" - -es-array-method-boxes-properly@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" - integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + which-typed-array "^1.1.15" es-define-property@^1.0.0: version "1.0.0" @@ -2818,11 +2768,18 @@ es-define-property@^1.0.0: dependencies: get-intrinsic "^1.2.4" -es-errors@^1.0.0, es-errors@^1.2.1, es-errors@^1.3.0: +es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.0.0.tgz#ddb55cd47ac2e240701260bc2a8e31ecb643d941" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + es-set-tostringtag@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz#8bb60f0a440c2e4281962428438d58545af39777" @@ -2853,7 +2810,7 @@ es6-error@^4.0.1: resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== -escalade@^3.1.1: +escalade@^3.1.1, escalade@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== @@ -2952,9 +2909,9 @@ eslint-plugin-import@^2.22.1: tsconfig-paths "^3.15.0" eslint-plugin-mocha@^10.0.0: - version "10.4.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.1.tgz#7975a3dbb0de80a5f3ea69c30f6f1f1c931f8800" - integrity sha512-G85ALUgKaLzuEuHhoW3HVRgPTmia6njQC3qCG6CEvA8/Ja9PDZnRZOuzekMki+HaViEQXINuYsmhp5WR5/4MfA== + version "10.4.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.4.3.tgz#bf641379d9f1c7d6a84646a3fc1a0baa50da8bfd" + integrity sha512-emc4TVjq5Ht0/upR+psftuz6IBG5q279p+1dSRDeHf+NS9aaerBi3lXKo1SEzwC29hFIW21gO89CEWSvRsi8IQ== dependencies: eslint-utils "^3.0.0" globals "^13.24.0" @@ -2972,12 +2929,13 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" - integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== +eslint-plugin-prettier@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" + integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== dependencies: prettier-linter-helpers "^1.0.0" + synckit "^0.8.6" eslint-plugin-promise@^6.0.0: version "6.2.0" @@ -2991,6 +2949,11 @@ eslint-plugin-security@^1.7.1: dependencies: safe-regex "^2.1.1" +eslint-plugin-standard@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -3125,13 +3088,6 @@ events-listener@^1.1.0: resolved "https://registry.yarnpkg.com/events-listener/-/events-listener-1.1.0.tgz#dd49b4628480eba58fde31b870ee346b3990b349" integrity sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g== -execspawn@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/execspawn/-/execspawn-1.0.1.tgz#8286f9dde7cecde7905fbdc04e24f368f23f8da6" - integrity sha512-s2k06Jy9i8CUkYe0+DxRlvtkZoOkwwfhB+Xxo5HGUtrISVW2m98jO2tr67DGRFxZwkjQqloA3v/tNtjhBRBieg== - dependencies: - util-extend "^1.0.1" - exegesis-express@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/exegesis-express/-/exegesis-express-4.0.0.tgz#f5f8486f6f0d81739e8e27ce75ce0f61ba3f3578" @@ -3140,9 +3096,9 @@ exegesis-express@^4.0.0: exegesis "^4.1.0" exegesis@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/exegesis/-/exegesis-4.1.1.tgz#555dfbec663e71d0d71297a9fe13edfdd64f8849" - integrity sha512-PvSqaMOw2absLBgsthtJyVOeCHN4lxQ1dM7ibXb6TfZZJaoXtGELoEAGJRFvdN16+u9kg8oy1okZXRk8VpimWA== + version "4.1.2" + resolved "https://registry.yarnpkg.com/exegesis/-/exegesis-4.1.2.tgz#0d73786202c80fafd23977c4090797e5cd603970" + integrity sha512-D9ZFTFQ8O5ZRBLZ0HAHqo0Gc3+ts330WimHf0cF7OQZLQ3YqRVfjig5qGvEjheS68m+fMjJSR/wN/Qousg17Dw== dependencies: "@apidevtools/json-schema-ref-parser" "^9.0.3" ajv "^8.3.0" @@ -3151,7 +3107,7 @@ exegesis@^4.1.0: content-type "^1.0.4" deep-freeze "0.0.1" events-listener "^1.1.0" - glob "^7.1.3" + glob "^10.3.10" json-ptr "^3.0.1" json-schema-traverse "^1.0.0" lodash "^4.17.11" @@ -3191,16 +3147,16 @@ express-boom@^3.0.0: boom "^7.3.x" express@^4.16.4: - version "4.18.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" - integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3227,17 +3183,17 @@ express@^4.16.4: utils-merge "1.0.1" vary "~1.1.2" -express@^4.19.2: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== +express@~4.18.3: + version "4.18.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" + integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.6.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3381,10 +3337,10 @@ filesize@^6.1.0: resolved "https://registry.yarnpkg.com/filesize/-/filesize-6.4.0.tgz#914f50471dd66fdca3cefe628bd0cde4ef769bcd" integrity sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ== -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" @@ -3463,7 +3419,7 @@ firebase-admin@^12.1.1: "@google-cloud/firestore" "^7.7.0" "@google-cloud/storage" "^7.7.0" -firebase-tools@^13.11.2: +firebase-tools@^13.4.0: version "13.11.2" resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.11.2.tgz#9e22b643836676d2c198da31c2814e8b1e871506" integrity sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA== @@ -3580,9 +3536,9 @@ foreground-child@^2.0.0: signal-exit "^3.0.2" foreground-child@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" - integrity sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg== + version "3.2.1" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.2.1.tgz#767004ccf3a5b30df39bed90718bab43fe0a59f7" + integrity sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA== dependencies: cross-spawn "^7.0.0" signal-exit "^4.0.1" @@ -3840,15 +3796,15 @@ glob@8.1.0: once "^1.3.0" glob@^10.2.2, glob@^10.3.10: - version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" - integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== + version "10.4.1" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" + integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== dependencies: foreground-child "^3.1.0" - jackspeak "^2.3.5" - minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2 || ^7.0.0" - path-scurry "^1.10.1" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + path-scurry "^1.11.1" glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: version "7.2.3" @@ -3882,11 +3838,12 @@ globals@^13.19.0, globals@^13.24.0: type-fest "^0.20.2" globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + version "1.0.4" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - define-properties "^1.1.3" + define-properties "^1.2.1" + gopd "^1.0.1" globby@^11.1.0: version "11.1.0" @@ -4032,7 +3989,7 @@ hasha@^5.0.0: is-stream "^2.0.0" type-fest "^0.8.0" -hasown@^2.0.0, hasown@^2.0.1: +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -4190,12 +4147,12 @@ import-fresh@^3.2.1: resolve-from "^4.0.0" import-in-the-middle@^1.6.0: - version "1.7.3" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.7.3.tgz#ffa784cdd57a47d2b68d2e7dd33070ff06baee43" - integrity sha512-R2I11NRi0lI3jD2+qjqyVlVEahsejw7LDnYEbGb47QEFjczE3bZYsmWheCTQA+LFs2DzOQxR7Pms7naHW1V4bQ== + version "1.8.0" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.8.0.tgz#c94d88d53701de9a248f9710b41f533e67f598a4" + integrity sha512-/xQjze8szLNnJ5rvHSzn+dcVXqCAU6Plbk4P24U/jwPmg1wy7IIp9OjKIO5tYue8GSPhDpPDiApQjvBUmWwhsQ== dependencies: acorn "^8.8.2" - acorn-import-assertions "^1.9.0" + acorn-import-attributes "^1.9.5" cjs-module-lexer "^1.2.2" module-details-from-path "^1.0.3" @@ -4222,7 +4179,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4360,6 +4317,13 @@ is-core-module@^2.13.0, is-core-module@^2.13.1: dependencies: hasown "^2.0.0" +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.1.tgz#4b4d3a511b70f3dc26d42c03ca9ca515d847759f" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -4593,16 +4557,15 @@ istanbul-lib-hook@^3.0.0: dependencies: append-transform "^2.0.0" -istanbul-lib-instrument@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.2.tgz#91655936cf7380e4e473383081e38478b69993b1" - integrity sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw== +istanbul-lib-instrument@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: - "@babel/core" "^7.23.9" - "@babel/parser" "^7.23.9" - "@istanbuljs/schema" "^0.1.3" - istanbul-lib-coverage "^3.2.0" - semver "^7.5.4" + "@babel/core" "^7.7.5" + "@istanbuljs/schema" "^0.1.2" + istanbul-lib-coverage "^3.0.0" + semver "^6.3.0" istanbul-lib-processinfo@^2.0.2: version "2.0.3" @@ -4642,10 +4605,10 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" - integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== +jackspeak@^3.1.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-3.4.0.tgz#a75763ff36ad778ede6a156d8ee8b124de445b4a" + integrity sha512-JVYhQnN59LVPFCEcVa2C3CrEKYacvjRfqIQl+h8oi91aLYQVWRYbxjPcv1bUiUy/kLmQaANrYfNMCO3kuEDHfw== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: @@ -4842,7 +4805,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.3: +json5@^2.1.1, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -5178,10 +5141,17 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" -lru-cache@^10.0.1, "lru-cache@^9.1.1 || ^10.0.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.0.tgz#0bd445ca57363465900f4d1f9bd8db343a4d95c3" - integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-cache@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^10.0.1, lru-cache@^10.2.0: + version "10.2.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.2.2.tgz#48206bc114c1252940c41b25b41af5b545aca878" + integrity sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ== lru-cache@^4.0.1: version "4.1.5" @@ -5198,33 +5168,18 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - lru-cache@^7.14.1: version "7.18.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -lru-cache@~4.0.0: - version "4.0.2" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e" - integrity sha512-uQw9OqphAGiZhkuPlpFGmdTU2tEuhxTourM/19qGJrxBPHAr/f8BT1a0i/lOclESnGatdJG/UCkP9kZB/Lh1iw== - dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" - lru-memoizer@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.2.0.tgz#b9d90c91637b4b1a423ef76f3156566691293df8" - integrity sha512-QfOZ6jNkxCcM/BkIPnFsqDhtrazLRsghi9mBwFAzol5GCvj4EkFT899Za3+QwikCg5sRX8JstioBDwOxEyzaNw== + version "2.3.0" + resolved "https://registry.yarnpkg.com/lru-memoizer/-/lru-memoizer-2.3.0.tgz#ef0fbc021bceb666794b145eefac6be49dc47f31" + integrity sha512-GXn7gyHAMhO13WSKrIiNfztwxodVsP8IoZ3XfrJV4yH2x0/OeTO/FIaAHTY5YekdGgW94njfuKmyyt1E0mR6Ug== dependencies: lodash.clonedeep "^4.5.0" - lru-cache "~4.0.0" + lru-cache "6.0.0" make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" @@ -5246,9 +5201,9 @@ make-error@^1.1.1: integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-fetch-happen@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" - integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== + version "13.0.1" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz#273ba2f78f45e1f3a6dca91cede87d9fa4821e36" + integrity sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA== dependencies: "@npmcli/agent" "^2.0.0" cacache "^18.0.0" @@ -5259,6 +5214,7 @@ make-fetch-happen@^13.0.0: minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" negotiator "^0.6.3" + proc-log "^4.2.0" promise-retry "^2.0.1" ssri "^10.0.0" @@ -5322,11 +5278,11 @@ methods@^1.1.2, methods@~1.1.2: integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + version "4.0.7" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" + integrity sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": @@ -5404,13 +5360,6 @@ minimatch@^6.1.6: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimatch@^9.0.4: version "9.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.4.tgz#8e49c731d1749cbec05050ee5145147b32496a51" @@ -5431,9 +5380,9 @@ minipass-collect@^2.0.1: minipass "^7.0.3" minipass-fetch@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" - integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== + version "3.0.5" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.5.tgz#f0f97e40580affc4a35cc4a1349f05ae36cb1e4c" + integrity sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg== dependencies: minipass "^7.0.3" minipass-sized "^1.0.3" @@ -5474,10 +5423,10 @@ minipass@^5.0.0: resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3: - version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" - integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" @@ -5504,7 +5453,7 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^10.4.0: +mocha@^10.3.0: version "10.4.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== @@ -5566,17 +5515,16 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.2: - version "1.4.4" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" - integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== +multer@^1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== dependencies: append-field "^1.0.0" - busboy "^0.2.11" + busboy "^1.0.0" concat-stream "^1.5.2" mkdirp "^0.5.4" object-assign "^4.1.1" - on-finished "^2.3.0" type-is "^1.6.4" xtend "^4.0.0" @@ -5585,10 +5533,10 @@ mute-stream@0.0.8: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -nan@^2.17.0, nan@^2.18.0: - version "2.19.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.19.0.tgz#bb58122ad55a6c5bc973303908d5b16cfdd5a8c0" - integrity sha512-nO1xXxfh/RWNxfd/XPfbIfFk5vgLsAxUR9y5O0cHMJu/AW9U95JLXqthYHjEp+8gQ5p96K9jUp8nbVOxCdRbtw== +nan@^2.17.0, nan@^2.18.0, nan@^2.20.0: + version "2.20.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" + integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== napi-build-utils@^1.0.1: version "1.0.2" @@ -5660,19 +5608,20 @@ nise@^6.0.0: just-extend "^6.2.0" path-to-regexp "^6.2.1" -nock@^13.5.4: - version "13.5.4" - resolved "https://registry.yarnpkg.com/nock/-/nock-13.5.4.tgz#8918f0addc70a63736170fef7106a9721e0dc479" - integrity sha512-yAyTfdeNJGGBFxWdzSKCBYxs5FxLbCg5X5Q4ets974hcQzG1+qCxvIyOo4j2Ry6MUlhWVMX4OoYDefAIIwupjw== +nock@~13.2.9: + version "13.2.9" + resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.9.tgz#4faf6c28175d36044da4cfa68e33e5a15086ad4c" + integrity sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA== dependencies: debug "^4.1.0" json-stringify-safe "^5.0.1" + lodash "^4.17.21" propagate "^2.0.0" node-abi@^3.3.0: - version "3.56.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.56.0.tgz#ca807d5ff735ac6bbbd684ae3ff2debc1c2a40a7" - integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== + version "3.65.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.65.0.tgz#ca92d559388e1e9cab1680a18c1a18757cdac9d3" + integrity sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA== dependencies: semver "^7.3.5" @@ -5701,14 +5650,14 @@ node-forge@^1.3.1: integrity sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA== node-gyp-build@^4.6.0, node-gyp-build@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" - integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== + version "4.8.1" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5" + integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw== -node-gyp@^10.0.1: - version "10.0.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" - integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== +node-gyp@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.1.0.tgz#75e6f223f2acb4026866c26a2ead6aab75a8ca7e" + integrity sha512-B4J5M1cABxPc5PwfjhbV5hoy2DP9p8lFXASnEN6hugXOa61416tnTZ29x9sSwAd0o99XNIcpvDDy1swAExsVKA== dependencies: env-paths "^2.2.0" exponential-backoff "^3.1.1" @@ -5750,19 +5699,12 @@ nodemon@^3.1.3: undefsafe "^2.0.5" nopt@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" - integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== + version "7.2.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.1.tgz#1cac0eab9b8e97c9093338446eddd40b2c8ca1e7" + integrity sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w== dependencies: abbrev "^2.0.0" -nopt@~1.0.10: - version "1.0.10" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" - integrity sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg== - dependencies: - abbrev "1" - normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" @@ -5775,10 +5717,10 @@ npm-run-path@^3.1.0: dependencies: path-key "^3.0.0" -nyc@^17.0.0: - version "17.0.0" - resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.0.0.tgz#d8943407584242a448a70290b15bb72207fac9fd" - integrity sha512-ISp44nqNCaPugLLGGfknzQwSwt10SSS5IMoPR7GLoMAyS18Iw5js8U7ga2VF9lYuMZ42gOHr3UddZw4WZltxKg== +nyc@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" + integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" "@istanbuljs/schema" "^0.1.2" @@ -5792,7 +5734,7 @@ nyc@^17.0.0: glob "^7.1.6" istanbul-lib-coverage "^3.0.0" istanbul-lib-hook "^3.0.0" - istanbul-lib-instrument "^6.0.2" + istanbul-lib-instrument "^4.0.0" istanbul-lib-processinfo "^2.0.2" istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" @@ -5844,35 +5786,34 @@ object.assign@^4.1.5: object-keys "^1.1.1" object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + version "2.0.8" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" object.groupby@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" - integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== + version "1.0.3" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - array.prototype.filter "^1.0.3" - call-bind "^1.0.5" + call-bind "^1.0.7" define-properties "^1.2.1" - es-abstract "^1.22.3" - es-errors "^1.0.0" + es-abstract "^1.23.2" object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + version "1.2.0" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -on-finished@2.4.1, on-finished@^2.2.0, on-finished@^2.3.0: +on-finished@2.4.1, on-finished@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -5927,16 +5868,16 @@ openapi3-ts@^3.1.1: yaml "^2.2.1" optionator@^0.9.3: - version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== + version "0.9.4" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: - "@aashutoshrathi/word-wrap" "^1.2.3" 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.5" ora@^5.4.1: version "5.4.1" @@ -6126,12 +6067,12 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.10.1: - version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" - integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.11.1.tgz#7960a668888594a0720b12a911d1a742ab9f11d2" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== dependencies: - lru-cache "^9.1.1 || ^10.0.0" + lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@0.1.7: @@ -6147,9 +6088,9 @@ path-to-regexp@^1.8.0: isarray "0.0.1" path-to-regexp@^6.2.1: - version "6.2.1" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" - integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== + version "6.2.2" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== path-type@^4.0.0: version "4.0.0" @@ -6222,10 +6163,10 @@ pgpass@1.x: dependencies: split2 "^4.1.0" -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.0, picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" @@ -6303,11 +6244,10 @@ prebuild-install@^7.1.2: tunnel-agent "^0.6.0" prebuildify@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/prebuildify/-/prebuildify-6.0.0.tgz#da3dba61e0e9fad7e63beaf7332b286ae6d8a562" - integrity sha512-DEvK4C3tcimIp7Pzqbs036n9i6CTKGp1XVEpMnr4wV3enKU5sBogPP+lP3KZw7993i42bXnsd5eIxAXQ566Cqw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/prebuildify/-/prebuildify-6.0.1.tgz#655746f91fc95b68610615898678536dd303cd03" + integrity sha512-8Y2oOOateom/s8dNBsGIcnm6AxPmLH4/nanQzL5lQMU+sC0CMhzARZHizwr36pUPLdvBnOkCNQzxg4djuFSgIw== dependencies: - execspawn "^1.0.1" minimist "^1.2.5" mkdirp-classic "^0.5.3" node-abi "^3.3.0" @@ -6327,10 +6267,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^2.5.1: - version "2.8.8" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" - integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== +prettier@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" + integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== pretty-bytes@^5.6.0: version "5.6.0" @@ -6351,6 +6291,11 @@ proc-log@^3.0.0: resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== +proc-log@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-4.2.0.tgz#b6f461e4026e75fdfe228b265e9f7a00779d7034" + integrity sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA== + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -6423,25 +6368,7 @@ protobufjs@7.3.0: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.2.4, protobufjs@^7.2.5: - version "7.2.6" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" - integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - -protobufjs@^7.2.6: +protobufjs@^7.2.5, protobufjs@^7.2.6: version "7.3.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== @@ -6486,7 +6413,7 @@ proxy-from-env@^1.1.0: resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== -pseudomap@^1.0.1, pseudomap@^1.0.2: +pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ== @@ -6538,14 +6465,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.0.tgz#edd40c3b823995946a8a0b1f208669c7a200db77" - integrity sha512-trVZiI6RMOkO476zLGaBIzszOdFPnCCXHPG9kn0yuS1uz6xdVxPfZdB3vUig9pxPFDM9BRAgz/YUIVQ1/vuiUg== - dependencies: - side-channel "^1.0.6" - -qs@^6.7.0: +qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0, qs@^6.7.0: version "6.12.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== @@ -6620,28 +6540,18 @@ rc@^1.2.7, rc@^1.2.8: strip-json-comments "~2.0.1" re2@^1.17.7: - version "1.20.10" - resolved "https://registry.yarnpkg.com/re2/-/re2-1.20.10.tgz#08c44001c6ed646a84e75ec86af87a552d54c460" - integrity sha512-/5JjSPXobSDaKFL6rD5Gb4qD4CVBITQb7NAxfQ/NA7o0HER3SJAPV3lPO2kvzw0/PN1pVJNVATEUk4y9j7oIIA== + version "1.21.3" + resolved "https://registry.yarnpkg.com/re2/-/re2-1.21.3.tgz#4bced725a837cbe73d7d42b702a0d46671e6d00a" + integrity sha512-GI+KoGkHT4kxTaX+9p0FgNB1XUnCndO9slG5qqeEoZ7kbf6Dk6ohQVpmwKVeSp7LPLn+g6Q3BaCopz4oHuBDuQ== dependencies: install-artifact-from-github "^1.3.5" - nan "^2.18.0" - node-gyp "^10.0.1" + nan "^2.20.0" + node-gyp "^10.1.0" react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== - -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + version "18.3.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: version "2.3.8" @@ -6811,9 +6721,9 @@ reusify@^1.0.4: integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^2.6.1: version "2.7.1" @@ -6866,7 +6776,7 @@ rxjs@^7.5.4, rxjs@^7.5.5: dependencies: tslib "^2.1.0" -safe-array-concat@^1.1.0: +safe-array-concat@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.2.tgz#81d77ee0c4e8b863635227c721278dd524c20edb" integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== @@ -6929,14 +6839,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4: - version "7.6.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.0.tgz#1a46a4db4bffcccd97b743b5005c8325f23d4e2d" - integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== - dependencies: - lru-cache "^6.0.0" - -semver@^7.6.0: +semver@^7.0.0, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: version "7.6.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -7103,19 +7006,19 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -socks-proxy-agent@^8.0.1, socks-proxy-agent@^8.0.2: - version "8.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" - integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== +socks-proxy-agent@^8.0.2, socks-proxy-agent@^8.0.3: + version "8.0.3" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.3.tgz#6b2da3d77364fde6292e810b496cb70440b9b89d" + integrity sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A== dependencies: - agent-base "^7.0.2" + agent-base "^7.1.1" debug "^4.3.4" socks "^2.7.1" socks@^2.7.1: - version "2.8.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.1.tgz#22c7d9dd7882649043cba0eafb49ae144e3457af" - integrity sha512-B6w7tkwNid7ToxjZ08rQMT8M9BJAf8DKx8Ft4NivzH0zBUfd6jldGcisJn/RLgxcX3FPNDdNQCUEMMT79b+oCQ== + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== dependencies: ip-address "^9.0.5" smart-buffer "^4.2.0" @@ -7185,9 +7088,9 @@ sql-formatter@^15.3.0: nearley "^2.20.1" ssri@^10.0.0: - version "10.0.5" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" - integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== + version "10.0.6" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" + integrity sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ== dependencies: minipass "^7.0.3" @@ -7246,21 +7149,12 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== - -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -7283,32 +7177,33 @@ string.fromcodepoint@^0.2.1: resolved "https://registry.yarnpkg.com/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz#8d978333c0bc92538f50f383e4888f3e5619d653" integrity sha512-n69H31OnxSGSZyZbgBlvYIXlrMhJQ0dQAX1js1QDhpaUH6zmU3QYlj07bCwCNlPOu3oRXIubGPl2gDGnHsiCqg== -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz#b6fa326d72d2c78b6df02f7759c73f8f6274faa4" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz#3651b8513719e8a9f48de7f2f77640b26652b229" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" string_decoder@^1.1.1: version "1.3.0" @@ -7317,11 +7212,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7329,14 +7219,7 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -7472,6 +7355,14 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" +synckit@^0.8.6: + version "0.8.8" + resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" + integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== + dependencies: + "@pkgr/core" "^0.1.0" + tslib "^2.6.2" + tar-fs@^2.0.0, tar-fs@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" @@ -7494,9 +7385,9 @@ tar-stream@^2.1.4, tar-stream@^2.2.0: readable-stream "^3.1.1" tar@^6.1.11, tar@^6.1.2: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" - integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== + version "6.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a" + integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -7595,11 +7486,9 @@ toidentifier@1.0.1: integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== touch@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" - integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== - dependencies: - nopt "~1.0.10" + version "3.1.1" + resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.1.tgz#097a23d7b161476435e5c1344a95c0f75b4a5694" + integrity sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA== toxic@^1.0.0: version "1.0.1" @@ -7683,10 +7572,10 @@ tsconfig@^7.0.0: strip-bom "^3.0.0" strip-json-comments "^2.0.0" -tslib@^2.0.1, tslib@^2.1.0: - version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" + integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== tunnel-agent@^0.6.0: version "0.6.0" @@ -7722,11 +7611,6 @@ type-fest@^0.8.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^3.0.0: - version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" - integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== - type-is@^1.6.4, type-is@~1.6.18: version "1.6.18" resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -7767,10 +7651,10 @@ typed-array-byte-offset@^1.0.2: has-proto "^1.0.3" is-typed-array "^1.1.13" -typed-array-length@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.5.tgz#57d44da160296d8663fd63180a1802ebf25905d5" - integrity sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA== +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.6.tgz#57155207c76e64a3457482dfdc1c9d1d3c4c73a3" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== dependencies: call-bind "^1.0.7" for-each "^0.3.3" @@ -7791,10 +7675,10 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@^5.3.3: - version "5.4.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" - integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== +typescript@~5.3.3: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" @@ -7889,13 +7773,13 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== +update-browserslist-db@^1.0.16: + version "1.0.16" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.16.tgz#f6d489ed90fb2f07d67784eb3f53d7891f736356" + integrity sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + escalade "^3.1.2" + picocolors "^1.0.1" update-notifier-cjs@^5.1.6: version "5.1.6" @@ -7919,7 +7803,7 @@ update-notifier-cjs@^5.1.6: semver-diff "^3.1.1" xdg-basedir "^4.0.0" -uri-js@^4.2.2: +uri-js@^4.2.2, uri-js@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== @@ -7941,11 +7825,6 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -util-extend@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/util-extend/-/util-extend-1.0.3.tgz#a7c216d267545169637b3b6edc6ca9119e2ff93f" - integrity sha512-mLs5zAK+ctllYBj+iAQvlDCwoxU/WDOUaJkcFudeiAX6OajC6BKXJUa9a+tbtkC11dz2Ufb7h0lyvIOVn4LADA== - utils-merge@1.0.1, utils-merge@1.x.x, utils-merge@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" @@ -8031,7 +7910,7 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== -which-typed-array@^1.1.14: +which-typed-array@^1.1.14, which-typed-array@^1.1.15: version "1.1.15" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.15.tgz#264859e9b11a649b388bfaaf4f767df1f779b38d" integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== @@ -8086,24 +7965,7 @@ winston-transport@^4.4.0, winston-transport@^4.5.0, winston-transport@^4.7.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@^3.0.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.12.0.tgz#a5d965a41d3dc31be5408f8c66e927958846c0d0" - integrity sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - -winston@^3.13.0: +winston@^3.0.0, winston@^3.13.0: version "3.13.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== @@ -8120,12 +7982,17 @@ winston@^3.13.0: triple-beam "^1.3.0" winston-transport "^4.7.0" +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + workerpool@6.2.1: version "6.2.1" resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -8143,15 +8010,6 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -8177,14 +8035,14 @@ write-file-atomic@^3.0.0: typedarray-to-buffer "^3.1.5" ws@^7.2.3: - version "7.5.9" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" - integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== ws@^8.14.2: - version "8.16.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" - integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== xdg-basedir@^4.0.0: version "4.0.0" @@ -8211,7 +8069,7 @@ y18n@^5.0.5: resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yallist@^2.0.0, yallist@^2.1.2: +yallist@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A== @@ -8226,12 +8084,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" - integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== - -yaml@^2.4.1: +yaml@^2.2.1, yaml@^2.4.1: version "2.4.5" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== From 2b3668a5c7f9efa69c4b46fb2acefafede66e47a Mon Sep 17 00:00:00 2001 From: abhay Date: Mon, 17 Jun 2024 22:01:59 +0530 Subject: [PATCH 06/17] fix:prettier issue by upgrading to the latest version of prettier --- controllers/cloudflareCache.js | 2 +- controllers/discordactions.js | 4 +-- controllers/events.js | 2 +- controllers/extensionRequests.js | 8 ++--- controllers/external-accounts.js | 2 +- controllers/staging.js | 10 +++--- controllers/tasks.js | 6 ++-- controllers/users.js | 2 +- middlewares/contentTypeCheck.js | 2 +- middlewares/index.js | 4 +-- middlewares/passport.js | 4 +-- middlewares/validators/extensionRequests.js | 4 +-- middlewares/validators/items.js | 2 +- middlewares/validators/task-requests.js | 4 +-- middlewares/validators/tasks.js | 12 +++---- middlewares/validators/user.js | 2 +- middlewares/validators/userStatus.js | 10 +++--- models/badges.js | 2 +- models/discordactions.js | 26 +++++++------- models/events.js | 2 +- models/taskRequests.js | 6 ++-- models/tasks.js | 4 +-- models/userStatus.js | 6 ++-- models/users.js | 4 +-- routes/badges.js | 6 ++-- routes/discordactions.js | 10 +++--- routes/events.js | 10 +++--- routes/extensionRequests.js | 4 +-- routes/external-accounts.js | 2 +- routes/monitor.js | 4 +-- routes/tasks.js | 8 ++--- routes/userStatus.js | 2 +- routes/users.js | 10 +++--- scripts/validateSetup.js | 2 +- services/EventAPIService.js | 4 +-- services/cloudflareService.js | 2 +- services/githubService.js | 12 +++---- test/integration/badges.test.js | 4 +-- test/integration/contributions.test.js | 4 +-- test/integration/discordactions.test.js | 34 +++++++++---------- test/integration/extensionRequests.test.js | 9 ++--- test/integration/external-accounts.test.js | 10 +++--- .../multilpleExtensionRequest.test.js | 2 +- test/integration/progressesTasks.test.js | 2 +- test/integration/progressesUsers.test.js | 2 +- test/integration/restricted.test.js | 2 +- .../integration/taskBasedStatusUpdate.test.js | 26 +++++++------- test/integration/tasks.test.js | 10 +++--- test/integration/userStatus.test.js | 6 ++-- test/integration/users.test.js | 18 +++++----- test/integration/usersFilter.test.js | 4 +-- .../unit/middlewares/contentTypeCheck.test.js | 2 +- test/unit/models/discordactions.test.js | 12 +++---- test/unit/models/recruiters.test.js | 2 +- test/unit/models/task-requests.test.js | 8 ++--- .../unit/models/taskBasedStatusUpdate.test.js | 10 +++--- .../services/discordMembersService.test.js | 4 +-- test/unit/services/discordService.test.js | 8 ++--- test/unit/services/githubService.test.js | 18 +++++----- test/unit/utils/sendTaskUpdate.test.js | 4 +-- test/unit/utils/tasks.test.js | 4 +-- test/unit/utils/users.test.js | 6 ++-- utils/logs.js | 2 +- 63 files changed, 210 insertions(+), 209 deletions(-) diff --git a/controllers/cloudflareCache.js b/controllers/cloudflareCache.js index cd7e10adb..df26f30b5 100644 --- a/controllers/cloudflareCache.js +++ b/controllers/cloudflareCache.js @@ -53,7 +53,7 @@ const purge = async (res, id, username, isSuperUser, userDetails) => { await logsQuery.addLog( logType.CLOUDFLARE_CACHE_PURGED, { userId: id, purgedFor: userDetails.user.id }, - { message: "Cache Purged" } + { message: "Cache Purged" }, ); } else { await logsQuery.addLog(logType.CLOUDFLARE_CACHE_PURGED, { userId: id }, { message: "Cache Purged" }); diff --git a/controllers/discordactions.js b/controllers/discordactions.js index 7a6f64fcf..d65c788df 100644 --- a/controllers/discordactions.js +++ b/controllers/discordactions.js @@ -282,7 +282,7 @@ const updateDiscordNicknames = async (req, res) => { } catch (error) { logger.error(`error getting user with matching discordId ${error.message}`); } - }) + }), ); const totalNicknamesUpdated = { count: 0 }; @@ -366,7 +366,7 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { { roleid: role.id, }, - roleInFirestore.id + roleInFirestore.id, ); } } else { diff --git a/controllers/events.js b/controllers/events.js index 852f2635f..86aa60e20 100644 --- a/controllers/events.js +++ b/controllers/events.js @@ -302,7 +302,7 @@ const kickoutPeer = async (req, res) => { addLog( logType.EVENTS_REMOVE_PEER, { removed_by_id: req.userData.id, removed_by_username: req.userData.username }, - { ...payload, event_id: id, peer_name: peer.name } + { ...payload, event_id: id, peer_name: peer.name }, ); return res.status(200).json({ diff --git a/controllers/extensionRequests.js b/controllers/extensionRequests.js index 06bbcca76..174c3fd15 100644 --- a/controllers/extensionRequests.js +++ b/controllers/extensionRequests.js @@ -183,7 +183,7 @@ const fetchExtensionRequests = async (req, res) => { const allExtensionRequests = await extensionRequestsQuery.fetchPaginatedExtensionRequests( { taskId, status: transformedStatus, assignee }, - { cursor, order, size: transformedSize } + { cursor, order, size: transformedSize }, ); return res.json({ message: "Extension Requests returned successfully!", @@ -238,7 +238,7 @@ const getSelfExtensionRequests = async (req, res) => { if (latestExtensionRequest.status === "APPROVED" || latestExtensionRequest.status === "DENIED") { const logs = await logsQuery.fetchLogs( { "meta.extensionRequestId": latestExtensionRequest.id, limit: 1 }, - "extensionRequests" + "extensionRequests", ); if ( @@ -390,8 +390,8 @@ const updateExtensionRequestStatus = async (req, res) => { promises.push( tasks.updateTask( { endsOn: extensionRequest.extensionRequestData.newEndsOn }, - extensionRequest.extensionRequestData.taskId - ) + extensionRequest.extensionRequestData.taskId, + ), ); promises.push(addLog(taskLog.type, taskLog.meta, taskLog.body)); } diff --git a/controllers/external-accounts.js b/controllers/external-accounts.js index 490ee6e99..3bc83326f 100644 --- a/controllers/external-accounts.js +++ b/controllers/external-accounts.js @@ -66,7 +66,7 @@ const linkExternalAccount = async (req, res) => { discordId: attributes.discordId, discordJoinedAt: attributes.discordJoinedAt, }, - userId + userId, ); return res.status(204).json({ message: "Your discord profile has been linked successfully" }); diff --git a/controllers/staging.js b/controllers/staging.js index f87b5f896..a18a6e983 100644 --- a/controllers/staging.js +++ b/controllers/staging.js @@ -17,7 +17,7 @@ const updateRoles = async (req, res) => { }, updated_at: Date.now(), }, - userId + userId, ); return res.status(200).json({ message: "Roles Updated successfully", @@ -51,8 +51,8 @@ const removePrivileges = async (req, res) => { }, updated_at: Date.now(), }, - member.id - ) + member.id, + ), ); }); superUsers.forEach((superUser) => { @@ -65,8 +65,8 @@ const removePrivileges = async (req, res) => { }, updated_at: Date.now(), }, - superUser.id - ) + superUser.id, + ), ); }); diff --git a/controllers/tasks.js b/controllers/tasks.js index c4bc6ee1c..a041ebeeb 100644 --- a/controllers/tasks.js +++ b/controllers/tasks.js @@ -355,12 +355,12 @@ const updateTaskStatus = async (req, res, next) => { return res.boom.badRequest( `The status of task can not be changed from ${ isCurrentTaskStatusInProgress ? "In progress" : "Blocked" - } until progress of task is not 100%.` + } until progress of task is not 100%.`, ); } if (isNewTaskStatusInProgress && !isCurrentTaskStatusBlock && !isCurrProgress0 && !isNewProgress0) { return res.boom.badRequest( - "The status of task can not be changed to In progress until progress of task is not 0%." + "The status of task can not be changed to In progress until progress of task is not 0%.", ); } } @@ -439,7 +439,7 @@ const overdueTasks = async (req, res) => { const allTasks = await tasks.fetchTasks(); const now = Math.floor(Date.now() / 1000); const overDueTasks = allTasks.filter( - (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now + (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now, ); const newAvailableTasks = await tasks.overdueTasks(overDueTasks); return res.json({ diff --git a/controllers/users.js b/controllers/users.js index bc4dbfc78..4ea287d51 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -652,7 +652,7 @@ const rejectProfileDiff = async (req, res) => { const { profileDiffId, message } = req.body; const profileResponse = await profileDiffsQuery.updateProfileDiff( { approval: profileDiffStatus.REJECTED }, - profileDiffId + profileDiffId, ); if (profileResponse.notFound) return res.boom.notFound("Profile Diff doesn't exist"); diff --git a/middlewares/contentTypeCheck.js b/middlewares/contentTypeCheck.js index 1e3f981a1..7e8dec877 100644 --- a/middlewares/contentTypeCheck.js +++ b/middlewares/contentTypeCheck.js @@ -12,7 +12,7 @@ module.exports = (req, res, next) => { const notMultiPart = !contentType.includes("multipart/form-data"); if (notMultiPart) { return res.boom.unsupportedMediaType( - `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data` + `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data`, ); } } diff --git a/middlewares/index.js b/middlewares/index.js index a8696ba59..6ce84b05a 100644 --- a/middlewares/index.js +++ b/middlewares/index.js @@ -30,7 +30,7 @@ const middleware = (app) => { ieNoOpen: false, referrerPolicy: false, xssFilter: false, - }) + }), ); app.use( @@ -38,7 +38,7 @@ const middleware = (app) => { origin: config.get("cors.allowedOrigins"), credentials: true, optionsSuccessStatus: 200, - }) + }), ); app.use(contentTypeCheck); diff --git a/middlewares/passport.js b/middlewares/passport.js index 93ee4274a..cbd9276c6 100644 --- a/middlewares/passport.js +++ b/middlewares/passport.js @@ -11,8 +11,8 @@ try { }, (accessToken, refreshToken, profile, done) => { return done(null, accessToken, profile); - } - ) + }, + ), ); } catch (err) { logger.error("Error initialising passport:", err); diff --git a/middlewares/validators/extensionRequests.js b/middlewares/validators/extensionRequests.js index 8b2b0af0f..3430bbb21 100644 --- a/middlewares/validators/extensionRequests.js +++ b/middlewares/validators/extensionRequests.js @@ -85,8 +85,8 @@ const getExtensionRequestsValidator = async (req, res, next) => { joi .string() .valid(...ER_STATUS_ENUM) - .insensitive() - ) + .insensitive(), + ), ) .optional(), assignee: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional(), diff --git a/middlewares/validators/items.js b/middlewares/validators/items.js index 2d3278f2c..1911c51fe 100644 --- a/middlewares/validators/items.js +++ b/middlewares/validators/items.js @@ -16,7 +16,7 @@ const validateItemsPayload = async (req, res, next) => { Joi.object({ tagId: Joi.string().required(), levelId: Joi.string().required(), - }) + }), ), }); diff --git a/middlewares/validators/task-requests.js b/middlewares/validators/task-requests.js index f9754824d..a6a7daf65 100644 --- a/middlewares/validators/task-requests.js +++ b/middlewares/validators/task-requests.js @@ -68,7 +68,7 @@ const getTaskRequests = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_STATUS).map((value) => value.toLowerCase())), operator: joi.string().optional(), - }) + }), ) .optional(), "request-type": joi @@ -77,7 +77,7 @@ const getTaskRequests = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_TYPE).map((value) => value.toLowerCase())), operator: joi.string().optional(), - }) + }), ) .optional(), }); diff --git a/middlewares/validators/tasks.js b/middlewares/validators/tasks.js index 5467137c8..0cdc38717 100644 --- a/middlewares/validators/tasks.js +++ b/middlewares/validators/tasks.js @@ -121,7 +121,7 @@ const updateTask = async (req, res, next) => { const updateSelfTask = async (req, res, next) => { const validStatus = [...TASK_STATUS_ENUM, ...Object.values(TASK_STATUS_OLD)].filter( - (item) => item !== TASK_STATUS.AVAILABLE + (item) => item !== TASK_STATUS.AVAILABLE, ); const schema = joi .object() @@ -176,7 +176,7 @@ const getTasksValidator = async (req, res, next) => { joi.when("next", { is: joi.exist(), then: joi.custom((_, helpers) => helpers.message("Both prev and next cannot be passed")), - }) + }), ), size: joi.number().integer().positive().min(1).max(100).optional(), q: joi @@ -216,7 +216,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.values(tasksUsersStatus)), operator: joi.string().valid(Operators.INCLUDE), - }) + }), ) .required(), "days-count": joi @@ -225,7 +225,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.number().integer().min(1).max(10), operator: joi.string().valid(Operators.EXCLUDE), - }) + }), ) .max(1) .optional(), @@ -235,7 +235,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.keys(daysOfWeek)), operator: joi.string().valid(Operators.EXCLUDE), - }) + }), ) .max(7) .optional(), @@ -245,7 +245,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.date().timestamp(), operator: joi.string().valid(Operators.EXCLUDE), - }) + }), ) .max(20) .optional(), diff --git a/middlewares/validators/user.js b/middlewares/validators/user.js index 8be954e2e..ffaa1804a 100644 --- a/middlewares/validators/user.js +++ b/middlewares/validators/user.js @@ -180,7 +180,7 @@ async function getUsers(req, res, next) { joi.string().when("page", { is: joi.exist(), then: joi.custom((_, helpers) => helpers.message("Both page and prev can't be passed")), - }) + }), ) .messages({ "string.empty": "prev value cannot be empty", diff --git a/middlewares/validators/userStatus.js b/middlewares/validators/userStatus.js index 926e38feb..2ab71e811 100644 --- a/middlewares/validators/userStatus.js +++ b/middlewares/validators/userStatus.js @@ -23,8 +23,8 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { .required() .error( new Error( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` - ) + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, + ), ), otherwise: Joi.optional(), }), @@ -39,12 +39,12 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { is: Joi.number().greater( Joi.ref("from", { adjust: (value) => value + threeDaysInMilliseconds, - }) + }), ), then: Joi.string() .optional() .error( - new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`) + new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`), ), otherwise: Joi.required(), }), @@ -94,7 +94,7 @@ const validateMassUpdate = async (req, res, next) => { Joi.object({ userId: Joi.string().trim().required(), state: Joi.string().valid(userState.IDLE, userState.ACTIVE).required(), - }) + }), ) .min(1) .required() diff --git a/models/badges.js b/models/badges.js index d0901eb67..4e092e6c1 100644 --- a/models/badges.js +++ b/models/badges.js @@ -114,7 +114,7 @@ async function removeBadges({ userId, badgeIds }) { const documentRefferences = snapshot.docs.map((doc) => doc.ref); const documentsRefferencesChunks = chunks(documentRefferences, DOCUMENT_WRITE_SIZE); const bulkWriterBatches = documentsRefferencesChunks.map((value) => - assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }) + assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }), ); return await Promise.all(bulkWriterBatches); } catch (err) { diff --git a/models/discordactions.js b/models/discordactions.js index 3c71e74f7..faa1966c7 100644 --- a/models/discordactions.js +++ b/models/discordactions.js @@ -358,7 +358,7 @@ const updateIdleUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }) + }), ); } allUsersHavingGroupIdle = usersHavingIdleRole; @@ -404,7 +404,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }) + }), ); } @@ -435,7 +435,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }) + }), ); } @@ -593,7 +593,7 @@ const updateIdle7dUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }) + }), ); } @@ -640,7 +640,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }) + }), ); } @@ -671,7 +671,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }) + }), ); } @@ -717,7 +717,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { }); const usersForRoleAddition = allOnboardingDevs31DaysCompleted.filter( - (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId) + (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId), ); const errorInFetchingUserDetailsForRoleRemoval = { count: 0, errors: [] }; @@ -738,7 +738,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { logger.error(`Error in getting users to remove role: ${error}`); } return null; - }) + }), ); const filteredUsersForRoleRemoval = usersForRoleRemoval.filter((user) => user !== null); @@ -781,7 +781,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNoteApplied.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in setting group-onboarding-31+ role on user: ${error}`); } - }) + }), ); } @@ -812,7 +812,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNotRemoved.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in removing group-onboarding-31d+ role from user: ${error}`); } - }) + }), ); } @@ -927,14 +927,14 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { await userStatusModel .where("currentStatus.state", "==", userState.ACTIVE) .where("userId", "in", userIdList) - .get() + .get(), ); const userDetailsPromise = userIdChunks.map( async (userIdList) => await userModel .where("roles.archived", "==", false) .where(admin.firestore.FieldPath.documentId(), "in", userIdList) - .get() + .get(), ); const userStatusChunks = await Promise.all(userStatusSnapshotPromise); @@ -942,7 +942,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { userStatusChunks.forEach((userStatusList) => userStatusList.forEach((doc) => { usersMap.get(doc.data().userId).isActive = true; - }) + }), ); const userDetailsListChunks = await Promise.all(userDetailsPromise); diff --git a/models/events.js b/models/events.js index fb15219c1..ddd222094 100644 --- a/models/events.js +++ b/models/events.js @@ -180,7 +180,7 @@ const kickoutPeer = async ({ eventId, peerId, reason }) => { } const updatedJoinedEvents = joinedEvents.map((event, index) => - index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event + index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event, ); await peerRef.update({ joinedEvents: updatedJoinedEvents }); diff --git a/models/taskRequests.js b/models/taskRequests.js index 6bc5c8572..586381dc5 100644 --- a/models/taskRequests.js +++ b/models/taskRequests.js @@ -85,7 +85,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { Object.entries(rqlQueryParser.getFilterQueries()).forEach(([key, value]) => { const valuesList = value.map( - (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value] + (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value], ); taskRequestsSnapshot = taskRequestsSnapshot.where(TASK_REQUEST_FILTER_KEYS[key], "in", valuesList); }); @@ -97,7 +97,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { sortQueryEntries.forEach(([key, value]) => { taskRequestsSnapshot = taskRequestsSnapshot.orderBy( TASK_REQUEST_SORT_KEYS[key], - TASK_REQUEST_SORT_VALUES[value] + TASK_REQUEST_SORT_VALUES[value], ); }); } else { @@ -552,7 +552,7 @@ const addNewFields = async () => { bulkWriter.update(taskRequestsCollection.doc(taskRequestsSnapshot.id), updatedTaskRequestData); documentsModified++; } - }) + }), ); await bulkWriter.close(); diff --git a/models/tasks.js b/models/tasks.js index 113065ba0..a60484298 100644 --- a/models/tasks.js +++ b/models/tasks.js @@ -543,7 +543,7 @@ const overdueTasks = async (overDueTasks) => { unassignedMember: assignee, unassignedTask, }; - }) + }), ); return newAvailableTasks; } catch (err) { @@ -624,7 +624,7 @@ const updateTaskStatus = async () => { updatedTaskDetails: res.updatedTaskDetails, failedTaskDetails: res.failedTaskDetails, }; - }) + }), ); updatedTasksPromises.forEach((res) => { diff --git a/models/userStatus.js b/models/userStatus.js index 4f7288d7c..a8dbf73ab 100644 --- a/models/userStatus.js +++ b/models/userStatus.js @@ -335,7 +335,7 @@ const updateAllUserStatus = async () => { }); if (batch._ops.length > 100) { logger.info( - `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.` + `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.`, ); } await batch.commit(); @@ -610,7 +610,7 @@ const getTaskBasedUsersStatus = async () => { unprocessedUsers.push(assigneeId); logger.error(`Error retrieving tasks for user ${assigneeId}: ${error.message}`); } - }) + }), ); } @@ -649,7 +649,7 @@ const cancelOooStatus = async (userId) => { const { futureStatus, ...docData } = userStatusDocument.data(); if (docData.currentStatus.state !== userState.OOO) { throw new Forbidden( - `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.` + `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.`, ); } try { diff --git a/models/users.js b/models/users.js index 235987d63..3a248b0a3 100644 --- a/models/users.js +++ b/models/users.js @@ -45,7 +45,7 @@ const addOrUpdate = async (userData, userId = null) => { ...userData, updated_at: Date.now(), }, - { merge: true } + { merge: true }, ); } @@ -559,7 +559,7 @@ const getUsersBasedOnFilter = async (query) => { const fetchUsersWithOnBoardingState = await getUsersWithOnboardingStateInRange( filteredUserDocs, stateItems, - query.time + query.time, ); return fetchUsersWithOnBoardingState; } diff --git a/routes/badges.js b/routes/badges.js index 917662bf3..d6fba4aa8 100644 --- a/routes/badges.js +++ b/routes/badges.js @@ -15,21 +15,21 @@ router.post( authorizeRoles([SUPERUSER]), upload.single("file"), badgesValidator.createBadge, - badgesController.postBadge + badgesController.postBadge, ); router.post( "/assign", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.postUserBadges + badgesController.postUserBadges, ); router.delete( "/remove", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.deleteUserBadges + badgesController.deleteUserBadges, ); module.exports = router; diff --git a/routes/discordactions.js b/routes/discordactions.js index 745a306df..140342fca 100644 --- a/routes/discordactions.js +++ b/routes/discordactions.js @@ -44,28 +44,28 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - updateDiscordImageForVerification + updateDiscordImageForVerification, ); router.put( "/group-idle", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdleToIdleUsers + setRoleIdleToIdleUsers, ); router.put( "/group-idle-7d", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdle7DToIdleUsers + setRoleIdle7DToIdleUsers, ); router.post( "/nicknames/sync", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - updateDiscordNicknames + updateDiscordNicknames, ); router.post("/nickname/status", verifyCronJob, validateUpdateUsersNicknameStatusBody, updateUsersNicknameStatus); router.post("/discord-roles", authenticate, authorizeRoles([SUPERUSER]), syncDiscordGroupRolesInFirestore); router.put( "/group-onboarding-31d-plus", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleToUsersWith31DaysPlusOnboarding + setRoleToUsersWith31DaysPlusOnboarding, ); module.exports = router; diff --git a/routes/events.js b/routes/events.js index db8fb9584..6c50c2278 100644 --- a/routes/events.js +++ b/routes/events.js @@ -13,7 +13,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.joinEvent, - events.joinEvent + events.joinEvent, ); router.post("/join", eventsValidator.joinEvent, events.joinEvent); router.get("/:id", eventsValidator.getEventById, events.getEventById); @@ -23,7 +23,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.endActiveEvent, - events.endActiveEvent + events.endActiveEvent, ); router.post("/:id/peers", eventsValidator.addPeerToEvent, events.addPeerToEvent); router.patch( @@ -31,20 +31,20 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.kickoutPeer, - events.kickoutPeer + events.kickoutPeer, ); router.post( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.generateEventCode, - events.generateEventCode + events.generateEventCode, ); router.get( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.getEventCodes, - events.getEventCodes + events.getEventCodes, ); module.exports = router; diff --git a/routes/extensionRequests.js b/routes/extensionRequests.js index a4e93f56c..7b74d1051 100644 --- a/routes/extensionRequests.js +++ b/routes/extensionRequests.js @@ -20,14 +20,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequest, - extensionRequests.updateExtensionRequest + extensionRequests.updateExtensionRequest, ); router.patch( "/:id/status", authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequestStatus, - extensionRequests.updateExtensionRequestStatus + extensionRequests.updateExtensionRequestStatus, ); module.exports = router; diff --git a/routes/external-accounts.js b/routes/external-accounts.js index 2cf24c484..d64c2bc3a 100644 --- a/routes/external-accounts.js +++ b/routes/external-accounts.js @@ -18,7 +18,7 @@ router.post( "/users", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validator.postExternalAccountsUsers, - externalAccount.externalAccountsUsersPostHandler + externalAccount.externalAccountsUsersPostHandler, ); module.exports = router; diff --git a/routes/monitor.js b/routes/monitor.js index c0796f63f..16ca9b186 100644 --- a/routes/monitor.js +++ b/routes/monitor.js @@ -19,7 +19,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER]), validateCreateTrackedProgressRecord, - createTrackedProgressController + createTrackedProgressController, ); router.patch( @@ -27,7 +27,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), validateUpdateTrackedProgress, - updateTrackedProgressController + updateTrackedProgressController, ); router.get("/", validateGetTrackedProgressQueryParams, getTrackedProgressController); diff --git a/routes/tasks.js b/routes/tasks.js index 5596f982c..0b651d39a 100644 --- a/routes/tasks.js +++ b/routes/tasks.js @@ -21,7 +21,7 @@ const { CLOUDFLARE_WORKER, CRON_JOB_HANDLER } = require("../constants/bot"); const oldAuthorizationMiddleware = authorizeRoles([APPOWNER, SUPERUSER]); const newAuthorizationMiddleware = authorizeAndAuthenticate( [APPOWNER, SUPERUSER], - [CLOUDFLARE_WORKER, CRON_JOB_HANDLER] + [CLOUDFLARE_WORKER, CRON_JOB_HANDLER], ); // Middleware to check if 'dev' query parameter is set to true @@ -42,7 +42,7 @@ router.post( authorizeRoles([APPOWNER, SUPERUSER]), invalidateCache({ invalidationKeys: [ALL_TASKS] }), createTask, - tasks.addNewTask + tasks.addNewTask, ); router.patch( "/:id", @@ -50,7 +50,7 @@ router.patch( enableDevModeMiddleware, invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateTask, - tasks.updateTask + tasks.updateTask, ); router.get("/:id/details", tasks.getTask); router.get("/:username", tasks.getUserTasks); @@ -60,7 +60,7 @@ router.patch( invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateSelfTask, tasks.updateTaskStatus, - assignTask + assignTask, ); router.patch("/assign/self", authenticate, invalidateCache({ invalidationKeys: [ALL_TASKS] }), tasks.assignTask); diff --git a/routes/userStatus.js b/routes/userStatus.js index 65f6008f1..7bbf2c1b2 100644 --- a/routes/userStatus.js +++ b/routes/userStatus.js @@ -30,7 +30,7 @@ router.patch( "/batch", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validateMassUpdate, - batchUpdateUsersStatus + batchUpdateUsersStatus, ); router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), validateUserStatus, updateUserStatus); router.delete("/:userId", authenticate, authorizeRoles([SUPERUSER]), deleteUserStatus); diff --git a/routes/users.js b/routes/users.js index 605500305..ea60f1fdd 100644 --- a/routes/users.js +++ b/routes/users.js @@ -29,7 +29,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - users.updateDiscordUserNickname + users.updateDiscordUserNickname, ); router.get("/:username", users.getUser); router.get("/:userId/intro", authenticate, authorizeRoles([SUPERUSER]), users.getUserIntro); @@ -41,14 +41,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUsersPatchHandler, - users.usersPatchHandler + users.usersPatchHandler, ); router.patch( "/:id/temporary/data", authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUpdateRoles, - users.updateRoles + users.updateRoles, ); // upload.single('profile') -> multer inmemory storage of file for type multipart/form-data @@ -58,7 +58,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateImageVerificationQuery, - users.verifyUserImage + users.verifyUserImage, ); router.get("/picture/:id", authenticate, authorizeRoles([SUPERUSER]), users.getUserImageForVerification); router.patch("/profileURL", authenticate, userValidator.updateProfileURL, users.profileURL); @@ -71,6 +71,6 @@ router.post( authenticate, authorizeRoles([SUPERUSER]), userValidator.migrationsValidator, - users.migrations + users.migrations, ); module.exports = router; diff --git a/scripts/validateSetup.js b/scripts/validateSetup.js index b0751ab51..f54688045 100644 --- a/scripts/validateSetup.js +++ b/scripts/validateSetup.js @@ -16,7 +16,7 @@ try { console.info("✅ Firestore config is correct."); } catch (error) { throw new Error( - "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️" + "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️", ); } diff --git a/services/EventAPIService.js b/services/EventAPIService.js index e5671cf96..8b5af91a5 100644 --- a/services/EventAPIService.js +++ b/services/EventAPIService.js @@ -34,7 +34,7 @@ class EventAPIService { }; return config; }, - (error) => Promise.reject(error) + (error) => Promise.reject(error), ); this.#axiosInstance.interceptors.response.use( (response) => { @@ -48,7 +48,7 @@ class EventAPIService { originalRequest._retry = true; } return Promise.reject(error); - } + }, ); } diff --git a/services/cloudflareService.js b/services/cloudflareService.js index 39dcac554..a41d5a5d9 100644 --- a/services/cloudflareService.js +++ b/services/cloudflareService.js @@ -10,7 +10,7 @@ async function purgeCache(files) { { "X-Auth-Key": config.get("cloudflare.CLOUDFLARE_X_AUTH_KEY"), "X-Auth-Email": config.get("cloudflare.CLOUDFLARE_X_AUTH_EMAIL"), - } + }, ); return response; diff --git a/services/githubService.js b/services/githubService.js index e164da462..31e1a3de8 100644 --- a/services/githubService.js +++ b/services/githubService.js @@ -35,7 +35,7 @@ const extractPRdetails = (data) => { labels: allLabels, assignees: allAssignees, }); - } + }, ); return allPRs; }; @@ -147,7 +147,7 @@ const fetchOpenPRs = async (params = {}) => { ...resultOptions, per_page: perPage, page, - } + }, ); return getFetch(url); } catch (err) { @@ -171,7 +171,7 @@ const fetchMergedPRs = async (params = {}) => { ...resultOptions, per_page: perPage, page, - } + }, ); return getFetch(url); @@ -197,7 +197,7 @@ const fetchOpenIssues = async (params = {}) => { per_page: perPage, page, }, - searchString + searchString, ); return getFetch(url); } catch (err) { @@ -221,7 +221,7 @@ const fetchClosedIssues = async (params = {}) => { ...resultOptions, per_page: perPage, page, - } + }, ); return getFetch(url); } catch (err) { @@ -251,7 +251,7 @@ const fetchIssues = async () => { // TODO: replace with RDS org PAT Authorization: `Bearer `, org: config.get("githubApi.org"), - } + }, ); return res; } catch (err) { diff --git a/test/integration/badges.test.js b/test/integration/badges.test.js index 6404d34a7..0c0debbf7 100644 --- a/test/integration/badges.test.js +++ b/test/integration/badges.test.js @@ -109,7 +109,7 @@ describe("Badges", function () { } expect(response).to.have.status(400); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required` + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required`, ); expect(response.body.error).to.equal("Bad Request"); @@ -156,7 +156,7 @@ describe("Badges", function () { expect(response).to.have.status(400); expect(response.body.error).to.equal("Bad Request"); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required` + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required`, ); return done(); }); diff --git a/test/integration/contributions.test.js b/test/integration/contributions.test.js index e544c73ce..8522e7502 100644 --- a/test/integration/contributions.test.js +++ b/test/integration/contributions.test.js @@ -90,7 +90,7 @@ describe("Contributions", function () { "startedOn", "status", "title", - "id" + "id", ); expect(noteworthyObj.prList[0]).to.have.all.keys( "title", @@ -98,7 +98,7 @@ describe("Contributions", function () { "url", "createdAt", "updatedAt", - "raisedBy" + "raisedBy", ); const [noteworthyObj2] = res.body.all; expect(noteworthyObj2).to.contain.keys("task", "prList"); diff --git a/test/integration/discordactions.test.js b/test/integration/discordactions.test.js index 8d64574fb..b48ab1ced 100644 --- a/test/integration/discordactions.test.js +++ b/test/integration/discordactions.test.js @@ -91,7 +91,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }) + }), ); chai .request(app) @@ -113,7 +113,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }) + }), ); chai .request(app) @@ -248,7 +248,7 @@ describe("Discord actions", function () { ], }, }, - { user: userData[0] } + { user: userData[0] }, ); const res = await chai @@ -268,7 +268,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }) + }), ); const roleId = groupData[4].roleid; const res = await chai @@ -287,7 +287,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }) + }), ); const roleId = groupData[4].roleid; @@ -302,7 +302,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role added successfully!"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}` + `Action initiator's username=>ankur and id=${userId}`, ); }); @@ -355,7 +355,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), - }) + }), ); chai .request(app) @@ -380,7 +380,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), - }) + }), ); const res = await chai .request(app) @@ -392,7 +392,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role deleted successfully"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}` + `Action initiator's username=>ankur and id=${userId}`, ); }); @@ -463,7 +463,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordUsers), - }) + }), ); chai .request(app) @@ -526,7 +526,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(response), - }) + }), ); chai @@ -636,7 +636,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); }); @@ -708,7 +708,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getOnboarding31DPlusMembers), - }) + }), ); }); @@ -829,7 +829,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "xyz" } }), - }) + }), ); productManagerUserId = await addUser(productManagerUser); @@ -849,7 +849,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "zlmfasd" } }), - }) + }), ); designerUserId = await addUser(designerUser); @@ -869,7 +869,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), - }) + }), ); mavenUserId = await addUser(mavenUser); @@ -889,7 +889,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), - }) + }), ); const res = await chai diff --git a/test/integration/extensionRequests.test.js b/test/integration/extensionRequests.test.js index 9a1915299..b4746300d 100644 --- a/test/integration/extensionRequests.test.js +++ b/test/integration/extensionRequests.test.js @@ -360,7 +360,7 @@ describe("Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task." + "Only assigned user and super user can create an extension request for this task.", ); return done(); }); @@ -924,7 +924,7 @@ describe("Extension Requests", function () { }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle + (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle, ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newTitle).to.equal(newTitle); @@ -944,7 +944,7 @@ describe("Extension Requests", function () { }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA + (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA, ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newEndsOn).to.equal(suETA); @@ -964,7 +964,8 @@ describe("Extension Requests", function () { }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason + (log) => + log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason, ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newReason).to.equal(newReason); diff --git a/test/integration/external-accounts.test.js b/test/integration/external-accounts.test.js index 158b6bac0..6cfefd89b 100644 --- a/test/integration/external-accounts.test.js +++ b/test/integration/external-accounts.test.js @@ -252,7 +252,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); chai .request(app) @@ -329,7 +329,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); const res = await chai @@ -356,7 +356,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); const res = await chai .request(app) @@ -382,7 +382,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); const res = await chai .request(app) @@ -408,7 +408,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); const res = await chai .request(app) diff --git a/test/integration/multilpleExtensionRequest.test.js b/test/integration/multilpleExtensionRequest.test.js index 75a08996e..8d2c189b5 100644 --- a/test/integration/multilpleExtensionRequest.test.js +++ b/test/integration/multilpleExtensionRequest.test.js @@ -132,7 +132,7 @@ describe("Multiple Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task." + "Only assigned user and super user can create an extension request for this task.", ); return done(); }); diff --git a/test/integration/progressesTasks.test.js b/test/integration/progressesTasks.test.js index 704c534db..d8d128d74 100644 --- a/test/integration/progressesTasks.test.js +++ b/test/integration/progressesTasks.test.js @@ -60,7 +60,7 @@ describe("Test Progress Updates API for Tasks", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }) + }), ); chai .request(app) diff --git a/test/integration/progressesUsers.test.js b/test/integration/progressesUsers.test.js index e70d5d317..e06d9a1d2 100644 --- a/test/integration/progressesUsers.test.js +++ b/test/integration/progressesUsers.test.js @@ -55,7 +55,7 @@ describe("Test Progress Updates API for Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }) + }), ); chai .request(app) diff --git a/test/integration/restricted.test.js b/test/integration/restricted.test.js index aa3b7e5df..81d62d0df 100644 --- a/test/integration/restricted.test.js +++ b/test/integration/restricted.test.js @@ -32,7 +32,7 @@ describe("checkRestrictedUser", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); }); diff --git a/test/integration/taskBasedStatusUpdate.test.js b/test/integration/taskBasedStatusUpdate.test.js index 86b353617..9105e4012 100644 --- a/test/integration/taskBasedStatusUpdate.test.js +++ b/test/integration/taskBasedStatusUpdate.test.js @@ -49,7 +49,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.IDLE); }); @@ -64,7 +64,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to IDLE." + "As the user is currently OOO, the future status has been updated to IDLE.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.IDLE); @@ -143,7 +143,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -158,7 +158,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE." + "As the user is currently OOO, the future status has been updated to ACTIVE.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -257,7 +257,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -269,7 +269,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE." + "As the user is currently OOO, the future status has been updated to ACTIVE.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -304,7 +304,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(500); expect(res.body.userStatus.error).to.equal("Internal Server Error"); expect(res.body.userStatus.message).to.equal( - "Please reach out to the administrator as your user status is not recognized as valid." + "Please reach out to the administrator as your user status is not recognized as valid.", ); }); @@ -315,7 +315,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(404); expect(res.body.userStatus.error).to.equal("Not Found"); expect(res.body.userStatus.message).to.equal( - "Something went wrong. Username funkeyMonkey123 could not be found." + "Something went wrong. Username funkeyMonkey123 could not be found.", ); }); }); @@ -394,7 +394,7 @@ describe("Task Based Status Updates", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered" + "idleUsersUnaltered", ); expect(response.usersCount).to.equal(12); expect(response.unprocessedUsers).to.equal(0); @@ -448,7 +448,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(500); const response = res.body; expect(response.message).to.be.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information." + "The server has encountered an unexpected error. Please contact the administrator for more information.", ); }); }); @@ -518,8 +518,8 @@ describe("Task Based Status Updates", function () { .stub(userStatusModelFunction, "getTaskBasedUsersStatus") .throws( new Error( - "The server has encountered an unexpected error. Please contact the administrator for more information." - ) + "The server has encountered an unexpected error. Please contact the administrator for more information.", + ), ); const response = await chai .request(app) @@ -527,7 +527,7 @@ describe("Task Based Status Updates", function () { .set("cookie", `${cookieName}=${superUserJwt}`); expect(response.status).to.equal(500); expect(response.body.message).to.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information." + "The server has encountered an unexpected error. Please contact the administrator for more information.", ); }); }); diff --git a/test/integration/tasks.test.js b/test/integration/tasks.test.js index ef3cee88f..1e9df7b53 100644 --- a/test/integration/tasks.test.js +++ b/test/integration/tasks.test.js @@ -210,7 +210,7 @@ describe("Tasks", function () { after(async function () { await tasks.updateTask( { ...taskData[1], createdAt: 1621717694, updatedAt: 1700775753, dependsOn: [], status: "IN_PROGRESS" }, - taskId2 + taskId2, ); }); @@ -507,7 +507,7 @@ describe("Tasks", function () { { status: "COMPLETED", }, - taskId2 + taskId2, ); const res = await chai.request(app).get(`/tasks?dev=true&status=DONE&userFeatureFlag=true`); @@ -1217,7 +1217,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from In progress until progress of task is not 100%." + "The status of task can not be changed from In progress until progress of task is not 100%.", ); }); @@ -1232,7 +1232,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed to In progress until progress of task is not 0%." + "The status of task can not be changed to In progress until progress of task is not 0%.", ); }); @@ -1247,7 +1247,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from Blocked until progress of task is not 100%." + "The status of task can not be changed from Blocked until progress of task is not 100%.", ); }); diff --git a/test/integration/userStatus.test.js b/test/integration/userStatus.test.js index 6c62e811c..b45868bc2 100644 --- a/test/integration/userStatus.test.js +++ b/test/integration/userStatus.test.js @@ -431,7 +431,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The value for the 'message' field is mandatory when State is OOO for more than three days.` + `The value for the 'message' field is mandatory when State is OOO for more than three days.`, ); return done(); }); @@ -452,7 +452,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'from' field must have a value that is either today or a date that follows today.` + `The 'from' field must have a value that is either today or a date that follows today.`, ); return done(); }); @@ -474,7 +474,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, ); return done(); }); diff --git a/test/integration/users.test.js b/test/integration/users.test.js index d613ff2f9..2109c5e73 100644 --- a/test/integration/users.test.js +++ b/test/integration/users.test.js @@ -72,7 +72,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); }); @@ -1757,7 +1757,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); chai .request(app) @@ -2100,7 +2100,7 @@ describe("Users", function () { expect(res.body.summary.totalUsers).to.be.equal(3); expect(res.body.summary.totalOperationsFailed).to.be.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false" + "Successfully updated users archived role to true if in_discord role is false", ); return done(); }); @@ -2175,7 +2175,7 @@ describe("Users", function () { expect(res.body.summary.updatedUserDetails.length).to.equal(3); expect(res.body.summary.failedUserDetails.length).to.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false" + "Successfully updated users archived role to true if in_discord role is false", ); return done(); }); @@ -2198,7 +2198,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(), - }) + }), ); chai .request(app) @@ -2259,7 +2259,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); }); @@ -2295,7 +2295,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordMembers), - }) + }), ); }); @@ -2318,7 +2318,7 @@ describe("Users", function () { expect(res).to.have.status(403); expect(res.body.message).to.equal( - "Developers can't update their profile data. Use profile service for updating." + "Developers can't update their profile data. Use profile service for updating.", ); return done(); @@ -2336,7 +2336,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordMembers), - }) + }), ); }); diff --git a/test/integration/usersFilter.test.js b/test/integration/usersFilter.test.js index 32e80f5c2..5b2d7cf2f 100644 --- a/test/integration/usersFilter.test.js +++ b/test/integration/usersFilter.test.js @@ -44,12 +44,12 @@ describe("Filter Users", function () { oooUser = await addUser(userData[0]); await updateUserStatus( oooUser, - generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health") + generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health"), ); idleUser = await addUser(userData[1]); await updateUserStatus( idleUser, - generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS") + generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS"), ); activeUser = await addUser(userData[8]); await updateUserStatus(activeUser, generateUserStatusData(userState.ACTIVE, updatedAtDate, updatedAtDate)); diff --git a/test/unit/middlewares/contentTypeCheck.test.js b/test/unit/middlewares/contentTypeCheck.test.js index fc87aff25..9f4feaedf 100644 --- a/test/unit/middlewares/contentTypeCheck.test.js +++ b/test/unit/middlewares/contentTypeCheck.test.js @@ -26,7 +26,7 @@ describe("contentTypeCheck", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }) + }), ); }); diff --git a/test/unit/models/discordactions.test.js b/test/unit/models/discordactions.test.js index f8d903872..b95ce28b0 100644 --- a/test/unit/models/discordactions.test.js +++ b/test/unit/models/discordactions.test.js @@ -301,7 +301,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }) + }), ); const result = await updateDiscordImageForVerification(userDiscordId); @@ -314,7 +314,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }) + }), ); try { @@ -332,7 +332,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }) + }), ); sinon.stub(logger, "error"); @@ -529,7 +529,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(fetchStubResponse), - }) + }), ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -555,7 +555,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(fetchStubResponse), - }) + }), ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -577,7 +577,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(fetchStubResponse), - }) + }), ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; diff --git a/test/unit/models/recruiters.test.js b/test/unit/models/recruiters.test.js index e08e1ca8e..ef5856e65 100644 --- a/test/unit/models/recruiters.test.js +++ b/test/unit/models/recruiters.test.js @@ -31,7 +31,7 @@ describe("Recruiters", function () { // Add recruiter data const { recruiterId, recruiterName, userInfo, timestamp } = await recruiters.addRecruiterInfo( recruiterData, - username + username, ); const data = (await recruiterModel.doc(recruiterId).get()).data(); diff --git a/test/unit/models/task-requests.test.js b/test/unit/models/task-requests.test.js index 092ff67fe..74934f61e 100644 --- a/test/unit/models/task-requests.test.js +++ b/test/unit/models/task-requests.test.js @@ -393,7 +393,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.equal( approvedTask.data().updatedAt, - "When new task is created createdAt and updatedAt both are same" + "When new task is created createdAt and updatedAt both are same", ); expect(approvedTask.data().percentCompleted).to.equal(0); expect(approvedTask.data().priority).to.equal(DEFAULT_TASK_PRIORITY); @@ -416,7 +416,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.not.equal( approvedTask.data().updatedAt, - "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same" + "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same", ); }); @@ -526,10 +526,10 @@ describe("Task requests | models", function () { const taskRequestData2 = (await taskRequestsCollection.doc(taskRequestId2).get()).data(); expect(taskRequestData2.taskTitle).to.be.equal(taskData.taskData.title); expect(taskRequestData2.users[0].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[0] + mockData.existingOldTaskRequestWithMultipleUsers.requestors[0], ); expect(taskRequestData2.users[1].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[1] + mockData.existingOldTaskRequestWithMultipleUsers.requestors[1], ); expect(taskRequestData2.requestType).to.be.equal(TASK_REQUEST_TYPE.ASSIGNMENT); }); diff --git a/test/unit/models/taskBasedStatusUpdate.test.js b/test/unit/models/taskBasedStatusUpdate.test.js index df149aa26..92e85b05c 100644 --- a/test/unit/models/taskBasedStatusUpdate.test.js +++ b/test/unit/models/taskBasedStatusUpdate.test.js @@ -56,7 +56,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", ); expect(res.data.currentStatus).to.equal(userState.IDLE); }); @@ -103,7 +103,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -156,7 +156,7 @@ describe("Update Status based on task update", function () { const res = await updateUserStatusOnNewTaskAssignment(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -204,7 +204,7 @@ describe("Update Status based on task update", function () { await updateUserStatusOnNewTaskAssignment(userId).catch((err) => { expect(err).to.be.an.instanceOf(Error); expect(err.message).to.be.equal( - "Please reach out to the administrator as your user status is not recognized as valid." + "Please reach out to the administrator as your user status is not recognized as valid.", ); }); }); @@ -298,7 +298,7 @@ describe("Update Status based on task update", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered" + "idleUsersUnaltered", ); expect(result.usersCount).to.equal(12); expect(result.unprocessedUsers).to.equal(0); diff --git a/test/unit/services/discordMembersService.test.js b/test/unit/services/discordMembersService.test.js index e2fa596fd..e7d4c9c76 100644 --- a/test/unit/services/discordMembersService.test.js +++ b/test/unit/services/discordMembersService.test.js @@ -29,7 +29,7 @@ describe("getDiscordMemberDetails", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(expectedMemberDetails), - }) + }), ); const response = await getDiscordMemberDetails(discordId); @@ -44,7 +44,7 @@ describe("getDiscordMemberDetails", function () { Promise.resolve({ status: 404, json: () => Promise.resolve({ message: "User does not exist" }), - }) + }), ); try { diff --git a/test/unit/services/discordService.test.js b/test/unit/services/discordService.test.js index 69887c58b..4f507ab05 100644 --- a/test/unit/services/discordService.test.js +++ b/test/unit/services/discordService.test.js @@ -47,7 +47,7 @@ describe("Discord services", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ message: "done" }), - }) + }), ); const response = await addRoleToUser("123456789", "987654321"); @@ -70,7 +70,7 @@ describe("Discord services", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordMembersArray.getDiscordMembers), - }) + }), ); const response = await getDiscordMembers(); @@ -105,7 +105,7 @@ describe("Discord services", function () { message: "Role Removed Successfully", userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, }), - }) + }), ); const response = await removeRoleFromUser("112233445566778899", "987654321123456789"); expect(response).to.deep.equal({ @@ -142,7 +142,7 @@ describe("Discord services", function () { userEffected: "Kotesh", message: "User nickname changed successfully", }), - }) + }), ); const response = await setUserDiscordNickname("Kotesh", "aMYlI7sxQ4JMPwiqLQlp"); diff --git a/test/unit/services/githubService.test.js b/test/unit/services/githubService.test.js index 60e27ded2..d3f9d090d 100644 --- a/test/unit/services/githubService.test.js +++ b/test/unit/services/githubService.test.js @@ -23,7 +23,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open PRs", async function () { const response = await githubService.fetchOpenPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1", ); }); }); @@ -40,7 +40,7 @@ describe("githubService", function () { }; const response = await githubService.fetchOpenPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1", ); }); }); @@ -50,7 +50,7 @@ describe("githubService", function () { await addUser(); const response = await githubService.fetchPRsByUser(githubUserInfo[0].username); expect(response).to.be.equal( - `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr` + `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr`, ); }); }); @@ -59,7 +59,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch merged Prs", async function () { const response = await githubService.fetchMergedPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1", ); }); }); @@ -76,7 +76,7 @@ describe("githubService", function () { }; const response = await githubService.fetchMergedPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1", ); }); }); @@ -85,7 +85,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues", async function () { const response = await githubService.fetchOpenIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1", ); }); }); @@ -102,7 +102,7 @@ describe("githubService", function () { }; const response = await githubService.fetchOpenIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1", ); }); }); @@ -111,7 +111,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch closed issues", async function () { const response = await githubService.fetchClosedIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1", ); }); }); @@ -128,7 +128,7 @@ describe("githubService", function () { }; const response = await githubService.fetchClosedIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1", ); }); }); diff --git a/test/unit/utils/sendTaskUpdate.test.js b/test/unit/utils/sendTaskUpdate.test.js index c8f9fcc6a..7dde895b9 100644 --- a/test/unit/utils/sendTaskUpdate.test.js +++ b/test/unit/utils/sendTaskUpdate.test.js @@ -23,7 +23,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "Task title" + "Task title", ); expect(result).to.equal(undefined); }); @@ -38,7 +38,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "task title" + "task title", ); } catch (err) { expect(err).to.be.equal(error); diff --git a/test/unit/utils/tasks.test.js b/test/unit/utils/tasks.test.js index 942e5b340..884663800 100644 --- a/test/unit/utils/tasks.test.js +++ b/test/unit/utils/tasks.test.js @@ -7,7 +7,7 @@ describe("Utils | Tasks", function () { describe("transformTasksUsersQuery", function () { it("should correctly transform given queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4` + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4`, ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); @@ -21,7 +21,7 @@ describe("Utils | Tasks", function () { it("should correctly transform multiple queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4` + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4`, ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); diff --git a/test/unit/utils/users.test.js b/test/unit/utils/users.test.js index d2e2198a7..515a6c20d 100644 --- a/test/unit/utils/users.test.js +++ b/test/unit/utils/users.test.js @@ -187,7 +187,7 @@ describe("users", function () { .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) .join("-") - .substring(0, usernameLen)} ${oooMessage}` + .substring(0, usernameLen)} ${oooMessage}`, ); }); @@ -208,7 +208,7 @@ describe("users", function () { username .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) - .join("-") + .join("-"), ); }); }); @@ -233,7 +233,7 @@ describe("users", function () { status: 200, ok: true, json: () => Promise.resolve(response), - }) + }), ); const status = { diff --git a/utils/logs.js b/utils/logs.js index 94d5a10b0..cadfb6f6a 100644 --- a/utils/logs.js +++ b/utils/logs.js @@ -27,7 +27,7 @@ async function getTasksFromLogs(allLogs) { .where( admin.firestore.FieldPath.documentId(), "in", - Array.from(taskIds).filter((e) => e) + Array.from(taskIds).filter((e) => e), ) .get(); data.forEach((doc) => { From e95bdf195028181935b62c1c3624141e265577b0 Mon Sep 17 00:00:00 2001 From: abhay Date: Mon, 17 Jun 2024 23:25:01 +0530 Subject: [PATCH 07/17] fix:remove the ~ and the ^ from the package.json --- package.json | 82 +++---- yarn.lock | 680 +++++++++++++++++++++++++++++---------------------- 2 files changed, 435 insertions(+), 327 deletions(-) diff --git a/package.json b/package.json index a1a439687..47a3e94cd 100644 --- a/package.json +++ b/package.json @@ -16,41 +16,41 @@ "tdd:watch": "sh scripts/tests/tdd.sh" }, "dependencies": { - "axios": "^1.7.2", - "cloudinary": "^2.0.3", + "axios": "1.7.2", + "cloudinary": "2.0.3", "config": "3.3.7", - "cookie-parser": "~1.4.6", - "cors": "^2.8.5", - "datauri": "^4.1.0", - "debug": "^4.3.5", - "express": "~4.18.3", - "express-boom": "^3.0.0", - "firebase-admin": "^12.1.1", - "helmet": "^7.1.0", - "http-errors": "~2.0.0", - "joi": "^17.13.1", - "jsdoc": "^4.0.3", + "cookie-parser": "1.4.6", + "cors": "2.8.5", + "datauri": "4.1.0", + "debug": "4.3.5", + "express": "4.18.3", + "express-boom": "3.0.0", + "firebase-admin": "12.1.1", + "helmet": "7.1.0", + "http-errors": "2.0.0", + "joi": "17.13.1", + "jsdoc": "4.0.3", "jsonwebtoken": "^8.5.1", - "morgan": "~1.10.0", - "multer": "^1.4.5-lts.1", - "newrelic": "^11.19.0", - "passport": "^0.7.0", - "passport-github2": "^0.1.12", - "rate-limiter-flexible": "^5.0.3", - "winston": "^3.13.0" + "morgan": "1.10.0", + "multer": "1.4.5-lts.1", + "newrelic": "11.19.0", + "passport": "0.7.0", + "passport-github2": "0.1.12", + "rate-limiter-flexible": "5.0.3", + "winston": "3.13.0" }, "devDependencies": { - "@types/chai": "^4.3.16", - "@types/config": "^3.3.4", - "@types/express": "^4.17.21", - "@types/jest": "^29.5.12", - "@types/mocha": "^10.0.6", - "@types/node": "^20.11.24", - "@types/sinon": "^17.0.3", + "@types/chai": "4.3.16", + "@types/config": "3.3.4", + "@types/express": "4.17.21", + "@types/jest": "29.5.12", + "@types/mocha": "10.0.6", + "@types/node": "20.11.24", + "@types/sinon": "17.0.3", "@typescript-eslint/parser": "^7.1.1", - "chai": "^4.4.1", - "chai-http": "^4.4.0", - "cross-env": "^7.0.3", + "chai": "4.4.1", + "chai-http": "4.4.0", + "cross-env": "7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^16.0.3", @@ -61,17 +61,17 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", "eslint-plugin-standard": "^4.1.0", - "firebase-tools": "^13.4.0", - "mocha": "^10.3.0", - "nock": "~13.2.9", - "nodemon": "^3.1.3", - "nyc": "^15.1.0", - "pre-commit": "^1.2.2", - "prettier": "^3.3.2", - "sinon": "^18.0.0", - "ts-node": "^10.9.2", - "ts-node-dev": "^2.0.0", - "typescript": "~5.3.3" + "firebase-tools": "13.4.0", + "mocha": "10.3.0", + "nock": "13.2.9", + "nodemon": "3.1.3", + "nyc": "15.1.0", + "pre-commit": "1.2.2", + "prettier": "3.3.2", + "sinon": "18.0.0", + "ts-node": "10.9.2", + "ts-node-dev": "2.0.0", + "typescript": "5.3.3" }, "engines": { "node": "20.x" diff --git a/yarn.lock b/yarn.lock index ceed28b00..1372403a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -344,16 +344,6 @@ dependencies: tslib "^2.1.0" -"@google-cloud/cloud-sql-connector@^1.2.3": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@google-cloud/cloud-sql-connector/-/cloud-sql-connector-1.3.1.tgz#0a6d050e1dd4f43c5a39f57e742cf70235f21174" - integrity sha512-lF52gnTeO3bf1Yt0DGkCJ8j/+Q9w9bK4Oa99hE6irR1k8WFYOMhwpg+rcMlYL8B1T2niUEFbS+u2gqwX+Krv/w== - dependencies: - "@googleapis/sqladmin" "^18.0.0" - gaxios "^6.1.1" - google-auth-library "^9.2.0" - p-throttle "^5.1.0" - "@google-cloud/firestore@^7.7.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-7.8.0.tgz#029bed6c47de84c667a27256acbaca6f6ee50e15" @@ -364,6 +354,14 @@ google-gax "^4.3.3" protobufjs "^7.2.6" +"@google-cloud/paginator@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-4.0.1.tgz#5fb8793d4f84d18c50a6f2fad3dadab8d2c533ef" + integrity sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ== + dependencies: + arrify "^2.0.0" + extend "^3.0.2" + "@google-cloud/paginator@^5.0.0": version "5.0.2" resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.2.tgz#86ad773266ce9f3b82955a8f75e22cd012ccc889" @@ -372,36 +370,48 @@ arrify "^2.0.0" extend "^3.0.2" -"@google-cloud/precise-date@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-4.0.0.tgz#e179893a3ad628b17a6fabdfcc9d468753aac11a" - integrity sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA== +"@google-cloud/precise-date@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-3.0.1.tgz#1e6659a14af662442037b8f4d20dbc82bf1a78bd" + integrity sha512-crK2rgNFfvLoSgcKJY7ZBOLW91IimVNmPfi1CL+kMTf78pTJYd29XqEVedAeBu4DwCJc0EDIp1MpctLgoPq+Uw== + +"@google-cloud/projectify@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-3.0.0.tgz#302b25f55f674854dce65c2532d98919b118a408" + integrity sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA== "@google-cloud/projectify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== +"@google-cloud/promisify@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" + integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== + "@google-cloud/promisify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== -"@google-cloud/pubsub@^4.4.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-4.5.0.tgz#0c163038f4f00d40df1c21bfe1c1db87011a997e" - integrity sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA== - dependencies: - "@google-cloud/paginator" "^5.0.0" - "@google-cloud/precise-date" "^4.0.0" - "@google-cloud/projectify" "^4.0.0" - "@google-cloud/promisify" "^4.0.0" - "@opentelemetry/api" "~1.8.0" - "@opentelemetry/semantic-conventions" "~1.21.0" +"@google-cloud/pubsub@^3.0.1": + version "3.7.5" + resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-3.7.5.tgz#3fed656b7e7ea3a4618d5590004f08321a1389b9" + integrity sha512-4Qrry4vIToth5mqduVslltWVsyb7DR8OhnkBA3F7XiE0jgQsiuUfwp/RB2F559aXnRbwcfmjvP4jSuEaGcjrCQ== + dependencies: + "@google-cloud/paginator" "^4.0.0" + "@google-cloud/precise-date" "^3.0.0" + "@google-cloud/projectify" "^3.0.0" + "@google-cloud/promisify" "^2.0.0" + "@opentelemetry/api" "^1.6.0" + "@opentelemetry/semantic-conventions" "~1.3.0" + "@types/duplexify" "^3.6.0" + "@types/long" "^4.0.0" arrify "^2.0.0" extend "^3.0.2" - google-auth-library "^9.3.0" - google-gax "^4.3.3" + google-auth-library "^8.0.2" + google-gax "^3.6.1" heap-js "^2.2.0" is-stream-ended "^0.1.4" lodash.snakecase "^4.1.1" @@ -428,13 +438,6 @@ teeny-request "^9.0.0" uuid "^8.0.0" -"@googleapis/sqladmin@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@googleapis/sqladmin/-/sqladmin-18.0.0.tgz#290a41c05d750130493e08e3b7f0b6f2fd478aab" - integrity sha512-OhGKZzcFVVXPedf4WMecTmLQ7jfRyNte6NZ+unwO3PtDgw1WyTpbR9DMGMRDpOONeSpsdu0vDn8OrKokHCQpaw== - dependencies: - googleapis-common "^7.0.0" - "@grpc/grpc-js@^1.9.4", "@grpc/grpc-js@~1.10.3": version "1.10.9" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c" @@ -443,7 +446,15 @@ "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": +"@grpc/grpc-js@~1.8.0": + version "1.8.22" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.22.tgz#847930c9af46e14df05b57fc12325db140ceff1d" + integrity sha512-oAjDdN7fzbUi+4hZjKG96MR6KTEubAeMpQEb+77qy+3r0Ua5xTFuie6JOLr4ZZgl5g+W5/uRTS2M1V8mVAFPuA== + dependencies: + "@grpc/proto-loader" "^0.7.0" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": version "0.7.13" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== @@ -681,15 +692,15 @@ dependencies: semver "^7.3.5" -"@opentelemetry/api@~1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" - integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== +"@opentelemetry/api@^1.6.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== -"@opentelemetry/semantic-conventions@~1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz#83f7479c524ab523ac2df702ade30b9724476c72" - integrity sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g== +"@opentelemetry/semantic-conventions@~1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz#ba07b864a3c955f061aa30ea3ef7f4ae4449794a" + integrity sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA== "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -880,7 +891,7 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== -"@types/chai@4", "@types/chai@^4.3.16": +"@types/chai@4", "@types/chai@4.3.16": version "4.3.16" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== @@ -892,7 +903,7 @@ dependencies: "@types/node" "*" -"@types/config@^3.3.4": +"@types/config@3.3.4": version "3.3.4" resolved "https://registry.yarnpkg.com/@types/config/-/config-3.3.4.tgz#e46d1ee74f9b0c53645f644dd5f3ba5bedc68d76" integrity sha512-qFiTLnWy+TdPSMIXFHP+87lFXFRM4SXjRS+CSB66+56TrpLNw003y1sh7DGaaC1NGesxgKoT5FDy6dyA1Xju/g== @@ -909,6 +920,13 @@ resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== +"@types/duplexify@^3.6.0": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@types/duplexify/-/duplexify-3.6.4.tgz#aa7e916c33fcc05be8769546fd0441d9b368613e" + integrity sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg== + dependencies: + "@types/node" "*" + "@types/express-serve-static-core@^4.17.33": version "4.19.3" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" @@ -919,7 +937,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@^4.17.17", "@types/express@^4.17.21": +"@types/express@4.17.21", "@types/express@^4.17.17": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -936,6 +954,14 @@ dependencies: "@types/node" "*" +"@types/glob@*": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== + dependencies: + "@types/minimatch" "^5.1.2" + "@types/node" "*" + "@types/http-errors@*": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" @@ -960,7 +986,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.12": +"@types/jest@29.5.12": version "29.5.12" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== @@ -1013,18 +1039,30 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/mocha@^10.0.6": +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mocha@10.0.6": version "10.0.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== -"@types/node@*", "@types/node@>=13.7.0", "@types/node@^20.10.3", "@types/node@^20.11.24": +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.10.3": version "20.14.2" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== dependencies: undici-types "~5.26.4" +"@types/node@20.11.24": + version "20.11.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" + integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== + dependencies: + undici-types "~5.26.4" + "@types/node@^10.0.3": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -1055,6 +1093,14 @@ "@types/tough-cookie" "*" form-data "^2.5.0" +"@types/rimraf@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" + integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + "@types/send@*": version "0.17.4" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" @@ -1072,7 +1118,7 @@ "@types/node" "*" "@types/send" "*" -"@types/sinon@^17.0.3": +"@types/sinon@17.0.3": version "17.0.3" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== @@ -1570,7 +1616,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.6.8, axios@^1.7.2: +axios@1.7.2, axios@^1.6.8: version "1.7.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== @@ -1835,7 +1881,7 @@ catharsis@^0.9.0: dependencies: lodash "^4.17.15" -chai-http@^4.4.0: +chai-http@4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/chai-http/-/chai-http-4.4.0.tgz#bb8c346caa25b3c76118c68f7a7cecc0493669b8" integrity sha512-uswN3rZpawlRaa5NiDUHcDZ3v2dw5QgLyAwnQ2tnVNuP7CwIsOFuYJ0xR1WiR7ymD4roBnJIzOUep7w9jQMFJA== @@ -1849,7 +1895,7 @@ chai-http@^4.4.0: qs "^6.11.2" superagent "^8.0.9" -chai@^4.4.1: +chai@4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== @@ -2043,10 +2089,10 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cloudinary@^2.0.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.2.0.tgz#9736a7421b5552c43603950fa41d9997c869d0b5" - integrity sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q== +cloudinary@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.0.3.tgz#10a0b0239120aec26655fe91fef67ce68ae0fcc9" + integrity sha512-2JPxAUuV4iHwiW4ATSOZvii6+BhhKI9+9KscgUkxJPKa6V6wOnZJHlYyovBGrrIbIgEdmGSZgqEsLfD0wWBhBg== dependencies: lodash "^4.17.21" q "^1.5.1" @@ -2121,11 +2167,6 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^2.19.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -2255,7 +2296,7 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-parser@~1.4.6: +cookie-parser@1.4.6: version "1.4.6" resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== @@ -2293,7 +2334,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@^2.8.5: +cors@2.8.5, cors@^2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -2319,6 +2360,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + cross-env@^5.1.3: version "5.2.1" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" @@ -2326,13 +2374,6 @@ cross-env@^5.1.3: dependencies: cross-spawn "^6.0.5" -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2404,7 +2445,7 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -datauri@^4.1.0: +datauri@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/datauri/-/datauri-4.1.0.tgz#19e6e4fadc38ff8cea724d8ff59dcaad832520e4" integrity sha512-y17kh32+I82G+ED9MNWFkZiP/Cq/vO1hN9+tSZsT9C9qn3NrvcBnh7crSepg0AQPge1hXx2Ca44s1FRdv0gFWA== @@ -2424,7 +2465,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: +debug@4, debug@4.3.5, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.5" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== @@ -2494,7 +2535,7 @@ deep-freeze@0.0.1: resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== -deep-is@^0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -2595,11 +2636,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2840,6 +2876,18 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escodegen@^1.13.0: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -3035,7 +3083,7 @@ eslint@^8.57.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: +espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -3063,6 +3111,11 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -3139,24 +3192,24 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -express-boom@^3.0.0: +express-boom@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/express-boom/-/express-boom-3.0.0.tgz#d8146f1eea1bf6611f622141c6689ca6defa09f0" integrity sha512-/esN6Am8YE1rzRsi+vBpJkdr8O+GX+oBjRE/hEuBu6Y3uyS9y026XptRZduAMYS8KxyLzXM5Qh+RlnqLOR1pVQ== dependencies: boom "^7.3.x" -express@^4.16.4: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== +express@4.18.3: + version "4.18.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" + integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.6.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3183,17 +3236,17 @@ express@^4.16.4: utils-merge "1.0.1" vary "~1.1.2" -express@~4.18.3: - version "4.18.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" - integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== +express@^4.16.4: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3275,7 +3328,7 @@ 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 sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -3285,6 +3338,11 @@ fast-safe-stringify@^2.1.1: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" + integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== + fast-url-parser@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" @@ -3400,7 +3458,7 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -firebase-admin@^12.1.1: +firebase-admin@12.1.1: version "12.1.1" resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-12.1.1.tgz#bdc690189e42663e36cfac5ab1e2d502e856ab9b" integrity sha512-Nuoxk//gaYrspS7TvwBINdGvFhh2QeiaWpRW6+PJ+tWyn2/CugBc7jKa1NaBg0AvhGSOXFOCIsXhzCzHA47Rew== @@ -3419,13 +3477,12 @@ firebase-admin@^12.1.1: "@google-cloud/firestore" "^7.7.0" "@google-cloud/storage" "^7.7.0" -firebase-tools@^13.4.0: - version "13.11.2" - resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.11.2.tgz#9e22b643836676d2c198da31c2814e8b1e871506" - integrity sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA== +firebase-tools@13.4.0: + version "13.4.0" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.4.0.tgz#1e17637a6189c6c9a05dabaf31504ba20a4d4411" + integrity sha512-yoxET4Xifezr+SopwFgkpMIRGmp11aTTE67tFcfJoTOZDveBbY16dfo6so2xiuqBXQ7DNxsZIQ+d3JEm2Jn40A== dependencies: - "@google-cloud/cloud-sql-connector" "^1.2.3" - "@google-cloud/pubsub" "^4.4.0" + "@google-cloud/pubsub" "^3.0.1" abort-controller "^3.0.0" ajv "^6.12.6" archiver "^5.0.0" @@ -3449,11 +3506,11 @@ firebase-tools@^13.4.0: form-data "^4.0.0" fs-extra "^10.1.0" fuzzy "^0.1.3" - gaxios "^6.1.1" glob "^7.1.2" - google-auth-library "^9.7.0" + google-auth-library "^7.11.0" inquirer "^8.2.6" inquirer-autocomplete-prompt "^2.0.1" + js-yaml "^3.13.1" jsonwebtoken "^9.0.0" leven "^3.1.0" libsodium-wrappers "^0.7.10" @@ -3467,14 +3524,12 @@ firebase-tools@^13.4.0: open "^6.3.0" ora "^5.4.1" p-limit "^3.0.1" - pg "^8.11.3" portfinder "^1.0.32" progress "^2.0.3" proxy-agent "^6.3.0" retry "^0.13.1" rimraf "^3.0.0" semver "^7.5.2" - sql-formatter "^15.3.0" stream-chain "^2.2.4" stream-json "^1.7.3" strip-ansi "^6.0.1" @@ -3489,7 +3544,6 @@ firebase-tools@^13.4.0: winston "^3.0.0" winston-transport "^4.4.0" ws "^7.2.3" - yaml "^2.4.1" flat-cache@^3.0.4: version "3.2.0" @@ -3672,7 +3726,28 @@ fuzzy@^0.1.3: resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== -gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.0.3, gaxios@^6.1.1: +gaxios@^4.0.0: + version "4.3.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" + integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== + dependencies: + abort-controller "^3.0.0" + extend "^3.0.2" + https-proxy-agent "^5.0.0" + is-stream "^2.0.0" + node-fetch "^2.6.7" + +gaxios@^5.0.0, gaxios@^5.0.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" + integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA== + dependencies: + extend "^3.0.2" + https-proxy-agent "^5.0.0" + is-stream "^2.0.0" + node-fetch "^2.6.9" + +gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: version "6.6.0" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4" integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ== @@ -3683,6 +3758,22 @@ gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.0.3, gaxios@^6.1.1: node-fetch "^2.6.9" uuid "^9.0.1" +gcp-metadata@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" + integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== + dependencies: + gaxios "^4.0.0" + json-bigint "^1.0.0" + +gcp-metadata@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" + integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w== + dependencies: + gaxios "^5.0.0" + json-bigint "^1.0.0" + gcp-metadata@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" @@ -3727,11 +3818,6 @@ get-port@^3.1.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== -get-stdin@=8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" - integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== - get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" @@ -3784,7 +3870,7 @@ glob-slasher@^1.0.1: lodash.isobject "^2.4.1" toxic "^1.0.0" -glob@8.1.0: +glob@8.1.0, glob@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -3857,7 +3943,37 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.6.3, google-auth-library@^9.7.0: +google-auth-library@^7.11.0: + version "7.14.1" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" + integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== + dependencies: + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^4.0.0" + gcp-metadata "^4.2.0" + gtoken "^5.0.4" + jws "^4.0.0" + lru-cache "^6.0.0" + +google-auth-library@^8.0.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0" + integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg== + dependencies: + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^5.0.0" + gcp-metadata "^5.3.0" + gtoken "^6.1.0" + jws "^4.0.0" + lru-cache "^6.0.0" + +google-auth-library@^9.3.0, google-auth-library@^9.6.3: version "9.11.0" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.11.0.tgz#bd6da364bcde4e0cc4ed70a0e0df5112b6a671dd" integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== @@ -3869,6 +3985,27 @@ google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.6 gtoken "^7.0.0" jws "^4.0.0" +google-gax@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-3.6.1.tgz#02c78fc496f5adf86f2ca9145545f4b6575f6118" + integrity sha512-g/lcUjGcB6DSw2HxgEmCDOrI/CByOwqRvsuUvNalHUK2iPPPlmAIpbMbl62u0YufGMr8zgE3JL7th6dCb1Ry+w== + dependencies: + "@grpc/grpc-js" "~1.8.0" + "@grpc/proto-loader" "^0.7.0" + "@types/long" "^4.0.0" + "@types/rimraf" "^3.0.2" + abort-controller "^3.0.0" + duplexify "^4.0.0" + fast-text-encoding "^1.0.3" + google-auth-library "^8.0.2" + is-stream-ended "^0.1.4" + node-fetch "^2.6.1" + object-hash "^3.0.0" + proto3-json-serializer "^1.0.0" + protobufjs "7.2.4" + protobufjs-cli "1.1.1" + retry-request "^5.0.0" + google-gax@^4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.6.tgz#aed8cb1ffc8072615c7ec0cf557ade7343136413" @@ -3887,17 +4024,19 @@ google-gax@^4.3.3: retry-request "^7.0.0" uuid "^9.0.1" -googleapis-common@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42" - integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA== +google-p12-pem@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" + integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== dependencies: - extend "^3.0.2" - gaxios "^6.0.3" - google-auth-library "^9.7.0" - qs "^6.7.0" - url-template "^2.0.8" - uuid "^9.0.0" + node-forge "^1.3.1" + +google-p12-pem@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" + integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ== + dependencies: + node-forge "^1.3.1" gopd@^1.0.1: version "1.0.1" @@ -3921,6 +4060,24 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +gtoken@^5.0.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" + integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== + dependencies: + gaxios "^4.0.0" + google-p12-pem "^3.1.3" + jws "^4.0.0" + +gtoken@^6.1.0: + version "6.1.2" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc" + integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ== + dependencies: + gaxios "^5.0.1" + google-p12-pem "^4.0.0" + jws "^4.0.0" + gtoken@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26" @@ -4006,7 +4163,7 @@ heap-js@^2.2.0: resolved "https://registry.yarnpkg.com/heap-js/-/heap-js-2.5.0.tgz#487e268b1733b187ca04eccf52f8387be92b46cb" integrity sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ== -helmet@^7.1.0: +helmet@7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/helmet/-/helmet-7.1.0.tgz#287279e00f8a3763d5dccbaf1e5ee39b8c3784ca" integrity sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg== @@ -4046,7 +4203,7 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0, http-errors@~2.0.0: +http-errors@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -4671,7 +4828,7 @@ jju@^1.1.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== -joi@^17.13.1: +joi@17.13.1: version "17.13.1" resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca" integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg== @@ -4728,7 +4885,7 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsdoc@^4.0.3: +jsdoc@4.0.3, jsdoc@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.3.tgz#bfee86c6a82f6823e12b5e8be698fd99ae46c061" integrity sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw== @@ -4953,6 +5110,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + libsodium-wrappers@^0.7.10: version "0.7.13" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" @@ -5141,7 +5306,7 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" -lru-cache@6.0.0: +lru-cache@6.0.0, lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== @@ -5453,10 +5618,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^10.3.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" - integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== +mocha@10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -5484,12 +5649,7 @@ module-details-from-path@^1.0.3: resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== -moo@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" - integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== - -morgan@^1.10.0, morgan@^1.8.2, morgan@~1.10.0: +morgan@1.10.0, morgan@^1.10.0, morgan@^1.8.2: version "1.10.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== @@ -5515,7 +5675,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.5-lts.1: +multer@1.4.5-lts.1: version "1.4.5-lts.1" resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== @@ -5548,16 +5708,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -nearley@^2.20.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -5568,7 +5718,7 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -newrelic@^11.19.0: +newrelic@11.19.0: version "11.19.0" resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-11.19.0.tgz#9fd99fc8cc998335acb4f8c6992bdd01773bd528" integrity sha512-u1dQYf2wERMcU5il6goqD8Af3o83eGSWJkbKtLZQOYkpTP3EhcxVEM9gCIWnfkK5sw4KBnJOG/UxmtRR00JX5g== @@ -5608,7 +5758,7 @@ nise@^6.0.0: just-extend "^6.2.0" path-to-regexp "^6.2.1" -nock@~13.2.9: +nock@13.2.9: version "13.2.9" resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.9.tgz#4faf6c28175d36044da4cfa68e33e5a15086ad4c" integrity sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA== @@ -5682,7 +5832,7 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -nodemon@^3.1.3: +nodemon@3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.3.tgz#dcce9ee0aa7d19cd4dcd576ae9a0456d9078b286" integrity sha512-m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w== @@ -5717,7 +5867,7 @@ npm-run-path@^3.1.0: dependencies: path-key "^3.0.0" -nyc@^15.1.0: +nyc@15.1.0: version "15.1.0" resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== @@ -5867,6 +6017,18 @@ openapi3-ts@^3.1.1: dependencies: yaml "^2.2.1" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -5951,11 +6113,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-throttle@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-throttle/-/p-throttle-5.1.0.tgz#7daf27412a86f34154ff1c462ba33e91a8d7afe6" - integrity sha512-+N+s2g01w1Zch4D0K3OpnPDqLOKmLcQ4BvIFq3JC0K29R28vUOjWpO+OJZBNt8X9i3pFCksZJZ0YXkUGjaFE6g== - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6010,7 +6167,7 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -passport-github2@^0.1.12: +passport-github2@0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/passport-github2/-/passport-github2-0.1.12.tgz#a72ebff4fa52a35bc2c71122dcf470d1116f772c" integrity sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw== @@ -6033,7 +6190,7 @@ passport-strategy@1.x.x: resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== -passport@^0.7.0: +passport@0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/passport/-/passport-0.7.0.tgz#3688415a59a48cf8068417a8a8092d4492ca3a05" integrity sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ== @@ -6107,62 +6264,6 @@ pause@0.0.1: resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== -pg-cloudflare@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" - integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== - -pg-connection-string@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" - integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" - integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== - -pg-protocol@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" - integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@^8.11.3: - version "8.12.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" - integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== - dependencies: - pg-connection-string "^2.6.4" - pg-pool "^3.6.2" - pg-protocol "^1.6.1" - pg-types "^2.1.0" - pgpass "1.x" - optionalDependencies: - pg-cloudflare "^1.1.1" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" @@ -6194,29 +6295,7 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -pre-commit@^1.2.2: +pre-commit@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" integrity sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA== @@ -6260,6 +6339,11 @@ prelude-ls@^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" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -6267,7 +6351,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.3.2: +prettier@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== @@ -6343,6 +6427,13 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== +proto3-json-serializer@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-1.1.1.tgz#1b5703152b6ce811c5cdcc6468032caf53521331" + integrity sha512-AwAuY4g9nxx0u52DnSMkqqgyLHaW/XaPLtaAo3y/ZCfeaQB/g4YDH4kb8Wc/mWzWvu0YjOznVnfn373MVZZrgw== + dependencies: + protobufjs "^7.0.0" + proto3-json-serializer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz#5b705203b4d58f3880596c95fad64902617529dd" @@ -6350,6 +6441,40 @@ proto3-json-serializer@^2.0.0: dependencies: protobufjs "^7.2.5" +protobufjs-cli@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.1.tgz#f531201b1c8c7772066aa822bf9a08318b24a704" + integrity sha512-VPWMgIcRNyQwWUv8OLPyGQ/0lQY/QTQAVN5fh+XzfDwsVw1FZ2L3DM/bcBf8WPiRz2tNpaov9lPZfNcmNo6LXA== + dependencies: + chalk "^4.0.0" + escodegen "^1.13.0" + espree "^9.0.0" + estraverse "^5.1.0" + glob "^8.0.0" + jsdoc "^4.0.0" + minimist "^1.2.0" + semver "^7.1.2" + tmp "^0.2.1" + uglify-js "^3.7.7" + +protobufjs@7.2.4: + version "7.2.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae" + integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + protobufjs@7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c" @@ -6368,7 +6493,7 @@ protobufjs@7.3.0: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.2.5, protobufjs@^7.2.6: +protobufjs@^7.0.0, protobufjs@^7.2.5, protobufjs@^7.2.6: version "7.3.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== @@ -6465,7 +6590,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0, qs@^6.7.0: +qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0: version "6.12.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== @@ -6484,24 +6609,11 @@ queue@6.0.2: dependencies: inherits "~2.0.3" -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== - rambda@^7.4.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -6514,7 +6626,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^5.0.3: +rate-limiter-flexible@5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-5.0.3.tgz#bfbfd7585e09073ebe22d177126116862b1024ae" integrity sha512-lWx2y8NBVlTOLPyqs+6y7dxfEpT6YFqKy3MzWbCy95sTTOhOuxufP2QvRyOHpfXpB9OUJPbVLybw3z3AVAS5fA== @@ -6691,10 +6803,13 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry-request@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.2.tgz#143d85f90c755af407fcc46b7166a4ba520e44da" + integrity sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== + dependencies: + debug "^4.1.1" + extend "^3.0.2" retry-request@^7.0.0: version "7.0.2" @@ -6839,7 +6954,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: +semver@^7.0.0, semver@^7.1.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: version "7.6.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -6984,7 +7099,7 @@ simple-update-notifier@^2.0.0: dependencies: semver "^7.5.3" -sinon@^18.0.0: +sinon@18.0.0: version "18.0.0" resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.0.tgz#69ca293dbc3e82590a8b0d46c97f63ebc1e5fc01" integrity sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA== @@ -7063,11 +7178,6 @@ spawn-wrap@^2.0.0: signal-exit "^3.0.2" which "^2.0.1" -split2@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -7078,15 +7188,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sql-formatter@^15.3.0: - version "15.3.1" - resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.3.1.tgz#e988861d172827b856470a9baefa0135737227df" - integrity sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA== - dependencies: - argparse "^2.0.1" - get-stdin "=8.0.0" - nearley "^2.20.1" - ssri@^10.0.0: version "10.0.6" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" @@ -7517,7 +7618,7 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -ts-node-dev@^2.0.0: +ts-node-dev@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-2.0.0.tgz#bdd53e17ab3b5d822ef519928dc6b4a7e0f13065" integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== @@ -7533,7 +7634,7 @@ ts-node-dev@^2.0.0: ts-node "^10.4.0" tsconfig "^7.0.0" -ts-node@^10.4.0, ts-node@^10.9.2: +ts-node@10.9.2, ts-node@^10.4.0: version "10.9.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -7591,6 +7692,13 @@ type-check@^0.4.0, type-check@~0.4.0: 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" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -7675,7 +7783,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@~5.3.3: +typescript@5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -7685,6 +7793,11 @@ uc.micro@^2.0.0, uc.micro@^2.1.0: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== +uglify-js@^3.7.7: + version "3.18.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.18.0.tgz#73b576a7e8fda63d2831e293aeead73e0a270deb" + integrity sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A== + uid2@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" @@ -7815,11 +7928,6 @@ url-join@0.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" integrity sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw== -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7965,7 +8073,7 @@ winston-transport@^4.4.0, winston-transport@^4.5.0, winston-transport@^4.7.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@^3.0.0, winston@^3.13.0: +winston@3.13.0, winston@^3.0.0: version "3.13.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== @@ -7982,7 +8090,7 @@ winston@^3.0.0, winston@^3.13.0: triple-beam "^1.3.0" winston-transport "^4.7.0" -word-wrap@^1.2.5: +word-wrap@^1.2.5, word-wrap@~1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== @@ -8084,7 +8192,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1, yaml@^2.4.1: +yaml@^2.2.1: version "2.4.5" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== From c13c8fa5eaf6cb76c6d9e7e498b08e62a3d257c3 Mon Sep 17 00:00:00 2001 From: abhay Date: Tue, 18 Jun 2024 22:45:35 +0530 Subject: [PATCH 08/17] fix:eslint and prettier plugin packages and migration tests --- controllers/users.js | 17 +----- models/users.js | 61 --------------------- package.json | 2 +- routes/users.js | 9 +--- test/unit/models/users.test.js | 99 ---------------------------------- yarn.lock | 2 +- 6 files changed, 4 insertions(+), 186 deletions(-) diff --git a/controllers/users.js b/controllers/users.js index 4ea287d51..218808455 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -15,7 +15,7 @@ const { getPaginationLink, getUsernamesFromPRs, getRoleToUpdate } = require("../ const { setInDiscordFalseScript, setUserDiscordNickname } = require("../services/discordService"); const { generateDiscordProfileImageUrl } = require("../utils/discord-actions"); const { addRoleToUser, getDiscordMembers } = require("../services/discordService"); -const { fetchAllUsers, addGithubUserId } = require("../models/users"); +const { fetchAllUsers } = require("../models/users"); const { getOverdueTasks } = require("../models/tasks"); const { getQualifiers } = require("../utils/helper"); const { parseSearchQuery } = require("../utils/users"); @@ -918,20 +918,6 @@ async function usersPatchHandler(req, res) { return res.boom.badImplementation(INTERNAL_SERVER_ERROR); } } -const migrations = async (req, res) => { - const { page = 0, size } = req.query; - - try { - const result = await addGithubUserId(parseInt(page), parseInt(size)); - return res.status(200).json({ - message: "Result of migration", - data: result, - }); - } catch (error) { - logger.error(`Internal Server Error: ${error}`); - return res.boom.badImplementation(INTERNAL_SERVER_ERROR); - } -}; module.exports = { verifyUser, @@ -962,6 +948,5 @@ module.exports = { updateDiscordUserNickname, archiveUserIfNotInDiscord, usersPatchHandler, - migrations, isDeveloper, }; diff --git a/models/users.js b/models/users.js index 3a248b0a3..52fbde3d8 100644 --- a/models/users.js +++ b/models/users.js @@ -900,66 +900,6 @@ const getNonNickNameSyncedUsers = async () => { throw err; } }; -const addGithubUserId = async (page, size) => { - try { - const usersNotFound = []; - let countUserFound = 0; - let countUserNotFound = 0; - - const requestOptions = { - method: "GET", - headers: { - "Content-Type": "application/json", - Authorization: - "Basic " + btoa(`${config.get("githubOauth.clientId")}:${config.get("githubOauth.clientSecret")}`), - }, - }; - const usersSnapshot = await firestore - .collection("users") - .limit(size) - .offset(page * size) - .get(); - // Create batch write operations for each batch of documents - const batchWrite = firestore.batch(); - const batchWrites = []; - for (const userDoc of usersSnapshot.docs) { - if (userDoc.data().github_user_id) continue; - const githubUsername = userDoc.data().github_id; - const username = userDoc.data().username; - const userId = userDoc.id; - const getUserDetails = fetch(`https://api.github.com/users/${githubUsername}`, requestOptions) - .then((response) => { - if (!response.ok) { - throw new Error("Network response was not ok"); - } - return response.json(); - }) - .then((data) => { - const githubUserId = data.id; - batchWrite.update(userDoc.ref, { github_user_id: `${githubUserId}`, updated_at: Date.now() }); - countUserFound++; - }) - .catch((error) => { - countUserNotFound++; - const invalidUsers = { userId, username, githubUsername }; - usersNotFound.push(invalidUsers); - logger.error("An error occurred at fetch:", error); - }); - batchWrites.push(getUserDetails); - } - await Promise.all(batchWrites); - await batchWrite.commit(); - return { - totalUsers: usersSnapshot.docs.length, - usersUpdated: countUserFound, - usersNotUpdated: countUserNotFound, - invalidUsersDetails: usersNotFound, - }; - } catch (error) { - logger.error(`Error while Updating all users: ${error}`); - throw Error(error); - } -}; module.exports = { addOrUpdate, @@ -990,5 +930,4 @@ module.exports = { fetchUsersListForMultipleValues, fetchUserForKeyValue, getNonNickNameSyncedUsers, - addGithubUserId, }; diff --git a/package.json b/package.json index 47a3e94cd..0c38a3af9 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "nodemon": "3.1.3", "nyc": "15.1.0", "pre-commit": "1.2.2", - "prettier": "3.3.2", + "prettier": "^3.2.5", "sinon": "18.0.0", "ts-node": "10.9.2", "ts-node-dev": "2.0.0", diff --git a/routes/users.js b/routes/users.js index ea60f1fdd..39dcd6811 100644 --- a/routes/users.js +++ b/routes/users.js @@ -65,12 +65,5 @@ router.patch("/profileURL", authenticate, userValidator.updateProfileURL, users. router.patch("/rejectDiff", authenticate, authorizeRoles([SUPERUSER]), users.rejectProfileDiff); router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), users.updateUser); router.get("/suggestedUsers/:skillId", authenticate, authorizeRoles([SUPERUSER]), users.getSuggestedUsers); -// WARNING!! - One time Script/Route to do migration -router.post( - "/migrations", - authenticate, - authorizeRoles([SUPERUSER]), - userValidator.migrationsValidator, - users.migrations, -); + module.exports = router; diff --git a/test/unit/models/users.test.js b/test/unit/models/users.test.js index 693c3989b..82d735396 100644 --- a/test/unit/models/users.test.js +++ b/test/unit/models/users.test.js @@ -21,10 +21,6 @@ const photoVerificationModel = firestore.collection("photo-verification"); const userData = require("../../fixtures/user/user"); const addUser = require("../../utils/addUser"); const { userState } = require("../../../constants/userStatus"); -const app = require("../../../server"); -const prodUsers = require("../../fixtures/user/prodUsers"); -const authService = require("../../../services/authService"); -const cookieName = config.get("userToken.cookieName"); /** * Test the model functions and validate the data stored */ @@ -492,99 +488,4 @@ describe("users", function () { expect(userListResult[0].discordId).to.be.deep.equal(userDataArray[0].discordId); }); }); - - describe("Adding github_user_id for each user document", function () { - let userId, userToken, superUserId, superUserToken; - - beforeEach(async function () { - userId = await addUser(prodUsers[1]); - userToken = authService.generateAuthToken({ userId: userId }); - superUserId = await addUser(prodUsers[0]); - superUserToken = authService.generateAuthToken({ userId: superUserId }); - }); - - afterEach(async function () { - await cleanDb(); - }); - - it("Migration API should not be accessible by any regular user", function (done) { - chai - .request(app) - .post("/users/migrations?action=adds-github-id&page=0&size=10") - .set("cookie", `${cookieName}=${userToken}`) - .send() - .end((err, res) => { - if (err) { - return done(); - } - expect(res).to.have.status(401); - expect(res.body).to.be.an("object"); - expect(res.body).to.eql({ - statusCode: 401, - error: "Unauthorized", - message: "You are not authorized for this action.", - }); - return done(); - }); - }); - - it("Migration API should be not be accessible with invalid query params", async function () { - const res = await chai - .request(app) - .post("/users/migrations") - .set("cookie", `${cookieName}=${superUserToken}`) - .send(); - expect(res).to.have.status(400); - expect(res.body).to.have.property("message"); - expect(res.body).to.have.property("error"); - expect(res.body.message).to.equal("Invalid Query Parameters Passed"); - expect(res.body.error).to.equal("Bad Request"); - }); - - it("Migration API should be accessible by super user", async function () { - const res = await chai - .request(app) - .post("/users/migrations?action=adds-github-id&page=0&size=10") - .set("cookie", `${cookieName}=${superUserToken}`) - .send(); - expect(res).to.have.status(200); - }); - - it("Migration API to add github_user_id should work", async function () { - for (const user of prodUsers.slice(2)) { - await addUser(user); - } - const allUsers = await chai.request(app).get("/users").set("cookie", `${cookieName}=${superUserToken}`).send(); - const usersWithoutGithubId = allUsers.body.users.filter((user) => { - return !user.github_user_id; - }); - - expect(usersWithoutGithubId).to.not.have.length(0); - - const res = await chai - .request(app) - .post("/users/migrations?action=adds-github-id&page=0&size=10") - .set("cookie", `${cookieName}=${superUserToken}`) - .send(); - - expect(res).to.have.status(200); - expect(res.body).to.have.property("data").that.is.an("object"); - expect(res.body.data).to.have.property("totalUsers").that.is.a("number"); - expect(res.body.data).to.have.property("usersUpdated").that.is.a("number"); - expect(res.body.data).to.have.property("usersNotUpdated").that.is.a("number"); - expect(res.body.data).to.have.property("invalidUsersDetails").that.is.an("array"); - - const updatedUsers = await chai - .request(app) - .get("/users") - .set("cookie", `${cookieName}=${superUserToken}`) - .send(); - - const updatedUsersWithoutGithubId = updatedUsers.body.users.filter((user) => { - return !user.github_user_id; - }); - // For invalid username - expect(updatedUsersWithoutGithubId).to.have.length(1); - }); - }); }); diff --git a/yarn.lock b/yarn.lock index 1372403a4..a2d5826dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6351,7 +6351,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@3.3.2: +prettier@^3.2.5: version "3.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== From 1c516c769d9059a040fb372fdd57919500e03e79 Mon Sep 17 00:00:00 2001 From: abhay Date: Tue, 18 Jun 2024 22:59:16 +0530 Subject: [PATCH 09/17] fix:remove the depricated eslint-prettier-standard package --- package.json | 1 - yarn.lock | 5 ----- 2 files changed, 6 deletions(-) diff --git a/package.json b/package.json index 0c38a3af9..c73af79a0 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,6 @@ "eslint-plugin-prettier": "^5.1.3", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", - "eslint-plugin-standard": "^4.1.0", "firebase-tools": "13.4.0", "mocha": "10.3.0", "nock": "13.2.9", diff --git a/yarn.lock b/yarn.lock index a2d5826dd..74ebff71b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2997,11 +2997,6 @@ eslint-plugin-security@^1.7.1: dependencies: safe-regex "^2.1.1" -eslint-plugin-standard@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" From dbe194aec9da8aaca38c856f6657268fbbfbb25b Mon Sep 17 00:00:00 2001 From: abhay Date: Wed, 19 Jun 2024 08:17:47 +0530 Subject: [PATCH 10/17] fix:revert back the test changes --- controllers/users.js | 17 +++++- models/users.js | 61 +++++++++++++++++++++ routes/users.js | 9 +++- test/unit/models/users.test.js | 99 ++++++++++++++++++++++++++++++++++ 4 files changed, 184 insertions(+), 2 deletions(-) diff --git a/controllers/users.js b/controllers/users.js index 218808455..4ea287d51 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -15,7 +15,7 @@ const { getPaginationLink, getUsernamesFromPRs, getRoleToUpdate } = require("../ const { setInDiscordFalseScript, setUserDiscordNickname } = require("../services/discordService"); const { generateDiscordProfileImageUrl } = require("../utils/discord-actions"); const { addRoleToUser, getDiscordMembers } = require("../services/discordService"); -const { fetchAllUsers } = require("../models/users"); +const { fetchAllUsers, addGithubUserId } = require("../models/users"); const { getOverdueTasks } = require("../models/tasks"); const { getQualifiers } = require("../utils/helper"); const { parseSearchQuery } = require("../utils/users"); @@ -918,6 +918,20 @@ async function usersPatchHandler(req, res) { return res.boom.badImplementation(INTERNAL_SERVER_ERROR); } } +const migrations = async (req, res) => { + const { page = 0, size } = req.query; + + try { + const result = await addGithubUserId(parseInt(page), parseInt(size)); + return res.status(200).json({ + message: "Result of migration", + data: result, + }); + } catch (error) { + logger.error(`Internal Server Error: ${error}`); + return res.boom.badImplementation(INTERNAL_SERVER_ERROR); + } +}; module.exports = { verifyUser, @@ -948,5 +962,6 @@ module.exports = { updateDiscordUserNickname, archiveUserIfNotInDiscord, usersPatchHandler, + migrations, isDeveloper, }; diff --git a/models/users.js b/models/users.js index 52fbde3d8..3a248b0a3 100644 --- a/models/users.js +++ b/models/users.js @@ -900,6 +900,66 @@ const getNonNickNameSyncedUsers = async () => { throw err; } }; +const addGithubUserId = async (page, size) => { + try { + const usersNotFound = []; + let countUserFound = 0; + let countUserNotFound = 0; + + const requestOptions = { + method: "GET", + headers: { + "Content-Type": "application/json", + Authorization: + "Basic " + btoa(`${config.get("githubOauth.clientId")}:${config.get("githubOauth.clientSecret")}`), + }, + }; + const usersSnapshot = await firestore + .collection("users") + .limit(size) + .offset(page * size) + .get(); + // Create batch write operations for each batch of documents + const batchWrite = firestore.batch(); + const batchWrites = []; + for (const userDoc of usersSnapshot.docs) { + if (userDoc.data().github_user_id) continue; + const githubUsername = userDoc.data().github_id; + const username = userDoc.data().username; + const userId = userDoc.id; + const getUserDetails = fetch(`https://api.github.com/users/${githubUsername}`, requestOptions) + .then((response) => { + if (!response.ok) { + throw new Error("Network response was not ok"); + } + return response.json(); + }) + .then((data) => { + const githubUserId = data.id; + batchWrite.update(userDoc.ref, { github_user_id: `${githubUserId}`, updated_at: Date.now() }); + countUserFound++; + }) + .catch((error) => { + countUserNotFound++; + const invalidUsers = { userId, username, githubUsername }; + usersNotFound.push(invalidUsers); + logger.error("An error occurred at fetch:", error); + }); + batchWrites.push(getUserDetails); + } + await Promise.all(batchWrites); + await batchWrite.commit(); + return { + totalUsers: usersSnapshot.docs.length, + usersUpdated: countUserFound, + usersNotUpdated: countUserNotFound, + invalidUsersDetails: usersNotFound, + }; + } catch (error) { + logger.error(`Error while Updating all users: ${error}`); + throw Error(error); + } +}; module.exports = { addOrUpdate, @@ -930,4 +990,5 @@ module.exports = { fetchUsersListForMultipleValues, fetchUserForKeyValue, getNonNickNameSyncedUsers, + addGithubUserId, }; diff --git a/routes/users.js b/routes/users.js index 39dcd6811..ea60f1fdd 100644 --- a/routes/users.js +++ b/routes/users.js @@ -65,5 +65,12 @@ router.patch("/profileURL", authenticate, userValidator.updateProfileURL, users. router.patch("/rejectDiff", authenticate, authorizeRoles([SUPERUSER]), users.rejectProfileDiff); router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), users.updateUser); router.get("/suggestedUsers/:skillId", authenticate, authorizeRoles([SUPERUSER]), users.getSuggestedUsers); - +// WARNING!! - One time Script/Route to do migration +router.post( + "/migrations", + authenticate, + authorizeRoles([SUPERUSER]), + userValidator.migrationsValidator, + users.migrations, +); module.exports = router; diff --git a/test/unit/models/users.test.js b/test/unit/models/users.test.js index 82d735396..693c3989b 100644 --- a/test/unit/models/users.test.js +++ b/test/unit/models/users.test.js @@ -21,6 +21,10 @@ const photoVerificationModel = firestore.collection("photo-verification"); const userData = require("../../fixtures/user/user"); const addUser = require("../../utils/addUser"); const { userState } = require("../../../constants/userStatus"); +const app = require("../../../server"); +const prodUsers = require("../../fixtures/user/prodUsers"); +const authService = require("../../../services/authService"); +const cookieName = config.get("userToken.cookieName"); /** * Test the model functions and validate the data stored */ @@ -488,4 +492,99 @@ describe("users", function () { expect(userListResult[0].discordId).to.be.deep.equal(userDataArray[0].discordId); }); }); + + describe("Adding github_user_id for each user document", function () { + let userId, userToken, superUserId, superUserToken; + + beforeEach(async function () { + userId = await addUser(prodUsers[1]); + userToken = authService.generateAuthToken({ userId: userId }); + superUserId = await addUser(prodUsers[0]); + superUserToken = authService.generateAuthToken({ userId: superUserId }); + }); + + afterEach(async function () { + await cleanDb(); + }); + + it("Migration API should not be accessible by any regular user", function (done) { + chai + .request(app) + .post("/users/migrations?action=adds-github-id&page=0&size=10") + .set("cookie", `${cookieName}=${userToken}`) + .send() + .end((err, res) => { + if (err) { + return done(); + } + expect(res).to.have.status(401); + expect(res.body).to.be.an("object"); + expect(res.body).to.eql({ + statusCode: 401, + error: "Unauthorized", + message: "You are not authorized for this action.", + }); + return done(); + }); + }); + + it("Migration API should be not be accessible with invalid query params", async function () { + const res = await chai + .request(app) + .post("/users/migrations") + .set("cookie", `${cookieName}=${superUserToken}`) + .send(); + expect(res).to.have.status(400); + expect(res.body).to.have.property("message"); + expect(res.body).to.have.property("error"); + expect(res.body.message).to.equal("Invalid Query Parameters Passed"); + expect(res.body.error).to.equal("Bad Request"); + }); + + it("Migration API should be accessible by super user", async function () { + const res = await chai + .request(app) + .post("/users/migrations?action=adds-github-id&page=0&size=10") + .set("cookie", `${cookieName}=${superUserToken}`) + .send(); + expect(res).to.have.status(200); + }); + + it("Migration API to add github_user_id should work", async function () { + for (const user of prodUsers.slice(2)) { + await addUser(user); + } + const allUsers = await chai.request(app).get("/users").set("cookie", `${cookieName}=${superUserToken}`).send(); + const usersWithoutGithubId = allUsers.body.users.filter((user) => { + return !user.github_user_id; + }); + + expect(usersWithoutGithubId).to.not.have.length(0); + + const res = await chai + .request(app) + .post("/users/migrations?action=adds-github-id&page=0&size=10") + .set("cookie", `${cookieName}=${superUserToken}`) + .send(); + + expect(res).to.have.status(200); + expect(res.body).to.have.property("data").that.is.an("object"); + expect(res.body.data).to.have.property("totalUsers").that.is.a("number"); + expect(res.body.data).to.have.property("usersUpdated").that.is.a("number"); + expect(res.body.data).to.have.property("usersNotUpdated").that.is.a("number"); + expect(res.body.data).to.have.property("invalidUsersDetails").that.is.an("array"); + + const updatedUsers = await chai + .request(app) + .get("/users") + .set("cookie", `${cookieName}=${superUserToken}`) + .send(); + + const updatedUsersWithoutGithubId = updatedUsers.body.users.filter((user) => { + return !user.github_user_id; + }); + // For invalid username + expect(updatedUsersWithoutGithubId).to.have.length(1); + }); + }); }); From 35454342f29a05f5114754b50c83b24cefb5bf77 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 00:22:03 +0530 Subject: [PATCH 11/17] Revert "fix:prettier issue by upgrading to the latest version of prettier" --- .eslintrc.js | 1 + package.json | 4 ++-- yarn.lock | 4 ++-- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index ec26c7836..b4af4f8f1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -22,6 +22,7 @@ module.exports = { "no-trailing-spaces": "error", "consistent-return": "error", "no-console": "error", + "comma-dangle": "off", // Custom mocha rules "mocha/no-skipped-tests": "error", diff --git a/package.json b/package.json index c73af79a0..83f16e4ce 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,8 @@ "nock": "13.2.9", "nodemon": "3.1.3", "nyc": "15.1.0", - "pre-commit": "1.2.2", - "prettier": "^3.2.5", + "pre-commit": "^1.2.2", + "prettier": "^3.3.2", "sinon": "18.0.0", "ts-node": "10.9.2", "ts-node-dev": "2.0.0", diff --git a/yarn.lock b/yarn.lock index 74ebff71b..6b4c28d4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6290,7 +6290,7 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -pre-commit@1.2.2: +pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" integrity sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA== @@ -6346,7 +6346,7 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.2.5: +prettier@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== From 8acc6e4e7b534ea5a92eaf33e01773e243deae74 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 01:33:01 +0530 Subject: [PATCH 12/17] fix: remove the trailing commas --- .eslintrc.js | 16 +- config/custom-environment-variables.js | 48 ++-- config/default.js | 42 +-- config/development.js | 20 +- config/production.js | 8 +- config/staging.js | 14 +- controllers/arts.js | 10 +- controllers/auction.js | 4 +- controllers/auth.js | 24 +- controllers/badges.js | 12 +- controllers/challenge.js | 10 +- controllers/cloudflareCache.js | 10 +- controllers/contributions.js | 2 +- controllers/discordactions.js | 74 ++--- controllers/events.js | 58 ++-- controllers/extensionRequests.js | 58 ++-- controllers/external-accounts.js | 40 +-- controllers/fcmToken.js | 4 +- controllers/goals.js | 2 +- controllers/health.js | 4 +- controllers/issues.js | 14 +- controllers/items.js | 8 +- controllers/levels.js | 12 +- controllers/logs.js | 12 +- controllers/members.js | 12 +- controllers/monitor.js | 24 +- controllers/notify.js | 8 +- controllers/profileDiffs.js | 4 +- controllers/progresses.js | 30 +- controllers/pullRequests.js | 14 +- controllers/recruiters.js | 6 +- controllers/staging.js | 36 +-- controllers/stocks.js | 8 +- controllers/tags.js | 14 +- controllers/tasks.js | 66 ++--- controllers/tasksRequests.js | 26 +- controllers/trading.js | 4 +- controllers/userStatus.js | 18 +- controllers/users.js | 104 +++---- controllers/wallets.js | 6 +- middlewares/authenticate.js | 2 +- middlewares/authorization.js | 4 +- middlewares/contentTypeCheck.js | 2 +- middlewares/index.js | 8 +- middlewares/passport.js | 6 +- middlewares/rateLimiting.js | 6 +- middlewares/taskRequests.js | 2 +- middlewares/validators/arts.js | 4 +- middlewares/validators/auctions.js | 6 +- middlewares/validators/badges.js | 8 +- middlewares/validators/challenges.js | 4 +- middlewares/validators/discordactions.js | 6 +- middlewares/validators/events.js | 22 +- middlewares/validators/extensionRequests.js | 16 +- middlewares/validators/external-accounts.js | 8 +- middlewares/validators/fcmToken.js | 2 +- middlewares/validators/items.js | 10 +- middlewares/validators/levels.js | 4 +- middlewares/validators/members.js | 4 +- middlewares/validators/monitor.js | 34 +-- middlewares/validators/notify.js | 2 +- middlewares/validators/progresses.js | 36 +-- middlewares/validators/qrCodeAuth.js | 8 +- middlewares/validators/recruiter.js | 4 +- middlewares/validators/staging.js | 6 +- middlewares/validators/stocks.js | 4 +- middlewares/validators/tags.js | 4 +- middlewares/validators/task-requests.js | 22 +- middlewares/validators/tasks.js | 54 ++-- middlewares/validators/trading.js | 4 +- middlewares/validators/user.js | 46 +-- middlewares/validators/userStatus.js | 40 +-- mockdata/appOwners.js | 14 +- models/arts.js | 6 +- models/auctions.js | 12 +- models/badges.js | 8 +- models/chaincodes.js | 4 +- models/challenges.js | 8 +- models/discordactions.js | 72 ++--- models/events.js | 32 +-- models/extensionRequests.js | 8 +- models/external-accounts.js | 2 +- models/fcmToken.js | 6 +- models/items.js | 6 +- models/levels.js | 4 +- models/logs.js | 16 +- models/members.js | 10 +- models/monitor.js | 2 +- models/profileDiffs.js | 8 +- models/progresses.js | 4 +- models/qrCodeAuth.js | 14 +- models/recruiters.js | 8 +- models/stocks.js | 8 +- models/tags.js | 6 +- models/taskRequests.js | 66 ++--- models/tasks.js | 44 +-- models/userStatus.js | 60 ++-- models/users.js | 56 ++-- models/wallets.js | 8 +- newrelic.js | 10 +- nyc.config.js | 4 +- routes/badges.js | 6 +- routes/discordactions.js | 14 +- routes/events.js | 10 +- routes/extensionRequests.js | 6 +- routes/external-accounts.js | 2 +- routes/monitor.js | 8 +- routes/tasks.js | 10 +- routes/userStatus.js | 6 +- routes/users.js | 8 +- scripts/validateSetup.js | 4 +- services/EventAPIService.js | 8 +- services/EventTokenService.js | 6 +- services/authService.js | 4 +- services/cloudflareService.js | 6 +- services/contributions.js | 12 +- services/dataAccessLayer.js | 4 +- services/discordMembersService.js | 4 +- services/discordService.js | 20 +- services/githubService.js | 52 ++-- services/goalService.js | 8 +- services/imageService.js | 8 +- services/issuesService.js | 4 +- services/tasks.js | 6 +- services/tradingService.js | 12 +- services/users.js | 10 +- test/config/test.js | 44 +-- test/fixtures/arts/arts.js | 6 +- test/fixtures/auctions/auctions.js | 2 +- test/fixtures/auth/githubUserInfo.js | 14 +- test/fixtures/badges/badges.js | 20 +- test/fixtures/challenges/challenges.js | 4 +- test/fixtures/cloudflareCache/data.js | 26 +- test/fixtures/contributions/githubPRInfo.js | 78 +++--- test/fixtures/currencies/currencies.js | 6 +- .../discordResponse/discord-response.js | 60 ++-- .../fixtures/discordactions/discordactions.js | 22 +- test/fixtures/events/event-codes.js | 36 +-- test/fixtures/events/events.js | 12 +- test/fixtures/events/peers.js | 2 +- .../external-accounts/external-accounts.js | 18 +- test/fixtures/featureFlag/featureFlag.js | 6 +- test/fixtures/goals/Token.js | 4 +- test/fixtures/issues/issues.js | 16 +- test/fixtures/logs/archievedUsers.js | 32 +-- test/fixtures/logs/extensionRequests.js | 34 +-- test/fixtures/logs/requests.js | 18 +- test/fixtures/logs/tasks.js | 32 +-- test/fixtures/profileDiffs/profileDiffs.js | 4 +- test/fixtures/progress/progresses.js | 50 ++-- test/fixtures/pullrequests/pullrequests.js | 38 +-- test/fixtures/qrCodeAuth/qrCodeAuth.js | 4 +- test/fixtures/recruiter/recruiter.js | 6 +- test/fixtures/standup/standup.js | 6 +- test/fixtures/task-requests/task-requests.js | 20 +- .../multiple-extension-requests-tasks.js | 10 +- test/fixtures/tasks/tasks.js | 26 +- test/fixtures/tasks/tasks1.js | 4 +- test/fixtures/time/time.js | 40 +-- test/fixtures/trackedProgress/index.js | 12 +- test/fixtures/user/inDiscord.js | 18 +- test/fixtures/user/join.js | 12 +- test/fixtures/user/photo-verification.js | 20 +- test/fixtures/user/user.js | 128 ++++----- test/fixtures/userBadges/userBadges.js | 6 +- .../fixtures/userDeviceInfo/userDeviceInfo.js | 4 +- test/fixtures/userStatus/userStatus.js | 88 +++--- test/integration/arts.test.js | 4 +- test/integration/auction.test.js | 4 +- test/integration/auth.test.js | 2 +- test/integration/badges.test.js | 12 +- test/integration/cloudflareCache.test.js | 4 +- test/integration/contributions.test.js | 8 +- test/integration/discord.test.js | 4 +- test/integration/discordactions.test.js | 114 ++++---- test/integration/events.test.js | 42 +-- test/integration/extensionRequests.test.js | 79 +++--- test/integration/external-accounts.test.js | 50 ++-- test/integration/fcmToken.test.js | 12 +- test/integration/goals.test.js | 10 +- test/integration/health.test.js | 2 +- test/integration/logs.test.js | 6 +- test/integration/monitor.js | 38 +-- .../multilpleExtensionRequest.test.js | 30 +- test/integration/notify.test.js | 16 +- test/integration/progressesTasks.test.js | 16 +- test/integration/progressesUsers.test.js | 16 +- test/integration/qrCodeAuth.test.js | 2 +- test/integration/recruiters.test.js | 2 +- test/integration/restricted.test.js | 8 +- .../integration/taskBasedStatusUpdate.test.js | 34 +-- test/integration/taskRequests.test.js | 56 ++-- test/integration/tasks.test.js | 96 +++---- test/integration/userStatus.test.js | 36 +-- test/integration/users.test.js | 152 +++++----- test/integration/usersFilter.test.js | 40 +-- test/unit/middlewares/arts-validator.test.js | 12 +- .../middlewares/auctions-validator.test.js | 24 +- test/unit/middlewares/authorizeBot.test.js | 24 +- test/unit/middlewares/cache.test.js | 16 +- .../middlewares/challenges-validator.test.js | 12 +- .../unit/middlewares/contentTypeCheck.test.js | 8 +- .../middlewares/data-access-layer.test.js | 16 +- .../discordactions-validators.test.js | 44 +-- .../extension-request-validator.test.js | 28 +- .../external-accounts-validator.test.js | 22 +- .../middlewares/fcmToken-validator.test.js | 12 +- .../unit/middlewares/notify-validator.test.js | 24 +- .../middlewares/qrCodeAuthValidator.test.js | 38 +-- test/unit/middlewares/rateLimiting.test.js | 6 +- test/unit/middlewares/security.test.js | 4 +- test/unit/middlewares/task-request.test.js | 116 ++++---- test/unit/middlewares/tasks-validator.test.js | 264 +++++++++--------- test/unit/middlewares/tasks.test.js | 8 +- test/unit/middlewares/user-validator.test.js | 120 ++++---- test/unit/middlewares/userStatusValidator.js | 12 +- .../middlewares/userStatusValidator.test.js | 12 +- test/unit/middlewares/users-validator.test.js | 26 +- test/unit/models/auctions.test.js | 2 +- test/unit/models/challenges.test.js | 4 +- test/unit/models/discordactions.test.js | 82 +++--- test/unit/models/events.test.js | 16 +- test/unit/models/external-accounts.test.js | 2 +- test/unit/models/logs.test.js | 4 +- test/unit/models/qrCodeAuth.test.js | 14 +- test/unit/models/recruiters.test.js | 2 +- test/unit/models/task-requests.test.js | 66 ++--- .../unit/models/taskBasedStatusUpdate.test.js | 20 +- test/unit/models/tasks.test.js | 18 +- test/unit/models/users.test.js | 8 +- test/unit/services/dataAccessLayer.test.js | 2 +- .../services/discordMembersService.test.js | 10 +- test/unit/services/discordService.test.js | 24 +- .../services/getUserIdsFromRoleId.test.js | 4 +- test/unit/services/githubService.test.js | 46 +-- test/unit/services/tasks.test.js | 8 +- test/unit/services/users.test.js | 10 +- .../utils/customWordCountValidator.test.js | 4 +- test/unit/utils/data-access.test.js | 50 ++-- test/unit/utils/events.test.js | 16 +- test/unit/utils/helper.test.js | 14 +- test/unit/utils/logs.test.js | 70 ++--- test/unit/utils/parseSearchQuery.test.js | 6 +- test/unit/utils/queryParser.test.js | 4 +- test/unit/utils/rqlQueryParser.test.js | 14 +- test/unit/utils/sendTaskUpdate.test.js | 4 +- .../unit/utils/taskBasedStatusUpdates.test.js | 72 ++--- test/unit/utils/tasks.test.js | 4 +- test/unit/utils/userStatus.test.js | 18 +- test/unit/utils/userStatusValidator.test.js | 26 +- test/unit/utils/users.test.js | 42 +-- test/utils/generateBotToken.js | 4 +- test/utils/github.js | 2 +- utils/array.js | 2 +- utils/badges.js | 8 +- utils/cache.js | 2 +- utils/cloudinary.js | 2 +- utils/customWordCountValidator.js | 2 +- utils/data-access.js | 2 +- utils/discord-actions.js | 12 +- utils/events.js | 2 +- utils/extensionRequests.js | 4 +- utils/fetch.js | 4 +- utils/fetchMultiplePageResults.js | 2 +- utils/firestore.js | 2 +- utils/helper.js | 4 +- utils/logs.js | 16 +- utils/monitor.js | 2 +- utils/multer.js | 4 +- utils/obfuscate.js | 2 +- utils/progresses.js | 4 +- utils/pullRequests.js | 6 +- utils/rateLimiting.js | 2 +- utils/sendTaskUpdate.js | 6 +- utils/tasks.js | 8 +- utils/time.js | 2 +- utils/userStatus.js | 42 +-- utils/users.js | 14 +- 278 files changed, 2800 insertions(+), 2797 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index b4af4f8f1..be6b69a42 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,30 +6,34 @@ module.exports = { commonjs: true, es2021: true, node: true, - mocha: true, + mocha: true }, extends: ["standard", "plugin:mocha/recommended", "plugin:security/recommended", "plugin:prettier/recommended"], plugins: ["mocha", "security", "prettier"], parserOptions: { - ecmaVersion: 13, + ecmaVersion: 13 }, globals: { config: "readonly", - logger: "readonly", + logger: "readonly" }, rules: { // Custom eslint rules "no-trailing-spaces": "error", "consistent-return": "error", "no-console": "error", - "comma-dangle": "off", // Custom mocha rules "mocha/no-skipped-tests": "error", "mocha/no-exclusive-tests": "error", // Prettier for formatting - "prettier/prettier": "error", + "prettier/prettier": [ + "error", + { + trailingComma: "none" + } + ] }, - ignorePatterns: ["public/*", "dist/*"], + ignorePatterns: ["public/*", "dist/*"] }; diff --git a/config/custom-environment-variables.js b/config/custom-environment-variables.js index f22c5756e..ba15ea86b 100644 --- a/config/custom-environment-variables.js +++ b/config/custom-environment-variables.js @@ -8,25 +8,25 @@ module.exports = { port: { __name: "PORT", - __format: "number", + __format: "number" }, enableFileLogs: { __name: "ENABLE_FILE_LOGS", - __format: "boolean", + __format: "boolean" }, enableConsoleLogs: { __name: "ENABLE_CONSOLE_LOGS", - __format: "boolean", + __format: "boolean" }, githubApi: { baseUrl: "GITHUB_API_BASE_URL", - org: "GITHUB_ORGANISATION", + org: "GITHUB_ORGANISATION" }, githubOauth: { clientId: "GITHUB_CLIENT_ID", - clientSecret: "GITHUB_CLIENT_SECRET", + clientSecret: "GITHUB_CLIENT_SECRET" }, githubAccessToken: "GITHUB_PERSONAL_ACCESS_TOKEN", @@ -35,76 +35,76 @@ module.exports = { services: { rdsApi: { - baseUrl: "SERVICES_RDSAPI_BASEURL", + baseUrl: "SERVICES_RDSAPI_BASEURL" }, rdsUi: { baseUrl: "SERVICES_RDSUI_BASEURL", routes: { - authRedirection: "SERVICES_RDSUI_ROUTES_AUTH_REDIRECTION", - }, + authRedirection: "SERVICES_RDSUI_ROUTES_AUTH_REDIRECTION" + } }, goalAPI: { baseUrl: "GOALS_BASE_URL", - secretKey: "GOALS_SECRET_KEY", + secretKey: "GOALS_SECRET_KEY" }, discordBot: { - baseUrl: "DISCORD_BASE_URL", - }, + baseUrl: "DISCORD_BASE_URL" + } }, userToken: { cookieName: "COOKIE_NAME", ttl: { __name: "USER_TOKEN_TTL", - __format: "number", + __format: "number" }, refreshTtl: { __name: "USER_TOKEN_REFRESH_TTL", - __format: "number", + __format: "number" }, publicKey: "PUBLIC_KEY", - privateKey: "PRIVATE_KEY", + privateKey: "PRIVATE_KEY" }, botToken: { - botPublicKey: "BOT_PUBLIC_KEY", + botPublicKey: "BOT_PUBLIC_KEY" }, cronJobHandler: { - publicKey: "CRON_JOB_PUBLIC_KEY", + publicKey: "CRON_JOB_PUBLIC_KEY" }, rdsServerlessBot: { rdsServerLessPrivateKey: "RDS_SERVERLESS_PRIVATE_KEY", - ttl: "RDS_SERVERLESS_TTL", + ttl: "RDS_SERVERLESS_TTL" }, cloudinary: { cloud_name: "CLOUDINARY_CLOUD_NAME", api_key: "CLOUDINARY_API_KEY", - api_secret: "CLOUDINARY_API_SECRET_KEY", + api_secret: "CLOUDINARY_API_SECRET_KEY" }, integrations: { newrelic: { appName: "INTEGRATIONS_NEWRELIC_APPNAME", - licenseKey: "INTEGRATIONS_NEWRELIC_LICENSEKEY", - }, + licenseKey: "INTEGRATIONS_NEWRELIC_LICENSEKEY" + } }, routesCacheTTL: { - "/members": "ROUTESCACHETTL_MEMBERS", + "/members": "ROUTESCACHETTL_MEMBERS" }, Event100ms: { APP_ACCESS_KEY: "EVENT_100MS_APP_ACCESS_KEY", - APP_SECRET: "EVENT_100MS_APP_SECRET", + APP_SECRET: "EVENT_100MS_APP_SECRET" }, externalServices: { - EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY", - }, + EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY" + } }; diff --git a/config/default.js b/config/default.js index 71098835d..dcbf0f224 100644 --- a/config/default.js +++ b/config/default.js @@ -17,12 +17,12 @@ module.exports = { discordMissedUpdatesRoleId: "", githubApi: { baseUrl: "https://api.github.com", - org: "Real-Dev-Squad", + org: "Real-Dev-Squad" }, githubOauth: { clientId: "", - clientSecret: "", + clientSecret: "" }, firestore: `{ @@ -40,26 +40,26 @@ module.exports = { services: { rdsApi: { - baseUrl: "https://api.realdevsquad.com", + baseUrl: "https://api.realdevsquad.com" }, rdsUi: { baseUrl: "https://realdevsquad.com", routes: { - authRedirection: "/goto", + authRedirection: "/goto" }, goalAPI: { baseUrl: "https://goals-api.realdevsquad.com", - cookieName: `goals-session-${NODE_ENV}`, - }, + cookieName: `goals-session-${NODE_ENV}` + } }, discordBot: { - baseUrl: "", - }, + baseUrl: "" + } }, cors: { - allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)/, // Allow realdevsquad.com, *.realdevsquad.com + allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)/ // Allow realdevsquad.com, *.realdevsquad.com }, userToken: { @@ -68,54 +68,54 @@ module.exports = { ttl: 30 * 24 * 60 * 60, // in seconds refreshTtl: 180 * 24 * 60 * 60, // in seconds publicKey: "", - privateKey: "", + privateKey: "" }, botToken: { - botPublicKey: "", + botPublicKey: "" }, // Cloudinary keys cloudinary: { cloud_name: "Cloud_name", api_key: "API_KEY", - api_secret: "api_secret_key", + api_secret: "api_secret_key" }, // Cloudflare cloudflare: { CLOUDFLARE_ZONE_ID: "Cloudflare_Zone_ID_or_ID", CLOUDFLARE_X_AUTH_KEY: "Cloudflare_API_Auth_Key", - CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email", + CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email" }, rdsServerlessBot: { rdsServerLessPrivateKey: "RDS_SERVERLESS_PRIVATE_KEY", - ttl: 60, + ttl: 60 }, cronJobHandler: { - publicKey: "CRON_JOB_PUBLIC_KEY", + publicKey: "CRON_JOB_PUBLIC_KEY" }, integrations: { newrelic: { appName: "RDS_API_production", - licenseKey: "", - }, + licenseKey: "" + } }, routesCacheTTL: { - "/members": 900, + "/members": 900 }, Event100ms: { APP_ACCESS_KEY: "EVENT_100MS_APP_ACCESS_KEY", - APP_SECRET: "EVENT_100MS_APP_SECRET", + APP_SECRET: "EVENT_100MS_APP_SECRET" }, githubAccessToken: "GITHUB_PERSONAL_ACCESS_TOKEN", externalServices: { - EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY", - }, + EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY" + } }; diff --git a/config/development.js b/config/development.js index 0e4d3bd44..f35a3bef8 100644 --- a/config/development.js +++ b/config/development.js @@ -14,20 +14,20 @@ module.exports = { services: { rdsApi: { - baseUrl: localUrl, + baseUrl: localUrl }, rdsUi: { baseUrl: localUrl, routes: { - authRedirection: "/healthcheck", - }, + authRedirection: "/healthcheck" + } }, goalAPI: { baseUrl: "https://staging-goals-api.realdevsquad.com", - secretKey: "123456789", - }, + secretKey: "123456789" + } }, userToken: { @@ -53,7 +53,7 @@ module.exports = { "NoWsgW64Z/+89cbKFMzgHdvhvL7rQNhBAAm1byPmn8aTV7LlTclMWfb4sV6e+ef8\n" + "QnrvpfRSihRktA2dDQJAH+dQBx3nG3bZ9khVAZQ1jTJ7j0cKixaGndFuYS1TJvJ2\n" + "Zzn584h/xbSIcP9/4SXmEK3wtoueUtMkvS3yKTvk+w==\n" + - "-----END RSA PRIVATE KEY-----", + "-----END RSA PRIVATE KEY-----" }, botToken: { @@ -66,12 +66,12 @@ module.exports = { "GJhpAAmD6vk0MeZk1NeQmyQp/uOPpWmVRzgyK+XVc6AwZHV+/n6xAIT91/DjJlD1\n" + "N+nS7Sqo3RJ04+KlNRUclzINOC7JBYkKtG7YQ0U9nNLkRrRlON+O6tY4OT86T1O1\n" + "AgMBAAE=\n" + - "-----END PUBLIC KEY-----", + "-----END PUBLIC KEY-----" }, integrations: { newrelic: { - appName: "RDS_API_development", - }, - }, + appName: "RDS_API_development" + } + } }; diff --git a/config/production.js b/config/production.js index b1d870cbf..bcadcfc74 100644 --- a/config/production.js +++ b/config/production.js @@ -10,12 +10,12 @@ module.exports = { discordMissedUpdatesRoleId: "1183553844811153458", userToken: { cookieName: "rds-session", - cookieV2Name: "rds-session-v2", + cookieV2Name: "rds-session-v2" }, services: { goalAPI: { - baseUrl: "https://goals-api.realdevsquad.com", - }, - }, + baseUrl: "https://goals-api.realdevsquad.com" + } + } }; diff --git a/config/staging.js b/config/staging.js index 5e26e7fbe..5f426b539 100644 --- a/config/staging.js +++ b/config/staging.js @@ -12,22 +12,22 @@ module.exports = { enableConsoleLogs: true, githubOauth: { - clientId: "c4a84431feaf604e89d1", + clientId: "c4a84431feaf604e89d1" }, services: { rdsApi: { - baseUrl: "https://staging-api.realdevsquad.com", + baseUrl: "https://staging-api.realdevsquad.com" }, goalAPI: { baseUrl: "https://staging-goals-api.realdevsquad.com", - secretKey: "123456789", - }, + secretKey: "123456789" + } }, integrations: { newrelic: { - appName: "RDS_API_staging", - }, - }, + appName: "RDS_API_staging" + } + } }; diff --git a/controllers/arts.js b/controllers/arts.js index b259d21dc..6443b7920 100644 --- a/controllers/arts.js +++ b/controllers/arts.js @@ -13,7 +13,7 @@ const addArt = async (req, res) => { return res.json({ message: "Art successfully added!", - id: artId, + id: artId }); } catch (error) { logger.error(`Error adding art: ${error}`); @@ -32,7 +32,7 @@ const fetchArts = async (req, res) => { const allArt = await artsQuery.fetchArts(); return res.json({ message: allArt.length > 0 ? "Arts returned successfully!" : "No arts found", - arts: allArt.length > 0 ? allArt : [], + arts: allArt.length > 0 ? allArt : [] }); } catch (err) { logger.error(`Error while fetching arts ${err}`); @@ -52,7 +52,7 @@ const getSelfArts = async (req, res) => { const arts = await artsQuery.fetchUserArts(id); return res.json({ message: "User arts returned successfully!", - arts, + arts }); } catch (err) { logger.error(`Error while getting user arts ${err}`); @@ -66,7 +66,7 @@ const getUserArts = async (req, res) => { const arts = await artsQuery.fetchUserArts(userId); return res.json({ message: `User Arts of userId ${userId} returned successfully`, - arts, + arts }); } catch (err) { logger.error(`Error while getting user arts ${err}`); @@ -78,5 +78,5 @@ module.exports = { addArt, fetchArts, getSelfArts, - getUserArts, + getUserArts }; diff --git a/controllers/auction.js b/controllers/auction.js index 9a4c6f08f..9313657c9 100644 --- a/controllers/auction.js +++ b/controllers/auction.js @@ -13,7 +13,7 @@ const fetchAvailableAuctions = async (_req, res) => { const availableAuctions = await auctions.fetchAvailableAuctions(); return res.json({ message: "Auctions returned successfully!", - auctions: availableAuctions, + auctions: availableAuctions }); } catch (error) { logger.error(`Error fetching available auctions: ${error}`); @@ -93,5 +93,5 @@ module.exports = { fetchAuctionById, fetchAvailableAuctions, createNewAuction, - makeNewBid, + makeNewBid }; diff --git a/controllers/auth.js b/controllers/auth.js index bf0835a29..b4d232e73 100644 --- a/controllers/auth.js +++ b/controllers/auth.js @@ -6,7 +6,7 @@ const dataAccess = require("../services/dataAccessLayer"); const { SOMETHING_WENT_WRONG, DATA_ADDED_SUCCESSFULLY, - USER_DOES_NOT_EXIST_ERROR, + USER_DOES_NOT_EXIST_ERROR } = require("../constants/errorMessages"); /** @@ -28,7 +28,7 @@ const githubAuthLogin = (req, res, next) => { } return passport.authenticate("github", { scope: ["user:email"], - state: redirectURL, + state: redirectURL })(req, res, next); }; @@ -80,7 +80,7 @@ const githubAuthCallback = (req, res, next) => { github_created_at: Number(new Date(user._json.created_at).getTime()), github_user_id: user.id, created_at: Date.now(), - updated_at: null, + updated_at: null }; const { userId, incompleteUserDetails, role } = await users.addOrUpdate(userData); @@ -92,7 +92,7 @@ const githubAuthCallback = (req, res, next) => { expires: new Date(Date.now() + config.get("userToken.ttl") * 1000), httpOnly: true, secure: true, - sameSite: "lax", + sameSite: "lax" }; // respond with a cookie res.cookie(config.get("userToken.cookieName"), token, cookieOptions); @@ -128,13 +128,13 @@ const signout = (req, res) => { domain: rdsUiUrl.hostname, httpOnly: true, secure: true, - sameSite: "lax", + sameSite: "lax" }; res.clearCookie(cookieName, cookieOptions); const cookieV2Name = config.get("userToken.cookieV2Name"); res.clearCookie(cookieV2Name, cookieOptions); return res.json({ - message: "Signout successful", + message: "Signout successful" }); }; @@ -151,7 +151,7 @@ const storeUserDeviceInfo = async (req, res) => { user_id: req.body.user_id, device_info: req.body.device_info, device_id: req.body.device_id, - authorization_status: "NOT_INIT", + authorization_status: "NOT_INIT" }; const userInfoData = await dataAccess.retrieveUsers({ id: userJson.user_id }); @@ -163,7 +163,7 @@ const storeUserDeviceInfo = async (req, res) => { return res.status(201).json({ ...userInfo, - message: DATA_ADDED_SUCCESSFULLY, + message: DATA_ADDED_SUCCESSFULLY }); } catch (err) { logger.error(`Error while storing user device info : ${err}`); @@ -187,7 +187,7 @@ const updateAuthStatus = async (req, res) => { return res.json({ message: `Authentication document for user ${userId} updated successfully`, - data: { ...result.data }, + data: { ...result.data } }); } catch (error) { logger.error(`Error while fetching user: ${error}`); @@ -204,7 +204,7 @@ const fetchUserDeviceInfo = async (req, res) => { } return res.json({ message: "Authentication document retrieved successfully.", - data: { ...userDeviceInfoData.data }, + data: { ...userDeviceInfoData.data } }); } catch (error) { logger.error(`Error while fetching user: ${error}`); @@ -221,7 +221,7 @@ const fetchDeviceDetails = async (req, res) => { } return res.json({ message: "Authentication document Exists", - data: { device_info: userDeviceInfoData.data?.device_info }, + data: { device_info: userDeviceInfoData.data?.device_info } }); } catch (error) { logger.error(`Error while fetching user device info: ${error}`); @@ -236,5 +236,5 @@ module.exports = { storeUserDeviceInfo, updateAuthStatus, fetchUserDeviceInfo, - fetchDeviceDetails, + fetchDeviceDetails }; diff --git a/controllers/badges.js b/controllers/badges.js index 486a1d7c4..c54a0c9e3 100644 --- a/controllers/badges.js +++ b/controllers/badges.js @@ -16,7 +16,7 @@ const getBadges = async (req, res) => { const allBadges = await badgeQuery.fetchBadges(req.query); return res.json({ message: CONTROLLERS_SUCCESS_MESSAGES.GET_BADGES, - badges: allBadges, + badges: allBadges }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.GET_BADGES}: ${error}`); @@ -53,11 +53,11 @@ async function postBadge(req, res) { const { imageUrl } = await imageService.uploadBadgeImage({ file, badgeName: req.body.name }); const badge = await badgeQuery.createBadge({ ...req.body, - imageUrl, + imageUrl }); return res.json({ message: CONTROLLERS_SUCCESS_MESSAGES.POST_BADGE, - badge, + badge }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.POST_BADGE}: ${error}`); @@ -82,7 +82,7 @@ async function postUserBadges(req, res) { } await badgeQuery.assignBadges({ userId, badgeIds }); return res.json({ - message: CONTROLLERS_SUCCESS_MESSAGES.POST_USER_BADGES, + message: CONTROLLERS_SUCCESS_MESSAGES.POST_USER_BADGES }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.POST_USER_BADGES}: ${error}`); @@ -101,7 +101,7 @@ async function deleteUserBadges(req, res) { const { badgeIds, userId } = req.body; await badgeQuery.removeBadges({ userId, badgeIds }); return res.json({ - message: CONTROLLERS_SUCCESS_MESSAGES.DELETE_USER_BADGES, + message: CONTROLLERS_SUCCESS_MESSAGES.DELETE_USER_BADGES }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.DELETE_USER_BADGES}: ${error}`); @@ -114,5 +114,5 @@ module.exports = { getUserBadges, postBadge, postUserBadges, - deleteUserBadges, + deleteUserBadges }; diff --git a/controllers/challenge.js b/controllers/challenge.js index 5e42d1492..dabd7ec09 100644 --- a/controllers/challenge.js +++ b/controllers/challenge.js @@ -14,7 +14,7 @@ const fetchChallenges = async (req, res) => { const challengesWithParticipants = await Promise.all(promiseArray); return res.json({ message: challengesWithParticipants.length ? "Challenges returned successfully!" : "No Challenges found", - challenges: challengesWithParticipants, + challenges: challengesWithParticipants }); } catch (err) { logger.error(`Error while retrieving challenges ${err}`); @@ -33,7 +33,7 @@ const createChallenge = async (req, res) => { const challengeAdded = await challengeQuery.postChallenge(req.body); if (challengeAdded) { return res.json({ - message: "Challenge added successfully", + message: "Challenge added successfully" }); } else { return res.boom.badRequest("Unable to add challenge"); @@ -53,7 +53,7 @@ const getParticipantsofChallenges = async (allChallenges) => { const participants = await challengeQuery.fetchParticipantsData(challenge.participants); return { ...challenge, - participants, + participants }; }); }; @@ -71,7 +71,7 @@ const subscribeToChallenge = async (req, res) => { if (subscribeUser) { return res.status(200).json({ challenge_id: challengeId, - is_user_subscribed: 1, + is_user_subscribed: 1 }); } else { return res.boom.notFound("User cannot be subscribed to challenge"); @@ -85,5 +85,5 @@ const subscribeToChallenge = async (req, res) => { module.exports = { fetchChallenges, createChallenge, - subscribeToChallenge, + subscribeToChallenge }; diff --git a/controllers/cloudflareCache.js b/controllers/cloudflareCache.js index df26f30b5..cc035c5dc 100644 --- a/controllers/cloudflareCache.js +++ b/controllers/cloudflareCache.js @@ -53,7 +53,7 @@ const purge = async (res, id, username, isSuperUser, userDetails) => { await logsQuery.addLog( logType.CLOUDFLARE_CACHE_PURGED, { userId: id, purgedFor: userDetails.user.id }, - { message: "Cache Purged" }, + { message: "Cache Purged" } ); } else { await logsQuery.addLog(logType.CLOUDFLARE_CACHE_PURGED, { userId: id }, { message: "Cache Purged" }); @@ -82,7 +82,7 @@ const fetchPurgedCacheMetadata = async (req, res) => { return res.json({ message: "Purged cache metadata returned successfully!", remainingCount: MAX_CACHE_PURGE_COUNT - logs.length, - timeLastCleared: timestamp._seconds, + timeLastCleared: timestamp._seconds }); } else if ((await logsQuery.fetchLastAddedCacheLog(id)).length !== 0) { const lastLog = await logsQuery.fetchLastAddedCacheLog(id); @@ -90,12 +90,12 @@ const fetchPurgedCacheMetadata = async (req, res) => { return res.json({ message: "Purged cache metadata returned successfully!", remainingCount: MAX_CACHE_PURGE_COUNT, - timeLastCleared: timestamp._seconds, + timeLastCleared: timestamp._seconds }); } else { return res.json({ message: "No cache is cleared yet", - remainingCount: MAX_CACHE_PURGE_COUNT, + remainingCount: MAX_CACHE_PURGE_COUNT }); } } catch (error) { @@ -106,5 +106,5 @@ const fetchPurgedCacheMetadata = async (req, res) => { module.exports = { purgeCache, - fetchPurgedCacheMetadata, + fetchPurgedCacheMetadata }; diff --git a/controllers/contributions.js b/controllers/contributions.js index 975aff939..0538d7982 100644 --- a/controllers/contributions.js +++ b/controllers/contributions.js @@ -23,5 +23,5 @@ const getUserContributions = async (req, res) => { }; module.exports = { - getUserContributions, + getUserContributions }; diff --git a/controllers/discordactions.js b/controllers/discordactions.js index d65c788df..1083adbe7 100644 --- a/controllers/discordactions.js +++ b/controllers/discordactions.js @@ -28,17 +28,17 @@ const createGroupRole = async (req, res) => { if (roleExists) { return res.status(400).json({ - message: "Role already exists!", + message: "Role already exists!" }); } const dataForDiscord = { rolename, - mentionable: true, + mentionable: true }; const groupRoleData = { rolename, createdBy: req.userData.id, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }; const headers = generateCloudFlareHeaders(req.userData); @@ -46,7 +46,7 @@ const createGroupRole = async (req, res) => { const responseForCreatedRole = await fetch(`${DISCORD_BASE_URL}/roles/create`, { method: "PUT", body: JSON.stringify(dataForDiscord), - headers, + headers }).then((response) => response.json()); groupRoleData.roleid = responseForCreatedRole.id; @@ -54,7 +54,7 @@ const createGroupRole = async (req, res) => { const { id } = await discordRolesModel.createNewRole(groupRoleData); return res.status(201).json({ message: "Role created successfully!", - id, + id }); } catch (err) { logger.error(`Error while creating new Role: ${err}`); @@ -75,7 +75,7 @@ const getAllGroupRoles = async (req, res) => { const groupsWithMembershipInfo = await discordRolesModel.enrichGroupDataWithMembershipInfo(discordId, groups); return res.json({ message: "Roles fetched successfully!", - groups: groupsWithMembershipInfo, + groups: groupsWithMembershipInfo }); } catch (err) { logger.error(`Error while getting roles: ${err}`); @@ -89,7 +89,7 @@ const getGroupsRoleId = async (req, res) => { const userGroupRoles = await discordRolesModel.getGroupRolesForUser(discordId); return res.json({ message: "User group roles Id fetched successfully!", - ...userGroupRoles, + ...userGroupRoles }); } catch (error) { logger.error(`Error while getting user roles: ${error}`); @@ -106,10 +106,10 @@ const addGroupRoleToMember = async (req, res) => { try { const memberGroupRole = { ...req.body, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }; const roleExistsPromise = discordRolesModel.isGroupRoleExists({ - roleid: memberGroupRole.roleid, + roleid: memberGroupRole.roleid }); const userDataPromise = fetchUser({ discordId: memberGroupRole.userid }); const [{ roleExists, existingRoles }, userData] = await Promise.all([roleExistsPromise, userDataPromise]); @@ -131,27 +131,27 @@ const addGroupRoleToMember = async (req, res) => { return res.status(400).json({ message: "Role already exists!", data: { - ...roleData, - }, + ...roleData + } }); } const dataForDiscord = { - ...req.body, + ...req.body }; const headers = generateCloudFlareHeaders(req.userData); const apiCallToDiscord = fetch(`${DISCORD_BASE_URL}/roles/add`, { method: "PUT", body: JSON.stringify(dataForDiscord), - headers, + headers }); const discordLastJoinedDateUpdate = discordRolesModel.groupUpdateLastJoinDate({ - id: existingRoles.docs[0].id, + id: existingRoles.docs[0].id }); await Promise.all([apiCallToDiscord, discordLastJoinedDateUpdate]); return res.status(201).json({ - message: "Role added successfully!", + message: "Role added successfully!" }); } catch (err) { logger.error(`Error while adding new Role: ${err}`); @@ -164,7 +164,7 @@ const deleteRole = async (req, res) => { const { roleid, userid } = req.body; const roleExistsPromise = discordRolesModel.isGroupRoleExists({ - roleid, + roleid }); const userDataPromise = fetchUser({ discordId: userid }); const [{ roleExists }, userData] = await Promise.all([roleExistsPromise, userDataPromise]); @@ -197,7 +197,7 @@ const updateDiscordImageForVerification = async (req, res) => { const discordAvatarUrl = await discordRolesModel.updateDiscordImageForVerification(userDiscordId); return res.json({ message: "Discord avatar URL updated successfully!", - discordAvatarUrl, + discordAvatarUrl }); } catch (err) { logger.error(`Error while updating discord image url verification document: ${err}`); @@ -215,7 +215,7 @@ const setRoleIdleToIdleUsers = async (req, res) => { const result = await discordRolesModel.updateIdleUsersOnDiscord(); return res.status(201).json({ message: "All Idle Users updated successfully.", - ...result, + ...result }); } catch (err) { logger.error(`Error while setting idle role: ${err}`); @@ -233,7 +233,7 @@ const setRoleIdle7DToIdleUsers = async (req, res) => { const result = await discordRolesModel.updateIdle7dUsersOnDiscord(); return res.status(201).json({ message: "All Idle 7d+ Users updated successfully.", - ...result, + ...result }); } catch (err) { logger.error(`Error while setting idle role: ${err}`); @@ -253,7 +253,7 @@ const updateDiscordNicknames = async (req, res) => { const { dev } = req.query; if (dev !== "true") { return res.status(404).json({ - message: "Users Nicknames not updated", + message: "Users Nicknames not updated" }); } @@ -275,14 +275,14 @@ const updateDiscordNicknames = async (req, res) => { discordId: foundUserWithDiscordId.discordId, username: foundUserWithDiscordId.username, first_name: foundUserWithDiscordId.first_name, - id: foundUserWithDiscordId.id, + id: foundUserWithDiscordId.id }); } } } catch (error) { logger.error(`error getting user with matching discordId ${error.message}`); } - }), + }) ); const totalNicknamesUpdated = { count: 0 }; @@ -318,7 +318,7 @@ const updateDiscordNicknames = async (req, res) => { return res.json({ totalNicknamesUpdated, totalNicknamesNotUpdated, - message: `Users Nicknames updated successfully`, + message: `Users Nicknames updated successfully` }); } catch (error) { logger.error(`Error while updating nicknames: ${error}`); @@ -339,7 +339,7 @@ const updateUsersNicknameStatus = async (req, res) => { const data = await discordRolesModel.updateUsersNicknameStatus(lastNicknameUpdate); return res.json({ message: "Updated discord users nickname based on status", - data, + data }); } catch (err) { logger.error(`Error while updating users nickname based on status: ${err}`); @@ -359,14 +359,14 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { if (!data.data.empty) { const roleInFirestore = { id: data.data.docs[0].id, - ...data.data.docs[0].data(), + ...data.data.docs[0].data() }; if (roleInFirestore.roleid !== role.id) { await discordRolesModel.updateGroupRole( { - roleid: role.id, + roleid: role.id }, - roleInFirestore.id, + roleInFirestore.id ); } } else { @@ -374,7 +374,7 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { createdBy: req.userData.id, rolename: role.name, roleid: role.id, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); } }); @@ -384,7 +384,7 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { return res.json({ response: allRolesInFirestore.groups, - message: `Discord groups synced with firestore successfully`, + message: `Discord groups synced with firestore successfully` }); } catch (error) { logger.error(`Error while updating discord groups ${error}`); @@ -403,7 +403,7 @@ const setRoleToUsersWith31DaysPlusOnboarding = async (req, res) => { const result = await discordRolesModel.updateUsersWith31DaysPlusOnboarding(); return res.status(201).json({ message: "All Users with 31 Days Plus Onboarding are updated successfully.", - ...result, + ...result }); } catch (error) { logger.error(`Error while setting group-onboarding-31d+ role : ${error}`); @@ -420,23 +420,23 @@ const generateInviteForUser = async (req, res) => { if (!modelResponse.notFound) { return res.status(409).json({ - message: "User invite is already present!", + message: "User invite is already present!" }); } const channelId = config.get("discordNewComersChannelId"); const authToken = jwt.sign({}, config.get("rdsServerlessBot.rdsServerLessPrivateKey"), { algorithm: "RS256", - expiresIn: config.get("rdsServerlessBot.ttl"), + expiresIn: config.get("rdsServerlessBot.ttl") }); const inviteOptions = { - channelId: channelId, + channelId: channelId }; const response = await fetch(`${DISCORD_BASE_URL}/invite`, { method: "POST", body: JSON.stringify(inviteOptions), - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } }); const discordInviteResponse = await response.json(); @@ -447,7 +447,7 @@ const generateInviteForUser = async (req, res) => { return res.status(201).json({ message: "invite generated successfully", - inviteLink, + inviteLink }); } catch (err) { logger.error(`Error in generating invite for user: ${err}`); @@ -472,7 +472,7 @@ const getUserDiscordInvite = async (req, res) => { return res.json({ message: "Invite returned successfully", - inviteLink: invite?.inviteLink, + inviteLink: invite?.inviteLink }); } catch (err) { logger.error(`Error in fetching user invite: ${err}`); @@ -494,5 +494,5 @@ module.exports = { syncDiscordGroupRolesInFirestore, setRoleToUsersWith31DaysPlusOnboarding, getUserDiscordInvite, - generateInviteForUser, + generateInviteForUser }; diff --git a/controllers/events.js b/controllers/events.js index 86aa60e20..d0b1b82fa 100644 --- a/controllers/events.js +++ b/controllers/events.js @@ -34,7 +34,7 @@ const createEvent = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't create event. Please try again later", + message: "Couldn't create event. Please try again later" }); } }; @@ -69,8 +69,8 @@ const getAllEvents = async (req, res) => { data: events.map(({ id, ...event }) => ({ id, room_id: id, - ...event, - })), + ...event + })) }; return res.status(200).json(filteredEventsData); } @@ -79,7 +79,7 @@ const getAllEvents = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't get events. Please try again later", + message: "Couldn't get events. Please try again later" }); } }; @@ -108,21 +108,21 @@ const joinEvent = async (req, res) => { if (!isEventCodeValid) { return res.status(400).json({ - message: "Provided event code is invalid for the role!", + message: "Provided event code is invalid for the role!" }); } const token = tokenService.getAuthToken({ ...payload, roomId: roomId }); return res.status(201).json({ token: token, - message: "Token generated successfully!", + message: "Token generated successfully!" }); } if (role === EVENT_ROLES.HOST || role === EVENT_ROLES.MODERATOR) { if (!req.userData) { return res.status(400).json({ - message: "Unauthorized, please login to perform this action!", + message: "Unauthorized, please login to perform this action!" }); } @@ -131,7 +131,7 @@ const joinEvent = async (req, res) => { return res.status(201).json({ token: token, - message: "Token generated successfully!", + message: "Token generated successfully!" }); } @@ -140,7 +140,7 @@ const joinEvent = async (req, res) => { return res.status(201).json({ token: token, - message: "Token generated successfully!", + message: "Token generated successfully!" }); } } @@ -149,7 +149,7 @@ const joinEvent = async (req, res) => { return res.status(201).json({ token: token, - message: "Token generated successfully!", + message: "Token generated successfully!" }); } catch (error) { logger.error({ error }); @@ -182,7 +182,7 @@ const getEventById = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Unable to retrieve event details", + message: "Unable to retrieve event details" }); } }; @@ -199,7 +199,7 @@ const getEventById = async (req, res) => { */ const updateEvent = async (req, res) => { const payload = { - enabled: req.body.enabled, + enabled: req.body.enabled }; try { const eventData = await apiService.post(`/rooms/${req.body.id}`, payload); @@ -207,13 +207,13 @@ const updateEvent = async (req, res) => { const event = removeUnwantedProperties(UNWANTED_PROPERTIES_FROM_100MS, eventData); return res.status(200).json({ data: { room_id: event.id, ...event }, - message: `Event is ${req.body.enabled ? "enabled" : "disabled"}`, + message: `Event is ${req.body.enabled ? "enabled" : "disabled"}` }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error, - message: "Couldn't update event. Please try again later.", + message: "Couldn't update event. Please try again later." }); } }; @@ -231,7 +231,7 @@ const updateEvent = async (req, res) => { const endActiveEvent = async (req, res) => { const payload = { reason: req.body.reason, - lock: req.body.lock, + lock: req.body.lock }; try { await apiService.post(`/active-rooms/${req.body.id}/end-room`, payload); @@ -241,7 +241,7 @@ const endActiveEvent = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't end the event. Please try again later", + message: "Couldn't end the event. Please try again later" }); } }; @@ -263,17 +263,17 @@ const addPeerToEvent = async (req, res) => { name: req.body.name, role: req.body.role, joinedAt: req.body.joinedAt, - eventId: req.params.id, + eventId: req.params.id }); return res.status(200).json({ data, - message: `Selected Participant is added to the event.`, + message: `Selected Participant is added to the event.` }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "You can't add selected Participant. Please ask Admin or Host for help.", + message: "You can't add selected Participant. Please ask Admin or Host for help." }); } }; @@ -292,7 +292,7 @@ const kickoutPeer = async (req, res) => { const { id } = req.params; const payload = { peer_id: req.body.peerId, - reason: req.body.reason, + reason: req.body.reason }; try { @@ -302,17 +302,17 @@ const kickoutPeer = async (req, res) => { addLog( logType.EVENTS_REMOVE_PEER, { removed_by_id: req.userData.id, removed_by_username: req.userData.username }, - { ...payload, event_id: id, peer_name: peer.name }, + { ...payload, event_id: id, peer_name: peer.name } ); return res.status(200).json({ - message: `Selected Participant is removed from event.`, + message: `Selected Participant is removed from event.` }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "You can't remove selected Participant from Remove, Please ask Admin or Host for help.", + message: "You can't remove selected Participant from Remove, Please ask Admin or Host for help." }); } }; @@ -325,7 +325,7 @@ const generateEventCode = async (req, res) => { if (role !== EVENT_ROLES.MAVEN) { return res.status(400).json({ - message: "Currently the room codes feature is only for mavens!", + message: "Currently the room codes feature is only for mavens!" }); } @@ -334,14 +334,14 @@ const generateEventCode = async (req, res) => { id: eventCodeUuid, event_id: id, code: eventCode, - role, + role }); return res.status(201).json({ message: "Event code created succesfully!", data: [...allEventCodeObjectFromDB] }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't create event code. Please try again later", + message: "Couldn't create event code. Please try again later" }); } }; @@ -364,13 +364,13 @@ const getEventCodes = async (req, res) => { return res.status(200).json({ message: "Event codes is successfully fetched for the event!", - data: eventCodes, + data: eventCodes }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Something went wrong while getting the event codes!", + message: "Something went wrong while getting the event codes!" }); } }; @@ -385,5 +385,5 @@ module.exports = { addPeerToEvent, kickoutPeer, generateEventCode, - getEventCodes, + getEventCodes }; diff --git a/controllers/extensionRequests.js b/controllers/extensionRequests.js index 174c3fd15..073c60305 100644 --- a/controllers/extensionRequests.js +++ b/controllers/extensionRequests.js @@ -52,7 +52,7 @@ const createTaskExtensionRequest = async (req, res) => { } const latestExtensionRequest = await extensionRequestsQuery.fetchLatestExtensionRequest({ - taskId: extensionBody.taskId, + taskId: extensionBody.taskId }); if (latestExtensionRequest && latestExtensionRequest.status === EXTENSION_REQUEST_STATUS.PENDING) { @@ -76,22 +76,22 @@ const createTaskExtensionRequest = async (req, res) => { type: "extensionRequests", meta: { taskId: extensionBody.taskId, - createdBy: req.userData.id, + createdBy: req.userData.id }, body: { extensionRequestId: extensionRequest.id, oldEndsOn: task.endsOn, newEndsOn: extensionBody.newEndsOn, assignee: extensionBody.assignee, - status: EXTENSION_REQUEST_STATUS.PENDING, - }, + status: EXTENSION_REQUEST_STATUS.PENDING + } }; await addLog(extensionLog.type, extensionLog.meta, extensionLog.body); return res.json({ message: "Extension Request created successfully!", - extensionRequest: { ...extensionBody, id: extensionRequest.id }, + extensionRequest: { ...extensionBody, id: extensionRequest.id } }); } catch (err) { logger.error(`Error while creating new extension request: ${err}`); @@ -133,7 +133,7 @@ const createTaskExtensionRequest = async (req, res) => { const prevExtensionRequest = await extensionRequestsQuery.fetchExtensionRequests({ taskId: extensionBody.taskId, - assignee: extensionBody.assignee, + assignee: extensionBody.assignee }); if (prevExtensionRequest.length) { return res.boom.forbidden("An extension request for this task already exists."); @@ -145,22 +145,22 @@ const createTaskExtensionRequest = async (req, res) => { type: "extensionRequests", meta: { taskId: extensionBody.taskId, - createdBy: req.userData.id, + createdBy: req.userData.id }, body: { extensionRequestId: extensionRequest.id, oldEndsOn: task.endsOn, newEndsOn: extensionBody.newEndsOn, assignee: extensionBody.assignee, - status: EXTENSION_REQUEST_STATUS.PENDING, - }, + status: EXTENSION_REQUEST_STATUS.PENDING + } }; await addLog(extensionLog.type, extensionLog.meta, extensionLog.body); return res.json({ message: "Extension Request created successfully!", - extensionRequest: { ...extensionBody, id: extensionRequest.id }, + extensionRequest: { ...extensionBody, id: extensionRequest.id } }); } catch (err) { logger.error(`Error while creating new extension request: ${err}`); @@ -183,11 +183,11 @@ const fetchExtensionRequests = async (req, res) => { const allExtensionRequests = await extensionRequestsQuery.fetchPaginatedExtensionRequests( { taskId, status: transformedStatus, assignee }, - { cursor, order, size: transformedSize }, + { cursor, order, size: transformedSize } ); return res.json({ message: "Extension Requests returned successfully!", - ...allExtensionRequests, + ...allExtensionRequests }); } catch (err) { logger.error(`Error while fetching Extension Requests ${err}`); @@ -228,7 +228,7 @@ const getSelfExtensionRequests = async (req, res) => { let allExtensionRequests; if (taskId) { const latestExtensionRequest = await extensionRequestsQuery.fetchLatestExtensionRequest({ - taskId, + taskId }); if (latestExtensionRequest && latestExtensionRequest.assigneeId !== userId) { @@ -238,7 +238,7 @@ const getSelfExtensionRequests = async (req, res) => { if (latestExtensionRequest.status === "APPROVED" || latestExtensionRequest.status === "DENIED") { const logs = await logsQuery.fetchLogs( { "meta.extensionRequestId": latestExtensionRequest.id, limit: 1 }, - "extensionRequests", + "extensionRequests" ); if ( @@ -257,7 +257,7 @@ const getSelfExtensionRequests = async (req, res) => { } else { allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({ assignee: userId, - status: status || undefined, + status: status || undefined }); } return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests }); @@ -269,7 +269,7 @@ const getSelfExtensionRequests = async (req, res) => { const allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({ taskId, assignee: userId, - status: status || undefined, + status: status || undefined }); return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests }); } else { @@ -325,9 +325,9 @@ const updateExtensionRequest = async (req, res) => { meta: { extensionRequestId: req.params.id, taskId: extensionRequest.extensionRequestData.taskId, - userId: req.userData.id, + userId: req.userData.id }, - body, + body }; promises.push(addLog(extensionLog.type, extensionLog.meta, extensionLog.body)); } @@ -360,16 +360,16 @@ const updateExtensionRequestStatus = async (req, res) => { extensionRequestId: req.params.id, taskId: extensionRequest.extensionRequestData.taskId, username: req.userData.username, - userId: req.userData.id, + userId: req.userData.id }, body: { - status: extensionStatus, - }, + status: extensionStatus + } }; const promises = [ extensionRequestsQuery.updateExtensionRequest(req.body, req.params.id), - addLog(extensionLog.type, extensionLog.meta, extensionLog.body), + addLog(extensionLog.type, extensionLog.meta, extensionLog.body) ]; if (extensionStatus === EXTENSION_REQUEST_STATUS.APPROVED) { @@ -378,20 +378,20 @@ const updateExtensionRequestStatus = async (req, res) => { meta: { taskId: extensionRequest.extensionRequestData.taskId, username: req.userData.username, - userId: req.userData.id, + userId: req.userData.id }, body: { subType: "update", new: { - endsOn: extensionRequest.extensionRequestData.newEndsOn, - }, - }, + endsOn: extensionRequest.extensionRequestData.newEndsOn + } + } }; promises.push( tasks.updateTask( { endsOn: extensionRequest.extensionRequestData.newEndsOn }, - extensionRequest.extensionRequestData.taskId, - ), + extensionRequest.extensionRequestData.taskId + ) ); promises.push(addLog(taskLog.type, taskLog.meta, taskLog.body)); } @@ -412,5 +412,5 @@ module.exports = { getExtensionRequest, getSelfExtensionRequests, updateExtensionRequest, - updateExtensionRequestStatus, + updateExtensionRequestStatus }; diff --git a/controllers/external-accounts.js b/controllers/external-accounts.js index 3bc83326f..84e83c38e 100644 --- a/controllers/external-accounts.js +++ b/controllers/external-accounts.js @@ -64,9 +64,9 @@ const linkExternalAccount = async (req, res) => { { roles: { ...roles, in_discord: true }, discordId: attributes.discordId, - discordJoinedAt: attributes.discordJoinedAt, + discordJoinedAt: attributes.discordJoinedAt }, - userId, + userId ); return res.status(204).json({ message: "Your discord profile has been linked successfully" }); @@ -93,7 +93,7 @@ const syncExternalAccountData = async (req, res) => { rdsUserData.forEach((rdsUser) => { rdsUserDataMap[rdsUser.discordId] = { id: rdsUser.id, - roles: rdsUser.roles, + roles: rdsUser.roles }; }); @@ -105,8 +105,8 @@ const syncExternalAccountData = async (req, res) => { userData = { roles: { ...rdsUser.roles, - in_discord: false, - }, + in_discord: false + } }; userUpdatedWithInDiscordFalse.push(rdsUser); } else if (discordUser) { @@ -114,8 +114,8 @@ const syncExternalAccountData = async (req, res) => { discordJoinedAt: discordUser.joined_at, roles: { ...rdsUser.roles, - in_discord: true, - }, + in_discord: true + } }; } updateUserDataPromises.push(addOrUpdate(userData, rdsUser.id)); @@ -129,8 +129,8 @@ const syncExternalAccountData = async (req, res) => { const userData = { roles: { ...user.roles, - archived: false, - }, + archived: false + } }; updateArchivedPromises.push(addOrUpdate(userData, user.id)); } @@ -143,7 +143,7 @@ const syncExternalAccountData = async (req, res) => { discordUsers: discordUserData.length, userUpdatedWithInDiscordFalse: userUpdatedWithInDiscordFalse.length, usersMarkedUnArchived: updateArchivedPromises.length, - message: "Data Sync Complete", + message: "Data Sync Complete" }); } catch (err) { logger.error("Error in syncing users discord joined at", err); @@ -172,7 +172,7 @@ const newSyncExternalAccountData = async (req, res) => { try { const [discordUserData, unArchivedRdsUsersData] = await Promise.all([ getDiscordMembers(), - fetchUsersForKeyValues("roles.archived", false), + fetchUsersForKeyValues("roles.archived", false) ]); let usersArchivedCount = 0; let usersUnArchivedCount = 0; @@ -199,8 +199,8 @@ const newSyncExternalAccountData = async (req, res) => { roles: { ...rdsUser.roles, in_discord: true, - archived: false, - }, + archived: false + } }; } else { usersArchivedCount++; @@ -209,8 +209,8 @@ const newSyncExternalAccountData = async (req, res) => { roles: { ...rdsUser.roles, in_discord: false, - archived: true, - }, + archived: true + } }; archiveUserList.push({ id: rdsUser.id }); // adding users which are to be archived } @@ -231,8 +231,8 @@ const newSyncExternalAccountData = async (req, res) => { roles: { ...rdsUser.roles, in_discord: true, - archived: false, - }, + archived: false + } }; updateUserList.push(userData); } @@ -241,7 +241,7 @@ const newSyncExternalAccountData = async (req, res) => { const [, , backlogTasksCount] = await Promise.all([ unArchiveUsersInBatchPromise, archiveUsersInBatchPromise, - markTasksBacklogPromise, + markTasksBacklogPromise ]); return res.json({ @@ -250,7 +250,7 @@ const newSyncExternalAccountData = async (req, res) => { usersUnArchivedCount: usersUnArchivedCount, totalUsersProcessed: totalUsersProcessed, rdsDiscordServerUsers: discordUserData.length, - backlogTasksCount: backlogTasksCount, + backlogTasksCount: backlogTasksCount }); } catch (err) { logger.error("Error in syncing users discord joined at"); @@ -264,5 +264,5 @@ module.exports = { linkExternalAccount, syncExternalAccountData, newSyncExternalAccountData, - externalAccountsUsersPostHandler, + externalAccountsUsersPostHandler }; diff --git a/controllers/fcmToken.js b/controllers/fcmToken.js index a60521ab5..a89ad0a31 100644 --- a/controllers/fcmToken.js +++ b/controllers/fcmToken.js @@ -16,7 +16,7 @@ const fcmTokenController = async (req, res) => { } catch (error) { if (error instanceof Conflict) { return res.status(409).json({ - message: error.message, + message: error.message }); } res.status(500).send("Something went wrong, please contact admin"); @@ -25,5 +25,5 @@ const fcmTokenController = async (req, res) => { }; module.exports = { - fcmTokenController, + fcmTokenController }; diff --git a/controllers/goals.js b/controllers/goals.js index 29078fda9..162cf5967 100644 --- a/controllers/goals.js +++ b/controllers/goals.js @@ -20,5 +20,5 @@ const getGoalSiteToken = async (req, res) => { }; module.exports = { - getGoalSiteToken, + getGoalSiteToken }; diff --git a/controllers/health.js b/controllers/health.js index 9a50d8aca..6fd76a7f6 100644 --- a/controllers/health.js +++ b/controllers/health.js @@ -6,10 +6,10 @@ */ const healthCheck = (req, res) => { return res.json({ - uptime: process.uptime(), + uptime: process.uptime() }); }; module.exports = { - healthCheck, + healthCheck }; diff --git a/controllers/issues.js b/controllers/issues.js index 2bc6c23ed..31ea0cb2d 100644 --- a/controllers/issues.js +++ b/controllers/issues.js @@ -43,7 +43,7 @@ const getIssues = async (req, res) => { const updatedIsuees = await Promise.all(issuesData); return res.json({ message: "Issues returned successfully!", - issues: updatedIsuees, + issues: updatedIsuees }); } catch (err) { logger.error(`Error while retriving issues ${err}`); @@ -70,8 +70,8 @@ const issueUpdates = async (req, res) => { updatedTaskData.github = { issue: { ...updatedTaskData.github.issue, - status: issue.state, - }, + status: issue.state + } }; // If the issue has any updates with the assignee @@ -92,16 +92,16 @@ const issueUpdates = async (req, res) => { await tasks.updateTask(updatedTaskData, taskData.id); return res.json({ - message: "Task updated successfully", + message: "Task updated successfully" }); } else { return res.json({ - message: "No task was found for the updated issue", + message: "No task was found for the updated issue" }); } } return res.json({ - message: "No issue was updated", + message: "No issue was updated" }); } catch (err) { logger.error(`Error while retriving issues ${err}`); @@ -111,5 +111,5 @@ const issueUpdates = async (req, res) => { module.exports = { getIssues, - issueUpdates, + issueUpdates }; diff --git a/controllers/items.js b/controllers/items.js index 72da07522..20aeec36d 100644 --- a/controllers/items.js +++ b/controllers/items.js @@ -13,7 +13,7 @@ const addTagsToItem = async (req, res) => { const { itemId } = await ItemTagsModel.addTagsToItem(req.body); return res.json({ message: "Tags added successfully!", - itemId, + itemId }); } catch (err) { logger.error(`Error while creating new item: ${err}`); @@ -34,7 +34,7 @@ const removeTagsFromItem = async (req, res) => { return res.json({ message: "Tags removed successfully!", itemId, - tagId, + tagId }); } catch (err) { logger.error(`Error while creating new item: ${err}`); @@ -57,7 +57,7 @@ const getItemBasedOnFilter = async (req, res) => { const items = await ItemTagsModel.getItemBasedOnFilter(req.query); return res.json({ message: "Items fetched Successfully", - data: items, + data: items }); } catch (err) { logger.error(`Error while creating new item: ${err}`); @@ -68,5 +68,5 @@ const getItemBasedOnFilter = async (req, res) => { module.exports = { addTagsToItem, removeTagsFromItem, - getItemBasedOnFilter, + getItemBasedOnFilter }; diff --git a/controllers/levels.js b/controllers/levels.js index e7f9d94d8..92ea5a08a 100644 --- a/controllers/levels.js +++ b/controllers/levels.js @@ -14,14 +14,14 @@ const addLevel = async (req, res) => { const { id, levelData } = await LevelModel.addLevel({ ...req.body, createdBy: req.userData.id, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); return res.json({ message: "Level created successfully!", data: { level: levelData, - id, - }, + id + } }); } catch (err) { logger.error(`Error while creating new level: ${err}`); @@ -40,7 +40,7 @@ const deleteLevel = async (req, res) => { try { await LevelModel.deleteLevel(req.params.levelid); return res.json({ - message: "Level Deleted successfully!", + message: "Level Deleted successfully!" }); } catch (err) { logger.error(`Error while creating new Level: ${err}`); @@ -59,7 +59,7 @@ const getAllLevels = async (req, res) => { const { allLevels } = await LevelModel.getAllLevels(); return res.json({ message: "Levels returned Successfully", - levels: allLevels, + levels: allLevels }); } catch (err) { logger.error(`Error while creating new Level: ${err}`); @@ -70,5 +70,5 @@ const getAllLevels = async (req, res) => { module.exports = { addLevel, deleteLevel, - getAllLevels, + getAllLevels }; diff --git a/controllers/logs.js b/controllers/logs.js index f5d0e49ac..f8c7095de 100644 --- a/controllers/logs.js +++ b/controllers/logs.js @@ -14,7 +14,7 @@ const fetchLogs = async (req, res) => { const logs = await logsQuery.fetchLogs(req.query, req.params.type); return res.json({ message: LOGS_FETCHED_SUCCESSFULLY, - logs, + logs }); } catch (error) { logger.error(`${ERROR_WHILE_FETCHING_LOGS}: ${error}`); @@ -38,7 +38,7 @@ const fetchAllLogs = async (req, res) => { return res.status(200).json({ message: ALL_LOGS_FETCHED_SUCCESSFULLY, data: allLogs, - page: pageLink, + page: pageLink }); } @@ -49,7 +49,7 @@ const fetchAllLogs = async (req, res) => { endpoint: "/logs", query, cursorKey: "next", - docId: next, + docId: next }); nextUrl = nextLink; } @@ -58,7 +58,7 @@ const fetchAllLogs = async (req, res) => { endpoint: "/logs", query, cursorKey: "prev", - docId: prev, + docId: prev }); prevUrl = prevLink; } @@ -67,7 +67,7 @@ const fetchAllLogs = async (req, res) => { message: ALL_LOGS_FETCHED_SUCCESSFULLY, data: allLogs, next: nextUrl, - prev: prevUrl, + prev: prevUrl }); } catch (err) { logger.error(ERROR_WHILE_FETCHING_LOGS, err); @@ -77,5 +77,5 @@ const fetchAllLogs = async (req, res) => { module.exports = { fetchLogs, - fetchAllLogs, + fetchAllLogs }; diff --git a/controllers/members.js b/controllers/members.js index 1ece7d3bc..888304ee8 100644 --- a/controllers/members.js +++ b/controllers/members.js @@ -16,7 +16,7 @@ const getMembers = async (req, res) => { const allUsers = await dataAccess.retrieveMembers(req.query); return res.json({ message: allUsers.length ? "Members returned successfully!" : "No member found", - members: allUsers, + members: allUsers }); } catch (error) { logger.error(`Error while fetching all members: ${error}`); @@ -40,7 +40,7 @@ const getIdleMembers = async (req, res) => { return res.json({ message: idleMemberUserNames.length ? "Idle members returned successfully!" : "No idle member found", - idleMemberUserNames, + idleMemberUserNames }); } catch (error) { logger.error(`Error while fetching all members: ${error}`); @@ -96,12 +96,12 @@ const archiveMembers = async (req, res) => { reason: reason || "", archived_user: { user_id: user.user.id, - username: user.user.username, + username: user.user.username }, archived_by: { user_id: superUserId, - roles: roles, - }, + roles: roles + } }; addLog("archived-details", {}, body); @@ -118,5 +118,5 @@ module.exports = { archiveMembers, getMembers, getIdleMembers, - moveToMembers, + moveToMembers }; diff --git a/controllers/monitor.js b/controllers/monitor.js index 2d9fa2c13..cb46d6a03 100644 --- a/controllers/monitor.js +++ b/controllers/monitor.js @@ -3,7 +3,7 @@ const { INTERNAL_SERVER_ERROR_MESSAGE } = require("../constants/progresses"); const { createTrackedProgressDocument, updateTrackedProgressDocument, - getTrackedProgressDocuments, + getTrackedProgressDocuments } = require("../models/monitor"); const { RESPONSE_MESSAGES } = require("../constants/monitor"); const { RESOURCE_CREATED_SUCCESSFULLY, RESOURCE_UPDATED_SUCCESSFULLY, RESOURCE_RETRIEVED_SUCCESSFULLY } = @@ -48,20 +48,20 @@ const createTrackedProgressController = async (req, res) => { const data = await createTrackedProgressDocument({ ...req.body }); return res.status(201).json({ message: RESOURCE_CREATED_SUCCESSFULLY, - data, + data }); } catch (error) { if (error instanceof Conflict) { return res.status(409).json({ - message: error.message, + message: error.message }); } else if (error instanceof NotFound) { return res.status(404).json({ - message: error.message, + message: error.message }); } return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; @@ -110,16 +110,16 @@ const updateTrackedProgressController = async (req, res) => { const data = await updateTrackedProgressDocument({ ...req }); return res.status(200).json({ data, - message: RESOURCE_UPDATED_SUCCESSFULLY, + message: RESOURCE_UPDATED_SUCCESSFULLY }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message, + message: error.message }); } return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; @@ -163,12 +163,12 @@ const getTrackedProgressController = async (req, res) => { const data = await getTrackedProgressDocuments({ ...req.query }); return res.status(200).json({ message: RESOURCE_RETRIEVED_SUCCESSFULLY, - data, + data }); } catch (error) { if (error instanceof NotFound) { const response = { - message: error.message, + message: error.message }; if (req.query.type) { response.data = []; @@ -176,7 +176,7 @@ const getTrackedProgressController = async (req, res) => { return res.status(404).json(response); } return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; @@ -184,5 +184,5 @@ const getTrackedProgressController = async (req, res) => { module.exports = { createTrackedProgressController, updateTrackedProgressController, - getTrackedProgressController, + getTrackedProgressController }; diff --git a/controllers/notify.js b/controllers/notify.js index ee0bcdaa4..43c8fd98e 100644 --- a/controllers/notify.js +++ b/controllers/notify.js @@ -48,13 +48,13 @@ const notifyController = async (req, res) => { const message = { notification: { title: title || "Notification Title", - body: body || "Notification Body", + body: body || "Notification Body" }, data: { key1: "value1", - key2: "value2", + key2: "value2" }, - tokens: Array.from(setOfFcmTokens), + tokens: Array.from(setOfFcmTokens) }; function calculateMessageSize(message) { const byteArray = new TextEncoder().encode(message); @@ -79,5 +79,5 @@ const notifyController = async (req, res) => { }; module.exports = { - notifyController, + notifyController }; diff --git a/controllers/profileDiffs.js b/controllers/profileDiffs.js index db459b29e..ea8c9f255 100644 --- a/controllers/profileDiffs.js +++ b/controllers/profileDiffs.js @@ -14,7 +14,7 @@ const getProfileDiffs = async (req, res) => { return res.json({ message: "Profile Diffs returned successfully!", - profileDiffs: pendingProfileDiffs, + profileDiffs: pendingProfileDiffs }); } catch (error) { logger.error(`Error while fetching profile diffs: ${error}`); @@ -23,5 +23,5 @@ const getProfileDiffs = async (req, res) => { }; module.exports = { - getProfileDiffs, + getProfileDiffs }; diff --git a/controllers/progresses.js b/controllers/progresses.js index cdf1f31bc..065d6e602 100644 --- a/controllers/progresses.js +++ b/controllers/progresses.js @@ -3,7 +3,7 @@ const { createProgressDocument, getProgressDocument, getRangeProgressData, - getProgressByDate, + getProgressByDate } = require("../models/progresses"); const { PROGRESSES_RESPONSE_MESSAGES, INTERNAL_SERVER_ERROR_MESSAGE } = require("../constants/progresses"); const { sendTaskUpdate } = require("../utils/sendTaskUpdate"); @@ -46,28 +46,28 @@ const { PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, PROGRESS_DOCUMENT_CREATED_SUCCEED const createProgress = async (req, res) => { const { - body: { type, completed, planned, blockers, taskId }, + body: { type, completed, planned, blockers, taskId } } = req; try { const { data, taskTitle } = await createProgressDocument({ ...req.body, userId: req.userData.id }); await sendTaskUpdate(completed, blockers, planned, req.userData.username, taskId, taskTitle); return res.status(201).json({ data, - message: `${type.charAt(0).toUpperCase() + type.slice(1)} ${PROGRESS_DOCUMENT_CREATED_SUCCEEDED}`, + message: `${type.charAt(0).toUpperCase() + type.slice(1)} ${PROGRESS_DOCUMENT_CREATED_SUCCEEDED}` }); } catch (error) { if (error instanceof Conflict) { return res.status(409).json({ - message: error.message, + message: error.message }); } else if (error instanceof NotFound) { return res.status(404).json({ - message: error.message, + message: error.message }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; @@ -112,17 +112,17 @@ const getProgress = async (req, res) => { return res.json({ message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, count: data.length, - data, + data }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message, + message: error.message }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; @@ -166,17 +166,17 @@ const getProgressRangeData = async (req, res) => { const data = await getRangeProgressData(req.query); return res.json({ message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, - data, + data }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message, + message: error.message }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; @@ -220,17 +220,17 @@ const getProgressBydDateController = async (req, res) => { const data = await getProgressByDate(req.params); return res.json({ message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, - data, + data }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message, + message: error.message }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE, + message: INTERNAL_SERVER_ERROR_MESSAGE }); } }; diff --git a/controllers/pullRequests.js b/controllers/pullRequests.js index 116c434cb..196f855c6 100644 --- a/controllers/pullRequests.js +++ b/controllers/pullRequests.js @@ -17,12 +17,12 @@ const getUserPRs = async (req, res) => { const allPRs = githubService.extractPRdetails(data); return res.json({ message: "Pull requests returned successfully!", - pullRequests: allPRs, + pullRequests: allPRs }); } return res.json({ message: "No pull requests found!", - pullRequests: [], + pullRequests: [] }); } catch (err) { logger.error(`Error while processing pull requests: ${err}`); @@ -47,12 +47,12 @@ const getStalePRs = async (req, res) => { const allPRs = githubService.extractPRdetails(data); return res.json({ message: "Stale PRs", - pullRequests: allPRs, + pullRequests: allPRs }); } return res.json({ message: "No pull requests found!", - pullRequests: [], + pullRequests: [] }); } catch (err) { logger.error(`Error while processing pull requests: ${err}`); @@ -77,12 +77,12 @@ const getOpenPRs = async (req, res) => { const allPRs = githubService.extractPRdetails(data); return res.json({ message: "Open PRs", - pullRequests: allPRs, + pullRequests: allPRs }); } return res.json({ message: "No pull requests found!", - pullRequests: [], + pullRequests: [] }); } catch (err) { logger.error(`Error while processing pull requests: ${err}`); @@ -93,5 +93,5 @@ const getOpenPRs = async (req, res) => { module.exports = { getUserPRs, getStalePRs, - getOpenPRs, + getOpenPRs }; diff --git a/controllers/recruiters.js b/controllers/recruiters.js index b363b31b1..ccacc65de 100644 --- a/controllers/recruiters.js +++ b/controllers/recruiters.js @@ -16,7 +16,7 @@ const addRecruiter = async (req, res) => { } return res.json({ message: "Request Submission Successful!!", - result, + result }); } catch (error) { logger.error(`Error while adding recruiterInfo: ${error}`); @@ -35,7 +35,7 @@ const fetchRecruitersInfo = async (req, res) => { const allRecruiter = await recruiterQuery.fetchRecruitersInfo(); return res.json({ message: "Recruiters returned successfully!", - recruiters: allRecruiter.length > 0 ? allRecruiter : [], + recruiters: allRecruiter.length > 0 ? allRecruiter : [] }); } catch (error) { logger.error(`Error while fetching recruiters: ${error}`); @@ -45,5 +45,5 @@ const fetchRecruitersInfo = async (req, res) => { module.exports = { addRecruiter, - fetchRecruitersInfo, + fetchRecruitersInfo }; diff --git a/controllers/staging.js b/controllers/staging.js index a18a6e983..e54af8d0b 100644 --- a/controllers/staging.js +++ b/controllers/staging.js @@ -5,7 +5,7 @@ const updateRoles = async (req, res) => { const userData = await req.userData; if (process.env.NODE_ENV === "production") { return res.status(403).json({ - message: "FORBIDDEN | To be used only in staging and development", + message: "FORBIDDEN | To be used only in staging and development" }); } const userId = req.userData.id; @@ -13,19 +13,19 @@ const updateRoles = async (req, res) => { { roles: { ...userData.roles, - ...req.body, + ...req.body }, - updated_at: Date.now(), + updated_at: Date.now() }, - userId, + userId ); return res.status(200).json({ - message: "Roles Updated successfully", + message: "Roles Updated successfully" }); } catch (err) { logger.error(`Oops an error occured: ${err}`); return res.status(500).json({ - message: "Oops an internal error occured", + message: "Oops an internal error occured" }); } }; @@ -33,7 +33,7 @@ const updateRoles = async (req, res) => { const removePrivileges = async (req, res) => { if (process.env.NODE_ENV === "production") { return res.status(403).json({ - message: "FORBIDDEN | To be used only in staging and development", + message: "FORBIDDEN | To be used only in staging and development" }); } try { @@ -47,12 +47,12 @@ const removePrivileges = async (req, res) => { { roles: { ...member.roles, - member: false, + member: false }, - updated_at: Date.now(), + updated_at: Date.now() }, - member.id, - ), + member.id + ) ); }); superUsers.forEach((superUser) => { @@ -61,29 +61,29 @@ const removePrivileges = async (req, res) => { { roles: { ...superUser.roles, - super_user: false, + super_user: false }, - updated_at: Date.now(), + updated_at: Date.now() }, - superUser.id, - ), + superUser.id + ) ); }); await Promise.all(updateUserPromises); return res.status(200).json({ - message: "Roles Updated successfully", + message: "Roles Updated successfully" }); } catch (err) { logger.error(`Oops an error occurred: ${err}`); return res.status(500).json({ - message: "Oops an internal error occurred", + message: "Oops an internal error occurred" }); } }; module.exports = { updateRoles, - removePrivileges, + removePrivileges }; diff --git a/controllers/stocks.js b/controllers/stocks.js index 1f914098b..0c62c34df 100644 --- a/controllers/stocks.js +++ b/controllers/stocks.js @@ -13,7 +13,7 @@ const addNewStock = async (req, res) => { return res.json({ message: "Stock created successfully!", stock: stockData, - id, + id }); } catch (err) { logger.error(`Error while creating new stock: ${err}`); @@ -31,7 +31,7 @@ const fetchStocks = async (req, res) => { const allStock = await stocks.fetchStocks(); return res.json({ message: allStock.length > 0 ? "Stocks returned successfully!" : "No stocks found", - stock: allStock.length > 0 ? allStock : [], + stock: allStock.length > 0 ? allStock : [] }); } catch (err) { logger.error(`Error while fetching stocks ${err}`); @@ -50,7 +50,7 @@ const getSelfStocks = async (req, res) => { const userStocks = await stocks.fetchUserStocks(userId); return res.json({ message: userStocks.length > 0 ? "User stocks returned successfully!" : "No stocks found", - userStocks, + userStocks }); } catch (err) { logger.error(`Error while getting user stocks ${err}`); @@ -61,5 +61,5 @@ const getSelfStocks = async (req, res) => { module.exports = { addNewStock, fetchStocks, - getSelfStocks, + getSelfStocks }; diff --git a/controllers/tags.js b/controllers/tags.js index 738c9b7b4..bdb8dfe47 100644 --- a/controllers/tags.js +++ b/controllers/tags.js @@ -14,17 +14,17 @@ const addTag = async (req, res) => { const { id, tagData, message } = await TagModel.addTag({ ...req.body, createdBy: req.userData.id, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); if (id) { return res.json({ message, - data: { tag: tagData, id }, + data: { tag: tagData, id } }); } else { return res.status(400).json({ message, - data: { tag: tagData }, + data: { tag: tagData } }); } } catch (err) { @@ -45,7 +45,7 @@ const deleteTag = async (req, res) => { const { id } = await TagModel.deleteTag(req.params.tagid); return res.json({ message: "Tag Deleted successfully!", - id, + id }); } catch (err) { logger.error(`Error while deleting the tag: ${err}`); @@ -64,7 +64,7 @@ const getAllTags = async (req, res) => { const { allTags } = await TagModel.getAllTags(); return res.json({ message: "Tags returned successfully", - tags: allTags, + tags: allTags }); } catch (err) { logger.error(`Error while fetching all the tag: ${err}`); @@ -78,7 +78,7 @@ const getTagsByType = async (req, res) => { const { tags } = await TagModel.getTagByType(type); return res.json({ message: `Tags of type: ${type} returned successfully`, - tags, + tags }); } catch (err) { logger.error(`Error while fetching the tags: ${err}`); @@ -90,5 +90,5 @@ module.exports = { addTag, deleteTag, getAllTags, - getTagsByType, + getTagsByType }; diff --git a/controllers/tasks.js b/controllers/tasks.js index a041ebeeb..9f83645bf 100644 --- a/controllers/tasks.js +++ b/controllers/tasks.js @@ -34,13 +34,13 @@ const addNewTask = async (req, res) => { ...req.body, createdBy, createdAt: timeStamp, - updatedAt: timeStamp, + updatedAt: timeStamp }; delete body.dependsOn; const { taskId, taskDetails } = await tasks.updateTask(body); const data = { taskId, - dependsOn, + dependsOn }; const taskDependency = dependsOn && (await dependencyModel.addDependency(data)); if (req.body.assignee) { @@ -51,9 +51,9 @@ const addNewTask = async (req, res) => { task: { ...taskDetails, ...(taskDependency && { dependsOn: taskDependency }), - id: taskId, + id: taskId }, - ...(userStatusUpdate && { userStatus: userStatusUpdate }), + ...(userStatusUpdate && { userStatus: userStatusUpdate }) }); } catch (err) { logger.error(`Error while creating new task: ${err}`); @@ -81,9 +81,9 @@ const fetchTasksWithRdsAssigneeInfo = async (allTasks) => { ...task.github, issue: { ...task.github.issue, - assigneeRdsInfo: await getRdsUserInfoByGitHubUsername(task.github.issue.assignee), - }, - }, + assigneeRdsInfo: await getRdsUserInfoByGitHubUsername(task.github.issue.assignee) + } + } }; } } @@ -102,7 +102,7 @@ const fetchPaginatedTasks = async (query) => { const result = { tasks: tasksWithRdsAssigneeInfo.length > 0 ? tasksWithRdsAssigneeInfo : [], prev, - next, + next }; if (next) { @@ -110,7 +110,7 @@ const fetchPaginatedTasks = async (query) => { endpoint: "/tasks", query, cursorKey: "next", - docId: next, + docId: next }); result.next = nextLink; } @@ -120,7 +120,7 @@ const fetchPaginatedTasks = async (query) => { endpoint: "/tasks", query, cursorKey: "prev", - docId: prev, + docId: prev }); result.prev = prevLink; } @@ -141,7 +141,7 @@ const fetchTasks = async (req, res) => { const paginatedTasks = await fetchPaginatedTasks({ ...transformedQuery, prev, next, userFeatureFlag }); return res.json({ message: "Tasks returned successfully!", - ...paginatedTasks, + ...paginatedTasks }); } @@ -150,7 +150,7 @@ const fetchTasks = async (req, res) => { if (!searchParams.searchTerm) { return res.status(404).json({ message: "No tasks found.", - tasks: [], + tasks: [] }); } const filterTasks = await tasks.fetchTasks(searchParams.searchTerm); @@ -158,12 +158,12 @@ const fetchTasks = async (req, res) => { if (tasksWithRdsAssigneeInfo.length === 0) { return res.status(404).json({ message: "No tasks found.", - tasks: [], + tasks: [] }); } return res.json({ message: "Filter tasks returned successfully!", - tasks: tasksWithRdsAssigneeInfo, + tasks: tasksWithRdsAssigneeInfo }); } @@ -172,12 +172,12 @@ const fetchTasks = async (req, res) => { if (tasksWithRdsAssigneeInfo.length === 0) { return res.status(404).json({ message: "No tasks found", - tasks: [], + tasks: [] }); } return res.json({ message: "Tasks returned successfully!", - tasks: tasksWithRdsAssigneeInfo, + tasks: tasksWithRdsAssigneeInfo }); } catch (err) { logger.error(`Error while fetching tasks ${err}`); @@ -216,7 +216,7 @@ const getUserTasks = async (req, res) => { return res.json({ message: "Tasks returned successfully!", - tasks: allTasks.length > 0 ? allTasks : [], + tasks: allTasks.length > 0 ? allTasks : [] }); } catch (err) { logger.error(`Error while fetching tasks: ${err}`); @@ -260,7 +260,7 @@ const getTask = async (req, res) => { } return res.json({ message: "task returned successfully", - taskData: { ...taskData, dependsOn: dependencyDocReference }, + taskData: { ...taskData, dependsOn: dependencyDocReference } }); } catch (err) { return res.boom.badImplementation(INTERNAL_SERVER_ERROR); @@ -355,12 +355,12 @@ const updateTaskStatus = async (req, res, next) => { return res.boom.badRequest( `The status of task can not be changed from ${ isCurrentTaskStatusInProgress ? "In progress" : "Blocked" - } until progress of task is not 100%.`, + } until progress of task is not 100%.` ); } if (isNewTaskStatusInProgress && !isCurrentTaskStatusBlock && !isCurrProgress0 && !isNewProgress0) { return res.boom.badRequest( - "The status of task can not be changed to In progress until progress of task is not 0%.", + "The status of task can not be changed to In progress until progress of task is not 0%." ); } } @@ -388,12 +388,12 @@ const updateTaskStatus = async (req, res, next) => { meta: { userId, taskId, - username, + username }, body: { subType: "update", - new: {}, - }, + new: {} + } }; if (status && !req.body.percentCompleted) { @@ -410,7 +410,7 @@ const updateTaskStatus = async (req, res, next) => { const [, taskLogResult] = await Promise.all([ tasks.updateTask(req.body, taskId), - addLog(taskLog.type, taskLog.meta, taskLog.body), + addLog(taskLog.type, taskLog.meta, taskLog.body) ]); taskLog.id = taskLogResult.id; @@ -420,7 +420,7 @@ const updateTaskStatus = async (req, res, next) => { return res.json({ message: "Task updated successfully!", taskLog, - ...(userStatusUpdate && { userStatus: userStatusUpdate }), + ...(userStatusUpdate && { userStatus: userStatusUpdate }) }); } catch (err) { logger.error(`Error while updating task status : ${err}`); @@ -439,12 +439,12 @@ const overdueTasks = async (req, res) => { const allTasks = await tasks.fetchTasks(); const now = Math.floor(Date.now() / 1000); const overDueTasks = allTasks.filter( - (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now, + (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now ); const newAvailableTasks = await tasks.overdueTasks(overDueTasks); return res.json({ message: newAvailableTasks.length ? "Overdue Tasks returned successfully!" : "No overdue tasks found", - newAvailableTasks, + newAvailableTasks }); } catch (err) { logger.error(`Error while fetching overdue tasks : ${err}`); @@ -510,7 +510,7 @@ const getUsersHandler = async (req, res) => { weekdayList, dateList, status, - size: transformedSize, + size: transformedSize } = transformTasksUsersQuery({ ...filterQueries, size }); if (status === tasksUsersStatus.MISSED_UPDATES) { const response = await getMissedProgressUpdatesUsers({ @@ -518,7 +518,7 @@ const getUsersHandler = async (req, res) => { size: transformedSize, excludedDates: dateList, excludedDays: weekdayList, - dateGap: dateGap, + dateGap: dateGap }); if (response.error) { @@ -534,12 +534,12 @@ const getUsersHandler = async (req, res) => { const taskRequestLog = { type: logType.TASKS_MISSED_UPDATES_ERRORS, meta: { - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }, body: { request: req.query, - error: error.toString(), - }, + error: error.toString() + } }; await addLog(taskRequestLog.type, taskRequestLog.meta, taskRequestLog.body); logger.error("Error in fetching users details of tasks", error); @@ -559,5 +559,5 @@ module.exports = { assignTask, updateStatus, getUsersHandler, - orphanTasks, + orphanTasks }; diff --git a/controllers/tasksRequests.js b/controllers/tasksRequests.js index d647e564e..a9dca4795 100644 --- a/controllers/tasksRequests.js +++ b/controllers/tasksRequests.js @@ -16,7 +16,7 @@ const fetchTaskRequests = async (_, res) => { return res.status(200).json({ message: "Task requests returned successfully", - ...data, + ...data }); } catch (err) { logger.error("Error while fetching task requests", err); @@ -31,12 +31,12 @@ const fetchTaskRequestById = async (req, res) => { if (!data.taskRequestExists) { return res.status(404).json({ - message: "Task request not found", + message: "Task request not found" }); } return res.status(200).json({ message: "Task request returned successfully", - data: data.taskRequestData, + data: data.taskRequestData }); } catch (err) { logger.error("Error while fetching task requests", err); @@ -107,9 +107,9 @@ const addTaskRequests = async (req, res) => { createdBy: req.userData.id, createdAt: Date.now(), lastModifiedBy: req.userData.id, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }, - body: newTaskRequest.taskRequest, + body: newTaskRequest.taskRequest }; await addLog(taskRequestLog.type, taskRequestLog.meta, taskRequestLog.body); @@ -118,8 +118,8 @@ const addTaskRequests = async (req, res) => { message: "Task request successful.", data: { id: newTaskRequest.id, - ...newTaskRequest.taskRequest, - }, + ...newTaskRequest.taskRequest + } }); } catch (err) { logger.error("Error while creating task request"); @@ -148,13 +148,13 @@ const addOrUpdate = async (req, res) => { if (response.isCreate) { return res.status(201).json({ message: "Task request successfully created", - taskRequest: response.taskRequest, + taskRequest: response.taskRequest }); } return res.status(200).json({ message: "Task request successfully updated", - requestors: response.requestors, + requestors: response.requestors }); } catch (err) { logger.error("Error while creating task request"); @@ -209,15 +209,15 @@ const updateTaskRequests = async (req, res) => { createdBy: req.userData.id, createdAt: Date.now(), lastModifiedBy: req.userData.id, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }, - body: updateTaskRequestResponse.taskRequest, + body: updateTaskRequestResponse.taskRequest }; await addLog(taskRequestLog.type, taskRequestLog.meta, taskRequestLog.body); return res.status(200).json({ message: `Task updated successfully.`, - taskRequest: updateTaskRequestResponse?.taskRequest, + taskRequest: updateTaskRequestResponse?.taskRequest }); } catch (err) { logger.error("Error while approving task request", err); @@ -258,5 +258,5 @@ module.exports = { fetchTaskRequests, fetchTaskRequestById, addTaskRequests, - migrateTaskRequests, + migrateTaskRequests }; diff --git a/controllers/trading.js b/controllers/trading.js index 617e2c538..6b750c8f8 100644 --- a/controllers/trading.js +++ b/controllers/trading.js @@ -12,7 +12,7 @@ const trade = async (req, res) => { const tradeStockData = { ...req.body, username, - userId, + userId }; const { canUserTrade, errorMessage, userBalance } = await tradeService.trade(tradeStockData); @@ -28,5 +28,5 @@ const trade = async (req, res) => { }; module.exports = { - trade, + trade }; diff --git a/controllers/userStatus.js b/controllers/userStatus.js index 1d17b406e..54e358e45 100644 --- a/controllers/userStatus.js +++ b/controllers/userStatus.js @@ -90,7 +90,7 @@ const getAllUserStatus = async (req, res) => { return res.json({ message: "All User Status found successfully.", totalUserStatus: activeUsers.length, - allUserStatus: activeUsers, + allUserStatus: activeUsers }); } catch (err) { logger.error(`Error while fetching all the User Status: ${err}`); @@ -141,7 +141,7 @@ const updateAllUserStatus = async (req, res) => { const data = await userStatusModel.updateAllUserStatus(); return res.status(200).json({ message: "All User Status updated successfully.", - data, + data }); } catch (err) { logger.error(`Error while updating the User Data: ${err}`); @@ -160,12 +160,12 @@ const getTaskBasedUsersStatus = async (req, res) => { const data = await userStatusModel.getTaskBasedUsersStatus(); return res.json({ message: "All users based on tasks found successfully.", - data, + data }); } catch (error) { logger.error(error.message); return res.status(500).json({ - message: "The server has encountered an unexpected error. Please contact the administrator for more information.", + message: "The server has encountered an unexpected error. Please contact the administrator for more information." }); } }; @@ -189,12 +189,12 @@ const batchUpdateUsersStatus = async (req, res) => { const data = await userStatusModel.batchUpdateUsersStatus(req.body.users); return res.json({ message: "users status updated successfully.", - data, + data }); } catch (error) { logger.error(error.message); return res.status(500).json({ - message: "The server has encountered an unexpected error. Please contact the administrator for more information.", + message: "The server has encountered an unexpected error. Please contact the administrator for more information." }); } }; @@ -210,13 +210,13 @@ const cancelOOOStatus = async (req, res) => { return res.status(403).json({ statusCode: 403, error: "Forbidden", - message: error.message, + message: error.message }); } else if (error instanceof NotFound) { return res.status(404).json({ statusCode: 404, error: "NotFound", - message: error.message, + message: error.message }); } return res.boom.badImplementation(INTERNAL_SERVER_ERROR); @@ -249,5 +249,5 @@ module.exports = { getTaskBasedUsersStatus, getUserStatusControllers, batchUpdateUsersStatus, - updateUserStatusController, + updateUserStatusController }; diff --git a/controllers/users.js b/controllers/users.js index 218808455..008513221 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -24,7 +24,7 @@ const { getFilteredPaginationLink } = require("../utils/userStatus"); const { USERS_PATCH_HANDLER_ACTIONS, USERS_PATCH_HANDLER_ERROR_MESSAGES, - USERS_PATCH_HANDLER_SUCCESS_MESSAGES, + USERS_PATCH_HANDLER_SUCCESS_MESSAGES } = require("../constants/users"); const { addLog } = require("../models/logs"); const { getUserStatus } = require("../models/userStatus"); @@ -45,10 +45,10 @@ const verifyUser = async (req, res) => { fetch(process.env.IDENTITY_SERVICE_URL, { method: "POST", body: JSON.stringify({ userId }), - headers: { "Content-Type": "application/json" }, + headers: { "Content-Type": "application/json" } }); return res.json({ - message: "Your request has been queued successfully", + message: "Your request has been queued successfully" }); }; @@ -68,7 +68,7 @@ const getUserById = async (req, res) => { return res.json({ message: "User returned successfully!", - user, + user }); }; @@ -108,7 +108,7 @@ const getUsers = async (req, res) => { } return res.json({ message: "User returned successfully!", - user, + user }); } if (!transformedQuery?.days && transformedQuery?.filterBy === "unmerged_prs") { @@ -132,7 +132,7 @@ const getUsers = async (req, res) => { return res.json({ message: "Inactive users returned successfully!", count: users.length, - users: users, + users: users }); } catch (error) { logger.error(`Error while fetching all users: ${error}`); @@ -152,7 +152,7 @@ const getUsers = async (req, res) => { if (!result.userExists) { return res.json({ message: "User not found", - user: null, + user: null }); } @@ -166,7 +166,7 @@ const getUsers = async (req, res) => { } return res.json({ message: "User returned successfully!", - user, + user }); } else { return res.boom.notFound("Route not found"); @@ -179,7 +179,7 @@ const getUsers = async (req, res) => { if (!tasksData.length) { return res.json({ message: "No users found", - users: [], + users: [] }); } const userIds = new Set(); @@ -198,7 +198,7 @@ const getUsers = async (req, res) => { const userData = { id: user.id, discordId: user.discordId, - username: user.username, + username: user.username }; if (dev) { userData.tasks = userTasks; @@ -210,7 +210,7 @@ const getUsers = async (req, res) => { return res.json({ message: "Users returned successfully!", count: usersData.length, - users: usersData, + users: usersData }); } catch (error) { const errorMessage = `Error while fetching users and tasks: ${error}`; @@ -225,7 +225,7 @@ const getUsers = async (req, res) => { const users = await dataAccess.retrieveUsers({ usernames: usernames }); return res.json({ message: "Users returned successfully!", - users, + users }); } @@ -236,8 +236,8 @@ const getUsers = async (req, res) => { users: data.users, links: { next: data.nextId ? getPaginationLink(req.query, "next", data.nextId) : "", - prev: data.prevId ? getPaginationLink(req.query, "prev", data.prevId) : "", - }, + prev: data.prevId ? getPaginationLink(req.query, "prev", data.prevId) : "" + } }); } catch (error) { logger.error(`Error while fetching all users: ${error}`); @@ -279,7 +279,7 @@ const getUser = async (req, res) => { if (result.userExists) { return res.json({ message: "User returned successfully!", - user, + user }); } @@ -297,7 +297,7 @@ const getUserSkills = async (req, res) => { return res.json({ message: "Skills returned successfully", - skills, + skills }); } catch (err) { logger.error(`Error fetching skills ${err}`); @@ -318,7 +318,7 @@ const getSuggestedUsers = async (req, res) => { return res.json({ message: "Users returned successfully!", - users, + users }); } catch (err) { logger.error(`Error while fetching suggested users: ${err}`); @@ -337,7 +337,7 @@ const getUsernameAvailabilty = async (req, res) => { try { const result = await dataAccess.retrieveUsers({ username: req.params.username }); return res.json({ - isUsernameAvailable: !result.userExists, + isUsernameAvailable: !result.userExists }); } catch (error) { logger.error(`Error while checking user: ${error}`); @@ -353,7 +353,7 @@ const generateUsername = async (req, res) => { return res.json({ username }); } else { return res.status(404).json({ - message: "UserName Not Found", + message: "UserName Not Found" }); } } catch (error) { @@ -373,7 +373,7 @@ const getSelfDetails = async (req, res) => { try { if (req.userData) { const user = await dataAccess.retrieveUsers({ - userdata: req.userData, + userdata: req.userData }); return res.send(user); } @@ -469,7 +469,7 @@ const postUserPicture = async (req, res) => { } return res.status(201).json({ message: `Profile picture uploaded successfully! ${verificationResult.message}`, - image: imageData, + image: imageData }); }; @@ -486,7 +486,7 @@ const verifyUserImage = async (req, res) => { const { id: userId } = req.params; await userQuery.markAsVerified(userId, imageType); return res.json({ - message: `${imageType} image was verified successfully!`, + message: `${imageType} image was verified successfully!` }); } catch (error) { logger.error(`Error while verifying image of user: ${error}`); @@ -514,9 +514,9 @@ const updateDiscordUserNickname = async (req, res) => { userAffected: { userId, username, - discordId, + discordId }, - message: "User nickname changed successfully", + message: "User nickname changed successfully" }); } catch (err) { logger.error(`Error while updating nickname: ${err}`); @@ -571,7 +571,7 @@ const getUserImageForVerification = async (req, res) => { const userImageVerificationData = await userQuery.getUserImageForVerification(userId); return res.json({ message: "User image verification record fetched successfully!", - data: userImageVerificationData, + data: userImageVerificationData }); } catch (error) { logger.error(`Error while verifying image of user: ${error}`); @@ -603,13 +603,13 @@ const updateUser = async (req, res) => { const meta = { approvedBy: req.userData.id, - userId: userId, + userId: userId }; await logsQuery.addLog(logType.PROFILE_DIFF_APPROVED, meta, { profileDiffId, message }); return res.json({ - message: "Updated user's data successfully!", + message: "Updated user's data successfully!" }); } catch (error) { logger.error(`Error while updating user data: ${error}`); @@ -625,7 +625,7 @@ const generateChaincode = async (req, res) => { await userQuery.addOrUpdate({ chaincode }, id); return res.json({ chaincode, - message: "Chaincode returned successfully", + message: "Chaincode returned successfully" }); } catch (error) { logger.error(`Error while generating chaincode: ${error}`); @@ -639,7 +639,7 @@ const profileURL = async (req, res) => { const { profileURL } = req.body; await userQuery.addOrUpdate({ profileURL }, userId); return res.json({ - message: "updated profile URL!!", + message: "updated profile URL!!" }); } catch (error) { logger.error(`Internal Server Error: ${error}`); @@ -652,20 +652,20 @@ const rejectProfileDiff = async (req, res) => { const { profileDiffId, message } = req.body; const profileResponse = await profileDiffsQuery.updateProfileDiff( { approval: profileDiffStatus.REJECTED }, - profileDiffId, + profileDiffId ); if (profileResponse.notFound) return res.boom.notFound("Profile Diff doesn't exist"); const meta = { rejectedBy: req.userData.id, - userId: profileResponse.userId, + userId: profileResponse.userId }; await logsQuery.addLog(logType.PROFILE_DIFF_REJECTED, meta, { profileDiffId, message }); return res.json({ - message: "Profile Diff Rejected successfully!", + message: "Profile Diff Rejected successfully!" }); } catch (error) { logger.error(`Error while rejecting profile diff: ${error}`); @@ -680,7 +680,7 @@ const addUserIntro = async (req, res) => { if (joinData.length === 1) { return res.status(409).json({ - message: "User data is already present!", + message: "User data is already present!" }); } @@ -688,30 +688,30 @@ const addUserIntro = async (req, res) => { userId: req.userData.id, biodata: { firstName: rawData.firstName, - lastName: rawData.lastName, + lastName: rawData.lastName }, location: { city: rawData.city, state: rawData.state, - country: rawData.country, + country: rawData.country }, professional: { institution: rawData.college, - skills: rawData.skills, + skills: rawData.skills }, intro: { introduction: rawData.introduction, funFact: rawData.funFact, forFun: rawData.forFun, whyRds: rawData.whyRds, - numberOfHours: rawData.numberOfHours, + numberOfHours: rawData.numberOfHours }, - foundFrom: rawData.foundFrom, + foundFrom: rawData.foundFrom }; await userQuery.addJoinData(data); return res.status(201).json({ - message: "User join data and newstatus data added and updated successfully", + message: "User join data and newstatus data added and updated successfully" }); } catch (err) { logger.error("Could not save user data"); @@ -725,11 +725,11 @@ const getUserIntro = async (req, res) => { if (data.length) { return res.json({ message: "User data returned", - data: data, + data: data }); } else { return res.status(404).json({ - message: "Data Not Found", + message: "Data Not Found" }); } } catch (err) { @@ -750,7 +750,7 @@ const addDefaultArchivedRole = async (req, res) => { const addedDefaultArchivedRoleData = await userQuery.addDefaultArchivedRole(); return res.json({ message: "Users default archived role added successfully!", - ...addedDefaultArchivedRoleData, + ...addedDefaultArchivedRoleData }); } catch (error) { logger.error(`Error adding default archived role: ${error}`); @@ -771,7 +771,7 @@ const calculatePagination = (pageNumber, totalPages, reqQuery, limitNumber) => { return { next: nextPage ? getFilteredPaginationLink(reqQuery, nextPage, limitNumber) : null, - prev: prevPage ? getFilteredPaginationLink(reqQuery, prevPage, limitNumber) : null, + prev: prevPage ? getFilteredPaginationLink(reqQuery, prevPage, limitNumber) : null }; }; @@ -786,7 +786,7 @@ const filterUsers = async (req, res) => { return res.json({ message: users.length ? "Users found successfully!" : "No users found", users: users, - count: users.length, + count: users.length }); } const { page, size } = req.query; @@ -804,7 +804,7 @@ const filterUsers = async (req, res) => { message: users.length ? "Users found successfully!" : "No users found", users: users, links: paginationLinks, - count: users.length, + count: users.length }); } catch (error) { logger.error(`Error while fetching all users: ${error}`); @@ -843,17 +843,17 @@ const updateRoles = async (req, res) => { reason: reason || "", archived_user: { user_id: result.user.id, - username: result.user.username, + username: result.user.username }, archived_by: { user_id: superUserId, - roles: roles, - }, + roles: roles + } }; addLog("archived-details", {}, body); } return res.json({ - message: "role updated successfully!", + message: "role updated successfully!" }); } else { return res.boom.conflict("Role already exist!"); @@ -874,13 +874,13 @@ const archiveUserIfNotInDiscord = async () => { if (data.totalUsers === 0) { return { message: USERS_PATCH_HANDLER_ERROR_MESSAGES.ARCHIVE_USERS.NO_USERS_DATA_TO_UPDATE, - summary: data, + summary: data }; } return { message: USERS_PATCH_HANDLER_SUCCESS_MESSAGES.ARCHIVE_USERS.SUCCESSFULLY_UPDATED_DATA, - summary: data, + summary: data }; } catch (error) { logger.error(`Error while updating the archived role: ${error}`); @@ -948,5 +948,5 @@ module.exports = { updateDiscordUserNickname, archiveUserIfNotInDiscord, usersPatchHandler, - isDeveloper, + isDeveloper }; diff --git a/controllers/wallets.js b/controllers/wallets.js index e288905a5..e330e26af 100644 --- a/controllers/wallets.js +++ b/controllers/wallets.js @@ -37,7 +37,7 @@ const getOwnWallet = async (req, res) => { return res.json({ message: "Wallet returned successfully for user", - wallet, + wallet }); } catch (err) { logger.error(`Error while retriving wallet data ${err}`); @@ -59,7 +59,7 @@ const getUserWallet = async (req, res) => { return res.json({ message: "Wallet returned successfully", - wallet, + wallet }); } catch (err) { logger.error(`Error while retriving wallet data ${err}`); @@ -69,5 +69,5 @@ const getUserWallet = async (req, res) => { module.exports = { getOwnWallet, - getUserWallet, + getUserWallet }; diff --git a/middlewares/authenticate.js b/middlewares/authenticate.js index 667d41b32..260c0d486 100644 --- a/middlewares/authenticate.js +++ b/middlewares/authenticate.js @@ -75,7 +75,7 @@ module.exports = async (req, res, next) => { expires: new Date(Date.now() + config.get("userToken.ttl") * 1000), httpOnly: true, secure: true, - sameSite: "lax", + sameSite: "lax" }); // add user data to `req.userData` for further use diff --git a/middlewares/authorization.js b/middlewares/authorization.js index c6c79a651..4340f31f3 100644 --- a/middlewares/authorization.js +++ b/middlewares/authorization.js @@ -8,7 +8,7 @@ const REQUIRED_ROLES_PRIORITY = { superUser: ["super_user"], appOwner: ["app_owner", "super_user"], - default: ["default", "super_user", "app_owner"], + default: ["default", "super_user", "app_owner"] }; /** @@ -50,5 +50,5 @@ const authorizeUser = (requiredRole) => { module.exports = { authorizeUser, - userHasPermission, + userHasPermission }; diff --git a/middlewares/contentTypeCheck.js b/middlewares/contentTypeCheck.js index 7e8dec877..1e3f981a1 100644 --- a/middlewares/contentTypeCheck.js +++ b/middlewares/contentTypeCheck.js @@ -12,7 +12,7 @@ module.exports = (req, res, next) => { const notMultiPart = !contentType.includes("multipart/form-data"); if (notMultiPart) { return res.boom.unsupportedMediaType( - `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data`, + `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data` ); } } diff --git a/middlewares/index.js b/middlewares/index.js index 6ce84b05a..3c7fba498 100644 --- a/middlewares/index.js +++ b/middlewares/index.js @@ -29,16 +29,16 @@ const middleware = (app) => { dnsPrefetchControl: false, ieNoOpen: false, referrerPolicy: false, - xssFilter: false, - }), + xssFilter: false + }) ); app.use( cors({ origin: config.get("cors.allowedOrigins"), credentials: true, - optionsSuccessStatus: 200, - }), + optionsSuccessStatus: 200 + }) ); app.use(contentTypeCheck); diff --git a/middlewares/passport.js b/middlewares/passport.js index cbd9276c6..7b6535804 100644 --- a/middlewares/passport.js +++ b/middlewares/passport.js @@ -7,12 +7,12 @@ try { { clientID: config.get("githubOauth.clientId"), clientSecret: config.get("githubOauth.clientSecret"), - callbackURL: `${config.get("services.rdsApi.baseUrl")}/auth/github/callback`, + callbackURL: `${config.get("services.rdsApi.baseUrl")}/auth/github/callback` }, (accessToken, refreshToken, profile, done) => { return done(null, accessToken, profile); - }, - ), + } + ) ); } catch (err) { logger.error("Error initialising passport:", err); diff --git a/middlewares/rateLimiting.js b/middlewares/rateLimiting.js index f0b0417f1..3ec7969e5 100644 --- a/middlewares/rateLimiting.js +++ b/middlewares/rateLimiting.js @@ -7,7 +7,7 @@ const opts = { keyPrefix: "commonRateLimiter--login_fail_by_ip_per_minute", points: 5, duration: 30, - blockDuration: 60 * 10, + blockDuration: 60 * 10 }; const globalRateLimiter = new RateLimiterMemory(opts); @@ -40,7 +40,7 @@ async function commonRateLimiter(req, res, next) { "Retry-After": retrySeconds, "X-RateLimit-Limit": opts.points, "X-RateLimit-Remaining": error?.remainingPoints ?? 0, - "X-RateLimit-Reset": new Date(Date.now() + error?.msBeforeNext), + "X-RateLimit-Reset": new Date(Date.now() + error?.msBeforeNext) }); const message = `${TOO_MANY_REQUESTS.ERROR_TYPE}: Retry After ${retrySeconds} seconds, requests limit reached`; return res.status(TOO_MANY_REQUESTS.STATUS_CODE).json({ message }); @@ -48,5 +48,5 @@ async function commonRateLimiter(req, res, next) { } module.exports = { - commonRateLimiter, + commonRateLimiter }; diff --git a/middlewares/taskRequests.js b/middlewares/taskRequests.js index bca7af322..f6d8c9d97 100644 --- a/middlewares/taskRequests.js +++ b/middlewares/taskRequests.js @@ -33,5 +33,5 @@ async function validateUser(req, res, next) { } module.exports = { - validateUser, + validateUser }; diff --git a/middlewares/validators/arts.js b/middlewares/validators/arts.js index 31f233d1b..8a84af8a3 100644 --- a/middlewares/validators/arts.js +++ b/middlewares/validators/arts.js @@ -7,7 +7,7 @@ const createArt = async (req, res, next) => { .keys({ title: joi.string().required(), price: joi.number().min(0).required(), - css: joi.string().required(), + css: joi.string().required() }); try { await schema.validateAsync(req.body); @@ -19,5 +19,5 @@ const createArt = async (req, res, next) => { }; module.exports = { - createArt, + createArt }; diff --git a/middlewares/validators/auctions.js b/middlewares/validators/auctions.js index 585abbab7..c5e447ce0 100644 --- a/middlewares/validators/auctions.js +++ b/middlewares/validators/auctions.js @@ -5,7 +5,7 @@ const createAuction = async (req, res, next) => { item_type: joi.string().required(), quantity: joi.number().required(), initial_price: joi.number().required(), - end_time: joi.number().required(), + end_time: joi.number().required() }); try { await schema.validateAsync(req.body); @@ -18,7 +18,7 @@ const createAuction = async (req, res, next) => { const placeBid = async (req, res, next) => { const schema = joi.object().strict().keys({ - bid: joi.number().required(), + bid: joi.number().required() }); try { await schema.validateAsync(req.body); @@ -31,5 +31,5 @@ const placeBid = async (req, res, next) => { module.exports = { createAuction, - placeBid, + placeBid }; diff --git a/middlewares/validators/badges.js b/middlewares/validators/badges.js index 513742426..8b16ee563 100644 --- a/middlewares/validators/badges.js +++ b/middlewares/validators/badges.js @@ -1,7 +1,7 @@ const joi = require("joi"); const { ERROR_MESSAGES } = require("../../constants/badges"); const { - VALIDATORS: { CREATE_BADGE, ASSIGN_OR_REMOVE_BADGES, API_PAYLOAD_VALIDATION_FAILED }, + VALIDATORS: { CREATE_BADGE, ASSIGN_OR_REMOVE_BADGES, API_PAYLOAD_VALIDATION_FAILED } } = ERROR_MESSAGES; const logger = require("../../utils/logger"); @@ -18,7 +18,7 @@ async function createBadge(req, res, next) { .keys({ name: joi.string().min(3).max(30).required(), description: joi.string().min(3).max(130).optional(), - createdBy: joi.string().min(1).required(), + createdBy: joi.string().min(1).required() }); try { if (!req.file) { @@ -44,7 +44,7 @@ async function assignOrRemoveBadges(req, res, next) { .strict() .keys({ userId: joi.string().required(), - badgeIds: joi.array().min(1).items(joi.string().required()).unique().required(), + badgeIds: joi.array().min(1).items(joi.string().required()).unique().required() }); try { const { badgeIds, userId } = req.body; @@ -58,5 +58,5 @@ async function assignOrRemoveBadges(req, res, next) { module.exports = { createBadge, - assignOrRemoveBadges, + assignOrRemoveBadges }; diff --git a/middlewares/validators/challenges.js b/middlewares/validators/challenges.js index 6d0ce4248..92b1aa62b 100644 --- a/middlewares/validators/challenges.js +++ b/middlewares/validators/challenges.js @@ -5,7 +5,7 @@ const createChallenge = async (req, res, next) => { title: joi.string().required(), level: joi.string().required(), start_date: joi.number().required(), - end_date: joi.number().required(), + end_date: joi.number().required() }); try { @@ -18,5 +18,5 @@ const createChallenge = async (req, res, next) => { }; module.exports = { - createChallenge, + createChallenge }; diff --git a/middlewares/validators/discordactions.js b/middlewares/validators/discordactions.js index b325e4216..84ad80355 100644 --- a/middlewares/validators/discordactions.js +++ b/middlewares/validators/discordactions.js @@ -3,7 +3,7 @@ const { validateMillisecondsTimestamp } = require("./utils"); const validateGroupRoleBody = async (req, res, next) => { const schema = Joi.object({ - rolename: Joi.string().trim().required(), + rolename: Joi.string().trim().required() }); try { @@ -17,7 +17,7 @@ const validateGroupRoleBody = async (req, res, next) => { const validateMemberRoleBody = async (req, res, next) => { const schema = Joi.object({ userid: Joi.string().trim().required(), - roleid: Joi.string().trim().required(), + roleid: Joi.string().trim().required() }); try { @@ -42,5 +42,5 @@ const validateUpdateUsersNicknameStatusBody = async (req, res, next) => { module.exports = { validateGroupRoleBody, validateMemberRoleBody, - validateUpdateUsersNicknameStatusBody, + validateUpdateUsersNicknameStatusBody }; diff --git a/middlewares/validators/events.js b/middlewares/validators/events.js index 7b5465be4..2a39ac2b0 100644 --- a/middlewares/validators/events.js +++ b/middlewares/validators/events.js @@ -5,7 +5,7 @@ const createEvent = async (req, res, next) => { name: joi.string().required(), description: joi.string().required(), region: joi.string().required(), - userId: joi.string().required(), + userId: joi.string().required() }); try { @@ -21,7 +21,7 @@ const getAllEvents = async (req, res, next) => { const schema = joi.object({ enabled: joi.boolean(), limit: joi.number().integer().min(10), - offset: joi.string(), + offset: joi.string() }); try { @@ -38,7 +38,7 @@ const joinEvent = async (req, res, next) => { roomId: joi.string().required(), userId: joi.string().required(), eventCode: joi.optional(), - role: joi.string().valid("host", "moderator", "guest", "maven").required(), + role: joi.string().valid("host", "moderator", "guest", "maven").required() }); try { @@ -56,7 +56,7 @@ const getEventById = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), - isActiveRoom: joi.boolean(), + isActiveRoom: joi.boolean() }); const validationOptions = { abortEarly: false }; @@ -73,7 +73,7 @@ const getEventById = async (req, res, next) => { const updateEvent = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), - enabled: joi.boolean().required(), + enabled: joi.boolean().required() }); try { @@ -89,7 +89,7 @@ const endActiveEvent = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), reason: joi.string().required(), - lock: joi.boolean().required(), + lock: joi.boolean().required() }); try { @@ -110,7 +110,7 @@ const addPeerToEvent = async (req, res, next) => { name: joi.string().required(), id: joi.string().required(), role: joi.string().required(), - joinedAt: joi.date().required(), + joinedAt: joi.date().required() }); const validationOptions = { abortEarly: false }; @@ -131,7 +131,7 @@ const kickoutPeer = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), peerId: joi.string().required(), - reason: joi.string().required(), + reason: joi.string().required() }); const validationOptions = { abortEarly: false }; @@ -152,7 +152,7 @@ const generateEventCode = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), eventCode: joi.string().required(), - role: joi.string().required(), + role: joi.string().required() }); const validationOptions = { abortEarly: false }; @@ -170,7 +170,7 @@ const getEventCodes = async (req, res, next) => { const { id } = req.params; const schema = joi.object({ - id: joi.string().required(), + id: joi.string().required() }); const validationOptions = { abortEarly: false }; @@ -194,5 +194,5 @@ module.exports = { addPeerToEvent, kickoutPeer, generateEventCode, - getEventCodes, + getEventCodes }; diff --git a/middlewares/validators/extensionRequests.js b/middlewares/validators/extensionRequests.js index 3430bbb21..f945e59b4 100644 --- a/middlewares/validators/extensionRequests.js +++ b/middlewares/validators/extensionRequests.js @@ -16,7 +16,7 @@ const createExtensionRequest = async (req, res, next) => { oldEndsOn: joi.number().required(), newEndsOn: joi.number().required(), reason: joi.string().required(), - status: joi.string().valid(EXTENSION_REQUEST_STATUS.PENDING).required(), + status: joi.string().valid(EXTENSION_REQUEST_STATUS.PENDING).required() }); try { @@ -33,7 +33,7 @@ const updateExtensionRequestStatus = async (req, res, next) => { .object() .strict() .keys({ - status: joi.string().valid(EXTENSION_REQUEST_STATUS.APPROVED, EXTENSION_REQUEST_STATUS.DENIED).required(), + status: joi.string().valid(EXTENSION_REQUEST_STATUS.APPROVED, EXTENSION_REQUEST_STATUS.DENIED).required() }); try { @@ -52,7 +52,7 @@ const updateExtensionRequest = async (req, res, next) => { assignee: joi.string().optional(), oldEndsOn: joi.number().optional(), newEndsOn: joi.number().optional(), - reason: joi.string().optional(), + reason: joi.string().optional() }); try { @@ -70,7 +70,7 @@ const getExtensionRequestsValidator = async (req, res, next) => { cursor: joi.string().optional(), order: joi.string().valid("asc", "desc").optional(), size: joi.number().integer().positive().min(1).max(100).optional(), - q: joi.string().optional(), + q: joi.string().optional() }); const querySchema = joi.object().keys({ @@ -85,12 +85,12 @@ const getExtensionRequestsValidator = async (req, res, next) => { joi .string() .valid(...ER_STATUS_ENUM) - .insensitive(), - ), + .insensitive() + ) ) .optional(), assignee: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional(), - taskId: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional(), + taskId: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional() }); try { @@ -110,5 +110,5 @@ module.exports = { createExtensionRequest, updateExtensionRequest, updateExtensionRequestStatus, - getExtensionRequestsValidator, + getExtensionRequestsValidator }; diff --git a/middlewares/validators/external-accounts.js b/middlewares/validators/external-accounts.js index 1b083d3ab..27c5c9ae3 100644 --- a/middlewares/validators/external-accounts.js +++ b/middlewares/validators/external-accounts.js @@ -14,8 +14,8 @@ const externalAccountData = async (req, res, next) => { userAvatar: joi.string().required(), discordId: joi.string().required(), discordJoinedAt: joi.string().required(), - expiry: joi.number().required(), - }, + expiry: joi.number().required() + } }); try { @@ -34,7 +34,7 @@ const postExternalAccountsUsers = async (req, res, next) => { action: joi .string() .valid(...Object.values(EXTERNAL_ACCOUNTS_POST_ACTIONS)) - .required(), + .required() }); try { @@ -50,7 +50,7 @@ const linkDiscord = async (req, res, next) => { const { token } = req.params; const schema = joi.object({ - token: joi.string().required(), + token: joi.string().required() }); const validationOptions = { abortEarly: false }; diff --git a/middlewares/validators/fcmToken.js b/middlewares/validators/fcmToken.js index bbed1c755..00e3c0db0 100644 --- a/middlewares/validators/fcmToken.js +++ b/middlewares/validators/fcmToken.js @@ -2,7 +2,7 @@ const joi = require("joi"); export const fcmTokenValidator = async (req, res, next) => { const schema = joi.object().strict().keys({ - fcmToken: joi.string().required(), + fcmToken: joi.string().required() }); try { await schema.validateAsync(req.body); diff --git a/middlewares/validators/items.js b/middlewares/validators/items.js index 1911c51fe..d374cfd46 100644 --- a/middlewares/validators/items.js +++ b/middlewares/validators/items.js @@ -15,9 +15,9 @@ const validateItemsPayload = async (req, res, next) => { tagPayload: Joi.array().items( Joi.object({ tagId: Joi.string().required(), - levelId: Joi.string().required(), - }), - ), + levelId: Joi.string().required() + }) + ) }); try { @@ -37,7 +37,7 @@ const validateItemQuery = async (req, res, next) => { levelName: Joi.string().optional(), levelNumber: Joi.number().optional(), tagId: Joi.string().optional, - tagType: Joi.string().uppercase().optional(), + tagType: Joi.string().uppercase().optional() }); try { @@ -51,5 +51,5 @@ const validateItemQuery = async (req, res, next) => { module.exports = { validateItemsPayload, - validateItemQuery, + validateItemQuery }; diff --git a/middlewares/validators/levels.js b/middlewares/validators/levels.js index 217e6cde3..ba1caa3a2 100644 --- a/middlewares/validators/levels.js +++ b/middlewares/validators/levels.js @@ -3,7 +3,7 @@ const Joi = require("joi"); const validateLevelBody = async (req, res, next) => { const schema = Joi.object({ name: Joi.string().trim().required(), - value: Joi.number().integer().min(0).required(), + value: Joi.number().integer().min(0).required() }); try { @@ -16,5 +16,5 @@ const validateLevelBody = async (req, res, next) => { }; module.exports = { - validateLevelBody, + validateLevelBody }; diff --git a/middlewares/validators/members.js b/middlewares/validators/members.js index 125d799c1..8ae2b47ac 100644 --- a/middlewares/validators/members.js +++ b/middlewares/validators/members.js @@ -2,7 +2,7 @@ const joi = require("joi"); const validateGetMembers = async (req, res, next) => { const querySchema = joi.object().keys({ - showArchived: joi.boolean().optional(), + showArchived: joi.boolean().optional() }); try { @@ -15,5 +15,5 @@ const validateGetMembers = async (req, res, next) => { }; module.exports = { - validateGetMembers, + validateGetMembers }; diff --git a/middlewares/validators/monitor.js b/middlewares/validators/monitor.js index 84121a96e..f50f71bde 100644 --- a/middlewares/validators/monitor.js +++ b/middlewares/validators/monitor.js @@ -11,11 +11,11 @@ const baseSchema = joi .required() .messages({ "any.required": "Required field 'type' is missing.", - "any.only": "Type field is restricted to either 'user' or 'task'.", + "any.only": "Type field is restricted to either 'user' or 'task'." }), monitored: joi.boolean().required().messages({ "any.required": "Required field 'monitored' is missing.", - "boolean.base": "monitored field must be a boolean value.", + "boolean.base": "monitored field must be a boolean value." }), frequency: joi .number() @@ -24,38 +24,38 @@ const baseSchema = joi .when("type", { is: "user", then: joi.number().equal(1).messages({ - "number.equal": "'frequency' field must be equal to 1", + "number.equal": "'frequency' field must be equal to 1" }), - otherwise: joi.optional(), + otherwise: joi.optional() }) .messages({ "number.base": "'frequency' field must be a number", "number.integer": "'frequency' field must be an integer", "number.positive": "'frequency' field must be a positive integer", - "any.only": "'frequency' field must be equal to 1 for type 'user'", + "any.only": "'frequency' field must be equal to 1 for type 'user'" }), taskId: joi.string().when("type", { is: "task", then: joi.required().messages({ - "any.required": "Required field 'taskId' is missing.", + "any.required": "Required field 'taskId' is missing." }), - otherwise: joi.optional(), + otherwise: joi.optional() }), userId: joi.string().when("type", { is: "user", then: joi.required().messages({ - "any.required": "Required field 'userId' is missing.", + "any.required": "Required field 'userId' is missing." }), - otherwise: joi.optional(), - }), + otherwise: joi.optional() + }) }) .messages({ "object.unknown": "Invalid field provided." }); const validateCreateTrackedProgressRecord = async (req, res, next) => { const monitoredSchema = joi.object().keys({ monitored: joi.boolean().required().messages({ - "boolean.base": "monitored field must be a boolean value.", - }), + "boolean.base": "monitored field must be a boolean value." + }) }); const createSchema = baseSchema.concat(monitoredSchema); try { @@ -73,8 +73,8 @@ const validateUpdateTrackedProgress = async (req, res, next) => { const updatedData = { type, [TYPE_MAP[type]]: typeId, monitored, frequency }; const monitoredSchema = joi.object().keys({ monitored: joi.boolean().optional().messages({ - "boolean.base": "monitored field must be a boolean value.", - }), + "boolean.base": "monitored field must be a boolean value." + }) }); const updateSchema = baseSchema.concat(monitoredSchema).or("monitored", "frequency"); try { @@ -92,7 +92,7 @@ const validateGetTrackedProgressQueryParams = async (req, res, next) => { type: joi.string().valid(...VALID_PROGRESS_TYPES), userId: joi.string(), taskId: joi.string(), - monitored: joi.bool().optional(), + monitored: joi.bool().optional() }) .xor("type", "userId", "taskId") .with("monitored", "type") @@ -101,7 +101,7 @@ const validateGetTrackedProgressQueryParams = async (req, res, next) => { "object.xor": "Invalid combination of request params.", "object.missing": "One of the following fields is required: type, userId, or taskId.", "object.unknown": "Invalid field provided.", - "object.with": "The monitored param is missing a required field type.", + "object.with": "The monitored param is missing a required field type." }); try { @@ -116,5 +116,5 @@ const validateGetTrackedProgressQueryParams = async (req, res, next) => { module.exports = { validateCreateTrackedProgressRecord, validateUpdateTrackedProgress, - validateGetTrackedProgressQueryParams, + validateGetTrackedProgressQueryParams }; diff --git a/middlewares/validators/notify.js b/middlewares/validators/notify.js index f960fea83..6ff6df756 100644 --- a/middlewares/validators/notify.js +++ b/middlewares/validators/notify.js @@ -11,7 +11,7 @@ export const notifyValidator = async (req, res, next) => { title: joi.string().required().max(MAX_TITLE_LENGTH).required(), body: joi.string().required().max(MAX_BODY_LENGTH).required(), userId: joi.string(), - groupRoleId: joi.string(), + groupRoleId: joi.string() }) .xor("userId", "groupRoleId"); try { diff --git a/middlewares/validators/progresses.js b/middlewares/validators/progresses.js index 27af88a39..1d99731fe 100644 --- a/middlewares/validators/progresses.js +++ b/middlewares/validators/progresses.js @@ -13,28 +13,28 @@ const validateCreateProgressRecords = async (req, res, next) => { .required() .messages({ "any.required": "Required field 'type' is missing.", - "any.only": "Type field is restricted to either 'user' or 'task'.", + "any.only": "Type field is restricted to either 'user' or 'task'." }), completed: joi.string().trim().required().messages({ "any.required": "Required field 'completed' is missing.", - "string.trim": "completed must not have leading or trailing whitespace", + "string.trim": "completed must not have leading or trailing whitespace" }), planned: joi.string().trim().required().messages({ "any.required": "Required field 'planned' is missing.", - "string.trim": "planned must not have leading or trailing whitespace", + "string.trim": "planned must not have leading or trailing whitespace" }), blockers: joi.string().trim().allow("").required().messages({ "any.required": "Required field 'blockers' is missing.", - "string.trim": "blockers must not have leading or trailing whitespace", - }), + "string.trim": "blockers must not have leading or trailing whitespace" + }) }) .messages({ "object.unknown": "Invalid field provided." }); const taskSchema = joi.object().keys({ taskId: joi.string().trim().required().messages({ "any.required": "Required field 'taskId' is missing.", - "string.trim": "taskId must not have leading or trailing whitespace", - }), + "string.trim": "taskId must not have leading or trailing whitespace" + }) }); const schema = req.body.type === "task" ? baseSchema.concat(taskSchema) : baseSchema; @@ -55,26 +55,26 @@ const validateGetProgressRecordsQuery = async (req, res, next) => { .valid(...VALID_PROGRESS_TYPES) .optional() .messages({ - "any.only": "Type field is restricted to either 'user' or 'task'.", + "any.only": "Type field is restricted to either 'user' or 'task'." }), userId: joi.string().optional().allow("").messages({ - "string.base": "userId must be a string", + "string.base": "userId must be a string" }), taskId: joi.string().optional().allow("").messages({ - "string.base": "taskId must be a string", + "string.base": "taskId must be a string" }), orderBy: joi .string() .optional() .valid(...PROGRESS_VALID_SORT_FIELDS) .messages({ - "string.base": "orderBy must be a string", - }), + "string.base": "orderBy must be a string" + }) }) .xor("type", "userId", "taskId") .messages({ "object.unknown": "Invalid field provided.", - "object.xor": "Only one of type, userId, or taskId should be present", + "object.xor": "Only one of type, userId, or taskId should be present" }); try { await schema.validateAsync(req.query, { abortEarly: false }); @@ -91,7 +91,7 @@ const validateGetRangeProgressRecordsParams = async (req, res, next) => { userId: joi.string().optional(), taskId: joi.string().optional(), startDate: joi.date().iso().required(), - endDate: joi.date().iso().min(joi.ref("startDate")).required(), + endDate: joi.date().iso().min(joi.ref("startDate")).required() }) .xor("userId", "taskId") .messages({ @@ -99,7 +99,7 @@ const validateGetRangeProgressRecordsParams = async (req, res, next) => { "object.missing": "Either userId or taskId is required.", "object.xor": "Only one of userId or taskId should be present", "any.required": "Start date and End date is mandatory.", - "date.min": "EndDate must be on or after startDate", + "date.min": "EndDate must be on or after startDate" }); try { await schema.validateAsync(req.query, { abortEarly: false }); @@ -117,10 +117,10 @@ const validateGetDayProgressParams = async (req, res, next) => { .valid(...VALID_PROGRESS_TYPES) .required() .messages({ - "any.only": "Type field is restricted to either 'user' or 'task'.", + "any.only": "Type field is restricted to either 'user' or 'task'." }), typeId: joi.string().required(), - date: joi.date().iso().required(), + date: joi.date().iso().required() }); try { await schema.validateAsync(req.params, { abortEarly: false }); @@ -134,5 +134,5 @@ module.exports = { validateCreateProgressRecords, validateGetProgressRecordsQuery, validateGetRangeProgressRecordsParams, - validateGetDayProgressParams, + validateGetDayProgressParams }; diff --git a/middlewares/validators/qrCodeAuth.js b/middlewares/validators/qrCodeAuth.js index ee9ae21f4..5f24b0e95 100644 --- a/middlewares/validators/qrCodeAuth.js +++ b/middlewares/validators/qrCodeAuth.js @@ -4,7 +4,7 @@ const storeUserDeviceInfo = async (req, res, next) => { const schema = joi.object().strict().keys({ user_id: joi.string().required(), device_info: joi.string().required(), - device_id: joi.string().required(), + device_id: joi.string().required() }); try { @@ -21,7 +21,7 @@ const validateAuthStatus = async (req, res, next) => { .object() .strict() .keys({ - authorization_status: joi.string().valid("AUTHORIZED", "REJECTED", "NOT_INIT"), + authorization_status: joi.string().valid("AUTHORIZED", "REJECTED", "NOT_INIT") }); try { @@ -35,7 +35,7 @@ const validateAuthStatus = async (req, res, next) => { const validateFetchingUserDocument = async (req, res, next) => { const schema = joi.object().strict().keys({ - device_id: joi.string().required(), + device_id: joi.string().required() }); try { @@ -50,5 +50,5 @@ const validateFetchingUserDocument = async (req, res, next) => { module.exports = { storeUserDeviceInfo, validateAuthStatus, - validateFetchingUserDocument, + validateFetchingUserDocument }; diff --git a/middlewares/validators/recruiter.js b/middlewares/validators/recruiter.js index a506d1f8b..1abcaa4da 100644 --- a/middlewares/validators/recruiter.js +++ b/middlewares/validators/recruiter.js @@ -9,7 +9,7 @@ const validateRecruiter = async (req, res, next) => { reason: joi.string().required(), email: joi.string().required(), currency: joi.string().required(), - package: joi.number().optional(), + package: joi.number().optional() }); try { @@ -22,5 +22,5 @@ const validateRecruiter = async (req, res, next) => { }; module.exports = { - validateRecruiter, + validateRecruiter }; diff --git a/middlewares/validators/staging.js b/middlewares/validators/staging.js index 66f43addc..ff0748266 100644 --- a/middlewares/validators/staging.js +++ b/middlewares/validators/staging.js @@ -5,7 +5,7 @@ const validateUserRoles = async (req, res, next) => { super_user: joi.boolean().optional(), member: joi.boolean().optional(), archived: joi.boolean().optional(), - in_discord: joi.boolean().optional(), + in_discord: joi.boolean().optional() }); try { @@ -22,7 +22,7 @@ const validateRevokePrivileges = async (req, res, next) => { .object() .strict() .keys({ - action: joi.string().equal("revoke"), + action: joi.string().equal("revoke") }); try { await schema.validateAsync(req.body); @@ -35,5 +35,5 @@ const validateRevokePrivileges = async (req, res, next) => { module.exports = { validateUserRoles, - validateRevokePrivileges, + validateRevokePrivileges }; diff --git a/middlewares/validators/stocks.js b/middlewares/validators/stocks.js index 111f1fd7e..89b67d1c5 100644 --- a/middlewares/validators/stocks.js +++ b/middlewares/validators/stocks.js @@ -4,7 +4,7 @@ const createStock = async (req, res, next) => { const schema = joi.object().strict().keys({ name: joi.string().required(), quantity: joi.number().required(), - price: joi.number().required(), + price: joi.number().required() }); try { @@ -17,5 +17,5 @@ const createStock = async (req, res, next) => { }; module.exports = { - createStock, + createStock }; diff --git a/middlewares/validators/tags.js b/middlewares/validators/tags.js index 0e05aed9c..7d4cec8bc 100644 --- a/middlewares/validators/tags.js +++ b/middlewares/validators/tags.js @@ -12,7 +12,7 @@ const validTagBody = async (req, res, next) => { } return value; }), - reason: Joi.string().exist(), + reason: Joi.string().exist() }); try { @@ -25,5 +25,5 @@ const validTagBody = async (req, res, next) => { }; module.exports = { - validTagBody, + validTagBody }; diff --git a/middlewares/validators/task-requests.js b/middlewares/validators/task-requests.js index a6a7daf65..f7ea23e6a 100644 --- a/middlewares/validators/task-requests.js +++ b/middlewares/validators/task-requests.js @@ -20,7 +20,7 @@ const postTaskRequests = async (req, res, next) => { proposedStartDate: joi.number().required(), proposedDeadline: joi.number().required(), description: joi.string().optional(), - markdownEnabled: joi.boolean().optional(), + markdownEnabled: joi.boolean().optional() }); const taskCreationSchema = joi @@ -34,7 +34,7 @@ const postTaskRequests = async (req, res, next) => { proposedStartDate: joi.number().required(), proposedDeadline: joi.number().required(), description: joi.string().optional(), - markdownEnabled: joi.boolean().optional(), + markdownEnabled: joi.boolean().optional() }); const schema = joi.alternatives().try(taskAssignmentSchema, taskCreationSchema); @@ -55,7 +55,7 @@ const getTaskRequests = async (req, res, next) => { prev: joi.string().optional(), next: joi.string().optional(), size: joi.number().integer().positive().min(1).max(100).optional(), - q: joi.string().optional(), + q: joi.string().optional() }) .without("prev", "next") .with("prev", "size") @@ -67,8 +67,8 @@ const getTaskRequests = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_STATUS).map((value) => value.toLowerCase())), - operator: joi.string().optional(), - }), + operator: joi.string().optional() + }) ) .optional(), "request-type": joi @@ -76,15 +76,15 @@ const getTaskRequests = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_TYPE).map((value) => value.toLowerCase())), - operator: joi.string().optional(), - }), + operator: joi.string().optional() + }) ) - .optional(), + .optional() }); const sortSchema = joi.object().keys({ created: joi.string().valid("asc", "desc").optional(), - requestors: joi.string().valid("asc", "desc").optional(), + requestors: joi.string().valid("asc", "desc").optional() }); try { const { q: queryString } = req.query; @@ -93,7 +93,7 @@ const getTaskRequests = async (req, res, next) => { await Promise.all([ filtersSchema.validateAsync(rqlQueryParser.getFilterQueries()), sortSchema.validateAsync(rqlQueryParser.getSortQueries()), - queryParamsSchema.validateAsync(req.query), + queryParamsSchema.validateAsync(req.query) ]); next(); } catch (error) { @@ -103,5 +103,5 @@ const getTaskRequests = async (req, res, next) => { }; module.exports = { getTaskRequests, - postTaskRequests, + postTaskRequests }; diff --git a/middlewares/validators/tasks.js b/middlewares/validators/tasks.js index 0cdc38717..59d97154b 100644 --- a/middlewares/validators/tasks.js +++ b/middlewares/validators/tasks.js @@ -36,14 +36,14 @@ const createTask = async (req, res, next) => { .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional(), + [NEELAM]: joi.number().optional() }) .optional(), lossRate: joi .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional(), + [NEELAM]: joi.number().optional() }) .optional(), isNoteworthy: joi.bool().optional(), @@ -56,10 +56,10 @@ const createTask = async (req, res, next) => { assignee: joi.string().optional(), id: joi.number().optional(), closedAt: joi.string().optional(), - html_url: joi.string().uri().optional(), - }), + html_url: joi.string().uri().optional() + }) }) - .optional(), + .optional() }); try { @@ -97,18 +97,18 @@ const updateTask = async (req, res, next) => { .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional(), + [NEELAM]: joi.number().optional() }) .optional(), lossRate: joi .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional(), + [NEELAM]: joi.number().optional() }) .optional(), isNoteworthy: joi.bool().optional(), - isCollapsed: joi.bool().optional(), + isCollapsed: joi.bool().optional() }); try { await schema.validateAsync(req.body); @@ -121,7 +121,7 @@ const updateTask = async (req, res, next) => { const updateSelfTask = async (req, res, next) => { const validStatus = [...TASK_STATUS_ENUM, ...Object.values(TASK_STATUS_OLD)].filter( - (item) => item !== TASK_STATUS.AVAILABLE, + (item) => item !== TASK_STATUS.AVAILABLE ); const schema = joi .object() @@ -132,7 +132,7 @@ const updateSelfTask = async (req, res, next) => { .valid(...validStatus) .optional() .error(new BadRequest(`The value for the 'status' field is invalid.`)), - percentCompleted: joi.number().integer().min(0).max(100).optional(), + percentCompleted: joi.number().integer().min(0).max(100).optional() }); try { await schema.validateAsync(req.body); @@ -163,20 +163,20 @@ const getTasksValidator = async (req, res, next) => { .optional() .when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both next and page cannot be passed")), + then: joi.custom((_, helpers) => helpers.message("Both next and page cannot be passed")) }), prev: joi .string() .optional() .when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both prev and page cannot be passed")), + then: joi.custom((_, helpers) => helpers.message("Both prev and page cannot be passed")) }) .concat( joi.when("next", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both prev and next cannot be passed")), - }), + then: joi.custom((_, helpers) => helpers.message("Both prev and next cannot be passed")) + }) ), size: joi.number().integer().positive().min(1).max(100).optional(), q: joi @@ -192,7 +192,7 @@ const getTasksValidator = async (req, res, next) => { } return value; }, "Invalid query format"), - userFeatureFlag: joi.string().optional(), + userFeatureFlag: joi.string().optional() }); try { @@ -207,7 +207,7 @@ const getUsersValidator = async (req, res, next) => { const queryParamsSchema = joi.object().keys({ cursor: joi.string().optional(), q: joi.string().optional(), - size: joi.number().integer().min(1).max(2000), + size: joi.number().integer().min(1).max(2000) }); const filtersSchema = joi.object().keys({ status: joi @@ -215,8 +215,8 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.values(tasksUsersStatus)), - operator: joi.string().valid(Operators.INCLUDE), - }), + operator: joi.string().valid(Operators.INCLUDE) + }) ) .required(), "days-count": joi @@ -224,8 +224,8 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.number().integer().min(1).max(10), - operator: joi.string().valid(Operators.EXCLUDE), - }), + operator: joi.string().valid(Operators.EXCLUDE) + }) ) .max(1) .optional(), @@ -234,8 +234,8 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.keys(daysOfWeek)), - operator: joi.string().valid(Operators.EXCLUDE), - }), + operator: joi.string().valid(Operators.EXCLUDE) + }) ) .max(7) .optional(), @@ -244,11 +244,11 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.date().timestamp(), - operator: joi.string().valid(Operators.EXCLUDE), - }), + operator: joi.string().valid(Operators.EXCLUDE) + }) ) .max(20) - .optional(), + .optional() }); try { @@ -256,7 +256,7 @@ const getUsersValidator = async (req, res, next) => { const rqlQueryParser = new RQLQueryParser(queryString); await Promise.all([ queryParamsSchema.validateAsync(req.query), - filtersSchema.validateAsync(rqlQueryParser.getFilterQueries()), + filtersSchema.validateAsync(rqlQueryParser.getFilterQueries()) ]); next(); } catch (error) { @@ -280,5 +280,5 @@ module.exports = { updateSelfTask, getTasksValidator, getUsersValidator, - filterOrphanTasksValidator, + filterOrphanTasksValidator }; diff --git a/middlewares/validators/trading.js b/middlewares/validators/trading.js index e3631170a..d6ada8e07 100644 --- a/middlewares/validators/trading.js +++ b/middlewares/validators/trading.js @@ -7,7 +7,7 @@ const newTrade = async (req, res, next) => { stockName: joi.string().required(), quantity: joi.number().required(), listedPrice: joi.number().required(), - totalPrice: joi.number().required(), + totalPrice: joi.number().required() }); try { @@ -20,5 +20,5 @@ const newTrade = async (req, res, next) => { }; module.exports = { - newTrade, + newTrade }; diff --git a/middlewares/validators/user.js b/middlewares/validators/user.js index ffaa1804a..ff4bbf01c 100644 --- a/middlewares/validators/user.js +++ b/middlewares/validators/user.js @@ -4,7 +4,7 @@ const joi = require("joi"); const { USER_STATUS, USERS_PATCH_HANDLER_ACTIONS, - USERS_PATCH_HANDLER_ERROR_MESSAGES, + USERS_PATCH_HANDLER_ERROR_MESSAGES } = require("../../constants/users"); const ROLES = require("../../constants/roles"); const { IMAGE_VERIFICATION_TYPES } = require("../../constants/imageVerificationTypes"); @@ -54,8 +54,8 @@ const updateUser = async (req, res, next) => { roles: joi.object().keys({ designer: joi.boolean().optional(), maven: joi.boolean().optional(), - product_manager: joi.boolean().optional(), - }), + product_manager: joi.boolean().optional() + }) }); try { @@ -69,7 +69,7 @@ const updateUser = async (req, res, next) => { const updateProfileURL = async (req, res, next) => { const schema = joi.object().strict().keys({ - profileURL: joi.string().uri().required(), + profileURL: joi.string().uri().required() }); try { @@ -109,7 +109,7 @@ const validateJoinData = async (req, res, next) => { .custom((value, helpers) => customWordCountValidator(value, helpers, 100)) .required(), flowState: joi.string().optional(), - numberOfHours: joi.number().min(1).max(100).required(), + numberOfHours: joi.number().min(1).max(100).required() }); try { @@ -140,7 +140,7 @@ async function getUsers(req, res, next) { .pattern(/^[1-9]\d?$|^100$/) .messages({ "string.empty": "size must contain value in range 1-100", - "string.pattern.base": "size must be in range 1-100", + "string.pattern.base": "size must be in range 1-100" }), page: joi .string() @@ -148,48 +148,48 @@ async function getUsers(req, res, next) { .pattern(/^0$|^[1-9]\d*$/) .messages({ "string.empty": "page must contain a positive number or zero", - "string.pattern.base": "page value either be a positive number or zero", + "string.pattern.base": "page value either be a positive number or zero" }), search: joi.string().optional().messages({ - "string.empty": "search value must not be empty", + "string.empty": "search value must not be empty" }), id: joi.string().optional().messages({ - "string.empty": "id value must not be empty", + "string.empty": "id value must not be empty" }), discordId: joi.string().optional().messages({ - "string.empty": "discord id value must not be empty", + "string.empty": "discord id value must not be empty" }), next: joi .string() .optional() .when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both page and next can't be passed")), + then: joi.custom((_, helpers) => helpers.message("Both page and next can't be passed")) }) .messages({ - "string.empty": "next value cannot be empty", + "string.empty": "next value cannot be empty" }), prev: joi .string() .optional() .when("next", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both prev and next can't be passed")), + then: joi.custom((_, helpers) => helpers.message("Both prev and next can't be passed")) }) .concat( joi.string().when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both page and prev can't be passed")), - }), + then: joi.custom((_, helpers) => helpers.message("Both page and prev can't be passed")) + }) ) .messages({ - "string.empty": "prev value cannot be empty", + "string.empty": "prev value cannot be empty" }), query: joi.string().optional(), q: joi.string().optional(), filterBy: joi.string().optional(), days: joi.string().optional(), - dev: joi.string().optional(), + dev: joi.string().optional() }); try { await schema.validateAsync(req.query); @@ -229,7 +229,7 @@ async function validateUserQueryParams(req, res, next) { size: joi.number().integer().min(1).max(100).message("size must be a number between 1 and 100").optional(), prev: joi.string().allow("").optional(), next: joi.string().allow("").optional(), - dev: joi.bool().optional().sensitive(), + dev: joi.bool().optional().sensitive() }) .min(1) .messages({ "object.min": "Please provide at least one filter criteria" }); @@ -268,7 +268,7 @@ async function validateUpdateRoles(req, res, next) { // either member or archived with reason (optional) is allowed member: joi.boolean(), archived: joi.boolean(), - reason: joi.string().optional(), // reason is optional + reason: joi.string().optional() // reason is optional }); try { await schema.validateAsync(req.body); @@ -284,7 +284,7 @@ async function validateUsersPatchHandler(req, res, next) { action: joi .string() .valid(USERS_PATCH_HANDLER_ACTIONS.ARCHIVE_USERS, USERS_PATCH_HANDLER_ACTIONS.NON_VERFIED_DISCORD_USERS) - .required(), + .required() }); try { @@ -310,7 +310,7 @@ const validateGenerateUsernameQuery = async (req, res, next) => { .keys({ firstname: joi.string().min(1).required(), lastname: joi.string().min(1).required(), - dev: joi.string().valid("true").optional(), + dev: joi.string().valid("true").optional() }); try { @@ -329,7 +329,7 @@ const migrationsValidator = async (req, res, next) => { .keys({ page: joi.number(), action: joi.string().valid("adds-github-id").required(), - size: joi.number().min(1).max(500).required(), + size: joi.number().min(1).max(500).required() }); try { await schema.validateAsync({ action, page: parseInt(page), size: parseInt(size) }); @@ -349,5 +349,5 @@ module.exports = { validateUpdateRoles, validateUsersPatchHandler, validateGenerateUsernameQuery, - migrationsValidator, + migrationsValidator }; diff --git a/middlewares/validators/userStatus.js b/middlewares/validators/userStatus.js index 2ab71e811..05546f302 100644 --- a/middlewares/validators/userStatus.js +++ b/middlewares/validators/userStatus.js @@ -23,10 +23,10 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { .required() .error( new Error( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, - ), + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` + ) ), - otherwise: Joi.optional(), + otherwise: Joi.optional() }), message: Joi.when("state", { is: userState.IDLE, @@ -38,29 +38,29 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { then: Joi.when(Joi.ref("until"), { is: Joi.number().greater( Joi.ref("from", { - adjust: (value) => value + threeDaysInMilliseconds, - }), + adjust: (value) => value + threeDaysInMilliseconds + }) ), then: Joi.string() .optional() .error( - new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`), + new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`) ), - otherwise: Joi.required(), + otherwise: Joi.required() }), - otherwise: Joi.optional(), - }), - }), + otherwise: Joi.optional() + }) + }) }), monthlyHours: Joi.object().keys({ committed: Joi.number().required(), - updatedAt: Joi.number().required(), - }), + updatedAt: Joi.number().required() + }) }); const cancelOooSchema = Joi.object() .keys({ - cancelOoo: Joi.boolean().valid(true).required(), + cancelOoo: Joi.boolean().valid(true).required() }) .unknown(false); @@ -93,15 +93,15 @@ const validateMassUpdate = async (req, res, next) => { .items( Joi.object({ userId: Joi.string().trim().required(), - state: Joi.string().valid(userState.IDLE, userState.ACTIVE).required(), - }), + state: Joi.string().valid(userState.IDLE, userState.ACTIVE).required() + }) ) .min(1) .required() - .error(new Error(`Invalid object passed in users.`)), + .error(new Error(`Invalid object passed in users.`)) }) .messages({ - "object.unknown": "Invalid key in Request payload.", + "object.unknown": "Invalid key in Request payload." }); try { @@ -120,10 +120,10 @@ const validateGetQueryParams = async (req, res, next) => { state: Joi.string() .trim() .valid(userState.IDLE, userState.ACTIVE, userState.OOO, userState.ONBOARDING) - .error(new Error(`Invalid State. State must be either IDLE, ACTIVE, OOO, or ONBOARDING`)), + .error(new Error(`Invalid State. State must be either IDLE, ACTIVE, OOO, or ONBOARDING`)) }) .messages({ - "object.unknown": "Invalid query param provided.", + "object.unknown": "Invalid query param provided." }); try { @@ -138,5 +138,5 @@ const validateGetQueryParams = async (req, res, next) => { module.exports = { validateUserStatus, validateMassUpdate, - validateGetQueryParams, + validateGetQueryParams }; diff --git a/mockdata/appOwners.js b/mockdata/appOwners.js index f6f0caf85..17a276279 100644 --- a/mockdata/appOwners.js +++ b/mockdata/appOwners.js @@ -5,7 +5,7 @@ const appOwners = [ last_name: "Narkhede", github_id: "ankurnarkhede", github_display_name: "Ankur Narkhede", - incompleteUserDetails: false, + incompleteUserDetails: false }, { username: "ankush", @@ -13,7 +13,7 @@ const appOwners = [ last_name: "Dharkar", github_id: "AnkushDharkar", github_display_name: "Ankush Dharkar", - incompleteUserDetails: false, + incompleteUserDetails: false }, { username: "kratika", @@ -21,7 +21,7 @@ const appOwners = [ last_name: "Chowdhary", github_id: "Kratika0907", github_display_name: "Kratika Chowdhary", - incompleteUserDetails: false, + incompleteUserDetails: false }, { username: "nikhil", @@ -29,7 +29,7 @@ const appOwners = [ last_name: "Bhandarkar", github_id: "whydonti", github_display_name: "Nikhil Bhandarkar", - incompleteUserDetails: false, + incompleteUserDetails: false }, { username: "sumit", @@ -37,7 +37,7 @@ const appOwners = [ last_name: "Dhanania", github_id: "sumitd94", github_display_name: "Sumit Dhanania", - incompleteUserDetails: false, + incompleteUserDetails: false }, { username: "swaraj", @@ -45,8 +45,8 @@ const appOwners = [ last_name: "Rajpure", github_id: "swarajpure", github_display_name: "Swaraj Rajpure", - incompleteUserDetails: false, - }, + incompleteUserDetails: false + } ]; module.exports = appOwners; diff --git a/models/arts.js b/models/arts.js index 418008a47..eb854a948 100644 --- a/models/arts.js +++ b/models/arts.js @@ -28,7 +28,7 @@ const fetchArts = async () => { artSnapshot.forEach((art) => { arts.push({ id: art.id, - ...art.data(), + ...art.data() }); }); return arts; @@ -51,7 +51,7 @@ const fetchUserArts = async (id) => { userArtsRef.forEach((art) => { userArts.push({ id: art.id, - ...art.data(), + ...art.data() }); }); @@ -65,5 +65,5 @@ const fetchUserArts = async (id) => { module.exports = { addArt, fetchArts, - fetchUserArts, + fetchUserArts }; diff --git a/models/auctions.js b/models/auctions.js index b71b10831..b83fba632 100644 --- a/models/auctions.js +++ b/models/auctions.js @@ -37,7 +37,7 @@ const fetchAuctionById = async (auctionId) => { ...auctionMetadata, bidders_and_bids: biddersAndBids, seller: sellerUsername, - highest_bidder: highestBidderUsername, + highest_bidder: highestBidderUsername }; } catch (error) { logger.error(`Error fetching auction ${auctionId}: ${error}`); @@ -86,7 +86,7 @@ const fetchAvailableAuctions = async () => { auctionsRef.forEach((auction) => { auctions.push({ id: auction.id, - ...auction.data(), + ...auction.data() }); }); @@ -127,7 +127,7 @@ const createNewAuction = async ({ seller, initialPrice, endTime, itemType, quant highest_bidder: null, highest_bid: parseInt(initialPrice), start_time: new Date().getTime(), - end_time: parseInt(endTime), + end_time: parseInt(endTime) }); return auctionRef.id; @@ -167,14 +167,14 @@ const makeNewBid = async ({ bidder, auctionId, bid }) => { await auctionRef.update({ highest_bidder: bidder, - highest_bid: parseInt(bid), + highest_bid: parseInt(bid) }); const bidRef = await bidsModel.add({ auction_id: auctionId, bidder: bidder, bid: parseInt(bid), - time: new Date().getTime(), + time: new Date().getTime() }); return bidRef.id; @@ -189,5 +189,5 @@ module.exports = { fetchAvailableAuctions, fetchAuctionBidders, createNewAuction, - makeNewBid, + makeNewBid }; diff --git a/models/badges.js b/models/badges.js index 4e092e6c1..1c6f80559 100644 --- a/models/badges.js +++ b/models/badges.js @@ -5,7 +5,7 @@ const userBadgeModel = firestore.collection("userBadges"); const { convertFirebaseTimestampToDateTime, convertFirebaseDocumentToBadgeDocument, - assignOrRemoveBadgesInBulk, + assignOrRemoveBadgesInBulk } = require("../utils/badges"); const { chunks } = require("../utils/array"); const { ERROR_MESSAGES } = require("../constants/badges"); @@ -71,7 +71,7 @@ async function createBadge(badgeInfo) { const docRef = await badgeModel.add({ ...badgeInfo, description, - createdAt, + createdAt }); const { date, time } = convertFirebaseTimestampToDateTime(createdAt); const snapshot = await docRef.get(); @@ -114,7 +114,7 @@ async function removeBadges({ userId, badgeIds }) { const documentRefferences = snapshot.docs.map((doc) => doc.ref); const documentsRefferencesChunks = chunks(documentRefferences, DOCUMENT_WRITE_SIZE); const bulkWriterBatches = documentsRefferencesChunks.map((value) => - assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }), + assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }) ); return await Promise.all(bulkWriterBatches); } catch (err) { @@ -128,5 +128,5 @@ module.exports = { fetchUserBadges, createBadge, assignBadges, - removeBadges, + removeBadges }; diff --git a/models/chaincodes.js b/models/chaincodes.js index 3d2eeaa12..af0a520a1 100644 --- a/models/chaincodes.js +++ b/models/chaincodes.js @@ -6,7 +6,7 @@ const storeChaincode = async (userId) => { try { const userChaincode = await chaincodeModel.add({ userId, - timestamp: admin.firestore.Timestamp.fromDate(new Date()), + timestamp: admin.firestore.Timestamp.fromDate(new Date()) }); return userChaincode.id; } catch (error) { @@ -16,5 +16,5 @@ const storeChaincode = async (userId) => { }; module.exports = { - storeChaincode, + storeChaincode }; diff --git a/models/challenges.js b/models/challenges.js index 71dac11e7..0d1ab02ff 100644 --- a/models/challenges.js +++ b/models/challenges.js @@ -26,7 +26,7 @@ const fetchChallenges = async () => { challengesSnapshot.forEach((challengeDoc) => { challenges.push({ id: challengeDoc.id, - ...challengeDoc.data(), + ...challengeDoc.data() }); }); return challenges; @@ -48,7 +48,7 @@ const fetchParticipantsData = async (participants) => { return { ...user, phone: undefined, - email: undefined, + email: undefined }; }); const fetchedparticipants = await Promise.all(promises); @@ -74,7 +74,7 @@ const postChallenge = async (challengeData) => { start_date: startdate, end_date: enddate, participants: [], - is_active: true, + is_active: true }); return challengeRef.id; } catch (err) { @@ -110,5 +110,5 @@ module.exports = { fetchChallenges, postChallenge, subscribeUserToChallenge, - fetchParticipantsData, + fetchParticipantsData }; diff --git a/models/discordactions.js b/models/discordactions.js index faa1966c7..8adcae519 100644 --- a/models/discordactions.js +++ b/models/discordactions.js @@ -88,7 +88,7 @@ const getAllGroupRoles = async () => { data.forEach((doc) => { const group = { id: doc.id, - ...doc.data(), + ...doc.data() }; groups.push(group); }); @@ -167,13 +167,13 @@ const getGroupRolesForUser = async (discordId) => { const userRolesSnapshot = await memberRoleModel.where("userid", "==", discordId).get(); const userRoles = userRolesSnapshot.docs.map((doc) => ({ - ...doc.data(), + ...doc.data() })); const userRolesObject = { userId: discordId, groups: userRoles.map((userRole) => ({ - roleId: userRole.roleid, - })), + roleId: userRole.roleid + })) }; return userRolesObject; } catch (error) { @@ -217,7 +217,7 @@ const updateDiscordImageForVerification = async (userDiscordId) => { const discordAvatarUrl = await generateDiscordProfileImageUrl(userDiscordId); const verificationDataSnapshot = await photoVerificationModel.where("discordId", "==", userDiscordId).get(); const unverifiedUserDiscordImage = { - discord: { url: discordAvatarUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) }, + discord: { url: discordAvatarUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) } }; if (verificationDataSnapshot.empty) { throw new Error("No user verification record found"); @@ -272,7 +272,7 @@ const enrichGroupDataWithMembershipInfo = async (discordId, groups = []) => { lastName: groupCreator?.last_name, image: groupCreator?.picture?.url, memberCount: roleIdToCountMap[group.roleid] || 0, // Number of users joined this group - isMember: subscribedGroupIds.has(group.roleid), // Is current loggedIn user is a member of this group + isMember: subscribedGroupIds.has(group.roleid) // Is current loggedIn user is a member of this group }; }); } catch (err) { @@ -358,7 +358,7 @@ const updateIdleUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }), + }) ); } allUsersHavingGroupIdle = usersHavingIdleRole; @@ -392,7 +392,7 @@ const updateIdleUsersOnDiscord = async () => { await memberRoleModel.add({ roleid: "1153280659004080148", userid: discordId, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); } const response = await addRoleToUser(user.userid, groupIdleRole.role.roleid); @@ -404,7 +404,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }), + }) ); } @@ -435,7 +435,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }), + }) ); } @@ -448,7 +448,7 @@ const updateIdleUsersOnDiscord = async () => { totalUserRoleToBeRemoved, totalUserRoleToBeAdded, totalUsersHavingNoDiscordId, - totalArchivedUsers, + totalArchivedUsers }; }; @@ -462,7 +462,7 @@ const updateUsersNicknameStatus = async (lastNicknameUpdate) => { const [usersCurrentStatusSnapshot, usersFutureStatusSnapshots] = await Promise.all([ usersCurrentStatus, - usersFutureStatus, + usersFutureStatus ]); const usersCurrentStatusDocs = usersCurrentStatusSnapshot.docs; @@ -528,7 +528,7 @@ const updateUsersNicknameStatus = async (lastNicknameUpdate) => { const res = { totalUsersStatus, successfulNicknameUpdates: successfulUpdates, - unsuccessfulNicknameUpdates: totalUsersStatus - successfulUpdates, + unsuccessfulNicknameUpdates: totalUsersStatus - successfulUpdates }; return res; } catch (err) { @@ -593,7 +593,7 @@ const updateIdle7dUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }), + }) ); } @@ -628,7 +628,7 @@ const updateIdle7dUsersOnDiscord = async () => { await memberRoleModel.add({ roleid: groupIdle7dRoleId, userid: discordId, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); } const response = await addRoleToUser(user.userid, groupIdle7dRole.role.roleid); @@ -640,7 +640,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }), + }) ); } @@ -671,7 +671,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }), + }) ); } @@ -684,7 +684,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalUserRoleToBeRemoved, totalUserRoleToBeAdded, totalUsersHavingNoDiscordId, - totalArchivedUsers, + totalArchivedUsers }; }; @@ -692,7 +692,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { try { const allOnboardingUsers31DaysCompleted = await getUsersBasedOnFilter({ state: userState.ONBOARDING, - time: "31d", + time: "31d" }); const discordMembers = await getDiscordMembers(); const groupOnboardingRole = await getGroupRole("group-onboarding-31d+"); @@ -717,7 +717,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { }); const usersForRoleAddition = allOnboardingDevs31DaysCompleted.filter( - (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId), + (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId) ); const errorInFetchingUserDetailsForRoleRemoval = { count: 0, errors: [] }; @@ -733,12 +733,12 @@ const updateUsersWith31DaysPlusOnboarding = async () => { errorInFetchingUserDetailsForRoleRemoval.count++; errorInFetchingUserDetailsForRoleRemoval.errors.push({ error: "Error in getting users to remove role", - discordId: user.discordId, + discordId: user.discordId }); logger.error(`Error in getting users to remove role: ${error}`); } return null; - }), + }) ); const filteredUsersForRoleRemoval = usersForRoleRemoval.filter((user) => user !== null); @@ -769,7 +769,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { await memberRoleModel.add({ roleid: groupOnboardingRoleId, userid: userDiscordId, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); } const response = await addRoleToUser(userDiscordId, groupOnboardingRoleId); @@ -781,7 +781,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNoteApplied.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in setting group-onboarding-31+ role on user: ${error}`); } - }), + }) ); } @@ -812,32 +812,32 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNotRemoved.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in removing group-onboarding-31d+ role from user: ${error}`); } - }), + }) ); } const totalOnboardingUsers31DaysCompleted = allOnboardingDevs31DaysCompleted.map(({ id, discordId, username }) => ({ userId: id, discordId, - username, + username })); return { totalOnboardingUsers31DaysCompleted: { users: totalOnboardingUsers31DaysCompleted, - count: totalOnboardingUsers31DaysCompleted.length, + count: totalOnboardingUsers31DaysCompleted.length }, totalUsersHavingNoDiscordId, totalArchivedUsers, usersAlreadyHavingOnboaring31DaysRole: { users: usersAlreadyHavingOnboaring31DaysRole, - count: usersAlreadyHavingOnboaring31DaysRole.length, + count: usersAlreadyHavingOnboaring31DaysRole.length }, totalOnboarding31dPlusRoleApplied, totalOnboarding31dPlusRoleNoteApplied, totalOnboarding31dPlusRoleRemoved, totalOnboarding31dPlusRoleNotRemoved, - errorInFetchingUserDetailsForRoleRemoval, + errorInFetchingUserDetailsForRoleRemoval }; } catch (error) { logger.error(`Error while fetching onboarding users who have completed 31 days ${error.message}`); @@ -849,7 +849,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { const { cursor, size = 500, excludedDates = [], excludedDays = [0], dateGap = 3 } = options; const stats = { tasks: 0, - missedUpdatesTasks: 0, + missedUpdatesTasks: 0 }; try { const discordUsersPromise = discordService.getDiscordMembers(); @@ -881,7 +881,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { if (!data.data()) { return { error: "Bad Request", - message: `Invalid cursor: ${cursor}`, + message: `Invalid cursor: ${cursor}` }; } taskQuery = taskQuery.startAfter(data); @@ -905,7 +905,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { usersMap.set(taskAssignee, { tasksCount: 1, latestProgressCount: dateGap + 1, - isActive: false, + isActive: false }); } const updateTasksIdMap = async () => { @@ -927,14 +927,14 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { await userStatusModel .where("currentStatus.state", "==", userState.ACTIVE) .where("userId", "in", userIdList) - .get(), + .get() ); const userDetailsPromise = userIdChunks.map( async (userIdList) => await userModel .where("roles.archived", "==", false) .where(admin.firestore.FieldPath.documentId(), "in", userIdList) - .get(), + .get() ); const userStatusChunks = await Promise.all(userStatusSnapshotPromise); @@ -942,7 +942,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { userStatusChunks.forEach((userStatusList) => userStatusList.forEach((doc) => { usersMap.get(doc.data().userId).isActive = true; - }), + }) ); const userDetailsListChunks = await Promise.all(userDetailsPromise); @@ -1063,5 +1063,5 @@ module.exports = { getMissedProgressUpdatesUsers, getUserDiscordInvite, addInviteToInviteModel, - groupUpdateLastJoinDate, + groupUpdateLastJoinDate }; diff --git a/models/events.js b/models/events.js index ddd222094..286234e70 100644 --- a/models/events.js +++ b/models/events.js @@ -62,7 +62,7 @@ const endActiveEvent = async ({ id, reason, lock }) => { lock, reason, enabled: false, - status: "inactive", + status: "inactive" }); } catch (error) { logger.error("Error in ending event.", error); @@ -99,9 +99,9 @@ const addPeerToEvent = async (peerData) => { { event_id: peerData.eventId, role: peerData.role, - joined_at: peerData.joinedAt, - }, - ], + joined_at: peerData.joinedAt + } + ] }; batch.set(peerRef, peerDocData); } else { @@ -110,14 +110,14 @@ const addPeerToEvent = async (peerData) => { joinedEvents: Firestore.FieldValue.arrayUnion({ event_id: peerData.eventId, role: peerData.role, - joined_at: peerData.joinedAt, - }), + joined_at: peerData.joinedAt + }) }); } const eventRef = eventModel.doc(peerData.eventId); batch.update(eventRef, { - peers: Firestore.FieldValue.arrayUnion(peerRef.id), + peers: Firestore.FieldValue.arrayUnion(peerRef.id) }); await batch.commit(); @@ -180,7 +180,7 @@ const kickoutPeer = async ({ eventId, peerId, reason }) => { } const updatedJoinedEvents = joinedEvents.map((event, index) => - index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event, + index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event ); await peerRef.update({ joinedEvents: updatedJoinedEvents }); @@ -214,7 +214,7 @@ const createEventCode = async (eventCodeData) => { const data = docSnapshot.data(); const previouslyPresentEventCodes = eventSnapshotData?.event_codes?.by_role?.mavens && [ - ...eventSnapshotData?.event_codes?.by_role?.mavens, + ...eventSnapshotData?.event_codes?.by_role?.mavens ]; if (!data) throw new Error(); @@ -223,17 +223,17 @@ const createEventCode = async (eventCodeData) => { await eventRef.update({ event_codes: { by_role: { - mavens: [...previouslyPresentEventCodes, data?.id], - }, - }, + mavens: [...previouslyPresentEventCodes, data?.id] + } + } }); } else { await eventRef.update({ event_codes: { by_role: { - mavens: [data?.id], - }, - }, + mavens: [data?.id] + } + } }); } @@ -304,5 +304,5 @@ module.exports = { createEventCode, getEventById, getEventCodes, - getPeerById, + getPeerById }; diff --git a/models/extensionRequests.js b/models/extensionRequests.js index 632ce1423..2988ae31f 100644 --- a/models/extensionRequests.js +++ b/models/extensionRequests.js @@ -10,7 +10,7 @@ const createExtensionRequest = async (extensionRequestData) => { try { const request = { timestamp: Number((new Date().getTime() / 1000).toFixed(0)), - ...extensionRequestData, + ...extensionRequestData }; return await extensionRequestsModel.add(request); } catch (err) { @@ -31,7 +31,7 @@ const updateExtensionRequest = async (extensionRequestData, extensionRequestId) const extensionRequest = await extensionRequestsModel.doc(extensionRequestId).get(); await extensionRequestsModel.doc(extensionRequestId).set({ ...extensionRequest.data(), - ...extensionRequestData, + ...extensionRequestData }); return extensionRequestId; } catch (err) { @@ -117,7 +117,7 @@ const fetchPaginatedExtensionRequests = async (extensionRequestQuery, pagination const nextPageParams = { ...extensionRequestQuery, ...paginationQuery, - cursor: lastVisible?.id, + cursor: lastVisible?.id }; let nextLink = ""; @@ -172,5 +172,5 @@ module.exports = { fetchExtensionRequest, updateExtensionRequest, fetchPaginatedExtensionRequests, - fetchLatestExtensionRequest, + fetchLatestExtensionRequest }; diff --git a/models/external-accounts.js b/models/external-accounts.js index 2b21aa86e..4eddf6c76 100644 --- a/models/external-accounts.js +++ b/models/external-accounts.js @@ -30,7 +30,7 @@ const fetchExternalAccountData = async (query, param) => { return { id: id, - ...data, + ...data }; } catch (err) { logger.error("Error in fetching external account data", err); diff --git a/models/fcmToken.js b/models/fcmToken.js index 7c8258b9b..3cc640cc4 100644 --- a/models/fcmToken.js +++ b/models/fcmToken.js @@ -10,7 +10,7 @@ const saveFcmToken = async (fcmTokenData) => { if (fcmTokenSnapshot.empty) { const fcmToken = await fcmTokenModel.add({ userId: fcmTokenData.userId, - fcmTokens: [fcmTokenData.fcmToken], + fcmTokens: [fcmTokenData.fcmToken] }); return fcmToken.id; } else { @@ -18,13 +18,13 @@ const saveFcmToken = async (fcmTokenData) => { fcmTokenSnapshot.forEach((fcmToken) => { fcmTokenObj = { id: fcmToken.id, - ...fcmToken.data(), + ...fcmToken.data() }; }); if (!fcmTokenObj.fcmTokens.includes(fcmTokenData.fcmToken)) { fcmTokenObj.fcmTokens.push(fcmTokenData.fcmToken); await fcmTokenModel.doc(fcmTokenObj.id).update({ - fcmTokens: fcmTokenObj.fcmTokens, + fcmTokens: fcmTokenObj.fcmTokens }); return fcmTokenObj.id; } else { diff --git a/models/items.js b/models/items.js index ad76f2353..b39708894 100644 --- a/models/items.js +++ b/models/items.js @@ -25,7 +25,7 @@ const addTagsToItem = async (itemData) => { tagType: tagData.data().type, levelId: tag.levelId, levelName: levelData.data().name, - levelValue: levelData.data().value, + levelValue: levelData.data().value }; const docid = itemTagsModel.doc(); batch.set(docid, itemTag); @@ -79,7 +79,7 @@ const getItemBasedOnFilter = async (query) => { data.forEach((doc) => { const item = { id: doc.id, - ...doc.data(), + ...doc.data() }; items.push(item); }); @@ -94,5 +94,5 @@ const getItemBasedOnFilter = async (query) => { module.exports = { addTagsToItem, removeTagsFromItem, - getItemBasedOnFilter, + getItemBasedOnFilter }; diff --git a/models/levels.js b/models/levels.js index 7751fe006..199642a69 100644 --- a/models/levels.js +++ b/models/levels.js @@ -45,7 +45,7 @@ const getAllLevels = async () => { data.forEach((doc) => { const Level = { id: doc.id, - ...doc.data(), + ...doc.data() }; allLevels.push(Level); }); @@ -59,5 +59,5 @@ const getAllLevels = async () => { module.exports = { addLevel, deleteLevel, - getAllLevels, + getAllLevels }; diff --git a/models/logs.js b/models/logs.js index 6a2e16161..78d2b1c71 100644 --- a/models/logs.js +++ b/models/logs.js @@ -10,7 +10,7 @@ const { formatLogsForFeed, mapify, convertTimestamp, - getTasksFromLogs, + getTasksFromLogs } = require("../utils/logs"); const SIZE = 25; @@ -27,7 +27,7 @@ const addLog = async (type, meta, body) => { type, timestamp: admin.firestore.Timestamp.fromDate(new Date()), meta, - body, + body }; return await logsModel.add(log); } catch (err) { @@ -69,7 +69,7 @@ const fetchLogs = async (query, param) => { const logs = []; logsSnapshot.forEach((doc) => { logs.push({ - ...doc.data(), + ...doc.data() }); }); return logs; @@ -82,7 +82,7 @@ const fetchLogs = async (query, param) => { const logs = []; snapshot.forEach((doc) => { logs.push({ - ...doc.data(), + ...doc.data() }); }); @@ -216,7 +216,7 @@ const fetchAllLogs = async (query) => { allLogs: [], prev: null, next: null, - page: page ? page + 1 : null, + page: page ? page + 1 : null }; } if (format === "feed") { @@ -234,7 +234,7 @@ const fetchAllLogs = async (query) => { allLogs: logsData.filter((log) => log), prev: prevDoc.empty ? null : prevDoc.docs[0].id, next: nextDoc.empty ? null : nextDoc.docs[0].id, - page: page ? page + 1 : null, + page: page ? page + 1 : null }; } @@ -242,7 +242,7 @@ const fetchAllLogs = async (query) => { allLogs: allLogs.filter((log) => log), prev: prevDoc.empty ? null : prevDoc.docs[0].id, next: nextDoc.empty ? null : nextDoc.docs[0].id, - page: page ? page + 1 : null, + page: page ? page + 1 : null }; } catch (error) { logger.error(ERROR_WHILE_FETCHING_LOGS, error); @@ -255,5 +255,5 @@ module.exports = { fetchLogs, fetchCacheLogs, fetchLastAddedCacheLog, - fetchAllLogs, + fetchAllLogs }; diff --git a/models/members.js b/models/members.js index a666b210e..d92f049aa 100644 --- a/models/members.js +++ b/models/members.js @@ -26,7 +26,7 @@ const fetchUsers = async (queryParams = {}) => { const memberData = doc.data(); const curatedMemberData = { id: doc.id, - ...memberData, + ...memberData }; curatedMemberData.isMember = !!(memberData.roles && memberData.roles.member); allMembers.push(curatedMemberData); @@ -54,7 +54,7 @@ const moveToMembers = async (userId) => { const roles = user.roles ? { ...user.roles, member: true } : { member: true }; await userModel.doc(userId).update({ roles, - updated_at: Date.now(), + updated_at: Date.now() }); return { isAlreadyMember: false, movedToMember: true }; } catch (err) { @@ -77,7 +77,7 @@ const fetchUsersWithRole = async (role) => { snapshot.forEach((doc) => { onlyMembers.push({ id: doc.id, - ...doc.data(), + ...doc.data() }); }); } @@ -102,7 +102,7 @@ const addArchiveRoleToMembers = async (userId) => { const roles = { ...user.roles, [ROLES.ARCHIVED]: true }; await userModel.doc(userId).update({ roles, - updated_at: Date.now(), + updated_at: Date.now() }); return { isArchived: false }; } catch (err) { @@ -115,5 +115,5 @@ module.exports = { moveToMembers, addArchiveRoleToMembers, fetchUsers, - fetchUsersWithRole, + fetchUsersWithRole }; diff --git a/models/monitor.js b/models/monitor.js index 36cfad3f8..272fb185e 100644 --- a/models/monitor.js +++ b/models/monitor.js @@ -92,5 +92,5 @@ const getTrackedProgressDocuments = async (reqQuery) => { module.exports = { createTrackedProgressDocument, updateTrackedProgressDocument, - getTrackedProgressDocuments, + getTrackedProgressDocuments }; diff --git a/models/profileDiffs.js b/models/profileDiffs.js index 8128e2d7b..10d806ffb 100644 --- a/models/profileDiffs.js +++ b/models/profileDiffs.js @@ -23,7 +23,7 @@ const fetchProfileDiffs = async () => { id: doc.id, ...doc.data(), email: emailRedacted, - phone: phoneRedacted, + phone: phoneRedacted }); }); return profileDiffs; @@ -57,7 +57,7 @@ const fetchProfileDiff = async (profileDiffId) => { const add = async (profileDiffData) => { try { const profileDiff = await profileDiffsModel.add({ - ...profileDiffData, + ...profileDiffData }); return profileDiff.id; } catch (err) { @@ -81,7 +81,7 @@ const updateProfileDiff = async (profileDiffData, profileId) => { await profileDiffsModel.doc(profileId).set({ ...data, - ...profileDiffData, + ...profileDiffData }); return { id: profileDiff.id, userId: data.userId }; @@ -95,5 +95,5 @@ module.exports = { fetchProfileDiffs, fetchProfileDiff, add, - updateProfileDiff, + updateProfileDiff }; diff --git a/models/progresses.js b/models/progresses.js index 8e8a622d9..fbb6d990c 100644 --- a/models/progresses.js +++ b/models/progresses.js @@ -11,7 +11,7 @@ const { buildQueryForPostingProgress, assertTaskExists, getProgressDateTimestamp, - buildQueryToSearchProgressByDay, + buildQueryToSearchProgressByDay } = require("../utils/progresses"); const { PROGRESS_ALREADY_CREATED, PROGRESS_DOCUMENT_NOT_FOUND } = PROGRESSES_RESPONSE_MESSAGES; @@ -67,7 +67,7 @@ const getRangeProgressData = async (queryParams) => { return { startDate, endDate, - progressRecords, + progressRecords }; }; diff --git a/models/qrCodeAuth.js b/models/qrCodeAuth.js index e071282e8..327eadd1d 100644 --- a/models/qrCodeAuth.js +++ b/models/qrCodeAuth.js @@ -14,21 +14,21 @@ const updateStatus = async (userId, authStatus = "NOT_INIT", token) => { if (!authData.data()) { return { - userExists: false, + userExists: false }; } await QrCodeAuthModel.doc(userId).set({ ...authData.data(), authorization_status: authStatus, - token: `${token}`, + token: `${token}` }); return { userExists: true, data: { ...authData.data(), - authorization_status: authStatus, - }, + authorization_status: authStatus + } }; } catch (err) { logger.error("Error in updating auth status", err); @@ -62,12 +62,12 @@ const retrieveUserDeviceInfo = async ({ deviceId, userId }) => { if (!userData) { return { - userExists: false, + userExists: false }; } return { userExists: true, - data: userData.data(), + data: userData.data() }; } catch (err) { logger.error("Error in retrieving user device info", err); @@ -78,5 +78,5 @@ const retrieveUserDeviceInfo = async ({ deviceId, userId }) => { module.exports = { updateStatus, storeUserDeviceInfo, - retrieveUserDeviceInfo, + retrieveUserDeviceInfo }; diff --git a/models/recruiters.js b/models/recruiters.js index a13013195..f8e21258e 100644 --- a/models/recruiters.js +++ b/models/recruiters.js @@ -20,7 +20,7 @@ const addRecruiterInfo = async (recruiterData, username) => { // Fetch the user from DB const { userExists, - user: { first_name: userFirstName, last_name: userLastName, email: userEmail }, + user: { first_name: userFirstName, last_name: userLastName, email: userEmail } } = await userModel.fetchUser({ username }); if (!userExists) { return userExists; @@ -36,7 +36,7 @@ const addRecruiterInfo = async (recruiterData, username) => { recruiterId: id, recruiterName: `${firstName} ${lastName}`, userInfo: userInfo, - timestamp: timestamp, + timestamp: timestamp }; } catch (err) { logger.error("Error in adding recruiter", err); @@ -56,7 +56,7 @@ const fetchRecruitersInfo = async () => { recruiterSnapshot.forEach((recruiter) => { recruiters.push({ id: recruiter.id, - ...recruiter.data(), + ...recruiter.data() }); }); return recruiters; @@ -68,5 +68,5 @@ const fetchRecruitersInfo = async () => { module.exports = { addRecruiterInfo, - fetchRecruitersInfo, + fetchRecruitersInfo }; diff --git a/models/stocks.js b/models/stocks.js index 9726af2df..2ba1f64b7 100644 --- a/models/stocks.js +++ b/models/stocks.js @@ -30,7 +30,7 @@ const fetchStocks = async () => { stockSnapshot.forEach((stock) => { stocks.push({ id: stock.id, - ...stock.data(), + ...stock.data() }); }); return stocks; @@ -62,7 +62,7 @@ const fetchUserStocks = async (userId, stockId = null) => { userStocksRef.forEach((stock) => { userStocks.push({ id: stock.id, - ...stock.data(), + ...stock.data() }); }); return userStocks; @@ -82,7 +82,7 @@ const updateUserStocks = async (userId, stockData) => { if (!userStocks.id) { await userStocksModel.add({ userId, - ...stockData, + ...stockData }); return true; } @@ -100,5 +100,5 @@ module.exports = { addStock, fetchStocks, fetchUserStocks, - updateUserStocks, + updateUserStocks }; diff --git a/models/tags.js b/models/tags.js index 6abb02ff9..1c532c6d2 100644 --- a/models/tags.js +++ b/models/tags.js @@ -55,7 +55,7 @@ const getAllTags = async () => { data.forEach((doc) => { const tag = { id: doc.id, - ...doc.data(), + ...doc.data() }; allTags.push(tag); }); @@ -73,7 +73,7 @@ const getTagByType = async (type) => { data.forEach((doc) => { const tag = { id: doc.id, - ...doc.data(), + ...doc.data() }; tags.push(tag); }); @@ -89,5 +89,5 @@ module.exports = { addTag, deleteTag, getAllTags, - getTagByType, + getTagByType }; diff --git a/models/taskRequests.js b/models/taskRequests.js index 586381dc5..3b458a351 100644 --- a/models/taskRequests.js +++ b/models/taskRequests.js @@ -5,7 +5,7 @@ const { TASK_REQUEST_FILTER_VALUES, TASK_REQUEST_SORT_KEYS, TASK_REQUEST_SORT_VALUES, - TASK_REQUEST_ERROR_MESSAGE, + TASK_REQUEST_ERROR_MESSAGE } = require("../constants/taskRequests"); const { TASK_TYPE, TASK_STATUS, DEFAULT_TASK_PRIORITY } = require("../constants/tasks"); const { Operators } = require("../typeDefinitions/rqlParser"); @@ -85,7 +85,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { Object.entries(rqlQueryParser.getFilterQueries()).forEach(([key, value]) => { const valuesList = value.map( - (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value], + (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value] ); taskRequestsSnapshot = taskRequestsSnapshot.where(TASK_REQUEST_FILTER_KEYS[key], "in", valuesList); }); @@ -97,7 +97,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { sortQueryEntries.forEach(([key, value]) => { taskRequestsSnapshot = taskRequestsSnapshot.orderBy( TASK_REQUEST_SORT_KEYS[key], - TASK_REQUEST_SORT_VALUES[value], + TASK_REQUEST_SORT_VALUES[value] ); }); } else { @@ -110,7 +110,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { return { statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${next}`, + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${next}` }; } taskRequestsSnapshot = taskRequestsSnapshot.startAfter(data).limit(size); @@ -120,7 +120,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { return { statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${prev}`, + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${prev}` }; } taskRequestsSnapshot = taskRequestsSnapshot.endBefore(data).limitToLast(size); @@ -138,12 +138,12 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { const firstDoc = taskRequestsSnapshot.docs[0]; const nextPageParams = { ...queries, - next: lastVisibleDoc?.id, + next: lastVisibleDoc?.id }; delete nextPageParams.prev; const prevPageParams = { ...queries, - prev: firstDoc?.id, + prev: firstDoc?.id }; delete prevPageParams.next; const nextLink = lastVisibleDoc ? generateLink(nextPageParams) : ""; @@ -152,7 +152,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { return { data: taskRequestsList, next: nextLink, - prev: prevLink, + prev: prevLink }; } catch (err) { logger.error("error getting task requests", err); @@ -177,14 +177,14 @@ const fetchTaskRequestById = async (taskRequestId) => { } return { taskRequestData, - taskRequestExists: true, + taskRequestExists: true }; } catch (err) { logger.error("Error in updating task", err); } return { - taskRequestExists: false, + taskRequestExists: false }; }; @@ -241,7 +241,7 @@ const createRequest = async (data, authorUserId) => { proposedStartDate: data.proposedStartDate, description: data.description, markdownEnabled: data?.markdownEnabled ?? false, - status: TASK_REQUEST_STATUS.PENDING, + status: TASK_REQUEST_STATUS.PENDING }; if (!userRequest.description) delete userRequest.description; if (taskRequestData) { @@ -263,7 +263,7 @@ const createRequest = async (data, authorUserId) => { users: updatedUsers, usersCount: updatedUsers.length, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }; transaction.update(taskRequestsCollection.doc(taskRequestRef.id), updatedTaskRequest); @@ -272,8 +272,8 @@ const createRequest = async (data, authorUserId) => { isCreate: false, taskRequest: { ...taskRequestData, - ...updatedTaskRequest, - }, + ...updatedTaskRequest + } }; } const newTaskRequest = { @@ -289,7 +289,7 @@ const createRequest = async (data, authorUserId) => { createdBy: authorUserId, createdAt: Date.now(), lastModifiedBy: authorUserId, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }; if (!newTaskRequest.externalIssueUrl) delete newTaskRequest.externalIssueUrl; if (!newTaskRequest.taskId) delete newTaskRequest.taskId; @@ -301,7 +301,7 @@ const createRequest = async (data, authorUserId) => { return { isCreate: true, taskRequest: newTaskRequest, - id: newTaskRequestsDocRef.id, + id: newTaskRequestsDocRef.id }; }); } catch (err) { @@ -333,14 +333,14 @@ const addOrUpdate = async (taskId, userId) => { return { isCreate: false, - requestors: updatedRequestors, + requestors: updatedRequestors }; } const newTaskRequest = { requestors: [userId], status: TASK_REQUEST_STATUS.WAITING, - taskId, + taskId }; const newTaskRequestRef = await taskRequestsCollection.add(newTaskRequest); @@ -348,7 +348,7 @@ const addOrUpdate = async (taskId, userId) => { return { isCreate: true, taskRequest: newTaskRequest, - id: newTaskRequestRef.id, + id: newTaskRequestRef.id }; } catch (err) { logger.error("Error in updating task", err); @@ -408,7 +408,7 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.id, status: TASK_REQUEST_STATUS.APPROVED, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }; // End of TODO const updateTaskRequestPromise = transaction.update(taskRequestDocRef, updatedTaskRequest); @@ -427,9 +427,9 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { github: { issue: { url: taskRequestData.externalIssueUrl, - html_url: taskRequestData.externalIssueHtmlUrl, - }, - }, + html_url: taskRequestData.externalIssueHtmlUrl + } + } }; const newTaskDocRef = tasksCollection.doc(); const addTaskPromise = transaction.set(newTaskDocRef, newTaskRequestData); @@ -438,8 +438,8 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.username, taskRequest: { ...updatedTaskRequest, - taskId: newTaskDocRef.id, - }, + taskId: newTaskDocRef.id + } }; } else { // TODO : extract the common code and remove the unnecessary if-condition after the migration of the task request model. https://github.com/Real-Dev-Squad/website-backend/issues/1613 @@ -447,7 +447,7 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.id, status: TASK_REQUEST_STATUS.APPROVED, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }; let userRequestData; if (taskRequestData.users) { @@ -475,8 +475,8 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.username, taskRequest: { ...updatedTaskRequest, - taskId: oldTaskDocRef.id, - }, + taskId: oldTaskDocRef.id + } }; } }); @@ -512,7 +512,7 @@ const rejectTaskRequest = async (taskRequestId, authorUserId) => { const updatedTaskRequest = { status: TASK_REQUEST_STATUS.DENIED, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now(), + lastModifiedAt: Date.now() }; await taskRequestDoc.update(updatedTaskRequest); return { taskRequest: { ...taskRequestData, ...updatedTaskRequest } }; @@ -539,20 +539,20 @@ const addNewFields = async () => { return { userId: requestorId, - status: userStatus, + status: userStatus }; }); const updatedTaskRequestData = { ...taskRequestData, requestType: TASK_REQUEST_TYPE.ASSIGNMENT, taskTitle: taskData.title, - users: usersRequestList, + users: usersRequestList }; bulkWriter.update(taskRequestsCollection.doc(taskRequestsSnapshot.id), updatedTaskRequestData); documentsModified++; } - }), + }) ); await bulkWriter.close(); @@ -617,5 +617,5 @@ module.exports = { addNewFields, removeOldField, addUsersCountAndCreatedAt, - rejectTaskRequest, + rejectTaskRequest }; diff --git a/models/tasks.js b/models/tasks.js index a60484298..247294dad 100644 --- a/models/tasks.js +++ b/models/tasks.js @@ -19,7 +19,7 @@ const { COMPLETED, SANITY_CHECK, BACKLOG, - DONE, + DONE } = TASK_STATUS; const { OLD_ACTIVE, OLD_BLOCKED, OLD_PENDING, OLD_COMPLETED } = TASK_STATUS_OLD; const { INTERNAL_SERVER_ERROR } = require("../constants/errorMessages"); @@ -45,7 +45,7 @@ const updateTask = async (taskData, taskId = null) => { const { dependsOn, ...taskWithoutDependsOn } = taskData; await tasksModel.doc(taskId).set({ ...task.data(), - ...taskWithoutDependsOn, + ...taskWithoutDependsOn }); if (dependsOn) { await firestore.runTransaction(async (transaction) => { @@ -59,7 +59,7 @@ const updateTask = async (taskData, taskId = null) => { if (dependencyDoc.exists) { const taskDependsOn = { taskId: taskId, - dependsOn: dependency, + dependsOn: dependency }; const docRef = dependencyModel.doc(); transaction.set(docRef, taskDependsOn); @@ -75,7 +75,7 @@ const updateTask = async (taskData, taskId = null) => { const taskInfo = await tasksModel.add(taskData); const result = { taskId: taskInfo.id, - taskDetails: await fromFirestoreData(taskData), + taskDetails: await fromFirestoreData(taskData) }; return result; } catch (err) { @@ -93,7 +93,7 @@ const addDependency = async (data) => { for (const dependency of dependsOn) { const taskDependOn = { taskId: taskId, - dependsOn: dependency, + dependsOn: dependency }; const docid = dependencyModel.doc(); batch.set(docid, taskDependOn); @@ -147,7 +147,7 @@ const fetchPaginatedTasks = async ({ dev = false, assignee, title, - userFeatureFlag, + userFeatureFlag }) => { try { let initialQuery = tasksModel; @@ -170,7 +170,7 @@ const fetchPaginatedTasks = async ({ return { allTasks: [], next: "", - prev: "", + prev: "" }; } } @@ -184,7 +184,7 @@ const fetchPaginatedTasks = async ({ IN_REVIEW, SMOKE_TESTING, BLOCKED, - SANITY_CHECK, + SANITY_CHECK ]; initialQuery = initialQuery .where("endsOn", "<", currentTime) @@ -247,7 +247,7 @@ const fetchPaginatedTasks = async ({ return { allTasks, next: nextDoc?.docs[0]?.id ?? "", - prev: prevDoc?.docs[0]?.id ?? "", + prev: prevDoc?.docs[0]?.id ?? "" }; } catch (err) { logger.error("Error retrieving user data", err); @@ -355,7 +355,7 @@ const fetchSelfTask = async (taskId, userId) => { const taskfromFirestoreData = await fromFirestoreData(taskData); const taskList = { ...taskfromFirestoreData, - status: TASK_STATUS[taskfromFirestoreData.status.toUpperCase()] || task.status, + status: TASK_STATUS[taskfromFirestoreData.status.toUpperCase()] || task.status }; return { taskData: taskList }; } catch (err) { @@ -462,8 +462,8 @@ const getNewTask = async (skill = undefined, level = undefined) => { return { task: { id, - ...taskData, - }, + ...taskData + } }; } } @@ -536,14 +536,14 @@ const overdueTasks = async (overDueTasks) => { status: TASK_STATUS.AVAILABLE, assignee: null, endsOn: null, - startedOn: null, + startedOn: null }); const { taskData: unassignedTask } = await fetchTask(id); return { unassignedMember: assignee, - unassignedTask, + unassignedTask }; - }), + }) ); return newAvailableTasks; } catch (err) { @@ -569,7 +569,7 @@ const getOverdueTasks = async (days = 0) => { IN_REVIEW, SMOKE_TESTING, BLOCKED, - SANITY_CHECK, + SANITY_CHECK ]; const query = tasksModel.where("endsOn", "<", targetTime).where("status", "in", OVERDUE_TASK_STATUSES); @@ -582,7 +582,7 @@ const getOverdueTasks = async (days = 0) => { const taskData = snapshot.docs.map((doc) => { return { id: doc.id, - ...doc.data(), + ...doc.data() }; }); return taskData; @@ -601,7 +601,7 @@ const updateTaskStatus = async () => { totalUpdatedStatus: 0, totalOperationsFailed: 0, updatedTaskDetails: [], - failedTaskDetails: [], + failedTaskDetails: [] }; if (snapshot.size === 0) { @@ -622,9 +622,9 @@ const updateTaskStatus = async () => { totalUpdatedStatus: res.totalUpdatedStatus, totalOperationsFailed: res.totalOperationsFailed, updatedTaskDetails: res.updatedTaskDetails, - failedTaskDetails: res.failedTaskDetails, + failedTaskDetails: res.failedTaskDetails }; - }), + }) ); updatedTasksPromises.forEach((res) => { @@ -633,7 +633,7 @@ const updateTaskStatus = async () => { totalUpdatedStatus: (summary.totalUpdatedStatus += res.totalUpdatedStatus), totalOperationsFailed: (summary.totalOperationsFailed += res.totalOperationsFailed), updatedTaskDetails: [...summary.updatedTaskDetails, ...res.updatedTaskDetails], - failedTaskDetails: [...summary.failedTaskDetails, ...res.failedTaskDetails], + failedTaskDetails: [...summary.failedTaskDetails, ...res.failedTaskDetails] }; }); @@ -720,5 +720,5 @@ module.exports = { getOverdueTasks, updateTaskStatus, updateOrphanTasksStatus, - markUnDoneTasksOfArchivedUsersBacklog, + markUnDoneTasksOfArchivedUsersBacklog }; diff --git a/models/userStatus.js b/models/userStatus.js index a8dbf73ab..c9afe0d24 100644 --- a/models/userStatus.js +++ b/models/userStatus.js @@ -14,7 +14,7 @@ const { generateErrorResponse, generateNewStatus, getNextDayTimeStamp, - convertTimestampsToUTC, + convertTimestampsToUTC } = require("../utils/userStatus"); const { TASK_STATUS } = require("../constants/tasks"); const userStatusModel = firestore.collection("usersStatus"); @@ -38,15 +38,15 @@ const getGroupRole = async (rolename) => { const data = await discordRoleModel.where("rolename", "==", rolename).limit(1).get(); if (data.empty) { return { - roleExists: false, + roleExists: false }; } return { roleExists: true, role: { id: data.docs[0].id, - ...data.docs[0].data(), - }, + ...data.docs[0].data() + } }; } catch (err) { logger.error("Error in getting role", err); @@ -78,7 +78,7 @@ const removeGroupIdleRoleFromDiscordUser = async (userId) => { await fetch(`${DISCORD_BASE_URL}/roles`, { method: "DELETE", headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, - body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }), + body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }) }); } } @@ -106,7 +106,7 @@ const addGroupIdleRoleToDiscordUser = async (userId) => { await memberRoleModel.add({ roleid: groupIdleRoleId, userid: discordId, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); } @@ -114,7 +114,7 @@ const addGroupIdleRoleToDiscordUser = async (userId) => { await fetch(`${DISCORD_BASE_URL}/roles/add`, { method: "PUT", headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, - body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }), + body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }) }); } } @@ -186,7 +186,7 @@ const getAllUserStatus = async (query) => { id: doc.id, userId: doc.data().userId, currentStatus: doc.data().currentStatus, - monthlyHours: doc.data().monthlyHours, + monthlyHours: doc.data().monthlyHours }; allUserStatus.push(currentUserStatus); }); @@ -275,7 +275,7 @@ const updateAllUserStatus = async () => { oooUsersAltered: 0, oooUsersUnaltered: 0, nonOooUsersAltered: 0, - nonOooUsersUnaltered: 0, + nonOooUsersUnaltered: 0 }; try { const userStatusDocs = await userStatusModel.where("futureStatus.state", "in", ["ACTIVE", "IDLE", "OOO"]).get(); @@ -335,7 +335,7 @@ const updateAllUserStatus = async () => { }); if (batch._ops.length > 100) { logger.info( - `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.`, + `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.` ); } await batch.commit(); @@ -370,8 +370,8 @@ const updateUserStatusOnNewTaskAssignment = async (userId) => { } const { data: { - currentStatus: { state }, - }, + currentStatus: { state } + } } = latestStatusData; if (state === userState.ACTIVE) { return generateAlreadyExistingStatusResponse(userState.ACTIVE); @@ -414,13 +414,13 @@ const updateUserStatusOnTaskUpdate = async (userName) => { return { status: 404, error: "Not Found", - message: error.message, + message: error.message }; } return { status: 500, error: "Internal Server Error", - message: error.message, + message: error.message }; } }; @@ -440,8 +440,8 @@ const updateStatusOnTaskCompletion = async (userId) => { } const { data: { - currentStatus: { state }, - }, + currentStatus: { state } + } } = latestStatusData; if (hasActiveTask) { switch (state) { @@ -480,7 +480,7 @@ const batchUpdateUsersStatus = async (users) => { activeUsersAltered: 0, activeUsersUnaltered: 0, idleUsersAltered: 0, - idleUsersUnaltered: 0, + idleUsersUnaltered: 0 }; for (const { userId, state } of users) { @@ -497,21 +497,21 @@ const batchUpdateUsersStatus = async (users) => { message: "", from: new Date().setUTCHours(0, 0, 0, 0), until: "", - updatedAt: currentTimeStamp, + updatedAt: currentTimeStamp }; if (!userStatusExists || !data?.currentStatus) { const newUserStatusRef = userStatusModel.doc(); const newUserStatusData = { userId, - currentStatus: statusToUpdate, + currentStatus: statusToUpdate }; state === userState.ACTIVE ? summary.activeUsersAltered++ : summary.idleUsersAltered++; if (state === userState.IDLE) await addGroupIdleRoleToDiscordUser(userId); batch.set(newUserStatusRef, newUserStatusData); } else { const { - currentStatus: { state: currentState, until }, + currentStatus: { state: currentState, until } } = data; if (currentState === state) { currentState === userState.ACTIVE ? summary.activeUsersUnaltered++ : summary.idleUsersUnaltered++; @@ -520,7 +520,7 @@ const batchUpdateUsersStatus = async (users) => { const docRef = userStatusModel.doc(id); if (state === userState.ACTIVE) { const updatedStatusData = { - currentStatus: statusToUpdate, + currentStatus: statusToUpdate }; summary.onboardingUsersAltered++; batch.update(docRef, updatedStatusData); @@ -540,15 +540,15 @@ const batchUpdateUsersStatus = async (users) => { if (timeDifferenceDays >= 1) { if (state === userState.IDLE) await addGroupIdleRoleToDiscordUser(userId); batch.update(docRef, { - currentStatus: statusToUpdate, + currentStatus: statusToUpdate }); } else { const getNextDayAfterUntil = getNextDayTimeStamp(until); batch.update(docRef, { futureStatus: { ...statusToUpdate, - from: getNextDayAfterUntil, - }, + from: getNextDayAfterUntil + } }); } } else { @@ -556,7 +556,7 @@ const batchUpdateUsersStatus = async (users) => { state === userState.ACTIVE ? summary.activeUsersAltered++ : summary.idleUsersAltered++; if (state === userState.IDLE) await addGroupIdleRoleToDiscordUser(userId); const updatedStatusData = { - currentStatus: statusToUpdate, + currentStatus: statusToUpdate }; batch.update(docRef, updatedStatusData); } @@ -610,7 +610,7 @@ const getTaskBasedUsersStatus = async () => { unprocessedUsers.push(assigneeId); logger.error(`Error retrieving tasks for user ${assigneeId}: ${error.message}`); } - }), + }) ); } @@ -620,7 +620,7 @@ const getTaskBasedUsersStatus = async () => { totalActiveUsers, totalUnprocessedUsers: errorCount, unprocessedUsers, - users, + users }; }; @@ -649,7 +649,7 @@ const cancelOooStatus = async (userId) => { const { futureStatus, ...docData } = userStatusDocument.data(); if (docData.currentStatus.state !== userState.OOO) { throw new Forbidden( - `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.`, + `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.` ); } try { @@ -694,7 +694,7 @@ const addFutureStatus = async (futureStatusData) => { delete futureStatusData.userId; const newStatusData = { ...userStatusData, - futureStatus: futureStatusData, + futureStatus: futureStatusData }; await userStatusModel.doc(docId).update(newStatusData); return { id: docId, userStatusExists: true, data: newStatusData }; @@ -717,5 +717,5 @@ module.exports = { getTaskBasedUsersStatus, cancelOooStatus, getGroupRole, - addFutureStatus, + addFutureStatus }; diff --git a/models/users.js b/models/users.js index 52fbde3d8..3d678067f 100644 --- a/models/users.js +++ b/models/users.js @@ -43,9 +43,9 @@ const addOrUpdate = async (userData, userId = null) => { { ...user.data(), ...userData, - updated_at: Date.now(), + updated_at: Date.now() }, - { merge: true }, + { merge: true } ); } @@ -68,7 +68,7 @@ const addOrUpdate = async (userData, userId = null) => { userId: user.docs[0].id, incompleteUserDetails: user.docs[0].data().incompleteUserDetails, updated_at: Date.now(), - role: Object.values(AUTHORITIES).find((role) => data.roles[role]) || AUTHORITIES.USER, + role: Object.values(AUTHORITIES).find((role) => data.roles[role]) || AUTHORITIES.USER }; } @@ -86,7 +86,7 @@ const addOrUpdate = async (userData, userId = null) => { role: AUTHORITIES.USER, userId: userInfo.id, incompleteUserDetails: true, - updated_at: Date.now(), + updated_at: Date.now() }; } catch (err) { logger.error("Error in adding or updating user", err); @@ -99,7 +99,7 @@ const addJoinData = async (userData) => { await joinModel.add(userData); await updateUserStatus(userData.userId, { currentStatus: { state: userState.ONBOARDING }, - monthlyHours: { committed: 4 * userData.intro.numberOfHours }, + monthlyHours: { committed: 4 * userData.intro.numberOfHours } }); } catch (err) { logger.error("Error in adding data", err); @@ -114,7 +114,7 @@ const getJoinData = async (userId) => { joinData.forEach((data) => { userData.push({ id: data.id, - ...data.data(), + ...data.data() }); }); return userData; @@ -230,7 +230,7 @@ const fetchPaginatedUsers = async (query) => { return { allUsers, nextId: lastDoc?.id || "", - prevId: firstDoc?.id || "", + prevId: firstDoc?.id || "" }; } catch (err) { logger.error("Error retrieving user data", err); @@ -259,13 +259,13 @@ const fetchUsers = async (usernames = []) => { snapshot.forEach((doc) => { users.push({ id: doc.id, - ...doc.data(), + ...doc.data() }); }); }); return { - users, + users }; } catch (err) { logger.error("Error retrieving user data", err); @@ -309,8 +309,8 @@ const fetchUser = async ({ userId = null, username = null, githubUsername = null userExists: !!userData, user: { id, - ...userData, - }, + ...userData + } }; } catch (err) { logger.error("Error retrieving user data", err); @@ -329,7 +329,7 @@ const setIncompleteUserDetails = async (userId) => { if (doc.exists) { return userRef.update({ incompleteUserDetails: false, - updated_at: Date.now(), + updated_at: Date.now() }); } return {}; @@ -372,7 +372,7 @@ const addForVerification = async (userId, discordId, profileImageUrl, discordIma userId, discordId, discord: { url: discordImageUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) }, - profile: { url: profileImageUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) }, + profile: { url: profileImageUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) } }; try { if (!isNotVerifiedSnapshot.empty) { @@ -445,7 +445,7 @@ const updateUserPicture = async (image, userId) => { const userDoc = userModel.doc(userId); await userDoc.update({ picture: image, - updated_at: Date.now(), + updated_at: Date.now() }); } catch (err) { logger.error("Error updating user picture data", err); @@ -490,7 +490,7 @@ const getRdsUserInfoByGitHubUsername = async (githubUsername) => { return { firstName: user.first_name ?? "", lastName: user.last_name ?? "", - username: user.username ?? "", + username: user.username ?? "" }; }; @@ -515,7 +515,7 @@ const getUsersBasedOnFilter = async (query) => { const calls = { item: itemModel, - state: userStatusModel, + state: userStatusModel }; calls.item = calls.item.where("itemType", "==", "USER").where("tagType", "==", "SKILL"); @@ -559,7 +559,7 @@ const getUsersBasedOnFilter = async (query) => { const fetchUsersWithOnBoardingState = await getUsersWithOnboardingStateInRange( filteredUserDocs, stateItems, - query.time, + query.time ); return fetchUsersWithOnBoardingState; } @@ -574,7 +574,7 @@ const getUsersBasedOnFilter = async (query) => { snapshot.forEach((doc) => { filteredUsers.push({ id: doc.id, - ...doc.data(), + ...doc.data() }); }); @@ -590,7 +590,7 @@ const getUsersBasedOnFilter = async (query) => { snapshot.forEach((doc) => { filteredUsers.push({ id: doc.id, - ...doc.data(), + ...doc.data() }); }); @@ -634,7 +634,7 @@ const getDiscordUsers = async () => { if (userData?.discordId) users.push({ id: user.id, - ...userData, + ...userData }); }); return users; @@ -660,7 +660,7 @@ const archiveUserIfNotInDiscord = async () => { totalUsersArchived: 0, totalOperationsFailed: 0, updatedUserDetails: [], - failedUserDetails: [], + failedUserDetails: [] }; if (snapshot.size === 0) { @@ -681,7 +681,7 @@ const archiveUserIfNotInDiscord = async () => { totalUsersArchived: (summary.totalUsersArchived += res.totalUsersArchived), totalOperationsFailed: (summary.totalOperationsFailed += res.totalOperationsFailed), updatedUserDetails: [...summary.updatedUserDetails, ...res.updatedUserDetails], - failedUserDetails: [...summary.failedUserDetails, ...res.failedUserDetails], + failedUserDetails: [...summary.failedUserDetails, ...res.failedUserDetails] }; } @@ -712,7 +712,7 @@ const fetchUserByIds = async (userIds = []) => { if (snapshot.exists) { users.push({ id: snapshot.id, - ...snapshot.data(), + ...snapshot.data() }); } }); @@ -768,7 +768,7 @@ const getUsersByRole = async (role) => { const userData = user.data(); users.push({ id: user.id, - ...userData, + ...userData }); }); return users; @@ -834,7 +834,7 @@ const fetchUserForKeyValue = async (documentKey, value) => { if (userData) users.push({ id: user.id, - ...userData, + ...userData }); }); return users; @@ -867,7 +867,7 @@ const fetchUsersListForMultipleValues = async (documentKey, valueList) => { if (userData) users.push({ id: user.id, - ...userData, + ...userData }); }); } @@ -891,7 +891,7 @@ const getNonNickNameSyncedUsers = async () => { if (userData?.discordId) users.push({ id: user.id, - ...userData, + ...userData }); }); return users; @@ -929,5 +929,5 @@ module.exports = { updateUsersInBatch, fetchUsersListForMultipleValues, fetchUserForKeyValue, - getNonNickNameSyncedUsers, + getNonNickNameSyncedUsers }; diff --git a/models/wallets.js b/models/wallets.js index 4887cfdc9..5e7fd3e9d 100644 --- a/models/wallets.js +++ b/models/wallets.js @@ -29,12 +29,12 @@ const createWallet = async (userId, currencies = {}) => { const walletData = { userId, isActive: true, - currencies, + currencies }; const { id } = await walletModel.add(walletData); return { id, - data: walletData, + data: walletData }; } catch (err) { logger.error("Error creating user wallet", err); @@ -58,7 +58,7 @@ const updateWallet = async (userId, currencies) => { } const walletRef = walletModel.doc(userWallet.id); const res = await walletRef.update({ - ...firestoreKeysObject, + ...firestoreKeysObject }); if (res) { return true; @@ -73,5 +73,5 @@ const updateWallet = async (userId, currencies) => { module.exports = { fetchWallet, updateWallet, - createWallet, + createWallet }; diff --git a/newrelic.js b/newrelic.js index 8bbbefab2..3fbac2d68 100644 --- a/newrelic.js +++ b/newrelic.js @@ -29,7 +29,7 @@ exports.config = { * * @env NEW_RELIC_DISTRIBUTED_TRACING_ENABLED */ - enabled: true, + enabled: true }, logging: { /** @@ -37,7 +37,7 @@ exports.config = { * issues with the agent, 'info' and higher will impose the least overhead on * production applications. */ - level: "info", + level: "info" }, /** * When true, all request headers except for those listed in attributes.exclude @@ -64,7 +64,7 @@ exports.config = { "response.headers.authorization", "response.headers.proxyAuthorization", "response.headers.setCookie*", - "response.headers.x*", - ], - }, + "response.headers.x*" + ] + } }; diff --git a/nyc.config.js b/nyc.config.js index 11b1b3a77..6db15172f 100644 --- a/nyc.config.js +++ b/nyc.config.js @@ -17,6 +17,6 @@ module.exports = { lines: [75, 90], functions: [75, 90], branches: [75, 90], - statements: [75, 90], - }, + statements: [75, 90] + } }; diff --git a/routes/badges.js b/routes/badges.js index d6fba4aa8..917662bf3 100644 --- a/routes/badges.js +++ b/routes/badges.js @@ -15,21 +15,21 @@ router.post( authorizeRoles([SUPERUSER]), upload.single("file"), badgesValidator.createBadge, - badgesController.postBadge, + badgesController.postBadge ); router.post( "/assign", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.postUserBadges, + badgesController.postUserBadges ); router.delete( "/remove", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.deleteUserBadges, + badgesController.deleteUserBadges ); module.exports = router; diff --git a/routes/discordactions.js b/routes/discordactions.js index 140342fca..3ffe5bc51 100644 --- a/routes/discordactions.js +++ b/routes/discordactions.js @@ -14,12 +14,12 @@ const { updateDiscordNicknames, updateUsersNicknameStatus, syncDiscordGroupRolesInFirestore, - setRoleToUsersWith31DaysPlusOnboarding, + setRoleToUsersWith31DaysPlusOnboarding } = require("../controllers/discordactions"); const { validateGroupRoleBody, validateMemberRoleBody, - validateUpdateUsersNicknameStatusBody, + validateUpdateUsersNicknameStatusBody } = require("../middlewares/validators/discordactions"); const checkIsVerifiedDiscord = require("../middlewares/verifydiscord"); const checkCanGenerateDiscordLink = require("../middlewares/checkCanGenerateDiscordLink"); @@ -44,28 +44,28 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - updateDiscordImageForVerification, + updateDiscordImageForVerification ); router.put( "/group-idle", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdleToIdleUsers, + setRoleIdleToIdleUsers ); router.put( "/group-idle-7d", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdle7DToIdleUsers, + setRoleIdle7DToIdleUsers ); router.post( "/nicknames/sync", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - updateDiscordNicknames, + updateDiscordNicknames ); router.post("/nickname/status", verifyCronJob, validateUpdateUsersNicknameStatusBody, updateUsersNicknameStatus); router.post("/discord-roles", authenticate, authorizeRoles([SUPERUSER]), syncDiscordGroupRolesInFirestore); router.put( "/group-onboarding-31d-plus", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleToUsersWith31DaysPlusOnboarding, + setRoleToUsersWith31DaysPlusOnboarding ); module.exports = router; diff --git a/routes/events.js b/routes/events.js index 6c50c2278..db8fb9584 100644 --- a/routes/events.js +++ b/routes/events.js @@ -13,7 +13,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.joinEvent, - events.joinEvent, + events.joinEvent ); router.post("/join", eventsValidator.joinEvent, events.joinEvent); router.get("/:id", eventsValidator.getEventById, events.getEventById); @@ -23,7 +23,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.endActiveEvent, - events.endActiveEvent, + events.endActiveEvent ); router.post("/:id/peers", eventsValidator.addPeerToEvent, events.addPeerToEvent); router.patch( @@ -31,20 +31,20 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.kickoutPeer, - events.kickoutPeer, + events.kickoutPeer ); router.post( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.generateEventCode, - events.generateEventCode, + events.generateEventCode ); router.get( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.getEventCodes, - events.getEventCodes, + events.getEventCodes ); module.exports = router; diff --git a/routes/extensionRequests.js b/routes/extensionRequests.js index 7b74d1051..cfb881c63 100644 --- a/routes/extensionRequests.js +++ b/routes/extensionRequests.js @@ -8,7 +8,7 @@ const { createExtensionRequest, updateExtensionRequest, updateExtensionRequestStatus, - getExtensionRequestsValidator, + getExtensionRequestsValidator } = require("../middlewares/validators/extensionRequests"); router.post("/", authenticate, createExtensionRequest, extensionRequests.createTaskExtensionRequest); @@ -20,14 +20,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequest, - extensionRequests.updateExtensionRequest, + extensionRequests.updateExtensionRequest ); router.patch( "/:id/status", authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequestStatus, - extensionRequests.updateExtensionRequestStatus, + extensionRequests.updateExtensionRequestStatus ); module.exports = router; diff --git a/routes/external-accounts.js b/routes/external-accounts.js index d64c2bc3a..2cf24c484 100644 --- a/routes/external-accounts.js +++ b/routes/external-accounts.js @@ -18,7 +18,7 @@ router.post( "/users", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validator.postExternalAccountsUsers, - externalAccount.externalAccountsUsersPostHandler, + externalAccount.externalAccountsUsersPostHandler ); module.exports = router; diff --git a/routes/monitor.js b/routes/monitor.js index 16ca9b186..92e54ed9c 100644 --- a/routes/monitor.js +++ b/routes/monitor.js @@ -6,12 +6,12 @@ const { SUPERUSER } = require("../constants/roles"); const { createTrackedProgressController, updateTrackedProgressController, - getTrackedProgressController, + getTrackedProgressController } = require("../controllers/monitor"); const { validateCreateTrackedProgressRecord, validateUpdateTrackedProgress, - validateGetTrackedProgressQueryParams, + validateGetTrackedProgressQueryParams } = require("../middlewares/validators/monitor"); router.post( @@ -19,7 +19,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER]), validateCreateTrackedProgressRecord, - createTrackedProgressController, + createTrackedProgressController ); router.patch( @@ -27,7 +27,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), validateUpdateTrackedProgress, - updateTrackedProgressController, + updateTrackedProgressController ); router.get("/", validateGetTrackedProgressQueryParams, getTrackedProgressController); diff --git a/routes/tasks.js b/routes/tasks.js index 0b651d39a..49b3cc677 100644 --- a/routes/tasks.js +++ b/routes/tasks.js @@ -7,7 +7,7 @@ const { updateTask, updateSelfTask, getTasksValidator, - getUsersValidator, + getUsersValidator } = require("../middlewares/validators/tasks"); const authorizeRoles = require("../middlewares/authorizeRoles"); const { authorizeAndAuthenticate } = require("../middlewares/authorizeUsersAndService"); @@ -21,7 +21,7 @@ const { CLOUDFLARE_WORKER, CRON_JOB_HANDLER } = require("../constants/bot"); const oldAuthorizationMiddleware = authorizeRoles([APPOWNER, SUPERUSER]); const newAuthorizationMiddleware = authorizeAndAuthenticate( [APPOWNER, SUPERUSER], - [CLOUDFLARE_WORKER, CRON_JOB_HANDLER], + [CLOUDFLARE_WORKER, CRON_JOB_HANDLER] ); // Middleware to check if 'dev' query parameter is set to true @@ -42,7 +42,7 @@ router.post( authorizeRoles([APPOWNER, SUPERUSER]), invalidateCache({ invalidationKeys: [ALL_TASKS] }), createTask, - tasks.addNewTask, + tasks.addNewTask ); router.patch( "/:id", @@ -50,7 +50,7 @@ router.patch( enableDevModeMiddleware, invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateTask, - tasks.updateTask, + tasks.updateTask ); router.get("/:id/details", tasks.getTask); router.get("/:username", tasks.getUserTasks); @@ -60,7 +60,7 @@ router.patch( invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateSelfTask, tasks.updateTaskStatus, - assignTask, + assignTask ); router.patch("/assign/self", authenticate, invalidateCache({ invalidationKeys: [ALL_TASKS] }), tasks.assignTask); diff --git a/routes/userStatus.js b/routes/userStatus.js index 7bbf2c1b2..164ac23d7 100644 --- a/routes/userStatus.js +++ b/routes/userStatus.js @@ -6,7 +6,7 @@ const { updateAllUserStatus, batchUpdateUsersStatus, getUserStatusControllers, - updateUserStatusController, + updateUserStatusController } = require("../controllers/userStatus"); const router = express.Router(); const authenticate = require("../middlewares/authenticate"); @@ -15,7 +15,7 @@ const { SUPERUSER } = require("../constants/roles"); const { validateUserStatus, validateMassUpdate, - validateGetQueryParams, + validateGetQueryParams } = require("../middlewares/validators/userStatus"); const { authorizeAndAuthenticate } = require("../middlewares/authorizeUsersAndService"); const ROLES = require("../constants/roles"); @@ -30,7 +30,7 @@ router.patch( "/batch", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validateMassUpdate, - batchUpdateUsersStatus, + batchUpdateUsersStatus ); router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), validateUserStatus, updateUserStatus); router.delete("/:userId", authenticate, authorizeRoles([SUPERUSER]), deleteUserStatus); diff --git a/routes/users.js b/routes/users.js index 5a9463648..fb91142ac 100644 --- a/routes/users.js +++ b/routes/users.js @@ -29,7 +29,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - users.updateDiscordUserNickname, + users.updateDiscordUserNickname ); router.get("/:username", users.getUser); router.get("/:userId/intro", authenticate, authorizeRoles([SUPERUSER]), users.getUserIntro); @@ -41,14 +41,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUsersPatchHandler, - users.usersPatchHandler, + users.usersPatchHandler ); router.patch( "/:id/temporary/data", authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUpdateRoles, - users.updateRoles, + users.updateRoles ); // upload.single('profile') -> multer inmemory storage of file for type multipart/form-data @@ -58,7 +58,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateImageVerificationQuery, - users.verifyUserImage, + users.verifyUserImage ); router.get("/picture/:id", authenticate, authorizeRoles([SUPERUSER]), users.getUserImageForVerification); router.patch("/profileURL", authenticate, userValidator.updateProfileURL, users.profileURL); diff --git a/scripts/validateSetup.js b/scripts/validateSetup.js index f54688045..71fbda849 100644 --- a/scripts/validateSetup.js +++ b/scripts/validateSetup.js @@ -16,7 +16,7 @@ try { console.info("✅ Firestore config is correct."); } catch (error) { throw new Error( - "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️", + "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️" ); } @@ -31,7 +31,7 @@ if (!firestoreConfig) { (async () => { const docRef = await Firestore.collection("dummy").doc("users"); await docRef.set({ - user: "dummy", + user: "dummy" }); const resp = await docRef.get("user"); if (resp.data().user !== "dummy") { diff --git a/services/EventAPIService.js b/services/EventAPIService.js index 8b5af91a5..3818b54e2 100644 --- a/services/EventAPIService.js +++ b/services/EventAPIService.js @@ -9,7 +9,7 @@ class EventAPIService { // Set Axios baseURL to 100ms API BaseURI this.#axiosInstance = axios.create({ baseURL: API_100MS_BASE_URL, - timeout: 3 * 60000, + timeout: 3 * 60000 }); this.#tokenServiceInstance = tokenService; this.#configureAxios(); @@ -30,11 +30,11 @@ class EventAPIService { config.headers = { Authorization: `Bearer ${this.#tokenServiceInstance.getManagementToken()}`, Accept: "application/json", - "Content-Type": "application/json", + "Content-Type": "application/json" }; return config; }, - (error) => Promise.reject(error), + (error) => Promise.reject(error) ); this.#axiosInstance.interceptors.response.use( (response) => { @@ -48,7 +48,7 @@ class EventAPIService { originalRequest._retry = true; } return Promise.reject(error); - }, + } ); } diff --git a/services/EventTokenService.js b/services/EventTokenService.js index 14e81c8d5..266557ca3 100644 --- a/services/EventTokenService.js +++ b/services/EventTokenService.js @@ -16,7 +16,7 @@ class EventTokenService { const token = jwt.sign(payload, EventTokenService.#app_secret, { algorithm: "HS256", expiresIn: "24h", - jwtid: crypto.randomUUID({ disableEntropyCache: true }), + jwtid: crypto.randomUUID({ disableEntropyCache: true }) }); return token; } @@ -41,7 +41,7 @@ class EventTokenService { access_key: EventTokenService.#app_access_key, type: "management", version: 2, - iat: Math.floor(Date.now() / 1000), + iat: Math.floor(Date.now() / 1000) }; this.#managementToken = this.#signPayloadToToken(payload); } @@ -57,7 +57,7 @@ class EventTokenService { role: role, type: "app", version: 2, - iat: Math.floor(Date.now() / 1000), + iat: Math.floor(Date.now() / 1000) }; return this.#signPayloadToToken(payload); } diff --git a/services/authService.js b/services/authService.js index 4e698b44f..c7068e7db 100644 --- a/services/authService.js +++ b/services/authService.js @@ -8,7 +8,7 @@ const jwt = require("jsonwebtoken"); const generateAuthToken = (payload) => { return jwt.sign(payload, config.get("userToken.privateKey"), { algorithm: "RS256", - expiresIn: config.get("userToken.ttl"), + expiresIn: config.get("userToken.ttl") }); }; @@ -35,5 +35,5 @@ const decodeAuthToken = (token) => { module.exports = { generateAuthToken, verifyAuthToken, - decodeAuthToken, + decodeAuthToken }; diff --git a/services/cloudflareService.js b/services/cloudflareService.js index a41d5a5d9..baf6a375f 100644 --- a/services/cloudflareService.js +++ b/services/cloudflareService.js @@ -9,13 +9,13 @@ async function purgeCache(files) { { files: files }, { "X-Auth-Key": config.get("cloudflare.CLOUDFLARE_X_AUTH_KEY"), - "X-Auth-Email": config.get("cloudflare.CLOUDFLARE_X_AUTH_EMAIL"), - }, + "X-Auth-Email": config.get("cloudflare.CLOUDFLARE_X_AUTH_EMAIL") + } ); return response; } module.exports = { - purgeCache, + purgeCache }; diff --git a/services/contributions.js b/services/contributions.js index 8090598eb..ee11dd131 100644 --- a/services/contributions.js +++ b/services/contributions.js @@ -67,7 +67,7 @@ const getUserContributions = async (username) => { for (const prDetails of prMaps.values()) { const allObject = { prList: [prDetails], - task: {}, + task: {} }; all.push(allObject); } @@ -91,7 +91,7 @@ const extractPRdetails = (data) => { createdAt, updatedAt, url, - raisedBy: user.login, + raisedBy: user.login }); }); return allPRs; @@ -114,7 +114,7 @@ const extractTaskdetails = (data) => { participants, featureUrl, isNoteworthy, - isCollapsed, + isCollapsed } = data; return { id, @@ -127,7 +127,7 @@ const extractTaskdetails = (data) => { participants, featureUrl, isNoteworthy, - isCollapsed, + isCollapsed }; }; @@ -154,7 +154,7 @@ const extractUserDetails = (data) => { firstname, lastname, img, - username, + username }; } else { return { username }; @@ -162,5 +162,5 @@ const extractUserDetails = (data) => { }; module.exports = { - getUserContributions, + getUserContributions }; diff --git a/services/dataAccessLayer.js b/services/dataAccessLayer.js index 2a8411617..a5ed74b25 100644 --- a/services/dataAccessLayer.js +++ b/services/dataAccessLayer.js @@ -11,7 +11,7 @@ const retrieveUsers = async ({ userdata, level = ACCESS_LEVEL.PUBLIC, role = null, - userIds = null, + userIds = null }) => { let result; if (id || username) { @@ -131,5 +131,5 @@ module.exports = { retrieveUsersWithRole, retreiveFilteredUsers, levelSpecificAccess, - fetchUsersForKeyValues, + fetchUsersForKeyValues }; diff --git a/services/discordMembersService.js b/services/discordMembersService.js index 1169e2434..592c402a7 100644 --- a/services/discordMembersService.js +++ b/services/discordMembersService.js @@ -11,13 +11,13 @@ const getDiscordMemberDetails = async (discordId) => { try { const authToken = jwt.sign({}, config.get("rdsServerlessBot.rdsServerLessPrivateKey"), { algorithm: "RS256", - expiresIn: config.get("rdsServerlessBot.ttl"), + expiresIn: config.get("rdsServerlessBot.ttl") }); const memberDiscordDetails = await ( await fetch(`${DISCORD_BASE_URL}/member/${discordId}`, { method: "GET", - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } }) ).json(); return memberDiscordDetails; diff --git a/services/discordService.js b/services/discordService.js index bb3517609..5932a5118 100644 --- a/services/discordService.js +++ b/services/discordService.js @@ -10,7 +10,7 @@ const getDiscordMembers = async () => { const response = await ( await fetch(`${DISCORD_BASE_URL}/discord-members`, { method: "GET", - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } }) ).json(); return response; @@ -26,7 +26,7 @@ const getDiscordRoles = async () => { const response = await ( await fetch(`${DISCORD_BASE_URL}/roles`, { method: "GET", - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } }) ).json(); return response; @@ -34,7 +34,7 @@ const getDiscordRoles = async () => { logger.error("Error in fetching the discord data", err); return { status: 500, - message: "Something went wrong", + message: "Something went wrong" }; } }; @@ -50,9 +50,9 @@ const setInDiscordFalseScript = async () => { ...user, roles: { ...user.roles, - in_discord: false, + in_discord: false }, - updated_at: Date.now(), + updated_at: Date.now() }; updateUsersPromises.push(userModel.doc(id).update(userData)); }); @@ -64,7 +64,7 @@ const addRoleToUser = async (userid, roleid) => { const data = await fetch(`${DISCORD_BASE_URL}/roles/add`, { method: "PUT", headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, - body: JSON.stringify({ userid, roleid }), + body: JSON.stringify({ userid, roleid }) }); const response = await data.json(); return response; @@ -76,7 +76,7 @@ const removeRoleFromUser = async (roleId, discordId, userData) => { const data = await fetch(`${DISCORD_BASE_URL}/roles`, { method: "DELETE", headers, - body: JSON.stringify({ userid: discordId, roleid: roleId }), + body: JSON.stringify({ userid: discordId, roleid: roleId }) }); const response = await data.json(); return response; @@ -94,12 +94,12 @@ const setUserDiscordNickname = async (userName, discordId) => { await fetch(`${DISCORD_BASE_URL}/guild/member`, { method: "PATCH", body: JSON.stringify({ userName, discordId }), - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } }) ).json(); return { userEffected: userName, - message: response, + message: response }; } catch (err) { logger.error("Error in updating discord Nickname", err); @@ -113,5 +113,5 @@ module.exports = { setInDiscordFalseScript, addRoleToUser, removeRoleFromUser, - setUserDiscordNickname, + setUserDiscordNickname }; diff --git a/services/githubService.js b/services/githubService.js index 31e1a3de8..c68db8d45 100644 --- a/services/githubService.js +++ b/services/githubService.js @@ -18,7 +18,7 @@ const extractPRdetails = (data) => { updated_at: updatedAt, repository_url: repositoryUrl, labels, - assignees, + assignees }) => { const allAssignees = assignees.map((object) => object.login); const allLabels = labels.map((object) => object.name); @@ -33,9 +33,9 @@ const extractPRdetails = (data) => { repository, url, labels: allLabels, - assignees: allAssignees, + assignees: allAssignees }); - }, + } ); return allPRs; }; @@ -56,7 +56,7 @@ const getGithubURL = (searchParams, resultsOptions = {}, searchString) => { urlObj.pathname = issuesAndPRsPath; const defaultParams = { - org: config.get("githubApi.org"), + org: config.get("githubApi.org") }; const finalSearchParams = Object.assign({}, defaultParams, searchParams); @@ -91,8 +91,8 @@ function getFetch(url) { return utils.fetch(url, "get", null, null, null, { auth: { username: config.get("githubOauth.clientId"), - password: config.get("githubOauth.clientSecret"), - }, + password: config.get("githubOauth.clientSecret") + } }); } @@ -116,7 +116,7 @@ const fetchPRsByUser = async (username) => { const { user } = await fetchUser({ username }); const url = getGithubURL({ author: user.github_id, - type: "pr", + type: "pr" }); return getFetch(url); } catch (err) { @@ -140,14 +140,14 @@ const fetchOpenPRs = async (params = {}) => { { type: "pr", is: "open", - ...searchParams, + ...searchParams }, { sort: "created", ...resultOptions, per_page: perPage, - page, - }, + page + } ); return getFetch(url); } catch (err) { @@ -164,14 +164,14 @@ const fetchMergedPRs = async (params = {}) => { { type: "pr", is: "merged", - ...searchParams, + ...searchParams }, { sort: "updated", ...resultOptions, per_page: perPage, - page, - }, + page + } ); return getFetch(url); @@ -189,15 +189,15 @@ const fetchOpenIssues = async (params = {}) => { { type: "issue", is: "open", - ...searchParams, + ...searchParams }, { sort: "created", ...resultOptions, per_page: perPage, - page, + page }, - searchString, + searchString ); return getFetch(url); } catch (err) { @@ -214,14 +214,14 @@ const fetchClosedIssues = async (params = {}) => { { type: "issue", is: "closed", - ...searchParams, + ...searchParams }, { sort: "updated", ...resultOptions, per_page: perPage, - page, - }, + page + } ); return getFetch(url); } catch (err) { @@ -244,14 +244,14 @@ const fetchIssues = async () => { createdURL, { filter: "all", - state: "open", + state: "open" }, { Accept: "application/vnd.github+json", // TODO: replace with RDS org PAT Authorization: `Bearer `, - org: config.get("githubApi.org"), - }, + org: config.get("githubApi.org") + } ); return res; } catch (err) { @@ -274,7 +274,7 @@ const fetchIssuesById = async (repositoryName, issueId) => { const headers = { Accept: "application/vnd.github+json", Authorization: `Bearer ${config.get("githubAccessToken")}`, - org: org, + org: org }; const res = await fetch(url, { headers }); if (!res.ok) { @@ -298,14 +298,14 @@ const fetchLastMergedPR = async (username) => { const searchParams = { type: "pr", is: "merged", - author: username, + author: username }; const createdURL = getGithubURL(searchParams, { sort: "merged", order: "desc", per_page: "1" }); const headers = { Accept: "application/vnd.github+json", Authorization: `Bearer ${config.get("githubAccessToken")}`, - org: config.get("githubApi.org"), + org: config.get("githubApi.org") }; const res = await fetch(createdURL, { headers }); @@ -365,5 +365,5 @@ module.exports = { fetchClosedIssues, fetchLastMergedPR, isLastPRMergedWithinDays, - fetchIssuesById, + fetchIssuesById }; diff --git a/services/goalService.js b/services/goalService.js index 39f033412..6e7523563 100644 --- a/services/goalService.js +++ b/services/goalService.js @@ -6,15 +6,15 @@ const getOrCreateGoalUser = async ({ userId, roles }) => { type: "User", attributes: { rds_id: userId, - roles: roles, - }, - }, + roles: roles + } + } }); const goalSiteConfig = config.services.goalAPI; return fetch(`${goalSiteConfig.baseUrl}/api/v1/user/`, { method: "POST", body, - headers: { "Content-Type": "application/vnd.api+json", "Rest-Key": goalSiteConfig.secretKey }, + headers: { "Content-Type": "application/vnd.api+json", "Rest-Key": goalSiteConfig.secretKey } }); }; module.exports = { getOrCreateGoalUser }; diff --git a/services/imageService.js b/services/imageService.js index 3c5bc739c..280912924 100644 --- a/services/imageService.js +++ b/services/imageService.js @@ -20,8 +20,8 @@ const uploadProfilePicture = async ({ file, userId, coordinates }) => { transformation: { ...coordinates, crop: "crop", - fetch_format: "auto", - }, + fetch_format: "auto" + } }); const { public_id: publicId, secure_url: url } = uploadResponse; await userModel.updateUserPicture({ publicId, url }, userId); @@ -45,7 +45,7 @@ async function uploadBadgeImage({ file, badgeName }) { const imageDataInBase64 = imageDataUri.content; const uploadResponse = await upload(imageDataInBase64, { folder: `${cloudinaryMetaData.BADGE.FOLDER}/${badgeName}`, - tags: cloudinaryMetaData.BADGE.TAGS, + tags: cloudinaryMetaData.BADGE.TAGS }); const { public_id: id, secure_url: imageUrl } = uploadResponse; return { id, imageUrl }; @@ -57,5 +57,5 @@ async function uploadBadgeImage({ file, badgeName }) { module.exports = { uploadProfilePicture, - uploadBadgeImage, + uploadBadgeImage }; diff --git a/services/issuesService.js b/services/issuesService.js index 39eb8604f..ef3d952c1 100644 --- a/services/issuesService.js +++ b/services/issuesService.js @@ -11,7 +11,7 @@ const getOrgIssues = async () => { const searchOrgIssues = async (searchString) => { const data = await githubService.fetchOpenIssues({ - searchString, + searchString }); return data; @@ -19,5 +19,5 @@ const searchOrgIssues = async (searchString) => { module.exports = { getOrgIssues, - searchOrgIssues, + searchOrgIssues }; diff --git a/services/tasks.js b/services/tasks.js index 6e1a5dfe7..2aa6d6d79 100644 --- a/services/tasks.js +++ b/services/tasks.js @@ -10,7 +10,7 @@ const updateTaskStatusToDone = async (tasksData) => { totalUpdatedStatus: 0, totalOperationsFailed: 0, updatedTaskDetails: [], - failedTaskDetails: [], + failedTaskDetails: [] }; tasksData.forEach((task) => { const updateTaskData = { ...task, status: "DONE" }; @@ -36,7 +36,7 @@ const addTaskCreatedAtAndUpdatedAtFields = async () => { totalTaskToBeUpdate: 0, totalTasksUpdated: 0, totalFailedTasks: 0, - failedTasksIds: [], + failedTasksIds: [] }; const updatedTasks = []; const tasks = await tasksModel.get(); @@ -85,5 +85,5 @@ const addTaskCreatedAtAndUpdatedAtFields = async () => { module.exports = { updateTaskStatusToDone, - addTaskCreatedAtAndUpdatedAtFields, + addTaskCreatedAtAndUpdatedAtFields }; diff --git a/services/tradingService.js b/services/tradingService.js index af4a6f0d4..925a839e9 100644 --- a/services/tradingService.js +++ b/services/tradingService.js @@ -86,7 +86,7 @@ const trade = async (tradeData) => { const updatedStockData = { ...stockData, quantity: quantityToUpdate, - price: stockPriceToBeUpdated, + price: stockPriceToBeUpdated }; // Update user stocks @@ -96,7 +96,7 @@ const trade = async (tradeData) => { stockName, quantity: userStocksQty, orderValue: userStocksQty * stockData.price, - initialStockValue, + initialStockValue }); // Transaction Log @@ -108,21 +108,21 @@ const trade = async (tradeData) => { orderValue, quantity: qtyUserCanPurchase, price: stockData.price, - timestamp: +Date.now(), + timestamp: +Date.now() }); await transactionsModel.add({ userId: userId, type: `STOCK_${tradeType}`, refId: id, - timestamp: +Date.now(), + timestamp: +Date.now() }); // update user wallet await updateWallet(userId, { ...currencies, - ...updatedCurrencyData, + ...updatedCurrencyData }); await stocksModel.doc(stockId).set(updatedStockData); @@ -134,5 +134,5 @@ const trade = async (tradeData) => { }; module.exports = { - trade, + trade }; diff --git a/services/users.js b/services/users.js index 3b193dfc4..09c81e3d9 100644 --- a/services/users.js +++ b/services/users.js @@ -8,7 +8,7 @@ const archiveUsers = async (usersData) => { totalUsersArchived: 0, totalOperationsFailed: 0, updatedUserDetails: [], - failedUserDetails: [], + failedUserDetails: [] }; usersData.forEach((user) => { @@ -17,9 +17,9 @@ const archiveUsers = async (usersData) => { ...user, roles: { ...user.roles, - archived: true, + archived: true }, - updated_at: Date.now(), + updated_at: Date.now() }; batch.update(userModel.doc(id), updatedUserData); usersBatch.push({ id, firstName, lastName }); @@ -31,7 +31,7 @@ const archiveUsers = async (usersData) => { summary.updatedUserDetails = [...usersBatch]; return { message: USERS_PATCH_HANDLER_SUCCESS_MESSAGES.ARCHIVE_USERS.SUCCESSFULLY_COMPLETED_BATCH_UPDATES, - ...summary, + ...summary }; } catch (err) { logger.error("Firebase batch Operation Failed!"); @@ -42,5 +42,5 @@ const archiveUsers = async (usersData) => { }; module.exports = { - archiveUsers, + archiveUsers }; diff --git a/test/config/test.js b/test/config/test.js index a90dc3d78..40e2f8d43 100644 --- a/test/config/test.js +++ b/test/config/test.js @@ -17,11 +17,11 @@ module.exports = { discordMissedUpdatesRoleId: "", githubApi: { baseUrl: "https://api.github.com", - org: "Real-Dev-Squad", + org: "Real-Dev-Squad" }, githubOauth: { clientId: "clientId", - clientSecret: "clientSecret", + clientSecret: "clientSecret" }, firestore: `{ "type": "service_account", @@ -37,31 +37,31 @@ module.exports = { }`, services: { rdsApi: { - baseUrl: `http://localhost:${port}`, + baseUrl: `http://localhost:${port}` }, rdsUi: { baseUrl: "https://realdevsquad.com", routes: { - authRedirection: "/goto", + authRedirection: "/goto" }, goalAPI: { baseUrl: "", secretKey: "", - cookieName: `goals-session-test`, - }, + cookieName: `goals-session-test` + } }, discordBot: { - baseUrl: "DISCORD_BASE_URL", + baseUrl: "DISCORD_BASE_URL" }, goalAPI: { baseUrl: "", secretKey: "", - cookieName: `goals-session-test`, - }, + cookieName: `goals-session-test` + } }, cors: { - allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)|(localhost)/, // Allow realdevsquad.com, *.realdevsquad.com and localhost for non-production envs + allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)|(localhost)/ // Allow realdevsquad.com, *.realdevsquad.com and localhost for non-production envs }, userToken: { @@ -91,7 +91,7 @@ module.exports = { "NoWsgW64Z/+89cbKFMzgHdvhvL7rQNhBAAm1byPmn8aTV7LlTclMWfb4sV6e+ef8\n" + "QnrvpfRSihRktA2dDQJAH+dQBx3nG3bZ9khVAZQ1jTJ7j0cKixaGndFuYS1TJvJ2\n" + "Zzn584h/xbSIcP9/4SXmEK3wtoueUtMkvS3yKTvk+w==\n" + - "-----END RSA PRIVATE KEY-----", + "-----END RSA PRIVATE KEY-----" }, botToken: { @@ -132,7 +132,7 @@ module.exports = { "7UcCgYBHdbFcXWGHfEqLJZChRrKhWLxn9jkJ0apvnO1j6c5yiAo3yJkSV5Z9IdAc\n" + "lgOC/dJBTZLcBtixdERqcJ+o4P7oFRS6hz/9n4s+kkzxXVqEmtJmBQvHUo3I/Qgc\n" + "Ba+XMCP64pXPC3r1llhKRwIl+6UFn+QlpbxtgQjhbULnSbc7fw==\n" + - "-----END RSA PRIVATE KEY-----", + "-----END RSA PRIVATE KEY-----" }, rdsServerlessBot: { @@ -174,7 +174,7 @@ module.exports = { "lgOC/dJBTZLcBtixdERqcJ+o4P7oFRS6hz/9n4s+kkzxXVqEmtJmBQvHUo3I/Qgc\n" + "Ba+XMCP64pXPC3r1llhKRwIl+6UFn+QlpbxtgQjhbULnSbc7fw==\n" + "-----END RSA PRIVATE KEY-----", - ttl: 60, + ttl: 60 }, cronJobHandler: { @@ -215,42 +215,42 @@ module.exports = { "XFFmNp6sqcQD1P15HkJtleodzcKgmsqo8RTk8t+urdWIdoLFAugwqFE9jor8UxAp\n" + "wT5xr8c84VDfbPgc10V2XTda4SXaIRP7QY+9agGmZIYp0LWxUOhB37PNFDhUEw9d\n" + "VwIDAQAB\n" + - "-----END PUBLIC KEY-----", + "-----END PUBLIC KEY-----" }, // Cloudinary keys cloudinary: { cloud_name: "Cloud_name", api_key: "API_KEY", - api_secret: "api_secret_key", + api_secret: "api_secret_key" }, // Cloudflare cloudflare: { CLOUDFLARE_ZONE_ID: "Cloudflare_Zone_ID_or_ID", CLOUDFLARE_X_AUTH_KEY: "Cloudflare_API_Auth_Key", - CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email", + CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email" }, integrations: { newrelic: { appName: "RDS_API_production", - licenseKey: "", - }, + licenseKey: "" + } }, routesCacheTTL: { - "/members": 900, + "/members": 900 }, githubAccessToken: "GITHUB_PERSONAL_ACCESS_TOKEN", Event100ms: { APP_ACCESS_KEY: "EVENT_100MS_APP_ACCESS_KEY", - APP_SECRET: "EVENT_100MS_APP_SECRET", + APP_SECRET: "EVENT_100MS_APP_SECRET" }, externalServices: { - EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY", - }, + EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY" + } }; diff --git a/test/fixtures/arts/arts.js b/test/fixtures/arts/arts.js index 0e5a35b5d..9836a353c 100644 --- a/test/fixtures/arts/arts.js +++ b/test/fixtures/arts/arts.js @@ -3,12 +3,12 @@ module.exports = () => { { title: "Green Square", price: 50, - css: "background: green;\nheight: 100;\nwidth: 100;", + css: "background: green;\nheight: 100;\nwidth: 100;" }, { title: "yellow square", css: "background: yellow; height: 100; width: 100;", - price: 69, - }, + price: 69 + } ]; }; diff --git a/test/fixtures/auctions/auctions.js b/test/fixtures/auctions/auctions.js index 1403853be..da8a41ff0 100644 --- a/test/fixtures/auctions/auctions.js +++ b/test/fixtures/auctions/auctions.js @@ -11,7 +11,7 @@ const auctionData = { item_type: NEELAM, quantity: 2, initial_price: 100, - end_time: Date.now() + 60 * 60 * 1000, + end_time: Date.now() + 60 * 60 * 1000 }; const auctionKeys = ["auctions", "message"]; diff --git a/test/fixtures/auth/githubUserInfo.js b/test/fixtures/auth/githubUserInfo.js index 153264e0a..662c89b08 100644 --- a/test/fixtures/auth/githubUserInfo.js +++ b/test/fixtures/auth/githubUserInfo.js @@ -15,8 +15,8 @@ module.exports = () => { profileUrl: "https://github.com/ankurnarkhede", photos: [ { - value: "https://avatars3.githubusercontent.com/u/26190252?v=4", - }, + value: "https://avatars3.githubusercontent.com/u/26190252?v=4" + } ], provider: "github", _raw: '{"login":"ankurnarkhede","id":26190252,"node_id":"MDQ6VXNlcjI2MTkwMjUy","avatar_url":"https://avatars3.githubusercontent.com/u/26190252?v=4","gravatar_id":"","url":"https://api.github.com/users/ankurnarkhede","html_url":"https://github.com/ankurnarkhede","followers_url":"https://api.github.com/users/ankurnarkhede/followers","following_url":"https://api.github.com/users/ankurnarkhede/following{/other_user}","gists_url":"https://api.github.com/users/ankurnarkhede/gists{/gist_id}","starred_url":"https://api.github.com/users/ankurnarkhede/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ankurnarkhede/subscriptions","organizations_url":"https://api.github.com/users/ankurnarkhede/orgs","repos_url":"https://api.github.com/users/ankurnarkhede/repos","events_url":"https://api.github.com/users/ankurnarkhede/events{/privacy}","received_events_url":"https://api.github.com/users/ankurnarkhede/received_events","type":"User","site_admin":false,"name":"Ankur Narkhede","company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":0,"public_gists":0,"followers":0,"following":0,"created_at":"2017-03-04T19:40:28Z","updated_at":"2020-08-15T13:35:13Z","private_gists":0,"total_private_repos":0,"owned_private_repos":0,"disk_usage":0,"collaborators":0,"two_factor_authentication":false,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":10000}}', @@ -63,9 +63,9 @@ module.exports = () => { name: "free", space: 976562499, collaborators: 0, - private_repos: 10000, - }, - }, + private_repos: 10000 + } + } }, { login: "sahsisunny", @@ -99,7 +99,7 @@ module.exports = () => { followers: 11, following: 4, created_at: "2020-09-06T16:21:38Z", - updated_at: "2023-07-26T09:29:37Z", - }, + updated_at: "2023-07-26T09:29:37Z" + } ]; }; diff --git a/test/fixtures/badges/badges.js b/test/fixtures/badges/badges.js index 7160886d0..67fb7f537 100644 --- a/test/fixtures/badges/badges.js +++ b/test/fixtures/badges/badges.js @@ -8,8 +8,8 @@ const BADGES = [ createdBy: "shmbajaj", createdAt: { _seconds: "1234567890", - _nanoseconds: "1234567890", - }, + _nanoseconds: "1234567890" + } }, { id: 2, @@ -20,8 +20,8 @@ const BADGES = [ createdBy: "shmbajaj", createdAt: { _seconds: "1234567890", - _nanoseconds: "1234567890", - }, + _nanoseconds: "1234567890" + } }, { id: 3, @@ -32,9 +32,9 @@ const BADGES = [ createdBy: "shmbajaj", createdAt: { _seconds: "1234567890", - _nanoseconds: "1234567890", - }, - }, + _nanoseconds: "1234567890" + } + } ]; const CLOUNDINARY_IMAGE_URL = "https://imageUrl.cloudinary.com/badges/something.jpg"; @@ -45,16 +45,16 @@ const EXPECTED_BADGE_OBJECT = { createdBy: "shmbajaj", description: "", imageUrl: CLOUNDINARY_IMAGE_URL, - createdAt: {}, + createdAt: {} }; const CLOUNDINARY_BADGE_IMAGE_UPLOAD_RESPONSE = { id: "badge-image-random-id", - imageUrl: CLOUNDINARY_IMAGE_URL, + imageUrl: CLOUNDINARY_IMAGE_URL }; module.exports = { BADGES, EXPECTED_BADGE_OBJECT, - CLOUNDINARY_BADGE_IMAGE_UPLOAD_RESPONSE, + CLOUNDINARY_BADGE_IMAGE_UPLOAD_RESPONSE }; diff --git a/test/fixtures/challenges/challenges.js b/test/fixtures/challenges/challenges.js index b6ca70087..83b8ec494 100644 --- a/test/fixtures/challenges/challenges.js +++ b/test/fixtures/challenges/challenges.js @@ -6,7 +6,7 @@ module.exports = () => { title: "Sherlock and Anagrams", level: "Easy", start_date: timeUtils.getTimeInSecondAfter({}), - end_date: timeUtils.getTimeInSecondAfter({ days: 10 }), - }, + end_date: timeUtils.getTimeInSecondAfter({ days: 10 }) + } ]; }; diff --git a/test/fixtures/cloudflareCache/data.js b/test/fixtures/cloudflareCache/data.js index 0bd1fe4fd..091f6dda9 100644 --- a/test/fixtures/cloudflareCache/data.js +++ b/test/fixtures/cloudflareCache/data.js @@ -2,25 +2,25 @@ const cacheLogs = [ { timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000, + _nanoseconds: 912000000 }, type: "CLOUDFLARE_CACHE_PURGED", meta: { - userId: "TEST_USER_ID", + userId: "TEST_USER_ID" }, body: { - message: "Log", - }, - }, + message: "Log" + } + } ]; const cacheModelData = [ { - timestamp: { _seconds: 1659870503, _nanoseconds: 482000000 }, + timestamp: { _seconds: 1659870503, _nanoseconds: 482000000 } }, { - timestamp: { _seconds: 1659843503, _nanoseconds: 680003000 }, - }, + timestamp: { _seconds: 1659843503, _nanoseconds: 680003000 } + } ]; const purgeCacheResponse = [ @@ -30,14 +30,14 @@ const purgeCacheResponse = [ errors: [], messages: [], result: { - id: "TEST_RESULT_ID", - }, - }, - }, + id: "TEST_RESULT_ID" + } + } + } ]; module.exports = { cacheLogs, cacheModelData, - purgeCacheResponse, + purgeCacheResponse }; diff --git a/test/fixtures/contributions/githubPRInfo.js b/test/fixtures/contributions/githubPRInfo.js index b4d641911..afcebddbe 100644 --- a/test/fixtures/contributions/githubPRInfo.js +++ b/test/fixtures/contributions/githubPRInfo.js @@ -40,7 +40,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "closed", @@ -59,11 +59,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/145", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch" }, body: "", performed_via_github_app: null, - score: 1, + score: 1 }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/83", @@ -94,7 +94,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "open", @@ -117,7 +117,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, assignees: [ { @@ -138,8 +138,8 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, - }, + site_admin: false + } ], milestone: null, comments: 0, @@ -153,11 +153,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/83", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch" }, body: "", performed_via_github_app: null, - score: 1, + score: 1 }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-static/issues/48", @@ -188,7 +188,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "closed", @@ -207,11 +207,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-static/pulls/48", html_url: "https://github.com/Real-Dev-Squad/website-static/pull/48", diff_url: "https://github.com/Real-Dev-Squad/website-static/pull/48.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-static/pull/48.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-static/pull/48.patch" }, body: "Adding info and image to member's page", performed_via_github_app: null, - score: 1, + score: 1 }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/72", @@ -242,7 +242,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "open", @@ -265,7 +265,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, assignees: [ { @@ -286,8 +286,8 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, - }, + site_admin: false + } ], milestone: null, comments: 0, @@ -301,11 +301,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/72", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72.patch" }, body: "Products api \r\nget /crypto/products\r\nget /crypto/products/id\r\npost /crypto/products body:{data}\r\n\r\nCrypto user transaction will be done in next pr\r\n ", performed_via_github_app: null, - score: 1, + score: 1 }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-crypto/issues/34", @@ -336,7 +336,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "closed", @@ -355,21 +355,21 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-crypto/pulls/34", html_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34", diff_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34.patch" }, body: "Changed CSS of transactionCard .\r\nChanged Coin color.\r\nOther minor changes\r\n", performed_via_github_app: null, - score: 1, - }, - ], - }, + score: 1 + } + ] + } }, userWithNoPrs: { data: { total_count: 0, incomplete_results: false, - items: [], - }, + items: [] + } }, userNoTask: { data: { @@ -405,7 +405,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "closed", @@ -424,11 +424,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/145", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch" }, body: "", performed_via_github_app: null, - score: 1, + score: 1 }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/83", @@ -459,7 +459,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [], state: "open", @@ -482,7 +482,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, + site_admin: false }, assignees: [ { @@ -503,8 +503,8 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false, - }, + site_admin: false + } ], milestone: null, comments: 0, @@ -518,14 +518,14 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/83", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch", + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch" }, body: "", performed_via_github_app: null, - score: 1, - }, - ], - }, - }, + score: 1 + } + ] + } + } }; }; diff --git a/test/fixtures/currencies/currencies.js b/test/fixtures/currencies/currencies.js index 97fa7460f..5c42f5ff1 100644 --- a/test/fixtures/currencies/currencies.js +++ b/test/fixtures/currencies/currencies.js @@ -10,10 +10,10 @@ const { DINERO, NEELAM } = require("../../../constants/wallets"); module.exports = { default: { [DINERO]: 1000, - [NEELAM]: 2, + [NEELAM]: 2 }, modified: { [DINERO]: 2000, - [NEELAM]: 0, - }, + [NEELAM]: 0 + } }; diff --git a/test/fixtures/discordResponse/discord-response.js b/test/fixtures/discordResponse/discord-response.js index 7e61f26a4..a46d46ae0 100644 --- a/test/fixtures/discordResponse/discord-response.js +++ b/test/fixtures/discordResponse/discord-response.js @@ -17,10 +17,10 @@ const getDiscordMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, + deaf: false }, { avatar: "", @@ -40,10 +40,10 @@ const getDiscordMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, + deaf: false }, { avatar: "", @@ -63,11 +63,11 @@ const getDiscordMembers = [ avatar: "56yu6567uuju7636w4e6yr7e9utbw8r4", // avatar hash discriminator: "44551", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, - }, + deaf: false + } ]; const usersFromRds = [ @@ -81,8 +81,8 @@ const usersFromRds = [ discordId: "123456789098765432", roles: { in_discord: false, - archived: false, - }, + archived: false + } }, { username: "nonArchivedAndInDiscord", @@ -94,8 +94,8 @@ const usersFromRds = [ discordId: "12345678909867666", roles: { in_discord: false, - archived: false, - }, + archived: false + } }, { username: "archivedAndInDiscord", @@ -107,8 +107,8 @@ const usersFromRds = [ discordId: "12345678909867666", roles: { in_discord: true, - archived: true, - }, + archived: true + } }, { username: "archivedAndNotInDiscord", @@ -120,8 +120,8 @@ const usersFromRds = [ discordId: "90438342", roles: { in_discord: true, - archived: true, - }, + archived: true + } }, { username: "nonArchivedAndNotInDiscord", @@ -133,19 +133,19 @@ const usersFromRds = [ discordId: "457298342", roles: { in_discord: false, - archived: false, + archived: false }, - id: "nonArchivedAndNotInDiscord", - }, + id: "nonArchivedAndNotInDiscord" + } ]; const updatedNicknameResponse = { userAffected: { userId: "X0H3paYveEWh7Q2fPhor", username: "test-name-007", - discordId: "1123566257019568232", + discordId: "1123566257019568232" }, - message: "User nickname changed successfully", + message: "User nickname changed successfully" }; const getOnboarding31DPlusMembers = [ @@ -167,10 +167,10 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, + deaf: false }, { avatar: "", @@ -190,10 +190,10 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, + deaf: false }, { avatar: "", @@ -213,10 +213,10 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e9utbw8r4", // avatar hash discriminator: "44551", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, + deaf: false }, { avatar: "", @@ -237,16 +237,16 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e9utbw8r4", // avatar hash discriminator: "4451", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null, + avatar_decoration: null }, mute: false, - deaf: false, - }, + deaf: false + } ]; module.exports = { getDiscordMembers, usersFromRds, updatedNicknameResponse, - getOnboarding31DPlusMembers, + getOnboarding31DPlusMembers }; diff --git a/test/fixtures/discordactions/discordactions.js b/test/fixtures/discordactions/discordactions.js index 0ef3c5647..335400a1e 100644 --- a/test/fixtures/discordactions/discordactions.js +++ b/test/fixtures/discordactions/discordactions.js @@ -3,48 +3,48 @@ const groupData = [ { rolename: "Group 2", roleid: "2" }, { rolename: "Group 3", roleid: "3" }, { rolename: "admin", roleid: "4" }, - { rolename: "group-test", roleid: "5" }, + { rolename: "group-test", roleid: "5" } ]; const groupIdle7d = { rolename: "group-idle-7d+", roleid: 4, createdBy: "1dad23q23j131j" }; const roleData = { roleid: "test-role-id", - userid: "test-user-id", + userid: "test-user-id" }; const requestRoleData = { - rolename: "test-role", + rolename: "test-role" }; const existingRole = { roleData: { roleid: "test-role-id", userid: "test-user-id" }, - wasSuccess: false, + wasSuccess: false }; const roleDataFromDiscord = { roles: [ { id: "test-role-id", - name: "test-role-name", + name: "test-role-name" }, { id: "test-role-id1", - name: "Group 2", - }, - ], + name: "Group 2" + } + ] }; const memberGroupData = [ { roleid: "1234", userid: "12356" }, { roleid: "12567", userid: "12367" }, - { roleid: "12564", userid: "12350" }, + { roleid: "12564", userid: "12350" } ]; const groupOnboarding31dPlus = { rolename: "group-onboarding-31d+", roleid: "11334336", - createdBy: "1dad23q23j131j", + createdBy: "1dad23q23j131j" }; module.exports = { @@ -55,5 +55,5 @@ module.exports = { requestRoleData, groupIdle7d, roleDataFromDiscord, - groupOnboarding31dPlus, + groupOnboarding31dPlus }; diff --git a/test/fixtures/events/event-codes.js b/test/fixtures/events/event-codes.js index 1d164335b..7d037bcab 100644 --- a/test/fixtures/events/event-codes.js +++ b/test/fixtures/events/event-codes.js @@ -7,21 +7,21 @@ module.exports = () => { event_id: "64d4eeb24467618438785156", code: "satyam75", role: "maven", - id: "3042c55c-89ad-4273-b553-d65b203ea251", + id: "3042c55c-89ad-4273-b553-d65b203ea251" }, { event_id: "64d4eeb24467618438785156", code: "sanket75", role: "maven", - id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd", + id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd" }, { event_id: "64d4eeb24467618438785156", code: "prerana75", role: "maven", - id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a", - }, - ], + id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a" + } + ] }, { data: [ @@ -29,63 +29,63 @@ module.exports = () => { event_id: "64d4eeb24467618438785156", code: "satyam75", role: "maven", - id: "3042c55c-89ad-4273-b553-d65b203ea251", + id: "3042c55c-89ad-4273-b553-d65b203ea251" }, { event_id: "64d4eeb24467618438785156", code: "sanket75", role: "maven", - id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd", + id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd" }, { event_id: "64d4eeb24467618438785156", code: "prerana75", role: "maven", - id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a", + id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a" }, { event_id: "64d4eeb24467618438785156", code: "zomato75", role: "maven", - id: "9dc84ef2-033d-4e0f-aabe-ca2cc6ae768f", + id: "9dc84ef2-033d-4e0f-aabe-ca2cc6ae768f" }, { event_id: "64d4eeb24467618438785156", code: "swiggy75", role: "maven", - id: "91a3d8e6-7ac7-4662-8a66-30e044ffd180", + id: "91a3d8e6-7ac7-4662-8a66-30e044ffd180" }, { event_id: "64d4eeb24467618438785156", code: "paytm75", role: "maven", - id: "cdddf717-7921-441b-8e75-745f9578a5a7", + id: "cdddf717-7921-441b-8e75-745f9578a5a7" }, { event_id: "64d4eeb24467618438785156", code: "paytm75", role: "maven", - id: "81b84e08-0769-4d4c-8439-f28d632256f4", + id: "81b84e08-0769-4d4c-8439-f28d632256f4" }, { event_id: "64d4eeb24467618438785156", code: "cred75", role: "maven", - id: "d6274e0a-5368-4d4a-a635-a1c1e8728ef9", + id: "d6274e0a-5368-4d4a-a635-a1c1e8728ef9" }, { event_id: "64d4eeb24467618438785156", code: "cred75", role: "maven", - id: "97a7f8c6-882b-4760-901a-3247bd3ae167", + id: "97a7f8c6-882b-4760-901a-3247bd3ae167" }, { event_id: "64d4eeb24467618438785156", code: "oppo75", role: "maven", - id: "90bf6af3-08c6-42c1-b888-2a332f5f8e67", - }, - ], - }, + id: "90bf6af3-08c6-42c1-b888-2a332f5f8e67" + } + ] + } ]; }; diff --git a/test/fixtures/events/events.js b/test/fixtures/events/events.js index abfd2de3b..66b10e245 100644 --- a/test/fixtures/events/events.js +++ b/test/fixtures/events/events.js @@ -14,7 +14,7 @@ module.exports = () => { customer: "627cdddff2e4e30487862ad1", customer_id: "6407de59edc7c8f3674c0d12", app_id: "6407de59edc7c8f3674c0d13", - recording_info: null, + recording_info: null }, { description: "The RDS live", @@ -39,11 +39,11 @@ module.exports = () => { "81b84e08-0769-4d4c-8439-f28d632256f4", "d6274e0a-5368-4d4a-a635-a1c1e8728ef9", "97a7f8c6-882b-4760-901a-3247bd3ae167", - "90bf6af3-08c6-42c1-b888-2a332f5f8e67", - ], - }, + "90bf6af3-08c6-42c1-b888-2a332f5f8e67" + ] + } }, - peers: ["11c33e90-42d9-4db3-9d06-96d0a2f7de1e"], - }, + peers: ["11c33e90-42d9-4db3-9d06-96d0a2f7de1e"] + } ]; }; diff --git a/test/fixtures/events/peers.js b/test/fixtures/events/peers.js index eccc6e2e2..e117597e0 100644 --- a/test/fixtures/events/peers.js +++ b/test/fixtures/events/peers.js @@ -6,7 +6,7 @@ const eventOnePeerData = { name: "Satyam Bajpai", eventId: event1Data.room_id, role: "guest", - joinedAt: new Date(), + joinedAt: new Date() }; module.exports = { eventOnePeerData }; diff --git a/test/fixtures/external-accounts/external-accounts.js b/test/fixtures/external-accounts/external-accounts.js index 86a061e10..7cf65a856 100644 --- a/test/fixtures/external-accounts/external-accounts.js +++ b/test/fixtures/external-accounts/external-accounts.js @@ -9,8 +9,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: 1674041460211, - }, + expiry: 1674041460211 + } }, { // Bad Data @@ -22,8 +22,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: 1674041460211, - }, + expiry: 1674041460211 + } }, { type: "discord", @@ -34,8 +34,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: Date.now() + 600000, - }, + expiry: Date.now() + 600000 + } }, { type: "discord", @@ -46,8 +46,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: Date.now() - 600000, - }, - }, + expiry: Date.now() - 600000 + } + } ]; }; diff --git a/test/fixtures/featureFlag/featureFlag.js b/test/fixtures/featureFlag/featureFlag.js index 50aef0840..013dfaca8 100644 --- a/test/fixtures/featureFlag/featureFlag.js +++ b/test/fixtures/featureFlag/featureFlag.js @@ -4,8 +4,8 @@ module.exports = () => { name: "Test-feature", title: "Test", config: { - enabled: true, - }, - }, + enabled: true + } + } ]; }; diff --git a/test/fixtures/goals/Token.js b/test/fixtures/goals/Token.js index 08875ccfc..943b9d634 100644 --- a/test/fixtures/goals/Token.js +++ b/test/fixtures/goals/Token.js @@ -3,7 +3,7 @@ const GET_OR_CREATE_GOAL_USER = { json: () => Promise.resolve({ id: "123456", - data: { attributes: { rds_id: "134556", token: "WHhHhWHu9ijHjkKhdbvFFhbnhCj" } }, - }), + data: { attributes: { rds_id: "134556", token: "WHhHhWHu9ijHjkKhdbvFFhbnhCj" } } + }) }; module.exports = { GET_OR_CREATE_GOAL_USER }; diff --git a/test/fixtures/issues/issues.js b/test/fixtures/issues/issues.js index bb08b1411..3eeeb7867 100644 --- a/test/fixtures/issues/issues.js +++ b/test/fixtures/issues/issues.js @@ -27,7 +27,7 @@ const issuesData = { events_url: "https://api.github.com/users/SanketDhabarde/events{/privacy}", received_events_url: "https://api.github.com/users/SanketDhabarde/received_events", type: "User", - site_admin: false, + site_admin: false }, labels: [ { @@ -37,8 +37,8 @@ const issuesData = { name: "live-site", color: "FA3DCD", default: false, - description: "", - }, + description: "" + } ], state: "open", locked: false, @@ -60,7 +60,7 @@ const issuesData = { events_url: "https://api.github.com/users/SanketDhabarde/events{/privacy}", received_events_url: "https://api.github.com/users/SanketDhabarde/received_events", type: "User", - site_admin: false, + site_admin: false }, assignees: [ { @@ -81,8 +81,8 @@ const issuesData = { events_url: "https://api.github.com/users/SanketDhabarde/events{/privacy}", received_events_url: "https://api.github.com/users/SanketDhabarde/received_events", type: "User", - site_admin: false, - }, + site_admin: false + } ], milestone: null, comments: 0, @@ -102,12 +102,12 @@ const issuesData = { confused: 0, heart: 0, rocket: 0, - eyes: 0, + eyes: 0 }, timeline_url: "https://api.github.com/repos/Real-Dev-Squad/website-www/issues/679/timeline", performed_via_github_app: null, state_reason: null, - score: 1, + score: 1 }; const issuesHtmlUrl = "https://github.com/Real-Dev-Squad/website-www/issues/679"; diff --git a/test/fixtures/logs/archievedUsers.js b/test/fixtures/logs/archievedUsers.js index 27f935d0c..7dc3e9ebf 100644 --- a/test/fixtures/logs/archievedUsers.js +++ b/test/fixtures/logs/archievedUsers.js @@ -11,14 +11,14 @@ export const archivedUserDetailsModal = [ in_discord: true, super_user: false, member: true, - archived: false, - }, - }, + archived: false + } + } }, timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000, - }, + _nanoseconds: 912000000 + } }, { type: "archived-details", @@ -32,14 +32,14 @@ export const archivedUserDetailsModal = [ in_discord: true, super_user: false, member: true, - archived: false, - }, - }, + archived: false + } + } }, timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000, - }, + _nanoseconds: 912000000 + } }, { type: "archived-details", @@ -53,13 +53,13 @@ export const archivedUserDetailsModal = [ in_discord: true, super_user: false, member: true, - archived: false, - }, - }, + archived: false + } + } }, timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000, - }, - }, + _nanoseconds: 912000000 + } + } ]; diff --git a/test/fixtures/logs/extensionRequests.js b/test/fixtures/logs/extensionRequests.js index af8c56f54..16fde62ec 100644 --- a/test/fixtures/logs/extensionRequests.js +++ b/test/fixtures/logs/extensionRequests.js @@ -4,69 +4,69 @@ export const extensionRequestLogs = [ extensionRequestId: "y79PXir0s82qNAzeIn8S", userId: "XBucw7nHW1wOxdWrmLVa", taskId: "mZB0akqPUa1GQQdrgsx7", - username: "joygupta", + username: "joygupta" }, type: "extensionRequests", body: { - status: "APPROVED", + status: "APPROVED" }, timestamp: { _seconds: 1695832409, - _nanoseconds: 947000000, - }, + _nanoseconds: 947000000 + } }, { meta: { extensionRequestId: "y79PXir0s82qNAzeIn8S", userId: "XBucw7nHW1wOxdWrmLVa", taskId: "mZB0akqPUa1GQQdrgsx7", - username: "joygupta", + username: "joygupta" }, type: "extensionRequests", body: { - status: "DENIED", + status: "DENIED" }, timestamp: { _seconds: 1695859014, - _nanoseconds: 252000000, - }, + _nanoseconds: 252000000 + } }, { meta: { taskId: "mZB0akqPUa1GQQdrgsx7", createdBy: "XBucw7nHW1wOxdWrmLVa", - username: "joygupta", + username: "joygupta" }, body: { assignee: "XBucw7nHW1wOxdWrmLVa", extensionRequestId: "y79PXir0s82qNAzeIn8S", oldEndsOn: 1707264000, newEndsOn: 1706918400, - status: "PENDING", + status: "PENDING" }, type: "extensionRequests", timestamp: { _seconds: 1695832836, - _nanoseconds: 401000000, - }, + _nanoseconds: 401000000 + } }, { meta: { taskId: "mZB0akqPUa1GQQdrgsx7", createdBy: "XBucw7nHW1wOxdWrmLVa", - username: "joygupta", + username: "joygupta" }, body: { assignee: "XBucw7nHW1wOxdWrmLVa", oldTitle: "Hello World", newTitle: "Hello JS", extensionRequestId: "y79PXir0s82qNAzeIn8S", - status: "PENDING", + status: "PENDING" }, type: "extensionRequests", timestamp: { _seconds: 1695832836, - _nanoseconds: 401000000, - }, - }, + _nanoseconds: 401000000 + } + } ]; diff --git a/test/fixtures/logs/requests.js b/test/fixtures/logs/requests.js index c02739524..bb959e7bb 100644 --- a/test/fixtures/logs/requests.js +++ b/test/fixtures/logs/requests.js @@ -4,7 +4,7 @@ export const requestsLogs = [ createdAt: 1709175284035, createdBy: "iODXB6ns8jaZB9p0XlBw", requestId: "CNExxpR1F4UPbtYIpxFP", - action: "create", + action: "create" }, type: "REQUEST_CREATED", body: { @@ -16,19 +16,19 @@ export const requestsLogs = [ state: "PENDING", type: "OOO", message: "Out of office for personal reasons.", - updatedAt: 1709175282967, + updatedAt: 1709175282967 }, timestamp: { _seconds: 1709175284, - _nanoseconds: 35000000, - }, + _nanoseconds: 35000000 + } }, { meta: { createdAt: 1709170848580, createdBy: "iODXB6ns8jaZB9p0XlBw", requestId: "K7ioni8arDgRCBAWwYxp", - action: "create", + action: "create" }, type: "REQUEST_CREATED", body: { @@ -40,11 +40,11 @@ export const requestsLogs = [ state: "PENDING", type: "OOO", message: "Out of office for personal reasons.", - updatedAt: 1709170848318, + updatedAt: 1709170848318 }, timestamp: { _seconds: 1709170848, - _nanoseconds: 580000000, - }, - }, + _nanoseconds: 580000000 + } + } ]; diff --git a/test/fixtures/logs/tasks.js b/test/fixtures/logs/tasks.js index 163efffaa..f0363bbf8 100644 --- a/test/fixtures/logs/tasks.js +++ b/test/fixtures/logs/tasks.js @@ -3,54 +3,54 @@ export const taskLogs = [ meta: { userId: "aaL1MXrpmnUNfLkhgXRj", taskId: "P8ZZX2ef8heTs0erA6a8", - username: "shubham-sharma", + username: "shubham-sharma" }, type: "task", body: { new: { - status: "NEEDS_REVIEW", + status: "NEEDS_REVIEW" }, - subType: "update", + subType: "update" }, timestamp: { _seconds: 1710731591, - _nanoseconds: 323000000, - }, + _nanoseconds: 323000000 + } }, { meta: { userId: "aaL1MXrpmnUNfLkhgXRj", taskId: "P8ZZX2ef8heTs0erA6a8", - username: "shubham-sharma", + username: "shubham-sharma" }, type: "task", body: { new: { - status: "IN_PROGRESS", + status: "IN_PROGRESS" }, - subType: "update", + subType: "update" }, timestamp: { _seconds: 1710731469, - _nanoseconds: 274000000, - }, + _nanoseconds: 274000000 + } }, { meta: { userId: "aaL1MXrpmnUNfLkhgXRj", taskId: "P8ZZX2ef8heTs0erA6a8", - username: "shubham-sharma", + username: "shubham-sharma" }, type: "task", body: { new: { - status: "BLOCKED", + status: "BLOCKED" }, - subType: "update", + subType: "update" }, timestamp: { _seconds: 1710731408, - _nanoseconds: 684000000, - }, - }, + _nanoseconds: 684000000 + } + } ]; diff --git a/test/fixtures/profileDiffs/profileDiffs.js b/test/fixtures/profileDiffs/profileDiffs.js index e530409a3..70efc7b6d 100644 --- a/test/fixtures/profileDiffs/profileDiffs.js +++ b/test/fixtures/profileDiffs/profileDiffs.js @@ -15,7 +15,7 @@ module.exports = () => { twitter_id: "ankur909", instagram_id: "", website: "", - message: "", - }, + message: "" + } ]; }; diff --git a/test/fixtures/progress/progresses.js b/test/fixtures/progress/progresses.js index abcb80677..736a04041 100644 --- a/test/fixtures/progress/progresses.js +++ b/test/fixtures/progress/progresses.js @@ -2,7 +2,7 @@ const standupProgressDay1 = { type: "user", completed: "Working on a backend Go project", planned: "Implement error handling for API endpoints", - blockers: "Waiting for database access credentials", + blockers: "Waiting for database access credentials" }; const incompleteProgress = [ @@ -11,33 +11,33 @@ const incompleteProgress = [ payload: { completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", - }, + blockers: "Waiting for feedback from the code review" + } }, { missingField: "completed", payload: { type: "user", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", - }, + blockers: "Waiting for feedback from the code review" + } }, { missingField: "planned", payload: { type: "user", completed: "Implemented caching mechanism for frequent API requests", - blockers: "Waiting for feedback from the code review", - }, + blockers: "Waiting for feedback from the code review" + } }, { missingField: "blockers", payload: { type: "user", completed: "Implemented caching mechanism for frequent API requests", - planned: "Refactor code to follow coding best practices", - }, - }, + planned: "Refactor code to follow coding best practices" + } + } ]; const stubbedModelProgressData = (userId, createdAt, date) => { @@ -48,7 +48,7 @@ const stubbedModelProgressData = (userId, createdAt, date) => { type: "user", completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", + blockers: "Waiting for feedback from the code review" }; }; @@ -58,7 +58,7 @@ const taskProgressDay1 = (taskId) => { type: "task", completed: "Working on a backend Go Task", planned: "Implement error handling for API endpoints", - blockers: "Waiting for database access credentials", + blockers: "Waiting for database access credentials" }; }; @@ -69,8 +69,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", - }, + blockers: "Waiting for feedback from the code review" + } }, { missingField: "completed", @@ -78,8 +78,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, type: "task", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", - }, + blockers: "Waiting for feedback from the code review" + } }, { missingField: "planned", @@ -87,8 +87,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, type: "task", completed: "Implemented caching mechanism for frequent API requests", - blockers: "Waiting for feedback from the code review", - }, + blockers: "Waiting for feedback from the code review" + } }, { missingField: "blockers", @@ -96,8 +96,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, type: "task", completed: "Implemented caching mechanism for frequent API requests", - planned: "Refactor code to follow coding best practices", - }, + planned: "Refactor code to follow coding best practices" + } }, { missingField: "taskId", @@ -105,9 +105,9 @@ const incompleteTaskProgress = (taskId) => [ type: "task", completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", - }, - }, + blockers: "Waiting for feedback from the code review" + } + } ]; const stubbedModelTaskProgressData = (userId, taskId, createdAt, date) => { @@ -119,7 +119,7 @@ const stubbedModelTaskProgressData = (userId, taskId, createdAt, date) => { type: "task", completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review", + blockers: "Waiting for feedback from the code review" }; }; @@ -129,5 +129,5 @@ module.exports = { stubbedModelProgressData, taskProgressDay1, incompleteTaskProgress, - stubbedModelTaskProgressData, + stubbedModelTaskProgressData }; diff --git a/test/fixtures/pullrequests/pullrequests.js b/test/fixtures/pullrequests/pullrequests.js index fd9aef059..681522cee 100644 --- a/test/fixtures/pullrequests/pullrequests.js +++ b/test/fixtures/pullrequests/pullrequests.js @@ -8,7 +8,7 @@ const filteredPRs = [ repository: "website-my", url: "https://github.com/Real-Dev-Squad/website-my/pull/407", labels: ["UX", "UI"], - assignees: ["RitikJaiswal75"], + assignees: ["RitikJaiswal75"] }, { title: "Added a link on logo ", @@ -19,7 +19,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/465", labels: [], - assignees: [], + assignees: [] }, { title: "nuke: links to crypto site", @@ -30,7 +30,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/473", labels: [], - assignees: [], + assignees: [] }, { title: "[Ember-Migration] Embroider Setup", @@ -41,7 +41,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/490", labels: ["ember-migration", "config"], - assignees: ["rohan09-raj"], + assignees: ["rohan09-raj"] }, { title: "Added task-dependency data model", @@ -52,7 +52,7 @@ const filteredPRs = [ repository: "website-data-models", url: "https://github.com/Real-Dev-Squad/website-data-models/pull/46", labels: ["documentation"], - assignees: ["vinit717"], + assignees: ["vinit717"] }, { title: "[Live-Site] create a modal for joining the live session", @@ -63,7 +63,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/477", labels: ["live-site"], - assignees: ["SanketDhabarde"], + assignees: ["SanketDhabarde"] }, { title: "Set github actions timeout to 5 mins", @@ -74,7 +74,7 @@ const filteredPRs = [ repository: "website-backend", url: "https://github.com/Real-Dev-Squad/website-backend/pull/1117", labels: [], - assignees: [], + assignees: [] }, { title: "create a social share image for realdevsquad.com/join", @@ -85,7 +85,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/487", labels: [], - assignees: ["Pratiyushkumar"], + assignees: ["Pratiyushkumar"] }, { title: "Sync dev to main", @@ -96,7 +96,7 @@ const filteredPRs = [ repository: "website-status", url: "https://github.com/Real-Dev-Squad/website-status/pull/586", labels: [], - assignees: [], + assignees: [] }, { title: "Task details page", @@ -107,28 +107,28 @@ const filteredPRs = [ repository: "website-status", url: "https://github.com/Real-Dev-Squad/website-status/pull/341", labels: ["feature task"], - assignees: ["kotesh-arya"], - }, + assignees: ["kotesh-arya"] + } ]; const prDates = [ { pull_request: { - merged_at: "2023-08-18T11:56:45Z", - }, + merged_at: "2023-08-18T11:56:45Z" + } }, { pull_request: { - merged_at: "2023-08-18T11:56:45Z", - }, + merged_at: "2023-08-18T11:56:45Z" + } }, { pull_request: { - merged_at: "2023-08-18T11:56:45Z", - }, - }, + merged_at: "2023-08-18T11:56:45Z" + } + } ]; module.exports = { filteredPRs, - prDates, + prDates }; diff --git a/test/fixtures/qrCodeAuth/qrCodeAuth.js b/test/fixtures/qrCodeAuth/qrCodeAuth.js index 35e078bf7..6a08d761c 100644 --- a/test/fixtures/qrCodeAuth/qrCodeAuth.js +++ b/test/fixtures/qrCodeAuth/qrCodeAuth.js @@ -9,8 +9,8 @@ const userDeviceInfoDataArray = [ { user_id: "TEST_USER_ID", device_info: "TEST_DEVICE_INFO", - device_id: "TEST_DEVICE_ID", - }, + device_id: "TEST_DEVICE_ID" + } ]; const userDeviceInfoIdKeys = ["user_id", "device_info", "device_id"]; diff --git a/test/fixtures/recruiter/recruiter.js b/test/fixtures/recruiter/recruiter.js index 4fa9a009e..a3c31d7d2 100644 --- a/test/fixtures/recruiter/recruiter.js +++ b/test/fixtures/recruiter/recruiter.js @@ -14,8 +14,8 @@ const recruiterDataArray = [ reason: "Test", email: "abc@gmail.com", currency: "$", - package: 100000, - }, + package: 100000 + } ]; const recruiterWithIdKeys = [ @@ -29,7 +29,7 @@ const recruiterWithIdKeys = [ "package", "timestamp", "id", - "username", + "username" ]; module.exports = { recruiterDataArray, recruiterWithIdKeys }; diff --git a/test/fixtures/standup/standup.js b/test/fixtures/standup/standup.js index 5e9c95967..291be62a1 100644 --- a/test/fixtures/standup/standup.js +++ b/test/fixtures/standup/standup.js @@ -4,12 +4,12 @@ module.exports = () => { timestamp: "2023-04-20T16:23:58Z", yesterday: "Did something", today: "will do something", - blockers: "nothing", + blockers: "nothing" }, { yesterday: "Did something", today: "will do something", - blockers: "nothing", - }, + blockers: "nothing" + } ]; }; diff --git a/test/fixtures/task-requests/task-requests.js b/test/fixtures/task-requests/task-requests.js index 8190087a9..e8619de6e 100644 --- a/test/fixtures/task-requests/task-requests.js +++ b/test/fixtures/task-requests/task-requests.js @@ -6,7 +6,7 @@ const validAssignmentRequest = { externalIssueHtmlUrl: "https://github.com/Real-Dev-Squad/website-status/issues/1564672", userId: "7890", proposedDeadline: 1243455234, - proposedStartDate: 1243405234, + proposedStartDate: 1243405234 }; const { taskId: tarTaskId, ...assignmentReqWithoutTaskId } = validAssignmentRequest; const { userId: tarUserId, ...assignmentReqWithoutUserId } = validAssignmentRequest; @@ -19,7 +19,7 @@ const validCreationRequest = { requestType: "CREATION", userId: "7890", proposedDeadline: 1243455234, - proposedStartDate: 1243405234, + proposedStartDate: 1243405234 }; const creationReqWithTaskId = { ...validCreationRequest, taskId: "1234" }; const { userId: tcrUserId, ...creationReqWithoutUserId } = validCreationRequest; @@ -27,7 +27,7 @@ const { proposedDeadline: tcrProposedDeadline, ...creationReqWithoutProposedDead const { externalIssueUrl: tcrExternalIssueUrl, ...creationReqWithoutExtIssueId } = validCreationRequest; const creationReqWithDescription = { ...validCreationRequest, description: "something something" }; const invalidRequest = { - hello: "world", + hello: "world" }; const taskRequestData = { userId: "user123", @@ -37,7 +37,7 @@ const taskRequestData = { requestType: TASK_REQUEST_TYPE.CREATION, externalIssueUrl: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/1599", externalIssueHtmlUrl: "https://github.com/Real-Dev-Squad/website-backend/issues/1599", - markdownEnabled: false, + markdownEnabled: false }; const existingTaskRequest = { requestors: ["user123"], @@ -54,23 +54,23 @@ const existingTaskRequest = { proposedDeadline: 1697452226789, proposedStartDate: 1697452226789, description: "Task description", - status: "PENDING", - }, + status: "PENDING" + } ], createdBy: "testUser", createdAt: 1697452229369, lastModifiedBy: "testUser", - lastModifiedAt: 1697452229369, + lastModifiedAt: 1697452229369 }; const existingOldTaskRequest = { requestors: ["user123"], status: "PENDING", - taskId: "task123", + taskId: "task123" }; const existingOldTaskRequestWithMultipleUsers = { requestors: ["user123", "user456"], status: "PENDING", - taskId: "task456", + taskId: "task456" }; module.exports = { existingOldTaskRequest, @@ -89,5 +89,5 @@ module.exports = { creationReqWithoutExtIssueId, creationReqWithDescription, invalidRequest, - existingOldTaskRequestWithMultipleUsers, + existingOldTaskRequestWithMultipleUsers }; diff --git a/test/fixtures/tasks/multiple-extension-requests-tasks.js b/test/fixtures/tasks/multiple-extension-requests-tasks.js index 97f7bdaf9..f13164371 100644 --- a/test/fixtures/tasks/multiple-extension-requests-tasks.js +++ b/test/fixtures/tasks/multiple-extension-requests-tasks.js @@ -14,7 +14,7 @@ module.exports = () => { assignee: user.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task 2", @@ -26,7 +26,7 @@ module.exports = () => { assignee: user.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task 3", @@ -42,7 +42,7 @@ module.exports = () => { isNoteworthy: false, assignee: appOwner.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task 4", @@ -54,7 +54,7 @@ module.exports = () => { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, - }, + lossRate: { [DINERO]: 1 } + } ]; }; diff --git a/test/fixtures/tasks/tasks.js b/test/fixtures/tasks/tasks.js index 1d5efa978..48b75a43a 100644 --- a/test/fixtures/tasks/tasks.js +++ b/test/fixtures/tasks/tasks.js @@ -19,7 +19,7 @@ module.exports = () => { status: "IN_PROGRESS", percentCompleted: 50, endsOn: 1647172800, // 13 march - startedOn: 1644753600, // 13 feb + startedOn: 1644753600 // 13 feb }, { title: "Overdue task 2", @@ -32,7 +32,7 @@ module.exports = () => { status: "ASSIGNED", percentCompleted: 50, endsOn: 1647172800, // 13 march - startedOn: 1644753600, // 13 feb + startedOn: 1644753600 // 13 feb }, { title: "Testing purpose", @@ -45,7 +45,7 @@ module.exports = () => { status: "BLOCKED", percentCompleted: 50, endsOn: 1647172800, - startedOn: 1644753600, + startedOn: 1644753600 }, { title: "check is task form is working", @@ -58,7 +58,7 @@ module.exports = () => { endsOn: 1650032259, startedOn: 1644753600, createdAt: 1644753600, - updatedAt: 1644753600, + updatedAt: 1644753600 }, { title: "Test task", @@ -76,7 +76,7 @@ module.exports = () => { isNoteworthy: true, assignee: false, createdAt: 1644753600, - updatedAt: 1644753600, + updatedAt: 1644753600 }, { title: "Test task-dependency", @@ -91,7 +91,7 @@ module.exports = () => { isNoteworthy: true, assignee: false, createdAt: 1644753600, - updatedAt: 1644753600, + updatedAt: 1644753600 }, { id: "P86Y1hVrS0zR5ZcVPwLZ", @@ -101,21 +101,21 @@ module.exports = () => { createdBy: "sahsi", lossRate: { dinero: 100, - neelam: 0, + neelam: 0 }, assignee: "narendra", type: "feature", priority: "HIGH", completionAward: { dinero: 1000, - neelam: 0, + neelam: 0 }, title: "Implement user authentication and authorization", status: "IN_PROGRESS", assigneeId: "WbceXEPcohuJ5IxHHecf", dependsOn: [], createdAt: 1644753600, - updatedAt: 1644753600, + updatedAt: 1644753600 }, { id: "P86Y1fsvS0zR5ZcVPwLZ", @@ -125,20 +125,20 @@ module.exports = () => { createdBy: "ramchandra", lossRate: { dinero: 100, - neelam: 0, + neelam: 0 }, assignee: "ravan", type: "feature", priority: "HIGH", completionAward: { dinero: 10000, - neelam: 0, + neelam: 0 }, title: "Undefined status", assigneeId: "WbceXEPcdsuJ5IxHHecf", dependsOn: [], createdAt: 1644753600, - updatedAt: 1644753600, - }, + updatedAt: 1644753600 + } ]; }; diff --git a/test/fixtures/tasks/tasks1.js b/test/fixtures/tasks/tasks1.js index 0f5072407..ca48f8eaf 100644 --- a/test/fixtures/tasks/tasks1.js +++ b/test/fixtures/tasks/tasks1.js @@ -19,7 +19,7 @@ module.exports = () => { assignee: appOwner.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true, - }, + isNoteworthy: true + } ]; }; diff --git a/test/fixtures/time/time.js b/test/fixtures/time/time.js index 0d957771f..2f0b19de1 100644 --- a/test/fixtures/time/time.js +++ b/test/fixtures/time/time.js @@ -3,66 +3,66 @@ const admin = require("firebase-admin"); const minutesToMilliseconds = [ { param: 60, - result: 3600000, + result: 3600000 }, { param: 10000000000, - result: 600000000000000, - }, + result: 600000000000000 + } ]; const hoursToMilliseconds = [ { param: 60, - result: 216000000, + result: 216000000 }, { param: 10000000000, - result: 36000000000000000, - }, + result: 36000000000000000 + } ]; const daysToMilliseconds = [ { param: 60, - result: 5184000000, + result: 5184000000 }, { param: 10000000000, - result: 864000000000000000, - }, + result: 864000000000000000 + } ]; const timeInSecondsAfter = [ { param: { - timestamp: 1648370545193, + timestamp: 1648370545193 }, - result: 1648370545, + result: 1648370545 }, { param: { timestamp: 1648370545193, - days: 20, + days: 20 }, - result: 1648370545 + 1728000, - }, + result: 1648370545 + 1728000 + } ]; const timeBeforeHour = [ { param: { timestamp: admin.firestore.Timestamp.fromDate(new Date(1671820200 * 1000)), - hours: 24, + hours: 24 }, - result: admin.firestore.Timestamp.fromDate(new Date(1671733800 * 1000))._seconds, + result: admin.firestore.Timestamp.fromDate(new Date(1671733800 * 1000))._seconds }, { param: { - timestamp: admin.firestore.Timestamp.fromDate(new Date()), + timestamp: admin.firestore.Timestamp.fromDate(new Date()) }, - result: admin.firestore.Timestamp.fromDate(new Date())._seconds, - }, + result: admin.firestore.Timestamp.fromDate(new Date())._seconds + } ]; module.exports = { @@ -70,5 +70,5 @@ module.exports = { hoursToMilliseconds, daysToMilliseconds, timeInSecondsAfter, - timeBeforeHour, + timeBeforeHour }; diff --git a/test/fixtures/trackedProgress/index.js b/test/fixtures/trackedProgress/index.js index 742ba459f..9bc5c5a38 100644 --- a/test/fixtures/trackedProgress/index.js +++ b/test/fixtures/trackedProgress/index.js @@ -3,7 +3,7 @@ const predefinedTrackedProgressDataForUser = { monitored: true, frequency: 1, createdAt: "2023-05-20T03:49:20.298Z", - updatedAt: "2023-05-20T03:49:20.298Z", + updatedAt: "2023-05-20T03:49:20.298Z" }; const predefinedTrackedProgressDataForTask = { @@ -11,22 +11,22 @@ const predefinedTrackedProgressDataForTask = { monitored: true, frequency: 4, createdAt: "2023-05-20T03:49:20.298Z", - updatedAt: "2023-05-20T03:49:20.298Z", + updatedAt: "2023-05-20T03:49:20.298Z" }; const trackedProgressUserDataForPost = { type: "user", - monitored: true, + monitored: true }; const trackedProgressTaskDataForPost = { type: "task", monitored: true, - frequency: 2, + frequency: 2 }; const trackedProgressDataForPatch = { - monitored: false, + monitored: false }; /** @@ -46,5 +46,5 @@ module.exports = { trackedProgressUserDataForPost, trackedProgressTaskDataForPost, trackedProgressDataForPatch, - isISOString, + isISOString }; diff --git a/test/fixtures/user/inDiscord.js b/test/fixtures/user/inDiscord.js index ac16abf2d..ecc804e89 100644 --- a/test/fixtures/user/inDiscord.js +++ b/test/fixtures/user/inDiscord.js @@ -20,10 +20,10 @@ module.exports = () => { accent_color: null, global_name: "Shardul", avatar_decoration_data: null, - banner_color: null, + banner_color: null }, mute: false, - deaf: false, + deaf: false }, { avatar: null, @@ -45,10 +45,10 @@ module.exports = () => { accent_color: null, global_name: "fmk", avatar_decoration_data: null, - banner_color: null, + banner_color: null }, mute: false, - deaf: false, + deaf: false }, { avatar: null, @@ -70,10 +70,10 @@ module.exports = () => { accent_color: null, global_name: "Anirban", avatar_decoration_data: null, - banner_color: null, + banner_color: null }, mute: false, - deaf: false, + deaf: false }, { avatar: null, @@ -95,10 +95,10 @@ module.exports = () => { accent_color: null, global_name: "Anish", avatar_decoration_data: null, - banner_color: null, + banner_color: null }, mute: false, - deaf: false, - }, + deaf: false + } ]; }; diff --git a/test/fixtures/user/join.js b/test/fixtures/user/join.js index 173fa36c0..f3b2d67b4 100644 --- a/test/fixtures/user/join.js +++ b/test/fixtures/user/join.js @@ -20,12 +20,12 @@ module.exports = (userId = " ") => { "mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien faucibus et molestie ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor eu augue ut lectus arcu bibendum at", country: "India", intro: { - numberOfHours: 20, + numberOfHours: 20 }, - numberOfHours: 20, + numberOfHours: 20 }, { - data: "invalidData", + data: "invalidData" }, { college: "I work at Tata Consultancy Services", @@ -45,7 +45,7 @@ module.exports = (userId = " ") => { introduction: "mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien faucibus et molestie ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor eu augue ut lectus arcu bibendum at", country: "India", - numberOfHours: 20, + numberOfHours: 20 }, { userId, @@ -66,7 +66,7 @@ module.exports = (userId = " ") => { introduction: "mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien faucibus et molestie ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor eu augue ut lectus arcu bibendum at", country: "India", - numberOfHours: 20, - }, + numberOfHours: 20 + } ]; }; diff --git a/test/fixtures/user/photo-verification.js b/test/fixtures/user/photo-verification.js index 1950b750e..ed670b61e 100644 --- a/test/fixtures/user/photo-verification.js +++ b/test/fixtures/user/photo-verification.js @@ -6,17 +6,17 @@ const userPhotoVerificationData = { approved: true, date: { _seconds: 1686518413, - _nanoseconds: 453000000, - }, + _nanoseconds: 453000000 + } }, profile: { url: "https://res.cloudinary.com/avatars/1234/something.png", approved: false, date: { _seconds: 1686518413, - _nanoseconds: 453000000, - }, - }, + _nanoseconds: 453000000 + } + } }; const newUserPhotoVerificationData = { discordId: "1234567", @@ -26,17 +26,17 @@ const newUserPhotoVerificationData = { approved: false, date: { _seconds: 1686518413, - _nanoseconds: 453000000, - }, + _nanoseconds: 453000000 + } }, profile: { url: "https://cloudinary.example.com/demo.png", approved: false, date: { _seconds: 1686518413, - _nanoseconds: 453000000, - }, - }, + _nanoseconds: 453000000 + } + } }; module.exports = { userPhotoVerificationData, newUserPhotoVerificationData }; diff --git a/test/fixtures/user/user.js b/test/fixtures/user/user.js index 9903a64af..5cc302d94 100644 --- a/test/fixtures/user/user.js +++ b/test/fixtures/user/user.js @@ -27,19 +27,19 @@ module.exports = () => { joined_discord: "2023-01-13T18:21:09.278000+00:00", roles: { member: true, - in_discord: true, + in_discord: true }, tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, status: "active", profileURL: "https://abcde.com", picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" }, incompleteUserDetails: false, - nickname_synced: false, + nickname_synced: false }, { username: "nikhil", @@ -56,9 +56,9 @@ module.exports = () => { email: "abc1@gmail.com", picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" }, - nickname_synced: false, + nickname_synced: false }, { username: "pranavg", @@ -74,13 +74,13 @@ module.exports = () => { phone: "1234567891", email: "pgajjewar@gmail.com", roles: { - restricted: true, + restricted: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" }, - nickname_synced: false, + nickname_synced: false }, { username: "sagar", @@ -95,16 +95,16 @@ module.exports = () => { email: "abc@gmail.com", status: "active", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { restricted: false, - app_owner: true, + app_owner: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "ankush", @@ -121,17 +121,17 @@ module.exports = () => { joined_discord: "2023-01-13T18:21:09.278000+00:00", status: "idle", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { super_user: true, archived: false, - in_discord: true, + in_discord: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "ankita", @@ -146,17 +146,17 @@ module.exports = () => { phone: "1234567890", email: "abc@gmail.com", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, status: "active", roles: { app_owner: true, - archived: true, + archived: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "mehul", @@ -170,18 +170,18 @@ module.exports = () => { phone: "1234567891", email: "mehul@gmail.com", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, status: "active", roles: { member: true, archived: false, - in_discord: true, + in_discord: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "23ankur", @@ -193,7 +193,7 @@ module.exports = () => { github_id: "ankur1234", github_display_name: "ankur-xyz", phone: "1234567890", - email: "abc@gmail.com", + email: "abc@gmail.com" }, { username: "ritvik", @@ -202,7 +202,7 @@ module.exports = () => { yoe: 1, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" }, incompleteUserDetails: false, status: "active", @@ -216,10 +216,10 @@ module.exports = () => { archived: false, member: true, in_discord: true, - designer: true, + designer: true }, twitter_id: "RitvikJamwal4u", - linkedin_id: "ritvik-jamwal4u", + linkedin_id: "ritvik-jamwal4u" }, { username: "Tanishq", @@ -233,18 +233,18 @@ module.exports = () => { phone: "1234567890", email: "ts@gmail.com", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { member: true, archived: false, in_discord: true, - product_manager: true, + product_manager: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "darthvader", @@ -258,16 +258,16 @@ module.exports = () => { phone: "1234567890", email: "dv@gmail.com", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { member: true, - maven: true, + maven: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { id: 11, @@ -280,12 +280,12 @@ module.exports = () => { github_id: "testuser1", github_display_name: "Test User", roles: { - member: true, + member: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { id: 12, @@ -301,15 +301,15 @@ module.exports = () => { email: "tu@gmail.com", chaincode: "12345", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { - member: true, + member: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "ram", @@ -318,7 +318,7 @@ module.exports = () => { yoe: 1, picture: { publicId: "profile/abc/abc", - url: "https://res.cloudinary.com/realdevsquad/image/upload/123.jpg", + url: "https://res.cloudinary.com/realdevsquad/image/upload/123.jpg" }, incompleteUserDetails: false, status: "active", @@ -330,10 +330,10 @@ module.exports = () => { instagram_id: "ramsingh", roles: { archived: true, - member: false, + member: false }, twitter_id: "ramsingh123", - linkedin_id: "ramsingh123", + linkedin_id: "ramsingh123" }, { username: "testuser3", @@ -348,15 +348,15 @@ module.exports = () => { email: "abcd@gmail.com", chaincode: "12345", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { - member: true, + member: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } }, { username: "shubham-sigdar", @@ -366,11 +366,11 @@ module.exports = () => { github_display_name: githubUserInfo[1].name, roles: { member: true, - in_discord: true, + in_discord: true }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now(), + created_at: Date.now() }, { username: "satyam-bajpai", @@ -381,11 +381,11 @@ module.exports = () => { roles: { member: false, in_discord: true, - archived: false, + archived: false }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now(), + created_at: Date.now() }, { first_name: "Kotesh", @@ -395,11 +395,11 @@ module.exports = () => { roles: { member: false, in_discord: true, - archived: false, + archived: false }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now(), + created_at: Date.now() }, { first_name: "vinit", @@ -407,11 +407,11 @@ module.exports = () => { github_id: "vinit717", github_display_name: "vinit717", roles: { - in_discord: false, + in_discord: false }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now(), + created_at: Date.now() }, { username: "Vinayak", @@ -427,17 +427,17 @@ module.exports = () => { email: "abc@gmail.com", status: "active", tokens: { - githubAccessToken: "githubAccessToken", + githubAccessToken: "githubAccessToken" }, roles: { restricted: false, app_owner: true, - archived: true, + archived: true }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", - }, - }, + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + } + } ]; }; diff --git a/test/fixtures/userBadges/userBadges.js b/test/fixtures/userBadges/userBadges.js index cca78af1e..e9f2248ba 100644 --- a/test/fixtures/userBadges/userBadges.js +++ b/test/fixtures/userBadges/userBadges.js @@ -7,17 +7,17 @@ const userFound = { userExists: true, - userBadges: [{ title: "badgeTitle", description: "badgeDescription" }], + userBadges: [{ title: "badgeTitle", description: "badgeDescription" }] }; const userNotFound = { userExists: false, - userBadges: [], + userBadges: [] }; const badgesEmpty = { userExists: true, - userBadges: [], + userBadges: [] }; module.exports = { userFound, userNotFound, badgesEmpty }; diff --git a/test/fixtures/userDeviceInfo/userDeviceInfo.js b/test/fixtures/userDeviceInfo/userDeviceInfo.js index 35e078bf7..6a08d761c 100644 --- a/test/fixtures/userDeviceInfo/userDeviceInfo.js +++ b/test/fixtures/userDeviceInfo/userDeviceInfo.js @@ -9,8 +9,8 @@ const userDeviceInfoDataArray = [ { user_id: "TEST_USER_ID", device_info: "TEST_DEVICE_INFO", - device_id: "TEST_DEVICE_ID", - }, + device_id: "TEST_DEVICE_ID" + } ]; const userDeviceInfoIdKeys = ["user_id", "device_info", "device_id"]; diff --git a/test/fixtures/userStatus/userStatus.js b/test/fixtures/userStatus/userStatus.js index 733bb73a5..c5e6fbeb1 100644 --- a/test/fixtures/userStatus/userStatus.js +++ b/test/fixtures/userStatus/userStatus.js @@ -7,22 +7,22 @@ const userStatusDataForNewUser = { message: "Bad Health", state: "OOO", updatedAt: 1668215609000, - from: 1668215609000, + from: 1668215609000 }, monthlyHours: { updatedAt: 1668215609000, - committed: 40, - }, + committed: 40 + } }; const userStatusDataAfterSignup = { currentStatus: { state: "ONBOARDING" }, - monthlyHours: { committed: 0 }, + monthlyHours: { committed: 0 } }; const userStatusDataAfterFillingJoinSection = { currentStatus: { state: "ONBOARDING" }, - monthlyHours: { committed: 40 }, + monthlyHours: { committed: 40 } }; const oooStatusDataForShortDuration = { @@ -31,12 +31,12 @@ const oooStatusDataForShortDuration = { state: "OOO", updatedAt: 1673893800000, from: 1673893800000, - until: 1674066600000, + until: 1674066600000 }, monthlyHours: { updatedAt: 1668215609000, - committed: 40, - }, + committed: 40 + } }; const userStatusDataForOooState = { currentStatus: { @@ -44,35 +44,35 @@ const userStatusDataForOooState = { message: "Bad Health", updatedAt: 1668211200000, from: 1668211200000, - until: 1668709800000, + until: 1668709800000 }, monthlyHours: { updatedAt: 1668215609000, - committed: 40, - }, + committed: 40 + } }; const idleStatus = { currentStatus: { message: "", state: userState.IDLE, - updatedAt: 1673893800000, + updatedAt: 1673893800000 }, monthlyHours: { updatedAt: 1668215609000, - committed: 40, - }, + committed: 40 + } }; const activeStatus = { currentStatus: { message: "", state: userState.ACTIVE, - updatedAt: 1673893800000, + updatedAt: 1673893800000 }, monthlyHours: { updatedAt: 1668215609000, - committed: 40, - }, + committed: 40 + } }; const generateUserStatusData = (state, updatedAt, from, until = "", message = "") => { @@ -82,8 +82,8 @@ const generateUserStatusData = (state, updatedAt, from, until = "", message = "" message, from, until, - updatedAt, - }, + updatedAt + } }; }; @@ -102,8 +102,8 @@ const generateStatusDataForState = (userId, state) => { from: nowTimeStamp, until, updatedAt: nowTimeStamp, - state, - }, + state + } }; }; @@ -122,8 +122,8 @@ const generateStatusDataForCancelOOO = (userId, state) => { from: nowTimeStamp, until, updatedAt: nowTimeStamp, - state, - }, + state + } }; }; @@ -134,77 +134,77 @@ const getStatusData = () => { futureStatus: { from: today + 1000 * 36 * 60 * 60, state: "IDLE", - updatedAt: today - ONE_DAY_IN_MS, + updatedAt: today - ONE_DAY_IN_MS }, currentStatus: { from: today - ONE_DAY_IN_MS, until: today + 1000 * 36 * 60 * 60, state: "OOO", - updatedAt: today - ONE_DAY_IN_MS, - }, + updatedAt: today - ONE_DAY_IN_MS + } }, { currentStatus: { from: today - ONE_DAY_IN_MS * 2, state: "ACTIVE", - updatedAt: today - ONE_DAY_IN_MS * 2, + updatedAt: today - ONE_DAY_IN_MS * 2 }, futureStatus: { from: today + 1000 * 100 * 60 * 60, until: today + ONE_DAY_IN_MS * 5, state: "OOO", - updatedAt: today, - }, + updatedAt: today + } }, { currentStatus: { from: today - 1000 * 77 * 60 * 60, state: "ACTIVE", - updatedAt: today - 1000 * 77 * 60 * 60, + updatedAt: today - 1000 * 77 * 60 * 60 }, futureStatus: { from: today + 1000 * 36 * 60 * 60, until: today + ONE_DAY_IN_MS * 4, state: "OOO", - updatedAt: today, - }, + updatedAt: today + } }, { currentStatus: { from: today - 1000 * 77 * 60 * 60, state: "IDLE", - updatedAt: today - 1000 * 77 * 60 * 60, + updatedAt: today - 1000 * 77 * 60 * 60 }, futureStatus: { from: today + ONE_DAY_IN_MS * 5, until: today + ONE_DAY_IN_MS * 8, state: "OOO", - updatedAt: today - 1000 * 77 * 60 * 60, - }, - }, + updatedAt: today - 1000 * 77 * 60 * 60 + } + } ]; }; const inputFixtureForFnConvertTimestampsToUTC = { currentStatus: { from: 1696439365987, // Wed Oct 04 2023 17:09:25 UTC - until: 1697124600000, // Thu Oct 12, 2023, 15:30:00 + until: 1697124600000 // Thu Oct 12, 2023, 15:30:00 }, futureStatus: { from: 1696439365987, // Wed Oct 04 2023 17:09:25 UTC - until: "", // An empty string - }, + until: "" // An empty string + } }; const OutputFixtureForFnConvertTimestampsToUTC = { currentStatus: { from: 1696377600000, // October 4, 2023, 00:00:00 UTC - until: 1697155199999, // Thu Oct 12, 2023, 23:59:59 UTC + until: 1697155199999 // Thu Oct 12, 2023, 23:59:59 UTC }, futureStatus: { from: 1696377600000, // October 4, 2023, 00:00:00 UTC - until: "", // No conversion for an empty string - }, + until: "" // No conversion for an empty string + } }; const generateDefaultFutureStatus = (state, from, until) => { @@ -213,7 +213,7 @@ const generateDefaultFutureStatus = (state, from, until) => { from, until, message: "", - updatedAt: new Date().getTime(), + updatedAt: new Date().getTime() }; return futureStatusData; }; @@ -232,5 +232,5 @@ module.exports = { getStatusData, inputFixtureForFnConvertTimestampsToUTC, OutputFixtureForFnConvertTimestampsToUTC, - generateDefaultFutureStatus, + generateDefaultFutureStatus }; diff --git a/test/integration/arts.test.js b/test/integration/arts.test.js index e8bb4f780..443b6f84e 100644 --- a/test/integration/arts.test.js +++ b/test/integration/arts.test.js @@ -63,7 +63,7 @@ describe("Arts", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); @@ -127,7 +127,7 @@ describe("Arts", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); diff --git a/test/integration/auction.test.js b/test/integration/auction.test.js index 1cb33d42f..0398e956f 100644 --- a/test/integration/auction.test.js +++ b/test/integration/auction.test.js @@ -158,7 +158,7 @@ describe("Auctions", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); @@ -239,7 +239,7 @@ describe("Auctions", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); diff --git a/test/integration/auth.test.js b/test/integration/auth.test.js index cf9c2d872..16c811786 100644 --- a/test/integration/auth.test.js +++ b/test/integration/auth.test.js @@ -205,7 +205,7 @@ describe("auth", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "User cannot be authenticated", + message: "User cannot be authenticated" }); return done(); diff --git a/test/integration/badges.test.js b/test/integration/badges.test.js index 0c0debbf7..d840b5de0 100644 --- a/test/integration/badges.test.js +++ b/test/integration/badges.test.js @@ -101,7 +101,7 @@ describe("Badges", function () { .set("cookie", `${cookieName}=${jwt}`) .attach("file", Buffer.from("something", "utf-8"), "simple.png") .field({ - name: "badgexRandom", + name: "badgexRandom" }) .end(function (error, response) { if (error) { @@ -109,7 +109,7 @@ describe("Badges", function () { } expect(response).to.have.status(400); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required`, + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required` ); expect(response.body.error).to.equal("Bad Request"); @@ -128,7 +128,7 @@ describe("Badges", function () { .attach("file", Buffer.from("something", "utf-8"), "simple.png") .field({ name: "badgeXrandom", - createdBy: "shmbajaj", + createdBy: "shmbajaj" }) .end(function (error, response) { if (error) { @@ -156,7 +156,7 @@ describe("Badges", function () { expect(response).to.have.status(400); expect(response.body.error).to.equal("Bad Request"); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required`, + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required` ); return done(); }); @@ -169,7 +169,7 @@ describe("Badges", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ userId, - badgeIds: ["1", "2", "3"], + badgeIds: ["1", "2", "3"] }) .end(function (error, response) { if (error) { @@ -190,7 +190,7 @@ describe("Badges", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ userId: "a-random-user-id", - badgeIds: ["1", "2", "3"], + badgeIds: ["1", "2", "3"] }) .end(function (error, response) { if (error) { diff --git a/test/integration/cloudflareCache.test.js b/test/integration/cloudflareCache.test.js index 4a29d9ac8..e03af4481 100644 --- a/test/integration/cloudflareCache.test.js +++ b/test/integration/cloudflareCache.test.js @@ -87,7 +87,7 @@ describe("Purged Cache Metadata", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); }); @@ -189,7 +189,7 @@ describe("Purged Cache Metadata", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); }); diff --git a/test/integration/contributions.test.js b/test/integration/contributions.test.js index 8522e7502..f785f92f4 100644 --- a/test/integration/contributions.test.js +++ b/test/integration/contributions.test.js @@ -23,7 +23,7 @@ describe("Contributions", function () { yoe: 0, img: "./img.png", github_id: "prakashchoudhary07", - username: "prakash", + username: "prakash" }; // Adding user await userModel.addOrUpdate(user); @@ -50,7 +50,7 @@ describe("Contributions", function () { participants: ["prakash"], completionAward: { gold: 3, bronze: 300 }, lossRate: { gold: 1 }, - isNoteworthy: true, + isNoteworthy: true }; await testModel.updateTask(task); // Creating second task @@ -90,7 +90,7 @@ describe("Contributions", function () { "startedOn", "status", "title", - "id", + "id" ); expect(noteworthyObj.prList[0]).to.have.all.keys( "title", @@ -98,7 +98,7 @@ describe("Contributions", function () { "url", "createdAt", "updatedAt", - "raisedBy", + "raisedBy" ); const [noteworthyObj2] = res.body.all; expect(noteworthyObj2).to.contain.keys("task", "prList"); diff --git a/test/integration/discord.test.js b/test/integration/discord.test.js index 188fbf1b5..5be3482f9 100644 --- a/test/integration/discord.test.js +++ b/test/integration/discord.test.js @@ -76,7 +76,7 @@ describe("test discord actions", function () { const addRolesPromises = [ discordRoleModel.add({ roleid: groupData[0].roleid, rolename: groupData[0].rolename, createdBy: allIds[1] }), - discordRoleModel.add({ roleid: groupData[1].roleid, rolename: groupData[1].rolename, createdBy: allIds[0] }), + discordRoleModel.add({ roleid: groupData[1].roleid, rolename: groupData[1].rolename, createdBy: allIds[0] }) ]; await Promise.all(addRolesPromises); @@ -84,7 +84,7 @@ describe("test discord actions", function () { addGroupRoleToMember({ roleid: groupData[0].roleid, userid: allIds[0] }), addGroupRoleToMember({ roleid: groupData[0].roleid, userid: allIds[1] }), addGroupRoleToMember({ roleid: groupData[0].roleid, userid: allIds[1] }), - addGroupRoleToMember({ roleid: groupData[1].roleid, userid: allIds[0] }), + addGroupRoleToMember({ roleid: groupData[1].roleid, userid: allIds[0] }) ]; await Promise.all(addGroupRolesPromises); }); diff --git a/test/integration/discordactions.test.js b/test/integration/discordactions.test.js index b48ab1ced..84958747b 100644 --- a/test/integration/discordactions.test.js +++ b/test/integration/discordactions.test.js @@ -32,7 +32,7 @@ const { groupIdle7d, roleDataFromDiscord, memberGroupData, - groupOnboarding31dPlus, + groupOnboarding31dPlus } = require("../fixtures/discordactions/discordactions"); const discordServices = require("../../services/discordService"); const { addGroupRoleToMember, addInviteToInviteModel } = require("../../models/discordactions"); @@ -90,8 +90,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + json: () => Promise.resolve({ user: { avatar: 12345 } }) + }) ); chai .request(app) @@ -112,8 +112,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + json: () => Promise.resolve({ user: { avatar: 12345 } }) + }) ); chai .request(app) @@ -142,21 +142,21 @@ describe("Discord actions", function () { newGroupData = groupData.map((group, index) => { return { ...group, - createdBy: allIds[Math.min(index, allIds.length - 1)], + createdBy: allIds[Math.min(index, allIds.length - 1)] }; }); const addRolesPromises = [ discordRoleModel.add(newGroupData[0]), discordRoleModel.add(newGroupData[1]), - discordRoleModel.add(newGroupData[2]), + discordRoleModel.add(newGroupData[2]) ]; await Promise.all(addRolesPromises); const addGroupRolesPromises = [ addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[0].discordId }), addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[1].discordId }), - addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }), + addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }) ]; await Promise.all(addGroupRolesPromises); }); @@ -218,7 +218,7 @@ describe("Discord actions", function () { discordRoleModel.add(groupData[0]), discordRoleModel.add(groupData[1]), discordRoleModel.add(groupData[3]), - discordRoleModel.add(groupData[4]), + discordRoleModel.add(groupData[4]) ]; roleid = groupData[0].roleid; await Promise.all(discordRoleModelPromise); @@ -242,13 +242,13 @@ describe("Discord actions", function () { date: new Date().toISOString(), createdBy: "CzI06Da1zPwciLcyIwU4", roleid: "1214641424516124823", - rolename: "admin", - }), - }, - ], - }, + rolename: "admin" + }) + } + ] + } }, - { user: userData[0] }, + { user: userData[0] } ); const res = await chai @@ -267,8 +267,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({}), - }), + json: () => Promise.resolve({}) + }) ); const roleId = groupData[4].roleid; const res = await chai @@ -286,8 +286,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({}), - }), + json: () => Promise.resolve({}) + }) ); const roleId = groupData[4].roleid; @@ -302,7 +302,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role added successfully!"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}`, + `Action initiator's username=>ankur and id=${userId}` ); }); @@ -354,8 +354,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), - }), + json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }) + }) ); chai .request(app) @@ -379,8 +379,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), - }), + json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }) + }) ); const res = await chai .request(app) @@ -392,7 +392,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role deleted successfully"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}`, + `Action initiator's username=>ankur and id=${userId}` ); }); @@ -462,8 +462,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordUsers), - }), + json: () => Promise.resolve(discordUsers) + }) ); chai .request(app) @@ -491,25 +491,25 @@ describe("Discord actions", function () { delete userData2.discordId; const [{ id }, { id: userId2 }] = await Promise.all([ userModel.add({ ...userData[0] }), - userModel.add(userData2), + userModel.add(userData2) ]); const statusData = { ...userStatusDataForOooState, futureStatus: { state: "ACTIVE", updatedAt: 1668211200000, - from: 1668709800000, + from: 1668709800000 }, - userId: id, + userId: id }; const statusData2 = { ...userStatusDataForOooState, futureStatus: { state: "ACTIVE", updatedAt: 1668211200000, - from: 1668709800000, + from: 1668709800000 }, - userId: userId2, + userId: userId2 }; await Promise.all([userStatusModel.add(statusData), userStatusModel.add(statusData2)]); @@ -525,8 +525,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(response), - }), + json: () => Promise.resolve(response) + }) ); chai @@ -534,7 +534,7 @@ describe("Discord actions", function () { .post("/discord-actions/nickname/status") .set("Authorization", `Bearer ${jwtToken}`) .send({ - lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString(), + lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString() }) .end((err, res) => { if (err) { @@ -547,8 +547,8 @@ describe("Discord actions", function () { data: { totalUsersStatus: 2, successfulNicknameUpdates: 1, - unsuccessfulNicknameUpdates: 1, - }, + unsuccessfulNicknameUpdates: 1 + } }); return done(); }); @@ -563,7 +563,7 @@ describe("Discord actions", function () { .post("/discord-actions/nickname/status") .set("Authorization", `Bearer ${jwtToken}`) .send({ - lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString(), + lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString() }) .end((err, res) => { if (err) { @@ -635,8 +635,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); }); @@ -670,25 +670,25 @@ describe("Discord actions", function () { ...userData[0], discordId: "123456789098765432", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true }, + roles: { archived: false, in_discord: true } }; userData[1] = { ...userData[1], discordId: "12345678909867666", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true }, + roles: { archived: false, in_discord: true } }; userData[2] = { ...userData[2], discordId: "123456", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true }, + roles: { archived: false, in_discord: true } }; userData[3] = { ...userData[3], discordId: "9653710123456", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true }, + roles: { archived: false, in_discord: true } }; const allUsers = [userData[0], userData[1], userData[2], userData[3]]; @@ -707,8 +707,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getOnboarding31DPlusMembers), - }), + json: () => Promise.resolve(getOnboarding31DPlusMembers) + }) ); }); @@ -748,7 +748,7 @@ describe("Discord actions", function () { expect(res.body).to.be.a("object"); expect(res.body).to.deep.equal({ message: "Invite returned successfully", - inviteLink: "discord.gg/apQYT7HB", + inviteLink: "discord.gg/apQYT7HB" }); }); @@ -762,7 +762,7 @@ describe("Discord actions", function () { expect(res.body).to.be.a("object"); expect(res.body).to.deep.equal({ message: "Invite returned successfully", - inviteLink: "discord.gg/apQYT7HA", + inviteLink: "discord.gg/apQYT7HA" }); }); @@ -813,7 +813,7 @@ describe("Discord actions", function () { it("should return 403 if the user doesn't have role designer, product_manager, or mavens", async function () { developerUserWithoutApprovedProfileStatusId = await addUser(developerUserWithoutApprovedProfileStatus); developerUserWithoutApprovedProfileStatusToken = authService.generateAuthToken({ - userId: developerUserWithoutApprovedProfileStatusId, + userId: developerUserWithoutApprovedProfileStatusId }); const res = await chai .request(app) @@ -828,8 +828,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "xyz" } }), - }), + json: () => Promise.resolve({ data: { code: "xyz" } }) + }) ); productManagerUserId = await addUser(productManagerUser); @@ -848,8 +848,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "zlmfasd" } }), - }), + json: () => Promise.resolve({ data: { code: "zlmfasd" } }) + }) ); designerUserId = await addUser(designerUser); @@ -868,8 +868,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), - }), + json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }) + }) ); mavenUserId = await addUser(mavenUser); @@ -888,8 +888,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), - }), + json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }) + }) ); const res = await chai diff --git a/test/integration/events.test.js b/test/integration/events.test.js index 57952a0b6..43471a8fb 100644 --- a/test/integration/events.test.js +++ b/test/integration/events.test.js @@ -55,7 +55,7 @@ describe("events", function () { name: "TestingEvent", description: "Hello world! How are you", region: "in", - userId: userId, + userId: userId }; service = sinon.stub(EventAPIService.prototype, "post").returns(event1Data); @@ -91,7 +91,7 @@ describe("events", function () { name: "Test Event", description: "This is a test event", region: "in", - userId: userId, + userId: userId }) .end((error, response) => { if (error) { @@ -111,7 +111,7 @@ describe("events", function () { name: "Test Room", description: "This is a test room", region: "in", - userId: userId, + userId: userId }; chai .request(app) @@ -213,13 +213,13 @@ describe("events", function () { it("should return a token when the request is successful", function (done) { const eventsData = { - data: [event1Data], + data: [event1Data] }; service = sinon.stub(EventAPIService.prototype, "get").returns(eventsData); const payload = { roomId: event1Data.id, userId: "5678", - role: "guest", + role: "guest" }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -262,14 +262,14 @@ describe("events", function () { it("should return a token when the request is successful for host", function (done) { const eventsData = { - data: [event1Data], + data: [event1Data] }; service = sinon.stub(EventAPIService.prototype, "get").returns(eventsData); const payload = { roomId: event1Data.id, userId: "5678", - role: "host", + role: "host" }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -293,13 +293,13 @@ describe("events", function () { it("should return a token when the request is successful for moderator", function (done) { const eventsData = { - data: [event1Data], + data: [event1Data] }; service = sinon.stub(EventAPIService.prototype, "get").returns(eventsData); const payload = { roomId: event1Data.id, userId: "5678", - role: "moderator", + role: "moderator" }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -325,7 +325,7 @@ describe("events", function () { const payload = { roomId: event1Data.id, userId: "5678", - role: "host", + role: "host" }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -412,7 +412,7 @@ describe("events", function () { it("returns the enabled event data when the request is successful", function (done) { const payload = { - enabled: true, + enabled: true }; service = sinon.stub(EventAPIService.prototype, "post").returns(payload); sinon.stub(eventQuery, "updateEvent").resolves({ ...event1Data, enabled: true }); @@ -437,7 +437,7 @@ describe("events", function () { it("returns the disabled room data when the request is successful", function (done) { const payload = { - enabled: false, + enabled: false }; service = sinon.stub(EventAPIService.prototype, "post").returns(payload); @@ -502,7 +502,7 @@ describe("events", function () { it("returns a success message when the request is successful", function (done) { const payload = { reason: "Event ended by user", - lock: true, + lock: true }; service = sinon.stub(EventAPIService.prototype, "post").returns({ message: "session is ending" }); @@ -531,7 +531,7 @@ describe("events", function () { const id = event1Data.id; const payload = { eventCode: "test-code", - role: "moderator", + role: "moderator" }; chai .request(app) @@ -569,14 +569,14 @@ describe("events", function () { it("creates an event code when the request is successful", function (done) { const payload = { eventCode: "test-code", - role: EVENT_ROLES.MAVEN, + role: EVENT_ROLES.MAVEN }; service = sinon .stub(eventQuery, "createEventCode") .returns([ ...eventCodeDataFirst, - { code: "test-code", role: "maven", id: "test-id", event_id: event1Data.room_id }, + { code: "test-code", role: "maven", id: "test-id", event_id: event1Data.room_id } ]); chai @@ -602,7 +602,7 @@ describe("events", function () { const id = event1Data.id; const payload = { eventCode: "test-code", - role: "moderator", + role: "moderator" }; chai .request(app) @@ -626,7 +626,7 @@ describe("events", function () { it("returns an error message when code creation fails", function (done) { const payload = { eventCode: "test-code", - role: EVENT_ROLES.MAVEN, + role: EVENT_ROLES.MAVEN }; const errorMessage = "Error creating event code."; @@ -654,7 +654,7 @@ describe("events", function () { const id = event1Data.id; const payload = { eventCode: "test-code", - role: "moderator", + role: "moderator" }; chai .request(app) @@ -750,7 +750,7 @@ describe("events", function () { it("returns a success message when the request is successful for super user", function (done) { const payload = { peerId: "peer123", - reason: "Kicked out for a reason", + reason: "Kicked out for a reason" }; service = sinon.stub(EventAPIService.prototype, "post").returns({ message: "peer remove request submitted" }); @@ -780,7 +780,7 @@ describe("events", function () { it("returns a success message when the request is successful for member user", function (done) { const payload = { peerId: "peer123", - reason: "Kicked out for a reason", + reason: "Kicked out for a reason" }; service = sinon.stub(EventAPIService.prototype, "post").returns({ message: "peer remove request submitted" }); diff --git a/test/integration/extensionRequests.test.js b/test/integration/extensionRequests.test.js index b4746300d..b675c5c2f 100644 --- a/test/integration/extensionRequests.test.js +++ b/test/integration/extensionRequests.test.js @@ -57,7 +57,7 @@ describe("Extension Requests", function () { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task", @@ -70,7 +70,7 @@ describe("Extension Requests", function () { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task", @@ -87,7 +87,7 @@ describe("Extension Requests", function () { isNoteworthy: false, assignee: user.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task", @@ -100,7 +100,7 @@ describe("Extension Requests", function () { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, + lossRate: { [DINERO]: 1 } }, { title: "Test task for dev flag", @@ -113,8 +113,8 @@ describe("Extension Requests", function () { assignee: user.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 }, - }, + lossRate: { [DINERO]: 1 } + } ]; // Add the active task @@ -135,7 +135,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }; const extensionRequest1 = { taskId: taskId2, @@ -144,7 +144,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "APPROVED", + status: "APPROVED" }; const extensionRequest2 = { @@ -154,7 +154,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }; const extensionRequest3 = { @@ -164,7 +164,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }; const extensionRequest4 = { @@ -174,7 +174,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }; extensionRequestId1 = (await extensionRequests.createExtensionRequest(extensionRequest)).id; extensionRequestId2 = (await extensionRequests.createExtensionRequest(extensionRequest1)).id; @@ -249,7 +249,7 @@ describe("Extension Requests", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); @@ -270,7 +270,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -298,7 +298,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -326,7 +326,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -350,7 +350,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -360,7 +360,7 @@ describe("Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task.", + "Only assigned user and super user can create an extension request for this task." ); return done(); }); @@ -378,7 +378,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -404,7 +404,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -430,7 +430,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 0, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -455,7 +455,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -480,7 +480,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -643,7 +643,7 @@ describe("Extension Requests", function () { extensionRequestsList.forEach((extensionReq) => { expect(extensionReq.status).to.be.oneOf([ EXTENSION_REQUEST_STATUS.APPROVED, - EXTENSION_REQUEST_STATUS.PENDING, + EXTENSION_REQUEST_STATUS.PENDING ]); }); return done(); @@ -667,7 +667,7 @@ describe("Extension Requests", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action.", + message: "You are not authorized for this action." }); return done(); @@ -680,7 +680,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "APPROVED", + status: "APPROVED" }) .end((err, res) => { if (err) { @@ -720,7 +720,7 @@ describe("Extension Requests", function () { .set("cookie", `${cookieName}=${superUserJwt}`) .send({ title: "Hello World", - status: "APPROVED", + status: "APPROVED" }) .end((err, res) => { if (err) { @@ -740,7 +740,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - title: "Hello World", + title: "Hello World" }) .end((err, res) => { if (err) { @@ -771,7 +771,7 @@ describe("Extension Requests", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action.", + message: "You are not authorized for this action." }); return done(); @@ -784,7 +784,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - title: "new-title", + title: "new-title" }) .end((err, res) => { if (err) { @@ -802,7 +802,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - assignee: user.id, + assignee: user.id }) .end((err, res) => { if (err) { @@ -822,7 +822,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "APPROVED", + status: "APPROVED" }) .end((err, res) => { if (err) { @@ -842,7 +842,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId3}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "APPROVED", + status: "APPROVED" }) .end((err, res) => { if (err) { @@ -879,7 +879,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId4}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "DENIED", + status: "DENIED" }) .end((err, res) => { if (err) { @@ -920,11 +920,11 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId5}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - title: newTitle, + title: newTitle }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle, + (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newTitle).to.equal(newTitle); @@ -940,11 +940,11 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId5}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - newEndsOn: suETA, + newEndsOn: suETA }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA, + (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newEndsOn).to.equal(suETA); @@ -960,12 +960,11 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId5}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - reason: newReason, + reason: newReason }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => - log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason, + (log) => log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newReason).to.equal(newReason); diff --git a/test/integration/external-accounts.test.js b/test/integration/external-accounts.test.js index 6cfefd89b..87250e448 100644 --- a/test/integration/external-accounts.test.js +++ b/test/integration/external-accounts.test.js @@ -128,7 +128,7 @@ describe("External Accounts", function () { expect(res.body).to.be.eql({ statusCode: 409, error: "Conflict", - message: "Token already exists", + message: "Token already exists" }); return done(); @@ -201,7 +201,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Token Expired. Please generate it again", + message: "Token Expired. Please generate it again" }); return done(); @@ -221,7 +221,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); @@ -251,8 +251,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); chai .request(app) @@ -268,7 +268,7 @@ describe("External Accounts", function () { discordUsers: 3, userUpdatedWithInDiscordFalse: 0, usersMarkedUnArchived: 1, - message: "Data Sync Complete", + message: "Data Sync Complete" }); return done(); }); @@ -285,7 +285,7 @@ describe("External Accounts", function () { return done(err); } expect(res.body).to.deep.equal({ - message: INTERNAL_SERVER_ERROR, + message: INTERNAL_SERVER_ERROR }); return done(); }); @@ -313,23 +313,23 @@ describe("External Accounts", function () { const userId = usersFromRds[4].id; const task1 = { assignee: userId, - status: "ACTIVE", + status: "ACTIVE" }; const task2 = { assignee: userId, - status: "COMPLETED", + status: "COMPLETED" }; const task3 = { assignee: userId, - status: "IN_PROGRESS", + status: "IN_PROGRESS" }; await Promise.all([tasksModel.add(task1), tasksModel.add(task2), tasksModel.add(task3)]); fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); const res = await chai @@ -345,7 +345,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 0, totalUsersProcessed: 2, rdsDiscordServerUsers: 3, - backlogTasksCount: 2, + backlogTasksCount: 2 }); }); @@ -355,8 +355,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); const res = await chai .request(app) @@ -371,7 +371,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 0, totalUsersProcessed: 2, rdsDiscordServerUsers: 3, - backlogTasksCount: 0, + backlogTasksCount: 0 }); }); @@ -381,8 +381,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); const res = await chai .request(app) @@ -397,7 +397,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 1, totalUsersProcessed: 2, rdsDiscordServerUsers: 3, - backlogTasksCount: 0, + backlogTasksCount: 0 }); }); @@ -407,8 +407,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); const res = await chai .request(app) @@ -423,7 +423,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 0, totalUsersProcessed: 1, rdsDiscordServerUsers: 3, - backlogTasksCount: 0, + backlogTasksCount: 0 }); }); @@ -439,7 +439,7 @@ describe("External Accounts", function () { return done(err); } expect(res.body).to.deep.equal({ - message: INTERNAL_SERVER_ERROR, + message: INTERNAL_SERVER_ERROR }); return done(); }); @@ -498,7 +498,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Token Expired. Please generate it again", + message: "Token Expired. Please generate it again" }); return done(); @@ -518,7 +518,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); diff --git a/test/integration/fcmToken.test.js b/test/integration/fcmToken.test.js index e7b180425..a5c894ec2 100644 --- a/test/integration/fcmToken.test.js +++ b/test/integration/fcmToken.test.js @@ -31,7 +31,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData, + ...fcmTokenData }); expect(response).to.have.status(200); @@ -45,7 +45,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData, + ...fcmTokenData }); const response = await chai @@ -53,7 +53,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData, + ...fcmTokenData }); expect(response).to.have.status(409); @@ -67,7 +67,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData, + ...fcmTokenData }); expect(response).to.have.status(400); expect(response.body.message).equals('"fcmToken" is required'); @@ -80,7 +80,7 @@ describe("Fcm Token Test", function () { .request(app) .post("/v1/fcm-tokens") .send({ - ...fcmTokenData, + ...fcmTokenData }); expect(response).to.have.status(401); @@ -94,7 +94,7 @@ describe("Fcm Token Test", function () { .request(app) .post("/v1/fcm-tokens") .send({ - ...fcmTokenData, + ...fcmTokenData }); expect(response).to.have.status(401); expect(response.body.message).equals("Unauthenticated User"); diff --git a/test/integration/goals.test.js b/test/integration/goals.test.js index 9f200844e..7933fc6c1 100644 --- a/test/integration/goals.test.js +++ b/test/integration/goals.test.js @@ -42,16 +42,16 @@ describe("Goals Site", function () { rds_id: userId, token: { exp: 1694625316, - access: "access-token-goal-site-backend", + access: "access-token-goal-site-backend" }, created_at: "2023-09-12T17:07:28.242030Z", modified_at: "2023-09-12T17:15:16.383069Z", roles: { - restricted: false, + restricted: false }, - id: goalsBackendUserId, - }, - }, + id: goalsBackendUserId + } + } ]; } return [400, { data: "something went wrong" }]; diff --git a/test/integration/health.test.js b/test/integration/health.test.js index 94b3682af..37327393c 100644 --- a/test/integration/health.test.js +++ b/test/integration/health.test.js @@ -40,7 +40,7 @@ describe("health", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); diff --git a/test/integration/logs.test.js b/test/integration/logs.test.js index d47dec912..e4a475f2c 100644 --- a/test/integration/logs.test.js +++ b/test/integration/logs.test.js @@ -34,9 +34,9 @@ describe("/logs", function () { requestId: requestResult.id, action: LOG_ACTION.CREATE, createdBy: userId, - createdAt: Date.now(), + createdAt: Date.now() }, - body: requestResult, + body: requestResult }; await addLog(requestLog.type, requestLog.meta, requestLog.body); await addLogs(); @@ -147,7 +147,7 @@ describe("/logs", function () { taskId: "mZB0akqPUa1GQQdrgsx7", extensionRequestId: "y79PXir0s82qNAzeIn8S", status: "PENDING", - type: "extensionRequests", + type: "extensionRequests" }); expect(res.body.data[0]).to.have.property("timestamp"); expect(res.body.data[0]).to.not.have.property("body"); diff --git a/test/integration/monitor.js b/test/integration/monitor.js index a4a9bef99..ac881c71e 100644 --- a/test/integration/monitor.js +++ b/test/integration/monitor.js @@ -14,7 +14,7 @@ const { isISOString, trackedProgressUserDataForPost, trackedProgressTaskDataForPost, - trackedProgressDataForPatch, + trackedProgressDataForPatch } = require("../fixtures/trackedProgress"); const userData = require("../fixtures/user/user")(); @@ -59,7 +59,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressUserDataForPost, - userId: userId1, + userId: userId1 }); expect(response).to.have.status(201); expect(response.body).to.be.an("object"); @@ -74,7 +74,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); const { id, type, userId, monitored, frequency, createdAt, updatedAt } = response.body.data; expect(id).to.be.a("string"); @@ -93,7 +93,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressUserDataForPost, - userId: userId0, + userId: userId0 }); expect(response).to.have.status(409); expect(response.body).to.be.an("object"); @@ -108,7 +108,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressTaskDataForPost, - taskId: taskId1, + taskId: taskId1 }); expect(response).to.have.status(201); expect(response.body).to.be.an("object"); @@ -123,7 +123,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); const { id, type, taskId, monitored, frequency, createdAt, updatedAt } = response.body.data; expect(id).to.be.a("string"); @@ -142,7 +142,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressTaskDataForPost, - taskId: taskId0, + taskId: taskId0 }); expect(response).to.have.status(409); expect(response.body).to.be.an("object"); @@ -158,7 +158,7 @@ describe("Test the tracked Progress API", function () { .send({ ...trackedProgressTaskDataForPost, type: "event", // passing incorrect type - taskId: taskId0, + taskId: taskId0 }); expect(response).to.have.status(400); expect(response.body).to.be.an("object"); @@ -173,7 +173,7 @@ describe("Test the tracked Progress API", function () { .post("/monitor") .send({ ...trackedProgressUserDataForPost, - userId: userId0, + userId: userId0 }); expect(response).to.have.status(401); expect(response.body).to.be.an("object"); @@ -189,7 +189,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${userIdToken0}`) .send({ ...trackedProgressUserDataForPost, - userId: userId0, + userId: userId0 }); expect(response).to.have.status(401); expect(response.body).to.be.an("object"); @@ -206,7 +206,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressUserDataForPost, - userId: "invalid-user", + userId: "invalid-user" }); expect(response).to.have.status(404); expect(response.body).to.be.an("object"); @@ -235,7 +235,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); const { id, type, userId, monitored, frequency, createdAt, updatedAt } = response.body.data; expect(id).to.be.a("string"); @@ -277,7 +277,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); const { id, type, taskId, monitored, frequency, createdAt, updatedAt } = response.body.data; @@ -368,7 +368,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); }); @@ -385,7 +385,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); }); @@ -434,7 +434,7 @@ describe("Test the tracked Progress API", function () { "userId", "frequency", "updatedAt", - "monitored", + "monitored" ]); const { id, createdAt, type, userId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); @@ -464,7 +464,7 @@ describe("Test the tracked Progress API", function () { "userId", "frequency", "updatedAt", - "monitored", + "monitored" ]); const { id, createdAt, type, userId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); @@ -501,7 +501,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); const { id, createdAt, type, taskId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); @@ -530,7 +530,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt", + "updatedAt" ]); const { id, createdAt, type, taskId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); diff --git a/test/integration/multilpleExtensionRequest.test.js b/test/integration/multilpleExtensionRequest.test.js index 8d2c189b5..f126f9892 100644 --- a/test/integration/multilpleExtensionRequest.test.js +++ b/test/integration/multilpleExtensionRequest.test.js @@ -70,7 +70,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -98,7 +98,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -122,7 +122,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -132,7 +132,7 @@ describe("Multiple Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task.", + "Only assigned user and super user can create an extension request for this task." ); return done(); }); @@ -150,7 +150,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -176,7 +176,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }) .end((err, res) => { if (err) { @@ -200,7 +200,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }; const res = await chai @@ -224,7 +224,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING", + status: "PENDING" }); const requestData = { @@ -234,7 +234,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1235, newEndsOn: 1236, reason: "family event", - status: "PENDING", + status: "PENDING" }; const res = await chai @@ -257,8 +257,8 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1235, newEndsOn: 1236, reason: "family event", - status: "APPROVED", - }, + status: "APPROVED" + } ]); const requestData = { @@ -269,7 +269,7 @@ describe("Multiple Extension Requests", function () { // fail as newETA Promise.resolve({}), - }), + json: () => Promise.resolve({}) + }) ); chai .request(app) @@ -80,7 +80,7 @@ describe("Test Progress Updates API for Tasks", function () { "planned", "blockers", "createdAt", - "date", + "date" ]); expect(res.body.message).to.be.equal("Task Progress document created successfully."); expect(res.body.data.userId).to.be.equal(userId); @@ -215,7 +215,7 @@ describe("Test Progress Updates API for Tasks", function () { "blockers", "userId", "createdAt", - "date", + "date" ]); }); return done(); @@ -304,7 +304,7 @@ describe("Test Progress Updates API for Tasks", function () { "blockers", "userId", "createdAt", - "date", + "date" ]); }); return done(); @@ -460,7 +460,7 @@ describe("Test Progress Updates API for Tasks", function () { "userId", "taskId", "createdAt", - "date", + "date" ]); return done(); }); diff --git a/test/integration/progressesUsers.test.js b/test/integration/progressesUsers.test.js index e06d9a1d2..9b381201e 100644 --- a/test/integration/progressesUsers.test.js +++ b/test/integration/progressesUsers.test.js @@ -10,7 +10,7 @@ const cleanDb = require("../utils/cleanDb"); const { standupProgressDay1, incompleteProgress, - stubbedModelProgressData, + stubbedModelProgressData } = require("../fixtures/progress/progresses"); const userData = require("../fixtures/user/user")(); @@ -35,7 +35,7 @@ describe("Test Progress Updates API for Users", function () { fetchMock = sinon.stub(global, "fetch"); clock = sinon.useFakeTimers({ now: new Date(Date.UTC(2023, 4, 2, 0, 25)).getTime(), // UTC time equivalent to 5:55 AM IST - toFake: ["Date"], + toFake: ["Date"] }); userId = await addUser(userData[1]); userToken = authService.generateAuthToken({ userId: userId }); @@ -54,8 +54,8 @@ describe("Test Progress Updates API for Users", function () { fetchMock.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({}), - }), + json: () => Promise.resolve({}) + }) ); chai .request(app) @@ -74,7 +74,7 @@ describe("Test Progress Updates API for Users", function () { "planned", "blockers", "createdAt", - "date", + "date" ]); expect(res.body.message).to.be.equal("User Progress document created successfully."); expect(res.body.data.userId).to.be.equal(userId); @@ -193,7 +193,7 @@ describe("Test Progress Updates API for Users", function () { "blockers", "userId", "createdAt", - "date", + "date" ]); }); return done(); @@ -219,7 +219,7 @@ describe("Test Progress Updates API for Users", function () { "blockers", "userId", "createdAt", - "date", + "date" ]); }); return done(); @@ -364,7 +364,7 @@ describe("Test Progress Updates API for Users", function () { "blockers", "userId", "createdAt", - "date", + "date" ]); return done(); }); diff --git a/test/integration/qrCodeAuth.test.js b/test/integration/qrCodeAuth.test.js index bcacbe99f..774b43900 100644 --- a/test/integration/qrCodeAuth.test.js +++ b/test/integration/qrCodeAuth.test.js @@ -197,7 +197,7 @@ describe("QrCodeAuth", function () { ...userDeviceInfoDataArray[0], user_id: userId, authorization_status: "NOT_INIT", - access_token: "ACCESS_TOKEN", + access_token: "ACCESS_TOKEN" }; }); diff --git a/test/integration/recruiters.test.js b/test/integration/recruiters.test.js index 855c65519..ffcb744b0 100644 --- a/test/integration/recruiters.test.js +++ b/test/integration/recruiters.test.js @@ -76,7 +76,7 @@ describe("Recruiters", function () { expect(res.body).to.eql({ statusCode: 404, error: "Not Found", - message: "User doesn't exist", + message: "User doesn't exist" }); return done(); diff --git a/test/integration/restricted.test.js b/test/integration/restricted.test.js index 81d62d0df..9d2ab097a 100644 --- a/test/integration/restricted.test.js +++ b/test/integration/restricted.test.js @@ -31,8 +31,8 @@ describe("checkRestrictedUser", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); }); @@ -63,7 +63,7 @@ describe("checkRestrictedUser", function () { .patch("/users/self") .set("cookie", `${cookieName}=${unrestrictedJwt}`) .send({ - first_name: "Test", + first_name: "Test" }) .end((err, res) => { if (err) { @@ -81,7 +81,7 @@ describe("checkRestrictedUser", function () { .patch("/users/self") .set("cookie", `${cookieName}=${restrictedJwt}`) .send({ - first_name: "Test", + first_name: "Test" }) .end((err, res) => { if (err) { diff --git a/test/integration/taskBasedStatusUpdate.test.js b/test/integration/taskBasedStatusUpdate.test.js index 9105e4012..69b5422dd 100644 --- a/test/integration/taskBasedStatusUpdate.test.js +++ b/test/integration/taskBasedStatusUpdate.test.js @@ -22,7 +22,7 @@ describe("Task Based Status Updates", function () { let taskArr; const reqBody = { status: "COMPLETED", - percentCompleted: 100, + percentCompleted: 100 }; beforeEach(async function () { @@ -49,7 +49,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.IDLE); }); @@ -64,7 +64,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to IDLE.", + "As the user is currently OOO, the future status has been updated to IDLE." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.IDLE); @@ -143,7 +143,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -158,7 +158,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE.", + "As the user is currently OOO, the future status has been updated to ACTIVE." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -232,7 +232,7 @@ describe("Task Based Status Updates", function () { type: "feature", status: "ASSIGNED", priority: "HIGH", - percentCompleted: 0, + percentCompleted: 0 }; beforeEach(async function () { @@ -257,7 +257,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -269,7 +269,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE.", + "As the user is currently OOO, the future status has been updated to ACTIVE." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -304,7 +304,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(500); expect(res.body.userStatus.error).to.equal("Internal Server Error"); expect(res.body.userStatus.message).to.equal( - "Please reach out to the administrator as your user status is not recognized as valid.", + "Please reach out to the administrator as your user status is not recognized as valid." ); }); @@ -315,7 +315,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(404); expect(res.body.userStatus.error).to.equal("Not Found"); expect(res.body.userStatus.message).to.equal( - "Something went wrong. Username funkeyMonkey123 could not be found.", + "Something went wrong. Username funkeyMonkey123 could not be found." ); }); }); @@ -353,7 +353,7 @@ describe("Task Based Status Updates", function () { { userId: userId8, state: "ACTIVE" }, { userId: userId9, state: "ACTIVE" }, { userId: userId10, state: "ACTIVE" }, - { userId: userId11, state: "IDLE" }, + { userId: userId11, state: "IDLE" } ]; reqBody.users = listUsers; await userStatusModel.doc("userStatus000").set(generateStatusDataForState(userId0, userState.ACTIVE)); @@ -394,7 +394,7 @@ describe("Task Based Status Updates", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered", + "idleUsersUnaltered" ); expect(response.usersCount).to.equal(12); expect(response.unprocessedUsers).to.equal(0); @@ -448,7 +448,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(500); const response = res.body; expect(response.message).to.be.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information.", + "The server has encountered an unexpected error. Please contact the administrator for more information." ); }); }); @@ -509,7 +509,7 @@ describe("Task Based Status Updates", function () { { userId: userId1, state: "ACTIVE" }, { userId: userId2, state: "ACTIVE" }, { userId: userId3, state: "IDLE" }, - { userId: superUserId, state: "IDLE" }, + { userId: superUserId, state: "IDLE" } ]); }); @@ -518,8 +518,8 @@ describe("Task Based Status Updates", function () { .stub(userStatusModelFunction, "getTaskBasedUsersStatus") .throws( new Error( - "The server has encountered an unexpected error. Please contact the administrator for more information.", - ), + "The server has encountered an unexpected error. Please contact the administrator for more information." + ) ); const response = await chai .request(app) @@ -527,7 +527,7 @@ describe("Task Based Status Updates", function () { .set("cookie", `${cookieName}=${superUserJwt}`); expect(response.status).to.equal(500); expect(response.body.message).to.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information.", + "The server has encountered an unexpected error. Please contact the administrator for more information." ); }); }); diff --git a/test/integration/taskRequests.test.js b/test/integration/taskRequests.test.js index 582bc1a93..9502b0631 100644 --- a/test/integration/taskRequests.test.js +++ b/test/integration/taskRequests.test.js @@ -40,7 +40,7 @@ const activeMember = userData[0]; const { idleStatus: idleUserStatus, activeStatus: activeUserStatus, - userStatusDataForOooState: oooUserStatus, + userStatusDataForOooState: oooUserStatus } = userStatusData; describe("Task Requests", function () { @@ -232,7 +232,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId, - userId, + userId }) .end((err, res) => { if (err) { @@ -254,7 +254,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taksId: taskId, // task key is mispelled intentionally - userId, + userId }) .end((err, res) => { if (err) { @@ -303,7 +303,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId: "random taskId", - userId, + userId }) .end((err, res) => { if (err) { @@ -339,7 +339,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId, - userId: userId2, + userId: userId2 }) .end((err, res) => { if (err) { @@ -359,7 +359,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId, - userId, + userId }) .end((err, res) => { if (err) { @@ -429,7 +429,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId, + userId }) .end((err, res) => { if (err) { @@ -448,7 +448,7 @@ describe("Task Requests", function () { .patch("/taskRequests/approve") .set("cookie", `${cookieName}=${jwt}`) .send({ - userId: oooUserId, + userId: oooUserId }) .end((err, res) => { if (err) { @@ -545,7 +545,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId, + userId }); expect(res).to.have.status(200); @@ -561,7 +561,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId, + userId }); expect(res).to.have.status(400); @@ -593,7 +593,7 @@ describe("Task Requests", function () { .resolves({ approvedTo: member.username, taskRequest: { taskRequestId: taskId } }); await chai.request(app).patch("/taskRequests/approve").set("cookie", `${cookieName}=${jwt}`).send({ taskRequestId: taskId, - userId, + userId }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -607,7 +607,7 @@ describe("Task Requests", function () { sinon.stub(taskRequestsModel, "approveTaskRequest").resolves({ taskRequestNotFound: true }); await chai.request(app).patch("/taskRequests/approve").set("cookie", `${cookieName}=${jwt}`).send({ taskRequestId: taskId, - userId, + userId }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -636,7 +636,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId, + userId }) .end((err, res) => { if (err) { @@ -692,7 +692,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskRequestId, - userId, + userId }); expect(res.body.message).to.equal(`Task updated successfully.`); expect(res).to.have.status(200); @@ -706,7 +706,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.REJECT }) .send({ taskRequestId: taskRequestId, - userId, + userId }); expect(res).to.have.status(200); @@ -720,7 +720,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ - userId: oooUserId, + userId: oooUserId }) .end((err, res) => { if (err) { @@ -837,7 +837,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskRequestId, - userId, + userId }); expect(res).to.have.status(200); @@ -853,7 +853,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskRequestId, - userId, + userId }); expect(res).to.have.status(200); @@ -869,7 +869,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskId, - userId, + userId }); expect(res).to.have.status(400); @@ -903,7 +903,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskRequestId, - userId, + userId }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -922,7 +922,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.REJECT }) .send({ taskRequestId: taskRequestId, - userId, + userId }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -940,7 +940,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskId, - userId, + userId }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -970,7 +970,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskId, - userId, + userId }) .end((err, res) => { if (err) { @@ -1013,7 +1013,7 @@ describe("Task Requests", function () { id: "request123", taskRequest: mockData.existingTaskRequest, isCreate: true, - alreadyRequesting: false, + alreadyRequesting: false }); const res = await chai .request(app) @@ -1060,7 +1060,7 @@ describe("Task Requests", function () { it("should handle invalid external issue URL", async function () { const requestData = { ...mockData.taskRequestData, - externalIssueUrl: "https://api.github.com/repos/Real-Dev-Squad/website/atus/issues/1564672", + externalIssueUrl: "https://api.github.com/repos/Real-Dev-Squad/website/atus/issues/1564672" }; const res = await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(requestData); expect(res.body.message).to.equal("Issue does not exist"); @@ -1081,7 +1081,7 @@ describe("Task Requests", function () { it("should handle task deadline before start date", async function () { const requestData = { ...mockData.taskRequestData, - proposedStartDate: mockData.taskRequestData.proposedDeadline + 10000, + proposedStartDate: mockData.taskRequestData.proposedDeadline + 10000 }; const res = await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(requestData); expect(res.body.message).to.equal("Task deadline cannot be before the start date"); @@ -1117,7 +1117,7 @@ describe("Task Requests", function () { id: "request123", taskRequest: mockData.existingTaskRequest, isCreate: true, - alreadyRequesting: false, + alreadyRequesting: false }); await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(mockData.taskRequestData); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); @@ -1133,7 +1133,7 @@ describe("Task Requests", function () { const requestData = { ...mockData.taskRequestData, taskId: "abc", - requestType: TASK_REQUEST_TYPE.ASSIGNMENT, + requestType: TASK_REQUEST_TYPE.ASSIGNMENT }; fetchTaskStub.resolves({ taskData: null }); await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(requestData); diff --git a/test/integration/tasks.test.js b/test/integration/tasks.test.js index 1e9df7b53..2c80e0397 100644 --- a/test/integration/tasks.test.js +++ b/test/integration/tasks.test.js @@ -51,7 +51,7 @@ const taskData = [ completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, isNoteworthy: true, - isCollapsed: true, + isCollapsed: true }, { title: "Test task", @@ -68,8 +68,8 @@ const taskData = [ completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, isNoteworthy: false, - assignee: appOwner.username, - }, + assignee: appOwner.username + } ]; describe("Tasks", function () { @@ -115,7 +115,7 @@ describe("Tasks", function () { lossRate: { [DINERO]: 1 }, assignee: appOwner.username, participants: [], - dependsOn: [], + dependsOn: [] }) .end((err, res) => { if (err) { @@ -153,7 +153,7 @@ describe("Tasks", function () { lossRate: { [DINERO]: 1 }, assignee: appOwner.username, participants: [], - dependsOn: [], + dependsOn: [] }) .end((err, res) => { if (err) { @@ -185,7 +185,7 @@ describe("Tasks", function () { completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, assignee: appOwner.username, - participants: [], + participants: [] }) .end((err, res) => { if (err) return done(err); @@ -210,7 +210,7 @@ describe("Tasks", function () { after(async function () { await tasks.updateTask( { ...taskData[1], createdAt: 1621717694, updatedAt: 1700775753, dependsOn: [], status: "IN_PROGRESS" }, - taskId2, + taskId2 ); }); @@ -505,9 +505,9 @@ describe("Tasks", function () { it("Should get tasks with COMPLETED status task when fetching task of status Done", async function () { await tasks.updateTask( { - status: "COMPLETED", + status: "COMPLETED" }, - taskId2, + taskId2 ); const res = await chai.request(app).get(`/tasks?dev=true&status=DONE&userFeatureFlag=true`); @@ -585,7 +585,7 @@ describe("Tasks", function () { it("Should return all assignee task", async function () { const { userId: assignedUser } = await userModel.addOrUpdate({ github_id: "prakashchoudhary07", - username: "user1", + username: "user1" }); const assignedTask = [ { @@ -599,7 +599,7 @@ describe("Tasks", function () { assignee: "user1", completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true, + isNoteworthy: true }, { title: "Test task", @@ -612,8 +612,8 @@ describe("Tasks", function () { assignee: "user1", completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true, - }, + isNoteworthy: true + } ]; const { taskId: taskId1 } = await tasks.updateTask(assignedTask[0]); const { taskId: taskId2 } = await tasks.updateTask(assignedTask[1]); @@ -640,7 +640,7 @@ describe("Tasks", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); @@ -655,7 +655,7 @@ describe("Tasks", function () { .patch("/tasks/" + taskId1) .set("cookie", `${cookieName}=${jwt}`) .send({ - title: "new-title", + title: "new-title" }) .end((err, res) => { if (err) { @@ -672,7 +672,7 @@ describe("Tasks", function () { .patch("/tasks/" + taskId1) .set("cookie", `${cookieName}=${jwt}`) .send({ - title: "new-title", + title: "new-title" }) .end((err, res) => { if (err) { @@ -804,7 +804,7 @@ describe("Tasks", function () { .patch("/tasks/" + taskId1) .set("cookie", `${cookieName}=${jwt}`) .send({ - isCollapsed: true, + isCollapsed: true }) .end((err, res) => { if (err) { @@ -823,7 +823,7 @@ describe("Tasks", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ title: "new-title", - status: "invalidStatus", + status: "invalidStatus" }) .end((err, res) => { if (err) { @@ -843,7 +843,7 @@ describe("Tasks", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ status: TASK_STATUS.IN_REVIEW, - percentCompleted: 120, + percentCompleted: 120 }) .end((err, res) => { if (err) { @@ -862,7 +862,7 @@ describe("Tasks", function () { .patch("/tasks/taskid") .set("cookie", `${cookieName}=${jwt}`) .send({ - title: "new-title", + title: "new-title" }) .end((err, res) => { if (err) { @@ -953,7 +953,7 @@ describe("Tasks", function () { describe("PATCH /tasks/self/:id", function () { const taskStatusData = { status: "AVAILABLE", - percentCompleted: 50, + percentCompleted: 50 }; const taskData = { @@ -966,7 +966,7 @@ describe("Tasks", function () { participants: [], completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true, + isNoteworthy: true }; it("Should throw 400 Bad Request if the user tries to update the status of a task to AVAILABLE", function (done) { @@ -1193,7 +1193,7 @@ describe("Tasks", function () { assignee: appOwner.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true, + isNoteworthy: true }; taskId = (await tasks.updateTask(taskData)).taskId; const res = await chai @@ -1217,7 +1217,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from In progress until progress of task is not 100%.", + "The status of task can not be changed from In progress until progress of task is not 100%." ); }); @@ -1232,7 +1232,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed to In progress until progress of task is not 0%.", + "The status of task can not be changed to In progress until progress of task is not 0%." ); }); @@ -1247,7 +1247,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from Blocked until progress of task is not 100%.", + "The status of task can not be changed from Blocked until progress of task is not 100%." ); }); @@ -1334,7 +1334,7 @@ describe("Tasks", function () { update: function () {}, commit: function () { throw new Error("Firestore batch commit failed!"); - }, + } }); const taskData1 = { status: "COMPLETED" }; await firestore.collection("tasks").doc("updateTaskStatus1").set(taskData1); @@ -1385,7 +1385,7 @@ describe("Tasks", function () { await tasks.updateTask({ ...tasksData[10], createdAt: null }); const res = await chai.request(app).post("/tasks/migration").set("cookie", `${cookieName}=${superUserJwt}`).send({ action: "ADD", - field: "CREATED_AT+UPDATED_AT", + field: "CREATED_AT+UPDATED_AT" }); expect(res).to.have.status(200); expect(res.body.totalTasks).to.be.equal(10); @@ -1398,7 +1398,7 @@ describe("Tasks", function () { it("Should update status createdAt and updatedAt, if filed doesn't exists", async function () { const res = await chai.request(app).post("/tasks/migration").set("cookie", `${cookieName}=${superUserJwt}`).send({ action: "ADD", - field: "CREATED_AT+UPDATED_AT", + field: "CREATED_AT+UPDATED_AT" }); expect(res).to.have.status(200); expect(res.body.totalTasks).to.be.equal(6); @@ -1418,11 +1418,11 @@ describe("Tasks", function () { update: function () {}, commit: function () { throw new Error("Firestore batch commit failed!"); - }, + } }); const res = await chai.request(app).post("/tasks/migration").set("cookie", `${cookieName}=${superUserJwt}`).send({ action: "ADD", - field: "CREATED_AT+UPDATED_AT", + field: "CREATED_AT+UPDATED_AT" }); expect(res).to.have.status(200); expect(res.body.totalTasks).to.be.equal(10); @@ -1449,19 +1449,19 @@ describe("Tasks", function () { const { idleStatus: idleUserStatus, activeStatus: activeUserStatus, - userStatusDataForOooState: oooUserStatus, + userStatusDataForOooState: oooUserStatus } = userStatusData; const userIdList = await Promise.all([ await addUser(idleUser), // idle user with no task progress updates await addUser(activeUserWithProgressUpdates), // active user with task progress updates await addUser(activeUserWithNoUpdates), // active user with no task progress updates - await addUser(userNotInDiscord), // OOO user with + await addUser(userNotInDiscord) // OOO user with ]); await Promise.all([ await userStatusModel.updateUserStatus(userIdList[0], idleUserStatus), await userStatusModel.updateUserStatus(userIdList[1], activeUserStatus), await userStatusModel.updateUserStatus(userIdList[2], activeUserStatus), - await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus), + await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus) ]); const tasksPromise = []; @@ -1473,7 +1473,7 @@ describe("Tasks", function () { assignee: userIdList[index], startedOn: (new Date().getTime() - convertDaysToMilliseconds(7)) / 1000, endsOn: (new Date().getTime() + convertDaysToMilliseconds(4)) / 1000, - status: TASK_STATUS.IN_PROGRESS, + status: TASK_STATUS.IN_PROGRESS }; tasksPromise.push(tasksModel.add(validTask)); @@ -1515,8 +1515,8 @@ describe("Tasks", function () { data: { usersToAddRole: [activeUserWithProgressUpdates.discordId], tasks: 4, - missedUpdatesTasks: 3, - }, + missedUpdatesTasks: 3 + } }); expect(response.status).to.be.equal(200); }); @@ -1527,7 +1527,7 @@ describe("Tasks", function () { .get("/tasks/users/discord") .query({ size: 5, - q: `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -weekday:tue -weekday:wed -weekday:thu -weekday:fri -date:231423432 -days-count:4`, + q: `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -weekday:tue -weekday:wed -weekday:thu -weekday:fri -date:231423432 -days-count:4` }) .set("Authorization", `Bearer ${jwtToken}`); expect(response.body).to.be.deep.equal({ @@ -1535,8 +1535,8 @@ describe("Tasks", function () { data: { usersToAddRole: [], tasks: 4, - missedUpdatesTasks: 0, - }, + missedUpdatesTasks: 0 + } }); expect(response.status).to.be.equal(200); }); @@ -1550,7 +1550,7 @@ describe("Tasks", function () { expect(response.body).to.be.deep.equal({ error: "Bad Request", message: '"status" is required', - statusCode: 400, + statusCode: 400 }); expect(response.status).to.be.equal(400); }); @@ -1585,19 +1585,19 @@ describe("Tasks", function () { const task1 = { assignee: userId, - status: "ACTIVE", + status: "ACTIVE" }; const task2 = { assignee: userId2, - status: "COMPLETED", + status: "COMPLETED" }; const task3 = { assignee: userId2, - status: "IN_PROGRESS", + status: "IN_PROGRESS" }; const task4 = { assignee: userId, - status: "DONE", + status: "DONE" }; await Promise.all([tasksModel.add(task1), tasksModel.add(task2), tasksModel.add(task3), tasksModel.add(task4)]); }); @@ -1612,8 +1612,8 @@ describe("Tasks", function () { expect(res.body).to.deep.equal({ message: "Orphan tasks filtered successfully", updatedTasksData: { - orphanTasksUpdatedCount: 2, - }, + orphanTasksUpdatedCount: 2 + } }); }); @@ -1626,7 +1626,7 @@ describe("Tasks", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action.", + message: "You are not authorized for this action." }); }); }); diff --git a/test/integration/userStatus.test.js b/test/integration/userStatus.test.js index b45868bc2..3b39405e1 100644 --- a/test/integration/userStatus.test.js +++ b/test/integration/userStatus.test.js @@ -15,7 +15,7 @@ const { userStatusDataForNewUser, userStatusDataForOooState, oooStatusDataForShortDuration, - generateUserStatusData, + generateUserStatusData } = require("../fixtures/userStatus/userStatus"); const config = require("config"); @@ -132,7 +132,7 @@ describe("UserStatus", function () { beforeEach(async function () { clock = sinon.useFakeTimers({ now: new Date(2022, 10, 12, 12, 0, 0).getTime(), - toFake: ["Date"], + toFake: ["Date"] }); testUserId = await addUser(userData[1]); testUserJwt = authService.generateAuthToken({ userId: testUserId }); @@ -185,7 +185,7 @@ describe("UserStatus", function () { oooUsersAltered: 0, oooUsersUnaltered: 0, nonOooUsersAltered: 1, - nonOooUsersUnaltered: 0, + nonOooUsersUnaltered: 0 }); // Checking the current status @@ -212,7 +212,7 @@ describe("UserStatus", function () { oooUsersAltered: 1, oooUsersUnaltered: 0, nonOooUsersAltered: 0, - nonOooUsersUnaltered: 0, + nonOooUsersUnaltered: 0 }); const response6 = await chai.request(app).get(`/users/status/self`).set("Cookie", `${cookieName}=${testUserJwt}`); @@ -260,7 +260,7 @@ describe("UserStatus", function () { oooUsersAltered: 0, oooUsersUnaltered: 0, nonOooUsersAltered: 1, - nonOooUsersUnaltered: 0, + nonOooUsersUnaltered: 0 }); // Checking the current status @@ -283,7 +283,7 @@ describe("UserStatus", function () { beforeEach(async function () { clock = sinon.useFakeTimers({ now: new Date(2022, 10, 12, 12, 0, 0).getTime(), - toFake: ["Date"], + toFake: ["Date"] }); testUserId = await addUser(userData[1]); testUserJwt = authService.generateAuthToken({ userId: testUserId }); @@ -431,7 +431,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The value for the 'message' field is mandatory when State is OOO for more than three days.`, + `The value for the 'message' field is mandatory when State is OOO for more than three days.` ); return done(); }); @@ -452,7 +452,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'from' field must have a value that is either today or a date that follows today.`, + `The 'from' field must have a value that is either today or a date that follows today.` ); return done(); }); @@ -474,7 +474,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` ); return done(); }); @@ -596,7 +596,7 @@ describe("UserStatus", function () { await firestore.collection("tasks").doc("user1AssignedTask").set({ assignee: userId, - status: "ASSIGNED", + status: "ASSIGNED" }); await firestore .collection("usersStatus") @@ -608,8 +608,8 @@ describe("UserStatus", function () { from: nowTimeStamp, until: fiveDaysFromNowTimeStamp, updatedAt: nowTimeStamp, - state: userState.OOO, - }, + state: userState.OOO + } }); const res = await chai .request(app) @@ -637,8 +637,8 @@ describe("UserStatus", function () { from: nowTimeStamp, until: fiveDaysFromNowTimeStamp, updatedAt: nowTimeStamp, - state: userState.OOO, - }, + state: userState.OOO + } }); const res = await chai .request(app) @@ -674,8 +674,8 @@ describe("UserStatus", function () { from: nowTimeStamp, until: "", updatedAt: nowTimeStamp, - state: "ACTIVE", - }, + state: "ACTIVE" + } }); const res = await chai .request(app) @@ -714,7 +714,7 @@ describe("UserStatus", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); }); @@ -733,7 +733,7 @@ describe("UserStatus", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action.", + message: "You are not authorized for this action." }); return done(); }); diff --git a/test/integration/users.test.js b/test/integration/users.test.js index 2109c5e73..aaded56cd 100644 --- a/test/integration/users.test.js +++ b/test/integration/users.test.js @@ -21,7 +21,7 @@ const joinData = require("../fixtures/user/join"); const { userStatusDataForNewUser, userStatusDataAfterSignup, - userStatusDataAfterFillingJoinSection, + userStatusDataAfterFillingJoinSection } = require("../fixtures/userStatus/userStatus"); const { addJoinData, addOrUpdate } = require("../../models/users"); const userStatusModel = require("../../models/userStatus"); @@ -71,8 +71,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); }); @@ -86,7 +86,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - first_name: "Test first_name", + first_name: "Test first_name" }) .end((err, res) => { if (err) { @@ -105,7 +105,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - status: "ooo", + status: "ooo" }) .end((err, res) => { if (err) { @@ -124,7 +124,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - username: "validUsername123", + username: "validUsername123" }) .end((err, res) => { if (err) { @@ -146,8 +146,8 @@ describe("Users", function () { .set("cookie", `${cookieName}=${newUserJwt}`) .send({ roles: { - maven: true, - }, + maven: true + } }) .end((err, res) => { if (err) { @@ -179,8 +179,8 @@ describe("Users", function () { .set("cookie", `${cookieName}=${newUserJwt}`) .send({ roles: { - maven: true, - }, + maven: true + } }); expect(updateRolesResponse).to.have.status(204); @@ -203,8 +203,8 @@ describe("Users", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ roles: { - maven: true, - }, + maven: true + } }) .end((err, res) => { if (err) { @@ -223,7 +223,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - status: "blah", + status: "blah" }) .end((err, res) => { if (err) { @@ -235,7 +235,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: '"status" must be one of [ooo, idle, active, onboarding]', + message: '"status" must be one of [ooo, idle, active, onboarding]' }); return done(); @@ -250,8 +250,8 @@ describe("Users", function () { .send({ roles: { in_discord: false, - developer: true, - }, + developer: true + } }) .end((err, res) => { if (err) { @@ -273,8 +273,8 @@ describe("Users", function () { roles: { archived: "false", in_discord: false, - developer: true, - }, + developer: true + } }) .end((err, res) => { if (err) { @@ -293,7 +293,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - username: "@invalidUser-name", + username: "@invalidUser-name" }) .end((err, res) => { if (err) { @@ -305,7 +305,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Username must be between 4 and 20 characters long and contain only letters or numbers.", + message: "Username must be between 4 and 20 characters long and contain only letters or numbers." }); return done(); @@ -318,7 +318,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - twitter_id: "Valid_twitterId", + twitter_id: "Valid_twitterId" }) .end((err, res) => { if (err) { @@ -336,7 +336,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - twitter_id: "invalid@twitter_id", + twitter_id: "invalid@twitter_id" }) .end((err, res) => { if (err) { @@ -348,7 +348,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Twitter ID. ID should not contain special character @ or spaces", + message: "Invalid Twitter ID. ID should not contain special character @ or spaces" }); return done(); @@ -361,7 +361,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - linkedin_id: "invalid@linkedin_id", + linkedin_id: "invalid@linkedin_id" }) .end((err, res) => { if (err) { @@ -373,7 +373,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Linkedin ID. ID should not contain special character @ or spaces", + message: "Invalid Linkedin ID. ID should not contain special character @ or spaces" }); return done(); @@ -386,7 +386,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - instagram_id: "invalid@instagram_id", + instagram_id: "invalid@instagram_id" }) .end((err, res) => { if (err) { @@ -398,7 +398,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Instagram ID. ID should not contain special character @ or spaces", + message: "Invalid Instagram ID. ID should not contain special character @ or spaces" }); return done(); @@ -411,7 +411,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - linkedin_id: "Linkedin 123", + linkedin_id: "Linkedin 123" }) .end((err, res) => { if (err) { @@ -423,7 +423,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Linkedin ID. ID should not contain special character @ or spaces", + message: "Invalid Linkedin ID. ID should not contain special character @ or spaces" }); return done(); @@ -495,7 +495,7 @@ describe("Users", function () { .get("/users") .query({ size: 1, - page: 0, + page: 0 }) .end((err, res) => { if (err) { @@ -520,7 +520,7 @@ describe("Users", function () { .get("/users") .query({ size: -1, - page: -1, + page: -1 }) .end((err, res) => { if (err) { @@ -541,7 +541,7 @@ describe("Users", function () { .request(app) .get("/users") .query({ - size: 101, + size: 101 }) .end((err, res) => { if (err) { @@ -708,7 +708,7 @@ describe("Users", function () { .request(app) .get("/users") .query({ - query: "filterBy:unmerged_prs+days:30", + query: "filterBy:unmerged_prs+days:30" }) .end((err, res) => { if (err) { @@ -727,7 +727,7 @@ describe("Users", function () { .get("/users") .query({ q: "filterBy:unmerged_prs+days:30", - dev: true, + dev: true }) .end((err, res) => { if (err) { @@ -745,7 +745,7 @@ describe("Users", function () { .request(app) .get("/users") .query({ - q: "filterBy:unmerged_prs+days:30", + q: "filterBy:unmerged_prs+days:30" }) .end((err, res) => { if (err) { @@ -880,7 +880,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); @@ -1137,7 +1137,7 @@ describe("Users", function () { "linkedin_id", "github_id", "isMember", - "roles", + "roles" ]); expect(Object.keys(res.body.user)).to.not.include.members(["phone", "email", "tokens", "chaincode"]); expect(res.body.user.id).to.equal(userId); @@ -1397,7 +1397,7 @@ describe("Users", function () { .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ profileDiffId: `${profileDiffsId}`, - message: "", + message: "" }) .end((err, res) => { if (err) { @@ -1440,7 +1440,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); }); @@ -1471,7 +1471,7 @@ describe("Users", function () { twitter_id: "ankur909", instagram_id: "", website: "", - message: "", + message: "" }) .end((err, res) => { if (err) { @@ -1514,7 +1514,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User", + message: "Unauthenticated User" }); return done(); }); @@ -1562,7 +1562,7 @@ describe("Users", function () { .patch("/users/profileURL") .set("cookie", `${cookieName}=${jwt}`) .send({ - profileURL: "http://localhost:3000/healthcheck", + profileURL: "http://localhost:3000/healthcheck" }) .end((err, res) => { if (err) { @@ -1581,7 +1581,7 @@ describe("Users", function () { .patch("/users/profileURL") .set("cookie", `${cookieName}=${jwt}`) .send({ - profileURL: "random", + profileURL: "random" }) .end((err, res) => { if (err) { @@ -1593,7 +1593,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: '"profileURL" must be a valid uri', + message: '"profileURL" must be a valid uri' }); return done(); @@ -1616,7 +1616,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: '"profileURL" is required', + message: '"profileURL" is required' }); return done(); }); @@ -1756,8 +1756,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); chai .request(app) @@ -1799,7 +1799,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: true, + member: true }) .end((err, res) => { if (err) { @@ -1820,7 +1820,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: false, + member: false }) .end((err, res) => { if (err) { @@ -1841,7 +1841,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: true, + archived: true }) .end((err, res) => { if (err) { @@ -1862,7 +1862,7 @@ describe("Users", function () { .patch(`/users/${userRoleUnArchivedId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: false, + archived: false }) .end((err, res) => { if (err) { @@ -1885,7 +1885,7 @@ describe("Users", function () { .send({ member: true, archived: true, - reason: "test reason", + reason: "test reason" }) .end((err, res) => { if (err) { @@ -1906,7 +1906,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - in_discord: true, + in_discord: true }) .end((err, res) => { if (err) { @@ -1927,7 +1927,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyMemberId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: true, + member: true }) .end((err, res) => { if (err) { @@ -1948,7 +1948,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyNotMemberId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: false, + member: false }) .end((err, res) => { if (err) { @@ -1969,7 +1969,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyArchivedId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: true, + archived: true }) .end((err, res) => { if (err) { @@ -1990,7 +1990,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyUnArchivedId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: false, + archived: false }) .end((err, res) => { if (err) { @@ -2009,7 +2009,7 @@ describe("Users", function () { .patch(`/users/111111111111/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: true, + archived: true }) .end((err, res) => { if (err) { @@ -2029,7 +2029,7 @@ describe("Users", function () { .patch(`/users/${nonSuperUserId}/temporary/data`) .set("cookie", `${cookieName}=${nonSuperUserJwt}`) .send({ - archived: true, + archived: true }) .end((err, res) => { if (err) { @@ -2053,7 +2053,7 @@ describe("Users", function () { beforeEach(async function () { const rolesToBeAdded = { archived: false, - in_discord: false, + in_discord: false }; userId1 = await addUser({ ...userData[0], roles: rolesToBeAdded }); userId2 = await addUser({ ...userData[1], roles: rolesToBeAdded }); @@ -2100,7 +2100,7 @@ describe("Users", function () { expect(res.body.summary.totalUsers).to.be.equal(3); expect(res.body.summary.totalOperationsFailed).to.be.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false", + "Successfully updated users archived role to true if in_discord role is false" ); return done(); }); @@ -2109,7 +2109,7 @@ describe("Users", function () { it("should return proper response if no documents are found to update for api archiveUsersIfNotInDiscord", async function () { const roles = { archived: true, - in_discord: false, + in_discord: false }; await addOrUpdate({ ...userData[0], roles }, userId1); await addOrUpdate({ ...userData[1], roles }, userId2); @@ -2136,7 +2136,7 @@ describe("Users", function () { update: function () {}, commit: function () { throw new Error("Firestore batch commit failed!"); - }, + } }); const res = await chai @@ -2167,7 +2167,7 @@ describe("Users", function () { "totalOperationsFailed", "totalUsers", "updatedUserDetails", - "failedUserDetails", + "failedUserDetails" ]); expect(res.body.summary.totalUsersArchived).to.be.equal(3); expect(res.body.summary.totalUsers).to.be.equal(3); @@ -2175,7 +2175,7 @@ describe("Users", function () { expect(res.body.summary.updatedUserDetails.length).to.equal(3); expect(res.body.summary.failedUserDetails.length).to.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false", + "Successfully updated users archived role to true if in_discord role is false" ); return done(); }); @@ -2197,8 +2197,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(), - }), + json: () => Promise.resolve() + }) ); chai .request(app) @@ -2234,7 +2234,7 @@ describe("Users", function () { update: function () {}, commit: function () { throw new Error("User not verified"); - }, + } }); chai .request(app) @@ -2258,8 +2258,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); }); @@ -2294,8 +2294,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordMembers), - }), + json: () => Promise.resolve(discordMembers) + }) ); }); @@ -2309,7 +2309,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - first_name: "Test first_name", + first_name: "Test first_name" }) .end((err, res) => { if (err) { @@ -2318,7 +2318,7 @@ describe("Users", function () { expect(res).to.have.status(403); expect(res.body.message).to.equal( - "Developers can't update their profile data. Use profile service for updating.", + "Developers can't update their profile data. Use profile service for updating." ); return done(); @@ -2335,8 +2335,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordMembers), - }), + json: () => Promise.resolve(discordMembers) + }) ); }); diff --git a/test/integration/usersFilter.test.js b/test/integration/usersFilter.test.js index 5b2d7cf2f..d0c20921a 100644 --- a/test/integration/usersFilter.test.js +++ b/test/integration/usersFilter.test.js @@ -44,12 +44,12 @@ describe("Filter Users", function () { oooUser = await addUser(userData[0]); await updateUserStatus( oooUser, - generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health"), + generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health") ); idleUser = await addUser(userData[1]); await updateUserStatus( idleUser, - generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS"), + generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS") ); activeUser = await addUser(userData[8]); await updateUserStatus(activeUser, generateUserStatusData(userState.ACTIVE, updatedAtDate, updatedAtDate)); @@ -60,23 +60,23 @@ describe("Filter Users", function () { const { id: id1 } = await addTag({ name: "Vue JS", type: "SKILL", - reason: "Web Dev FE", + reason: "Web Dev FE" }); tagIdFE = id1; const { id: id2 } = await addTag({ name: "Node JS", type: "SKILL", - reason: "Web Dev BE", + reason: "Web Dev BE" }); tagIdBE = id2; const { id: id3 } = await addLevel({ name: "level 1", - value: 1, + value: 1 }); levelId1 = id3; const { id: id4 } = await addLevel({ name: "level 2", - value: 2, + value: 2 }); levelId2 = id4; @@ -87,13 +87,13 @@ describe("Filter Users", function () { tagPayload: [ { tagId: tagIdFE, - levelId: levelId1, + levelId: levelId1 }, { tagId: tagIdFE, - levelId: levelId2, - }, - ], + levelId: levelId2 + } + ] }); await addTagsToItem({ itemId: idleUser, @@ -101,13 +101,13 @@ describe("Filter Users", function () { tagPayload: [ { tagId: tagIdBE, - levelId: levelId1, + levelId: levelId1 }, { tagId: tagIdBE, - levelId: levelId2, - }, - ], + levelId: levelId2 + } + ] }); await addTagsToItem({ itemId: activeUser, @@ -115,13 +115,13 @@ describe("Filter Users", function () { tagPayload: [ { tagId: tagIdFE, - levelId: levelId1, + levelId: levelId1 }, { tagId: tagIdBE, - levelId: levelId1, - }, - ], + levelId: levelId1 + } + ] }); }); @@ -148,7 +148,7 @@ describe("Filter Users", function () { expect(res.body.users).to.be.a("array"); expect(res.body.users.length).to.equal(1); expect(res.body.users[0]).to.deep.include({ - id: oooUser, + id: oooUser }); return done(); }); @@ -256,7 +256,7 @@ describe("Filter Users", function () { expect(res.body.users).to.be.a("array"); expect(res.body.users.length).to.equal(1); expect(res.body.users[0]).to.deep.include({ - id: onboardingUser, + id: onboardingUser }); return done(); }); diff --git a/test/unit/middlewares/arts-validator.test.js b/test/unit/middlewares/arts-validator.test.js index 77ee785d9..f07658312 100644 --- a/test/unit/middlewares/arts-validator.test.js +++ b/test/unit/middlewares/arts-validator.test.js @@ -8,8 +8,8 @@ describe("Test the arts validator", function () { body: { title: "some title", price: 100, - css: "random css", - }, + css: "random css" + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -20,13 +20,13 @@ describe("Test the arts validator", function () { it("Stops the request to propogate to next", async function () { const req = { body: { - "": "", - }, + "": "" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await createArt(req, res, nextSpy); diff --git a/test/unit/middlewares/auctions-validator.test.js b/test/unit/middlewares/auctions-validator.test.js index 63fed1b54..7754d7beb 100644 --- a/test/unit/middlewares/auctions-validator.test.js +++ b/test/unit/middlewares/auctions-validator.test.js @@ -10,8 +10,8 @@ describe("auctions validator", function () { item_type: "css art", quantity: 100, initial_price: 100, - end_time: 1234234234, - }, + end_time: 1234234234 + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -22,13 +22,13 @@ describe("auctions validator", function () { it("stops the request to propogate to next", async function () { const req = { body: { - "": "", - }, + "": "" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await createAuction(req, res, nextSpy).catch((err) => { @@ -42,8 +42,8 @@ describe("auctions validator", function () { it("allows the request to pass", async function () { const req = { body: { - bid: 100, - }, + bid: 100 + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -54,13 +54,13 @@ describe("auctions validator", function () { it("stops the request to propogate to next", async function () { const req = { body: { - "": "", - }, + "": "" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await placeBid(req, res, nextSpy).catch((err) => { diff --git a/test/unit/middlewares/authorizeBot.test.js b/test/unit/middlewares/authorizeBot.test.js index f986d5d4b..2a695e5f2 100644 --- a/test/unit/middlewares/authorizeBot.test.js +++ b/test/unit/middlewares/authorizeBot.test.js @@ -8,13 +8,13 @@ describe("Middleware | Authorize Bot", function () { describe("Check authorization of bot", function (done) { it("return false when token is invalid", function () { const request = { - headers: `Bearer ${BAD_TOKEN}`, + headers: `Bearer ${BAD_TOKEN}` }; const response = { statusCode: 401, error: "Unauthorized", - message: "Unauthorized Bot", + message: "Unauthorized Bot" }; const nextSpy = sinon.spy(); @@ -28,7 +28,7 @@ describe("Middleware | Authorize Bot", function () { const response = { statusCode: 400, error: "Invalid Request", - message: "Invalid Request", + message: "Invalid Request" }; const nextSpy = sinon.spy(); @@ -41,8 +41,8 @@ describe("Middleware | Authorize Bot", function () { const request = { headers: { - authorization: `Bearer ${jwtToken}`, - }, + authorization: `Bearer ${jwtToken}` + } }; const response = {}; @@ -57,8 +57,8 @@ describe("Middleware | Authorize Bot", function () { it("Check fails on bad auth token", function () { const request = { headers: { - authorization: `Bearer ${BAD_TOKEN}`, - }, + authorization: `Bearer ${BAD_TOKEN}` + } }; const response = {}; @@ -71,7 +71,7 @@ describe("Middleware | Authorize Bot", function () { it("Should stop propagation for no auth token", function () { const request = { - headers: {}, + headers: {} }; const response = {}; @@ -88,8 +88,8 @@ describe("Middleware | Authorize Bot", function () { const jwtToken = bot.generateCronJobToken({ name: "Some Random Name" }); const request = { headers: { - authorization: `Bearer ${jwtToken}`, - }, + authorization: `Bearer ${jwtToken}` + } }; const response = {}; @@ -106,8 +106,8 @@ describe("Middleware | Authorize Bot", function () { const jwtToken = bot.generateCronJobToken({ name: CRON_JOB_HANDLER }); const request = { headers: { - authorization: `Bearer ${jwtToken}`, - }, + authorization: `Bearer ${jwtToken}` + } }; const response = {}; const nextSpy = sinon.spy(); diff --git a/test/unit/middlewares/cache.test.js b/test/unit/middlewares/cache.test.js index 9842908b0..da2699dbf 100644 --- a/test/unit/middlewares/cache.test.js +++ b/test/unit/middlewares/cache.test.js @@ -16,12 +16,12 @@ describe("Middleware | Utils | cache", function () { const request = { method: "GET", - originalUrl: "/test1", + originalUrl: "/test1" }; const response = { statusCode: 200, - send: sinon.spy(), + send: sinon.spy() }; const nextSpy = sinon.spy(); @@ -46,12 +46,12 @@ describe("Middleware | Utils | cache", function () { const request = { method: "GET", - originalUrl: "/test2", + originalUrl: "/test2" }; const response = { on: sinon.spy(), statusCode: 200, - send: sinon.spy(), + send: sinon.spy() }; const nextSpy = sinon.spy(); @@ -87,12 +87,12 @@ describe("Middleware | Utils | cache", function () { const cacheTestKey = "__cache__3"; const request = { method: "GET", - originalUrl: "/test3", + originalUrl: "/test3" }; const response = { statusCode: 400, - send: sinon.spy(), + send: sinon.spy() }; const nextSpy = sinon.spy(); @@ -119,12 +119,12 @@ describe("Middleware | Utils | cache", function () { const request = { method: "GET", - originalUrl: "/test4", + originalUrl: "/test4" }; const response = { on: sinon.spy(), statusCode: 200, - send: sinon.spy(), + send: sinon.spy() }; const nextSpy = sinon.spy(); diff --git a/test/unit/middlewares/challenges-validator.test.js b/test/unit/middlewares/challenges-validator.test.js index 9300fd52c..649b74542 100644 --- a/test/unit/middlewares/challenges-validator.test.js +++ b/test/unit/middlewares/challenges-validator.test.js @@ -10,8 +10,8 @@ describe("Middleware | Validators | Challenges", function () { level: "Noob", title: "The noob challenge", start_date: 1254324345, - end_date: 354654345, - }, + end_date: 354654345 + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -22,13 +22,13 @@ describe("Middleware | Validators | Challenges", function () { it("Stops the propogation of the next", async function () { const req = { body: { - level: "Noob", - }, + level: "Noob" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await createChallenge(req, res, nextSpy).catch((err) => { diff --git a/test/unit/middlewares/contentTypeCheck.test.js b/test/unit/middlewares/contentTypeCheck.test.js index 9f4feaedf..c2e9a7b19 100644 --- a/test/unit/middlewares/contentTypeCheck.test.js +++ b/test/unit/middlewares/contentTypeCheck.test.js @@ -25,8 +25,8 @@ describe("contentTypeCheck", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers), - }), + json: () => Promise.resolve(getDiscordMembers) + }) ); }); @@ -51,7 +51,7 @@ describe("contentTypeCheck", function () { expect(res.body).to.eql({ statusCode: 415, error: "Unsupported Media Type", - message: "Invalid content-type header: application/xml, expected: application/json or multipart/form-data", + message: "Invalid content-type header: application/xml, expected: application/json or multipart/form-data" }); return done(); @@ -79,7 +79,7 @@ describe("contentTypeCheck", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - first_name: "Test first_name", + first_name: "Test first_name" }) .end((err, res) => { if (err) { diff --git a/test/unit/middlewares/data-access-layer.test.js b/test/unit/middlewares/data-access-layer.test.js index bc3875f99..4d392223c 100644 --- a/test/unit/middlewares/data-access-layer.test.js +++ b/test/unit/middlewares/data-access-layer.test.js @@ -10,21 +10,21 @@ describe("dataAccessMiddleware", function () { const res = { send: (body) => { expect(body).to.deep.equal({ - publicField: "publicValue", + publicField: "publicValue" }); - }, + } }; const next = sinon.spy(); const rules = [ { allowedRoles: [SUPERUSER], - keyPath: "privateField", + keyPath: "privateField" }, { allowedRoles: [SUPERUSER], - keyPath: "privateField2", - }, + keyPath: "privateField2" + } ]; const middleware = dataAccessMiddleware({ rules }); @@ -40,15 +40,15 @@ describe("dataAccessMiddleware", function () { const res = { send: (body) => { expect(body).to.deep.equal({ privateField: "privateValue", publicField: "publicValue" }); - }, + } }; const next = sinon.spy(); const rules = [ { allowedRoles: [SUPERUSER], - keyPath: "privateField", - }, + keyPath: "privateField" + } ]; const middleware = dataAccessMiddleware({ rules }); diff --git a/test/unit/middlewares/discordactions-validators.test.js b/test/unit/middlewares/discordactions-validators.test.js index b96804bc5..6c6623e62 100644 --- a/test/unit/middlewares/discordactions-validators.test.js +++ b/test/unit/middlewares/discordactions-validators.test.js @@ -2,7 +2,7 @@ const Sinon = require("sinon"); const { validateGroupRoleBody, validateMemberRoleBody, - validateUpdateUsersNicknameStatusBody, + validateUpdateUsersNicknameStatusBody } = require("../../../middlewares/validators/discordactions"); const { expect } = require("chai"); @@ -12,8 +12,8 @@ describe("Middleware | Validators | discord actions", function () { const res = {}; const req = { body: { - rolename: "test", - }, + rolename: "test" + } }; const nextSpy = Sinon.spy(); await validateGroupRoleBody(req, res, nextSpy); @@ -23,12 +23,12 @@ describe("Middleware | Validators | discord actions", function () { it("stops the propogation of the event to next function", async function () { const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); const req = { - body: {}, + body: {} }; await validateGroupRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); @@ -42,8 +42,8 @@ describe("Middleware | Validators | discord actions", function () { const req = { body: { userid: "12346re54d4e434", - roleid: "12345654325544565", - }, + roleid: "12345654325544565" + } }; const nextSpy = Sinon.spy(); const res = {}; @@ -54,12 +54,12 @@ describe("Middleware | Validators | discord actions", function () { it("stops the propogation to the next function", async function () { const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); const req = { - body: {}, + body: {} }; await validateMemberRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); @@ -72,8 +72,8 @@ describe("Middleware | Validators | discord actions", function () { it("should pass the request to the next function when lastNicknameUpdate timestamp is a string", async function () { const req = { body: { - lastNicknameUpdate: String(Date.now()), - }, + lastNicknameUpdate: String(Date.now()) + } }; const nextSpy = Sinon.spy(); const res = {}; @@ -84,8 +84,8 @@ describe("Middleware | Validators | discord actions", function () { it("should pass the request to the next function when lastNicknameUpdate timestamp is a number", async function () { const req = { body: { - lastNicknameUpdate: Date.now(), - }, + lastNicknameUpdate: Date.now() + } }; const nextSpy = Sinon.spy(); const res = {}; @@ -96,12 +96,12 @@ describe("Middleware | Validators | discord actions", function () { it("should throw error when the lastNicknameUpdate timestamp is not present", async function () { const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); const req = { - body: {}, + body: {} }; await validateMemberRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); @@ -112,14 +112,14 @@ describe("Middleware | Validators | discord actions", function () { it("should throw error when the lastNicknameUpdate timestamp is not a string or timestamp", async function () { const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); const req = { body: { - lastNicknameUpdate: 112.45478, - }, + lastNicknameUpdate: 112.45478 + } }; await validateMemberRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); diff --git a/test/unit/middlewares/extension-request-validator.test.js b/test/unit/middlewares/extension-request-validator.test.js index 1d1d47299..e7ddaf670 100644 --- a/test/unit/middlewares/extension-request-validator.test.js +++ b/test/unit/middlewares/extension-request-validator.test.js @@ -14,8 +14,8 @@ describe("getExtensionRequestsValidator", function () { it("should pass validation for valid query parameters", async function () { const req = { query: { - q: "assignee:user123", - }, + q: "assignee:user123" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -31,8 +31,8 @@ describe("getExtensionRequestsValidator", function () { cursor: "value", order: "asc", size: 10, - q: "assignee:user123+user456", - }, + q: "assignee:user123+user456" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -45,8 +45,8 @@ describe("getExtensionRequestsValidator", function () { it("should pass validation for valid multiple keys and values of query parameters", async function () { const req = { query: { - q: "assignee:user123+user456,status:PENDING+APPROVED", - }, + q: "assignee:user123+user456,status:PENDING+APPROVED" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -59,13 +59,13 @@ describe("getExtensionRequestsValidator", function () { it("should not pass validation for invalid query parameters query string", async function () { const req = { query: { - q: "invalidkey:value", - }, + q: "invalidkey:value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); @@ -78,13 +78,13 @@ describe("getExtensionRequestsValidator", function () { it("should not pass validation for invalid query parameters", async function () { const req = { query: { - invalidParam: "value", - }, + invalidParam: "value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); diff --git a/test/unit/middlewares/external-accounts-validator.test.js b/test/unit/middlewares/external-accounts-validator.test.js index a06f291cb..58109471c 100644 --- a/test/unit/middlewares/external-accounts-validator.test.js +++ b/test/unit/middlewares/external-accounts-validator.test.js @@ -2,7 +2,7 @@ const Sinon = require("sinon"); const { externalAccountData, postExternalAccountsUsers, - linkDiscord, + linkDiscord } = require("../../../middlewares/validators/external-accounts"); const { EXTERNAL_ACCOUNTS_POST_ACTIONS } = require("../../../constants/external-accounts"); const { expect } = require("chai"); @@ -20,9 +20,9 @@ describe("Middleware | Validators | external accounts", function () { userAvatar: "some avatar", discordId: "some id", discordJoinedAt: "some date", - expiry: Date.now(), - }, - }, + expiry: Date.now() + } + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -32,12 +32,12 @@ describe("Middleware | Validators | external accounts", function () { it("stops the propogation of request to the next function", async function () { const req = { - body: {}, + body: {} }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await externalAccountData(req, res, nextSpy).catch((err) => { @@ -50,7 +50,7 @@ describe("Middleware | Validators | external accounts", function () { describe("postExternalAccountsUsers", function () { it("should be successful when valid query params are passed", async function () { const req = { - query: { action: EXTERNAL_ACCOUNTS_POST_ACTIONS.DISCORD_USERS_SYNC }, + query: { action: EXTERNAL_ACCOUNTS_POST_ACTIONS.DISCORD_USERS_SYNC } }; const res = {}; const nextSpy = Sinon.spy(); @@ -60,12 +60,12 @@ describe("Middleware | Validators | external accounts", function () { it("should be respond with bad request when invalid query params are passed", async function () { const req = { - query: { action: "abc" }, + query: { action: "abc" } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextSpy = Sinon.spy(); await postExternalAccountsUsers(req, res, nextSpy); diff --git a/test/unit/middlewares/fcmToken-validator.test.js b/test/unit/middlewares/fcmToken-validator.test.js index d7fe19f6a..de597e392 100644 --- a/test/unit/middlewares/fcmToken-validator.test.js +++ b/test/unit/middlewares/fcmToken-validator.test.js @@ -7,8 +7,8 @@ describe("Test the fcmToken validator", function () { it("Allows the request to pass", async function () { const req = { body: { - fcmToken: "some token", - }, + fcmToken: "some token" + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -19,13 +19,13 @@ describe("Test the fcmToken validator", function () { it("Stops the request to propogate to next", async function () { const req = { body: { - "": "", - }, + "": "" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await fcmTokenValidator(req, res, nextSpy); diff --git a/test/unit/middlewares/notify-validator.test.js b/test/unit/middlewares/notify-validator.test.js index 4adac8bfc..94e60b6a5 100644 --- a/test/unit/middlewares/notify-validator.test.js +++ b/test/unit/middlewares/notify-validator.test.js @@ -9,8 +9,8 @@ describe("Test the notify validator", function () { body: { title: "some title", body: "some body", - userId: "user id", - }, + userId: "user id" + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -23,8 +23,8 @@ describe("Test the notify validator", function () { body: { title: "some title", body: "some body", - groupRoleId: "group role id", - }, + groupRoleId: "group role id" + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -38,13 +38,13 @@ describe("Test the notify validator", function () { title: "some title", body: "some body", userId: "user id", - groupRoleId: "some role id", - }, + groupRoleId: "some role id" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await notifyValidator(req, res, nextSpy); @@ -54,13 +54,13 @@ describe("Test the notify validator", function () { it("Stops the request to propogate to next", async function () { const req = { body: { - "": "", - }, + "": "" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); await notifyValidator(req, res, nextSpy); diff --git a/test/unit/middlewares/qrCodeAuthValidator.test.js b/test/unit/middlewares/qrCodeAuthValidator.test.js index 434385e2b..6d9480a5d 100644 --- a/test/unit/middlewares/qrCodeAuthValidator.test.js +++ b/test/unit/middlewares/qrCodeAuthValidator.test.js @@ -2,7 +2,7 @@ const Sinon = require("sinon"); const { validateAuthStatus, storeUserDeviceInfo, - validateFetchingUserDocument, + validateFetchingUserDocument } = require("../../../middlewares/validators/qrCodeAuth"); const { expect } = require("chai"); const { userDeviceInfoDataArray } = require("../../fixtures/qrCodeAuth/qrCodeAuth"); @@ -11,8 +11,8 @@ describe("qrCodeAuth", function () { it("Allows request to pass on valid params", async function () { const req = { body: { - ...userDeviceInfoDataArray[0], - }, + ...userDeviceInfoDataArray[0] + } }; const res = {}; @@ -26,14 +26,14 @@ describe("qrCodeAuth", function () { const req = { body: { ...userDeviceInfoDataArray[0], - user_id: 12, - }, + user_id: 12 + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); @@ -46,8 +46,8 @@ describe("qrCodeAuth", function () { it("Allows request to pass on valid params", async function () { const req = { params: { - authorization_status: "AUTHORIZED", - }, + authorization_status: "AUTHORIZED" + } }; const res = {}; @@ -60,14 +60,14 @@ describe("qrCodeAuth", function () { it("Does not allow request to pass on invalid params", async function () { const req = { params: { - authorization_status: "OK", - }, + authorization_status: "OK" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); @@ -80,8 +80,8 @@ describe("qrCodeAuth", function () { it("Allows request to pass on valid params", async function () { const req = { query: { - device_id: "DEVICE_ID", - }, + device_id: "DEVICE_ID" + } }; const res = {}; @@ -95,14 +95,14 @@ describe("qrCodeAuth", function () { const req = { query: { user_id: "ID", - device_type: "DEVICE_TYPE", - }, + device_type: "DEVICE_TYPE" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); diff --git a/test/unit/middlewares/rateLimiting.test.js b/test/unit/middlewares/rateLimiting.test.js index 7ab6ea6d3..54befb989 100644 --- a/test/unit/middlewares/rateLimiting.test.js +++ b/test/unit/middlewares/rateLimiting.test.js @@ -5,11 +5,11 @@ const { commonRateLimiter } = require("../../../middlewares/rateLimiting"); function mockRequest(ipAddress) { return { headers: { - "x-forwarded-for": ipAddress, + "x-forwarded-for": ipAddress }, socket: { - remoteAddress: ipAddress, - }, + remoteAddress: ipAddress + } }; } diff --git a/test/unit/middlewares/security.test.js b/test/unit/middlewares/security.test.js index 9bf5cf509..14e7ff3b7 100644 --- a/test/unit/middlewares/security.test.js +++ b/test/unit/middlewares/security.test.js @@ -23,7 +23,7 @@ describe("CORS", function () { expect(res).to.have.status(200); expect(res.body).to.eql({}); expect(res.headers).to.include({ - "access-control-allow-origin": origin, + "access-control-allow-origin": origin }); return done(); @@ -46,7 +46,7 @@ describe("CORS", function () { expect(res).to.have.status(200); expect(res.body).to.eql({}); expect(res.headers).to.include({ - "access-control-allow-origin": origin, + "access-control-allow-origin": origin }); return done(); diff --git a/test/unit/middlewares/task-request.test.js b/test/unit/middlewares/task-request.test.js index d5910bddc..f45181e9d 100644 --- a/test/unit/middlewares/task-request.test.js +++ b/test/unit/middlewares/task-request.test.js @@ -7,7 +7,7 @@ describe("Middleware | Validators | Task Requests", function () { describe("Task Assignment Requests", function () { it("should not throw error when valid request body is passed", async function () { const req = { - body: data.validAssignmentRequest, + body: data.validAssignmentRequest }; const res = {}; const nextSpy = Sinon.spy(); @@ -17,7 +17,7 @@ describe("Middleware | Validators | Task Requests", function () { it("should not throw error when valid request body with description is passed", async function () { const req = { - body: data.assignmentReqWithDescription, + body: data.assignmentReqWithDescription }; const res = {}; const nextSpy = Sinon.spy(); @@ -27,7 +27,7 @@ describe("Middleware | Validators | Task Requests", function () { it("should not throw error when valid request body without external issue id is passed", async function () { const req = { - body: data.assignmentReqWithoutExtIssueId, + body: data.assignmentReqWithoutExtIssueId }; const res = {}; const nextSpy = Sinon.spy(); @@ -37,13 +37,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without proposed deadline is passed", async function () { const req = { - body: data.assignmentReqWithoutProposedDeadline, + body: data.assignmentReqWithoutProposedDeadline }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -53,13 +53,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without task id is passed", async function () { const req = { - body: data.assignmentReqWithoutTaskId, + body: data.assignmentReqWithoutTaskId }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -69,13 +69,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without used id is passed", async function () { const req = { - body: data.assignmentReqWithoutUserId, + body: data.assignmentReqWithoutUserId }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -87,7 +87,7 @@ describe("Middleware | Validators | Task Requests", function () { describe("Task Creation Requests", function () { it("should not throw error when valid request body is passed", async function () { const req = { - body: data.validCreationRequest, + body: data.validCreationRequest }; const res = {}; const nextSpy = Sinon.spy(); @@ -97,7 +97,7 @@ describe("Middleware | Validators | Task Requests", function () { it("should not throw error when valid request body with description is passed", async function () { const req = { - body: data.creationReqWithDescription, + body: data.creationReqWithDescription }; const res = {}; const nextSpy = Sinon.spy(); @@ -107,13 +107,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without external issue id is passed", async function () { const req = { - body: data.creationReqWithoutExtIssueId, + body: data.creationReqWithoutExtIssueId }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -123,13 +123,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without proposed deadline is passed", async function () { const req = { - body: data.creationReqWithoutProposedDeadline, + body: data.creationReqWithoutProposedDeadline }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -139,13 +139,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without used id is passed", async function () { const req = { - body: data.creationReqWithoutUserId, + body: data.creationReqWithoutUserId }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -156,13 +156,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when invalid request body is passed", async function () { const req = { - body: data.invalidRequest, + body: data.invalidRequest }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -183,8 +183,8 @@ describe("Middleware | Validators | Task Requests", function () { it("should pass validation for valid query parameters", async function () { const req = { query: { - q: "status:approved", - }, + q: "status:approved" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -195,8 +195,8 @@ describe("Middleware | Validators | Task Requests", function () { it("should pass validation for valid query parameters with multiple keys and values", async function () { const req = { query: { - q: "status:approved request-type:assignment", - }, + q: "status:approved request-type:assignment" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -207,8 +207,8 @@ describe("Middleware | Validators | Task Requests", function () { it("should pass validation for valid sort query parameters", async function () { const req = { query: { - q: "sort:created-desc", - }, + q: "sort:created-desc" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -222,8 +222,8 @@ describe("Middleware | Validators | Task Requests", function () { dev: "true", next: "id", size: "20", - q: "status:pending request-type:creation status:denied sort:created-desc", - }, + q: "status:pending request-type:creation status:denied sort:created-desc" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -235,13 +235,13 @@ describe("Middleware | Validators | Task Requests", function () { const req = { query: { next: "value", - prev: "value", - }, + prev: "value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -252,13 +252,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation when next is passed without size", async function () { const req = { query: { - next: "value", - }, + next: "value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -269,13 +269,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation when prev is passed without size", async function () { const req = { query: { - prev: "value", - }, + prev: "value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -286,13 +286,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation for invalid query parameters", async function () { const req = { query: { - invalidParam: "value", - }, + invalidParam: "value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -303,13 +303,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation for invalid query parameters in RQL format", async function () { const req = { query: { - q: "invalidKey:value", - }, + q: "invalidKey:value" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -320,13 +320,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation for invalid sort query parameters", async function () { const req = { query: { - q: "status:approved sort:af:sdv", - }, + q: "status:approved sort:af:sdv" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); diff --git a/test/unit/middlewares/tasks-validator.test.js b/test/unit/middlewares/tasks-validator.test.js index 89676d674..042ac1afb 100644 --- a/test/unit/middlewares/tasks-validator.test.js +++ b/test/unit/middlewares/tasks-validator.test.js @@ -4,7 +4,7 @@ const { createTask, updateSelfTask, getUsersValidator, - updateTask: updateTaskValidator, + updateTask: updateTaskValidator } = require("../../../middlewares/validators/tasks"); const { expect } = require("chai"); const { TASK_STATUS, tasksUsersStatus } = require("../../../constants/tasks"); @@ -21,8 +21,8 @@ describe("getTasks validator", function () { it("should pass the request when dev query param value is boolean", async function () { const req = { query: { - dev: true, - }, + dev: true + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -33,8 +33,8 @@ describe("getTasks validator", function () { it("should pass the request when dev query param has a boolean value of type string", async function () { const req = { query: { - dev: "true", - }, + dev: "true" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -45,13 +45,13 @@ describe("getTasks validator", function () { it("should not pass the request when dev query param value is not a boolean value", async function () { const req = { query: { - dev: "yes", - }, + dev: "yes" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -62,8 +62,8 @@ describe("getTasks validator", function () { it("should pass the request when status query param has a valid task status value", async function () { const req = { query: { - status: "DONE", - }, + status: "DONE" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -74,8 +74,8 @@ describe("getTasks validator", function () { it("should pass the request when status query param has a case-insensitive valid task status value", async function () { const req = { query: { - status: "done", - }, + status: "done" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -86,13 +86,13 @@ describe("getTasks validator", function () { it("should not pass the request when status query param has an invalid task status value", async function () { const req = { query: { - status: "testing_in_progress", - }, + status: "testing_in_progress" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -103,8 +103,8 @@ describe("getTasks validator", function () { const req = { query: { status: "in_progress", - dev: true, - }, + dev: true + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -116,13 +116,13 @@ describe("getTasks validator", function () { const req = { query: { status: "in_progress", - dev: "no", - }, + dev: "no" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -133,13 +133,13 @@ describe("getTasks validator", function () { const req = { query: { status: "testing_in_progress", - dev: "false", - }, + dev: "false" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -149,13 +149,13 @@ describe("getTasks validator", function () { it("should not pass the request when an invalid query param is passed", async function () { const req = { query: { - sort: "asc", - }, + sort: "asc" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -165,13 +165,13 @@ describe("getTasks validator", function () { it("should not pass the request when an insensitive dev query param value is passed", async function () { const req = { query: { - dev: "True", - }, + dev: "True" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -182,13 +182,13 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - page: -1, - }, + page: -1 + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -199,8 +199,8 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - page: 0, - }, + page: 0 + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -212,13 +212,13 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - size: 0, - }, + size: 0 + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -229,13 +229,13 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - size: 120, - }, + size: 120 + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -246,8 +246,8 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - size: 3, - }, + size: 3 + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -260,13 +260,13 @@ describe("getTasks validator", function () { query: { dev: "true", next: "nextId", - page: 0, - }, + page: 0 + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -278,13 +278,13 @@ describe("getTasks validator", function () { query: { dev: "true", prev: "prevId", - page: 0, - }, + page: 0 + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -296,13 +296,13 @@ describe("getTasks validator", function () { query: { dev: "true", next: "nextId", - prev: "prevId", - }, + prev: "prevId" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -315,8 +315,8 @@ describe("getTasks validator", function () { dev: "true", size: 3, next: "nextId", - status: TASK_STATUS.ASSIGNED, - }, + status: TASK_STATUS.ASSIGNED + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -330,8 +330,8 @@ describe("getTasks validator", function () { dev: "true", size: 3, prev: "prevId", - status: TASK_STATUS.ASSIGNED, - }, + status: TASK_STATUS.ASSIGNED + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -345,8 +345,8 @@ describe("getTasks validator", function () { dev: "true", size: 3, page: 0, - status: TASK_STATUS.ASSIGNED, - }, + status: TASK_STATUS.ASSIGNED + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -361,8 +361,8 @@ describe("getTasks validator", function () { size: 3, page: 0, status: TASK_STATUS.ASSIGNED, - q: "searchterm:apple", - }, + q: "searchterm:apple" + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -377,15 +377,15 @@ describe("getTasks validator", function () { size: 3, page: 0, status: TASK_STATUS.ASSIGNED, - q: "invalidkey:value", - }, + q: "invalidkey:value" + } }; const res = { boom: { badRequest: (message) => { expect(message).to.equal('"q" contains an invalid value'); - }, - }, + } + } }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -398,8 +398,8 @@ describe("getTasks validator", function () { dev: "true", assignee: "assignee", title: "title", - status: TASK_STATUS.ASSIGNED, - }, + status: TASK_STATUS.ASSIGNED + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -413,18 +413,18 @@ describe("getTasks validator", function () { type: "Feature", status: TASK_STATUS.ASSIGNED, priority: "High", - percentCompleted: 0, + percentCompleted: 0 }; const req = { - body: validRequestBody, + body: validRequestBody }; const res = { boom: { badRequest: (message) => { throw new Error(message); - }, - }, + } + } }; const nextMiddlewareSpy = Sinon.spy(); @@ -441,14 +441,14 @@ describe("getTasks validator", function () { it("should return a bad request error when empty request body is provided", async function () { const invalidRequestBody = {}; const req = { - body: invalidRequestBody, + body: invalidRequestBody }; const res = { boom: { badRequest: (message) => { return message; - }, - }, + } + } }; const nextMiddlewareSpy = Sinon.spy(); @@ -472,20 +472,20 @@ describe("getTasks validator", function () { percentCompleted: 0, github: { issue: { - html_url: "https://github.com/issue-url", - }, - }, + html_url: "https://github.com/issue-url" + } + } }; const req = { - body: validRequestBody, + body: validRequestBody }; const res = { boom: { badRequest: (message) => { return message; - }, - }, + } + } }; const nextMiddlewareSpy = Sinon.spy(); @@ -507,19 +507,19 @@ describe("getTasks validator", function () { percentCompleted: 0, github: { issue: { - html_url: "invalid-url", - }, - }, + html_url: "invalid-url" + } + } }; const req = { - body: invalidRequestBody, + body: invalidRequestBody }; const res = { boom: { badRequest: (message) => { return message; - }, - }, + } + } }; const nextMiddlewareSpy = Sinon.spy(); try { @@ -535,8 +535,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: null, - endsOn: new Date().getTime(), - }, + endsOn: new Date().getTime() + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -548,8 +548,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: new Date().getTime(), - endsOn: null, - }, + endsOn: null + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -561,8 +561,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: null, - endsOn: null, - }, + endsOn: null + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -574,8 +574,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: new Date("2023-11-15").getTime(), - endsOn: new Date("2023-11-18").getTime(), - }, + endsOn: new Date("2023-11-18").getTime() + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -587,8 +587,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: "December 6 2023", - endsOn: new Date().getTime(), - }, + endsOn: new Date().getTime() + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -600,8 +600,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: new Date().getTime(), - endsOn: true, - }, + endsOn: true + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -613,8 +613,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: "December 6 2023", - endsOn: true, - }, + endsOn: true + } }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -628,8 +628,8 @@ describe("getTasks validator", function () { query: { size: 10, cursor: "someCursor", - q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun`, - }, + q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun` + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -642,8 +642,8 @@ describe("getTasks validator", function () { query: { size: 10, cursor: "someCursor", - q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun -weekday:mon`, - }, + q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun -weekday:mon` + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -654,8 +654,8 @@ describe("getTasks validator", function () { it("should pass the request when only required query parameters are provided", async function () { const req = { query: { - q: `status:${tasksUsersStatus.MISSED_UPDATES}`, - }, + q: `status:${tasksUsersStatus.MISSED_UPDATES}` + } }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -666,13 +666,13 @@ describe("getTasks validator", function () { it("should not pass validation when invalid query parameters are provided", async function () { const req = { query: { - invalidParam: "someValue", - }, + invalidParam: "someValue" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getUsersValidator(req, res, nextMiddlewareSpy); @@ -683,13 +683,13 @@ describe("getTasks validator", function () { it("should not pass validation when required parameters are missing", async function () { const req = { query: { - size: "someQuery", - }, + size: "someQuery" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getUsersValidator(req, res, nextMiddlewareSpy); @@ -700,13 +700,13 @@ describe("getTasks validator", function () { it("should not pass validation when invalid filter parameters are provided", async function () { const req = { query: { - q: "date:invalidOperator:2023-01-01", - }, + q: "date:invalidOperator:2023-01-01" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await getUsersValidator(req, res, nextMiddlewareSpy); @@ -719,13 +719,13 @@ describe("getTasks validator", function () { it("should not pass the request when status is AVAILABLE", async function () { const req = { body: { - status: "AVAILABLE", - }, + status: "AVAILABLE" + } }; const res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; const nextMiddlewareSpy = Sinon.spy(); await updateSelfTask(req, res, nextMiddlewareSpy); diff --git a/test/unit/middlewares/tasks.test.js b/test/unit/middlewares/tasks.test.js index fe738904e..c3474fcfb 100644 --- a/test/unit/middlewares/tasks.test.js +++ b/test/unit/middlewares/tasks.test.js @@ -9,8 +9,8 @@ describe("updateTask function", function () { // Helper function to create a response object with a mocked boom function const createResponse = () => ({ boom: { - badRequest: sinon.stub().returns({ error: true, message: "Bad Request" }), - }, + badRequest: sinon.stub().returns({ error: true, message: "Bad Request" }) + } }); // Helper function to create a next function that simply calls done @@ -27,7 +27,7 @@ describe("updateTask function", function () { type: "Sample Type", status: "active", isNoteworthy: true, - isCollapsed: false, + isCollapsed: false }; const req = createRequest(validRequestBody); @@ -49,7 +49,7 @@ describe("updateTask function", function () { status: "invalid_status", isNoteworthy: "yes", isCollapsed: "no", - assignee: "", + assignee: "" }; const req = createRequest(invalidRequestBody); diff --git a/test/unit/middlewares/user-validator.test.js b/test/unit/middlewares/user-validator.test.js index a36279a09..a4250cbd1 100644 --- a/test/unit/middlewares/user-validator.test.js +++ b/test/unit/middlewares/user-validator.test.js @@ -9,7 +9,7 @@ describe("Middleware | Validators | User", function () { describe("Create user validator for validateJoinData", function () { it("lets the request pass to next", async function () { const req = { - body: joinData[0], + body: joinData[0] }; const res = {}; @@ -21,13 +21,13 @@ describe("Middleware | Validators | User", function () { it("Stops the propagation of the next", async function () { const req = { body: { - firstName: "Neha", - }, + firstName: "Neha" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await validateJoinData(req, res, nextSpy).catch((err) => { @@ -43,8 +43,8 @@ describe("Middleware | Validators | User", function () { const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const next = sinon.spy(); @@ -55,8 +55,8 @@ describe("Middleware | Validators | User", function () { it("should call the next for api nonVerifiedDiscordUsers", async function () { const req = { body: { - action: "nonVerifiedDiscordUsers", - }, + action: "nonVerifiedDiscordUsers" + } }; const res = {}; @@ -69,14 +69,14 @@ describe("Middleware | Validators | User", function () { it("should stop the propagation of next", async function () { const req = { body: { - action: "", - }, + action: "" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const next = sinon.spy(); @@ -90,7 +90,7 @@ describe("Middleware | Validators | User", function () { describe("Create user validator for updateUser", function () { it("lets the request pass to next", async function () { const req = { - body: userData[1], + body: userData[1] }; const res = {}; @@ -103,9 +103,9 @@ describe("Middleware | Validators | User", function () { const req = { body: { roles: { - maven: true, - }, - }, + maven: true + } + } }; const res = {}; @@ -119,14 +119,14 @@ describe("Middleware | Validators | User", function () { body: { roles: { in_discord: false, - developer: true, - }, - }, + developer: true + } + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -141,13 +141,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "@invalidusername-12", - twitter_id: "abhayisawesome", - }, + twitter_id: "abhayisawesome" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -162,13 +162,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "invalidusername", - twitter_id: "@abhayisawesome", - }, + twitter_id: "@abhayisawesome" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -183,13 +183,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "invalidusername", - twitter_id: "abhayisawesome", - }, + twitter_id: "abhayisawesome" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -204,13 +204,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "invalidusername", - instagram_id: "@abhayisawesome", - }, + instagram_id: "@abhayisawesome" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -226,13 +226,13 @@ describe("Middleware | Validators | User", function () { first_name: "Abhay", username: "invalidusername12", twitter_id: "abhayisawesome", - linkedin_id: "@abhay2011", - }, + linkedin_id: "@abhay2011" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -248,13 +248,13 @@ describe("Middleware | Validators | User", function () { first_name: "Abhay", username: "invalidusername12", twitter_id: "abhayisawesome", - linkedin_id: "abhay 2011", - }, + linkedin_id: "abhay 2011" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -266,16 +266,16 @@ describe("Middleware | Validators | User", function () { it("Allows a valid username", async function () { const req = { body: { - username: "john-doe", - }, + username: "john-doe" + } }; const res = { boom: { badRequest: (message) => { throw new Error(message); - }, - }, + } + } }; const next = sinon.spy(); @@ -288,14 +288,14 @@ describe("Middleware | Validators | User", function () { it("Stops the propagation of next for an invalid username", async function () { const req = { body: { - username: "@john_doe", - }, + username: "@john_doe" + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); @@ -313,8 +313,8 @@ describe("Middleware | Validators | User", function () { const req = { query: { filterBy: "unmerged_prs", - days: "30", - }, + days: "30" + } }; const res = {}; @@ -327,14 +327,14 @@ describe("Middleware | Validators | User", function () { it("Stops the propagation of the next", async function () { const req = { query: { - filterBy: 45, - }, + filterBy: 45 + } }; const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = sinon.spy(); diff --git a/test/unit/middlewares/userStatusValidator.js b/test/unit/middlewares/userStatusValidator.js index 4635ea393..3b1a9e74a 100644 --- a/test/unit/middlewares/userStatusValidator.js +++ b/test/unit/middlewares/userStatusValidator.js @@ -8,8 +8,8 @@ describe("Middleware | Validators | userStatus", function () { const res = {}; const req = { query: { - state: "IDLE", - }, + state: "IDLE" + } }; const nextSpy = Sinon.spy(); await validateGetQueryParams(req, res, nextSpy); @@ -24,14 +24,14 @@ describe("Middleware | Validators | userStatus", function () { it("stops the propogation of the event to next function", async function () { const res = { boom: { - badRequest: () => {}, - }, + badRequest: () => {} + } }; const nextSpy = Sinon.spy(); const req = { query: { - taskStatus: "invalidKey", - }, + taskStatus: "invalidKey" + } }; await validateGetQueryParams(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); diff --git a/test/unit/middlewares/userStatusValidator.test.js b/test/unit/middlewares/userStatusValidator.test.js index 19974dcb7..fa35dcb77 100644 --- a/test/unit/middlewares/userStatusValidator.test.js +++ b/test/unit/middlewares/userStatusValidator.test.js @@ -10,8 +10,8 @@ describe("Validation Tests for Cancel OOO", function () { beforeEach(function () { res = { boom: { - badRequest: Sinon.spy(), - }, + badRequest: Sinon.spy() + } }; nextSpy = Sinon.spy(); }); @@ -19,8 +19,8 @@ describe("Validation Tests for Cancel OOO", function () { it("should validate for a valid request", async function () { req = { body: { - cancelOoo: true, - }, + cancelOoo: true + } }; await validateUserStatus(req, res, nextSpy); expect(nextSpy.calledOnce).to.be.equal(true); @@ -29,8 +29,8 @@ describe("Validation Tests for Cancel OOO", function () { it("should not validate for an invalid request", async function () { const req = { body: { - cancelOoo: "not a boolean", - }, + cancelOoo: "not a boolean" + } }; try { await validateUserStatus(req, res, nextSpy); diff --git a/test/unit/middlewares/users-validator.test.js b/test/unit/middlewares/users-validator.test.js index d01359507..e6133c542 100644 --- a/test/unit/middlewares/users-validator.test.js +++ b/test/unit/middlewares/users-validator.test.js @@ -6,8 +6,8 @@ describe("Test the roles update validator", function () { it("Allows the request to pass with member property", async function () { const req = { body: { - member: true, - }, + member: true + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -19,8 +19,8 @@ describe("Test the roles update validator", function () { const req = { query: { state: "ONBOARDING", - time: "31d", - }, + time: "31d" + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -31,8 +31,8 @@ describe("Test the roles update validator", function () { it("Allows the request to pass with archived property", async function () { const req = { body: { - archived: true, - }, + archived: true + } }; const res = {}; const nextSpy = Sinon.spy(); @@ -45,13 +45,13 @@ describe("Test the roles update validator", function () { body: { member: true, archived: true, - reason: "test reason", - }, + reason: "test reason" + } }; const res = { boom: { - badRequest: Sinon.stub().returns("Bad Request"), - }, + badRequest: Sinon.stub().returns("Bad Request") + } }; const nextSpy = Sinon.spy(); await validateUpdateRoles(req, res, nextSpy); @@ -60,12 +60,12 @@ describe("Test the roles update validator", function () { it("Throws an error if neither member nor archived properties are present", async function () { const req = { - body: {}, + body: {} }; const res = { boom: { - badRequest: Sinon.stub().returns("Bad Request"), - }, + badRequest: Sinon.stub().returns("Bad Request") + } }; const nextSpy = Sinon.spy(); await validateUpdateRoles(req, res, nextSpy); diff --git a/test/unit/models/auctions.test.js b/test/unit/models/auctions.test.js index 1b74b4cca..1528d83c1 100644 --- a/test/unit/models/auctions.test.js +++ b/test/unit/models/auctions.test.js @@ -91,7 +91,7 @@ describe("auctions", function () { initialPrice, itemType, endTime: Date.now() - 60 * 60 * 1000, - quantity, + quantity }); const response = await auctions.fetchAvailableAuctions(); diff --git a/test/unit/models/challenges.test.js b/test/unit/models/challenges.test.js index 64362e06d..c61780e03 100644 --- a/test/unit/models/challenges.test.js +++ b/test/unit/models/challenges.test.js @@ -35,11 +35,11 @@ describe("Challenges", function () { expect(data.start_date).to.be.deep.equal({ _seconds: challengeData.start_date, - _nanoseconds: 0, + _nanoseconds: 0 }); expect(data.end_date).to.be.deep.equal({ _seconds: challengeData.end_date, - _nanoseconds: 0, + _nanoseconds: 0 }); }); }); diff --git a/test/unit/models/discordactions.test.js b/test/unit/models/discordactions.test.js index b95ce28b0..963e6574a 100644 --- a/test/unit/models/discordactions.test.js +++ b/test/unit/models/discordactions.test.js @@ -30,7 +30,7 @@ const { getMissedProgressUpdatesUsers, addInviteToInviteModel, getUserDiscordInvite, - groupUpdateLastJoinDate, + groupUpdateLastJoinDate } = require("../../../models/discordactions"); const { groupData, roleData, existingRole, memberGroupData } = require("../../fixtures/discordactions/discordactions"); const cleanDb = require("../../utils/cleanDb"); @@ -80,7 +80,7 @@ describe("discordactions", function () { beforeEach(function () { getStub = sinon.stub(discordRoleModel, "get").resolves({ - forEach: (callback) => groupData.forEach(callback), + forEach: (callback) => groupData.forEach(callback) }); }); @@ -184,7 +184,7 @@ describe("discordactions", function () { it("should add role to member and return success", async function () { getStub.resolves({ - empty: true, + empty: true }); addStub.resolves(); @@ -202,8 +202,8 @@ describe("discordactions", function () { getStub.returns({ limit: sinon.stub().resolves({ empty: false, - forEach: callbackFunction, - }), + forEach: callbackFunction + }) }); const result = await addGroupRoleToMember(roleData); delete result.id; @@ -214,7 +214,7 @@ describe("discordactions", function () { it("should throw an error if adding role fails", async function () { const error = new Error("Database error"); getStub.resolves({ - empty: true, + empty: true }); addStub.rejects(error); @@ -237,7 +237,7 @@ describe("discordactions", function () { deleteStub = sinon.stub(); sinon.stub(memberRoleModel, "doc").returns({ - delete: deleteStub.resolves(), + delete: deleteStub.resolves() }); }); @@ -300,8 +300,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + json: () => Promise.resolve({ user: { avatar: 12345 } }) + }) ); const result = await updateDiscordImageForVerification(userDiscordId); @@ -313,8 +313,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + json: () => Promise.resolve({ user: { avatar: 12345 } }) + }) ); try { @@ -331,8 +331,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + json: () => Promise.resolve({ user: { avatar: 12345 } }) + }) ); sinon.stub(logger, "error"); @@ -357,21 +357,21 @@ describe("discordactions", function () { newGroupData = groupData.map((group, index) => { return { ...group, - createdBy: allIds[Math.min(index, allIds.length - 1)], + createdBy: allIds[Math.min(index, allIds.length - 1)] }; }); const addRolesPromises = [ discordRoleModel.add(newGroupData[0]), discordRoleModel.add(newGroupData[1]), - discordRoleModel.add(newGroupData[2]), + discordRoleModel.add(newGroupData[2]) ]; await Promise.all(addRolesPromises); const addGroupRolesPromises = [ addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[0].discordId }), addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[1].discordId }), - addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }), + addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }) ]; await Promise.all(addGroupRolesPromises); }); @@ -400,7 +400,7 @@ describe("discordactions", function () { firstName: userData[0].first_name, lastName: userData[0].last_name, image: userData[0].picture.url, - isMember: true, + isMember: true }); expect(result[1]).to.deep.equal({ @@ -409,7 +409,7 @@ describe("discordactions", function () { firstName: userData[1].first_name, lastName: userData[1].last_name, image: userData[1].picture.url, - isMember: true, + isMember: true }); expect(result[2]).to.deep.equal({ @@ -418,7 +418,7 @@ describe("discordactions", function () { firstName: userData[2].first_name, lastName: userData[2].last_name, image: userData[2].picture.url, - isMember: false, + isMember: false }); }); }); @@ -434,7 +434,7 @@ describe("discordactions", function () { return addGroupRoleToMember({ roleid: roleId, userid: index, - date: admin.firestore.Timestamp.fromDate(new Date()), + date: admin.firestore.Timestamp.fromDate(new Date()) }); }); await Promise.all(addGroupRolesPromises); @@ -478,8 +478,8 @@ describe("discordactions", function () { dataAccessLayerStub.withArgs(sinon.match({ id })).resolves({ user: { username, - discordId, - }, + discordId + } }); }); }); @@ -528,8 +528,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(fetchStubResponse), - }), + json: () => Promise.resolve(fetchStubResponse) + }) ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -537,7 +537,7 @@ describe("discordactions", function () { const responseObj = { totalUsersStatus: length, successfulNicknameUpdates: length, - unsuccessfulNicknameUpdates: 0, + unsuccessfulNicknameUpdates: 0 }; const response = await updateUsersNicknameStatus(lastTimestamp); @@ -554,8 +554,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(fetchStubResponse), - }), + json: () => Promise.resolve(fetchStubResponse) + }) ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -576,8 +576,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(fetchStubResponse), - }), + json: () => Promise.resolve(fetchStubResponse) + }) ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -617,20 +617,20 @@ describe("discordactions", function () { const { idleStatus: idleUserStatus, activeStatus: activeUserStatus, - userStatusDataForOooState: oooUserStatus, + userStatusDataForOooState: oooUserStatus } = userStatusData; const userIdList = await Promise.all([ await addUser(idleUser), // idle user with no task progress updates await addUser(activeUserWithProgressUpdates), // active user with task progress updates await addUser(activeUserWithNoUpdates), // active user with no task progress updates - await addUser(userNotInDiscord), // OOO user with no task progress updates + await addUser(userNotInDiscord) // OOO user with no task progress updates ]); activeUserId = userIdList[2]; await Promise.all([ await userStatusModel.updateUserStatus(userIdList[0], idleUserStatus), await userStatusModel.updateUserStatus(userIdList[1], activeUserStatus), await userStatusModel.updateUserStatus(userIdList[2], activeUserStatus), - await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus), + await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus) ]); const tasksPromise = []; @@ -642,7 +642,7 @@ describe("discordactions", function () { assignee: userIdList[index], startedOn: (new Date().getTime() - convertDaysToMilliseconds(7)) / 1000, endsOn: (new Date().getTime() + convertDaysToMilliseconds(4)) / 1000, - status: TASK_STATUS.IN_PROGRESS, + status: TASK_STATUS.IN_PROGRESS }; tasksPromise.push(tasksModel.add(validTask)); @@ -673,7 +673,7 @@ describe("discordactions", function () { expect(result).to.be.deep.equal({ tasks: 4, missedUpdatesTasks: 3, - usersToAddRole: [activeUserWithProgressUpdates.discordId], + usersToAddRole: [activeUserWithProgressUpdates.discordId] }); }); @@ -694,25 +694,25 @@ describe("discordactions", function () { const date4 = new Date(); date4.setDate(date4.getDate() - 4); const result = await getMissedProgressUpdatesUsers({ - excludedDates: [date.valueOf(), date2.valueOf(), date3.valueOf(), date4.valueOf()], + excludedDates: [date.valueOf(), date2.valueOf(), date3.valueOf(), date4.valueOf()] }); expect(result).to.be.an("object"); expect(result).to.be.deep.equal({ tasks: 4, missedUpdatesTasks: 0, - usersToAddRole: [], + usersToAddRole: [] }); }); it("should not list of users when all days of week are excluded", async function () { const result = await getMissedProgressUpdatesUsers({ - excludedDays: [0, 1, 2, 3, 4, 5, 6], + excludedDays: [0, 1, 2, 3, 4, 5, 6] }); expect(result).to.be.an("object"); expect(result).to.be.deep.equal({ tasks: 0, missedUpdatesTasks: 0, - usersToAddRole: [], + usersToAddRole: [] }); }); @@ -729,13 +729,13 @@ describe("discordactions", function () { const result = await getMissedProgressUpdatesUsers({ excludedDays: [0, 1, 2, 3, 4, 5], - dateGap: 3, + dateGap: 3 }); expect(result).to.be.an("object"); expect(result).to.be.deep.equal({ tasks: 5, missedUpdatesTasks: 0, - usersToAddRole: [], + usersToAddRole: [] }); }); @@ -788,7 +788,7 @@ describe("discordactions", function () { describe("groupUpdateLastJoinDate", function () { beforeEach(function () { sinon.stub(discordRoleModel, "doc").returns({ - set: Promise.resolve(), + set: Promise.resolve() }); }); diff --git a/test/unit/models/events.test.js b/test/unit/models/events.test.js index f33d7e1ad..196e4ecde 100644 --- a/test/unit/models/events.test.js +++ b/test/unit/models/events.test.js @@ -49,7 +49,7 @@ describe("Events", function () { await eventQuery.endActiveEvent({ id: docRef.id, reason: "test reason", - lock: true, + lock: true }); const docSnapshot = await eventModel.doc(docRef.id).get(); @@ -74,7 +74,7 @@ describe("Events", function () { name: "NonExistingPeer", eventId: docRef.id, role: "participant", - joinedAt: new Date(), + joinedAt: new Date() }; const result = await eventQuery.addPeerToEvent(peerData); @@ -96,13 +96,13 @@ describe("Events", function () { name: "ExistingPeer", eventId: docRef.id, role: "participant", - joinedAt: new Date(), + joinedAt: new Date() }; await peerModel.add({ peerId: peerData.peerId, name: peerData.name, - joinedEvents: [], + joinedEvents: [] }); await eventQuery.addPeerToEvent(peerData); @@ -123,7 +123,7 @@ describe("Events", function () { code: "test-code", role: "maven", event_id: eventDocRef.id, - id: "test-id", + id: "test-id" }; const result = await eventQuery.createEventCode(eventCodeData); @@ -141,14 +141,14 @@ describe("Events", function () { code: "test-code-1", role: "maven", event_id: eventDocRef.id, - id: "test-id-1", + id: "test-id-1" }; const eventCodeDataSecond = { code: "test-code-2", role: "maven", event_id: eventDocRef.id, - id: "test-id-2", + id: "test-id-2" }; await eventQuery.createEventCode(eventCodeDataFirst); @@ -198,7 +198,7 @@ describe("Events", function () { name: "Satyam Bajpai", eventId: docRef.id, role: "guest", - joinedAt: new Date(), + joinedAt: new Date() }; await eventQuery.addPeerToEvent(peerData); diff --git a/test/unit/models/external-accounts.test.js b/test/unit/models/external-accounts.test.js index 93b9a79b0..e09452a19 100644 --- a/test/unit/models/external-accounts.test.js +++ b/test/unit/models/external-accounts.test.js @@ -37,7 +37,7 @@ describe("External Accounts", function () { expiry: externalAccountData[2].attributes.expiry, userName: externalAccountData[2].attributes.userName, discriminator: externalAccountData[2].attributes.discriminator, - userAvatar: externalAccountData[2].attributes.userAvatar, + userAvatar: externalAccountData[2].attributes.userAvatar }); }); diff --git a/test/unit/models/logs.test.js b/test/unit/models/logs.test.js index d0840d508..866c3dd13 100644 --- a/test/unit/models/logs.test.js +++ b/test/unit/models/logs.test.js @@ -105,7 +105,7 @@ describe("Logs", function () { it("Should fetch all archived logs for given user_id", async function () { const { type, meta, body } = logsData.archivedUserDetailsModal[0]; const query = { - userId: body.archived_user.user_id, + userId: body.archived_user.user_id }; await logsQuery.addLog(type, meta, body); const data = await logsQuery.fetchLogs(query, type); @@ -120,7 +120,7 @@ describe("Logs", function () { it("Should throw response status 404, if username is incorrect in the query", async function () { const { type, meta, body } = logsData.archivedUserDetailsModal[0]; const query = { - userId: "1234_test", // incorrect username + userId: "1234_test" // incorrect username }; await logsQuery.addLog(type, meta, body); const data = await logsQuery.fetchLogs(query, type); diff --git a/test/unit/models/qrCodeAuth.test.js b/test/unit/models/qrCodeAuth.test.js index 2b961fa46..1ef51ee65 100644 --- a/test/unit/models/qrCodeAuth.test.js +++ b/test/unit/models/qrCodeAuth.test.js @@ -25,7 +25,7 @@ describe("mobile auth", function () { const userDeviceInfoData = { ...userDeviceInfoDataArray[0], user_id: userId, - authorization_status: "NOT_INIT", + authorization_status: "NOT_INIT" }; const response = await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); @@ -34,7 +34,7 @@ describe("mobile auth", function () { user_id: userID, device_info: deviceInfo, device_id: deviceId, - authorization_status: authorizationStatus, + authorization_status: authorizationStatus } = response.userDeviceInfoData; const data = (await qrCodeAuthModel.doc(userID).get()).data(); @@ -58,7 +58,7 @@ describe("mobile auth", function () { user_id: userId, device_info: "TEST_DEVICE_INFO", device_id: "TEST_DEVICE_ID", - authorization_status: "NOT_INIT", + authorization_status: "NOT_INIT" }; await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); const response = await qrCodeAuth.updateStatus(userId, "AUTHORIZED"); @@ -89,7 +89,7 @@ describe("mobile auth", function () { ...userDeviceInfoDataArray[0], user_id: userId, authorization_status: "NOT_INIT", - access_token: "ACCESS_TOKEN", + access_token: "ACCESS_TOKEN" }; await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); @@ -100,7 +100,7 @@ describe("mobile auth", function () { device_info: deviceInfo, device_id: deviceId, authorization_status: authorizationStatus, - access_token: accessToken, + access_token: accessToken } = userDeviceInfo; const data = (await qrCodeAuthModel.doc(userId).get()).data(); @@ -127,7 +127,7 @@ describe("mobile auth", function () { ...userDeviceInfoDataArray[0], user_id: userId, authorization_status: "NOT_INIT", - access_token: "ACCESS_TOKEN", + access_token: "ACCESS_TOKEN" }; await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); @@ -138,7 +138,7 @@ describe("mobile auth", function () { device_info: deviceInfo, device_id: deviceId, authorization_status: authorizationStatus, - access_token: accessToken, + access_token: accessToken } = userDeviceInfo; const data = (await qrCodeAuthModel.doc(userId).get()).data(); diff --git a/test/unit/models/recruiters.test.js b/test/unit/models/recruiters.test.js index ef5856e65..e08e1ca8e 100644 --- a/test/unit/models/recruiters.test.js +++ b/test/unit/models/recruiters.test.js @@ -31,7 +31,7 @@ describe("Recruiters", function () { // Add recruiter data const { recruiterId, recruiterName, userInfo, timestamp } = await recruiters.addRecruiterInfo( recruiterData, - username, + username ); const data = (await recruiterModel.doc(recruiterId).get()).data(); diff --git a/test/unit/models/task-requests.test.js b/test/unit/models/task-requests.test.js index 74934f61e..3f335dbf1 100644 --- a/test/unit/models/task-requests.test.js +++ b/test/unit/models/task-requests.test.js @@ -9,12 +9,12 @@ const { addNewFields, removeOldField, addUsersCountAndCreatedAt, - rejectTaskRequest, + rejectTaskRequest } = require("./../../../models/taskRequests"); const { TASK_REQUEST_TYPE, TASK_REQUEST_STATUS, - TASK_REQUEST_ERROR_MESSAGE, + TASK_REQUEST_ERROR_MESSAGE } = require("./../../../constants/taskRequests"); const mockData = require("../../fixtures/task-requests/task-requests"); @@ -56,8 +56,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled, - }, + markdownEnabled: requestData.markdownEnabled + } ]); expect(addedTaskRequest.createdBy).to.equal(authenticatedUsername); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -76,7 +76,7 @@ describe("Task requests | models", function () { expect(addedTaskRequest).to.not.be.equal(undefined); expect(addedTaskRequest.requestors).to.deep.equal([ ...mockData.existingTaskRequest.requestors, - requestData.userId, + requestData.userId ]); expect(addedTaskRequest.status).to.equal(TASK_REQUEST_STATUS.PENDING); expect(addedTaskRequest.taskTitle).to.not.be.equal(undefined); @@ -90,8 +90,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled, - }, + markdownEnabled: requestData.markdownEnabled + } ]); expect(addedTaskRequest.createdBy).to.equal(mockData.existingTaskRequest.createdBy); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -126,8 +126,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled, - }, + markdownEnabled: requestData.markdownEnabled + } ]); expect(addedTaskRequest.createdBy).to.equal(authenticatedUsername); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -144,14 +144,14 @@ describe("Task requests | models", function () { ...mockData.taskRequestData, userId: "user456", requestType: TASK_REQUEST_TYPE.ASSIGNMENT, - taskId: "task123", + taskId: "task123" }; const result = await createRequest(requestData, authenticatedUsername); const addedTaskRequest = result.taskRequest; expect(addedTaskRequest).to.not.be.equal(undefined); expect(addedTaskRequest.requestors).to.deep.equal([ ...mockData.existingTaskRequest.requestors, - requestData.userId, + requestData.userId ]); expect(addedTaskRequest.status).to.equal(TASK_REQUEST_STATUS.PENDING); expect(addedTaskRequest.taskTitle).to.not.be.equal(undefined); @@ -166,8 +166,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled, - }, + markdownEnabled: requestData.markdownEnabled + } ]); expect(addedTaskRequest.createdBy).to.equal(mockData.existingTaskRequest.createdBy); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -183,7 +183,7 @@ describe("Task requests | models", function () { const requestData = { ...mockData.taskRequestData, requestType: TASK_REQUEST_TYPE.ASSIGNMENT, - taskId: "task123", + taskId: "task123" }; const result = await createRequest(requestData, authenticatedUsername); expect(result.alreadyRequesting).to.be.equal(true); @@ -203,20 +203,20 @@ describe("Task requests | models", function () { ...mockData.existingTaskRequest, status: TASK_REQUEST_STATUS.APPROVED, createdAt: Date.now(), - usersCount: 1, + usersCount: 1 }; const assignmentTaskRequest = { ...mockData.existingTaskRequest, requestType: TASK_REQUEST_TYPE.ASSIGNMENT, createdAt: Date.now() + 10000, - usersCount: 2, + usersCount: 2 }; const existingTaskRequest = { ...mockData.existingTaskRequest, createdAt: Date.now() + 20000, usersCount: 3 }; await Promise.all([ taskRequestsCollection.add(existingTaskRequest), taskRequestsCollection.add(mockData.existingOldTaskRequest), taskRequestsCollection.add(approvedTaskRequest), - taskRequestsCollection.add(assignmentTaskRequest), + taskRequestsCollection.add(assignmentTaskRequest) ]); const userDetails = userData[0]; userDetails.id = mockData.existingTaskRequest.users[0].userId; @@ -266,7 +266,7 @@ describe("Task requests | models", function () { it("should fetch only task requests of status pending", async function () { const queries = { - q: "status:pending", + q: "status:pending" }; const result = await fetchPaginatedTaskRequests(queries); result.data.forEach((taskRequest) => { @@ -276,7 +276,7 @@ describe("Task requests | models", function () { it("should fetch only task requests of status approved and request type of assignment", async function () { const queries = { - q: "status:approved request-type:assignment", + q: "status:approved request-type:assignment" }; const result = await fetchPaginatedTaskRequests(queries); result.data.forEach((taskRequest) => { @@ -287,7 +287,7 @@ describe("Task requests | models", function () { it("should limit the response list to size 1", async function () { const queries = { - size: "1", + size: "1" }; const result = await fetchPaginatedTaskRequests(queries); expect(result.data.length).to.be.equal(1); @@ -295,7 +295,7 @@ describe("Task requests | models", function () { it("should sort the response in descending order of created time", async function () { const queries = { - q: "sort:created-desc", + q: "sort:created-desc" }; const result = await fetchPaginatedTaskRequests(queries); const createdTimeList = result.data.map((data) => data.createdAt); @@ -306,7 +306,7 @@ describe("Task requests | models", function () { it("should sort the response in ascending order of requestors count", async function () { const queries = { - q: "sort:requestors-asc", + q: "sort:requestors-asc" }; const result = await fetchPaginatedTaskRequests(queries); const usersCountList = result.data.map((data) => data.usersCount); @@ -318,7 +318,7 @@ describe("Task requests | models", function () { it("should provide next set of results when next is passed in query param", async function () { const queries = { q: "sort:requestors-asc", - size: "1", + size: "1" }; const result = await fetchPaginatedTaskRequests(queries); expect(result.next).to.be.not.equal(undefined); @@ -332,7 +332,7 @@ describe("Task requests | models", function () { it("should provide previous set of results when prev is passed in query param", async function () { const queries = { q: "sort:requestors-asc", - size: "1", + size: "1" }; const result = await fetchPaginatedTaskRequests(queries); expect(result.next).to.be.not.equal(undefined); @@ -348,26 +348,26 @@ describe("Task requests | models", function () { it("should return error when an invalid next value is passed", async function () { const queries = { next: "abc", - size: "1", + size: "1" }; const result = await fetchPaginatedTaskRequests(queries); expect(result).to.be.deep.equal({ statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${queries.next}`, + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${queries.next}` }); }); it("should return error when an invalid prev value is passed", async function () { const queries = { prev: "abc", - size: "1", + size: "1" }; const result = await fetchPaginatedTaskRequests(queries); expect(result).to.be.deep.equal({ statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${queries.prev}`, + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${queries.prev}` }); }); }); @@ -393,7 +393,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.equal( approvedTask.data().updatedAt, - "When new task is created createdAt and updatedAt both are same", + "When new task is created createdAt and updatedAt both are same" ); expect(approvedTask.data().percentCompleted).to.equal(0); expect(approvedTask.data().priority).to.equal(DEFAULT_TASK_PRIORITY); @@ -416,7 +416,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.not.equal( approvedTask.data().updatedAt, - "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same", + "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same" ); }); @@ -514,7 +514,7 @@ describe("Task requests | models", function () { it("Should update the existing documents with multiple users", async function () { await Promise.all([ taskRequestsCollection.doc(taskRequestId1).set(mockData.existingOldTaskRequest), - taskRequestsCollection.doc(taskRequestId2).set(mockData.existingOldTaskRequestWithMultipleUsers), + taskRequestsCollection.doc(taskRequestId2).set(mockData.existingOldTaskRequestWithMultipleUsers) ]); const response = await addNewFields(); expect(response.totalDocuments).to.be.equal(2); @@ -526,10 +526,10 @@ describe("Task requests | models", function () { const taskRequestData2 = (await taskRequestsCollection.doc(taskRequestId2).get()).data(); expect(taskRequestData2.taskTitle).to.be.equal(taskData.taskData.title); expect(taskRequestData2.users[0].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[0], + mockData.existingOldTaskRequestWithMultipleUsers.requestors[0] ); expect(taskRequestData2.users[1].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[1], + mockData.existingOldTaskRequestWithMultipleUsers.requestors[1] ); expect(taskRequestData2.requestType).to.be.equal(TASK_REQUEST_TYPE.ASSIGNMENT); }); diff --git a/test/unit/models/taskBasedStatusUpdate.test.js b/test/unit/models/taskBasedStatusUpdate.test.js index 92e85b05c..3dafed704 100644 --- a/test/unit/models/taskBasedStatusUpdate.test.js +++ b/test/unit/models/taskBasedStatusUpdate.test.js @@ -9,7 +9,7 @@ const { updateUserStatusOnNewTaskAssignment, updateUserStatusOnTaskUpdate, batchUpdateUsersStatus, - getTaskBasedUsersStatus, + getTaskBasedUsersStatus } = require("../../../models/userStatus"); const cleanDb = require("../../utils/cleanDb"); const addUser = require("../../utils/addUser"); @@ -56,7 +56,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." ); expect(res.data.currentStatus).to.equal(userState.IDLE); }); @@ -103,7 +103,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -156,7 +156,7 @@ describe("Update Status based on task update", function () { const res = await updateUserStatusOnNewTaskAssignment(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -204,7 +204,7 @@ describe("Update Status based on task update", function () { await updateUserStatusOnNewTaskAssignment(userId).catch((err) => { expect(err).to.be.an.instanceOf(Error); expect(err.message).to.be.equal( - "Please reach out to the administrator as your user status is not recognized as valid.", + "Please reach out to the administrator as your user status is not recognized as valid." ); }); }); @@ -214,7 +214,7 @@ describe("Update Status based on task update", function () { expect(res).to.deep.equal({ status: 404, error: "Not Found", - message: "Something went wrong. Username funkeyMonkey123 could not be found.", + message: "Something went wrong. Username funkeyMonkey123 could not be found." }); }); @@ -279,7 +279,7 @@ describe("Update Status based on task update", function () { { userId: userId8, state: "ACTIVE" }, { userId: userId9, state: "ACTIVE" }, { userId: userId10, state: "ACTIVE" }, - { userId: userId11, state: "IDLE" }, + { userId: userId11, state: "IDLE" } ]; }); @@ -298,7 +298,7 @@ describe("Update Status based on task update", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered", + "idleUsersUnaltered" ); expect(result.usersCount).to.equal(12); expect(result.unprocessedUsers).to.equal(0); @@ -391,14 +391,14 @@ describe("Update Status based on task update", function () { totalIdleUsers: 1, totalActiveUsers: 2, totalUnprocessedUsers: 0, - unprocessedUsers: [], + unprocessedUsers: [] }); expect(result) .to.have.deep.property("users") .that.has.deep.members([ { userId: userId1, state: "ACTIVE" }, { userId: userId3, state: "IDLE" }, - { userId: userId2, state: "ACTIVE" }, + { userId: userId2, state: "ACTIVE" } ]); }); diff --git a/test/unit/models/tasks.test.js b/test/unit/models/tasks.test.js index 44a560fd5..f8a23a803 100644 --- a/test/unit/models/tasks.test.js +++ b/test/unit/models/tasks.test.js @@ -33,7 +33,7 @@ describe("tasks", function () { const newAvailableTasks = await tasks.overdueTasks([ { ...taskData1, id: taskId1 }, - { ...taskData2, id: taskId2 }, + { ...taskData2, id: taskId2 } ]); newAvailableTasks.forEach((task) => { @@ -52,7 +52,7 @@ describe("tasks", function () { it("should add dependencies to firestore and return dependsOn array", async function () { const data = { taskId: "taskId1", - dependsOn: ["taskId2", "taskId3"], + dependsOn: ["taskId2", "taskId3"] }; const result = await addDependency(data); expect(result).to.deep.equal(data.dependsOn); @@ -61,7 +61,7 @@ describe("tasks", function () { it("should throw an error if there is an error while creating dependencies", async function () { const data = { taskId: "taskId1", - dependsOn: ["taskId2", "taskId3"], + dependsOn: ["taskId2", "taskId3"] }; const expectedError = new Error("test error"); dependencyModel.doc = () => { @@ -148,7 +148,7 @@ describe("tasks", function () { it("should paginate and fetch tasks with the passed size", async function () { const SIZE = 3; const result = await tasks.fetchPaginatedTasks({ - size: SIZE, + size: SIZE }); expect(result).to.have.property("allTasks"); @@ -231,7 +231,7 @@ describe("tasks", function () { const taskId2 = (await tasks.updateTask(tasksData[4])).taskId; const dependsOn = [taskId1, taskId2]; const data = { - dependsOn, + dependsOn }; await updateTask(data, taskId); @@ -247,7 +247,7 @@ describe("tasks", function () { const dependsOn = ["taskId1", "taskId2"]; const data = { - dependsOn, + dependsOn }; try { @@ -263,7 +263,7 @@ describe("tasks", function () { describe("update tasks", function () { it("should update status when assignee pass as payload", async function () { const data = { - assignee: "sagar", + assignee: "sagar" }; const taskId = (await tasks.updateTask(tasksData[4])).taskId; @@ -318,7 +318,7 @@ describe("tasks", function () { tasksData.forEach((task) => { const taskData = { ...task, - status: "COMPLETED", + status: "COMPLETED" }; addTasksPromises.push(tasksModel.add(taskData)); }); @@ -342,7 +342,7 @@ describe("tasks", function () { update: function () {}, commit: function () { throw new Error("Firestore batch update failed"); - }, + } }); try { await tasks.updateTaskStatus(); diff --git a/test/unit/models/users.test.js b/test/unit/models/users.test.js index 82d735396..3f682dadb 100644 --- a/test/unit/models/users.test.js +++ b/test/unit/models/users.test.js @@ -281,8 +281,8 @@ describe("users", function () { roles: { ...user.roles, in_discord: false, - archived: false, - }, + archived: false + } }; addUsersPromises.push(userModel.add(userData)); }); @@ -315,7 +315,7 @@ describe("users", function () { update: function () {}, commit: function () { throw new Error("Firestore batch update failed"); - }, + } }); try { @@ -382,7 +382,7 @@ describe("users", function () { it("should render users with onboarding state and time as 31days", async function () { const query = { state: "ONBOARDING", - time: "31d", + time: "31d" }; const result = await users.getUsersBasedOnFilter(query); expect(result.length).to.equal(1); diff --git a/test/unit/services/dataAccessLayer.test.js b/test/unit/services/dataAccessLayer.test.js index b55c8475f..4e36641f0 100644 --- a/test/unit/services/dataAccessLayer.test.js +++ b/test/unit/services/dataAccessLayer.test.js @@ -13,7 +13,7 @@ const { retrieveMembers, retreiveFilteredUsers, levelSpecificAccess, - fetchUsersForKeyValues, + fetchUsersForKeyValues } = require("../../../services/dataAccessLayer"); const { KEYS_NOT_ALLOWED, ACCESS_LEVEL } = require("../../../constants/userDataLevels"); diff --git a/test/unit/services/discordMembersService.test.js b/test/unit/services/discordMembersService.test.js index e7d4c9c76..168b1aed8 100644 --- a/test/unit/services/discordMembersService.test.js +++ b/test/unit/services/discordMembersService.test.js @@ -22,14 +22,14 @@ describe("getDiscordMemberDetails", function () { const expectedMemberDetails = { discordId: discordId, username: "Test User", - discriminator: "0001", + discriminator: "0001" }; fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(expectedMemberDetails), - }), + json: () => Promise.resolve(expectedMemberDetails) + }) ); const response = await getDiscordMemberDetails(discordId); @@ -43,8 +43,8 @@ describe("getDiscordMemberDetails", function () { fetchStub.returns( Promise.resolve({ status: 404, - json: () => Promise.resolve({ message: "User does not exist" }), - }), + json: () => Promise.resolve({ message: "User does not exist" }) + }) ); try { diff --git a/test/unit/services/discordService.test.js b/test/unit/services/discordService.test.js index 4f507ab05..155831b51 100644 --- a/test/unit/services/discordService.test.js +++ b/test/unit/services/discordService.test.js @@ -5,7 +5,7 @@ const { addRoleToUser, getDiscordMembers, removeRoleFromUser, - setUserDiscordNickname, + setUserDiscordNickname } = require("../../../services/discordService"); const { fetchAllUsers } = require("../../../models/users"); const Sinon = require("sinon"); @@ -46,8 +46,8 @@ describe("Discord services", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ message: "done" }), - }), + json: () => Promise.resolve({ message: "done" }) + }) ); const response = await addRoleToUser("123456789", "987654321"); @@ -69,8 +69,8 @@ describe("Discord services", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordMembersArray.getDiscordMembers), - }), + json: () => Promise.resolve(discordMembersArray.getDiscordMembers) + }) ); const response = await getDiscordMembers(); @@ -103,14 +103,14 @@ describe("Discord services", function () { json: () => Promise.resolve({ message: "Role Removed Successfully", - userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, - }), - }), + userAffected: { userid: "987654321123456789", roleid: "112233445566778899" } + }) + }) ); const response = await removeRoleFromUser("112233445566778899", "987654321123456789"); expect(response).to.deep.equal({ message: "Role Removed Successfully", - userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, + userAffected: { userid: "987654321123456789", roleid: "112233445566778899" } }); expect(fetchStub.calledOnce).to.be.equal(true); }); @@ -140,9 +140,9 @@ describe("Discord services", function () { json: () => Promise.resolve({ userEffected: "Kotesh", - message: "User nickname changed successfully", - }), - }), + message: "User nickname changed successfully" + }) + }) ); const response = await setUserDiscordNickname("Kotesh", "aMYlI7sxQ4JMPwiqLQlp"); diff --git a/test/unit/services/getUserIdsFromRoleId.test.js b/test/unit/services/getUserIdsFromRoleId.test.js index 92cbcd3ee..115accd68 100644 --- a/test/unit/services/getUserIdsFromRoleId.test.js +++ b/test/unit/services/getUserIdsFromRoleId.test.js @@ -16,12 +16,12 @@ describe("FCM token services", function () { it("Should get user id's from role id", async function () { const memberRoleModelData = { roleid: "1147354535342383104", - userid: "jskdhaskjhdkasjh", + userid: "jskdhaskjhdkasjh" }; await addGroupRoleToMember(memberRoleModelData); const memberRoleModelData2 = { roleid: "1147354535342383104", - userid: "EFEGFHERIUGHIUER", + userid: "EFEGFHERIUGHIUER" }; await addGroupRoleToMember(memberRoleModelData2); diff --git a/test/unit/services/githubService.test.js b/test/unit/services/githubService.test.js index d3f9d090d..b759417cb 100644 --- a/test/unit/services/githubService.test.js +++ b/test/unit/services/githubService.test.js @@ -23,7 +23,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open PRs", async function () { const response = await githubService.fetchOpenPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1" ); }); }); @@ -32,15 +32,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch open PRs", async function () { const params = { searchParams: { - created: "2023-01-01..2023-02-01", + created: "2023-01-01..2023-02-01" }, resultOptions: { - order: "desc", - }, + order: "desc" + } }; const response = await githubService.fetchOpenPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1" ); }); }); @@ -50,7 +50,7 @@ describe("githubService", function () { await addUser(); const response = await githubService.fetchPRsByUser(githubUserInfo[0].username); expect(response).to.be.equal( - `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr`, + `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr` ); }); }); @@ -59,7 +59,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch merged Prs", async function () { const response = await githubService.fetchMergedPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1" ); }); }); @@ -68,15 +68,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch merged Prs", async function () { const params = { searchParams: { - merged: "<=2023-01-01", + merged: "<=2023-01-01" }, resultOptions: { - order: "asc", - }, + order: "asc" + } }; const response = await githubService.fetchMergedPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1" ); }); }); @@ -85,7 +85,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues", async function () { const response = await githubService.fetchOpenIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1" ); }); }); @@ -94,15 +94,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues", async function () { const params = { searchParams: { - created: ">=2023-01-01", + created: ">=2023-01-01" }, resultOptions: { - order: "desc", - }, + order: "desc" + } }; const response = await githubService.fetchOpenIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1" ); }); }); @@ -111,7 +111,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch closed issues", async function () { const response = await githubService.fetchClosedIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1" ); }); }); @@ -120,15 +120,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch closed issues", async function () { const params = { searchParams: { - closed: "2023-01-01..2023-02-01", + closed: "2023-01-01..2023-02-01" }, resultOptions: { - order: "desc", - }, + order: "desc" + } }; const response = await githubService.fetchClosedIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1" ); }); }); @@ -144,7 +144,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues with search param", async function () { const searchString = "website"; const response = await githubService.fetchOpenIssues({ - searchString, + searchString }); const baseURL = config.get("githubApi.baseUrl"); @@ -181,7 +181,7 @@ describe("githubService", function () { it("Should throw an error if no merged PRs found for user", async function () { const username = "dfgfdgdg"; const stub = sinon.stub(githubService, "fetchLastMergedPR").returns({ - items: [], + items: [] }); try { diff --git a/test/unit/services/tasks.test.js b/test/unit/services/tasks.test.js index 02d424134..c059bfcfd 100644 --- a/test/unit/services/tasks.test.js +++ b/test/unit/services/tasks.test.js @@ -17,7 +17,7 @@ describe("Tasks services", function () { taskDataArray.forEach((task) => { const taskData = { ...task, - status: "COMPLETED", + status: "COMPLETED" }; addTasksPromises.push(tasksModel.add(taskData)); }); @@ -49,7 +49,7 @@ describe("Tasks services", function () { totalUpdatedStatus: 8, totalOperationsFailed: 0, updatedTaskDetails: taskDetails, - failedTaskDetails: [], + failedTaskDetails: [] }); }); @@ -59,7 +59,7 @@ describe("Tasks services", function () { update: function () {}, commit: function () { throw new Error("Firebase batch operation failed"); - }, + } }); const res = await updateTaskStatusToDone(tasks); @@ -68,7 +68,7 @@ describe("Tasks services", function () { totalUpdatedStatus: 0, totalOperationsFailed: 8, updatedTaskDetails: [], - failedTaskDetails: taskDetails, + failedTaskDetails: taskDetails }); }); }); diff --git a/test/unit/services/users.test.js b/test/unit/services/users.test.js index 292cb613c..db3fa3f3f 100644 --- a/test/unit/services/users.test.js +++ b/test/unit/services/users.test.js @@ -20,8 +20,8 @@ describe("Users services", function () { roles: { ...user.roles, in_discord: false, - archived: false, - }, + archived: false + } }; addUsersPromises.push(userModel.add(userData)); }); @@ -57,7 +57,7 @@ describe("Users services", function () { totalUsersArchived: 20, totalOperationsFailed: 0, updatedUserDetails: userDetails, - failedUserDetails: [], + failedUserDetails: [] }); }); @@ -67,7 +67,7 @@ describe("Users services", function () { update: function () {}, commit: function () { throw new Error("Firebase batch operation failed"); - }, + } }); const res = await archiveUsers(users); @@ -77,7 +77,7 @@ describe("Users services", function () { totalUsersArchived: 0, totalOperationsFailed: 20, updatedUserDetails: [], - failedUserDetails: userDetails, + failedUserDetails: userDetails }); }); }); diff --git a/test/unit/utils/customWordCountValidator.test.js b/test/unit/utils/customWordCountValidator.test.js index c2f504433..c93d090df 100644 --- a/test/unit/utils/customWordCountValidator.test.js +++ b/test/unit/utils/customWordCountValidator.test.js @@ -5,7 +5,7 @@ describe("customWordCountValidator", function () { it("should return an error if the word count is less than the desired count", function () { const value = "This is a test string with more than 100 words."; const helpers = { - error: () => "Word count validation failed.", + error: () => "Word count validation failed." }; const wordCount = 100; @@ -16,7 +16,7 @@ describe("customWordCountValidator", function () { it("should return the original value if the word count meets the desired count", function () { const value = "This string has more than 100 words. " + "This ".repeat(96) + "word."; const helpers = { - error: () => "Word count validation failed.", + error: () => "Word count validation failed." }; const wordCount = 100; diff --git a/test/unit/utils/data-access.test.js b/test/unit/utils/data-access.test.js index 42f1b1d06..33955c746 100644 --- a/test/unit/utils/data-access.test.js +++ b/test/unit/utils/data-access.test.js @@ -7,9 +7,9 @@ describe("removeObjectField", function () { a: { b: { c: 42, - d: "hello", - }, - }, + d: "hello" + } + } }; removeObjectField("a.b.c", obj); @@ -17,9 +17,9 @@ describe("removeObjectField", function () { expect(obj).to.deep.equal({ a: { b: { - d: "hello", - }, - }, + d: "hello" + } + } }); }); @@ -27,7 +27,7 @@ describe("removeObjectField", function () { const arr = [ { id: 1, a: "abc" }, { id: 2, a: "def" }, - { id: 3, b: "ghi" }, + { id: 3, b: "ghi" } ]; removeObjectField("*.a", arr); @@ -42,25 +42,25 @@ describe("removeObjectField", function () { a: "abc", z: [ { a: "abc", b: "def" }, - { a: "def", b: "def" }, - ], + { a: "def", b: "def" } + ] }, { id: 2, a: "def", z: [ { a: "abc", b: "def" }, - { a: "def", b: "def" }, - ], + { a: "def", b: "def" } + ] }, { id: 3, b: "ghi", z: [ { a: "abc", b: "def" }, - { a: "def", b: "def" }, - ], - }, + { a: "def", b: "def" } + ] + } ]; removeObjectField("*.z.*.a", arr); @@ -69,18 +69,18 @@ describe("removeObjectField", function () { { id: 1, a: "abc", - z: [{ b: "def" }, { b: "def" }], + z: [{ b: "def" }, { b: "def" }] }, { id: 2, a: "def", - z: [{ b: "def" }, { b: "def" }], + z: [{ b: "def" }, { b: "def" }] }, { id: 3, b: "ghi", - z: [{ b: "def" }, { b: "def" }], - }, + z: [{ b: "def" }, { b: "def" }] + } ]); }); @@ -89,9 +89,9 @@ describe("removeObjectField", function () { a: { b: { c: 42, - d: "hello", - }, - }, + d: "hello" + } + } }; removeObjectField("*", obj); @@ -103,8 +103,8 @@ describe("removeObjectField", function () { const obj = { b: { c: 42, - d: "hello", - }, + d: "hello" + } }; removeObjectField("x.y.z", obj); @@ -112,8 +112,8 @@ describe("removeObjectField", function () { expect(obj).to.deep.equal({ b: { c: 42, - d: "hello", - }, + d: "hello" + } }); }); diff --git a/test/unit/utils/events.test.js b/test/unit/utils/events.test.js index 527c849ff..1c82e316f 100644 --- a/test/unit/utils/events.test.js +++ b/test/unit/utils/events.test.js @@ -8,14 +8,14 @@ describe("removeUnwantedProperties", function () { property1: "value1", property2: "value2", property3: "value3", - property4: "value4", + property4: "value4" }; const cleanData = removeUnwantedProperties(propertiesToRemove, data); expect(cleanData).to.deep.equal({ property1: "value1", - property3: "value3", + property3: "value3" }); }); @@ -26,14 +26,14 @@ describe("removeUnwantedProperties", function () { property1: "value1", property2: "value2", property3: "value3", - property4: "value4", + property4: "value4" }, { property1: "value5", property2: "value6", property3: "value7", - property4: "value8", - }, + property4: "value8" + } ]; const cleanData = removeUnwantedProperties(propertiesToRemove, data); @@ -41,12 +41,12 @@ describe("removeUnwantedProperties", function () { expect(cleanData).to.deep.equal([ { property1: "value1", - property3: "value3", + property3: "value3" }, { property1: "value5", - property3: "value7", - }, + property3: "value7" + } ]); }); diff --git a/test/unit/utils/helper.test.js b/test/unit/utils/helper.test.js index 83ee8f054..39196c9c7 100644 --- a/test/unit/utils/helper.test.js +++ b/test/unit/utils/helper.test.js @@ -3,7 +3,7 @@ const { getDateTimeRangeForPRs, getQualifiers, getPaginatedLink, - findSubscribedGroupIds, + findSubscribedGroupIds } = require("../../../utils/helper"); const { TASK_STATUS, TASK_SIZE } = require("../../../constants/tasks"); const { expect } = chai; @@ -43,7 +43,7 @@ describe("helper", function () { filterBy: "OPEN_PRS", sortBy: "RECENT_FIRST", startDate: "2023-01-01", - endDate: "2023-03-01", + endDate: "2023-03-01" }); }); }); @@ -54,7 +54,7 @@ describe("helper", function () { const dev = true; const query = { dev, - status, + status }; const endpoint = "/tasks"; const cursorKey = "next"; @@ -63,7 +63,7 @@ describe("helper", function () { query, endpoint: "/tasks", cursorKey, - docId, + docId }); expect(result).to.contain(endpoint); expect(result).to.contain(`status=${status}`); @@ -80,7 +80,7 @@ describe("helper", function () { const query = { dev, status, - next: nextId, + next: nextId }; const endpoint = "/tasks"; const cursorKey = "prev"; @@ -89,7 +89,7 @@ describe("helper", function () { query, endpoint: "/tasks", cursorKey, - docId, + docId }); expect(result).to.contain(endpoint); expect(result).to.contain(`status=${status}`); @@ -103,7 +103,7 @@ describe("helper", function () { it("should return set of member groupIds", function () { const memberGroupIds = findSubscribedGroupIds("1234", [ { userid: "1234", roleid: "1" }, - { userid: "12345", roleid: "3" }, + { userid: "12345", roleid: "3" } ]); expect(memberGroupIds).to.deep.equal(new Set(["1"])); }); diff --git a/test/unit/utils/logs.test.js b/test/unit/utils/logs.test.js index c9a995a8a..441038f04 100644 --- a/test/unit/utils/logs.test.js +++ b/test/unit/utils/logs.test.js @@ -5,12 +5,12 @@ describe("logs utils", function () { describe("formatLogsForFeed", function () { const usersMap = { user1: { username: "palak-gupta" }, - user2: { username: "mock-2" }, + user2: { username: "mock-2" } }; const tasksMap = { task1: { title: "Link details page to status site" }, - task2: { title: "Introduce /ooo command on discord" }, + task2: { title: "Introduce /ooo command on discord" } }; it("should format logs for OOO type", function () { @@ -19,7 +19,7 @@ describe("logs utils", function () { createdAt: 1710181066410, createdBy: "user1", requestId: "request123", - action: "create", + action: "create" }, type: "REQUEST_CREATED", body: { @@ -31,12 +31,12 @@ describe("logs utils", function () { state: "PENDING", type: "OOO", message: "For testing purpose", - updatedAt: 1710181064968, + updatedAt: 1710181064968 }, timestamp: { _seconds: 1710181066, - _nanoseconds: 410000000, - }, + _nanoseconds: 410000000 + } }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap); @@ -46,7 +46,7 @@ describe("logs utils", function () { requestId: "request123", from: 1710288000000, until: 1710288050000, - message: "For testing purpose", + message: "For testing purpose" }); }); @@ -56,16 +56,16 @@ describe("logs utils", function () { extensionRequestId: "po1gNOCXUP2IFsChcmn8", userId: "user2", taskId: "task1", - username: "techlord", + username: "techlord" }, type: "extensionRequests", body: { - status: "APPROVED", + status: "APPROVED" }, timestamp: { _seconds: 1709316797, - _nanoseconds: 616000000, - }, + _nanoseconds: 616000000 + } }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap, tasksMap); @@ -78,7 +78,7 @@ describe("logs utils", function () { type: "extensionRequests", user: "mock-2", userId: "user2", - username: "techlord", + username: "techlord" }); }); @@ -91,8 +91,8 @@ describe("logs utils", function () { from: "2024-03-24", until: "2024-03-25", message: "Out of office", - extensionRequestId: "extension123", - }, + extensionRequestId: "extension123" + } }; const formattedLog = formatLogsForFeed(invalidLogsSnapshot, usersMap); @@ -105,19 +105,19 @@ describe("logs utils", function () { meta: { userId: "user1", taskId: "task2", - username: "shubham-sharma", + username: "shubham-sharma" }, type: "task", body: { new: { - percentCompleted: 40, + percentCompleted: 40 }, - subType: "update", + subType: "update" }, timestamp: { _seconds: 1711273137, - _nanoseconds: 96000000, - }, + _nanoseconds: 96000000 + } }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap, tasksMap); @@ -130,7 +130,7 @@ describe("logs utils", function () { type: "task", user: "shubham-sharma", userId: "user1", - username: "shubham-sharma", + username: "shubham-sharma" }); }); @@ -138,17 +138,17 @@ describe("logs utils", function () { const logsSnapshot = { meta: { rejectedBy: "user2", - userId: "user1", + userId: "user1" }, type: "PROFILE_DIFF_REJECTED", body: { profileDiffId: "F8e0II1X7qZwzA1CbF0l", - message: "", + message: "" }, timestamp: { _seconds: 1708098695, - _nanoseconds: 709000000, - }, + _nanoseconds: 709000000 + } }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap); @@ -156,7 +156,7 @@ describe("logs utils", function () { expect(formattedLog).to.deep.equal({ user: "palak-gupta", rejectedBy: "mock-2", - message: "", + message: "" }); }); @@ -164,17 +164,17 @@ describe("logs utils", function () { const logsSnapshot = { meta: { approvedBy: "user1", - userId: "user2", + userId: "user2" }, type: "PROFILE_DIFF_APPROVED", body: { profileDiffId: "7sPvm4ooC1PyC91A5KVS", - message: "", + message: "" }, timestamp: { _seconds: 1707253607, - _nanoseconds: 697000000, - }, + _nanoseconds: 697000000 + } }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap); @@ -182,7 +182,7 @@ describe("logs utils", function () { expect(formattedLog).to.deep.equal({ approvedBy: "palak-gupta", user: "mock-2", - message: "", + message: "" }); }); }); @@ -191,7 +191,7 @@ describe("logs utils", function () { const data = [ { username: "palak", id: "100", task: "task2" }, { username: "mock-user-1", id: "101", task: "task23" }, - { username: "mock-user-2", id: "102", task: "task4" }, + { username: "mock-user-2", id: "102", task: "task4" } ]; it("mapify data based on username", function () { @@ -200,18 +200,18 @@ describe("logs utils", function () { "mock-user-1": { id: "101", username: "mock-user-1", - task: "task23", + task: "task23" }, "mock-user-2": { id: "102", username: "mock-user-2", - task: "task4", + task: "task4" }, palak: { id: "100", username: "palak", - task: "task2", - }, + task: "task2" + } }); }); }); diff --git a/test/unit/utils/parseSearchQuery.test.js b/test/unit/utils/parseSearchQuery.test.js index 347d752e2..4fbeaff8b 100644 --- a/test/unit/utils/parseSearchQuery.test.js +++ b/test/unit/utils/parseSearchQuery.test.js @@ -9,7 +9,7 @@ describe("parseSearchQuery", function () { expect(result).to.deep.equal({ searchTerm: "example", assignee: "john.doe", - status: "in_progress", + status: "in_progress" }); }); @@ -26,7 +26,7 @@ describe("parseSearchQuery", function () { expect(result).to.deep.equal({ searchTerm: "example", - assignee: "john.doe", + assignee: "john.doe" }); }); @@ -36,7 +36,7 @@ describe("parseSearchQuery", function () { expect(result).to.deep.equal({ searchTerm: "test", - assignee: "john.doe", + assignee: "john.doe" }); }); }); diff --git a/test/unit/utils/queryParser.test.js b/test/unit/utils/queryParser.test.js index 562034c74..ec967c671 100644 --- a/test/unit/utils/queryParser.test.js +++ b/test/unit/utils/queryParser.test.js @@ -8,7 +8,7 @@ describe("parseQueryParams", function () { expect(parsedParams).to.deep.equal({ status: ["APPROVED", "DENIED"], - assignee: "user1", + assignee: "user1" }); }); @@ -25,7 +25,7 @@ describe("parseQueryParams", function () { expect(parsedParams).to.deep.equal({ status: ["APPROVED", "DENIED"], - assignee: "user1", + assignee: "user1" }); }); }); diff --git a/test/unit/utils/rqlQueryParser.test.js b/test/unit/utils/rqlQueryParser.test.js index 101fb1fb2..5111041d5 100644 --- a/test/unit/utils/rqlQueryParser.test.js +++ b/test/unit/utils/rqlQueryParser.test.js @@ -7,7 +7,7 @@ describe("RQLQueryParser", function () { const parser = new RQLQueryParser(queryString); const filterQueries = parser.getFilterQueries(); expect(filterQueries).to.deep.equal({ - key: [{ operator: Operators.INCLUDE, value: "value" }], + key: [{ operator: Operators.INCLUDE, value: "value" }] }); }); @@ -18,9 +18,9 @@ describe("RQLQueryParser", function () { expect(filterQueries).to.deep.equal({ key: [ { operator: Operators.INCLUDE, value: "value" }, - { operator: Operators.INCLUDE, value: "value2" }, + { operator: Operators.INCLUDE, value: "value2" } ], - key2: [{ operator: Operators.INCLUDE, value: "value" }], + key2: [{ operator: Operators.INCLUDE, value: "value" }] }); }); @@ -31,9 +31,9 @@ describe("RQLQueryParser", function () { expect(filterQueries).to.deep.equal({ key: [ { operator: Operators.INCLUDE, value: "value" }, - { operator: Operators.EXCLUDE, value: "value2" }, + { operator: Operators.EXCLUDE, value: "value2" } ], - key2: [{ operator: Operators.EXCLUDE, value: "value" }], + key2: [{ operator: Operators.EXCLUDE, value: "value" }] }); }); @@ -42,7 +42,7 @@ describe("RQLQueryParser", function () { const parser = new RQLQueryParser(queryString); const sortQueries = parser.getSortQueries(); expect(sortQueries).to.deep.equal({ - key: "desc", + key: "desc" }); }); @@ -54,7 +54,7 @@ describe("RQLQueryParser", function () { { operator: Operators.INCLUDE, value: "value1", type: QueryTypes.FILTER, key: "key" }, { operator: Operators.EXCLUDE, value: "value2", type: QueryTypes.FILTER, key: "key" }, { operator: Operators.INCLUDE, value: "value1", type: QueryTypes.FILTER, key: "key2" }, - { value: "asc", operator: Operators.INCLUDE, type: QueryTypes.SORT, key: "key" }, + { value: "asc", operator: Operators.INCLUDE, type: QueryTypes.SORT, key: "key" } ]); }); diff --git a/test/unit/utils/sendTaskUpdate.test.js b/test/unit/utils/sendTaskUpdate.test.js index 7dde895b9..c8f9fcc6a 100644 --- a/test/unit/utils/sendTaskUpdate.test.js +++ b/test/unit/utils/sendTaskUpdate.test.js @@ -23,7 +23,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "Task title", + "Task title" ); expect(result).to.equal(undefined); }); @@ -38,7 +38,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "task title", + "task title" ); } catch (err) { expect(err).to.be.equal(error); diff --git a/test/unit/utils/taskBasedStatusUpdates.test.js b/test/unit/utils/taskBasedStatusUpdates.test.js index b589703af..cc126a205 100644 --- a/test/unit/utils/taskBasedStatusUpdates.test.js +++ b/test/unit/utils/taskBasedStatusUpdates.test.js @@ -11,7 +11,7 @@ const { createUserStatusWithState, updateCurrentStatusToState, updateFutureStatusToState, - getNextDayTimeStamp, + getNextDayTimeStamp } = require("../../../utils/userStatus"); describe("Task Based User Status Update Util Functions", function () { @@ -21,8 +21,8 @@ describe("Task Based User Status Update Util Functions", function () { status: "success", message: `The status is already ${userState.ACTIVE}`, data: { - currentStatus: userState.ACTIVE, - }, + currentStatus: userState.ACTIVE + } }); }); @@ -32,7 +32,7 @@ describe("Task Based User Status Update Util Functions", function () { expect(result).to.deep.equal({ status: 500, message: "user not found", - error: "Internal Server Error", + error: "Internal Server Error" }); }); @@ -40,15 +40,15 @@ describe("Task Based User Status Update Util Functions", function () { it("should return true if the user has active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 2, + size: 2 }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const tasksModel = { - where: mockWhere, + where: mockWhere }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -58,15 +58,15 @@ describe("Task Based User Status Update Util Functions", function () { it("should return false if the user does not have any active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 0, + size: 0 }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const tasksModel = { - where: mockWhere, + where: mockWhere }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -80,10 +80,10 @@ describe("Task Based User Status Update Util Functions", function () { const mockGet = () => Promise.reject(mockError); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const tasksModel = { - where: mockWhere, + where: mockWhere }; try { @@ -101,15 +101,15 @@ describe("Task Based User Status Update Util Functions", function () { const userId = "user123"; const mockSnapshot = { size: 1, - docs: [{ id: userId }], + docs: [{ id: userId }] }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const usersModel = { - where: mockWhere, + where: mockWhere }; const result = await getUserIdFromUserName(userName, usersModel); @@ -119,15 +119,15 @@ describe("Task Based User Status Update Util Functions", function () { it("should throw error if query size is 0", async function () { const userName = "randhir"; const mockSnapshot = { - size: 0, + size: 0 }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const usersModel = { - where: mockWhere, + where: mockWhere }; try { @@ -145,10 +145,10 @@ describe("Task Based User Status Update Util Functions", function () { const mockGet = () => Promise.reject(mockError); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const usersModel = { - where: mockWhere, + where: mockWhere }; try { @@ -165,15 +165,15 @@ describe("Task Based User Status Update Util Functions", function () { const userId = "user123"; const state = userState.ACTIVE; const mockCollection = { - add: sinon.stub().resolves(), + add: sinon.stub().resolves() }; const result = await createUserStatusWithState(userId, mockCollection, state); expect(result).to.deep.equal({ status: "success", message: `UserStatus Document did not previously exist, New UserStatus Document created and updated to an ${state} status.`, data: { - currentStatus: state, - }, + currentStatus: state + } }); }); @@ -181,7 +181,7 @@ describe("Task Based User Status Update Util Functions", function () { const userId = "user123"; const state = userState.ACTIVE; const mockCollection = { - add: sinon.stub().rejects(new Error("FireStore Error")), + add: sinon.stub().rejects(new Error("FireStore Error")) }; try { await createUserStatusWithState(userId, mockCollection, state); @@ -208,29 +208,29 @@ describe("Task Based User Status Update Util Functions", function () { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp, - }, - }, + updatedAt: currentTimeStamp + } + } }; }); it("should update current status", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().resolves(), + update: sinon.stub().resolves() }; const response = await updateCurrentStatusToState(mockCollection, latestStatusData, newState); expect(response).to.deep.equal({ status: "success", message: "The status has been updated to ACTIVE", - data: { previousStatus: "IDLE", currentStatus: "ACTIVE" }, + data: { previousStatus: "IDLE", currentStatus: "ACTIVE" } }); }); it("should throw an error if firebase query fails", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().rejects(new Error("Firestore error")), + update: sinon.stub().rejects(new Error("Firestore error")) }; try { await updateCurrentStatusToState(mockCollection, latestStatusData, newState); @@ -257,29 +257,29 @@ describe("Task Based User Status Update Util Functions", function () { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp, - }, - }, + updatedAt: currentTimeStamp + } + } }; }); it("should update the Future status", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().resolves(), + update: sinon.stub().resolves() }; const response = await updateFutureStatusToState(mockCollection, latestStatusData, newState); expect(response).to.deep.equal({ status: "success", message: "As the user is currently OOO, the future status has been updated to ACTIVE.", - data: { currentStatus: "OOO", futureStatus: "ACTIVE" }, + data: { currentStatus: "OOO", futureStatus: "ACTIVE" } }); }); it("should throw an error if firebase query fails", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().rejects(new Error("Firestore error")), + update: sinon.stub().rejects(new Error("Firestore error")) }; try { await updateFutureStatusToState(mockCollection, latestStatusData, newState); diff --git a/test/unit/utils/tasks.test.js b/test/unit/utils/tasks.test.js index 884663800..942e5b340 100644 --- a/test/unit/utils/tasks.test.js +++ b/test/unit/utils/tasks.test.js @@ -7,7 +7,7 @@ describe("Utils | Tasks", function () { describe("transformTasksUsersQuery", function () { it("should correctly transform given queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4`, + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4` ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); @@ -21,7 +21,7 @@ describe("Utils | Tasks", function () { it("should correctly transform multiple queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4`, + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4` ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); diff --git a/test/unit/utils/userStatus.test.js b/test/unit/utils/userStatus.test.js index 9b3457367..06b580b5c 100644 --- a/test/unit/utils/userStatus.test.js +++ b/test/unit/utils/userStatus.test.js @@ -4,7 +4,7 @@ const { generateNewStatus, checkIfUserHasLiveTasks, convertTimestampsToUTC } = r const { userState } = require("../../../constants/userStatus"); const { OutputFixtureForFnConvertTimestampsToUTC, - inputFixtureForFnConvertTimestampsToUTC, + inputFixtureForFnConvertTimestampsToUTC } = require("../../fixtures/userStatus/userStatus"); describe("User Status Functions", function () { @@ -41,15 +41,15 @@ describe("User Status Functions", function () { it("should return true if the user has active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 2, + size: 2 }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const tasksModel = { - where: mockWhere, + where: mockWhere }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -59,15 +59,15 @@ describe("User Status Functions", function () { it("should return false if the user does not have any active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 0, + size: 0 }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const tasksModel = { - where: mockWhere, + where: mockWhere }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -81,10 +81,10 @@ describe("User Status Functions", function () { const mockGet = () => Promise.reject(mockError); const mockWhere = () => ({ where: mockWhere, - get: mockGet, + get: mockGet }); const tasksModel = { - where: mockWhere, + where: mockWhere }; try { diff --git a/test/unit/utils/userStatusValidator.test.js b/test/unit/utils/userStatusValidator.test.js index d3cbfe87b..0b7260b45 100644 --- a/test/unit/utils/userStatusValidator.test.js +++ b/test/unit/utils/userStatusValidator.test.js @@ -11,14 +11,14 @@ describe("Middleware | Validators | massUpdateUserStatus", function () { users: [ { userId: "4kAkRv9TBlOfR6WEUhoQ", - state: "IDLE", + state: "IDLE" }, { userId: "SooJK37gzjIZfFNH0tlL", - state: "ACTIVE", - }, - ], - }, + state: "ACTIVE" + } + ] + } }; const nextSpy = Sinon.spy(); await validateMassUpdate(req, res, nextSpy); @@ -29,13 +29,13 @@ describe("Middleware | Validators | massUpdateUserStatus", function () { const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const req = { body: { - users: [], - }, + users: [] + } }; const nextSpy = Sinon.spy(); await validateMassUpdate(req, res, nextSpy).catch((err) => { @@ -49,13 +49,13 @@ describe("Middleware | Validators | massUpdateUserStatus", function () { const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy, - }, + badRequest: badRequestSpy + } }; const req = { body: { - users: [123], - }, + users: [123] + } }; const nextSpy = Sinon.spy(); await validateMassUpdate(req, res, nextSpy).catch((err) => { diff --git a/test/unit/utils/users.test.js b/test/unit/utils/users.test.js index 515a6c20d..080c0539d 100644 --- a/test/unit/utils/users.test.js +++ b/test/unit/utils/users.test.js @@ -33,7 +33,7 @@ describe("users", function () { participants: ["ankur"], completionAward: { gold: 3, bronze: 300 }, lossRate: { gold: 1 }, - isNoteworthy: true, + isNoteworthy: true }; beforeEach(async function () { @@ -94,7 +94,7 @@ describe("users", function () { "SanketDhabarde", "prakashchoudhary07", "Pratiyushkumar", - "YashJain24-chief", + "YashJain24-chief" ]; expect(usernames).to.have.members(expectedUsernames); }); @@ -104,12 +104,12 @@ describe("users", function () { it("should return updateRole as false when the role already exists in userData", async function () { const userData = { roles: { - member: true, - }, + member: true + } }; const newRoles = { - member: true, + member: true }; const result = await usersUtils.getRoleToUpdate(userData, newRoles); @@ -121,11 +121,11 @@ describe("users", function () { it("should return updateRole as true and new user roles when the role doesn't exist in userData", async function () { const userData = { roles: { - member: true, - }, + member: true + } }; const newRoles = { - member: false, + member: false }; const result = await usersUtils.getRoleToUpdate(userData, newRoles); @@ -134,9 +134,9 @@ describe("users", function () { updateRole: true, newUserRoles: { roles: { - member: false, - }, - }, + member: false + } + } }); }); @@ -171,7 +171,7 @@ describe("users", function () { const from = new Date(); const until = new Date(); const nickname = usersUtils.generateOOONickname(username, from.getTime(), until.getTime(), [ - config.get("discordMavenRoleId"), + config.get("discordMavenRoleId") ]); const fromDate = from.getDate(); @@ -187,7 +187,7 @@ describe("users", function () { .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) .join("-") - .substring(0, usernameLen)} ${oooMessage}`, + .substring(0, usernameLen)} ${oooMessage}` ); }); @@ -201,14 +201,14 @@ describe("users", function () { it("should return first letters of nickname in capital case of the mavens as nickname when only username is passed and not from and until date ", async function () { const { username } = userData; const nickname = usersUtils.generateOOONickname(username, undefined, undefined, [ - config.get("discordMavenRoleId"), + config.get("discordMavenRoleId") ]); expect(nickname).to.be.equal( username .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) - .join("-"), + .join("-") ); }); }); @@ -232,19 +232,19 @@ describe("users", function () { Promise.resolve({ status: 200, ok: true, - json: () => Promise.resolve(response), - }), + json: () => Promise.resolve(response) + }) ); const status = { from: new Date().getTime(), - until: new Date().getTime(), + until: new Date().getTime() }; const nickname = usersUtils.generateOOONickname(userData.username, status.from, status.until); const responseObj = { userEffected: nickname, - message: response, + message: response }; const res = await usersUtils.updateNickname(userId, status); @@ -261,7 +261,7 @@ describe("users", function () { await usersUtils .updateNickname("1234", { from: new Date().getTime(), - until: new Date().getTime(), + until: new Date().getTime() }) .catch((err) => expect(err).to.be.equal(error)); expect(fetchStub.calledOnce).to.be.equal(false); @@ -277,7 +277,7 @@ describe("users", function () { await usersUtils .updateNickname(userId, { from: new Date().getTime(), - until: new Date().getTime(), + until: new Date().getTime() }) .catch((err) => expect(err).to.be.equal(err)); }); diff --git a/test/utils/generateBotToken.js b/test/utils/generateBotToken.js index 11259058a..bc4639e3d 100644 --- a/test/utils/generateBotToken.js +++ b/test/utils/generateBotToken.js @@ -9,14 +9,14 @@ const jwt = require("jsonwebtoken"); const generateToken = (data) => { return jwt.sign(data, config.get("botToken.botPrivateKey"), { algorithm: "RS256", - expiresIn: "1m", + expiresIn: "1m" }); }; const generateCronJobToken = (data) => { const token = jwt.sign(data, config.get("cronJobHandler.privateKey"), { algorithm: "RS256", - expiresIn: "1m", + expiresIn: "1m" }); return token; }; diff --git a/test/utils/github.js b/test/utils/github.js index 3b0c61c0d..09235f3b9 100644 --- a/test/utils/github.js +++ b/test/utils/github.js @@ -7,7 +7,7 @@ const generateGithubAuthRedirectUrl = function ({ redirectUri = `${baseURL}/auth/github/callback`, scope = "user:email", state = "", - clientId = defaultClientId, + clientId = defaultClientId }) { const encodedBaseUrl = encodeURI(baseUrl); const encodedRedirectUri = encodeURIComponent(redirectUri); diff --git a/utils/array.js b/utils/array.js index 5be4c3a7c..17f0abab9 100644 --- a/utils/array.js +++ b/utils/array.js @@ -34,5 +34,5 @@ function arraysHaveCommonItem(array1, array2) { module.exports = { chunks, - arraysHaveCommonItem, + arraysHaveCommonItem }; diff --git a/utils/badges.js b/utils/badges.js index 807447eb5..311b11e99 100644 --- a/utils/badges.js +++ b/utils/badges.js @@ -14,7 +14,7 @@ function convertFirebaseTimestampToDateTime(createdAt) { const time = serverTimestampDateTime.toLocaleTimeString(); return { date, - time, + time }; } @@ -35,8 +35,8 @@ function convertFirebaseDocumentToBadgeDocument(id, data) { createdBy, createdAt: { date, - time, - }, + time + } }; } @@ -60,5 +60,5 @@ async function assignOrRemoveBadgesInBulk({ userId, array, isRemove = false }) { module.exports = { convertFirebaseDocumentToBadgeDocument, convertFirebaseTimestampToDateTime, - assignOrRemoveBadgesInBulk, + assignOrRemoveBadgesInBulk }; diff --git a/utils/cache.js b/utils/cache.js index 44bde1147..8e2ac6c27 100644 --- a/utils/cache.js +++ b/utils/cache.js @@ -169,7 +169,7 @@ const cacheResponse = (options = {}) => { priority: priority, response: body, expiry: new Date().getTime() + minutesToMilliseconds(expiry), - size: Buffer.byteLength(body), + size: Buffer.byteLength(body) }; pool.set(key, cacheValue); if (modelKey) { diff --git a/utils/cloudinary.js b/utils/cloudinary.js index 4e35e1e25..eadc84cb9 100644 --- a/utils/cloudinary.js +++ b/utils/cloudinary.js @@ -9,5 +9,5 @@ const upload = async (file, options = {}) => { }; module.exports = { - upload, + upload }; diff --git a/utils/customWordCountValidator.js b/utils/customWordCountValidator.js index dc5dd8532..c925f31c4 100644 --- a/utils/customWordCountValidator.js +++ b/utils/customWordCountValidator.js @@ -16,5 +16,5 @@ const customWordCountValidator = (value, helpers, wordCount) => { }; module.exports = { - customWordCountValidator, + customWordCountValidator }; diff --git a/utils/data-access.js b/utils/data-access.js index ad7fa6019..01b442a03 100644 --- a/utils/data-access.js +++ b/utils/data-access.js @@ -110,5 +110,5 @@ function removeObjectField(path, object) { module.exports = { removeObjectField, - dataAccessMiddleware, + dataAccessMiddleware }; diff --git a/utils/discord-actions.js b/utils/discord-actions.js index da1f3fe99..a0b130ee4 100644 --- a/utils/discord-actions.js +++ b/utils/discord-actions.js @@ -9,7 +9,7 @@ const generateAuthTokenForCloudflare = () => { const privateKey = config.get("rdsServerlessBot.rdsServerLessPrivateKey"); const authToken = jwt.sign({}, privateKey, { algorithm: "RS256", - expiresIn: expiry, + expiresIn: expiry }); return authToken; }; @@ -17,7 +17,7 @@ const generateCloudFlareHeaders = ({ username, id } = {}) => { const authToken = generateAuthTokenForCloudflare(); const headers = { "Content-Type": "application/json", - Authorization: `Bearer ${authToken}`, + Authorization: `Bearer ${authToken}` }; if (username && id) { headers["X-Audit-Log-Reason"] = `Action initiator's username=>${username} and id=${id}`; @@ -45,16 +45,16 @@ const generateDiscordInviteLink = async () => { const channelId = config.get("discordNewComersChannelId"); const authToken = jwt.sign({}, RDS_SERVERLESS_PRIVATE_KEY, { algorithm: "RS256", - expiresIn: RDS_SERVERLESS_TTL, + expiresIn: RDS_SERVERLESS_TTL }); const inviteOptions = { - channelId: channelId, + channelId: channelId }; const response = await fetch(`${DISCORD_BASE_URL}/invite`, { method: "POST", body: JSON.stringify(inviteOptions), - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } }); if (!response.ok) { const error = await response.json(); @@ -75,5 +75,5 @@ module.exports = { generateDiscordProfileImageUrl, generateAuthTokenForCloudflare, generateCloudFlareHeaders, - generateDiscordInviteLink, + generateDiscordInviteLink }; diff --git a/utils/events.js b/utils/events.js index ee4e01fe9..dd0bea71d 100644 --- a/utils/events.js +++ b/utils/events.js @@ -23,5 +23,5 @@ const removeUnwantedProperties = (propertiesToRemove, data) => { }; module.exports = { - removeUnwantedProperties, + removeUnwantedProperties }; diff --git a/utils/extensionRequests.js b/utils/extensionRequests.js index eacbc9991..769cc4e54 100644 --- a/utils/extensionRequests.js +++ b/utils/extensionRequests.js @@ -4,7 +4,7 @@ const buildExtensionRequests = (extensionRequests, initialArray = []) => { extensionRequests.forEach((extensionRequests) => { initialArray.push({ id: extensionRequests.id, - ...extensionRequests.data(), + ...extensionRequests.data() }); }); } @@ -70,5 +70,5 @@ module.exports = { buildExtensionRequests, formatExtensionRequest, transformQuery, - generateNextLink, + generateNextLink }; diff --git a/utils/fetch.js b/utils/fetch.js index 9204fd395..796e6bc19 100644 --- a/utils/fetch.js +++ b/utils/fetch.js @@ -19,7 +19,7 @@ const fetch = async (url, method = "get", params = null, data = null, headers = params, data, headers, - ...options, + ...options }); return response; } catch (err) { @@ -29,5 +29,5 @@ const fetch = async (url, method = "get", params = null, data = null, headers = }; module.exports = { - fetch, + fetch }; diff --git a/utils/fetchMultiplePageResults.js b/utils/fetchMultiplePageResults.js index deb9c9624..c322bfac4 100644 --- a/utils/fetchMultiplePageResults.js +++ b/utils/fetchMultiplePageResults.js @@ -15,5 +15,5 @@ const fetchMultiplePageResults = async (callbackFn, params) => { }; module.exports = { - fetchMultiplePageResults, + fetchMultiplePageResults }; diff --git a/utils/firestore.js b/utils/firestore.js index 41e8dc713..b5b1620a7 100644 --- a/utils/firestore.js +++ b/utils/firestore.js @@ -6,7 +6,7 @@ const config = require("config"); const credentialsObject = JSON.parse(config.firestore); admin.initializeApp({ - credential: admin.credential.cert(credentialsObject), + credential: admin.credential.cert(credentialsObject) }); const db = admin.firestore(); diff --git a/utils/helper.js b/utils/helper.js index b0ab267d0..a9056bef8 100644 --- a/utils/helper.js +++ b/utils/helper.js @@ -51,7 +51,7 @@ const getPaginatedLink = ({ query = {}, paramsToExclude = ["page", "next", "prev"], cursorKey, - docId, + docId }) => { let paginatedLink = endpoint + "?"; @@ -92,5 +92,5 @@ module.exports = { getQualifiers, getDateTimeRangeForPRs, getPaginatedLink, - findSubscribedGroupIds, + findSubscribedGroupIds }; diff --git a/utils/logs.js b/utils/logs.js index cadfb6f6a..4aaf4d77e 100644 --- a/utils/logs.js +++ b/utils/logs.js @@ -27,13 +27,13 @@ async function getTasksFromLogs(allLogs) { .where( admin.firestore.FieldPath.documentId(), "in", - Array.from(taskIds).filter((e) => e), + Array.from(taskIds).filter((e) => e) ) .get(); data.forEach((doc) => { taskDetails.push({ id: doc.id, - ...doc.data(), + ...doc.data() }); }); } @@ -69,7 +69,7 @@ function formatOOORequestLogs(logsSnapshot, usersMap, type) { requestId: meta.requestId, from: body.from, until: body.until, - message: body.message, + message: body.message }; default: return {}; @@ -84,7 +84,7 @@ function formatExtensionRequestsLog(logsSnapshot, usersMap, tasksMap) { logsSnapshot.body.username, taskId: meta.taskId, taskTitle: tasksMap[logsSnapshot.meta.taskId]?.title ?? "Untitled Task", - ...flattenObject(logsSnapshot), + ...flattenObject(logsSnapshot) }; } @@ -94,7 +94,7 @@ function formatTaskUpdateLogs(logsSnapshot, usersMap, tasksMap) { user: logsSnapshot.meta.username ?? usersMap[meta.userId]?.username, taskId: meta.taskId, taskTitle: tasksMap[meta.taskId]?.title, - ...flattenObject(logsSnapshot), + ...flattenObject(logsSnapshot) }; } @@ -105,7 +105,7 @@ function formatProfileDiffLogs(logsSnapshot, usersMap, type) { user: usersMap[meta.userId]?.username, message: body.message, // eslint-disable-next-line security/detect-object-injection - [actionKey]: usersMap[meta[actionKey]]?.username, + [actionKey]: usersMap[meta[actionKey]]?.username }; } @@ -118,7 +118,7 @@ function formatTaskRequestsLogs(logsSnapshot, usersMap, tasksMap) { taskTitle: tasksMap[body.taskId]?.title, proposedStartDate: formattedData.users[0].proposedStartDate, proposedDeadline: formattedData.users[0].proposedDeadline, - ..._.omit(formattedData, "users"), + ..._.omit(formattedData, "users") }; } @@ -156,5 +156,5 @@ module.exports = { convertTimestamp, getTasksFromLogs, formatLogsForFeed, - getUsersListFromLogs, + getUsersListFromLogs }; diff --git a/utils/monitor.js b/utils/monitor.js index 3f4181ceb..354de9c79 100644 --- a/utils/monitor.js +++ b/utils/monitor.js @@ -59,5 +59,5 @@ const getTrackedProgressDocs = async (query) => { module.exports = { buildQueryByTypeId, buildQueryForFetchingDocsOfType, - getTrackedProgressDocs, + getTrackedProgressDocs }; diff --git a/utils/multer.js b/utils/multer.js index 7d96718dc..a67f19dd5 100644 --- a/utils/multer.js +++ b/utils/multer.js @@ -19,7 +19,7 @@ const fileFilterImagesOnly = (req, file, cb) => { const upload = multer({ storage: multerMemoryStorage, limits: { fileSize: profileFileSize }, - fileFilter: fileFilterImagesOnly, + fileFilter: fileFilterImagesOnly }); const multerErrorHandling = (err, req, res, next) => { @@ -41,5 +41,5 @@ const isMulterError = (err) => { module.exports = { upload, multerErrorHandling, - isMulterError, + isMulterError }; diff --git a/utils/obfuscate.js b/utils/obfuscate.js index 92e0aeea3..961ecf798 100644 --- a/utils/obfuscate.js +++ b/utils/obfuscate.js @@ -8,5 +8,5 @@ const obfuscateMail = (email) => { module.exports = { obfuscatePhone, - obfuscateMail, + obfuscateMail }; diff --git a/utils/progresses.js b/utils/progresses.js index 6459a4beb..94ee90a00 100644 --- a/utils/progresses.js +++ b/utils/progresses.js @@ -7,7 +7,7 @@ const progressesModel = fireStore.collection("progresses"); const { PROGRESSES_RESPONSE_MESSAGES: { PROGRESS_DOCUMENT_NOT_FOUND }, MILLISECONDS_IN_DAY, - PROGRESS_VALID_SORT_FIELDS, + PROGRESS_VALID_SORT_FIELDS } = require("../constants/progresses"); const { convertTimestampToUTCStartOrEndOfDay } = require("./time"); const progressesCollection = fireStore.collection("progresses"); @@ -234,5 +234,5 @@ module.exports = { buildRangeProgressQuery, getProgressRecords, buildQueryToSearchProgressByDay, - buildProgressQueryForMissedUpdates, + buildProgressQueryForMissedUpdates }; diff --git a/utils/pullRequests.js b/utils/pullRequests.js index 91efc577c..fe2e178c7 100644 --- a/utils/pullRequests.js +++ b/utils/pullRequests.js @@ -48,7 +48,7 @@ const getFilteredPRsOrIssues = async (qualifiers) => { allPRs = await fetchMultiplePageResults(githubServiceCallback, { searchParams, - resultOptions, + resultOptions }); return allPRs; @@ -56,10 +56,10 @@ const getFilteredPRsOrIssues = async (qualifiers) => { const ORDER_TYPE = { ASC: "asc", - DESC: "desc", + DESC: "desc" }; module.exports = { getFilteredPRsOrIssues, - ORDER_TYPE, + ORDER_TYPE }; diff --git a/utils/rateLimiting.js b/utils/rateLimiting.js index 50bebea69..13d76e4f5 100644 --- a/utils/rateLimiting.js +++ b/utils/rateLimiting.js @@ -9,5 +9,5 @@ function getRetrySeconds(msBeforeNext, fallbackValue = 1) { } module.exports = { - getRetrySeconds, + getRetrySeconds }; diff --git a/utils/sendTaskUpdate.js b/utils/sendTaskUpdate.js index 24b78a78f..e40414c72 100644 --- a/utils/sendTaskUpdate.js +++ b/utils/sendTaskUpdate.js @@ -11,13 +11,13 @@ export const sendTaskUpdate = async (completed, blockers, planned, userName, tas planned, userName, taskId, - taskTitle, - }, + taskTitle + } }; await fetch(`${DISCORD_BASE_URL}/task/update`, { method: "POST", headers, - body: JSON.stringify(body), + body: JSON.stringify(body) }); } catch (error) { logger.error("Something went wrong", error); diff --git a/utils/tasks.js b/utils/tasks.js index 639d26ac5..d5cdb0838 100644 --- a/utils/tasks.js +++ b/utils/tasks.js @@ -27,7 +27,7 @@ const fromFirestoreData = async (task) => { const updatedTask = { ...task, createdBy, - participants, + participants }; if (assigneeName || assigneeId) { @@ -59,7 +59,7 @@ const buildTasks = (tasks, initialTaskArray = []) => { tasks.forEach((task) => { initialTaskArray.push({ id: task.id, - ...task.data(), + ...task.data() }); }); } @@ -87,7 +87,7 @@ const transformQuery = (dev = false, status = "", size, page, assignee = "", tit dev: transformedDev, assignee: transformedAssignee, title: transformedTitle, - ...query, + ...query }; }; @@ -155,5 +155,5 @@ module.exports = { transformQuery, parseSearchQuery, buildTasksQueryForMissedUpdates, - transformTasksUsersQuery, + transformTasksUsersQuery }; diff --git a/utils/time.js b/utils/time.js index f2ca9a6c0..33acf08a2 100644 --- a/utils/time.js +++ b/utils/time.js @@ -99,5 +99,5 @@ module.exports = { getBeforeHourTime, convertTimestampToUTCStartOrEndOfDay, getCurrentEpochTime, - convertMillisToSeconds, + convertMillisToSeconds }; diff --git a/utils/userStatus.js b/utils/userStatus.js index d6e353887..a20345c22 100644 --- a/utils/userStatus.js +++ b/utils/userStatus.js @@ -70,8 +70,8 @@ const generateNewStatus = (isActive) => { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp, - }, + updatedAt: currentTimeStamp + } }; if (isActive) { @@ -96,8 +96,8 @@ const generateAlreadyExistingStatusResponse = (state) => { status: "success", message: `The status is already ${state}`, data: { - currentStatus: state, - }, + currentStatus: state + } }; }; @@ -121,7 +121,7 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState data: { currentStatus: { state }, ...docData - }, + } } = latestStatusData; const currentTimeStamp = new Date().getTime(); const updatedStatusData = { @@ -131,8 +131,8 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp, - }, + updatedAt: currentTimeStamp + } }; try { await collection.doc(id).update(updatedStatusData); @@ -146,8 +146,8 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState message: `The status has been updated to ${newState}`, data: { previousStatus: state, - currentStatus: newState, - }, + currentStatus: newState + } }; }; @@ -167,10 +167,10 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState const updateFutureStatusToState = async (collection, latestStatusData, newState) => { const { id, - data: { futureStatus, ...docData }, + data: { futureStatus, ...docData } } = latestStatusData; const { - currentStatus: { state, until }, + currentStatus: { state, until } } = docData; const currentTimeStamp = new Date().getTime(); const updatedStatusData = { @@ -180,8 +180,8 @@ const updateFutureStatusToState = async (collection, latestStatusData, newState) message: "", from: until, until: "", - updatedAt: currentTimeStamp, - }, + updatedAt: currentTimeStamp + } }; try { await collection.doc(id).update(updatedStatusData); @@ -194,8 +194,8 @@ const updateFutureStatusToState = async (collection, latestStatusData, newState) message: `As the user is currently ${state}, the future status has been updated to ${newState}.`, data: { currentStatus: state, - futureStatus: newState, - }, + futureStatus: newState + } }; }; @@ -222,8 +222,8 @@ const createUserStatusWithState = async (userId, collection, state) => { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp, - }, + updatedAt: currentTimeStamp + } }); } catch (err) { logger.error(`error creating the current status for user id ${userId} - ${err.message}`); @@ -233,8 +233,8 @@ const createUserStatusWithState = async (userId, collection, state) => { status: "success", message: `UserStatus Document did not previously exist, New UserStatus Document created and updated to an ${state} status.`, data: { - currentStatus: state, - }, + currentStatus: state + } }; }; @@ -291,7 +291,7 @@ const generateErrorResponse = (message) => { return { status: 500, error: "Internal Server Error", - message: message, + message: message }; }; @@ -367,5 +367,5 @@ module.exports = { generateNewStatus, getNextDayTimeStamp, getFilteredPaginationLink, - convertTimestampsToUTC, + convertTimestampsToUTC }; diff --git a/utils/users.js b/utils/users.js index 26d0575db..a40137f10 100644 --- a/utils/users.js +++ b/utils/users.js @@ -20,7 +20,7 @@ const getUserId = async (username) => { try { const { userExists, - user: { id }, + user: { id } } = await fetchUser({ username }); return userExists ? id : false; @@ -38,7 +38,7 @@ const getUserId = async (username) => { const getUsername = async (userId) => { try { const { - user: { username }, + user: { username } } = await fetchUser({ userId }); return username; } catch (error) { @@ -57,7 +57,7 @@ const getFullName = async (userId) => { try { const { // eslint-disable-next-line camelcase - user: { first_name, last_name }, + user: { first_name, last_name } } = await fetchUser({ userId }); // eslint-disable-next-line camelcase return { first_name, last_name }; @@ -75,7 +75,7 @@ const getFullName = async (userId) => { const getUsernameElseUndefined = async (userId) => { try { const { - user: { username }, + user: { username } } = await fetchUser({ userId }); return username; } catch (error) { @@ -95,7 +95,7 @@ const getUserIdElseUndefined = async (username) => { try { const { userExists, - user: { id }, + user: { id } } = await fetchUser({ username }); return userExists ? id : false; @@ -283,7 +283,7 @@ const updateNickname = async (userId, status = {}) => { try { const { user: { discordId, username, roles = {} }, - discordJoinedAt = {}, + discordJoinedAt = {} } = await dataAccessLayer.retrieveUsers({ id: userId }); if (!discordId || !username || !discordJoinedAt || roles[ROLES.ARCHIVED]) { @@ -320,5 +320,5 @@ module.exports = { getRoleToUpdate, parseSearchQuery, generateOOONickname, - updateNickname, + updateNickname }; From 2e88f83701ac56a7bc390d5e24eedd426674d8e0 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 01:44:40 +0530 Subject: [PATCH 13/17] fix:remove the trailing comma --- .eslintrc.js | 15 +- config/custom-environment-variables.js | 48 ++-- config/default.js | 42 +-- config/development.js | 20 +- config/production.js | 8 +- config/staging.js | 14 +- controllers/arts.js | 10 +- controllers/auction.js | 4 +- controllers/auth.js | 24 +- controllers/badges.js | 12 +- controllers/challenge.js | 10 +- controllers/cloudflareCache.js | 10 +- controllers/contributions.js | 2 +- controllers/discordactions.js | 74 ++--- controllers/events.js | 58 ++-- controllers/extensionRequests.js | 58 ++-- controllers/external-accounts.js | 40 +-- controllers/fcmToken.js | 4 +- controllers/goals.js | 2 +- controllers/health.js | 4 +- controllers/issues.js | 14 +- controllers/items.js | 8 +- controllers/levels.js | 12 +- controllers/logs.js | 12 +- controllers/members.js | 12 +- controllers/monitor.js | 24 +- controllers/notify.js | 8 +- controllers/profileDiffs.js | 4 +- controllers/progresses.js | 30 +- controllers/pullRequests.js | 14 +- controllers/recruiters.js | 6 +- controllers/staging.js | 36 +-- controllers/stocks.js | 8 +- controllers/tags.js | 14 +- controllers/tasks.js | 66 ++--- controllers/tasksRequests.js | 26 +- controllers/trading.js | 4 +- controllers/userStatus.js | 18 +- controllers/users.js | 104 +++---- controllers/wallets.js | 6 +- middlewares/authenticate.js | 2 +- middlewares/authorization.js | 4 +- middlewares/contentTypeCheck.js | 2 +- middlewares/index.js | 8 +- middlewares/passport.js | 6 +- middlewares/rateLimiting.js | 6 +- middlewares/taskRequests.js | 2 +- middlewares/validators/arts.js | 4 +- middlewares/validators/auctions.js | 6 +- middlewares/validators/badges.js | 8 +- middlewares/validators/challenges.js | 4 +- middlewares/validators/discordactions.js | 6 +- middlewares/validators/events.js | 22 +- middlewares/validators/extensionRequests.js | 16 +- middlewares/validators/external-accounts.js | 8 +- middlewares/validators/fcmToken.js | 2 +- middlewares/validators/items.js | 10 +- middlewares/validators/levels.js | 4 +- middlewares/validators/members.js | 4 +- middlewares/validators/monitor.js | 34 +-- middlewares/validators/notify.js | 2 +- middlewares/validators/progresses.js | 36 +-- middlewares/validators/qrCodeAuth.js | 8 +- middlewares/validators/recruiter.js | 4 +- middlewares/validators/staging.js | 6 +- middlewares/validators/stocks.js | 4 +- middlewares/validators/tags.js | 4 +- middlewares/validators/task-requests.js | 22 +- middlewares/validators/tasks.js | 54 ++-- middlewares/validators/trading.js | 4 +- middlewares/validators/user.js | 46 +-- middlewares/validators/userStatus.js | 40 +-- mockdata/appOwners.js | 14 +- models/arts.js | 6 +- models/auctions.js | 12 +- models/badges.js | 8 +- models/chaincodes.js | 4 +- models/challenges.js | 8 +- models/discordactions.js | 72 ++--- models/events.js | 32 +-- models/extensionRequests.js | 8 +- models/external-accounts.js | 2 +- models/fcmToken.js | 6 +- models/items.js | 6 +- models/levels.js | 4 +- models/logs.js | 16 +- models/members.js | 10 +- models/monitor.js | 2 +- models/profileDiffs.js | 8 +- models/progresses.js | 4 +- models/qrCodeAuth.js | 14 +- models/recruiters.js | 8 +- models/stocks.js | 8 +- models/tags.js | 6 +- models/taskRequests.js | 66 ++--- models/tasks.js | 44 +-- models/userStatus.js | 60 ++-- models/users.js | 56 ++-- models/wallets.js | 8 +- newrelic.js | 10 +- nyc.config.js | 4 +- package.json | 2 +- routes/badges.js | 6 +- routes/discordactions.js | 14 +- routes/events.js | 10 +- routes/extensionRequests.js | 6 +- routes/external-accounts.js | 2 +- routes/monitor.js | 8 +- routes/tasks.js | 10 +- routes/userStatus.js | 6 +- routes/users.js | 8 +- scripts/validateSetup.js | 4 +- services/EventAPIService.js | 8 +- services/EventTokenService.js | 6 +- services/authService.js | 4 +- services/cloudflareService.js | 6 +- services/contributions.js | 12 +- services/dataAccessLayer.js | 4 +- services/discordMembersService.js | 4 +- services/discordService.js | 20 +- services/githubService.js | 52 ++-- services/goalService.js | 8 +- services/imageService.js | 8 +- services/issuesService.js | 4 +- services/tasks.js | 6 +- services/tradingService.js | 12 +- services/users.js | 10 +- test/config/test.js | 44 +-- test/fixtures/arts/arts.js | 6 +- test/fixtures/auctions/auctions.js | 2 +- test/fixtures/auth/githubUserInfo.js | 14 +- test/fixtures/badges/badges.js | 20 +- test/fixtures/challenges/challenges.js | 4 +- test/fixtures/cloudflareCache/data.js | 26 +- test/fixtures/contributions/githubPRInfo.js | 78 +++--- test/fixtures/currencies/currencies.js | 6 +- .../discordResponse/discord-response.js | 60 ++-- .../fixtures/discordactions/discordactions.js | 22 +- test/fixtures/events/event-codes.js | 36 +-- test/fixtures/events/events.js | 12 +- test/fixtures/events/peers.js | 2 +- .../external-accounts/external-accounts.js | 18 +- test/fixtures/featureFlag/featureFlag.js | 6 +- test/fixtures/goals/Token.js | 4 +- test/fixtures/issues/issues.js | 16 +- test/fixtures/logs/archievedUsers.js | 32 +-- test/fixtures/logs/extensionRequests.js | 34 +-- test/fixtures/logs/requests.js | 18 +- test/fixtures/logs/tasks.js | 32 +-- test/fixtures/profileDiffs/profileDiffs.js | 4 +- test/fixtures/progress/progresses.js | 50 ++-- test/fixtures/pullrequests/pullrequests.js | 38 +-- test/fixtures/qrCodeAuth/qrCodeAuth.js | 4 +- test/fixtures/recruiter/recruiter.js | 6 +- test/fixtures/standup/standup.js | 6 +- test/fixtures/task-requests/task-requests.js | 20 +- .../multiple-extension-requests-tasks.js | 10 +- test/fixtures/tasks/tasks.js | 26 +- test/fixtures/tasks/tasks1.js | 4 +- test/fixtures/time/time.js | 40 +-- test/fixtures/trackedProgress/index.js | 12 +- test/fixtures/user/inDiscord.js | 18 +- test/fixtures/user/join.js | 12 +- test/fixtures/user/photo-verification.js | 20 +- test/fixtures/user/user.js | 128 ++++----- test/fixtures/userBadges/userBadges.js | 6 +- .../fixtures/userDeviceInfo/userDeviceInfo.js | 4 +- test/fixtures/userStatus/userStatus.js | 88 +++--- test/integration/arts.test.js | 4 +- test/integration/auction.test.js | 4 +- test/integration/auth.test.js | 2 +- test/integration/badges.test.js | 12 +- test/integration/cloudflareCache.test.js | 4 +- test/integration/contributions.test.js | 8 +- test/integration/discord.test.js | 4 +- test/integration/discordactions.test.js | 114 ++++---- test/integration/events.test.js | 42 +-- test/integration/extensionRequests.test.js | 79 +++--- test/integration/external-accounts.test.js | 50 ++-- test/integration/fcmToken.test.js | 12 +- test/integration/goals.test.js | 10 +- test/integration/health.test.js | 2 +- test/integration/logs.test.js | 6 +- test/integration/monitor.js | 38 +-- .../multilpleExtensionRequest.test.js | 30 +- test/integration/notify.test.js | 16 +- test/integration/progressesTasks.test.js | 16 +- test/integration/progressesUsers.test.js | 16 +- test/integration/qrCodeAuth.test.js | 2 +- test/integration/recruiters.test.js | 2 +- test/integration/restricted.test.js | 8 +- .../integration/taskBasedStatusUpdate.test.js | 34 +-- test/integration/taskRequests.test.js | 56 ++-- test/integration/tasks.test.js | 96 +++---- test/integration/userStatus.test.js | 36 +-- test/integration/users.test.js | 152 +++++----- test/integration/usersFilter.test.js | 40 +-- test/unit/middlewares/arts-validator.test.js | 12 +- .../middlewares/auctions-validator.test.js | 24 +- test/unit/middlewares/authorizeBot.test.js | 24 +- test/unit/middlewares/cache.test.js | 16 +- .../middlewares/challenges-validator.test.js | 12 +- .../unit/middlewares/contentTypeCheck.test.js | 8 +- .../middlewares/data-access-layer.test.js | 16 +- .../discordactions-validators.test.js | 44 +-- .../extension-request-validator.test.js | 28 +- .../external-accounts-validator.test.js | 22 +- .../middlewares/fcmToken-validator.test.js | 12 +- .../unit/middlewares/notify-validator.test.js | 24 +- .../middlewares/qrCodeAuthValidator.test.js | 38 +-- test/unit/middlewares/rateLimiting.test.js | 6 +- test/unit/middlewares/security.test.js | 4 +- test/unit/middlewares/task-request.test.js | 116 ++++---- test/unit/middlewares/tasks-validator.test.js | 264 +++++++++--------- test/unit/middlewares/tasks.test.js | 8 +- test/unit/middlewares/user-validator.test.js | 120 ++++---- test/unit/middlewares/userStatusValidator.js | 12 +- .../middlewares/userStatusValidator.test.js | 12 +- test/unit/middlewares/users-validator.test.js | 26 +- test/unit/models/auctions.test.js | 2 +- test/unit/models/challenges.test.js | 4 +- test/unit/models/discordactions.test.js | 82 +++--- test/unit/models/events.test.js | 16 +- test/unit/models/external-accounts.test.js | 2 +- test/unit/models/logs.test.js | 4 +- test/unit/models/qrCodeAuth.test.js | 14 +- test/unit/models/recruiters.test.js | 2 +- test/unit/models/task-requests.test.js | 66 ++--- .../unit/models/taskBasedStatusUpdate.test.js | 20 +- test/unit/models/tasks.test.js | 18 +- test/unit/models/users.test.js | 8 +- test/unit/services/dataAccessLayer.test.js | 2 +- .../services/discordMembersService.test.js | 10 +- test/unit/services/discordService.test.js | 24 +- .../services/getUserIdsFromRoleId.test.js | 4 +- test/unit/services/githubService.test.js | 46 +-- test/unit/services/tasks.test.js | 8 +- test/unit/services/users.test.js | 10 +- .../utils/customWordCountValidator.test.js | 4 +- test/unit/utils/data-access.test.js | 50 ++-- test/unit/utils/events.test.js | 16 +- test/unit/utils/helper.test.js | 14 +- test/unit/utils/logs.test.js | 70 ++--- test/unit/utils/parseSearchQuery.test.js | 6 +- test/unit/utils/queryParser.test.js | 4 +- test/unit/utils/rqlQueryParser.test.js | 14 +- test/unit/utils/sendTaskUpdate.test.js | 4 +- .../unit/utils/taskBasedStatusUpdates.test.js | 72 ++--- test/unit/utils/tasks.test.js | 4 +- test/unit/utils/userStatus.test.js | 18 +- test/unit/utils/userStatusValidator.test.js | 26 +- test/unit/utils/users.test.js | 42 +-- test/utils/generateBotToken.js | 4 +- test/utils/github.js | 2 +- utils/array.js | 2 +- utils/badges.js | 8 +- utils/cache.js | 2 +- utils/cloudinary.js | 2 +- utils/customWordCountValidator.js | 2 +- utils/data-access.js | 2 +- utils/discord-actions.js | 12 +- utils/events.js | 2 +- utils/extensionRequests.js | 4 +- utils/fetch.js | 4 +- utils/fetchMultiplePageResults.js | 2 +- utils/firestore.js | 2 +- utils/helper.js | 4 +- utils/logs.js | 16 +- utils/monitor.js | 2 +- utils/multer.js | 4 +- utils/obfuscate.js | 2 +- utils/progresses.js | 4 +- utils/pullRequests.js | 6 +- utils/rateLimiting.js | 2 +- utils/sendTaskUpdate.js | 6 +- utils/tasks.js | 8 +- utils/time.js | 2 +- utils/userStatus.js | 42 +-- utils/users.js | 14 +- 279 files changed, 2797 insertions(+), 2801 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index be6b69a42..c03c81df1 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -6,16 +6,16 @@ module.exports = { commonjs: true, es2021: true, node: true, - mocha: true + mocha: true, }, extends: ["standard", "plugin:mocha/recommended", "plugin:security/recommended", "plugin:prettier/recommended"], plugins: ["mocha", "security", "prettier"], parserOptions: { - ecmaVersion: 13 + ecmaVersion: 13, }, globals: { config: "readonly", - logger: "readonly" + logger: "readonly", }, rules: { // Custom eslint rules @@ -28,12 +28,7 @@ module.exports = { "mocha/no-exclusive-tests": "error", // Prettier for formatting - "prettier/prettier": [ - "error", - { - trailingComma: "none" - } - ] + "prettier/prettier": ["error"], }, - ignorePatterns: ["public/*", "dist/*"] + ignorePatterns: ["public/*", "dist/*"], }; diff --git a/config/custom-environment-variables.js b/config/custom-environment-variables.js index ba15ea86b..f22c5756e 100644 --- a/config/custom-environment-variables.js +++ b/config/custom-environment-variables.js @@ -8,25 +8,25 @@ module.exports = { port: { __name: "PORT", - __format: "number" + __format: "number", }, enableFileLogs: { __name: "ENABLE_FILE_LOGS", - __format: "boolean" + __format: "boolean", }, enableConsoleLogs: { __name: "ENABLE_CONSOLE_LOGS", - __format: "boolean" + __format: "boolean", }, githubApi: { baseUrl: "GITHUB_API_BASE_URL", - org: "GITHUB_ORGANISATION" + org: "GITHUB_ORGANISATION", }, githubOauth: { clientId: "GITHUB_CLIENT_ID", - clientSecret: "GITHUB_CLIENT_SECRET" + clientSecret: "GITHUB_CLIENT_SECRET", }, githubAccessToken: "GITHUB_PERSONAL_ACCESS_TOKEN", @@ -35,76 +35,76 @@ module.exports = { services: { rdsApi: { - baseUrl: "SERVICES_RDSAPI_BASEURL" + baseUrl: "SERVICES_RDSAPI_BASEURL", }, rdsUi: { baseUrl: "SERVICES_RDSUI_BASEURL", routes: { - authRedirection: "SERVICES_RDSUI_ROUTES_AUTH_REDIRECTION" - } + authRedirection: "SERVICES_RDSUI_ROUTES_AUTH_REDIRECTION", + }, }, goalAPI: { baseUrl: "GOALS_BASE_URL", - secretKey: "GOALS_SECRET_KEY" + secretKey: "GOALS_SECRET_KEY", }, discordBot: { - baseUrl: "DISCORD_BASE_URL" - } + baseUrl: "DISCORD_BASE_URL", + }, }, userToken: { cookieName: "COOKIE_NAME", ttl: { __name: "USER_TOKEN_TTL", - __format: "number" + __format: "number", }, refreshTtl: { __name: "USER_TOKEN_REFRESH_TTL", - __format: "number" + __format: "number", }, publicKey: "PUBLIC_KEY", - privateKey: "PRIVATE_KEY" + privateKey: "PRIVATE_KEY", }, botToken: { - botPublicKey: "BOT_PUBLIC_KEY" + botPublicKey: "BOT_PUBLIC_KEY", }, cronJobHandler: { - publicKey: "CRON_JOB_PUBLIC_KEY" + publicKey: "CRON_JOB_PUBLIC_KEY", }, rdsServerlessBot: { rdsServerLessPrivateKey: "RDS_SERVERLESS_PRIVATE_KEY", - ttl: "RDS_SERVERLESS_TTL" + ttl: "RDS_SERVERLESS_TTL", }, cloudinary: { cloud_name: "CLOUDINARY_CLOUD_NAME", api_key: "CLOUDINARY_API_KEY", - api_secret: "CLOUDINARY_API_SECRET_KEY" + api_secret: "CLOUDINARY_API_SECRET_KEY", }, integrations: { newrelic: { appName: "INTEGRATIONS_NEWRELIC_APPNAME", - licenseKey: "INTEGRATIONS_NEWRELIC_LICENSEKEY" - } + licenseKey: "INTEGRATIONS_NEWRELIC_LICENSEKEY", + }, }, routesCacheTTL: { - "/members": "ROUTESCACHETTL_MEMBERS" + "/members": "ROUTESCACHETTL_MEMBERS", }, Event100ms: { APP_ACCESS_KEY: "EVENT_100MS_APP_ACCESS_KEY", - APP_SECRET: "EVENT_100MS_APP_SECRET" + APP_SECRET: "EVENT_100MS_APP_SECRET", }, externalServices: { - EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY" - } + EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY", + }, }; diff --git a/config/default.js b/config/default.js index dcbf0f224..71098835d 100644 --- a/config/default.js +++ b/config/default.js @@ -17,12 +17,12 @@ module.exports = { discordMissedUpdatesRoleId: "", githubApi: { baseUrl: "https://api.github.com", - org: "Real-Dev-Squad" + org: "Real-Dev-Squad", }, githubOauth: { clientId: "", - clientSecret: "" + clientSecret: "", }, firestore: `{ @@ -40,26 +40,26 @@ module.exports = { services: { rdsApi: { - baseUrl: "https://api.realdevsquad.com" + baseUrl: "https://api.realdevsquad.com", }, rdsUi: { baseUrl: "https://realdevsquad.com", routes: { - authRedirection: "/goto" + authRedirection: "/goto", }, goalAPI: { baseUrl: "https://goals-api.realdevsquad.com", - cookieName: `goals-session-${NODE_ENV}` - } + cookieName: `goals-session-${NODE_ENV}`, + }, }, discordBot: { - baseUrl: "" - } + baseUrl: "", + }, }, cors: { - allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)/ // Allow realdevsquad.com, *.realdevsquad.com + allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)/, // Allow realdevsquad.com, *.realdevsquad.com }, userToken: { @@ -68,54 +68,54 @@ module.exports = { ttl: 30 * 24 * 60 * 60, // in seconds refreshTtl: 180 * 24 * 60 * 60, // in seconds publicKey: "", - privateKey: "" + privateKey: "", }, botToken: { - botPublicKey: "" + botPublicKey: "", }, // Cloudinary keys cloudinary: { cloud_name: "Cloud_name", api_key: "API_KEY", - api_secret: "api_secret_key" + api_secret: "api_secret_key", }, // Cloudflare cloudflare: { CLOUDFLARE_ZONE_ID: "Cloudflare_Zone_ID_or_ID", CLOUDFLARE_X_AUTH_KEY: "Cloudflare_API_Auth_Key", - CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email" + CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email", }, rdsServerlessBot: { rdsServerLessPrivateKey: "RDS_SERVERLESS_PRIVATE_KEY", - ttl: 60 + ttl: 60, }, cronJobHandler: { - publicKey: "CRON_JOB_PUBLIC_KEY" + publicKey: "CRON_JOB_PUBLIC_KEY", }, integrations: { newrelic: { appName: "RDS_API_production", - licenseKey: "" - } + licenseKey: "", + }, }, routesCacheTTL: { - "/members": 900 + "/members": 900, }, Event100ms: { APP_ACCESS_KEY: "EVENT_100MS_APP_ACCESS_KEY", - APP_SECRET: "EVENT_100MS_APP_SECRET" + APP_SECRET: "EVENT_100MS_APP_SECRET", }, githubAccessToken: "GITHUB_PERSONAL_ACCESS_TOKEN", externalServices: { - EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY" - } + EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY", + }, }; diff --git a/config/development.js b/config/development.js index f35a3bef8..0e4d3bd44 100644 --- a/config/development.js +++ b/config/development.js @@ -14,20 +14,20 @@ module.exports = { services: { rdsApi: { - baseUrl: localUrl + baseUrl: localUrl, }, rdsUi: { baseUrl: localUrl, routes: { - authRedirection: "/healthcheck" - } + authRedirection: "/healthcheck", + }, }, goalAPI: { baseUrl: "https://staging-goals-api.realdevsquad.com", - secretKey: "123456789" - } + secretKey: "123456789", + }, }, userToken: { @@ -53,7 +53,7 @@ module.exports = { "NoWsgW64Z/+89cbKFMzgHdvhvL7rQNhBAAm1byPmn8aTV7LlTclMWfb4sV6e+ef8\n" + "QnrvpfRSihRktA2dDQJAH+dQBx3nG3bZ9khVAZQ1jTJ7j0cKixaGndFuYS1TJvJ2\n" + "Zzn584h/xbSIcP9/4SXmEK3wtoueUtMkvS3yKTvk+w==\n" + - "-----END RSA PRIVATE KEY-----" + "-----END RSA PRIVATE KEY-----", }, botToken: { @@ -66,12 +66,12 @@ module.exports = { "GJhpAAmD6vk0MeZk1NeQmyQp/uOPpWmVRzgyK+XVc6AwZHV+/n6xAIT91/DjJlD1\n" + "N+nS7Sqo3RJ04+KlNRUclzINOC7JBYkKtG7YQ0U9nNLkRrRlON+O6tY4OT86T1O1\n" + "AgMBAAE=\n" + - "-----END PUBLIC KEY-----" + "-----END PUBLIC KEY-----", }, integrations: { newrelic: { - appName: "RDS_API_development" - } - } + appName: "RDS_API_development", + }, + }, }; diff --git a/config/production.js b/config/production.js index bcadcfc74..b1d870cbf 100644 --- a/config/production.js +++ b/config/production.js @@ -10,12 +10,12 @@ module.exports = { discordMissedUpdatesRoleId: "1183553844811153458", userToken: { cookieName: "rds-session", - cookieV2Name: "rds-session-v2" + cookieV2Name: "rds-session-v2", }, services: { goalAPI: { - baseUrl: "https://goals-api.realdevsquad.com" - } - } + baseUrl: "https://goals-api.realdevsquad.com", + }, + }, }; diff --git a/config/staging.js b/config/staging.js index 5f426b539..5e26e7fbe 100644 --- a/config/staging.js +++ b/config/staging.js @@ -12,22 +12,22 @@ module.exports = { enableConsoleLogs: true, githubOauth: { - clientId: "c4a84431feaf604e89d1" + clientId: "c4a84431feaf604e89d1", }, services: { rdsApi: { - baseUrl: "https://staging-api.realdevsquad.com" + baseUrl: "https://staging-api.realdevsquad.com", }, goalAPI: { baseUrl: "https://staging-goals-api.realdevsquad.com", - secretKey: "123456789" - } + secretKey: "123456789", + }, }, integrations: { newrelic: { - appName: "RDS_API_staging" - } - } + appName: "RDS_API_staging", + }, + }, }; diff --git a/controllers/arts.js b/controllers/arts.js index 6443b7920..b259d21dc 100644 --- a/controllers/arts.js +++ b/controllers/arts.js @@ -13,7 +13,7 @@ const addArt = async (req, res) => { return res.json({ message: "Art successfully added!", - id: artId + id: artId, }); } catch (error) { logger.error(`Error adding art: ${error}`); @@ -32,7 +32,7 @@ const fetchArts = async (req, res) => { const allArt = await artsQuery.fetchArts(); return res.json({ message: allArt.length > 0 ? "Arts returned successfully!" : "No arts found", - arts: allArt.length > 0 ? allArt : [] + arts: allArt.length > 0 ? allArt : [], }); } catch (err) { logger.error(`Error while fetching arts ${err}`); @@ -52,7 +52,7 @@ const getSelfArts = async (req, res) => { const arts = await artsQuery.fetchUserArts(id); return res.json({ message: "User arts returned successfully!", - arts + arts, }); } catch (err) { logger.error(`Error while getting user arts ${err}`); @@ -66,7 +66,7 @@ const getUserArts = async (req, res) => { const arts = await artsQuery.fetchUserArts(userId); return res.json({ message: `User Arts of userId ${userId} returned successfully`, - arts + arts, }); } catch (err) { logger.error(`Error while getting user arts ${err}`); @@ -78,5 +78,5 @@ module.exports = { addArt, fetchArts, getSelfArts, - getUserArts + getUserArts, }; diff --git a/controllers/auction.js b/controllers/auction.js index 9313657c9..9a4c6f08f 100644 --- a/controllers/auction.js +++ b/controllers/auction.js @@ -13,7 +13,7 @@ const fetchAvailableAuctions = async (_req, res) => { const availableAuctions = await auctions.fetchAvailableAuctions(); return res.json({ message: "Auctions returned successfully!", - auctions: availableAuctions + auctions: availableAuctions, }); } catch (error) { logger.error(`Error fetching available auctions: ${error}`); @@ -93,5 +93,5 @@ module.exports = { fetchAuctionById, fetchAvailableAuctions, createNewAuction, - makeNewBid + makeNewBid, }; diff --git a/controllers/auth.js b/controllers/auth.js index b4d232e73..bf0835a29 100644 --- a/controllers/auth.js +++ b/controllers/auth.js @@ -6,7 +6,7 @@ const dataAccess = require("../services/dataAccessLayer"); const { SOMETHING_WENT_WRONG, DATA_ADDED_SUCCESSFULLY, - USER_DOES_NOT_EXIST_ERROR + USER_DOES_NOT_EXIST_ERROR, } = require("../constants/errorMessages"); /** @@ -28,7 +28,7 @@ const githubAuthLogin = (req, res, next) => { } return passport.authenticate("github", { scope: ["user:email"], - state: redirectURL + state: redirectURL, })(req, res, next); }; @@ -80,7 +80,7 @@ const githubAuthCallback = (req, res, next) => { github_created_at: Number(new Date(user._json.created_at).getTime()), github_user_id: user.id, created_at: Date.now(), - updated_at: null + updated_at: null, }; const { userId, incompleteUserDetails, role } = await users.addOrUpdate(userData); @@ -92,7 +92,7 @@ const githubAuthCallback = (req, res, next) => { expires: new Date(Date.now() + config.get("userToken.ttl") * 1000), httpOnly: true, secure: true, - sameSite: "lax" + sameSite: "lax", }; // respond with a cookie res.cookie(config.get("userToken.cookieName"), token, cookieOptions); @@ -128,13 +128,13 @@ const signout = (req, res) => { domain: rdsUiUrl.hostname, httpOnly: true, secure: true, - sameSite: "lax" + sameSite: "lax", }; res.clearCookie(cookieName, cookieOptions); const cookieV2Name = config.get("userToken.cookieV2Name"); res.clearCookie(cookieV2Name, cookieOptions); return res.json({ - message: "Signout successful" + message: "Signout successful", }); }; @@ -151,7 +151,7 @@ const storeUserDeviceInfo = async (req, res) => { user_id: req.body.user_id, device_info: req.body.device_info, device_id: req.body.device_id, - authorization_status: "NOT_INIT" + authorization_status: "NOT_INIT", }; const userInfoData = await dataAccess.retrieveUsers({ id: userJson.user_id }); @@ -163,7 +163,7 @@ const storeUserDeviceInfo = async (req, res) => { return res.status(201).json({ ...userInfo, - message: DATA_ADDED_SUCCESSFULLY + message: DATA_ADDED_SUCCESSFULLY, }); } catch (err) { logger.error(`Error while storing user device info : ${err}`); @@ -187,7 +187,7 @@ const updateAuthStatus = async (req, res) => { return res.json({ message: `Authentication document for user ${userId} updated successfully`, - data: { ...result.data } + data: { ...result.data }, }); } catch (error) { logger.error(`Error while fetching user: ${error}`); @@ -204,7 +204,7 @@ const fetchUserDeviceInfo = async (req, res) => { } return res.json({ message: "Authentication document retrieved successfully.", - data: { ...userDeviceInfoData.data } + data: { ...userDeviceInfoData.data }, }); } catch (error) { logger.error(`Error while fetching user: ${error}`); @@ -221,7 +221,7 @@ const fetchDeviceDetails = async (req, res) => { } return res.json({ message: "Authentication document Exists", - data: { device_info: userDeviceInfoData.data?.device_info } + data: { device_info: userDeviceInfoData.data?.device_info }, }); } catch (error) { logger.error(`Error while fetching user device info: ${error}`); @@ -236,5 +236,5 @@ module.exports = { storeUserDeviceInfo, updateAuthStatus, fetchUserDeviceInfo, - fetchDeviceDetails + fetchDeviceDetails, }; diff --git a/controllers/badges.js b/controllers/badges.js index c54a0c9e3..486a1d7c4 100644 --- a/controllers/badges.js +++ b/controllers/badges.js @@ -16,7 +16,7 @@ const getBadges = async (req, res) => { const allBadges = await badgeQuery.fetchBadges(req.query); return res.json({ message: CONTROLLERS_SUCCESS_MESSAGES.GET_BADGES, - badges: allBadges + badges: allBadges, }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.GET_BADGES}: ${error}`); @@ -53,11 +53,11 @@ async function postBadge(req, res) { const { imageUrl } = await imageService.uploadBadgeImage({ file, badgeName: req.body.name }); const badge = await badgeQuery.createBadge({ ...req.body, - imageUrl + imageUrl, }); return res.json({ message: CONTROLLERS_SUCCESS_MESSAGES.POST_BADGE, - badge + badge, }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.POST_BADGE}: ${error}`); @@ -82,7 +82,7 @@ async function postUserBadges(req, res) { } await badgeQuery.assignBadges({ userId, badgeIds }); return res.json({ - message: CONTROLLERS_SUCCESS_MESSAGES.POST_USER_BADGES + message: CONTROLLERS_SUCCESS_MESSAGES.POST_USER_BADGES, }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.POST_USER_BADGES}: ${error}`); @@ -101,7 +101,7 @@ async function deleteUserBadges(req, res) { const { badgeIds, userId } = req.body; await badgeQuery.removeBadges({ userId, badgeIds }); return res.json({ - message: CONTROLLERS_SUCCESS_MESSAGES.DELETE_USER_BADGES + message: CONTROLLERS_SUCCESS_MESSAGES.DELETE_USER_BADGES, }); } catch (error) { logger.error(`${CONTROLLERS_ERROR_MESSAGES.DELETE_USER_BADGES}: ${error}`); @@ -114,5 +114,5 @@ module.exports = { getUserBadges, postBadge, postUserBadges, - deleteUserBadges + deleteUserBadges, }; diff --git a/controllers/challenge.js b/controllers/challenge.js index dabd7ec09..5e42d1492 100644 --- a/controllers/challenge.js +++ b/controllers/challenge.js @@ -14,7 +14,7 @@ const fetchChallenges = async (req, res) => { const challengesWithParticipants = await Promise.all(promiseArray); return res.json({ message: challengesWithParticipants.length ? "Challenges returned successfully!" : "No Challenges found", - challenges: challengesWithParticipants + challenges: challengesWithParticipants, }); } catch (err) { logger.error(`Error while retrieving challenges ${err}`); @@ -33,7 +33,7 @@ const createChallenge = async (req, res) => { const challengeAdded = await challengeQuery.postChallenge(req.body); if (challengeAdded) { return res.json({ - message: "Challenge added successfully" + message: "Challenge added successfully", }); } else { return res.boom.badRequest("Unable to add challenge"); @@ -53,7 +53,7 @@ const getParticipantsofChallenges = async (allChallenges) => { const participants = await challengeQuery.fetchParticipantsData(challenge.participants); return { ...challenge, - participants + participants, }; }); }; @@ -71,7 +71,7 @@ const subscribeToChallenge = async (req, res) => { if (subscribeUser) { return res.status(200).json({ challenge_id: challengeId, - is_user_subscribed: 1 + is_user_subscribed: 1, }); } else { return res.boom.notFound("User cannot be subscribed to challenge"); @@ -85,5 +85,5 @@ const subscribeToChallenge = async (req, res) => { module.exports = { fetchChallenges, createChallenge, - subscribeToChallenge + subscribeToChallenge, }; diff --git a/controllers/cloudflareCache.js b/controllers/cloudflareCache.js index cc035c5dc..df26f30b5 100644 --- a/controllers/cloudflareCache.js +++ b/controllers/cloudflareCache.js @@ -53,7 +53,7 @@ const purge = async (res, id, username, isSuperUser, userDetails) => { await logsQuery.addLog( logType.CLOUDFLARE_CACHE_PURGED, { userId: id, purgedFor: userDetails.user.id }, - { message: "Cache Purged" } + { message: "Cache Purged" }, ); } else { await logsQuery.addLog(logType.CLOUDFLARE_CACHE_PURGED, { userId: id }, { message: "Cache Purged" }); @@ -82,7 +82,7 @@ const fetchPurgedCacheMetadata = async (req, res) => { return res.json({ message: "Purged cache metadata returned successfully!", remainingCount: MAX_CACHE_PURGE_COUNT - logs.length, - timeLastCleared: timestamp._seconds + timeLastCleared: timestamp._seconds, }); } else if ((await logsQuery.fetchLastAddedCacheLog(id)).length !== 0) { const lastLog = await logsQuery.fetchLastAddedCacheLog(id); @@ -90,12 +90,12 @@ const fetchPurgedCacheMetadata = async (req, res) => { return res.json({ message: "Purged cache metadata returned successfully!", remainingCount: MAX_CACHE_PURGE_COUNT, - timeLastCleared: timestamp._seconds + timeLastCleared: timestamp._seconds, }); } else { return res.json({ message: "No cache is cleared yet", - remainingCount: MAX_CACHE_PURGE_COUNT + remainingCount: MAX_CACHE_PURGE_COUNT, }); } } catch (error) { @@ -106,5 +106,5 @@ const fetchPurgedCacheMetadata = async (req, res) => { module.exports = { purgeCache, - fetchPurgedCacheMetadata + fetchPurgedCacheMetadata, }; diff --git a/controllers/contributions.js b/controllers/contributions.js index 0538d7982..975aff939 100644 --- a/controllers/contributions.js +++ b/controllers/contributions.js @@ -23,5 +23,5 @@ const getUserContributions = async (req, res) => { }; module.exports = { - getUserContributions + getUserContributions, }; diff --git a/controllers/discordactions.js b/controllers/discordactions.js index 1083adbe7..d65c788df 100644 --- a/controllers/discordactions.js +++ b/controllers/discordactions.js @@ -28,17 +28,17 @@ const createGroupRole = async (req, res) => { if (roleExists) { return res.status(400).json({ - message: "Role already exists!" + message: "Role already exists!", }); } const dataForDiscord = { rolename, - mentionable: true + mentionable: true, }; const groupRoleData = { rolename, createdBy: req.userData.id, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }; const headers = generateCloudFlareHeaders(req.userData); @@ -46,7 +46,7 @@ const createGroupRole = async (req, res) => { const responseForCreatedRole = await fetch(`${DISCORD_BASE_URL}/roles/create`, { method: "PUT", body: JSON.stringify(dataForDiscord), - headers + headers, }).then((response) => response.json()); groupRoleData.roleid = responseForCreatedRole.id; @@ -54,7 +54,7 @@ const createGroupRole = async (req, res) => { const { id } = await discordRolesModel.createNewRole(groupRoleData); return res.status(201).json({ message: "Role created successfully!", - id + id, }); } catch (err) { logger.error(`Error while creating new Role: ${err}`); @@ -75,7 +75,7 @@ const getAllGroupRoles = async (req, res) => { const groupsWithMembershipInfo = await discordRolesModel.enrichGroupDataWithMembershipInfo(discordId, groups); return res.json({ message: "Roles fetched successfully!", - groups: groupsWithMembershipInfo + groups: groupsWithMembershipInfo, }); } catch (err) { logger.error(`Error while getting roles: ${err}`); @@ -89,7 +89,7 @@ const getGroupsRoleId = async (req, res) => { const userGroupRoles = await discordRolesModel.getGroupRolesForUser(discordId); return res.json({ message: "User group roles Id fetched successfully!", - ...userGroupRoles + ...userGroupRoles, }); } catch (error) { logger.error(`Error while getting user roles: ${error}`); @@ -106,10 +106,10 @@ const addGroupRoleToMember = async (req, res) => { try { const memberGroupRole = { ...req.body, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }; const roleExistsPromise = discordRolesModel.isGroupRoleExists({ - roleid: memberGroupRole.roleid + roleid: memberGroupRole.roleid, }); const userDataPromise = fetchUser({ discordId: memberGroupRole.userid }); const [{ roleExists, existingRoles }, userData] = await Promise.all([roleExistsPromise, userDataPromise]); @@ -131,27 +131,27 @@ const addGroupRoleToMember = async (req, res) => { return res.status(400).json({ message: "Role already exists!", data: { - ...roleData - } + ...roleData, + }, }); } const dataForDiscord = { - ...req.body + ...req.body, }; const headers = generateCloudFlareHeaders(req.userData); const apiCallToDiscord = fetch(`${DISCORD_BASE_URL}/roles/add`, { method: "PUT", body: JSON.stringify(dataForDiscord), - headers + headers, }); const discordLastJoinedDateUpdate = discordRolesModel.groupUpdateLastJoinDate({ - id: existingRoles.docs[0].id + id: existingRoles.docs[0].id, }); await Promise.all([apiCallToDiscord, discordLastJoinedDateUpdate]); return res.status(201).json({ - message: "Role added successfully!" + message: "Role added successfully!", }); } catch (err) { logger.error(`Error while adding new Role: ${err}`); @@ -164,7 +164,7 @@ const deleteRole = async (req, res) => { const { roleid, userid } = req.body; const roleExistsPromise = discordRolesModel.isGroupRoleExists({ - roleid + roleid, }); const userDataPromise = fetchUser({ discordId: userid }); const [{ roleExists }, userData] = await Promise.all([roleExistsPromise, userDataPromise]); @@ -197,7 +197,7 @@ const updateDiscordImageForVerification = async (req, res) => { const discordAvatarUrl = await discordRolesModel.updateDiscordImageForVerification(userDiscordId); return res.json({ message: "Discord avatar URL updated successfully!", - discordAvatarUrl + discordAvatarUrl, }); } catch (err) { logger.error(`Error while updating discord image url verification document: ${err}`); @@ -215,7 +215,7 @@ const setRoleIdleToIdleUsers = async (req, res) => { const result = await discordRolesModel.updateIdleUsersOnDiscord(); return res.status(201).json({ message: "All Idle Users updated successfully.", - ...result + ...result, }); } catch (err) { logger.error(`Error while setting idle role: ${err}`); @@ -233,7 +233,7 @@ const setRoleIdle7DToIdleUsers = async (req, res) => { const result = await discordRolesModel.updateIdle7dUsersOnDiscord(); return res.status(201).json({ message: "All Idle 7d+ Users updated successfully.", - ...result + ...result, }); } catch (err) { logger.error(`Error while setting idle role: ${err}`); @@ -253,7 +253,7 @@ const updateDiscordNicknames = async (req, res) => { const { dev } = req.query; if (dev !== "true") { return res.status(404).json({ - message: "Users Nicknames not updated" + message: "Users Nicknames not updated", }); } @@ -275,14 +275,14 @@ const updateDiscordNicknames = async (req, res) => { discordId: foundUserWithDiscordId.discordId, username: foundUserWithDiscordId.username, first_name: foundUserWithDiscordId.first_name, - id: foundUserWithDiscordId.id + id: foundUserWithDiscordId.id, }); } } } catch (error) { logger.error(`error getting user with matching discordId ${error.message}`); } - }) + }), ); const totalNicknamesUpdated = { count: 0 }; @@ -318,7 +318,7 @@ const updateDiscordNicknames = async (req, res) => { return res.json({ totalNicknamesUpdated, totalNicknamesNotUpdated, - message: `Users Nicknames updated successfully` + message: `Users Nicknames updated successfully`, }); } catch (error) { logger.error(`Error while updating nicknames: ${error}`); @@ -339,7 +339,7 @@ const updateUsersNicknameStatus = async (req, res) => { const data = await discordRolesModel.updateUsersNicknameStatus(lastNicknameUpdate); return res.json({ message: "Updated discord users nickname based on status", - data + data, }); } catch (err) { logger.error(`Error while updating users nickname based on status: ${err}`); @@ -359,14 +359,14 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { if (!data.data.empty) { const roleInFirestore = { id: data.data.docs[0].id, - ...data.data.docs[0].data() + ...data.data.docs[0].data(), }; if (roleInFirestore.roleid !== role.id) { await discordRolesModel.updateGroupRole( { - roleid: role.id + roleid: role.id, }, - roleInFirestore.id + roleInFirestore.id, ); } } else { @@ -374,7 +374,7 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { createdBy: req.userData.id, rolename: role.name, roleid: role.id, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); } }); @@ -384,7 +384,7 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { return res.json({ response: allRolesInFirestore.groups, - message: `Discord groups synced with firestore successfully` + message: `Discord groups synced with firestore successfully`, }); } catch (error) { logger.error(`Error while updating discord groups ${error}`); @@ -403,7 +403,7 @@ const setRoleToUsersWith31DaysPlusOnboarding = async (req, res) => { const result = await discordRolesModel.updateUsersWith31DaysPlusOnboarding(); return res.status(201).json({ message: "All Users with 31 Days Plus Onboarding are updated successfully.", - ...result + ...result, }); } catch (error) { logger.error(`Error while setting group-onboarding-31d+ role : ${error}`); @@ -420,23 +420,23 @@ const generateInviteForUser = async (req, res) => { if (!modelResponse.notFound) { return res.status(409).json({ - message: "User invite is already present!" + message: "User invite is already present!", }); } const channelId = config.get("discordNewComersChannelId"); const authToken = jwt.sign({}, config.get("rdsServerlessBot.rdsServerLessPrivateKey"), { algorithm: "RS256", - expiresIn: config.get("rdsServerlessBot.ttl") + expiresIn: config.get("rdsServerlessBot.ttl"), }); const inviteOptions = { - channelId: channelId + channelId: channelId, }; const response = await fetch(`${DISCORD_BASE_URL}/invite`, { method: "POST", body: JSON.stringify(inviteOptions), - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, }); const discordInviteResponse = await response.json(); @@ -447,7 +447,7 @@ const generateInviteForUser = async (req, res) => { return res.status(201).json({ message: "invite generated successfully", - inviteLink + inviteLink, }); } catch (err) { logger.error(`Error in generating invite for user: ${err}`); @@ -472,7 +472,7 @@ const getUserDiscordInvite = async (req, res) => { return res.json({ message: "Invite returned successfully", - inviteLink: invite?.inviteLink + inviteLink: invite?.inviteLink, }); } catch (err) { logger.error(`Error in fetching user invite: ${err}`); @@ -494,5 +494,5 @@ module.exports = { syncDiscordGroupRolesInFirestore, setRoleToUsersWith31DaysPlusOnboarding, getUserDiscordInvite, - generateInviteForUser + generateInviteForUser, }; diff --git a/controllers/events.js b/controllers/events.js index d0b1b82fa..86aa60e20 100644 --- a/controllers/events.js +++ b/controllers/events.js @@ -34,7 +34,7 @@ const createEvent = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't create event. Please try again later" + message: "Couldn't create event. Please try again later", }); } }; @@ -69,8 +69,8 @@ const getAllEvents = async (req, res) => { data: events.map(({ id, ...event }) => ({ id, room_id: id, - ...event - })) + ...event, + })), }; return res.status(200).json(filteredEventsData); } @@ -79,7 +79,7 @@ const getAllEvents = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't get events. Please try again later" + message: "Couldn't get events. Please try again later", }); } }; @@ -108,21 +108,21 @@ const joinEvent = async (req, res) => { if (!isEventCodeValid) { return res.status(400).json({ - message: "Provided event code is invalid for the role!" + message: "Provided event code is invalid for the role!", }); } const token = tokenService.getAuthToken({ ...payload, roomId: roomId }); return res.status(201).json({ token: token, - message: "Token generated successfully!" + message: "Token generated successfully!", }); } if (role === EVENT_ROLES.HOST || role === EVENT_ROLES.MODERATOR) { if (!req.userData) { return res.status(400).json({ - message: "Unauthorized, please login to perform this action!" + message: "Unauthorized, please login to perform this action!", }); } @@ -131,7 +131,7 @@ const joinEvent = async (req, res) => { return res.status(201).json({ token: token, - message: "Token generated successfully!" + message: "Token generated successfully!", }); } @@ -140,7 +140,7 @@ const joinEvent = async (req, res) => { return res.status(201).json({ token: token, - message: "Token generated successfully!" + message: "Token generated successfully!", }); } } @@ -149,7 +149,7 @@ const joinEvent = async (req, res) => { return res.status(201).json({ token: token, - message: "Token generated successfully!" + message: "Token generated successfully!", }); } catch (error) { logger.error({ error }); @@ -182,7 +182,7 @@ const getEventById = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Unable to retrieve event details" + message: "Unable to retrieve event details", }); } }; @@ -199,7 +199,7 @@ const getEventById = async (req, res) => { */ const updateEvent = async (req, res) => { const payload = { - enabled: req.body.enabled + enabled: req.body.enabled, }; try { const eventData = await apiService.post(`/rooms/${req.body.id}`, payload); @@ -207,13 +207,13 @@ const updateEvent = async (req, res) => { const event = removeUnwantedProperties(UNWANTED_PROPERTIES_FROM_100MS, eventData); return res.status(200).json({ data: { room_id: event.id, ...event }, - message: `Event is ${req.body.enabled ? "enabled" : "disabled"}` + message: `Event is ${req.body.enabled ? "enabled" : "disabled"}`, }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error, - message: "Couldn't update event. Please try again later." + message: "Couldn't update event. Please try again later.", }); } }; @@ -231,7 +231,7 @@ const updateEvent = async (req, res) => { const endActiveEvent = async (req, res) => { const payload = { reason: req.body.reason, - lock: req.body.lock + lock: req.body.lock, }; try { await apiService.post(`/active-rooms/${req.body.id}/end-room`, payload); @@ -241,7 +241,7 @@ const endActiveEvent = async (req, res) => { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't end the event. Please try again later" + message: "Couldn't end the event. Please try again later", }); } }; @@ -263,17 +263,17 @@ const addPeerToEvent = async (req, res) => { name: req.body.name, role: req.body.role, joinedAt: req.body.joinedAt, - eventId: req.params.id + eventId: req.params.id, }); return res.status(200).json({ data, - message: `Selected Participant is added to the event.` + message: `Selected Participant is added to the event.`, }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "You can't add selected Participant. Please ask Admin or Host for help." + message: "You can't add selected Participant. Please ask Admin or Host for help.", }); } }; @@ -292,7 +292,7 @@ const kickoutPeer = async (req, res) => { const { id } = req.params; const payload = { peer_id: req.body.peerId, - reason: req.body.reason + reason: req.body.reason, }; try { @@ -302,17 +302,17 @@ const kickoutPeer = async (req, res) => { addLog( logType.EVENTS_REMOVE_PEER, { removed_by_id: req.userData.id, removed_by_username: req.userData.username }, - { ...payload, event_id: id, peer_name: peer.name } + { ...payload, event_id: id, peer_name: peer.name }, ); return res.status(200).json({ - message: `Selected Participant is removed from event.` + message: `Selected Participant is removed from event.`, }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "You can't remove selected Participant from Remove, Please ask Admin or Host for help." + message: "You can't remove selected Participant from Remove, Please ask Admin or Host for help.", }); } }; @@ -325,7 +325,7 @@ const generateEventCode = async (req, res) => { if (role !== EVENT_ROLES.MAVEN) { return res.status(400).json({ - message: "Currently the room codes feature is only for mavens!" + message: "Currently the room codes feature is only for mavens!", }); } @@ -334,14 +334,14 @@ const generateEventCode = async (req, res) => { id: eventCodeUuid, event_id: id, code: eventCode, - role + role, }); return res.status(201).json({ message: "Event code created succesfully!", data: [...allEventCodeObjectFromDB] }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Couldn't create event code. Please try again later" + message: "Couldn't create event code. Please try again later", }); } }; @@ -364,13 +364,13 @@ const getEventCodes = async (req, res) => { return res.status(200).json({ message: "Event codes is successfully fetched for the event!", - data: eventCodes + data: eventCodes, }); } catch (error) { logger.error({ error }); return res.status(500).json({ error: error.code, - message: "Something went wrong while getting the event codes!" + message: "Something went wrong while getting the event codes!", }); } }; @@ -385,5 +385,5 @@ module.exports = { addPeerToEvent, kickoutPeer, generateEventCode, - getEventCodes + getEventCodes, }; diff --git a/controllers/extensionRequests.js b/controllers/extensionRequests.js index 073c60305..174c3fd15 100644 --- a/controllers/extensionRequests.js +++ b/controllers/extensionRequests.js @@ -52,7 +52,7 @@ const createTaskExtensionRequest = async (req, res) => { } const latestExtensionRequest = await extensionRequestsQuery.fetchLatestExtensionRequest({ - taskId: extensionBody.taskId + taskId: extensionBody.taskId, }); if (latestExtensionRequest && latestExtensionRequest.status === EXTENSION_REQUEST_STATUS.PENDING) { @@ -76,22 +76,22 @@ const createTaskExtensionRequest = async (req, res) => { type: "extensionRequests", meta: { taskId: extensionBody.taskId, - createdBy: req.userData.id + createdBy: req.userData.id, }, body: { extensionRequestId: extensionRequest.id, oldEndsOn: task.endsOn, newEndsOn: extensionBody.newEndsOn, assignee: extensionBody.assignee, - status: EXTENSION_REQUEST_STATUS.PENDING - } + status: EXTENSION_REQUEST_STATUS.PENDING, + }, }; await addLog(extensionLog.type, extensionLog.meta, extensionLog.body); return res.json({ message: "Extension Request created successfully!", - extensionRequest: { ...extensionBody, id: extensionRequest.id } + extensionRequest: { ...extensionBody, id: extensionRequest.id }, }); } catch (err) { logger.error(`Error while creating new extension request: ${err}`); @@ -133,7 +133,7 @@ const createTaskExtensionRequest = async (req, res) => { const prevExtensionRequest = await extensionRequestsQuery.fetchExtensionRequests({ taskId: extensionBody.taskId, - assignee: extensionBody.assignee + assignee: extensionBody.assignee, }); if (prevExtensionRequest.length) { return res.boom.forbidden("An extension request for this task already exists."); @@ -145,22 +145,22 @@ const createTaskExtensionRequest = async (req, res) => { type: "extensionRequests", meta: { taskId: extensionBody.taskId, - createdBy: req.userData.id + createdBy: req.userData.id, }, body: { extensionRequestId: extensionRequest.id, oldEndsOn: task.endsOn, newEndsOn: extensionBody.newEndsOn, assignee: extensionBody.assignee, - status: EXTENSION_REQUEST_STATUS.PENDING - } + status: EXTENSION_REQUEST_STATUS.PENDING, + }, }; await addLog(extensionLog.type, extensionLog.meta, extensionLog.body); return res.json({ message: "Extension Request created successfully!", - extensionRequest: { ...extensionBody, id: extensionRequest.id } + extensionRequest: { ...extensionBody, id: extensionRequest.id }, }); } catch (err) { logger.error(`Error while creating new extension request: ${err}`); @@ -183,11 +183,11 @@ const fetchExtensionRequests = async (req, res) => { const allExtensionRequests = await extensionRequestsQuery.fetchPaginatedExtensionRequests( { taskId, status: transformedStatus, assignee }, - { cursor, order, size: transformedSize } + { cursor, order, size: transformedSize }, ); return res.json({ message: "Extension Requests returned successfully!", - ...allExtensionRequests + ...allExtensionRequests, }); } catch (err) { logger.error(`Error while fetching Extension Requests ${err}`); @@ -228,7 +228,7 @@ const getSelfExtensionRequests = async (req, res) => { let allExtensionRequests; if (taskId) { const latestExtensionRequest = await extensionRequestsQuery.fetchLatestExtensionRequest({ - taskId + taskId, }); if (latestExtensionRequest && latestExtensionRequest.assigneeId !== userId) { @@ -238,7 +238,7 @@ const getSelfExtensionRequests = async (req, res) => { if (latestExtensionRequest.status === "APPROVED" || latestExtensionRequest.status === "DENIED") { const logs = await logsQuery.fetchLogs( { "meta.extensionRequestId": latestExtensionRequest.id, limit: 1 }, - "extensionRequests" + "extensionRequests", ); if ( @@ -257,7 +257,7 @@ const getSelfExtensionRequests = async (req, res) => { } else { allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({ assignee: userId, - status: status || undefined + status: status || undefined, }); } return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests }); @@ -269,7 +269,7 @@ const getSelfExtensionRequests = async (req, res) => { const allExtensionRequests = await extensionRequestsQuery.fetchExtensionRequests({ taskId, assignee: userId, - status: status || undefined + status: status || undefined, }); return res.json({ message: "Extension Requests returned successfully!", allExtensionRequests }); } else { @@ -325,9 +325,9 @@ const updateExtensionRequest = async (req, res) => { meta: { extensionRequestId: req.params.id, taskId: extensionRequest.extensionRequestData.taskId, - userId: req.userData.id + userId: req.userData.id, }, - body + body, }; promises.push(addLog(extensionLog.type, extensionLog.meta, extensionLog.body)); } @@ -360,16 +360,16 @@ const updateExtensionRequestStatus = async (req, res) => { extensionRequestId: req.params.id, taskId: extensionRequest.extensionRequestData.taskId, username: req.userData.username, - userId: req.userData.id + userId: req.userData.id, }, body: { - status: extensionStatus - } + status: extensionStatus, + }, }; const promises = [ extensionRequestsQuery.updateExtensionRequest(req.body, req.params.id), - addLog(extensionLog.type, extensionLog.meta, extensionLog.body) + addLog(extensionLog.type, extensionLog.meta, extensionLog.body), ]; if (extensionStatus === EXTENSION_REQUEST_STATUS.APPROVED) { @@ -378,20 +378,20 @@ const updateExtensionRequestStatus = async (req, res) => { meta: { taskId: extensionRequest.extensionRequestData.taskId, username: req.userData.username, - userId: req.userData.id + userId: req.userData.id, }, body: { subType: "update", new: { - endsOn: extensionRequest.extensionRequestData.newEndsOn - } - } + endsOn: extensionRequest.extensionRequestData.newEndsOn, + }, + }, }; promises.push( tasks.updateTask( { endsOn: extensionRequest.extensionRequestData.newEndsOn }, - extensionRequest.extensionRequestData.taskId - ) + extensionRequest.extensionRequestData.taskId, + ), ); promises.push(addLog(taskLog.type, taskLog.meta, taskLog.body)); } @@ -412,5 +412,5 @@ module.exports = { getExtensionRequest, getSelfExtensionRequests, updateExtensionRequest, - updateExtensionRequestStatus + updateExtensionRequestStatus, }; diff --git a/controllers/external-accounts.js b/controllers/external-accounts.js index 84e83c38e..3bc83326f 100644 --- a/controllers/external-accounts.js +++ b/controllers/external-accounts.js @@ -64,9 +64,9 @@ const linkExternalAccount = async (req, res) => { { roles: { ...roles, in_discord: true }, discordId: attributes.discordId, - discordJoinedAt: attributes.discordJoinedAt + discordJoinedAt: attributes.discordJoinedAt, }, - userId + userId, ); return res.status(204).json({ message: "Your discord profile has been linked successfully" }); @@ -93,7 +93,7 @@ const syncExternalAccountData = async (req, res) => { rdsUserData.forEach((rdsUser) => { rdsUserDataMap[rdsUser.discordId] = { id: rdsUser.id, - roles: rdsUser.roles + roles: rdsUser.roles, }; }); @@ -105,8 +105,8 @@ const syncExternalAccountData = async (req, res) => { userData = { roles: { ...rdsUser.roles, - in_discord: false - } + in_discord: false, + }, }; userUpdatedWithInDiscordFalse.push(rdsUser); } else if (discordUser) { @@ -114,8 +114,8 @@ const syncExternalAccountData = async (req, res) => { discordJoinedAt: discordUser.joined_at, roles: { ...rdsUser.roles, - in_discord: true - } + in_discord: true, + }, }; } updateUserDataPromises.push(addOrUpdate(userData, rdsUser.id)); @@ -129,8 +129,8 @@ const syncExternalAccountData = async (req, res) => { const userData = { roles: { ...user.roles, - archived: false - } + archived: false, + }, }; updateArchivedPromises.push(addOrUpdate(userData, user.id)); } @@ -143,7 +143,7 @@ const syncExternalAccountData = async (req, res) => { discordUsers: discordUserData.length, userUpdatedWithInDiscordFalse: userUpdatedWithInDiscordFalse.length, usersMarkedUnArchived: updateArchivedPromises.length, - message: "Data Sync Complete" + message: "Data Sync Complete", }); } catch (err) { logger.error("Error in syncing users discord joined at", err); @@ -172,7 +172,7 @@ const newSyncExternalAccountData = async (req, res) => { try { const [discordUserData, unArchivedRdsUsersData] = await Promise.all([ getDiscordMembers(), - fetchUsersForKeyValues("roles.archived", false) + fetchUsersForKeyValues("roles.archived", false), ]); let usersArchivedCount = 0; let usersUnArchivedCount = 0; @@ -199,8 +199,8 @@ const newSyncExternalAccountData = async (req, res) => { roles: { ...rdsUser.roles, in_discord: true, - archived: false - } + archived: false, + }, }; } else { usersArchivedCount++; @@ -209,8 +209,8 @@ const newSyncExternalAccountData = async (req, res) => { roles: { ...rdsUser.roles, in_discord: false, - archived: true - } + archived: true, + }, }; archiveUserList.push({ id: rdsUser.id }); // adding users which are to be archived } @@ -231,8 +231,8 @@ const newSyncExternalAccountData = async (req, res) => { roles: { ...rdsUser.roles, in_discord: true, - archived: false - } + archived: false, + }, }; updateUserList.push(userData); } @@ -241,7 +241,7 @@ const newSyncExternalAccountData = async (req, res) => { const [, , backlogTasksCount] = await Promise.all([ unArchiveUsersInBatchPromise, archiveUsersInBatchPromise, - markTasksBacklogPromise + markTasksBacklogPromise, ]); return res.json({ @@ -250,7 +250,7 @@ const newSyncExternalAccountData = async (req, res) => { usersUnArchivedCount: usersUnArchivedCount, totalUsersProcessed: totalUsersProcessed, rdsDiscordServerUsers: discordUserData.length, - backlogTasksCount: backlogTasksCount + backlogTasksCount: backlogTasksCount, }); } catch (err) { logger.error("Error in syncing users discord joined at"); @@ -264,5 +264,5 @@ module.exports = { linkExternalAccount, syncExternalAccountData, newSyncExternalAccountData, - externalAccountsUsersPostHandler + externalAccountsUsersPostHandler, }; diff --git a/controllers/fcmToken.js b/controllers/fcmToken.js index a89ad0a31..a60521ab5 100644 --- a/controllers/fcmToken.js +++ b/controllers/fcmToken.js @@ -16,7 +16,7 @@ const fcmTokenController = async (req, res) => { } catch (error) { if (error instanceof Conflict) { return res.status(409).json({ - message: error.message + message: error.message, }); } res.status(500).send("Something went wrong, please contact admin"); @@ -25,5 +25,5 @@ const fcmTokenController = async (req, res) => { }; module.exports = { - fcmTokenController + fcmTokenController, }; diff --git a/controllers/goals.js b/controllers/goals.js index 162cf5967..29078fda9 100644 --- a/controllers/goals.js +++ b/controllers/goals.js @@ -20,5 +20,5 @@ const getGoalSiteToken = async (req, res) => { }; module.exports = { - getGoalSiteToken + getGoalSiteToken, }; diff --git a/controllers/health.js b/controllers/health.js index 6fd76a7f6..9a50d8aca 100644 --- a/controllers/health.js +++ b/controllers/health.js @@ -6,10 +6,10 @@ */ const healthCheck = (req, res) => { return res.json({ - uptime: process.uptime() + uptime: process.uptime(), }); }; module.exports = { - healthCheck + healthCheck, }; diff --git a/controllers/issues.js b/controllers/issues.js index 31ea0cb2d..2bc6c23ed 100644 --- a/controllers/issues.js +++ b/controllers/issues.js @@ -43,7 +43,7 @@ const getIssues = async (req, res) => { const updatedIsuees = await Promise.all(issuesData); return res.json({ message: "Issues returned successfully!", - issues: updatedIsuees + issues: updatedIsuees, }); } catch (err) { logger.error(`Error while retriving issues ${err}`); @@ -70,8 +70,8 @@ const issueUpdates = async (req, res) => { updatedTaskData.github = { issue: { ...updatedTaskData.github.issue, - status: issue.state - } + status: issue.state, + }, }; // If the issue has any updates with the assignee @@ -92,16 +92,16 @@ const issueUpdates = async (req, res) => { await tasks.updateTask(updatedTaskData, taskData.id); return res.json({ - message: "Task updated successfully" + message: "Task updated successfully", }); } else { return res.json({ - message: "No task was found for the updated issue" + message: "No task was found for the updated issue", }); } } return res.json({ - message: "No issue was updated" + message: "No issue was updated", }); } catch (err) { logger.error(`Error while retriving issues ${err}`); @@ -111,5 +111,5 @@ const issueUpdates = async (req, res) => { module.exports = { getIssues, - issueUpdates + issueUpdates, }; diff --git a/controllers/items.js b/controllers/items.js index 20aeec36d..72da07522 100644 --- a/controllers/items.js +++ b/controllers/items.js @@ -13,7 +13,7 @@ const addTagsToItem = async (req, res) => { const { itemId } = await ItemTagsModel.addTagsToItem(req.body); return res.json({ message: "Tags added successfully!", - itemId + itemId, }); } catch (err) { logger.error(`Error while creating new item: ${err}`); @@ -34,7 +34,7 @@ const removeTagsFromItem = async (req, res) => { return res.json({ message: "Tags removed successfully!", itemId, - tagId + tagId, }); } catch (err) { logger.error(`Error while creating new item: ${err}`); @@ -57,7 +57,7 @@ const getItemBasedOnFilter = async (req, res) => { const items = await ItemTagsModel.getItemBasedOnFilter(req.query); return res.json({ message: "Items fetched Successfully", - data: items + data: items, }); } catch (err) { logger.error(`Error while creating new item: ${err}`); @@ -68,5 +68,5 @@ const getItemBasedOnFilter = async (req, res) => { module.exports = { addTagsToItem, removeTagsFromItem, - getItemBasedOnFilter + getItemBasedOnFilter, }; diff --git a/controllers/levels.js b/controllers/levels.js index 92ea5a08a..e7f9d94d8 100644 --- a/controllers/levels.js +++ b/controllers/levels.js @@ -14,14 +14,14 @@ const addLevel = async (req, res) => { const { id, levelData } = await LevelModel.addLevel({ ...req.body, createdBy: req.userData.id, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); return res.json({ message: "Level created successfully!", data: { level: levelData, - id - } + id, + }, }); } catch (err) { logger.error(`Error while creating new level: ${err}`); @@ -40,7 +40,7 @@ const deleteLevel = async (req, res) => { try { await LevelModel.deleteLevel(req.params.levelid); return res.json({ - message: "Level Deleted successfully!" + message: "Level Deleted successfully!", }); } catch (err) { logger.error(`Error while creating new Level: ${err}`); @@ -59,7 +59,7 @@ const getAllLevels = async (req, res) => { const { allLevels } = await LevelModel.getAllLevels(); return res.json({ message: "Levels returned Successfully", - levels: allLevels + levels: allLevels, }); } catch (err) { logger.error(`Error while creating new Level: ${err}`); @@ -70,5 +70,5 @@ const getAllLevels = async (req, res) => { module.exports = { addLevel, deleteLevel, - getAllLevels + getAllLevels, }; diff --git a/controllers/logs.js b/controllers/logs.js index f8c7095de..f5d0e49ac 100644 --- a/controllers/logs.js +++ b/controllers/logs.js @@ -14,7 +14,7 @@ const fetchLogs = async (req, res) => { const logs = await logsQuery.fetchLogs(req.query, req.params.type); return res.json({ message: LOGS_FETCHED_SUCCESSFULLY, - logs + logs, }); } catch (error) { logger.error(`${ERROR_WHILE_FETCHING_LOGS}: ${error}`); @@ -38,7 +38,7 @@ const fetchAllLogs = async (req, res) => { return res.status(200).json({ message: ALL_LOGS_FETCHED_SUCCESSFULLY, data: allLogs, - page: pageLink + page: pageLink, }); } @@ -49,7 +49,7 @@ const fetchAllLogs = async (req, res) => { endpoint: "/logs", query, cursorKey: "next", - docId: next + docId: next, }); nextUrl = nextLink; } @@ -58,7 +58,7 @@ const fetchAllLogs = async (req, res) => { endpoint: "/logs", query, cursorKey: "prev", - docId: prev + docId: prev, }); prevUrl = prevLink; } @@ -67,7 +67,7 @@ const fetchAllLogs = async (req, res) => { message: ALL_LOGS_FETCHED_SUCCESSFULLY, data: allLogs, next: nextUrl, - prev: prevUrl + prev: prevUrl, }); } catch (err) { logger.error(ERROR_WHILE_FETCHING_LOGS, err); @@ -77,5 +77,5 @@ const fetchAllLogs = async (req, res) => { module.exports = { fetchLogs, - fetchAllLogs + fetchAllLogs, }; diff --git a/controllers/members.js b/controllers/members.js index 888304ee8..1ece7d3bc 100644 --- a/controllers/members.js +++ b/controllers/members.js @@ -16,7 +16,7 @@ const getMembers = async (req, res) => { const allUsers = await dataAccess.retrieveMembers(req.query); return res.json({ message: allUsers.length ? "Members returned successfully!" : "No member found", - members: allUsers + members: allUsers, }); } catch (error) { logger.error(`Error while fetching all members: ${error}`); @@ -40,7 +40,7 @@ const getIdleMembers = async (req, res) => { return res.json({ message: idleMemberUserNames.length ? "Idle members returned successfully!" : "No idle member found", - idleMemberUserNames + idleMemberUserNames, }); } catch (error) { logger.error(`Error while fetching all members: ${error}`); @@ -96,12 +96,12 @@ const archiveMembers = async (req, res) => { reason: reason || "", archived_user: { user_id: user.user.id, - username: user.user.username + username: user.user.username, }, archived_by: { user_id: superUserId, - roles: roles - } + roles: roles, + }, }; addLog("archived-details", {}, body); @@ -118,5 +118,5 @@ module.exports = { archiveMembers, getMembers, getIdleMembers, - moveToMembers + moveToMembers, }; diff --git a/controllers/monitor.js b/controllers/monitor.js index cb46d6a03..2d9fa2c13 100644 --- a/controllers/monitor.js +++ b/controllers/monitor.js @@ -3,7 +3,7 @@ const { INTERNAL_SERVER_ERROR_MESSAGE } = require("../constants/progresses"); const { createTrackedProgressDocument, updateTrackedProgressDocument, - getTrackedProgressDocuments + getTrackedProgressDocuments, } = require("../models/monitor"); const { RESPONSE_MESSAGES } = require("../constants/monitor"); const { RESOURCE_CREATED_SUCCESSFULLY, RESOURCE_UPDATED_SUCCESSFULLY, RESOURCE_RETRIEVED_SUCCESSFULLY } = @@ -48,20 +48,20 @@ const createTrackedProgressController = async (req, res) => { const data = await createTrackedProgressDocument({ ...req.body }); return res.status(201).json({ message: RESOURCE_CREATED_SUCCESSFULLY, - data + data, }); } catch (error) { if (error instanceof Conflict) { return res.status(409).json({ - message: error.message + message: error.message, }); } else if (error instanceof NotFound) { return res.status(404).json({ - message: error.message + message: error.message, }); } return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; @@ -110,16 +110,16 @@ const updateTrackedProgressController = async (req, res) => { const data = await updateTrackedProgressDocument({ ...req }); return res.status(200).json({ data, - message: RESOURCE_UPDATED_SUCCESSFULLY + message: RESOURCE_UPDATED_SUCCESSFULLY, }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message + message: error.message, }); } return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; @@ -163,12 +163,12 @@ const getTrackedProgressController = async (req, res) => { const data = await getTrackedProgressDocuments({ ...req.query }); return res.status(200).json({ message: RESOURCE_RETRIEVED_SUCCESSFULLY, - data + data, }); } catch (error) { if (error instanceof NotFound) { const response = { - message: error.message + message: error.message, }; if (req.query.type) { response.data = []; @@ -176,7 +176,7 @@ const getTrackedProgressController = async (req, res) => { return res.status(404).json(response); } return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; @@ -184,5 +184,5 @@ const getTrackedProgressController = async (req, res) => { module.exports = { createTrackedProgressController, updateTrackedProgressController, - getTrackedProgressController + getTrackedProgressController, }; diff --git a/controllers/notify.js b/controllers/notify.js index 43c8fd98e..ee0bcdaa4 100644 --- a/controllers/notify.js +++ b/controllers/notify.js @@ -48,13 +48,13 @@ const notifyController = async (req, res) => { const message = { notification: { title: title || "Notification Title", - body: body || "Notification Body" + body: body || "Notification Body", }, data: { key1: "value1", - key2: "value2" + key2: "value2", }, - tokens: Array.from(setOfFcmTokens) + tokens: Array.from(setOfFcmTokens), }; function calculateMessageSize(message) { const byteArray = new TextEncoder().encode(message); @@ -79,5 +79,5 @@ const notifyController = async (req, res) => { }; module.exports = { - notifyController + notifyController, }; diff --git a/controllers/profileDiffs.js b/controllers/profileDiffs.js index ea8c9f255..db459b29e 100644 --- a/controllers/profileDiffs.js +++ b/controllers/profileDiffs.js @@ -14,7 +14,7 @@ const getProfileDiffs = async (req, res) => { return res.json({ message: "Profile Diffs returned successfully!", - profileDiffs: pendingProfileDiffs + profileDiffs: pendingProfileDiffs, }); } catch (error) { logger.error(`Error while fetching profile diffs: ${error}`); @@ -23,5 +23,5 @@ const getProfileDiffs = async (req, res) => { }; module.exports = { - getProfileDiffs + getProfileDiffs, }; diff --git a/controllers/progresses.js b/controllers/progresses.js index 065d6e602..cdf1f31bc 100644 --- a/controllers/progresses.js +++ b/controllers/progresses.js @@ -3,7 +3,7 @@ const { createProgressDocument, getProgressDocument, getRangeProgressData, - getProgressByDate + getProgressByDate, } = require("../models/progresses"); const { PROGRESSES_RESPONSE_MESSAGES, INTERNAL_SERVER_ERROR_MESSAGE } = require("../constants/progresses"); const { sendTaskUpdate } = require("../utils/sendTaskUpdate"); @@ -46,28 +46,28 @@ const { PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, PROGRESS_DOCUMENT_CREATED_SUCCEED const createProgress = async (req, res) => { const { - body: { type, completed, planned, blockers, taskId } + body: { type, completed, planned, blockers, taskId }, } = req; try { const { data, taskTitle } = await createProgressDocument({ ...req.body, userId: req.userData.id }); await sendTaskUpdate(completed, blockers, planned, req.userData.username, taskId, taskTitle); return res.status(201).json({ data, - message: `${type.charAt(0).toUpperCase() + type.slice(1)} ${PROGRESS_DOCUMENT_CREATED_SUCCEEDED}` + message: `${type.charAt(0).toUpperCase() + type.slice(1)} ${PROGRESS_DOCUMENT_CREATED_SUCCEEDED}`, }); } catch (error) { if (error instanceof Conflict) { return res.status(409).json({ - message: error.message + message: error.message, }); } else if (error instanceof NotFound) { return res.status(404).json({ - message: error.message + message: error.message, }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; @@ -112,17 +112,17 @@ const getProgress = async (req, res) => { return res.json({ message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, count: data.length, - data + data, }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message + message: error.message, }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; @@ -166,17 +166,17 @@ const getProgressRangeData = async (req, res) => { const data = await getRangeProgressData(req.query); return res.json({ message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, - data + data, }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message + message: error.message, }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; @@ -220,17 +220,17 @@ const getProgressBydDateController = async (req, res) => { const data = await getProgressByDate(req.params); return res.json({ message: PROGRESS_DOCUMENT_RETRIEVAL_SUCCEEDED, - data + data, }); } catch (error) { if (error instanceof NotFound) { return res.status(404).json({ - message: error.message + message: error.message, }); } logger.error(error.message); return res.status(500).json({ - message: INTERNAL_SERVER_ERROR_MESSAGE + message: INTERNAL_SERVER_ERROR_MESSAGE, }); } }; diff --git a/controllers/pullRequests.js b/controllers/pullRequests.js index 196f855c6..116c434cb 100644 --- a/controllers/pullRequests.js +++ b/controllers/pullRequests.js @@ -17,12 +17,12 @@ const getUserPRs = async (req, res) => { const allPRs = githubService.extractPRdetails(data); return res.json({ message: "Pull requests returned successfully!", - pullRequests: allPRs + pullRequests: allPRs, }); } return res.json({ message: "No pull requests found!", - pullRequests: [] + pullRequests: [], }); } catch (err) { logger.error(`Error while processing pull requests: ${err}`); @@ -47,12 +47,12 @@ const getStalePRs = async (req, res) => { const allPRs = githubService.extractPRdetails(data); return res.json({ message: "Stale PRs", - pullRequests: allPRs + pullRequests: allPRs, }); } return res.json({ message: "No pull requests found!", - pullRequests: [] + pullRequests: [], }); } catch (err) { logger.error(`Error while processing pull requests: ${err}`); @@ -77,12 +77,12 @@ const getOpenPRs = async (req, res) => { const allPRs = githubService.extractPRdetails(data); return res.json({ message: "Open PRs", - pullRequests: allPRs + pullRequests: allPRs, }); } return res.json({ message: "No pull requests found!", - pullRequests: [] + pullRequests: [], }); } catch (err) { logger.error(`Error while processing pull requests: ${err}`); @@ -93,5 +93,5 @@ const getOpenPRs = async (req, res) => { module.exports = { getUserPRs, getStalePRs, - getOpenPRs + getOpenPRs, }; diff --git a/controllers/recruiters.js b/controllers/recruiters.js index ccacc65de..b363b31b1 100644 --- a/controllers/recruiters.js +++ b/controllers/recruiters.js @@ -16,7 +16,7 @@ const addRecruiter = async (req, res) => { } return res.json({ message: "Request Submission Successful!!", - result + result, }); } catch (error) { logger.error(`Error while adding recruiterInfo: ${error}`); @@ -35,7 +35,7 @@ const fetchRecruitersInfo = async (req, res) => { const allRecruiter = await recruiterQuery.fetchRecruitersInfo(); return res.json({ message: "Recruiters returned successfully!", - recruiters: allRecruiter.length > 0 ? allRecruiter : [] + recruiters: allRecruiter.length > 0 ? allRecruiter : [], }); } catch (error) { logger.error(`Error while fetching recruiters: ${error}`); @@ -45,5 +45,5 @@ const fetchRecruitersInfo = async (req, res) => { module.exports = { addRecruiter, - fetchRecruitersInfo + fetchRecruitersInfo, }; diff --git a/controllers/staging.js b/controllers/staging.js index e54af8d0b..a18a6e983 100644 --- a/controllers/staging.js +++ b/controllers/staging.js @@ -5,7 +5,7 @@ const updateRoles = async (req, res) => { const userData = await req.userData; if (process.env.NODE_ENV === "production") { return res.status(403).json({ - message: "FORBIDDEN | To be used only in staging and development" + message: "FORBIDDEN | To be used only in staging and development", }); } const userId = req.userData.id; @@ -13,19 +13,19 @@ const updateRoles = async (req, res) => { { roles: { ...userData.roles, - ...req.body + ...req.body, }, - updated_at: Date.now() + updated_at: Date.now(), }, - userId + userId, ); return res.status(200).json({ - message: "Roles Updated successfully" + message: "Roles Updated successfully", }); } catch (err) { logger.error(`Oops an error occured: ${err}`); return res.status(500).json({ - message: "Oops an internal error occured" + message: "Oops an internal error occured", }); } }; @@ -33,7 +33,7 @@ const updateRoles = async (req, res) => { const removePrivileges = async (req, res) => { if (process.env.NODE_ENV === "production") { return res.status(403).json({ - message: "FORBIDDEN | To be used only in staging and development" + message: "FORBIDDEN | To be used only in staging and development", }); } try { @@ -47,12 +47,12 @@ const removePrivileges = async (req, res) => { { roles: { ...member.roles, - member: false + member: false, }, - updated_at: Date.now() + updated_at: Date.now(), }, - member.id - ) + member.id, + ), ); }); superUsers.forEach((superUser) => { @@ -61,29 +61,29 @@ const removePrivileges = async (req, res) => { { roles: { ...superUser.roles, - super_user: false + super_user: false, }, - updated_at: Date.now() + updated_at: Date.now(), }, - superUser.id - ) + superUser.id, + ), ); }); await Promise.all(updateUserPromises); return res.status(200).json({ - message: "Roles Updated successfully" + message: "Roles Updated successfully", }); } catch (err) { logger.error(`Oops an error occurred: ${err}`); return res.status(500).json({ - message: "Oops an internal error occurred" + message: "Oops an internal error occurred", }); } }; module.exports = { updateRoles, - removePrivileges + removePrivileges, }; diff --git a/controllers/stocks.js b/controllers/stocks.js index 0c62c34df..1f914098b 100644 --- a/controllers/stocks.js +++ b/controllers/stocks.js @@ -13,7 +13,7 @@ const addNewStock = async (req, res) => { return res.json({ message: "Stock created successfully!", stock: stockData, - id + id, }); } catch (err) { logger.error(`Error while creating new stock: ${err}`); @@ -31,7 +31,7 @@ const fetchStocks = async (req, res) => { const allStock = await stocks.fetchStocks(); return res.json({ message: allStock.length > 0 ? "Stocks returned successfully!" : "No stocks found", - stock: allStock.length > 0 ? allStock : [] + stock: allStock.length > 0 ? allStock : [], }); } catch (err) { logger.error(`Error while fetching stocks ${err}`); @@ -50,7 +50,7 @@ const getSelfStocks = async (req, res) => { const userStocks = await stocks.fetchUserStocks(userId); return res.json({ message: userStocks.length > 0 ? "User stocks returned successfully!" : "No stocks found", - userStocks + userStocks, }); } catch (err) { logger.error(`Error while getting user stocks ${err}`); @@ -61,5 +61,5 @@ const getSelfStocks = async (req, res) => { module.exports = { addNewStock, fetchStocks, - getSelfStocks + getSelfStocks, }; diff --git a/controllers/tags.js b/controllers/tags.js index bdb8dfe47..738c9b7b4 100644 --- a/controllers/tags.js +++ b/controllers/tags.js @@ -14,17 +14,17 @@ const addTag = async (req, res) => { const { id, tagData, message } = await TagModel.addTag({ ...req.body, createdBy: req.userData.id, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); if (id) { return res.json({ message, - data: { tag: tagData, id } + data: { tag: tagData, id }, }); } else { return res.status(400).json({ message, - data: { tag: tagData } + data: { tag: tagData }, }); } } catch (err) { @@ -45,7 +45,7 @@ const deleteTag = async (req, res) => { const { id } = await TagModel.deleteTag(req.params.tagid); return res.json({ message: "Tag Deleted successfully!", - id + id, }); } catch (err) { logger.error(`Error while deleting the tag: ${err}`); @@ -64,7 +64,7 @@ const getAllTags = async (req, res) => { const { allTags } = await TagModel.getAllTags(); return res.json({ message: "Tags returned successfully", - tags: allTags + tags: allTags, }); } catch (err) { logger.error(`Error while fetching all the tag: ${err}`); @@ -78,7 +78,7 @@ const getTagsByType = async (req, res) => { const { tags } = await TagModel.getTagByType(type); return res.json({ message: `Tags of type: ${type} returned successfully`, - tags + tags, }); } catch (err) { logger.error(`Error while fetching the tags: ${err}`); @@ -90,5 +90,5 @@ module.exports = { addTag, deleteTag, getAllTags, - getTagsByType + getTagsByType, }; diff --git a/controllers/tasks.js b/controllers/tasks.js index 9f83645bf..a041ebeeb 100644 --- a/controllers/tasks.js +++ b/controllers/tasks.js @@ -34,13 +34,13 @@ const addNewTask = async (req, res) => { ...req.body, createdBy, createdAt: timeStamp, - updatedAt: timeStamp + updatedAt: timeStamp, }; delete body.dependsOn; const { taskId, taskDetails } = await tasks.updateTask(body); const data = { taskId, - dependsOn + dependsOn, }; const taskDependency = dependsOn && (await dependencyModel.addDependency(data)); if (req.body.assignee) { @@ -51,9 +51,9 @@ const addNewTask = async (req, res) => { task: { ...taskDetails, ...(taskDependency && { dependsOn: taskDependency }), - id: taskId + id: taskId, }, - ...(userStatusUpdate && { userStatus: userStatusUpdate }) + ...(userStatusUpdate && { userStatus: userStatusUpdate }), }); } catch (err) { logger.error(`Error while creating new task: ${err}`); @@ -81,9 +81,9 @@ const fetchTasksWithRdsAssigneeInfo = async (allTasks) => { ...task.github, issue: { ...task.github.issue, - assigneeRdsInfo: await getRdsUserInfoByGitHubUsername(task.github.issue.assignee) - } - } + assigneeRdsInfo: await getRdsUserInfoByGitHubUsername(task.github.issue.assignee), + }, + }, }; } } @@ -102,7 +102,7 @@ const fetchPaginatedTasks = async (query) => { const result = { tasks: tasksWithRdsAssigneeInfo.length > 0 ? tasksWithRdsAssigneeInfo : [], prev, - next + next, }; if (next) { @@ -110,7 +110,7 @@ const fetchPaginatedTasks = async (query) => { endpoint: "/tasks", query, cursorKey: "next", - docId: next + docId: next, }); result.next = nextLink; } @@ -120,7 +120,7 @@ const fetchPaginatedTasks = async (query) => { endpoint: "/tasks", query, cursorKey: "prev", - docId: prev + docId: prev, }); result.prev = prevLink; } @@ -141,7 +141,7 @@ const fetchTasks = async (req, res) => { const paginatedTasks = await fetchPaginatedTasks({ ...transformedQuery, prev, next, userFeatureFlag }); return res.json({ message: "Tasks returned successfully!", - ...paginatedTasks + ...paginatedTasks, }); } @@ -150,7 +150,7 @@ const fetchTasks = async (req, res) => { if (!searchParams.searchTerm) { return res.status(404).json({ message: "No tasks found.", - tasks: [] + tasks: [], }); } const filterTasks = await tasks.fetchTasks(searchParams.searchTerm); @@ -158,12 +158,12 @@ const fetchTasks = async (req, res) => { if (tasksWithRdsAssigneeInfo.length === 0) { return res.status(404).json({ message: "No tasks found.", - tasks: [] + tasks: [], }); } return res.json({ message: "Filter tasks returned successfully!", - tasks: tasksWithRdsAssigneeInfo + tasks: tasksWithRdsAssigneeInfo, }); } @@ -172,12 +172,12 @@ const fetchTasks = async (req, res) => { if (tasksWithRdsAssigneeInfo.length === 0) { return res.status(404).json({ message: "No tasks found", - tasks: [] + tasks: [], }); } return res.json({ message: "Tasks returned successfully!", - tasks: tasksWithRdsAssigneeInfo + tasks: tasksWithRdsAssigneeInfo, }); } catch (err) { logger.error(`Error while fetching tasks ${err}`); @@ -216,7 +216,7 @@ const getUserTasks = async (req, res) => { return res.json({ message: "Tasks returned successfully!", - tasks: allTasks.length > 0 ? allTasks : [] + tasks: allTasks.length > 0 ? allTasks : [], }); } catch (err) { logger.error(`Error while fetching tasks: ${err}`); @@ -260,7 +260,7 @@ const getTask = async (req, res) => { } return res.json({ message: "task returned successfully", - taskData: { ...taskData, dependsOn: dependencyDocReference } + taskData: { ...taskData, dependsOn: dependencyDocReference }, }); } catch (err) { return res.boom.badImplementation(INTERNAL_SERVER_ERROR); @@ -355,12 +355,12 @@ const updateTaskStatus = async (req, res, next) => { return res.boom.badRequest( `The status of task can not be changed from ${ isCurrentTaskStatusInProgress ? "In progress" : "Blocked" - } until progress of task is not 100%.` + } until progress of task is not 100%.`, ); } if (isNewTaskStatusInProgress && !isCurrentTaskStatusBlock && !isCurrProgress0 && !isNewProgress0) { return res.boom.badRequest( - "The status of task can not be changed to In progress until progress of task is not 0%." + "The status of task can not be changed to In progress until progress of task is not 0%.", ); } } @@ -388,12 +388,12 @@ const updateTaskStatus = async (req, res, next) => { meta: { userId, taskId, - username + username, }, body: { subType: "update", - new: {} - } + new: {}, + }, }; if (status && !req.body.percentCompleted) { @@ -410,7 +410,7 @@ const updateTaskStatus = async (req, res, next) => { const [, taskLogResult] = await Promise.all([ tasks.updateTask(req.body, taskId), - addLog(taskLog.type, taskLog.meta, taskLog.body) + addLog(taskLog.type, taskLog.meta, taskLog.body), ]); taskLog.id = taskLogResult.id; @@ -420,7 +420,7 @@ const updateTaskStatus = async (req, res, next) => { return res.json({ message: "Task updated successfully!", taskLog, - ...(userStatusUpdate && { userStatus: userStatusUpdate }) + ...(userStatusUpdate && { userStatus: userStatusUpdate }), }); } catch (err) { logger.error(`Error while updating task status : ${err}`); @@ -439,12 +439,12 @@ const overdueTasks = async (req, res) => { const allTasks = await tasks.fetchTasks(); const now = Math.floor(Date.now() / 1000); const overDueTasks = allTasks.filter( - (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now + (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now, ); const newAvailableTasks = await tasks.overdueTasks(overDueTasks); return res.json({ message: newAvailableTasks.length ? "Overdue Tasks returned successfully!" : "No overdue tasks found", - newAvailableTasks + newAvailableTasks, }); } catch (err) { logger.error(`Error while fetching overdue tasks : ${err}`); @@ -510,7 +510,7 @@ const getUsersHandler = async (req, res) => { weekdayList, dateList, status, - size: transformedSize + size: transformedSize, } = transformTasksUsersQuery({ ...filterQueries, size }); if (status === tasksUsersStatus.MISSED_UPDATES) { const response = await getMissedProgressUpdatesUsers({ @@ -518,7 +518,7 @@ const getUsersHandler = async (req, res) => { size: transformedSize, excludedDates: dateList, excludedDays: weekdayList, - dateGap: dateGap + dateGap: dateGap, }); if (response.error) { @@ -534,12 +534,12 @@ const getUsersHandler = async (req, res) => { const taskRequestLog = { type: logType.TASKS_MISSED_UPDATES_ERRORS, meta: { - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }, body: { request: req.query, - error: error.toString() - } + error: error.toString(), + }, }; await addLog(taskRequestLog.type, taskRequestLog.meta, taskRequestLog.body); logger.error("Error in fetching users details of tasks", error); @@ -559,5 +559,5 @@ module.exports = { assignTask, updateStatus, getUsersHandler, - orphanTasks + orphanTasks, }; diff --git a/controllers/tasksRequests.js b/controllers/tasksRequests.js index a9dca4795..d647e564e 100644 --- a/controllers/tasksRequests.js +++ b/controllers/tasksRequests.js @@ -16,7 +16,7 @@ const fetchTaskRequests = async (_, res) => { return res.status(200).json({ message: "Task requests returned successfully", - ...data + ...data, }); } catch (err) { logger.error("Error while fetching task requests", err); @@ -31,12 +31,12 @@ const fetchTaskRequestById = async (req, res) => { if (!data.taskRequestExists) { return res.status(404).json({ - message: "Task request not found" + message: "Task request not found", }); } return res.status(200).json({ message: "Task request returned successfully", - data: data.taskRequestData + data: data.taskRequestData, }); } catch (err) { logger.error("Error while fetching task requests", err); @@ -107,9 +107,9 @@ const addTaskRequests = async (req, res) => { createdBy: req.userData.id, createdAt: Date.now(), lastModifiedBy: req.userData.id, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }, - body: newTaskRequest.taskRequest + body: newTaskRequest.taskRequest, }; await addLog(taskRequestLog.type, taskRequestLog.meta, taskRequestLog.body); @@ -118,8 +118,8 @@ const addTaskRequests = async (req, res) => { message: "Task request successful.", data: { id: newTaskRequest.id, - ...newTaskRequest.taskRequest - } + ...newTaskRequest.taskRequest, + }, }); } catch (err) { logger.error("Error while creating task request"); @@ -148,13 +148,13 @@ const addOrUpdate = async (req, res) => { if (response.isCreate) { return res.status(201).json({ message: "Task request successfully created", - taskRequest: response.taskRequest + taskRequest: response.taskRequest, }); } return res.status(200).json({ message: "Task request successfully updated", - requestors: response.requestors + requestors: response.requestors, }); } catch (err) { logger.error("Error while creating task request"); @@ -209,15 +209,15 @@ const updateTaskRequests = async (req, res) => { createdBy: req.userData.id, createdAt: Date.now(), lastModifiedBy: req.userData.id, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }, - body: updateTaskRequestResponse.taskRequest + body: updateTaskRequestResponse.taskRequest, }; await addLog(taskRequestLog.type, taskRequestLog.meta, taskRequestLog.body); return res.status(200).json({ message: `Task updated successfully.`, - taskRequest: updateTaskRequestResponse?.taskRequest + taskRequest: updateTaskRequestResponse?.taskRequest, }); } catch (err) { logger.error("Error while approving task request", err); @@ -258,5 +258,5 @@ module.exports = { fetchTaskRequests, fetchTaskRequestById, addTaskRequests, - migrateTaskRequests + migrateTaskRequests, }; diff --git a/controllers/trading.js b/controllers/trading.js index 6b750c8f8..617e2c538 100644 --- a/controllers/trading.js +++ b/controllers/trading.js @@ -12,7 +12,7 @@ const trade = async (req, res) => { const tradeStockData = { ...req.body, username, - userId + userId, }; const { canUserTrade, errorMessage, userBalance } = await tradeService.trade(tradeStockData); @@ -28,5 +28,5 @@ const trade = async (req, res) => { }; module.exports = { - trade + trade, }; diff --git a/controllers/userStatus.js b/controllers/userStatus.js index 54e358e45..1d17b406e 100644 --- a/controllers/userStatus.js +++ b/controllers/userStatus.js @@ -90,7 +90,7 @@ const getAllUserStatus = async (req, res) => { return res.json({ message: "All User Status found successfully.", totalUserStatus: activeUsers.length, - allUserStatus: activeUsers + allUserStatus: activeUsers, }); } catch (err) { logger.error(`Error while fetching all the User Status: ${err}`); @@ -141,7 +141,7 @@ const updateAllUserStatus = async (req, res) => { const data = await userStatusModel.updateAllUserStatus(); return res.status(200).json({ message: "All User Status updated successfully.", - data + data, }); } catch (err) { logger.error(`Error while updating the User Data: ${err}`); @@ -160,12 +160,12 @@ const getTaskBasedUsersStatus = async (req, res) => { const data = await userStatusModel.getTaskBasedUsersStatus(); return res.json({ message: "All users based on tasks found successfully.", - data + data, }); } catch (error) { logger.error(error.message); return res.status(500).json({ - message: "The server has encountered an unexpected error. Please contact the administrator for more information." + message: "The server has encountered an unexpected error. Please contact the administrator for more information.", }); } }; @@ -189,12 +189,12 @@ const batchUpdateUsersStatus = async (req, res) => { const data = await userStatusModel.batchUpdateUsersStatus(req.body.users); return res.json({ message: "users status updated successfully.", - data + data, }); } catch (error) { logger.error(error.message); return res.status(500).json({ - message: "The server has encountered an unexpected error. Please contact the administrator for more information." + message: "The server has encountered an unexpected error. Please contact the administrator for more information.", }); } }; @@ -210,13 +210,13 @@ const cancelOOOStatus = async (req, res) => { return res.status(403).json({ statusCode: 403, error: "Forbidden", - message: error.message + message: error.message, }); } else if (error instanceof NotFound) { return res.status(404).json({ statusCode: 404, error: "NotFound", - message: error.message + message: error.message, }); } return res.boom.badImplementation(INTERNAL_SERVER_ERROR); @@ -249,5 +249,5 @@ module.exports = { getTaskBasedUsersStatus, getUserStatusControllers, batchUpdateUsersStatus, - updateUserStatusController + updateUserStatusController, }; diff --git a/controllers/users.js b/controllers/users.js index 008513221..218808455 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -24,7 +24,7 @@ const { getFilteredPaginationLink } = require("../utils/userStatus"); const { USERS_PATCH_HANDLER_ACTIONS, USERS_PATCH_HANDLER_ERROR_MESSAGES, - USERS_PATCH_HANDLER_SUCCESS_MESSAGES + USERS_PATCH_HANDLER_SUCCESS_MESSAGES, } = require("../constants/users"); const { addLog } = require("../models/logs"); const { getUserStatus } = require("../models/userStatus"); @@ -45,10 +45,10 @@ const verifyUser = async (req, res) => { fetch(process.env.IDENTITY_SERVICE_URL, { method: "POST", body: JSON.stringify({ userId }), - headers: { "Content-Type": "application/json" } + headers: { "Content-Type": "application/json" }, }); return res.json({ - message: "Your request has been queued successfully" + message: "Your request has been queued successfully", }); }; @@ -68,7 +68,7 @@ const getUserById = async (req, res) => { return res.json({ message: "User returned successfully!", - user + user, }); }; @@ -108,7 +108,7 @@ const getUsers = async (req, res) => { } return res.json({ message: "User returned successfully!", - user + user, }); } if (!transformedQuery?.days && transformedQuery?.filterBy === "unmerged_prs") { @@ -132,7 +132,7 @@ const getUsers = async (req, res) => { return res.json({ message: "Inactive users returned successfully!", count: users.length, - users: users + users: users, }); } catch (error) { logger.error(`Error while fetching all users: ${error}`); @@ -152,7 +152,7 @@ const getUsers = async (req, res) => { if (!result.userExists) { return res.json({ message: "User not found", - user: null + user: null, }); } @@ -166,7 +166,7 @@ const getUsers = async (req, res) => { } return res.json({ message: "User returned successfully!", - user + user, }); } else { return res.boom.notFound("Route not found"); @@ -179,7 +179,7 @@ const getUsers = async (req, res) => { if (!tasksData.length) { return res.json({ message: "No users found", - users: [] + users: [], }); } const userIds = new Set(); @@ -198,7 +198,7 @@ const getUsers = async (req, res) => { const userData = { id: user.id, discordId: user.discordId, - username: user.username + username: user.username, }; if (dev) { userData.tasks = userTasks; @@ -210,7 +210,7 @@ const getUsers = async (req, res) => { return res.json({ message: "Users returned successfully!", count: usersData.length, - users: usersData + users: usersData, }); } catch (error) { const errorMessage = `Error while fetching users and tasks: ${error}`; @@ -225,7 +225,7 @@ const getUsers = async (req, res) => { const users = await dataAccess.retrieveUsers({ usernames: usernames }); return res.json({ message: "Users returned successfully!", - users + users, }); } @@ -236,8 +236,8 @@ const getUsers = async (req, res) => { users: data.users, links: { next: data.nextId ? getPaginationLink(req.query, "next", data.nextId) : "", - prev: data.prevId ? getPaginationLink(req.query, "prev", data.prevId) : "" - } + prev: data.prevId ? getPaginationLink(req.query, "prev", data.prevId) : "", + }, }); } catch (error) { logger.error(`Error while fetching all users: ${error}`); @@ -279,7 +279,7 @@ const getUser = async (req, res) => { if (result.userExists) { return res.json({ message: "User returned successfully!", - user + user, }); } @@ -297,7 +297,7 @@ const getUserSkills = async (req, res) => { return res.json({ message: "Skills returned successfully", - skills + skills, }); } catch (err) { logger.error(`Error fetching skills ${err}`); @@ -318,7 +318,7 @@ const getSuggestedUsers = async (req, res) => { return res.json({ message: "Users returned successfully!", - users + users, }); } catch (err) { logger.error(`Error while fetching suggested users: ${err}`); @@ -337,7 +337,7 @@ const getUsernameAvailabilty = async (req, res) => { try { const result = await dataAccess.retrieveUsers({ username: req.params.username }); return res.json({ - isUsernameAvailable: !result.userExists + isUsernameAvailable: !result.userExists, }); } catch (error) { logger.error(`Error while checking user: ${error}`); @@ -353,7 +353,7 @@ const generateUsername = async (req, res) => { return res.json({ username }); } else { return res.status(404).json({ - message: "UserName Not Found" + message: "UserName Not Found", }); } } catch (error) { @@ -373,7 +373,7 @@ const getSelfDetails = async (req, res) => { try { if (req.userData) { const user = await dataAccess.retrieveUsers({ - userdata: req.userData + userdata: req.userData, }); return res.send(user); } @@ -469,7 +469,7 @@ const postUserPicture = async (req, res) => { } return res.status(201).json({ message: `Profile picture uploaded successfully! ${verificationResult.message}`, - image: imageData + image: imageData, }); }; @@ -486,7 +486,7 @@ const verifyUserImage = async (req, res) => { const { id: userId } = req.params; await userQuery.markAsVerified(userId, imageType); return res.json({ - message: `${imageType} image was verified successfully!` + message: `${imageType} image was verified successfully!`, }); } catch (error) { logger.error(`Error while verifying image of user: ${error}`); @@ -514,9 +514,9 @@ const updateDiscordUserNickname = async (req, res) => { userAffected: { userId, username, - discordId + discordId, }, - message: "User nickname changed successfully" + message: "User nickname changed successfully", }); } catch (err) { logger.error(`Error while updating nickname: ${err}`); @@ -571,7 +571,7 @@ const getUserImageForVerification = async (req, res) => { const userImageVerificationData = await userQuery.getUserImageForVerification(userId); return res.json({ message: "User image verification record fetched successfully!", - data: userImageVerificationData + data: userImageVerificationData, }); } catch (error) { logger.error(`Error while verifying image of user: ${error}`); @@ -603,13 +603,13 @@ const updateUser = async (req, res) => { const meta = { approvedBy: req.userData.id, - userId: userId + userId: userId, }; await logsQuery.addLog(logType.PROFILE_DIFF_APPROVED, meta, { profileDiffId, message }); return res.json({ - message: "Updated user's data successfully!" + message: "Updated user's data successfully!", }); } catch (error) { logger.error(`Error while updating user data: ${error}`); @@ -625,7 +625,7 @@ const generateChaincode = async (req, res) => { await userQuery.addOrUpdate({ chaincode }, id); return res.json({ chaincode, - message: "Chaincode returned successfully" + message: "Chaincode returned successfully", }); } catch (error) { logger.error(`Error while generating chaincode: ${error}`); @@ -639,7 +639,7 @@ const profileURL = async (req, res) => { const { profileURL } = req.body; await userQuery.addOrUpdate({ profileURL }, userId); return res.json({ - message: "updated profile URL!!" + message: "updated profile URL!!", }); } catch (error) { logger.error(`Internal Server Error: ${error}`); @@ -652,20 +652,20 @@ const rejectProfileDiff = async (req, res) => { const { profileDiffId, message } = req.body; const profileResponse = await profileDiffsQuery.updateProfileDiff( { approval: profileDiffStatus.REJECTED }, - profileDiffId + profileDiffId, ); if (profileResponse.notFound) return res.boom.notFound("Profile Diff doesn't exist"); const meta = { rejectedBy: req.userData.id, - userId: profileResponse.userId + userId: profileResponse.userId, }; await logsQuery.addLog(logType.PROFILE_DIFF_REJECTED, meta, { profileDiffId, message }); return res.json({ - message: "Profile Diff Rejected successfully!" + message: "Profile Diff Rejected successfully!", }); } catch (error) { logger.error(`Error while rejecting profile diff: ${error}`); @@ -680,7 +680,7 @@ const addUserIntro = async (req, res) => { if (joinData.length === 1) { return res.status(409).json({ - message: "User data is already present!" + message: "User data is already present!", }); } @@ -688,30 +688,30 @@ const addUserIntro = async (req, res) => { userId: req.userData.id, biodata: { firstName: rawData.firstName, - lastName: rawData.lastName + lastName: rawData.lastName, }, location: { city: rawData.city, state: rawData.state, - country: rawData.country + country: rawData.country, }, professional: { institution: rawData.college, - skills: rawData.skills + skills: rawData.skills, }, intro: { introduction: rawData.introduction, funFact: rawData.funFact, forFun: rawData.forFun, whyRds: rawData.whyRds, - numberOfHours: rawData.numberOfHours + numberOfHours: rawData.numberOfHours, }, - foundFrom: rawData.foundFrom + foundFrom: rawData.foundFrom, }; await userQuery.addJoinData(data); return res.status(201).json({ - message: "User join data and newstatus data added and updated successfully" + message: "User join data and newstatus data added and updated successfully", }); } catch (err) { logger.error("Could not save user data"); @@ -725,11 +725,11 @@ const getUserIntro = async (req, res) => { if (data.length) { return res.json({ message: "User data returned", - data: data + data: data, }); } else { return res.status(404).json({ - message: "Data Not Found" + message: "Data Not Found", }); } } catch (err) { @@ -750,7 +750,7 @@ const addDefaultArchivedRole = async (req, res) => { const addedDefaultArchivedRoleData = await userQuery.addDefaultArchivedRole(); return res.json({ message: "Users default archived role added successfully!", - ...addedDefaultArchivedRoleData + ...addedDefaultArchivedRoleData, }); } catch (error) { logger.error(`Error adding default archived role: ${error}`); @@ -771,7 +771,7 @@ const calculatePagination = (pageNumber, totalPages, reqQuery, limitNumber) => { return { next: nextPage ? getFilteredPaginationLink(reqQuery, nextPage, limitNumber) : null, - prev: prevPage ? getFilteredPaginationLink(reqQuery, prevPage, limitNumber) : null + prev: prevPage ? getFilteredPaginationLink(reqQuery, prevPage, limitNumber) : null, }; }; @@ -786,7 +786,7 @@ const filterUsers = async (req, res) => { return res.json({ message: users.length ? "Users found successfully!" : "No users found", users: users, - count: users.length + count: users.length, }); } const { page, size } = req.query; @@ -804,7 +804,7 @@ const filterUsers = async (req, res) => { message: users.length ? "Users found successfully!" : "No users found", users: users, links: paginationLinks, - count: users.length + count: users.length, }); } catch (error) { logger.error(`Error while fetching all users: ${error}`); @@ -843,17 +843,17 @@ const updateRoles = async (req, res) => { reason: reason || "", archived_user: { user_id: result.user.id, - username: result.user.username + username: result.user.username, }, archived_by: { user_id: superUserId, - roles: roles - } + roles: roles, + }, }; addLog("archived-details", {}, body); } return res.json({ - message: "role updated successfully!" + message: "role updated successfully!", }); } else { return res.boom.conflict("Role already exist!"); @@ -874,13 +874,13 @@ const archiveUserIfNotInDiscord = async () => { if (data.totalUsers === 0) { return { message: USERS_PATCH_HANDLER_ERROR_MESSAGES.ARCHIVE_USERS.NO_USERS_DATA_TO_UPDATE, - summary: data + summary: data, }; } return { message: USERS_PATCH_HANDLER_SUCCESS_MESSAGES.ARCHIVE_USERS.SUCCESSFULLY_UPDATED_DATA, - summary: data + summary: data, }; } catch (error) { logger.error(`Error while updating the archived role: ${error}`); @@ -948,5 +948,5 @@ module.exports = { updateDiscordUserNickname, archiveUserIfNotInDiscord, usersPatchHandler, - isDeveloper + isDeveloper, }; diff --git a/controllers/wallets.js b/controllers/wallets.js index e330e26af..e288905a5 100644 --- a/controllers/wallets.js +++ b/controllers/wallets.js @@ -37,7 +37,7 @@ const getOwnWallet = async (req, res) => { return res.json({ message: "Wallet returned successfully for user", - wallet + wallet, }); } catch (err) { logger.error(`Error while retriving wallet data ${err}`); @@ -59,7 +59,7 @@ const getUserWallet = async (req, res) => { return res.json({ message: "Wallet returned successfully", - wallet + wallet, }); } catch (err) { logger.error(`Error while retriving wallet data ${err}`); @@ -69,5 +69,5 @@ const getUserWallet = async (req, res) => { module.exports = { getOwnWallet, - getUserWallet + getUserWallet, }; diff --git a/middlewares/authenticate.js b/middlewares/authenticate.js index 260c0d486..667d41b32 100644 --- a/middlewares/authenticate.js +++ b/middlewares/authenticate.js @@ -75,7 +75,7 @@ module.exports = async (req, res, next) => { expires: new Date(Date.now() + config.get("userToken.ttl") * 1000), httpOnly: true, secure: true, - sameSite: "lax" + sameSite: "lax", }); // add user data to `req.userData` for further use diff --git a/middlewares/authorization.js b/middlewares/authorization.js index 4340f31f3..c6c79a651 100644 --- a/middlewares/authorization.js +++ b/middlewares/authorization.js @@ -8,7 +8,7 @@ const REQUIRED_ROLES_PRIORITY = { superUser: ["super_user"], appOwner: ["app_owner", "super_user"], - default: ["default", "super_user", "app_owner"] + default: ["default", "super_user", "app_owner"], }; /** @@ -50,5 +50,5 @@ const authorizeUser = (requiredRole) => { module.exports = { authorizeUser, - userHasPermission + userHasPermission, }; diff --git a/middlewares/contentTypeCheck.js b/middlewares/contentTypeCheck.js index 1e3f981a1..7e8dec877 100644 --- a/middlewares/contentTypeCheck.js +++ b/middlewares/contentTypeCheck.js @@ -12,7 +12,7 @@ module.exports = (req, res, next) => { const notMultiPart = !contentType.includes("multipart/form-data"); if (notMultiPart) { return res.boom.unsupportedMediaType( - `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data` + `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data`, ); } } diff --git a/middlewares/index.js b/middlewares/index.js index 3c7fba498..6ce84b05a 100644 --- a/middlewares/index.js +++ b/middlewares/index.js @@ -29,16 +29,16 @@ const middleware = (app) => { dnsPrefetchControl: false, ieNoOpen: false, referrerPolicy: false, - xssFilter: false - }) + xssFilter: false, + }), ); app.use( cors({ origin: config.get("cors.allowedOrigins"), credentials: true, - optionsSuccessStatus: 200 - }) + optionsSuccessStatus: 200, + }), ); app.use(contentTypeCheck); diff --git a/middlewares/passport.js b/middlewares/passport.js index 7b6535804..cbd9276c6 100644 --- a/middlewares/passport.js +++ b/middlewares/passport.js @@ -7,12 +7,12 @@ try { { clientID: config.get("githubOauth.clientId"), clientSecret: config.get("githubOauth.clientSecret"), - callbackURL: `${config.get("services.rdsApi.baseUrl")}/auth/github/callback` + callbackURL: `${config.get("services.rdsApi.baseUrl")}/auth/github/callback`, }, (accessToken, refreshToken, profile, done) => { return done(null, accessToken, profile); - } - ) + }, + ), ); } catch (err) { logger.error("Error initialising passport:", err); diff --git a/middlewares/rateLimiting.js b/middlewares/rateLimiting.js index 3ec7969e5..f0b0417f1 100644 --- a/middlewares/rateLimiting.js +++ b/middlewares/rateLimiting.js @@ -7,7 +7,7 @@ const opts = { keyPrefix: "commonRateLimiter--login_fail_by_ip_per_minute", points: 5, duration: 30, - blockDuration: 60 * 10 + blockDuration: 60 * 10, }; const globalRateLimiter = new RateLimiterMemory(opts); @@ -40,7 +40,7 @@ async function commonRateLimiter(req, res, next) { "Retry-After": retrySeconds, "X-RateLimit-Limit": opts.points, "X-RateLimit-Remaining": error?.remainingPoints ?? 0, - "X-RateLimit-Reset": new Date(Date.now() + error?.msBeforeNext) + "X-RateLimit-Reset": new Date(Date.now() + error?.msBeforeNext), }); const message = `${TOO_MANY_REQUESTS.ERROR_TYPE}: Retry After ${retrySeconds} seconds, requests limit reached`; return res.status(TOO_MANY_REQUESTS.STATUS_CODE).json({ message }); @@ -48,5 +48,5 @@ async function commonRateLimiter(req, res, next) { } module.exports = { - commonRateLimiter + commonRateLimiter, }; diff --git a/middlewares/taskRequests.js b/middlewares/taskRequests.js index f6d8c9d97..bca7af322 100644 --- a/middlewares/taskRequests.js +++ b/middlewares/taskRequests.js @@ -33,5 +33,5 @@ async function validateUser(req, res, next) { } module.exports = { - validateUser + validateUser, }; diff --git a/middlewares/validators/arts.js b/middlewares/validators/arts.js index 8a84af8a3..31f233d1b 100644 --- a/middlewares/validators/arts.js +++ b/middlewares/validators/arts.js @@ -7,7 +7,7 @@ const createArt = async (req, res, next) => { .keys({ title: joi.string().required(), price: joi.number().min(0).required(), - css: joi.string().required() + css: joi.string().required(), }); try { await schema.validateAsync(req.body); @@ -19,5 +19,5 @@ const createArt = async (req, res, next) => { }; module.exports = { - createArt + createArt, }; diff --git a/middlewares/validators/auctions.js b/middlewares/validators/auctions.js index c5e447ce0..585abbab7 100644 --- a/middlewares/validators/auctions.js +++ b/middlewares/validators/auctions.js @@ -5,7 +5,7 @@ const createAuction = async (req, res, next) => { item_type: joi.string().required(), quantity: joi.number().required(), initial_price: joi.number().required(), - end_time: joi.number().required() + end_time: joi.number().required(), }); try { await schema.validateAsync(req.body); @@ -18,7 +18,7 @@ const createAuction = async (req, res, next) => { const placeBid = async (req, res, next) => { const schema = joi.object().strict().keys({ - bid: joi.number().required() + bid: joi.number().required(), }); try { await schema.validateAsync(req.body); @@ -31,5 +31,5 @@ const placeBid = async (req, res, next) => { module.exports = { createAuction, - placeBid + placeBid, }; diff --git a/middlewares/validators/badges.js b/middlewares/validators/badges.js index 8b16ee563..513742426 100644 --- a/middlewares/validators/badges.js +++ b/middlewares/validators/badges.js @@ -1,7 +1,7 @@ const joi = require("joi"); const { ERROR_MESSAGES } = require("../../constants/badges"); const { - VALIDATORS: { CREATE_BADGE, ASSIGN_OR_REMOVE_BADGES, API_PAYLOAD_VALIDATION_FAILED } + VALIDATORS: { CREATE_BADGE, ASSIGN_OR_REMOVE_BADGES, API_PAYLOAD_VALIDATION_FAILED }, } = ERROR_MESSAGES; const logger = require("../../utils/logger"); @@ -18,7 +18,7 @@ async function createBadge(req, res, next) { .keys({ name: joi.string().min(3).max(30).required(), description: joi.string().min(3).max(130).optional(), - createdBy: joi.string().min(1).required() + createdBy: joi.string().min(1).required(), }); try { if (!req.file) { @@ -44,7 +44,7 @@ async function assignOrRemoveBadges(req, res, next) { .strict() .keys({ userId: joi.string().required(), - badgeIds: joi.array().min(1).items(joi.string().required()).unique().required() + badgeIds: joi.array().min(1).items(joi.string().required()).unique().required(), }); try { const { badgeIds, userId } = req.body; @@ -58,5 +58,5 @@ async function assignOrRemoveBadges(req, res, next) { module.exports = { createBadge, - assignOrRemoveBadges + assignOrRemoveBadges, }; diff --git a/middlewares/validators/challenges.js b/middlewares/validators/challenges.js index 92b1aa62b..6d0ce4248 100644 --- a/middlewares/validators/challenges.js +++ b/middlewares/validators/challenges.js @@ -5,7 +5,7 @@ const createChallenge = async (req, res, next) => { title: joi.string().required(), level: joi.string().required(), start_date: joi.number().required(), - end_date: joi.number().required() + end_date: joi.number().required(), }); try { @@ -18,5 +18,5 @@ const createChallenge = async (req, res, next) => { }; module.exports = { - createChallenge + createChallenge, }; diff --git a/middlewares/validators/discordactions.js b/middlewares/validators/discordactions.js index 84ad80355..b325e4216 100644 --- a/middlewares/validators/discordactions.js +++ b/middlewares/validators/discordactions.js @@ -3,7 +3,7 @@ const { validateMillisecondsTimestamp } = require("./utils"); const validateGroupRoleBody = async (req, res, next) => { const schema = Joi.object({ - rolename: Joi.string().trim().required() + rolename: Joi.string().trim().required(), }); try { @@ -17,7 +17,7 @@ const validateGroupRoleBody = async (req, res, next) => { const validateMemberRoleBody = async (req, res, next) => { const schema = Joi.object({ userid: Joi.string().trim().required(), - roleid: Joi.string().trim().required() + roleid: Joi.string().trim().required(), }); try { @@ -42,5 +42,5 @@ const validateUpdateUsersNicknameStatusBody = async (req, res, next) => { module.exports = { validateGroupRoleBody, validateMemberRoleBody, - validateUpdateUsersNicknameStatusBody + validateUpdateUsersNicknameStatusBody, }; diff --git a/middlewares/validators/events.js b/middlewares/validators/events.js index 2a39ac2b0..7b5465be4 100644 --- a/middlewares/validators/events.js +++ b/middlewares/validators/events.js @@ -5,7 +5,7 @@ const createEvent = async (req, res, next) => { name: joi.string().required(), description: joi.string().required(), region: joi.string().required(), - userId: joi.string().required() + userId: joi.string().required(), }); try { @@ -21,7 +21,7 @@ const getAllEvents = async (req, res, next) => { const schema = joi.object({ enabled: joi.boolean(), limit: joi.number().integer().min(10), - offset: joi.string() + offset: joi.string(), }); try { @@ -38,7 +38,7 @@ const joinEvent = async (req, res, next) => { roomId: joi.string().required(), userId: joi.string().required(), eventCode: joi.optional(), - role: joi.string().valid("host", "moderator", "guest", "maven").required() + role: joi.string().valid("host", "moderator", "guest", "maven").required(), }); try { @@ -56,7 +56,7 @@ const getEventById = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), - isActiveRoom: joi.boolean() + isActiveRoom: joi.boolean(), }); const validationOptions = { abortEarly: false }; @@ -73,7 +73,7 @@ const getEventById = async (req, res, next) => { const updateEvent = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), - enabled: joi.boolean().required() + enabled: joi.boolean().required(), }); try { @@ -89,7 +89,7 @@ const endActiveEvent = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), reason: joi.string().required(), - lock: joi.boolean().required() + lock: joi.boolean().required(), }); try { @@ -110,7 +110,7 @@ const addPeerToEvent = async (req, res, next) => { name: joi.string().required(), id: joi.string().required(), role: joi.string().required(), - joinedAt: joi.date().required() + joinedAt: joi.date().required(), }); const validationOptions = { abortEarly: false }; @@ -131,7 +131,7 @@ const kickoutPeer = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), peerId: joi.string().required(), - reason: joi.string().required() + reason: joi.string().required(), }); const validationOptions = { abortEarly: false }; @@ -152,7 +152,7 @@ const generateEventCode = async (req, res, next) => { const schema = joi.object({ id: joi.string().required(), eventCode: joi.string().required(), - role: joi.string().required() + role: joi.string().required(), }); const validationOptions = { abortEarly: false }; @@ -170,7 +170,7 @@ const getEventCodes = async (req, res, next) => { const { id } = req.params; const schema = joi.object({ - id: joi.string().required() + id: joi.string().required(), }); const validationOptions = { abortEarly: false }; @@ -194,5 +194,5 @@ module.exports = { addPeerToEvent, kickoutPeer, generateEventCode, - getEventCodes + getEventCodes, }; diff --git a/middlewares/validators/extensionRequests.js b/middlewares/validators/extensionRequests.js index f945e59b4..3430bbb21 100644 --- a/middlewares/validators/extensionRequests.js +++ b/middlewares/validators/extensionRequests.js @@ -16,7 +16,7 @@ const createExtensionRequest = async (req, res, next) => { oldEndsOn: joi.number().required(), newEndsOn: joi.number().required(), reason: joi.string().required(), - status: joi.string().valid(EXTENSION_REQUEST_STATUS.PENDING).required() + status: joi.string().valid(EXTENSION_REQUEST_STATUS.PENDING).required(), }); try { @@ -33,7 +33,7 @@ const updateExtensionRequestStatus = async (req, res, next) => { .object() .strict() .keys({ - status: joi.string().valid(EXTENSION_REQUEST_STATUS.APPROVED, EXTENSION_REQUEST_STATUS.DENIED).required() + status: joi.string().valid(EXTENSION_REQUEST_STATUS.APPROVED, EXTENSION_REQUEST_STATUS.DENIED).required(), }); try { @@ -52,7 +52,7 @@ const updateExtensionRequest = async (req, res, next) => { assignee: joi.string().optional(), oldEndsOn: joi.number().optional(), newEndsOn: joi.number().optional(), - reason: joi.string().optional() + reason: joi.string().optional(), }); try { @@ -70,7 +70,7 @@ const getExtensionRequestsValidator = async (req, res, next) => { cursor: joi.string().optional(), order: joi.string().valid("asc", "desc").optional(), size: joi.number().integer().positive().min(1).max(100).optional(), - q: joi.string().optional() + q: joi.string().optional(), }); const querySchema = joi.object().keys({ @@ -85,12 +85,12 @@ const getExtensionRequestsValidator = async (req, res, next) => { joi .string() .valid(...ER_STATUS_ENUM) - .insensitive() - ) + .insensitive(), + ), ) .optional(), assignee: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional(), - taskId: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional() + taskId: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional(), }); try { @@ -110,5 +110,5 @@ module.exports = { createExtensionRequest, updateExtensionRequest, updateExtensionRequestStatus, - getExtensionRequestsValidator + getExtensionRequestsValidator, }; diff --git a/middlewares/validators/external-accounts.js b/middlewares/validators/external-accounts.js index 27c5c9ae3..1b083d3ab 100644 --- a/middlewares/validators/external-accounts.js +++ b/middlewares/validators/external-accounts.js @@ -14,8 +14,8 @@ const externalAccountData = async (req, res, next) => { userAvatar: joi.string().required(), discordId: joi.string().required(), discordJoinedAt: joi.string().required(), - expiry: joi.number().required() - } + expiry: joi.number().required(), + }, }); try { @@ -34,7 +34,7 @@ const postExternalAccountsUsers = async (req, res, next) => { action: joi .string() .valid(...Object.values(EXTERNAL_ACCOUNTS_POST_ACTIONS)) - .required() + .required(), }); try { @@ -50,7 +50,7 @@ const linkDiscord = async (req, res, next) => { const { token } = req.params; const schema = joi.object({ - token: joi.string().required() + token: joi.string().required(), }); const validationOptions = { abortEarly: false }; diff --git a/middlewares/validators/fcmToken.js b/middlewares/validators/fcmToken.js index 00e3c0db0..bbed1c755 100644 --- a/middlewares/validators/fcmToken.js +++ b/middlewares/validators/fcmToken.js @@ -2,7 +2,7 @@ const joi = require("joi"); export const fcmTokenValidator = async (req, res, next) => { const schema = joi.object().strict().keys({ - fcmToken: joi.string().required() + fcmToken: joi.string().required(), }); try { await schema.validateAsync(req.body); diff --git a/middlewares/validators/items.js b/middlewares/validators/items.js index d374cfd46..1911c51fe 100644 --- a/middlewares/validators/items.js +++ b/middlewares/validators/items.js @@ -15,9 +15,9 @@ const validateItemsPayload = async (req, res, next) => { tagPayload: Joi.array().items( Joi.object({ tagId: Joi.string().required(), - levelId: Joi.string().required() - }) - ) + levelId: Joi.string().required(), + }), + ), }); try { @@ -37,7 +37,7 @@ const validateItemQuery = async (req, res, next) => { levelName: Joi.string().optional(), levelNumber: Joi.number().optional(), tagId: Joi.string().optional, - tagType: Joi.string().uppercase().optional() + tagType: Joi.string().uppercase().optional(), }); try { @@ -51,5 +51,5 @@ const validateItemQuery = async (req, res, next) => { module.exports = { validateItemsPayload, - validateItemQuery + validateItemQuery, }; diff --git a/middlewares/validators/levels.js b/middlewares/validators/levels.js index ba1caa3a2..217e6cde3 100644 --- a/middlewares/validators/levels.js +++ b/middlewares/validators/levels.js @@ -3,7 +3,7 @@ const Joi = require("joi"); const validateLevelBody = async (req, res, next) => { const schema = Joi.object({ name: Joi.string().trim().required(), - value: Joi.number().integer().min(0).required() + value: Joi.number().integer().min(0).required(), }); try { @@ -16,5 +16,5 @@ const validateLevelBody = async (req, res, next) => { }; module.exports = { - validateLevelBody + validateLevelBody, }; diff --git a/middlewares/validators/members.js b/middlewares/validators/members.js index 8ae2b47ac..125d799c1 100644 --- a/middlewares/validators/members.js +++ b/middlewares/validators/members.js @@ -2,7 +2,7 @@ const joi = require("joi"); const validateGetMembers = async (req, res, next) => { const querySchema = joi.object().keys({ - showArchived: joi.boolean().optional() + showArchived: joi.boolean().optional(), }); try { @@ -15,5 +15,5 @@ const validateGetMembers = async (req, res, next) => { }; module.exports = { - validateGetMembers + validateGetMembers, }; diff --git a/middlewares/validators/monitor.js b/middlewares/validators/monitor.js index f50f71bde..84121a96e 100644 --- a/middlewares/validators/monitor.js +++ b/middlewares/validators/monitor.js @@ -11,11 +11,11 @@ const baseSchema = joi .required() .messages({ "any.required": "Required field 'type' is missing.", - "any.only": "Type field is restricted to either 'user' or 'task'." + "any.only": "Type field is restricted to either 'user' or 'task'.", }), monitored: joi.boolean().required().messages({ "any.required": "Required field 'monitored' is missing.", - "boolean.base": "monitored field must be a boolean value." + "boolean.base": "monitored field must be a boolean value.", }), frequency: joi .number() @@ -24,38 +24,38 @@ const baseSchema = joi .when("type", { is: "user", then: joi.number().equal(1).messages({ - "number.equal": "'frequency' field must be equal to 1" + "number.equal": "'frequency' field must be equal to 1", }), - otherwise: joi.optional() + otherwise: joi.optional(), }) .messages({ "number.base": "'frequency' field must be a number", "number.integer": "'frequency' field must be an integer", "number.positive": "'frequency' field must be a positive integer", - "any.only": "'frequency' field must be equal to 1 for type 'user'" + "any.only": "'frequency' field must be equal to 1 for type 'user'", }), taskId: joi.string().when("type", { is: "task", then: joi.required().messages({ - "any.required": "Required field 'taskId' is missing." + "any.required": "Required field 'taskId' is missing.", }), - otherwise: joi.optional() + otherwise: joi.optional(), }), userId: joi.string().when("type", { is: "user", then: joi.required().messages({ - "any.required": "Required field 'userId' is missing." + "any.required": "Required field 'userId' is missing.", }), - otherwise: joi.optional() - }) + otherwise: joi.optional(), + }), }) .messages({ "object.unknown": "Invalid field provided." }); const validateCreateTrackedProgressRecord = async (req, res, next) => { const monitoredSchema = joi.object().keys({ monitored: joi.boolean().required().messages({ - "boolean.base": "monitored field must be a boolean value." - }) + "boolean.base": "monitored field must be a boolean value.", + }), }); const createSchema = baseSchema.concat(monitoredSchema); try { @@ -73,8 +73,8 @@ const validateUpdateTrackedProgress = async (req, res, next) => { const updatedData = { type, [TYPE_MAP[type]]: typeId, monitored, frequency }; const monitoredSchema = joi.object().keys({ monitored: joi.boolean().optional().messages({ - "boolean.base": "monitored field must be a boolean value." - }) + "boolean.base": "monitored field must be a boolean value.", + }), }); const updateSchema = baseSchema.concat(monitoredSchema).or("monitored", "frequency"); try { @@ -92,7 +92,7 @@ const validateGetTrackedProgressQueryParams = async (req, res, next) => { type: joi.string().valid(...VALID_PROGRESS_TYPES), userId: joi.string(), taskId: joi.string(), - monitored: joi.bool().optional() + monitored: joi.bool().optional(), }) .xor("type", "userId", "taskId") .with("monitored", "type") @@ -101,7 +101,7 @@ const validateGetTrackedProgressQueryParams = async (req, res, next) => { "object.xor": "Invalid combination of request params.", "object.missing": "One of the following fields is required: type, userId, or taskId.", "object.unknown": "Invalid field provided.", - "object.with": "The monitored param is missing a required field type." + "object.with": "The monitored param is missing a required field type.", }); try { @@ -116,5 +116,5 @@ const validateGetTrackedProgressQueryParams = async (req, res, next) => { module.exports = { validateCreateTrackedProgressRecord, validateUpdateTrackedProgress, - validateGetTrackedProgressQueryParams + validateGetTrackedProgressQueryParams, }; diff --git a/middlewares/validators/notify.js b/middlewares/validators/notify.js index 6ff6df756..f960fea83 100644 --- a/middlewares/validators/notify.js +++ b/middlewares/validators/notify.js @@ -11,7 +11,7 @@ export const notifyValidator = async (req, res, next) => { title: joi.string().required().max(MAX_TITLE_LENGTH).required(), body: joi.string().required().max(MAX_BODY_LENGTH).required(), userId: joi.string(), - groupRoleId: joi.string() + groupRoleId: joi.string(), }) .xor("userId", "groupRoleId"); try { diff --git a/middlewares/validators/progresses.js b/middlewares/validators/progresses.js index 1d99731fe..27af88a39 100644 --- a/middlewares/validators/progresses.js +++ b/middlewares/validators/progresses.js @@ -13,28 +13,28 @@ const validateCreateProgressRecords = async (req, res, next) => { .required() .messages({ "any.required": "Required field 'type' is missing.", - "any.only": "Type field is restricted to either 'user' or 'task'." + "any.only": "Type field is restricted to either 'user' or 'task'.", }), completed: joi.string().trim().required().messages({ "any.required": "Required field 'completed' is missing.", - "string.trim": "completed must not have leading or trailing whitespace" + "string.trim": "completed must not have leading or trailing whitespace", }), planned: joi.string().trim().required().messages({ "any.required": "Required field 'planned' is missing.", - "string.trim": "planned must not have leading or trailing whitespace" + "string.trim": "planned must not have leading or trailing whitespace", }), blockers: joi.string().trim().allow("").required().messages({ "any.required": "Required field 'blockers' is missing.", - "string.trim": "blockers must not have leading or trailing whitespace" - }) + "string.trim": "blockers must not have leading or trailing whitespace", + }), }) .messages({ "object.unknown": "Invalid field provided." }); const taskSchema = joi.object().keys({ taskId: joi.string().trim().required().messages({ "any.required": "Required field 'taskId' is missing.", - "string.trim": "taskId must not have leading or trailing whitespace" - }) + "string.trim": "taskId must not have leading or trailing whitespace", + }), }); const schema = req.body.type === "task" ? baseSchema.concat(taskSchema) : baseSchema; @@ -55,26 +55,26 @@ const validateGetProgressRecordsQuery = async (req, res, next) => { .valid(...VALID_PROGRESS_TYPES) .optional() .messages({ - "any.only": "Type field is restricted to either 'user' or 'task'." + "any.only": "Type field is restricted to either 'user' or 'task'.", }), userId: joi.string().optional().allow("").messages({ - "string.base": "userId must be a string" + "string.base": "userId must be a string", }), taskId: joi.string().optional().allow("").messages({ - "string.base": "taskId must be a string" + "string.base": "taskId must be a string", }), orderBy: joi .string() .optional() .valid(...PROGRESS_VALID_SORT_FIELDS) .messages({ - "string.base": "orderBy must be a string" - }) + "string.base": "orderBy must be a string", + }), }) .xor("type", "userId", "taskId") .messages({ "object.unknown": "Invalid field provided.", - "object.xor": "Only one of type, userId, or taskId should be present" + "object.xor": "Only one of type, userId, or taskId should be present", }); try { await schema.validateAsync(req.query, { abortEarly: false }); @@ -91,7 +91,7 @@ const validateGetRangeProgressRecordsParams = async (req, res, next) => { userId: joi.string().optional(), taskId: joi.string().optional(), startDate: joi.date().iso().required(), - endDate: joi.date().iso().min(joi.ref("startDate")).required() + endDate: joi.date().iso().min(joi.ref("startDate")).required(), }) .xor("userId", "taskId") .messages({ @@ -99,7 +99,7 @@ const validateGetRangeProgressRecordsParams = async (req, res, next) => { "object.missing": "Either userId or taskId is required.", "object.xor": "Only one of userId or taskId should be present", "any.required": "Start date and End date is mandatory.", - "date.min": "EndDate must be on or after startDate" + "date.min": "EndDate must be on or after startDate", }); try { await schema.validateAsync(req.query, { abortEarly: false }); @@ -117,10 +117,10 @@ const validateGetDayProgressParams = async (req, res, next) => { .valid(...VALID_PROGRESS_TYPES) .required() .messages({ - "any.only": "Type field is restricted to either 'user' or 'task'." + "any.only": "Type field is restricted to either 'user' or 'task'.", }), typeId: joi.string().required(), - date: joi.date().iso().required() + date: joi.date().iso().required(), }); try { await schema.validateAsync(req.params, { abortEarly: false }); @@ -134,5 +134,5 @@ module.exports = { validateCreateProgressRecords, validateGetProgressRecordsQuery, validateGetRangeProgressRecordsParams, - validateGetDayProgressParams + validateGetDayProgressParams, }; diff --git a/middlewares/validators/qrCodeAuth.js b/middlewares/validators/qrCodeAuth.js index 5f24b0e95..ee9ae21f4 100644 --- a/middlewares/validators/qrCodeAuth.js +++ b/middlewares/validators/qrCodeAuth.js @@ -4,7 +4,7 @@ const storeUserDeviceInfo = async (req, res, next) => { const schema = joi.object().strict().keys({ user_id: joi.string().required(), device_info: joi.string().required(), - device_id: joi.string().required() + device_id: joi.string().required(), }); try { @@ -21,7 +21,7 @@ const validateAuthStatus = async (req, res, next) => { .object() .strict() .keys({ - authorization_status: joi.string().valid("AUTHORIZED", "REJECTED", "NOT_INIT") + authorization_status: joi.string().valid("AUTHORIZED", "REJECTED", "NOT_INIT"), }); try { @@ -35,7 +35,7 @@ const validateAuthStatus = async (req, res, next) => { const validateFetchingUserDocument = async (req, res, next) => { const schema = joi.object().strict().keys({ - device_id: joi.string().required() + device_id: joi.string().required(), }); try { @@ -50,5 +50,5 @@ const validateFetchingUserDocument = async (req, res, next) => { module.exports = { storeUserDeviceInfo, validateAuthStatus, - validateFetchingUserDocument + validateFetchingUserDocument, }; diff --git a/middlewares/validators/recruiter.js b/middlewares/validators/recruiter.js index 1abcaa4da..a506d1f8b 100644 --- a/middlewares/validators/recruiter.js +++ b/middlewares/validators/recruiter.js @@ -9,7 +9,7 @@ const validateRecruiter = async (req, res, next) => { reason: joi.string().required(), email: joi.string().required(), currency: joi.string().required(), - package: joi.number().optional() + package: joi.number().optional(), }); try { @@ -22,5 +22,5 @@ const validateRecruiter = async (req, res, next) => { }; module.exports = { - validateRecruiter + validateRecruiter, }; diff --git a/middlewares/validators/staging.js b/middlewares/validators/staging.js index ff0748266..66f43addc 100644 --- a/middlewares/validators/staging.js +++ b/middlewares/validators/staging.js @@ -5,7 +5,7 @@ const validateUserRoles = async (req, res, next) => { super_user: joi.boolean().optional(), member: joi.boolean().optional(), archived: joi.boolean().optional(), - in_discord: joi.boolean().optional() + in_discord: joi.boolean().optional(), }); try { @@ -22,7 +22,7 @@ const validateRevokePrivileges = async (req, res, next) => { .object() .strict() .keys({ - action: joi.string().equal("revoke") + action: joi.string().equal("revoke"), }); try { await schema.validateAsync(req.body); @@ -35,5 +35,5 @@ const validateRevokePrivileges = async (req, res, next) => { module.exports = { validateUserRoles, - validateRevokePrivileges + validateRevokePrivileges, }; diff --git a/middlewares/validators/stocks.js b/middlewares/validators/stocks.js index 89b67d1c5..111f1fd7e 100644 --- a/middlewares/validators/stocks.js +++ b/middlewares/validators/stocks.js @@ -4,7 +4,7 @@ const createStock = async (req, res, next) => { const schema = joi.object().strict().keys({ name: joi.string().required(), quantity: joi.number().required(), - price: joi.number().required() + price: joi.number().required(), }); try { @@ -17,5 +17,5 @@ const createStock = async (req, res, next) => { }; module.exports = { - createStock + createStock, }; diff --git a/middlewares/validators/tags.js b/middlewares/validators/tags.js index 7d4cec8bc..0e05aed9c 100644 --- a/middlewares/validators/tags.js +++ b/middlewares/validators/tags.js @@ -12,7 +12,7 @@ const validTagBody = async (req, res, next) => { } return value; }), - reason: Joi.string().exist() + reason: Joi.string().exist(), }); try { @@ -25,5 +25,5 @@ const validTagBody = async (req, res, next) => { }; module.exports = { - validTagBody + validTagBody, }; diff --git a/middlewares/validators/task-requests.js b/middlewares/validators/task-requests.js index f7ea23e6a..a6a7daf65 100644 --- a/middlewares/validators/task-requests.js +++ b/middlewares/validators/task-requests.js @@ -20,7 +20,7 @@ const postTaskRequests = async (req, res, next) => { proposedStartDate: joi.number().required(), proposedDeadline: joi.number().required(), description: joi.string().optional(), - markdownEnabled: joi.boolean().optional() + markdownEnabled: joi.boolean().optional(), }); const taskCreationSchema = joi @@ -34,7 +34,7 @@ const postTaskRequests = async (req, res, next) => { proposedStartDate: joi.number().required(), proposedDeadline: joi.number().required(), description: joi.string().optional(), - markdownEnabled: joi.boolean().optional() + markdownEnabled: joi.boolean().optional(), }); const schema = joi.alternatives().try(taskAssignmentSchema, taskCreationSchema); @@ -55,7 +55,7 @@ const getTaskRequests = async (req, res, next) => { prev: joi.string().optional(), next: joi.string().optional(), size: joi.number().integer().positive().min(1).max(100).optional(), - q: joi.string().optional() + q: joi.string().optional(), }) .without("prev", "next") .with("prev", "size") @@ -67,8 +67,8 @@ const getTaskRequests = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_STATUS).map((value) => value.toLowerCase())), - operator: joi.string().optional() - }) + operator: joi.string().optional(), + }), ) .optional(), "request-type": joi @@ -76,15 +76,15 @@ const getTaskRequests = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_TYPE).map((value) => value.toLowerCase())), - operator: joi.string().optional() - }) + operator: joi.string().optional(), + }), ) - .optional() + .optional(), }); const sortSchema = joi.object().keys({ created: joi.string().valid("asc", "desc").optional(), - requestors: joi.string().valid("asc", "desc").optional() + requestors: joi.string().valid("asc", "desc").optional(), }); try { const { q: queryString } = req.query; @@ -93,7 +93,7 @@ const getTaskRequests = async (req, res, next) => { await Promise.all([ filtersSchema.validateAsync(rqlQueryParser.getFilterQueries()), sortSchema.validateAsync(rqlQueryParser.getSortQueries()), - queryParamsSchema.validateAsync(req.query) + queryParamsSchema.validateAsync(req.query), ]); next(); } catch (error) { @@ -103,5 +103,5 @@ const getTaskRequests = async (req, res, next) => { }; module.exports = { getTaskRequests, - postTaskRequests + postTaskRequests, }; diff --git a/middlewares/validators/tasks.js b/middlewares/validators/tasks.js index 59d97154b..0cdc38717 100644 --- a/middlewares/validators/tasks.js +++ b/middlewares/validators/tasks.js @@ -36,14 +36,14 @@ const createTask = async (req, res, next) => { .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional() + [NEELAM]: joi.number().optional(), }) .optional(), lossRate: joi .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional() + [NEELAM]: joi.number().optional(), }) .optional(), isNoteworthy: joi.bool().optional(), @@ -56,10 +56,10 @@ const createTask = async (req, res, next) => { assignee: joi.string().optional(), id: joi.number().optional(), closedAt: joi.string().optional(), - html_url: joi.string().uri().optional() - }) + html_url: joi.string().uri().optional(), + }), }) - .optional() + .optional(), }); try { @@ -97,18 +97,18 @@ const updateTask = async (req, res, next) => { .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional() + [NEELAM]: joi.number().optional(), }) .optional(), lossRate: joi .object() .keys({ [DINERO]: joi.number().optional(), - [NEELAM]: joi.number().optional() + [NEELAM]: joi.number().optional(), }) .optional(), isNoteworthy: joi.bool().optional(), - isCollapsed: joi.bool().optional() + isCollapsed: joi.bool().optional(), }); try { await schema.validateAsync(req.body); @@ -121,7 +121,7 @@ const updateTask = async (req, res, next) => { const updateSelfTask = async (req, res, next) => { const validStatus = [...TASK_STATUS_ENUM, ...Object.values(TASK_STATUS_OLD)].filter( - (item) => item !== TASK_STATUS.AVAILABLE + (item) => item !== TASK_STATUS.AVAILABLE, ); const schema = joi .object() @@ -132,7 +132,7 @@ const updateSelfTask = async (req, res, next) => { .valid(...validStatus) .optional() .error(new BadRequest(`The value for the 'status' field is invalid.`)), - percentCompleted: joi.number().integer().min(0).max(100).optional() + percentCompleted: joi.number().integer().min(0).max(100).optional(), }); try { await schema.validateAsync(req.body); @@ -163,20 +163,20 @@ const getTasksValidator = async (req, res, next) => { .optional() .when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both next and page cannot be passed")) + then: joi.custom((_, helpers) => helpers.message("Both next and page cannot be passed")), }), prev: joi .string() .optional() .when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both prev and page cannot be passed")) + then: joi.custom((_, helpers) => helpers.message("Both prev and page cannot be passed")), }) .concat( joi.when("next", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both prev and next cannot be passed")) - }) + then: joi.custom((_, helpers) => helpers.message("Both prev and next cannot be passed")), + }), ), size: joi.number().integer().positive().min(1).max(100).optional(), q: joi @@ -192,7 +192,7 @@ const getTasksValidator = async (req, res, next) => { } return value; }, "Invalid query format"), - userFeatureFlag: joi.string().optional() + userFeatureFlag: joi.string().optional(), }); try { @@ -207,7 +207,7 @@ const getUsersValidator = async (req, res, next) => { const queryParamsSchema = joi.object().keys({ cursor: joi.string().optional(), q: joi.string().optional(), - size: joi.number().integer().min(1).max(2000) + size: joi.number().integer().min(1).max(2000), }); const filtersSchema = joi.object().keys({ status: joi @@ -215,8 +215,8 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.values(tasksUsersStatus)), - operator: joi.string().valid(Operators.INCLUDE) - }) + operator: joi.string().valid(Operators.INCLUDE), + }), ) .required(), "days-count": joi @@ -224,8 +224,8 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.number().integer().min(1).max(10), - operator: joi.string().valid(Operators.EXCLUDE) - }) + operator: joi.string().valid(Operators.EXCLUDE), + }), ) .max(1) .optional(), @@ -234,8 +234,8 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.string().valid(...Object.keys(daysOfWeek)), - operator: joi.string().valid(Operators.EXCLUDE) - }) + operator: joi.string().valid(Operators.EXCLUDE), + }), ) .max(7) .optional(), @@ -244,11 +244,11 @@ const getUsersValidator = async (req, res, next) => { .items( joi.object().keys({ value: joi.date().timestamp(), - operator: joi.string().valid(Operators.EXCLUDE) - }) + operator: joi.string().valid(Operators.EXCLUDE), + }), ) .max(20) - .optional() + .optional(), }); try { @@ -256,7 +256,7 @@ const getUsersValidator = async (req, res, next) => { const rqlQueryParser = new RQLQueryParser(queryString); await Promise.all([ queryParamsSchema.validateAsync(req.query), - filtersSchema.validateAsync(rqlQueryParser.getFilterQueries()) + filtersSchema.validateAsync(rqlQueryParser.getFilterQueries()), ]); next(); } catch (error) { @@ -280,5 +280,5 @@ module.exports = { updateSelfTask, getTasksValidator, getUsersValidator, - filterOrphanTasksValidator + filterOrphanTasksValidator, }; diff --git a/middlewares/validators/trading.js b/middlewares/validators/trading.js index d6ada8e07..e3631170a 100644 --- a/middlewares/validators/trading.js +++ b/middlewares/validators/trading.js @@ -7,7 +7,7 @@ const newTrade = async (req, res, next) => { stockName: joi.string().required(), quantity: joi.number().required(), listedPrice: joi.number().required(), - totalPrice: joi.number().required() + totalPrice: joi.number().required(), }); try { @@ -20,5 +20,5 @@ const newTrade = async (req, res, next) => { }; module.exports = { - newTrade + newTrade, }; diff --git a/middlewares/validators/user.js b/middlewares/validators/user.js index ff4bbf01c..ffaa1804a 100644 --- a/middlewares/validators/user.js +++ b/middlewares/validators/user.js @@ -4,7 +4,7 @@ const joi = require("joi"); const { USER_STATUS, USERS_PATCH_HANDLER_ACTIONS, - USERS_PATCH_HANDLER_ERROR_MESSAGES + USERS_PATCH_HANDLER_ERROR_MESSAGES, } = require("../../constants/users"); const ROLES = require("../../constants/roles"); const { IMAGE_VERIFICATION_TYPES } = require("../../constants/imageVerificationTypes"); @@ -54,8 +54,8 @@ const updateUser = async (req, res, next) => { roles: joi.object().keys({ designer: joi.boolean().optional(), maven: joi.boolean().optional(), - product_manager: joi.boolean().optional() - }) + product_manager: joi.boolean().optional(), + }), }); try { @@ -69,7 +69,7 @@ const updateUser = async (req, res, next) => { const updateProfileURL = async (req, res, next) => { const schema = joi.object().strict().keys({ - profileURL: joi.string().uri().required() + profileURL: joi.string().uri().required(), }); try { @@ -109,7 +109,7 @@ const validateJoinData = async (req, res, next) => { .custom((value, helpers) => customWordCountValidator(value, helpers, 100)) .required(), flowState: joi.string().optional(), - numberOfHours: joi.number().min(1).max(100).required() + numberOfHours: joi.number().min(1).max(100).required(), }); try { @@ -140,7 +140,7 @@ async function getUsers(req, res, next) { .pattern(/^[1-9]\d?$|^100$/) .messages({ "string.empty": "size must contain value in range 1-100", - "string.pattern.base": "size must be in range 1-100" + "string.pattern.base": "size must be in range 1-100", }), page: joi .string() @@ -148,48 +148,48 @@ async function getUsers(req, res, next) { .pattern(/^0$|^[1-9]\d*$/) .messages({ "string.empty": "page must contain a positive number or zero", - "string.pattern.base": "page value either be a positive number or zero" + "string.pattern.base": "page value either be a positive number or zero", }), search: joi.string().optional().messages({ - "string.empty": "search value must not be empty" + "string.empty": "search value must not be empty", }), id: joi.string().optional().messages({ - "string.empty": "id value must not be empty" + "string.empty": "id value must not be empty", }), discordId: joi.string().optional().messages({ - "string.empty": "discord id value must not be empty" + "string.empty": "discord id value must not be empty", }), next: joi .string() .optional() .when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both page and next can't be passed")) + then: joi.custom((_, helpers) => helpers.message("Both page and next can't be passed")), }) .messages({ - "string.empty": "next value cannot be empty" + "string.empty": "next value cannot be empty", }), prev: joi .string() .optional() .when("next", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both prev and next can't be passed")) + then: joi.custom((_, helpers) => helpers.message("Both prev and next can't be passed")), }) .concat( joi.string().when("page", { is: joi.exist(), - then: joi.custom((_, helpers) => helpers.message("Both page and prev can't be passed")) - }) + then: joi.custom((_, helpers) => helpers.message("Both page and prev can't be passed")), + }), ) .messages({ - "string.empty": "prev value cannot be empty" + "string.empty": "prev value cannot be empty", }), query: joi.string().optional(), q: joi.string().optional(), filterBy: joi.string().optional(), days: joi.string().optional(), - dev: joi.string().optional() + dev: joi.string().optional(), }); try { await schema.validateAsync(req.query); @@ -229,7 +229,7 @@ async function validateUserQueryParams(req, res, next) { size: joi.number().integer().min(1).max(100).message("size must be a number between 1 and 100").optional(), prev: joi.string().allow("").optional(), next: joi.string().allow("").optional(), - dev: joi.bool().optional().sensitive() + dev: joi.bool().optional().sensitive(), }) .min(1) .messages({ "object.min": "Please provide at least one filter criteria" }); @@ -268,7 +268,7 @@ async function validateUpdateRoles(req, res, next) { // either member or archived with reason (optional) is allowed member: joi.boolean(), archived: joi.boolean(), - reason: joi.string().optional() // reason is optional + reason: joi.string().optional(), // reason is optional }); try { await schema.validateAsync(req.body); @@ -284,7 +284,7 @@ async function validateUsersPatchHandler(req, res, next) { action: joi .string() .valid(USERS_PATCH_HANDLER_ACTIONS.ARCHIVE_USERS, USERS_PATCH_HANDLER_ACTIONS.NON_VERFIED_DISCORD_USERS) - .required() + .required(), }); try { @@ -310,7 +310,7 @@ const validateGenerateUsernameQuery = async (req, res, next) => { .keys({ firstname: joi.string().min(1).required(), lastname: joi.string().min(1).required(), - dev: joi.string().valid("true").optional() + dev: joi.string().valid("true").optional(), }); try { @@ -329,7 +329,7 @@ const migrationsValidator = async (req, res, next) => { .keys({ page: joi.number(), action: joi.string().valid("adds-github-id").required(), - size: joi.number().min(1).max(500).required() + size: joi.number().min(1).max(500).required(), }); try { await schema.validateAsync({ action, page: parseInt(page), size: parseInt(size) }); @@ -349,5 +349,5 @@ module.exports = { validateUpdateRoles, validateUsersPatchHandler, validateGenerateUsernameQuery, - migrationsValidator + migrationsValidator, }; diff --git a/middlewares/validators/userStatus.js b/middlewares/validators/userStatus.js index 05546f302..2ab71e811 100644 --- a/middlewares/validators/userStatus.js +++ b/middlewares/validators/userStatus.js @@ -23,10 +23,10 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { .required() .error( new Error( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` - ) + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, + ), ), - otherwise: Joi.optional() + otherwise: Joi.optional(), }), message: Joi.when("state", { is: userState.IDLE, @@ -38,29 +38,29 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { then: Joi.when(Joi.ref("until"), { is: Joi.number().greater( Joi.ref("from", { - adjust: (value) => value + threeDaysInMilliseconds - }) + adjust: (value) => value + threeDaysInMilliseconds, + }), ), then: Joi.string() .optional() .error( - new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`) + new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`), ), - otherwise: Joi.required() + otherwise: Joi.required(), }), - otherwise: Joi.optional() - }) - }) + otherwise: Joi.optional(), + }), + }), }), monthlyHours: Joi.object().keys({ committed: Joi.number().required(), - updatedAt: Joi.number().required() - }) + updatedAt: Joi.number().required(), + }), }); const cancelOooSchema = Joi.object() .keys({ - cancelOoo: Joi.boolean().valid(true).required() + cancelOoo: Joi.boolean().valid(true).required(), }) .unknown(false); @@ -93,15 +93,15 @@ const validateMassUpdate = async (req, res, next) => { .items( Joi.object({ userId: Joi.string().trim().required(), - state: Joi.string().valid(userState.IDLE, userState.ACTIVE).required() - }) + state: Joi.string().valid(userState.IDLE, userState.ACTIVE).required(), + }), ) .min(1) .required() - .error(new Error(`Invalid object passed in users.`)) + .error(new Error(`Invalid object passed in users.`)), }) .messages({ - "object.unknown": "Invalid key in Request payload." + "object.unknown": "Invalid key in Request payload.", }); try { @@ -120,10 +120,10 @@ const validateGetQueryParams = async (req, res, next) => { state: Joi.string() .trim() .valid(userState.IDLE, userState.ACTIVE, userState.OOO, userState.ONBOARDING) - .error(new Error(`Invalid State. State must be either IDLE, ACTIVE, OOO, or ONBOARDING`)) + .error(new Error(`Invalid State. State must be either IDLE, ACTIVE, OOO, or ONBOARDING`)), }) .messages({ - "object.unknown": "Invalid query param provided." + "object.unknown": "Invalid query param provided.", }); try { @@ -138,5 +138,5 @@ const validateGetQueryParams = async (req, res, next) => { module.exports = { validateUserStatus, validateMassUpdate, - validateGetQueryParams + validateGetQueryParams, }; diff --git a/mockdata/appOwners.js b/mockdata/appOwners.js index 17a276279..f6f0caf85 100644 --- a/mockdata/appOwners.js +++ b/mockdata/appOwners.js @@ -5,7 +5,7 @@ const appOwners = [ last_name: "Narkhede", github_id: "ankurnarkhede", github_display_name: "Ankur Narkhede", - incompleteUserDetails: false + incompleteUserDetails: false, }, { username: "ankush", @@ -13,7 +13,7 @@ const appOwners = [ last_name: "Dharkar", github_id: "AnkushDharkar", github_display_name: "Ankush Dharkar", - incompleteUserDetails: false + incompleteUserDetails: false, }, { username: "kratika", @@ -21,7 +21,7 @@ const appOwners = [ last_name: "Chowdhary", github_id: "Kratika0907", github_display_name: "Kratika Chowdhary", - incompleteUserDetails: false + incompleteUserDetails: false, }, { username: "nikhil", @@ -29,7 +29,7 @@ const appOwners = [ last_name: "Bhandarkar", github_id: "whydonti", github_display_name: "Nikhil Bhandarkar", - incompleteUserDetails: false + incompleteUserDetails: false, }, { username: "sumit", @@ -37,7 +37,7 @@ const appOwners = [ last_name: "Dhanania", github_id: "sumitd94", github_display_name: "Sumit Dhanania", - incompleteUserDetails: false + incompleteUserDetails: false, }, { username: "swaraj", @@ -45,8 +45,8 @@ const appOwners = [ last_name: "Rajpure", github_id: "swarajpure", github_display_name: "Swaraj Rajpure", - incompleteUserDetails: false - } + incompleteUserDetails: false, + }, ]; module.exports = appOwners; diff --git a/models/arts.js b/models/arts.js index eb854a948..418008a47 100644 --- a/models/arts.js +++ b/models/arts.js @@ -28,7 +28,7 @@ const fetchArts = async () => { artSnapshot.forEach((art) => { arts.push({ id: art.id, - ...art.data() + ...art.data(), }); }); return arts; @@ -51,7 +51,7 @@ const fetchUserArts = async (id) => { userArtsRef.forEach((art) => { userArts.push({ id: art.id, - ...art.data() + ...art.data(), }); }); @@ -65,5 +65,5 @@ const fetchUserArts = async (id) => { module.exports = { addArt, fetchArts, - fetchUserArts + fetchUserArts, }; diff --git a/models/auctions.js b/models/auctions.js index b83fba632..b71b10831 100644 --- a/models/auctions.js +++ b/models/auctions.js @@ -37,7 +37,7 @@ const fetchAuctionById = async (auctionId) => { ...auctionMetadata, bidders_and_bids: biddersAndBids, seller: sellerUsername, - highest_bidder: highestBidderUsername + highest_bidder: highestBidderUsername, }; } catch (error) { logger.error(`Error fetching auction ${auctionId}: ${error}`); @@ -86,7 +86,7 @@ const fetchAvailableAuctions = async () => { auctionsRef.forEach((auction) => { auctions.push({ id: auction.id, - ...auction.data() + ...auction.data(), }); }); @@ -127,7 +127,7 @@ const createNewAuction = async ({ seller, initialPrice, endTime, itemType, quant highest_bidder: null, highest_bid: parseInt(initialPrice), start_time: new Date().getTime(), - end_time: parseInt(endTime) + end_time: parseInt(endTime), }); return auctionRef.id; @@ -167,14 +167,14 @@ const makeNewBid = async ({ bidder, auctionId, bid }) => { await auctionRef.update({ highest_bidder: bidder, - highest_bid: parseInt(bid) + highest_bid: parseInt(bid), }); const bidRef = await bidsModel.add({ auction_id: auctionId, bidder: bidder, bid: parseInt(bid), - time: new Date().getTime() + time: new Date().getTime(), }); return bidRef.id; @@ -189,5 +189,5 @@ module.exports = { fetchAvailableAuctions, fetchAuctionBidders, createNewAuction, - makeNewBid + makeNewBid, }; diff --git a/models/badges.js b/models/badges.js index 1c6f80559..4e092e6c1 100644 --- a/models/badges.js +++ b/models/badges.js @@ -5,7 +5,7 @@ const userBadgeModel = firestore.collection("userBadges"); const { convertFirebaseTimestampToDateTime, convertFirebaseDocumentToBadgeDocument, - assignOrRemoveBadgesInBulk + assignOrRemoveBadgesInBulk, } = require("../utils/badges"); const { chunks } = require("../utils/array"); const { ERROR_MESSAGES } = require("../constants/badges"); @@ -71,7 +71,7 @@ async function createBadge(badgeInfo) { const docRef = await badgeModel.add({ ...badgeInfo, description, - createdAt + createdAt, }); const { date, time } = convertFirebaseTimestampToDateTime(createdAt); const snapshot = await docRef.get(); @@ -114,7 +114,7 @@ async function removeBadges({ userId, badgeIds }) { const documentRefferences = snapshot.docs.map((doc) => doc.ref); const documentsRefferencesChunks = chunks(documentRefferences, DOCUMENT_WRITE_SIZE); const bulkWriterBatches = documentsRefferencesChunks.map((value) => - assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }) + assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }), ); return await Promise.all(bulkWriterBatches); } catch (err) { @@ -128,5 +128,5 @@ module.exports = { fetchUserBadges, createBadge, assignBadges, - removeBadges + removeBadges, }; diff --git a/models/chaincodes.js b/models/chaincodes.js index af0a520a1..3d2eeaa12 100644 --- a/models/chaincodes.js +++ b/models/chaincodes.js @@ -6,7 +6,7 @@ const storeChaincode = async (userId) => { try { const userChaincode = await chaincodeModel.add({ userId, - timestamp: admin.firestore.Timestamp.fromDate(new Date()) + timestamp: admin.firestore.Timestamp.fromDate(new Date()), }); return userChaincode.id; } catch (error) { @@ -16,5 +16,5 @@ const storeChaincode = async (userId) => { }; module.exports = { - storeChaincode + storeChaincode, }; diff --git a/models/challenges.js b/models/challenges.js index 0d1ab02ff..71dac11e7 100644 --- a/models/challenges.js +++ b/models/challenges.js @@ -26,7 +26,7 @@ const fetchChallenges = async () => { challengesSnapshot.forEach((challengeDoc) => { challenges.push({ id: challengeDoc.id, - ...challengeDoc.data() + ...challengeDoc.data(), }); }); return challenges; @@ -48,7 +48,7 @@ const fetchParticipantsData = async (participants) => { return { ...user, phone: undefined, - email: undefined + email: undefined, }; }); const fetchedparticipants = await Promise.all(promises); @@ -74,7 +74,7 @@ const postChallenge = async (challengeData) => { start_date: startdate, end_date: enddate, participants: [], - is_active: true + is_active: true, }); return challengeRef.id; } catch (err) { @@ -110,5 +110,5 @@ module.exports = { fetchChallenges, postChallenge, subscribeUserToChallenge, - fetchParticipantsData + fetchParticipantsData, }; diff --git a/models/discordactions.js b/models/discordactions.js index 8adcae519..faa1966c7 100644 --- a/models/discordactions.js +++ b/models/discordactions.js @@ -88,7 +88,7 @@ const getAllGroupRoles = async () => { data.forEach((doc) => { const group = { id: doc.id, - ...doc.data() + ...doc.data(), }; groups.push(group); }); @@ -167,13 +167,13 @@ const getGroupRolesForUser = async (discordId) => { const userRolesSnapshot = await memberRoleModel.where("userid", "==", discordId).get(); const userRoles = userRolesSnapshot.docs.map((doc) => ({ - ...doc.data() + ...doc.data(), })); const userRolesObject = { userId: discordId, groups: userRoles.map((userRole) => ({ - roleId: userRole.roleid - })) + roleId: userRole.roleid, + })), }; return userRolesObject; } catch (error) { @@ -217,7 +217,7 @@ const updateDiscordImageForVerification = async (userDiscordId) => { const discordAvatarUrl = await generateDiscordProfileImageUrl(userDiscordId); const verificationDataSnapshot = await photoVerificationModel.where("discordId", "==", userDiscordId).get(); const unverifiedUserDiscordImage = { - discord: { url: discordAvatarUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) } + discord: { url: discordAvatarUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) }, }; if (verificationDataSnapshot.empty) { throw new Error("No user verification record found"); @@ -272,7 +272,7 @@ const enrichGroupDataWithMembershipInfo = async (discordId, groups = []) => { lastName: groupCreator?.last_name, image: groupCreator?.picture?.url, memberCount: roleIdToCountMap[group.roleid] || 0, // Number of users joined this group - isMember: subscribedGroupIds.has(group.roleid) // Is current loggedIn user is a member of this group + isMember: subscribedGroupIds.has(group.roleid), // Is current loggedIn user is a member of this group }; }); } catch (err) { @@ -358,7 +358,7 @@ const updateIdleUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }) + }), ); } allUsersHavingGroupIdle = usersHavingIdleRole; @@ -392,7 +392,7 @@ const updateIdleUsersOnDiscord = async () => { await memberRoleModel.add({ roleid: "1153280659004080148", userid: discordId, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); } const response = await addRoleToUser(user.userid, groupIdleRole.role.roleid); @@ -404,7 +404,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }) + }), ); } @@ -435,7 +435,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }) + }), ); } @@ -448,7 +448,7 @@ const updateIdleUsersOnDiscord = async () => { totalUserRoleToBeRemoved, totalUserRoleToBeAdded, totalUsersHavingNoDiscordId, - totalArchivedUsers + totalArchivedUsers, }; }; @@ -462,7 +462,7 @@ const updateUsersNicknameStatus = async (lastNicknameUpdate) => { const [usersCurrentStatusSnapshot, usersFutureStatusSnapshots] = await Promise.all([ usersCurrentStatus, - usersFutureStatus + usersFutureStatus, ]); const usersCurrentStatusDocs = usersCurrentStatusSnapshot.docs; @@ -528,7 +528,7 @@ const updateUsersNicknameStatus = async (lastNicknameUpdate) => { const res = { totalUsersStatus, successfulNicknameUpdates: successfulUpdates, - unsuccessfulNicknameUpdates: totalUsersStatus - successfulUpdates + unsuccessfulNicknameUpdates: totalUsersStatus - successfulUpdates, }; return res; } catch (err) { @@ -593,7 +593,7 @@ const updateIdle7dUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }) + }), ); } @@ -628,7 +628,7 @@ const updateIdle7dUsersOnDiscord = async () => { await memberRoleModel.add({ roleid: groupIdle7dRoleId, userid: discordId, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); } const response = await addRoleToUser(user.userid, groupIdle7dRole.role.roleid); @@ -640,7 +640,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }) + }), ); } @@ -671,7 +671,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }) + }), ); } @@ -684,7 +684,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalUserRoleToBeRemoved, totalUserRoleToBeAdded, totalUsersHavingNoDiscordId, - totalArchivedUsers + totalArchivedUsers, }; }; @@ -692,7 +692,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { try { const allOnboardingUsers31DaysCompleted = await getUsersBasedOnFilter({ state: userState.ONBOARDING, - time: "31d" + time: "31d", }); const discordMembers = await getDiscordMembers(); const groupOnboardingRole = await getGroupRole("group-onboarding-31d+"); @@ -717,7 +717,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { }); const usersForRoleAddition = allOnboardingDevs31DaysCompleted.filter( - (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId) + (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId), ); const errorInFetchingUserDetailsForRoleRemoval = { count: 0, errors: [] }; @@ -733,12 +733,12 @@ const updateUsersWith31DaysPlusOnboarding = async () => { errorInFetchingUserDetailsForRoleRemoval.count++; errorInFetchingUserDetailsForRoleRemoval.errors.push({ error: "Error in getting users to remove role", - discordId: user.discordId + discordId: user.discordId, }); logger.error(`Error in getting users to remove role: ${error}`); } return null; - }) + }), ); const filteredUsersForRoleRemoval = usersForRoleRemoval.filter((user) => user !== null); @@ -769,7 +769,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { await memberRoleModel.add({ roleid: groupOnboardingRoleId, userid: userDiscordId, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); } const response = await addRoleToUser(userDiscordId, groupOnboardingRoleId); @@ -781,7 +781,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNoteApplied.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in setting group-onboarding-31+ role on user: ${error}`); } - }) + }), ); } @@ -812,32 +812,32 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNotRemoved.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in removing group-onboarding-31d+ role from user: ${error}`); } - }) + }), ); } const totalOnboardingUsers31DaysCompleted = allOnboardingDevs31DaysCompleted.map(({ id, discordId, username }) => ({ userId: id, discordId, - username + username, })); return { totalOnboardingUsers31DaysCompleted: { users: totalOnboardingUsers31DaysCompleted, - count: totalOnboardingUsers31DaysCompleted.length + count: totalOnboardingUsers31DaysCompleted.length, }, totalUsersHavingNoDiscordId, totalArchivedUsers, usersAlreadyHavingOnboaring31DaysRole: { users: usersAlreadyHavingOnboaring31DaysRole, - count: usersAlreadyHavingOnboaring31DaysRole.length + count: usersAlreadyHavingOnboaring31DaysRole.length, }, totalOnboarding31dPlusRoleApplied, totalOnboarding31dPlusRoleNoteApplied, totalOnboarding31dPlusRoleRemoved, totalOnboarding31dPlusRoleNotRemoved, - errorInFetchingUserDetailsForRoleRemoval + errorInFetchingUserDetailsForRoleRemoval, }; } catch (error) { logger.error(`Error while fetching onboarding users who have completed 31 days ${error.message}`); @@ -849,7 +849,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { const { cursor, size = 500, excludedDates = [], excludedDays = [0], dateGap = 3 } = options; const stats = { tasks: 0, - missedUpdatesTasks: 0 + missedUpdatesTasks: 0, }; try { const discordUsersPromise = discordService.getDiscordMembers(); @@ -881,7 +881,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { if (!data.data()) { return { error: "Bad Request", - message: `Invalid cursor: ${cursor}` + message: `Invalid cursor: ${cursor}`, }; } taskQuery = taskQuery.startAfter(data); @@ -905,7 +905,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { usersMap.set(taskAssignee, { tasksCount: 1, latestProgressCount: dateGap + 1, - isActive: false + isActive: false, }); } const updateTasksIdMap = async () => { @@ -927,14 +927,14 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { await userStatusModel .where("currentStatus.state", "==", userState.ACTIVE) .where("userId", "in", userIdList) - .get() + .get(), ); const userDetailsPromise = userIdChunks.map( async (userIdList) => await userModel .where("roles.archived", "==", false) .where(admin.firestore.FieldPath.documentId(), "in", userIdList) - .get() + .get(), ); const userStatusChunks = await Promise.all(userStatusSnapshotPromise); @@ -942,7 +942,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { userStatusChunks.forEach((userStatusList) => userStatusList.forEach((doc) => { usersMap.get(doc.data().userId).isActive = true; - }) + }), ); const userDetailsListChunks = await Promise.all(userDetailsPromise); @@ -1063,5 +1063,5 @@ module.exports = { getMissedProgressUpdatesUsers, getUserDiscordInvite, addInviteToInviteModel, - groupUpdateLastJoinDate + groupUpdateLastJoinDate, }; diff --git a/models/events.js b/models/events.js index 286234e70..ddd222094 100644 --- a/models/events.js +++ b/models/events.js @@ -62,7 +62,7 @@ const endActiveEvent = async ({ id, reason, lock }) => { lock, reason, enabled: false, - status: "inactive" + status: "inactive", }); } catch (error) { logger.error("Error in ending event.", error); @@ -99,9 +99,9 @@ const addPeerToEvent = async (peerData) => { { event_id: peerData.eventId, role: peerData.role, - joined_at: peerData.joinedAt - } - ] + joined_at: peerData.joinedAt, + }, + ], }; batch.set(peerRef, peerDocData); } else { @@ -110,14 +110,14 @@ const addPeerToEvent = async (peerData) => { joinedEvents: Firestore.FieldValue.arrayUnion({ event_id: peerData.eventId, role: peerData.role, - joined_at: peerData.joinedAt - }) + joined_at: peerData.joinedAt, + }), }); } const eventRef = eventModel.doc(peerData.eventId); batch.update(eventRef, { - peers: Firestore.FieldValue.arrayUnion(peerRef.id) + peers: Firestore.FieldValue.arrayUnion(peerRef.id), }); await batch.commit(); @@ -180,7 +180,7 @@ const kickoutPeer = async ({ eventId, peerId, reason }) => { } const updatedJoinedEvents = joinedEvents.map((event, index) => - index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event + index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event, ); await peerRef.update({ joinedEvents: updatedJoinedEvents }); @@ -214,7 +214,7 @@ const createEventCode = async (eventCodeData) => { const data = docSnapshot.data(); const previouslyPresentEventCodes = eventSnapshotData?.event_codes?.by_role?.mavens && [ - ...eventSnapshotData?.event_codes?.by_role?.mavens + ...eventSnapshotData?.event_codes?.by_role?.mavens, ]; if (!data) throw new Error(); @@ -223,17 +223,17 @@ const createEventCode = async (eventCodeData) => { await eventRef.update({ event_codes: { by_role: { - mavens: [...previouslyPresentEventCodes, data?.id] - } - } + mavens: [...previouslyPresentEventCodes, data?.id], + }, + }, }); } else { await eventRef.update({ event_codes: { by_role: { - mavens: [data?.id] - } - } + mavens: [data?.id], + }, + }, }); } @@ -304,5 +304,5 @@ module.exports = { createEventCode, getEventById, getEventCodes, - getPeerById + getPeerById, }; diff --git a/models/extensionRequests.js b/models/extensionRequests.js index 2988ae31f..632ce1423 100644 --- a/models/extensionRequests.js +++ b/models/extensionRequests.js @@ -10,7 +10,7 @@ const createExtensionRequest = async (extensionRequestData) => { try { const request = { timestamp: Number((new Date().getTime() / 1000).toFixed(0)), - ...extensionRequestData + ...extensionRequestData, }; return await extensionRequestsModel.add(request); } catch (err) { @@ -31,7 +31,7 @@ const updateExtensionRequest = async (extensionRequestData, extensionRequestId) const extensionRequest = await extensionRequestsModel.doc(extensionRequestId).get(); await extensionRequestsModel.doc(extensionRequestId).set({ ...extensionRequest.data(), - ...extensionRequestData + ...extensionRequestData, }); return extensionRequestId; } catch (err) { @@ -117,7 +117,7 @@ const fetchPaginatedExtensionRequests = async (extensionRequestQuery, pagination const nextPageParams = { ...extensionRequestQuery, ...paginationQuery, - cursor: lastVisible?.id + cursor: lastVisible?.id, }; let nextLink = ""; @@ -172,5 +172,5 @@ module.exports = { fetchExtensionRequest, updateExtensionRequest, fetchPaginatedExtensionRequests, - fetchLatestExtensionRequest + fetchLatestExtensionRequest, }; diff --git a/models/external-accounts.js b/models/external-accounts.js index 4eddf6c76..2b21aa86e 100644 --- a/models/external-accounts.js +++ b/models/external-accounts.js @@ -30,7 +30,7 @@ const fetchExternalAccountData = async (query, param) => { return { id: id, - ...data + ...data, }; } catch (err) { logger.error("Error in fetching external account data", err); diff --git a/models/fcmToken.js b/models/fcmToken.js index 3cc640cc4..7c8258b9b 100644 --- a/models/fcmToken.js +++ b/models/fcmToken.js @@ -10,7 +10,7 @@ const saveFcmToken = async (fcmTokenData) => { if (fcmTokenSnapshot.empty) { const fcmToken = await fcmTokenModel.add({ userId: fcmTokenData.userId, - fcmTokens: [fcmTokenData.fcmToken] + fcmTokens: [fcmTokenData.fcmToken], }); return fcmToken.id; } else { @@ -18,13 +18,13 @@ const saveFcmToken = async (fcmTokenData) => { fcmTokenSnapshot.forEach((fcmToken) => { fcmTokenObj = { id: fcmToken.id, - ...fcmToken.data() + ...fcmToken.data(), }; }); if (!fcmTokenObj.fcmTokens.includes(fcmTokenData.fcmToken)) { fcmTokenObj.fcmTokens.push(fcmTokenData.fcmToken); await fcmTokenModel.doc(fcmTokenObj.id).update({ - fcmTokens: fcmTokenObj.fcmTokens + fcmTokens: fcmTokenObj.fcmTokens, }); return fcmTokenObj.id; } else { diff --git a/models/items.js b/models/items.js index b39708894..ad76f2353 100644 --- a/models/items.js +++ b/models/items.js @@ -25,7 +25,7 @@ const addTagsToItem = async (itemData) => { tagType: tagData.data().type, levelId: tag.levelId, levelName: levelData.data().name, - levelValue: levelData.data().value + levelValue: levelData.data().value, }; const docid = itemTagsModel.doc(); batch.set(docid, itemTag); @@ -79,7 +79,7 @@ const getItemBasedOnFilter = async (query) => { data.forEach((doc) => { const item = { id: doc.id, - ...doc.data() + ...doc.data(), }; items.push(item); }); @@ -94,5 +94,5 @@ const getItemBasedOnFilter = async (query) => { module.exports = { addTagsToItem, removeTagsFromItem, - getItemBasedOnFilter + getItemBasedOnFilter, }; diff --git a/models/levels.js b/models/levels.js index 199642a69..7751fe006 100644 --- a/models/levels.js +++ b/models/levels.js @@ -45,7 +45,7 @@ const getAllLevels = async () => { data.forEach((doc) => { const Level = { id: doc.id, - ...doc.data() + ...doc.data(), }; allLevels.push(Level); }); @@ -59,5 +59,5 @@ const getAllLevels = async () => { module.exports = { addLevel, deleteLevel, - getAllLevels + getAllLevels, }; diff --git a/models/logs.js b/models/logs.js index 78d2b1c71..6a2e16161 100644 --- a/models/logs.js +++ b/models/logs.js @@ -10,7 +10,7 @@ const { formatLogsForFeed, mapify, convertTimestamp, - getTasksFromLogs + getTasksFromLogs, } = require("../utils/logs"); const SIZE = 25; @@ -27,7 +27,7 @@ const addLog = async (type, meta, body) => { type, timestamp: admin.firestore.Timestamp.fromDate(new Date()), meta, - body + body, }; return await logsModel.add(log); } catch (err) { @@ -69,7 +69,7 @@ const fetchLogs = async (query, param) => { const logs = []; logsSnapshot.forEach((doc) => { logs.push({ - ...doc.data() + ...doc.data(), }); }); return logs; @@ -82,7 +82,7 @@ const fetchLogs = async (query, param) => { const logs = []; snapshot.forEach((doc) => { logs.push({ - ...doc.data() + ...doc.data(), }); }); @@ -216,7 +216,7 @@ const fetchAllLogs = async (query) => { allLogs: [], prev: null, next: null, - page: page ? page + 1 : null + page: page ? page + 1 : null, }; } if (format === "feed") { @@ -234,7 +234,7 @@ const fetchAllLogs = async (query) => { allLogs: logsData.filter((log) => log), prev: prevDoc.empty ? null : prevDoc.docs[0].id, next: nextDoc.empty ? null : nextDoc.docs[0].id, - page: page ? page + 1 : null + page: page ? page + 1 : null, }; } @@ -242,7 +242,7 @@ const fetchAllLogs = async (query) => { allLogs: allLogs.filter((log) => log), prev: prevDoc.empty ? null : prevDoc.docs[0].id, next: nextDoc.empty ? null : nextDoc.docs[0].id, - page: page ? page + 1 : null + page: page ? page + 1 : null, }; } catch (error) { logger.error(ERROR_WHILE_FETCHING_LOGS, error); @@ -255,5 +255,5 @@ module.exports = { fetchLogs, fetchCacheLogs, fetchLastAddedCacheLog, - fetchAllLogs + fetchAllLogs, }; diff --git a/models/members.js b/models/members.js index d92f049aa..a666b210e 100644 --- a/models/members.js +++ b/models/members.js @@ -26,7 +26,7 @@ const fetchUsers = async (queryParams = {}) => { const memberData = doc.data(); const curatedMemberData = { id: doc.id, - ...memberData + ...memberData, }; curatedMemberData.isMember = !!(memberData.roles && memberData.roles.member); allMembers.push(curatedMemberData); @@ -54,7 +54,7 @@ const moveToMembers = async (userId) => { const roles = user.roles ? { ...user.roles, member: true } : { member: true }; await userModel.doc(userId).update({ roles, - updated_at: Date.now() + updated_at: Date.now(), }); return { isAlreadyMember: false, movedToMember: true }; } catch (err) { @@ -77,7 +77,7 @@ const fetchUsersWithRole = async (role) => { snapshot.forEach((doc) => { onlyMembers.push({ id: doc.id, - ...doc.data() + ...doc.data(), }); }); } @@ -102,7 +102,7 @@ const addArchiveRoleToMembers = async (userId) => { const roles = { ...user.roles, [ROLES.ARCHIVED]: true }; await userModel.doc(userId).update({ roles, - updated_at: Date.now() + updated_at: Date.now(), }); return { isArchived: false }; } catch (err) { @@ -115,5 +115,5 @@ module.exports = { moveToMembers, addArchiveRoleToMembers, fetchUsers, - fetchUsersWithRole + fetchUsersWithRole, }; diff --git a/models/monitor.js b/models/monitor.js index 272fb185e..36cfad3f8 100644 --- a/models/monitor.js +++ b/models/monitor.js @@ -92,5 +92,5 @@ const getTrackedProgressDocuments = async (reqQuery) => { module.exports = { createTrackedProgressDocument, updateTrackedProgressDocument, - getTrackedProgressDocuments + getTrackedProgressDocuments, }; diff --git a/models/profileDiffs.js b/models/profileDiffs.js index 10d806ffb..8128e2d7b 100644 --- a/models/profileDiffs.js +++ b/models/profileDiffs.js @@ -23,7 +23,7 @@ const fetchProfileDiffs = async () => { id: doc.id, ...doc.data(), email: emailRedacted, - phone: phoneRedacted + phone: phoneRedacted, }); }); return profileDiffs; @@ -57,7 +57,7 @@ const fetchProfileDiff = async (profileDiffId) => { const add = async (profileDiffData) => { try { const profileDiff = await profileDiffsModel.add({ - ...profileDiffData + ...profileDiffData, }); return profileDiff.id; } catch (err) { @@ -81,7 +81,7 @@ const updateProfileDiff = async (profileDiffData, profileId) => { await profileDiffsModel.doc(profileId).set({ ...data, - ...profileDiffData + ...profileDiffData, }); return { id: profileDiff.id, userId: data.userId }; @@ -95,5 +95,5 @@ module.exports = { fetchProfileDiffs, fetchProfileDiff, add, - updateProfileDiff + updateProfileDiff, }; diff --git a/models/progresses.js b/models/progresses.js index fbb6d990c..8e8a622d9 100644 --- a/models/progresses.js +++ b/models/progresses.js @@ -11,7 +11,7 @@ const { buildQueryForPostingProgress, assertTaskExists, getProgressDateTimestamp, - buildQueryToSearchProgressByDay + buildQueryToSearchProgressByDay, } = require("../utils/progresses"); const { PROGRESS_ALREADY_CREATED, PROGRESS_DOCUMENT_NOT_FOUND } = PROGRESSES_RESPONSE_MESSAGES; @@ -67,7 +67,7 @@ const getRangeProgressData = async (queryParams) => { return { startDate, endDate, - progressRecords + progressRecords, }; }; diff --git a/models/qrCodeAuth.js b/models/qrCodeAuth.js index 327eadd1d..e071282e8 100644 --- a/models/qrCodeAuth.js +++ b/models/qrCodeAuth.js @@ -14,21 +14,21 @@ const updateStatus = async (userId, authStatus = "NOT_INIT", token) => { if (!authData.data()) { return { - userExists: false + userExists: false, }; } await QrCodeAuthModel.doc(userId).set({ ...authData.data(), authorization_status: authStatus, - token: `${token}` + token: `${token}`, }); return { userExists: true, data: { ...authData.data(), - authorization_status: authStatus - } + authorization_status: authStatus, + }, }; } catch (err) { logger.error("Error in updating auth status", err); @@ -62,12 +62,12 @@ const retrieveUserDeviceInfo = async ({ deviceId, userId }) => { if (!userData) { return { - userExists: false + userExists: false, }; } return { userExists: true, - data: userData.data() + data: userData.data(), }; } catch (err) { logger.error("Error in retrieving user device info", err); @@ -78,5 +78,5 @@ const retrieveUserDeviceInfo = async ({ deviceId, userId }) => { module.exports = { updateStatus, storeUserDeviceInfo, - retrieveUserDeviceInfo + retrieveUserDeviceInfo, }; diff --git a/models/recruiters.js b/models/recruiters.js index f8e21258e..a13013195 100644 --- a/models/recruiters.js +++ b/models/recruiters.js @@ -20,7 +20,7 @@ const addRecruiterInfo = async (recruiterData, username) => { // Fetch the user from DB const { userExists, - user: { first_name: userFirstName, last_name: userLastName, email: userEmail } + user: { first_name: userFirstName, last_name: userLastName, email: userEmail }, } = await userModel.fetchUser({ username }); if (!userExists) { return userExists; @@ -36,7 +36,7 @@ const addRecruiterInfo = async (recruiterData, username) => { recruiterId: id, recruiterName: `${firstName} ${lastName}`, userInfo: userInfo, - timestamp: timestamp + timestamp: timestamp, }; } catch (err) { logger.error("Error in adding recruiter", err); @@ -56,7 +56,7 @@ const fetchRecruitersInfo = async () => { recruiterSnapshot.forEach((recruiter) => { recruiters.push({ id: recruiter.id, - ...recruiter.data() + ...recruiter.data(), }); }); return recruiters; @@ -68,5 +68,5 @@ const fetchRecruitersInfo = async () => { module.exports = { addRecruiterInfo, - fetchRecruitersInfo + fetchRecruitersInfo, }; diff --git a/models/stocks.js b/models/stocks.js index 2ba1f64b7..9726af2df 100644 --- a/models/stocks.js +++ b/models/stocks.js @@ -30,7 +30,7 @@ const fetchStocks = async () => { stockSnapshot.forEach((stock) => { stocks.push({ id: stock.id, - ...stock.data() + ...stock.data(), }); }); return stocks; @@ -62,7 +62,7 @@ const fetchUserStocks = async (userId, stockId = null) => { userStocksRef.forEach((stock) => { userStocks.push({ id: stock.id, - ...stock.data() + ...stock.data(), }); }); return userStocks; @@ -82,7 +82,7 @@ const updateUserStocks = async (userId, stockData) => { if (!userStocks.id) { await userStocksModel.add({ userId, - ...stockData + ...stockData, }); return true; } @@ -100,5 +100,5 @@ module.exports = { addStock, fetchStocks, fetchUserStocks, - updateUserStocks + updateUserStocks, }; diff --git a/models/tags.js b/models/tags.js index 1c532c6d2..6abb02ff9 100644 --- a/models/tags.js +++ b/models/tags.js @@ -55,7 +55,7 @@ const getAllTags = async () => { data.forEach((doc) => { const tag = { id: doc.id, - ...doc.data() + ...doc.data(), }; allTags.push(tag); }); @@ -73,7 +73,7 @@ const getTagByType = async (type) => { data.forEach((doc) => { const tag = { id: doc.id, - ...doc.data() + ...doc.data(), }; tags.push(tag); }); @@ -89,5 +89,5 @@ module.exports = { addTag, deleteTag, getAllTags, - getTagByType + getTagByType, }; diff --git a/models/taskRequests.js b/models/taskRequests.js index 3b458a351..586381dc5 100644 --- a/models/taskRequests.js +++ b/models/taskRequests.js @@ -5,7 +5,7 @@ const { TASK_REQUEST_FILTER_VALUES, TASK_REQUEST_SORT_KEYS, TASK_REQUEST_SORT_VALUES, - TASK_REQUEST_ERROR_MESSAGE + TASK_REQUEST_ERROR_MESSAGE, } = require("../constants/taskRequests"); const { TASK_TYPE, TASK_STATUS, DEFAULT_TASK_PRIORITY } = require("../constants/tasks"); const { Operators } = require("../typeDefinitions/rqlParser"); @@ -85,7 +85,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { Object.entries(rqlQueryParser.getFilterQueries()).forEach(([key, value]) => { const valuesList = value.map( - (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value] + (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value], ); taskRequestsSnapshot = taskRequestsSnapshot.where(TASK_REQUEST_FILTER_KEYS[key], "in", valuesList); }); @@ -97,7 +97,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { sortQueryEntries.forEach(([key, value]) => { taskRequestsSnapshot = taskRequestsSnapshot.orderBy( TASK_REQUEST_SORT_KEYS[key], - TASK_REQUEST_SORT_VALUES[value] + TASK_REQUEST_SORT_VALUES[value], ); }); } else { @@ -110,7 +110,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { return { statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${next}` + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${next}`, }; } taskRequestsSnapshot = taskRequestsSnapshot.startAfter(data).limit(size); @@ -120,7 +120,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { return { statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${prev}` + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${prev}`, }; } taskRequestsSnapshot = taskRequestsSnapshot.endBefore(data).limitToLast(size); @@ -138,12 +138,12 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { const firstDoc = taskRequestsSnapshot.docs[0]; const nextPageParams = { ...queries, - next: lastVisibleDoc?.id + next: lastVisibleDoc?.id, }; delete nextPageParams.prev; const prevPageParams = { ...queries, - prev: firstDoc?.id + prev: firstDoc?.id, }; delete prevPageParams.next; const nextLink = lastVisibleDoc ? generateLink(nextPageParams) : ""; @@ -152,7 +152,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { return { data: taskRequestsList, next: nextLink, - prev: prevLink + prev: prevLink, }; } catch (err) { logger.error("error getting task requests", err); @@ -177,14 +177,14 @@ const fetchTaskRequestById = async (taskRequestId) => { } return { taskRequestData, - taskRequestExists: true + taskRequestExists: true, }; } catch (err) { logger.error("Error in updating task", err); } return { - taskRequestExists: false + taskRequestExists: false, }; }; @@ -241,7 +241,7 @@ const createRequest = async (data, authorUserId) => { proposedStartDate: data.proposedStartDate, description: data.description, markdownEnabled: data?.markdownEnabled ?? false, - status: TASK_REQUEST_STATUS.PENDING + status: TASK_REQUEST_STATUS.PENDING, }; if (!userRequest.description) delete userRequest.description; if (taskRequestData) { @@ -263,7 +263,7 @@ const createRequest = async (data, authorUserId) => { users: updatedUsers, usersCount: updatedUsers.length, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }; transaction.update(taskRequestsCollection.doc(taskRequestRef.id), updatedTaskRequest); @@ -272,8 +272,8 @@ const createRequest = async (data, authorUserId) => { isCreate: false, taskRequest: { ...taskRequestData, - ...updatedTaskRequest - } + ...updatedTaskRequest, + }, }; } const newTaskRequest = { @@ -289,7 +289,7 @@ const createRequest = async (data, authorUserId) => { createdBy: authorUserId, createdAt: Date.now(), lastModifiedBy: authorUserId, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }; if (!newTaskRequest.externalIssueUrl) delete newTaskRequest.externalIssueUrl; if (!newTaskRequest.taskId) delete newTaskRequest.taskId; @@ -301,7 +301,7 @@ const createRequest = async (data, authorUserId) => { return { isCreate: true, taskRequest: newTaskRequest, - id: newTaskRequestsDocRef.id + id: newTaskRequestsDocRef.id, }; }); } catch (err) { @@ -333,14 +333,14 @@ const addOrUpdate = async (taskId, userId) => { return { isCreate: false, - requestors: updatedRequestors + requestors: updatedRequestors, }; } const newTaskRequest = { requestors: [userId], status: TASK_REQUEST_STATUS.WAITING, - taskId + taskId, }; const newTaskRequestRef = await taskRequestsCollection.add(newTaskRequest); @@ -348,7 +348,7 @@ const addOrUpdate = async (taskId, userId) => { return { isCreate: true, taskRequest: newTaskRequest, - id: newTaskRequestRef.id + id: newTaskRequestRef.id, }; } catch (err) { logger.error("Error in updating task", err); @@ -408,7 +408,7 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.id, status: TASK_REQUEST_STATUS.APPROVED, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }; // End of TODO const updateTaskRequestPromise = transaction.update(taskRequestDocRef, updatedTaskRequest); @@ -427,9 +427,9 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { github: { issue: { url: taskRequestData.externalIssueUrl, - html_url: taskRequestData.externalIssueHtmlUrl - } - } + html_url: taskRequestData.externalIssueHtmlUrl, + }, + }, }; const newTaskDocRef = tasksCollection.doc(); const addTaskPromise = transaction.set(newTaskDocRef, newTaskRequestData); @@ -438,8 +438,8 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.username, taskRequest: { ...updatedTaskRequest, - taskId: newTaskDocRef.id - } + taskId: newTaskDocRef.id, + }, }; } else { // TODO : extract the common code and remove the unnecessary if-condition after the migration of the task request model. https://github.com/Real-Dev-Squad/website-backend/issues/1613 @@ -447,7 +447,7 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.id, status: TASK_REQUEST_STATUS.APPROVED, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }; let userRequestData; if (taskRequestData.users) { @@ -475,8 +475,8 @@ const approveTaskRequest = async (taskRequestId, user, authorUserId) => { approvedTo: user.username, taskRequest: { ...updatedTaskRequest, - taskId: oldTaskDocRef.id - } + taskId: oldTaskDocRef.id, + }, }; } }); @@ -512,7 +512,7 @@ const rejectTaskRequest = async (taskRequestId, authorUserId) => { const updatedTaskRequest = { status: TASK_REQUEST_STATUS.DENIED, lastModifiedBy: authorUserId, - lastModifiedAt: Date.now() + lastModifiedAt: Date.now(), }; await taskRequestDoc.update(updatedTaskRequest); return { taskRequest: { ...taskRequestData, ...updatedTaskRequest } }; @@ -539,20 +539,20 @@ const addNewFields = async () => { return { userId: requestorId, - status: userStatus + status: userStatus, }; }); const updatedTaskRequestData = { ...taskRequestData, requestType: TASK_REQUEST_TYPE.ASSIGNMENT, taskTitle: taskData.title, - users: usersRequestList + users: usersRequestList, }; bulkWriter.update(taskRequestsCollection.doc(taskRequestsSnapshot.id), updatedTaskRequestData); documentsModified++; } - }) + }), ); await bulkWriter.close(); @@ -617,5 +617,5 @@ module.exports = { addNewFields, removeOldField, addUsersCountAndCreatedAt, - rejectTaskRequest + rejectTaskRequest, }; diff --git a/models/tasks.js b/models/tasks.js index 247294dad..a60484298 100644 --- a/models/tasks.js +++ b/models/tasks.js @@ -19,7 +19,7 @@ const { COMPLETED, SANITY_CHECK, BACKLOG, - DONE + DONE, } = TASK_STATUS; const { OLD_ACTIVE, OLD_BLOCKED, OLD_PENDING, OLD_COMPLETED } = TASK_STATUS_OLD; const { INTERNAL_SERVER_ERROR } = require("../constants/errorMessages"); @@ -45,7 +45,7 @@ const updateTask = async (taskData, taskId = null) => { const { dependsOn, ...taskWithoutDependsOn } = taskData; await tasksModel.doc(taskId).set({ ...task.data(), - ...taskWithoutDependsOn + ...taskWithoutDependsOn, }); if (dependsOn) { await firestore.runTransaction(async (transaction) => { @@ -59,7 +59,7 @@ const updateTask = async (taskData, taskId = null) => { if (dependencyDoc.exists) { const taskDependsOn = { taskId: taskId, - dependsOn: dependency + dependsOn: dependency, }; const docRef = dependencyModel.doc(); transaction.set(docRef, taskDependsOn); @@ -75,7 +75,7 @@ const updateTask = async (taskData, taskId = null) => { const taskInfo = await tasksModel.add(taskData); const result = { taskId: taskInfo.id, - taskDetails: await fromFirestoreData(taskData) + taskDetails: await fromFirestoreData(taskData), }; return result; } catch (err) { @@ -93,7 +93,7 @@ const addDependency = async (data) => { for (const dependency of dependsOn) { const taskDependOn = { taskId: taskId, - dependsOn: dependency + dependsOn: dependency, }; const docid = dependencyModel.doc(); batch.set(docid, taskDependOn); @@ -147,7 +147,7 @@ const fetchPaginatedTasks = async ({ dev = false, assignee, title, - userFeatureFlag + userFeatureFlag, }) => { try { let initialQuery = tasksModel; @@ -170,7 +170,7 @@ const fetchPaginatedTasks = async ({ return { allTasks: [], next: "", - prev: "" + prev: "", }; } } @@ -184,7 +184,7 @@ const fetchPaginatedTasks = async ({ IN_REVIEW, SMOKE_TESTING, BLOCKED, - SANITY_CHECK + SANITY_CHECK, ]; initialQuery = initialQuery .where("endsOn", "<", currentTime) @@ -247,7 +247,7 @@ const fetchPaginatedTasks = async ({ return { allTasks, next: nextDoc?.docs[0]?.id ?? "", - prev: prevDoc?.docs[0]?.id ?? "" + prev: prevDoc?.docs[0]?.id ?? "", }; } catch (err) { logger.error("Error retrieving user data", err); @@ -355,7 +355,7 @@ const fetchSelfTask = async (taskId, userId) => { const taskfromFirestoreData = await fromFirestoreData(taskData); const taskList = { ...taskfromFirestoreData, - status: TASK_STATUS[taskfromFirestoreData.status.toUpperCase()] || task.status + status: TASK_STATUS[taskfromFirestoreData.status.toUpperCase()] || task.status, }; return { taskData: taskList }; } catch (err) { @@ -462,8 +462,8 @@ const getNewTask = async (skill = undefined, level = undefined) => { return { task: { id, - ...taskData - } + ...taskData, + }, }; } } @@ -536,14 +536,14 @@ const overdueTasks = async (overDueTasks) => { status: TASK_STATUS.AVAILABLE, assignee: null, endsOn: null, - startedOn: null + startedOn: null, }); const { taskData: unassignedTask } = await fetchTask(id); return { unassignedMember: assignee, - unassignedTask + unassignedTask, }; - }) + }), ); return newAvailableTasks; } catch (err) { @@ -569,7 +569,7 @@ const getOverdueTasks = async (days = 0) => { IN_REVIEW, SMOKE_TESTING, BLOCKED, - SANITY_CHECK + SANITY_CHECK, ]; const query = tasksModel.where("endsOn", "<", targetTime).where("status", "in", OVERDUE_TASK_STATUSES); @@ -582,7 +582,7 @@ const getOverdueTasks = async (days = 0) => { const taskData = snapshot.docs.map((doc) => { return { id: doc.id, - ...doc.data() + ...doc.data(), }; }); return taskData; @@ -601,7 +601,7 @@ const updateTaskStatus = async () => { totalUpdatedStatus: 0, totalOperationsFailed: 0, updatedTaskDetails: [], - failedTaskDetails: [] + failedTaskDetails: [], }; if (snapshot.size === 0) { @@ -622,9 +622,9 @@ const updateTaskStatus = async () => { totalUpdatedStatus: res.totalUpdatedStatus, totalOperationsFailed: res.totalOperationsFailed, updatedTaskDetails: res.updatedTaskDetails, - failedTaskDetails: res.failedTaskDetails + failedTaskDetails: res.failedTaskDetails, }; - }) + }), ); updatedTasksPromises.forEach((res) => { @@ -633,7 +633,7 @@ const updateTaskStatus = async () => { totalUpdatedStatus: (summary.totalUpdatedStatus += res.totalUpdatedStatus), totalOperationsFailed: (summary.totalOperationsFailed += res.totalOperationsFailed), updatedTaskDetails: [...summary.updatedTaskDetails, ...res.updatedTaskDetails], - failedTaskDetails: [...summary.failedTaskDetails, ...res.failedTaskDetails] + failedTaskDetails: [...summary.failedTaskDetails, ...res.failedTaskDetails], }; }); @@ -720,5 +720,5 @@ module.exports = { getOverdueTasks, updateTaskStatus, updateOrphanTasksStatus, - markUnDoneTasksOfArchivedUsersBacklog + markUnDoneTasksOfArchivedUsersBacklog, }; diff --git a/models/userStatus.js b/models/userStatus.js index c9afe0d24..a8dbf73ab 100644 --- a/models/userStatus.js +++ b/models/userStatus.js @@ -14,7 +14,7 @@ const { generateErrorResponse, generateNewStatus, getNextDayTimeStamp, - convertTimestampsToUTC + convertTimestampsToUTC, } = require("../utils/userStatus"); const { TASK_STATUS } = require("../constants/tasks"); const userStatusModel = firestore.collection("usersStatus"); @@ -38,15 +38,15 @@ const getGroupRole = async (rolename) => { const data = await discordRoleModel.where("rolename", "==", rolename).limit(1).get(); if (data.empty) { return { - roleExists: false + roleExists: false, }; } return { roleExists: true, role: { id: data.docs[0].id, - ...data.docs[0].data() - } + ...data.docs[0].data(), + }, }; } catch (err) { logger.error("Error in getting role", err); @@ -78,7 +78,7 @@ const removeGroupIdleRoleFromDiscordUser = async (userId) => { await fetch(`${DISCORD_BASE_URL}/roles`, { method: "DELETE", headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, - body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }) + body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }), }); } } @@ -106,7 +106,7 @@ const addGroupIdleRoleToDiscordUser = async (userId) => { await memberRoleModel.add({ roleid: groupIdleRoleId, userid: discordId, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); } @@ -114,7 +114,7 @@ const addGroupIdleRoleToDiscordUser = async (userId) => { await fetch(`${DISCORD_BASE_URL}/roles/add`, { method: "PUT", headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, - body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }) + body: JSON.stringify({ userid: discordId, roleid: groupIdleRoleId }), }); } } @@ -186,7 +186,7 @@ const getAllUserStatus = async (query) => { id: doc.id, userId: doc.data().userId, currentStatus: doc.data().currentStatus, - monthlyHours: doc.data().monthlyHours + monthlyHours: doc.data().monthlyHours, }; allUserStatus.push(currentUserStatus); }); @@ -275,7 +275,7 @@ const updateAllUserStatus = async () => { oooUsersAltered: 0, oooUsersUnaltered: 0, nonOooUsersAltered: 0, - nonOooUsersUnaltered: 0 + nonOooUsersUnaltered: 0, }; try { const userStatusDocs = await userStatusModel.where("futureStatus.state", "in", ["ACTIVE", "IDLE", "OOO"]).get(); @@ -335,7 +335,7 @@ const updateAllUserStatus = async () => { }); if (batch._ops.length > 100) { logger.info( - `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.` + `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.`, ); } await batch.commit(); @@ -370,8 +370,8 @@ const updateUserStatusOnNewTaskAssignment = async (userId) => { } const { data: { - currentStatus: { state } - } + currentStatus: { state }, + }, } = latestStatusData; if (state === userState.ACTIVE) { return generateAlreadyExistingStatusResponse(userState.ACTIVE); @@ -414,13 +414,13 @@ const updateUserStatusOnTaskUpdate = async (userName) => { return { status: 404, error: "Not Found", - message: error.message + message: error.message, }; } return { status: 500, error: "Internal Server Error", - message: error.message + message: error.message, }; } }; @@ -440,8 +440,8 @@ const updateStatusOnTaskCompletion = async (userId) => { } const { data: { - currentStatus: { state } - } + currentStatus: { state }, + }, } = latestStatusData; if (hasActiveTask) { switch (state) { @@ -480,7 +480,7 @@ const batchUpdateUsersStatus = async (users) => { activeUsersAltered: 0, activeUsersUnaltered: 0, idleUsersAltered: 0, - idleUsersUnaltered: 0 + idleUsersUnaltered: 0, }; for (const { userId, state } of users) { @@ -497,21 +497,21 @@ const batchUpdateUsersStatus = async (users) => { message: "", from: new Date().setUTCHours(0, 0, 0, 0), until: "", - updatedAt: currentTimeStamp + updatedAt: currentTimeStamp, }; if (!userStatusExists || !data?.currentStatus) { const newUserStatusRef = userStatusModel.doc(); const newUserStatusData = { userId, - currentStatus: statusToUpdate + currentStatus: statusToUpdate, }; state === userState.ACTIVE ? summary.activeUsersAltered++ : summary.idleUsersAltered++; if (state === userState.IDLE) await addGroupIdleRoleToDiscordUser(userId); batch.set(newUserStatusRef, newUserStatusData); } else { const { - currentStatus: { state: currentState, until } + currentStatus: { state: currentState, until }, } = data; if (currentState === state) { currentState === userState.ACTIVE ? summary.activeUsersUnaltered++ : summary.idleUsersUnaltered++; @@ -520,7 +520,7 @@ const batchUpdateUsersStatus = async (users) => { const docRef = userStatusModel.doc(id); if (state === userState.ACTIVE) { const updatedStatusData = { - currentStatus: statusToUpdate + currentStatus: statusToUpdate, }; summary.onboardingUsersAltered++; batch.update(docRef, updatedStatusData); @@ -540,15 +540,15 @@ const batchUpdateUsersStatus = async (users) => { if (timeDifferenceDays >= 1) { if (state === userState.IDLE) await addGroupIdleRoleToDiscordUser(userId); batch.update(docRef, { - currentStatus: statusToUpdate + currentStatus: statusToUpdate, }); } else { const getNextDayAfterUntil = getNextDayTimeStamp(until); batch.update(docRef, { futureStatus: { ...statusToUpdate, - from: getNextDayAfterUntil - } + from: getNextDayAfterUntil, + }, }); } } else { @@ -556,7 +556,7 @@ const batchUpdateUsersStatus = async (users) => { state === userState.ACTIVE ? summary.activeUsersAltered++ : summary.idleUsersAltered++; if (state === userState.IDLE) await addGroupIdleRoleToDiscordUser(userId); const updatedStatusData = { - currentStatus: statusToUpdate + currentStatus: statusToUpdate, }; batch.update(docRef, updatedStatusData); } @@ -610,7 +610,7 @@ const getTaskBasedUsersStatus = async () => { unprocessedUsers.push(assigneeId); logger.error(`Error retrieving tasks for user ${assigneeId}: ${error.message}`); } - }) + }), ); } @@ -620,7 +620,7 @@ const getTaskBasedUsersStatus = async () => { totalActiveUsers, totalUnprocessedUsers: errorCount, unprocessedUsers, - users + users, }; }; @@ -649,7 +649,7 @@ const cancelOooStatus = async (userId) => { const { futureStatus, ...docData } = userStatusDocument.data(); if (docData.currentStatus.state !== userState.OOO) { throw new Forbidden( - `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.` + `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.`, ); } try { @@ -694,7 +694,7 @@ const addFutureStatus = async (futureStatusData) => { delete futureStatusData.userId; const newStatusData = { ...userStatusData, - futureStatus: futureStatusData + futureStatus: futureStatusData, }; await userStatusModel.doc(docId).update(newStatusData); return { id: docId, userStatusExists: true, data: newStatusData }; @@ -717,5 +717,5 @@ module.exports = { getTaskBasedUsersStatus, cancelOooStatus, getGroupRole, - addFutureStatus + addFutureStatus, }; diff --git a/models/users.js b/models/users.js index 3d678067f..52fbde3d8 100644 --- a/models/users.js +++ b/models/users.js @@ -43,9 +43,9 @@ const addOrUpdate = async (userData, userId = null) => { { ...user.data(), ...userData, - updated_at: Date.now() + updated_at: Date.now(), }, - { merge: true } + { merge: true }, ); } @@ -68,7 +68,7 @@ const addOrUpdate = async (userData, userId = null) => { userId: user.docs[0].id, incompleteUserDetails: user.docs[0].data().incompleteUserDetails, updated_at: Date.now(), - role: Object.values(AUTHORITIES).find((role) => data.roles[role]) || AUTHORITIES.USER + role: Object.values(AUTHORITIES).find((role) => data.roles[role]) || AUTHORITIES.USER, }; } @@ -86,7 +86,7 @@ const addOrUpdate = async (userData, userId = null) => { role: AUTHORITIES.USER, userId: userInfo.id, incompleteUserDetails: true, - updated_at: Date.now() + updated_at: Date.now(), }; } catch (err) { logger.error("Error in adding or updating user", err); @@ -99,7 +99,7 @@ const addJoinData = async (userData) => { await joinModel.add(userData); await updateUserStatus(userData.userId, { currentStatus: { state: userState.ONBOARDING }, - monthlyHours: { committed: 4 * userData.intro.numberOfHours } + monthlyHours: { committed: 4 * userData.intro.numberOfHours }, }); } catch (err) { logger.error("Error in adding data", err); @@ -114,7 +114,7 @@ const getJoinData = async (userId) => { joinData.forEach((data) => { userData.push({ id: data.id, - ...data.data() + ...data.data(), }); }); return userData; @@ -230,7 +230,7 @@ const fetchPaginatedUsers = async (query) => { return { allUsers, nextId: lastDoc?.id || "", - prevId: firstDoc?.id || "" + prevId: firstDoc?.id || "", }; } catch (err) { logger.error("Error retrieving user data", err); @@ -259,13 +259,13 @@ const fetchUsers = async (usernames = []) => { snapshot.forEach((doc) => { users.push({ id: doc.id, - ...doc.data() + ...doc.data(), }); }); }); return { - users + users, }; } catch (err) { logger.error("Error retrieving user data", err); @@ -309,8 +309,8 @@ const fetchUser = async ({ userId = null, username = null, githubUsername = null userExists: !!userData, user: { id, - ...userData - } + ...userData, + }, }; } catch (err) { logger.error("Error retrieving user data", err); @@ -329,7 +329,7 @@ const setIncompleteUserDetails = async (userId) => { if (doc.exists) { return userRef.update({ incompleteUserDetails: false, - updated_at: Date.now() + updated_at: Date.now(), }); } return {}; @@ -372,7 +372,7 @@ const addForVerification = async (userId, discordId, profileImageUrl, discordIma userId, discordId, discord: { url: discordImageUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) }, - profile: { url: profileImageUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) } + profile: { url: profileImageUrl, approved: false, date: admin.firestore.Timestamp.fromDate(new Date()) }, }; try { if (!isNotVerifiedSnapshot.empty) { @@ -445,7 +445,7 @@ const updateUserPicture = async (image, userId) => { const userDoc = userModel.doc(userId); await userDoc.update({ picture: image, - updated_at: Date.now() + updated_at: Date.now(), }); } catch (err) { logger.error("Error updating user picture data", err); @@ -490,7 +490,7 @@ const getRdsUserInfoByGitHubUsername = async (githubUsername) => { return { firstName: user.first_name ?? "", lastName: user.last_name ?? "", - username: user.username ?? "" + username: user.username ?? "", }; }; @@ -515,7 +515,7 @@ const getUsersBasedOnFilter = async (query) => { const calls = { item: itemModel, - state: userStatusModel + state: userStatusModel, }; calls.item = calls.item.where("itemType", "==", "USER").where("tagType", "==", "SKILL"); @@ -559,7 +559,7 @@ const getUsersBasedOnFilter = async (query) => { const fetchUsersWithOnBoardingState = await getUsersWithOnboardingStateInRange( filteredUserDocs, stateItems, - query.time + query.time, ); return fetchUsersWithOnBoardingState; } @@ -574,7 +574,7 @@ const getUsersBasedOnFilter = async (query) => { snapshot.forEach((doc) => { filteredUsers.push({ id: doc.id, - ...doc.data() + ...doc.data(), }); }); @@ -590,7 +590,7 @@ const getUsersBasedOnFilter = async (query) => { snapshot.forEach((doc) => { filteredUsers.push({ id: doc.id, - ...doc.data() + ...doc.data(), }); }); @@ -634,7 +634,7 @@ const getDiscordUsers = async () => { if (userData?.discordId) users.push({ id: user.id, - ...userData + ...userData, }); }); return users; @@ -660,7 +660,7 @@ const archiveUserIfNotInDiscord = async () => { totalUsersArchived: 0, totalOperationsFailed: 0, updatedUserDetails: [], - failedUserDetails: [] + failedUserDetails: [], }; if (snapshot.size === 0) { @@ -681,7 +681,7 @@ const archiveUserIfNotInDiscord = async () => { totalUsersArchived: (summary.totalUsersArchived += res.totalUsersArchived), totalOperationsFailed: (summary.totalOperationsFailed += res.totalOperationsFailed), updatedUserDetails: [...summary.updatedUserDetails, ...res.updatedUserDetails], - failedUserDetails: [...summary.failedUserDetails, ...res.failedUserDetails] + failedUserDetails: [...summary.failedUserDetails, ...res.failedUserDetails], }; } @@ -712,7 +712,7 @@ const fetchUserByIds = async (userIds = []) => { if (snapshot.exists) { users.push({ id: snapshot.id, - ...snapshot.data() + ...snapshot.data(), }); } }); @@ -768,7 +768,7 @@ const getUsersByRole = async (role) => { const userData = user.data(); users.push({ id: user.id, - ...userData + ...userData, }); }); return users; @@ -834,7 +834,7 @@ const fetchUserForKeyValue = async (documentKey, value) => { if (userData) users.push({ id: user.id, - ...userData + ...userData, }); }); return users; @@ -867,7 +867,7 @@ const fetchUsersListForMultipleValues = async (documentKey, valueList) => { if (userData) users.push({ id: user.id, - ...userData + ...userData, }); }); } @@ -891,7 +891,7 @@ const getNonNickNameSyncedUsers = async () => { if (userData?.discordId) users.push({ id: user.id, - ...userData + ...userData, }); }); return users; @@ -929,5 +929,5 @@ module.exports = { updateUsersInBatch, fetchUsersListForMultipleValues, fetchUserForKeyValue, - getNonNickNameSyncedUsers + getNonNickNameSyncedUsers, }; diff --git a/models/wallets.js b/models/wallets.js index 5e7fd3e9d..4887cfdc9 100644 --- a/models/wallets.js +++ b/models/wallets.js @@ -29,12 +29,12 @@ const createWallet = async (userId, currencies = {}) => { const walletData = { userId, isActive: true, - currencies + currencies, }; const { id } = await walletModel.add(walletData); return { id, - data: walletData + data: walletData, }; } catch (err) { logger.error("Error creating user wallet", err); @@ -58,7 +58,7 @@ const updateWallet = async (userId, currencies) => { } const walletRef = walletModel.doc(userWallet.id); const res = await walletRef.update({ - ...firestoreKeysObject + ...firestoreKeysObject, }); if (res) { return true; @@ -73,5 +73,5 @@ const updateWallet = async (userId, currencies) => { module.exports = { fetchWallet, updateWallet, - createWallet + createWallet, }; diff --git a/newrelic.js b/newrelic.js index 3fbac2d68..8bbbefab2 100644 --- a/newrelic.js +++ b/newrelic.js @@ -29,7 +29,7 @@ exports.config = { * * @env NEW_RELIC_DISTRIBUTED_TRACING_ENABLED */ - enabled: true + enabled: true, }, logging: { /** @@ -37,7 +37,7 @@ exports.config = { * issues with the agent, 'info' and higher will impose the least overhead on * production applications. */ - level: "info" + level: "info", }, /** * When true, all request headers except for those listed in attributes.exclude @@ -64,7 +64,7 @@ exports.config = { "response.headers.authorization", "response.headers.proxyAuthorization", "response.headers.setCookie*", - "response.headers.x*" - ] - } + "response.headers.x*", + ], + }, }; diff --git a/nyc.config.js b/nyc.config.js index 6db15172f..11b1b3a77 100644 --- a/nyc.config.js +++ b/nyc.config.js @@ -17,6 +17,6 @@ module.exports = { lines: [75, 90], functions: [75, 90], branches: [75, 90], - statements: [75, 90] - } + statements: [75, 90], + }, }; diff --git a/package.json b/package.json index 83f16e4ce..9d4220fed 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "nodemon": "3.1.3", "nyc": "15.1.0", "pre-commit": "^1.2.2", - "prettier": "^3.3.2", + "prettier": "^3.2.5", "sinon": "18.0.0", "ts-node": "10.9.2", "ts-node-dev": "2.0.0", diff --git a/routes/badges.js b/routes/badges.js index 917662bf3..d6fba4aa8 100644 --- a/routes/badges.js +++ b/routes/badges.js @@ -15,21 +15,21 @@ router.post( authorizeRoles([SUPERUSER]), upload.single("file"), badgesValidator.createBadge, - badgesController.postBadge + badgesController.postBadge, ); router.post( "/assign", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.postUserBadges + badgesController.postUserBadges, ); router.delete( "/remove", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.deleteUserBadges + badgesController.deleteUserBadges, ); module.exports = router; diff --git a/routes/discordactions.js b/routes/discordactions.js index 3ffe5bc51..140342fca 100644 --- a/routes/discordactions.js +++ b/routes/discordactions.js @@ -14,12 +14,12 @@ const { updateDiscordNicknames, updateUsersNicknameStatus, syncDiscordGroupRolesInFirestore, - setRoleToUsersWith31DaysPlusOnboarding + setRoleToUsersWith31DaysPlusOnboarding, } = require("../controllers/discordactions"); const { validateGroupRoleBody, validateMemberRoleBody, - validateUpdateUsersNicknameStatusBody + validateUpdateUsersNicknameStatusBody, } = require("../middlewares/validators/discordactions"); const checkIsVerifiedDiscord = require("../middlewares/verifydiscord"); const checkCanGenerateDiscordLink = require("../middlewares/checkCanGenerateDiscordLink"); @@ -44,28 +44,28 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - updateDiscordImageForVerification + updateDiscordImageForVerification, ); router.put( "/group-idle", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdleToIdleUsers + setRoleIdleToIdleUsers, ); router.put( "/group-idle-7d", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdle7DToIdleUsers + setRoleIdle7DToIdleUsers, ); router.post( "/nicknames/sync", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - updateDiscordNicknames + updateDiscordNicknames, ); router.post("/nickname/status", verifyCronJob, validateUpdateUsersNicknameStatusBody, updateUsersNicknameStatus); router.post("/discord-roles", authenticate, authorizeRoles([SUPERUSER]), syncDiscordGroupRolesInFirestore); router.put( "/group-onboarding-31d-plus", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleToUsersWith31DaysPlusOnboarding + setRoleToUsersWith31DaysPlusOnboarding, ); module.exports = router; diff --git a/routes/events.js b/routes/events.js index db8fb9584..6c50c2278 100644 --- a/routes/events.js +++ b/routes/events.js @@ -13,7 +13,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.joinEvent, - events.joinEvent + events.joinEvent, ); router.post("/join", eventsValidator.joinEvent, events.joinEvent); router.get("/:id", eventsValidator.getEventById, events.getEventById); @@ -23,7 +23,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.endActiveEvent, - events.endActiveEvent + events.endActiveEvent, ); router.post("/:id/peers", eventsValidator.addPeerToEvent, events.addPeerToEvent); router.patch( @@ -31,20 +31,20 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.kickoutPeer, - events.kickoutPeer + events.kickoutPeer, ); router.post( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.generateEventCode, - events.generateEventCode + events.generateEventCode, ); router.get( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.getEventCodes, - events.getEventCodes + events.getEventCodes, ); module.exports = router; diff --git a/routes/extensionRequests.js b/routes/extensionRequests.js index cfb881c63..7b74d1051 100644 --- a/routes/extensionRequests.js +++ b/routes/extensionRequests.js @@ -8,7 +8,7 @@ const { createExtensionRequest, updateExtensionRequest, updateExtensionRequestStatus, - getExtensionRequestsValidator + getExtensionRequestsValidator, } = require("../middlewares/validators/extensionRequests"); router.post("/", authenticate, createExtensionRequest, extensionRequests.createTaskExtensionRequest); @@ -20,14 +20,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequest, - extensionRequests.updateExtensionRequest + extensionRequests.updateExtensionRequest, ); router.patch( "/:id/status", authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequestStatus, - extensionRequests.updateExtensionRequestStatus + extensionRequests.updateExtensionRequestStatus, ); module.exports = router; diff --git a/routes/external-accounts.js b/routes/external-accounts.js index 2cf24c484..d64c2bc3a 100644 --- a/routes/external-accounts.js +++ b/routes/external-accounts.js @@ -18,7 +18,7 @@ router.post( "/users", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validator.postExternalAccountsUsers, - externalAccount.externalAccountsUsersPostHandler + externalAccount.externalAccountsUsersPostHandler, ); module.exports = router; diff --git a/routes/monitor.js b/routes/monitor.js index 92e54ed9c..16ca9b186 100644 --- a/routes/monitor.js +++ b/routes/monitor.js @@ -6,12 +6,12 @@ const { SUPERUSER } = require("../constants/roles"); const { createTrackedProgressController, updateTrackedProgressController, - getTrackedProgressController + getTrackedProgressController, } = require("../controllers/monitor"); const { validateCreateTrackedProgressRecord, validateUpdateTrackedProgress, - validateGetTrackedProgressQueryParams + validateGetTrackedProgressQueryParams, } = require("../middlewares/validators/monitor"); router.post( @@ -19,7 +19,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER]), validateCreateTrackedProgressRecord, - createTrackedProgressController + createTrackedProgressController, ); router.patch( @@ -27,7 +27,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), validateUpdateTrackedProgress, - updateTrackedProgressController + updateTrackedProgressController, ); router.get("/", validateGetTrackedProgressQueryParams, getTrackedProgressController); diff --git a/routes/tasks.js b/routes/tasks.js index 49b3cc677..0b651d39a 100644 --- a/routes/tasks.js +++ b/routes/tasks.js @@ -7,7 +7,7 @@ const { updateTask, updateSelfTask, getTasksValidator, - getUsersValidator + getUsersValidator, } = require("../middlewares/validators/tasks"); const authorizeRoles = require("../middlewares/authorizeRoles"); const { authorizeAndAuthenticate } = require("../middlewares/authorizeUsersAndService"); @@ -21,7 +21,7 @@ const { CLOUDFLARE_WORKER, CRON_JOB_HANDLER } = require("../constants/bot"); const oldAuthorizationMiddleware = authorizeRoles([APPOWNER, SUPERUSER]); const newAuthorizationMiddleware = authorizeAndAuthenticate( [APPOWNER, SUPERUSER], - [CLOUDFLARE_WORKER, CRON_JOB_HANDLER] + [CLOUDFLARE_WORKER, CRON_JOB_HANDLER], ); // Middleware to check if 'dev' query parameter is set to true @@ -42,7 +42,7 @@ router.post( authorizeRoles([APPOWNER, SUPERUSER]), invalidateCache({ invalidationKeys: [ALL_TASKS] }), createTask, - tasks.addNewTask + tasks.addNewTask, ); router.patch( "/:id", @@ -50,7 +50,7 @@ router.patch( enableDevModeMiddleware, invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateTask, - tasks.updateTask + tasks.updateTask, ); router.get("/:id/details", tasks.getTask); router.get("/:username", tasks.getUserTasks); @@ -60,7 +60,7 @@ router.patch( invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateSelfTask, tasks.updateTaskStatus, - assignTask + assignTask, ); router.patch("/assign/self", authenticate, invalidateCache({ invalidationKeys: [ALL_TASKS] }), tasks.assignTask); diff --git a/routes/userStatus.js b/routes/userStatus.js index 164ac23d7..7bbf2c1b2 100644 --- a/routes/userStatus.js +++ b/routes/userStatus.js @@ -6,7 +6,7 @@ const { updateAllUserStatus, batchUpdateUsersStatus, getUserStatusControllers, - updateUserStatusController + updateUserStatusController, } = require("../controllers/userStatus"); const router = express.Router(); const authenticate = require("../middlewares/authenticate"); @@ -15,7 +15,7 @@ const { SUPERUSER } = require("../constants/roles"); const { validateUserStatus, validateMassUpdate, - validateGetQueryParams + validateGetQueryParams, } = require("../middlewares/validators/userStatus"); const { authorizeAndAuthenticate } = require("../middlewares/authorizeUsersAndService"); const ROLES = require("../constants/roles"); @@ -30,7 +30,7 @@ router.patch( "/batch", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validateMassUpdate, - batchUpdateUsersStatus + batchUpdateUsersStatus, ); router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), validateUserStatus, updateUserStatus); router.delete("/:userId", authenticate, authorizeRoles([SUPERUSER]), deleteUserStatus); diff --git a/routes/users.js b/routes/users.js index fb91142ac..5a9463648 100644 --- a/routes/users.js +++ b/routes/users.js @@ -29,7 +29,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - users.updateDiscordUserNickname + users.updateDiscordUserNickname, ); router.get("/:username", users.getUser); router.get("/:userId/intro", authenticate, authorizeRoles([SUPERUSER]), users.getUserIntro); @@ -41,14 +41,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUsersPatchHandler, - users.usersPatchHandler + users.usersPatchHandler, ); router.patch( "/:id/temporary/data", authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUpdateRoles, - users.updateRoles + users.updateRoles, ); // upload.single('profile') -> multer inmemory storage of file for type multipart/form-data @@ -58,7 +58,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateImageVerificationQuery, - users.verifyUserImage + users.verifyUserImage, ); router.get("/picture/:id", authenticate, authorizeRoles([SUPERUSER]), users.getUserImageForVerification); router.patch("/profileURL", authenticate, userValidator.updateProfileURL, users.profileURL); diff --git a/scripts/validateSetup.js b/scripts/validateSetup.js index 71fbda849..f54688045 100644 --- a/scripts/validateSetup.js +++ b/scripts/validateSetup.js @@ -16,7 +16,7 @@ try { console.info("✅ Firestore config is correct."); } catch (error) { throw new Error( - "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️" + "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️", ); } @@ -31,7 +31,7 @@ if (!firestoreConfig) { (async () => { const docRef = await Firestore.collection("dummy").doc("users"); await docRef.set({ - user: "dummy" + user: "dummy", }); const resp = await docRef.get("user"); if (resp.data().user !== "dummy") { diff --git a/services/EventAPIService.js b/services/EventAPIService.js index 3818b54e2..8b5af91a5 100644 --- a/services/EventAPIService.js +++ b/services/EventAPIService.js @@ -9,7 +9,7 @@ class EventAPIService { // Set Axios baseURL to 100ms API BaseURI this.#axiosInstance = axios.create({ baseURL: API_100MS_BASE_URL, - timeout: 3 * 60000 + timeout: 3 * 60000, }); this.#tokenServiceInstance = tokenService; this.#configureAxios(); @@ -30,11 +30,11 @@ class EventAPIService { config.headers = { Authorization: `Bearer ${this.#tokenServiceInstance.getManagementToken()}`, Accept: "application/json", - "Content-Type": "application/json" + "Content-Type": "application/json", }; return config; }, - (error) => Promise.reject(error) + (error) => Promise.reject(error), ); this.#axiosInstance.interceptors.response.use( (response) => { @@ -48,7 +48,7 @@ class EventAPIService { originalRequest._retry = true; } return Promise.reject(error); - } + }, ); } diff --git a/services/EventTokenService.js b/services/EventTokenService.js index 266557ca3..14e81c8d5 100644 --- a/services/EventTokenService.js +++ b/services/EventTokenService.js @@ -16,7 +16,7 @@ class EventTokenService { const token = jwt.sign(payload, EventTokenService.#app_secret, { algorithm: "HS256", expiresIn: "24h", - jwtid: crypto.randomUUID({ disableEntropyCache: true }) + jwtid: crypto.randomUUID({ disableEntropyCache: true }), }); return token; } @@ -41,7 +41,7 @@ class EventTokenService { access_key: EventTokenService.#app_access_key, type: "management", version: 2, - iat: Math.floor(Date.now() / 1000) + iat: Math.floor(Date.now() / 1000), }; this.#managementToken = this.#signPayloadToToken(payload); } @@ -57,7 +57,7 @@ class EventTokenService { role: role, type: "app", version: 2, - iat: Math.floor(Date.now() / 1000) + iat: Math.floor(Date.now() / 1000), }; return this.#signPayloadToToken(payload); } diff --git a/services/authService.js b/services/authService.js index c7068e7db..4e698b44f 100644 --- a/services/authService.js +++ b/services/authService.js @@ -8,7 +8,7 @@ const jwt = require("jsonwebtoken"); const generateAuthToken = (payload) => { return jwt.sign(payload, config.get("userToken.privateKey"), { algorithm: "RS256", - expiresIn: config.get("userToken.ttl") + expiresIn: config.get("userToken.ttl"), }); }; @@ -35,5 +35,5 @@ const decodeAuthToken = (token) => { module.exports = { generateAuthToken, verifyAuthToken, - decodeAuthToken + decodeAuthToken, }; diff --git a/services/cloudflareService.js b/services/cloudflareService.js index baf6a375f..a41d5a5d9 100644 --- a/services/cloudflareService.js +++ b/services/cloudflareService.js @@ -9,13 +9,13 @@ async function purgeCache(files) { { files: files }, { "X-Auth-Key": config.get("cloudflare.CLOUDFLARE_X_AUTH_KEY"), - "X-Auth-Email": config.get("cloudflare.CLOUDFLARE_X_AUTH_EMAIL") - } + "X-Auth-Email": config.get("cloudflare.CLOUDFLARE_X_AUTH_EMAIL"), + }, ); return response; } module.exports = { - purgeCache + purgeCache, }; diff --git a/services/contributions.js b/services/contributions.js index ee11dd131..8090598eb 100644 --- a/services/contributions.js +++ b/services/contributions.js @@ -67,7 +67,7 @@ const getUserContributions = async (username) => { for (const prDetails of prMaps.values()) { const allObject = { prList: [prDetails], - task: {} + task: {}, }; all.push(allObject); } @@ -91,7 +91,7 @@ const extractPRdetails = (data) => { createdAt, updatedAt, url, - raisedBy: user.login + raisedBy: user.login, }); }); return allPRs; @@ -114,7 +114,7 @@ const extractTaskdetails = (data) => { participants, featureUrl, isNoteworthy, - isCollapsed + isCollapsed, } = data; return { id, @@ -127,7 +127,7 @@ const extractTaskdetails = (data) => { participants, featureUrl, isNoteworthy, - isCollapsed + isCollapsed, }; }; @@ -154,7 +154,7 @@ const extractUserDetails = (data) => { firstname, lastname, img, - username + username, }; } else { return { username }; @@ -162,5 +162,5 @@ const extractUserDetails = (data) => { }; module.exports = { - getUserContributions + getUserContributions, }; diff --git a/services/dataAccessLayer.js b/services/dataAccessLayer.js index a5ed74b25..2a8411617 100644 --- a/services/dataAccessLayer.js +++ b/services/dataAccessLayer.js @@ -11,7 +11,7 @@ const retrieveUsers = async ({ userdata, level = ACCESS_LEVEL.PUBLIC, role = null, - userIds = null + userIds = null, }) => { let result; if (id || username) { @@ -131,5 +131,5 @@ module.exports = { retrieveUsersWithRole, retreiveFilteredUsers, levelSpecificAccess, - fetchUsersForKeyValues + fetchUsersForKeyValues, }; diff --git a/services/discordMembersService.js b/services/discordMembersService.js index 592c402a7..1169e2434 100644 --- a/services/discordMembersService.js +++ b/services/discordMembersService.js @@ -11,13 +11,13 @@ const getDiscordMemberDetails = async (discordId) => { try { const authToken = jwt.sign({}, config.get("rdsServerlessBot.rdsServerLessPrivateKey"), { algorithm: "RS256", - expiresIn: config.get("rdsServerlessBot.ttl") + expiresIn: config.get("rdsServerlessBot.ttl"), }); const memberDiscordDetails = await ( await fetch(`${DISCORD_BASE_URL}/member/${discordId}`, { method: "GET", - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, }) ).json(); return memberDiscordDetails; diff --git a/services/discordService.js b/services/discordService.js index 5932a5118..bb3517609 100644 --- a/services/discordService.js +++ b/services/discordService.js @@ -10,7 +10,7 @@ const getDiscordMembers = async () => { const response = await ( await fetch(`${DISCORD_BASE_URL}/discord-members`, { method: "GET", - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, }) ).json(); return response; @@ -26,7 +26,7 @@ const getDiscordRoles = async () => { const response = await ( await fetch(`${DISCORD_BASE_URL}/roles`, { method: "GET", - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, }) ).json(); return response; @@ -34,7 +34,7 @@ const getDiscordRoles = async () => { logger.error("Error in fetching the discord data", err); return { status: 500, - message: "Something went wrong" + message: "Something went wrong", }; } }; @@ -50,9 +50,9 @@ const setInDiscordFalseScript = async () => { ...user, roles: { ...user.roles, - in_discord: false + in_discord: false, }, - updated_at: Date.now() + updated_at: Date.now(), }; updateUsersPromises.push(userModel.doc(id).update(userData)); }); @@ -64,7 +64,7 @@ const addRoleToUser = async (userid, roleid) => { const data = await fetch(`${DISCORD_BASE_URL}/roles/add`, { method: "PUT", headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, - body: JSON.stringify({ userid, roleid }) + body: JSON.stringify({ userid, roleid }), }); const response = await data.json(); return response; @@ -76,7 +76,7 @@ const removeRoleFromUser = async (roleId, discordId, userData) => { const data = await fetch(`${DISCORD_BASE_URL}/roles`, { method: "DELETE", headers, - body: JSON.stringify({ userid: discordId, roleid: roleId }) + body: JSON.stringify({ userid: discordId, roleid: roleId }), }); const response = await data.json(); return response; @@ -94,12 +94,12 @@ const setUserDiscordNickname = async (userName, discordId) => { await fetch(`${DISCORD_BASE_URL}/guild/member`, { method: "PATCH", body: JSON.stringify({ userName, discordId }), - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, }) ).json(); return { userEffected: userName, - message: response + message: response, }; } catch (err) { logger.error("Error in updating discord Nickname", err); @@ -113,5 +113,5 @@ module.exports = { setInDiscordFalseScript, addRoleToUser, removeRoleFromUser, - setUserDiscordNickname + setUserDiscordNickname, }; diff --git a/services/githubService.js b/services/githubService.js index c68db8d45..31e1a3de8 100644 --- a/services/githubService.js +++ b/services/githubService.js @@ -18,7 +18,7 @@ const extractPRdetails = (data) => { updated_at: updatedAt, repository_url: repositoryUrl, labels, - assignees + assignees, }) => { const allAssignees = assignees.map((object) => object.login); const allLabels = labels.map((object) => object.name); @@ -33,9 +33,9 @@ const extractPRdetails = (data) => { repository, url, labels: allLabels, - assignees: allAssignees + assignees: allAssignees, }); - } + }, ); return allPRs; }; @@ -56,7 +56,7 @@ const getGithubURL = (searchParams, resultsOptions = {}, searchString) => { urlObj.pathname = issuesAndPRsPath; const defaultParams = { - org: config.get("githubApi.org") + org: config.get("githubApi.org"), }; const finalSearchParams = Object.assign({}, defaultParams, searchParams); @@ -91,8 +91,8 @@ function getFetch(url) { return utils.fetch(url, "get", null, null, null, { auth: { username: config.get("githubOauth.clientId"), - password: config.get("githubOauth.clientSecret") - } + password: config.get("githubOauth.clientSecret"), + }, }); } @@ -116,7 +116,7 @@ const fetchPRsByUser = async (username) => { const { user } = await fetchUser({ username }); const url = getGithubURL({ author: user.github_id, - type: "pr" + type: "pr", }); return getFetch(url); } catch (err) { @@ -140,14 +140,14 @@ const fetchOpenPRs = async (params = {}) => { { type: "pr", is: "open", - ...searchParams + ...searchParams, }, { sort: "created", ...resultOptions, per_page: perPage, - page - } + page, + }, ); return getFetch(url); } catch (err) { @@ -164,14 +164,14 @@ const fetchMergedPRs = async (params = {}) => { { type: "pr", is: "merged", - ...searchParams + ...searchParams, }, { sort: "updated", ...resultOptions, per_page: perPage, - page - } + page, + }, ); return getFetch(url); @@ -189,15 +189,15 @@ const fetchOpenIssues = async (params = {}) => { { type: "issue", is: "open", - ...searchParams + ...searchParams, }, { sort: "created", ...resultOptions, per_page: perPage, - page + page, }, - searchString + searchString, ); return getFetch(url); } catch (err) { @@ -214,14 +214,14 @@ const fetchClosedIssues = async (params = {}) => { { type: "issue", is: "closed", - ...searchParams + ...searchParams, }, { sort: "updated", ...resultOptions, per_page: perPage, - page - } + page, + }, ); return getFetch(url); } catch (err) { @@ -244,14 +244,14 @@ const fetchIssues = async () => { createdURL, { filter: "all", - state: "open" + state: "open", }, { Accept: "application/vnd.github+json", // TODO: replace with RDS org PAT Authorization: `Bearer `, - org: config.get("githubApi.org") - } + org: config.get("githubApi.org"), + }, ); return res; } catch (err) { @@ -274,7 +274,7 @@ const fetchIssuesById = async (repositoryName, issueId) => { const headers = { Accept: "application/vnd.github+json", Authorization: `Bearer ${config.get("githubAccessToken")}`, - org: org + org: org, }; const res = await fetch(url, { headers }); if (!res.ok) { @@ -298,14 +298,14 @@ const fetchLastMergedPR = async (username) => { const searchParams = { type: "pr", is: "merged", - author: username + author: username, }; const createdURL = getGithubURL(searchParams, { sort: "merged", order: "desc", per_page: "1" }); const headers = { Accept: "application/vnd.github+json", Authorization: `Bearer ${config.get("githubAccessToken")}`, - org: config.get("githubApi.org") + org: config.get("githubApi.org"), }; const res = await fetch(createdURL, { headers }); @@ -365,5 +365,5 @@ module.exports = { fetchClosedIssues, fetchLastMergedPR, isLastPRMergedWithinDays, - fetchIssuesById + fetchIssuesById, }; diff --git a/services/goalService.js b/services/goalService.js index 6e7523563..39f033412 100644 --- a/services/goalService.js +++ b/services/goalService.js @@ -6,15 +6,15 @@ const getOrCreateGoalUser = async ({ userId, roles }) => { type: "User", attributes: { rds_id: userId, - roles: roles - } - } + roles: roles, + }, + }, }); const goalSiteConfig = config.services.goalAPI; return fetch(`${goalSiteConfig.baseUrl}/api/v1/user/`, { method: "POST", body, - headers: { "Content-Type": "application/vnd.api+json", "Rest-Key": goalSiteConfig.secretKey } + headers: { "Content-Type": "application/vnd.api+json", "Rest-Key": goalSiteConfig.secretKey }, }); }; module.exports = { getOrCreateGoalUser }; diff --git a/services/imageService.js b/services/imageService.js index 280912924..3c5bc739c 100644 --- a/services/imageService.js +++ b/services/imageService.js @@ -20,8 +20,8 @@ const uploadProfilePicture = async ({ file, userId, coordinates }) => { transformation: { ...coordinates, crop: "crop", - fetch_format: "auto" - } + fetch_format: "auto", + }, }); const { public_id: publicId, secure_url: url } = uploadResponse; await userModel.updateUserPicture({ publicId, url }, userId); @@ -45,7 +45,7 @@ async function uploadBadgeImage({ file, badgeName }) { const imageDataInBase64 = imageDataUri.content; const uploadResponse = await upload(imageDataInBase64, { folder: `${cloudinaryMetaData.BADGE.FOLDER}/${badgeName}`, - tags: cloudinaryMetaData.BADGE.TAGS + tags: cloudinaryMetaData.BADGE.TAGS, }); const { public_id: id, secure_url: imageUrl } = uploadResponse; return { id, imageUrl }; @@ -57,5 +57,5 @@ async function uploadBadgeImage({ file, badgeName }) { module.exports = { uploadProfilePicture, - uploadBadgeImage + uploadBadgeImage, }; diff --git a/services/issuesService.js b/services/issuesService.js index ef3d952c1..39eb8604f 100644 --- a/services/issuesService.js +++ b/services/issuesService.js @@ -11,7 +11,7 @@ const getOrgIssues = async () => { const searchOrgIssues = async (searchString) => { const data = await githubService.fetchOpenIssues({ - searchString + searchString, }); return data; @@ -19,5 +19,5 @@ const searchOrgIssues = async (searchString) => { module.exports = { getOrgIssues, - searchOrgIssues + searchOrgIssues, }; diff --git a/services/tasks.js b/services/tasks.js index 2aa6d6d79..6e1a5dfe7 100644 --- a/services/tasks.js +++ b/services/tasks.js @@ -10,7 +10,7 @@ const updateTaskStatusToDone = async (tasksData) => { totalUpdatedStatus: 0, totalOperationsFailed: 0, updatedTaskDetails: [], - failedTaskDetails: [] + failedTaskDetails: [], }; tasksData.forEach((task) => { const updateTaskData = { ...task, status: "DONE" }; @@ -36,7 +36,7 @@ const addTaskCreatedAtAndUpdatedAtFields = async () => { totalTaskToBeUpdate: 0, totalTasksUpdated: 0, totalFailedTasks: 0, - failedTasksIds: [] + failedTasksIds: [], }; const updatedTasks = []; const tasks = await tasksModel.get(); @@ -85,5 +85,5 @@ const addTaskCreatedAtAndUpdatedAtFields = async () => { module.exports = { updateTaskStatusToDone, - addTaskCreatedAtAndUpdatedAtFields + addTaskCreatedAtAndUpdatedAtFields, }; diff --git a/services/tradingService.js b/services/tradingService.js index 925a839e9..af4a6f0d4 100644 --- a/services/tradingService.js +++ b/services/tradingService.js @@ -86,7 +86,7 @@ const trade = async (tradeData) => { const updatedStockData = { ...stockData, quantity: quantityToUpdate, - price: stockPriceToBeUpdated + price: stockPriceToBeUpdated, }; // Update user stocks @@ -96,7 +96,7 @@ const trade = async (tradeData) => { stockName, quantity: userStocksQty, orderValue: userStocksQty * stockData.price, - initialStockValue + initialStockValue, }); // Transaction Log @@ -108,21 +108,21 @@ const trade = async (tradeData) => { orderValue, quantity: qtyUserCanPurchase, price: stockData.price, - timestamp: +Date.now() + timestamp: +Date.now(), }); await transactionsModel.add({ userId: userId, type: `STOCK_${tradeType}`, refId: id, - timestamp: +Date.now() + timestamp: +Date.now(), }); // update user wallet await updateWallet(userId, { ...currencies, - ...updatedCurrencyData + ...updatedCurrencyData, }); await stocksModel.doc(stockId).set(updatedStockData); @@ -134,5 +134,5 @@ const trade = async (tradeData) => { }; module.exports = { - trade + trade, }; diff --git a/services/users.js b/services/users.js index 09c81e3d9..3b193dfc4 100644 --- a/services/users.js +++ b/services/users.js @@ -8,7 +8,7 @@ const archiveUsers = async (usersData) => { totalUsersArchived: 0, totalOperationsFailed: 0, updatedUserDetails: [], - failedUserDetails: [] + failedUserDetails: [], }; usersData.forEach((user) => { @@ -17,9 +17,9 @@ const archiveUsers = async (usersData) => { ...user, roles: { ...user.roles, - archived: true + archived: true, }, - updated_at: Date.now() + updated_at: Date.now(), }; batch.update(userModel.doc(id), updatedUserData); usersBatch.push({ id, firstName, lastName }); @@ -31,7 +31,7 @@ const archiveUsers = async (usersData) => { summary.updatedUserDetails = [...usersBatch]; return { message: USERS_PATCH_HANDLER_SUCCESS_MESSAGES.ARCHIVE_USERS.SUCCESSFULLY_COMPLETED_BATCH_UPDATES, - ...summary + ...summary, }; } catch (err) { logger.error("Firebase batch Operation Failed!"); @@ -42,5 +42,5 @@ const archiveUsers = async (usersData) => { }; module.exports = { - archiveUsers + archiveUsers, }; diff --git a/test/config/test.js b/test/config/test.js index 40e2f8d43..a90dc3d78 100644 --- a/test/config/test.js +++ b/test/config/test.js @@ -17,11 +17,11 @@ module.exports = { discordMissedUpdatesRoleId: "", githubApi: { baseUrl: "https://api.github.com", - org: "Real-Dev-Squad" + org: "Real-Dev-Squad", }, githubOauth: { clientId: "clientId", - clientSecret: "clientSecret" + clientSecret: "clientSecret", }, firestore: `{ "type": "service_account", @@ -37,31 +37,31 @@ module.exports = { }`, services: { rdsApi: { - baseUrl: `http://localhost:${port}` + baseUrl: `http://localhost:${port}`, }, rdsUi: { baseUrl: "https://realdevsquad.com", routes: { - authRedirection: "/goto" + authRedirection: "/goto", }, goalAPI: { baseUrl: "", secretKey: "", - cookieName: `goals-session-test` - } + cookieName: `goals-session-test`, + }, }, discordBot: { - baseUrl: "DISCORD_BASE_URL" + baseUrl: "DISCORD_BASE_URL", }, goalAPI: { baseUrl: "", secretKey: "", - cookieName: `goals-session-test` - } + cookieName: `goals-session-test`, + }, }, cors: { - allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)|(localhost)/ // Allow realdevsquad.com, *.realdevsquad.com and localhost for non-production envs + allowedOrigins: /(https:\/\/([a-zA-Z0-9-_]+\.)?realdevsquad\.com$)|(localhost)/, // Allow realdevsquad.com, *.realdevsquad.com and localhost for non-production envs }, userToken: { @@ -91,7 +91,7 @@ module.exports = { "NoWsgW64Z/+89cbKFMzgHdvhvL7rQNhBAAm1byPmn8aTV7LlTclMWfb4sV6e+ef8\n" + "QnrvpfRSihRktA2dDQJAH+dQBx3nG3bZ9khVAZQ1jTJ7j0cKixaGndFuYS1TJvJ2\n" + "Zzn584h/xbSIcP9/4SXmEK3wtoueUtMkvS3yKTvk+w==\n" + - "-----END RSA PRIVATE KEY-----" + "-----END RSA PRIVATE KEY-----", }, botToken: { @@ -132,7 +132,7 @@ module.exports = { "7UcCgYBHdbFcXWGHfEqLJZChRrKhWLxn9jkJ0apvnO1j6c5yiAo3yJkSV5Z9IdAc\n" + "lgOC/dJBTZLcBtixdERqcJ+o4P7oFRS6hz/9n4s+kkzxXVqEmtJmBQvHUo3I/Qgc\n" + "Ba+XMCP64pXPC3r1llhKRwIl+6UFn+QlpbxtgQjhbULnSbc7fw==\n" + - "-----END RSA PRIVATE KEY-----" + "-----END RSA PRIVATE KEY-----", }, rdsServerlessBot: { @@ -174,7 +174,7 @@ module.exports = { "lgOC/dJBTZLcBtixdERqcJ+o4P7oFRS6hz/9n4s+kkzxXVqEmtJmBQvHUo3I/Qgc\n" + "Ba+XMCP64pXPC3r1llhKRwIl+6UFn+QlpbxtgQjhbULnSbc7fw==\n" + "-----END RSA PRIVATE KEY-----", - ttl: 60 + ttl: 60, }, cronJobHandler: { @@ -215,42 +215,42 @@ module.exports = { "XFFmNp6sqcQD1P15HkJtleodzcKgmsqo8RTk8t+urdWIdoLFAugwqFE9jor8UxAp\n" + "wT5xr8c84VDfbPgc10V2XTda4SXaIRP7QY+9agGmZIYp0LWxUOhB37PNFDhUEw9d\n" + "VwIDAQAB\n" + - "-----END PUBLIC KEY-----" + "-----END PUBLIC KEY-----", }, // Cloudinary keys cloudinary: { cloud_name: "Cloud_name", api_key: "API_KEY", - api_secret: "api_secret_key" + api_secret: "api_secret_key", }, // Cloudflare cloudflare: { CLOUDFLARE_ZONE_ID: "Cloudflare_Zone_ID_or_ID", CLOUDFLARE_X_AUTH_KEY: "Cloudflare_API_Auth_Key", - CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email" + CLOUDFLARE_X_AUTH_EMAIL: "Cloudflare_User_Email", }, integrations: { newrelic: { appName: "RDS_API_production", - licenseKey: "" - } + licenseKey: "", + }, }, routesCacheTTL: { - "/members": 900 + "/members": 900, }, githubAccessToken: "GITHUB_PERSONAL_ACCESS_TOKEN", Event100ms: { APP_ACCESS_KEY: "EVENT_100MS_APP_ACCESS_KEY", - APP_SECRET: "EVENT_100MS_APP_SECRET" + APP_SECRET: "EVENT_100MS_APP_SECRET", }, externalServices: { - EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY" - } + EXTERNAL_SERVICE_PUBLIC_KEY: "EXTERNAL_SERVICE_PUBLIC_KEY", + }, }; diff --git a/test/fixtures/arts/arts.js b/test/fixtures/arts/arts.js index 9836a353c..0e5a35b5d 100644 --- a/test/fixtures/arts/arts.js +++ b/test/fixtures/arts/arts.js @@ -3,12 +3,12 @@ module.exports = () => { { title: "Green Square", price: 50, - css: "background: green;\nheight: 100;\nwidth: 100;" + css: "background: green;\nheight: 100;\nwidth: 100;", }, { title: "yellow square", css: "background: yellow; height: 100; width: 100;", - price: 69 - } + price: 69, + }, ]; }; diff --git a/test/fixtures/auctions/auctions.js b/test/fixtures/auctions/auctions.js index da8a41ff0..1403853be 100644 --- a/test/fixtures/auctions/auctions.js +++ b/test/fixtures/auctions/auctions.js @@ -11,7 +11,7 @@ const auctionData = { item_type: NEELAM, quantity: 2, initial_price: 100, - end_time: Date.now() + 60 * 60 * 1000 + end_time: Date.now() + 60 * 60 * 1000, }; const auctionKeys = ["auctions", "message"]; diff --git a/test/fixtures/auth/githubUserInfo.js b/test/fixtures/auth/githubUserInfo.js index 662c89b08..153264e0a 100644 --- a/test/fixtures/auth/githubUserInfo.js +++ b/test/fixtures/auth/githubUserInfo.js @@ -15,8 +15,8 @@ module.exports = () => { profileUrl: "https://github.com/ankurnarkhede", photos: [ { - value: "https://avatars3.githubusercontent.com/u/26190252?v=4" - } + value: "https://avatars3.githubusercontent.com/u/26190252?v=4", + }, ], provider: "github", _raw: '{"login":"ankurnarkhede","id":26190252,"node_id":"MDQ6VXNlcjI2MTkwMjUy","avatar_url":"https://avatars3.githubusercontent.com/u/26190252?v=4","gravatar_id":"","url":"https://api.github.com/users/ankurnarkhede","html_url":"https://github.com/ankurnarkhede","followers_url":"https://api.github.com/users/ankurnarkhede/followers","following_url":"https://api.github.com/users/ankurnarkhede/following{/other_user}","gists_url":"https://api.github.com/users/ankurnarkhede/gists{/gist_id}","starred_url":"https://api.github.com/users/ankurnarkhede/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ankurnarkhede/subscriptions","organizations_url":"https://api.github.com/users/ankurnarkhede/orgs","repos_url":"https://api.github.com/users/ankurnarkhede/repos","events_url":"https://api.github.com/users/ankurnarkhede/events{/privacy}","received_events_url":"https://api.github.com/users/ankurnarkhede/received_events","type":"User","site_admin":false,"name":"Ankur Narkhede","company":null,"blog":"","location":null,"email":null,"hireable":null,"bio":null,"twitter_username":null,"public_repos":0,"public_gists":0,"followers":0,"following":0,"created_at":"2017-03-04T19:40:28Z","updated_at":"2020-08-15T13:35:13Z","private_gists":0,"total_private_repos":0,"owned_private_repos":0,"disk_usage":0,"collaborators":0,"two_factor_authentication":false,"plan":{"name":"free","space":976562499,"collaborators":0,"private_repos":10000}}', @@ -63,9 +63,9 @@ module.exports = () => { name: "free", space: 976562499, collaborators: 0, - private_repos: 10000 - } - } + private_repos: 10000, + }, + }, }, { login: "sahsisunny", @@ -99,7 +99,7 @@ module.exports = () => { followers: 11, following: 4, created_at: "2020-09-06T16:21:38Z", - updated_at: "2023-07-26T09:29:37Z" - } + updated_at: "2023-07-26T09:29:37Z", + }, ]; }; diff --git a/test/fixtures/badges/badges.js b/test/fixtures/badges/badges.js index 67fb7f537..7160886d0 100644 --- a/test/fixtures/badges/badges.js +++ b/test/fixtures/badges/badges.js @@ -8,8 +8,8 @@ const BADGES = [ createdBy: "shmbajaj", createdAt: { _seconds: "1234567890", - _nanoseconds: "1234567890" - } + _nanoseconds: "1234567890", + }, }, { id: 2, @@ -20,8 +20,8 @@ const BADGES = [ createdBy: "shmbajaj", createdAt: { _seconds: "1234567890", - _nanoseconds: "1234567890" - } + _nanoseconds: "1234567890", + }, }, { id: 3, @@ -32,9 +32,9 @@ const BADGES = [ createdBy: "shmbajaj", createdAt: { _seconds: "1234567890", - _nanoseconds: "1234567890" - } - } + _nanoseconds: "1234567890", + }, + }, ]; const CLOUNDINARY_IMAGE_URL = "https://imageUrl.cloudinary.com/badges/something.jpg"; @@ -45,16 +45,16 @@ const EXPECTED_BADGE_OBJECT = { createdBy: "shmbajaj", description: "", imageUrl: CLOUNDINARY_IMAGE_URL, - createdAt: {} + createdAt: {}, }; const CLOUNDINARY_BADGE_IMAGE_UPLOAD_RESPONSE = { id: "badge-image-random-id", - imageUrl: CLOUNDINARY_IMAGE_URL + imageUrl: CLOUNDINARY_IMAGE_URL, }; module.exports = { BADGES, EXPECTED_BADGE_OBJECT, - CLOUNDINARY_BADGE_IMAGE_UPLOAD_RESPONSE + CLOUNDINARY_BADGE_IMAGE_UPLOAD_RESPONSE, }; diff --git a/test/fixtures/challenges/challenges.js b/test/fixtures/challenges/challenges.js index 83b8ec494..b6ca70087 100644 --- a/test/fixtures/challenges/challenges.js +++ b/test/fixtures/challenges/challenges.js @@ -6,7 +6,7 @@ module.exports = () => { title: "Sherlock and Anagrams", level: "Easy", start_date: timeUtils.getTimeInSecondAfter({}), - end_date: timeUtils.getTimeInSecondAfter({ days: 10 }) - } + end_date: timeUtils.getTimeInSecondAfter({ days: 10 }), + }, ]; }; diff --git a/test/fixtures/cloudflareCache/data.js b/test/fixtures/cloudflareCache/data.js index 091f6dda9..0bd1fe4fd 100644 --- a/test/fixtures/cloudflareCache/data.js +++ b/test/fixtures/cloudflareCache/data.js @@ -2,25 +2,25 @@ const cacheLogs = [ { timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000 + _nanoseconds: 912000000, }, type: "CLOUDFLARE_CACHE_PURGED", meta: { - userId: "TEST_USER_ID" + userId: "TEST_USER_ID", }, body: { - message: "Log" - } - } + message: "Log", + }, + }, ]; const cacheModelData = [ { - timestamp: { _seconds: 1659870503, _nanoseconds: 482000000 } + timestamp: { _seconds: 1659870503, _nanoseconds: 482000000 }, }, { - timestamp: { _seconds: 1659843503, _nanoseconds: 680003000 } - } + timestamp: { _seconds: 1659843503, _nanoseconds: 680003000 }, + }, ]; const purgeCacheResponse = [ @@ -30,14 +30,14 @@ const purgeCacheResponse = [ errors: [], messages: [], result: { - id: "TEST_RESULT_ID" - } - } - } + id: "TEST_RESULT_ID", + }, + }, + }, ]; module.exports = { cacheLogs, cacheModelData, - purgeCacheResponse + purgeCacheResponse, }; diff --git a/test/fixtures/contributions/githubPRInfo.js b/test/fixtures/contributions/githubPRInfo.js index afcebddbe..b4d641911 100644 --- a/test/fixtures/contributions/githubPRInfo.js +++ b/test/fixtures/contributions/githubPRInfo.js @@ -40,7 +40,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "closed", @@ -59,11 +59,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/145", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch", }, body: "", performed_via_github_app: null, - score: 1 + score: 1, }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/83", @@ -94,7 +94,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "open", @@ -117,7 +117,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, assignees: [ { @@ -138,8 +138,8 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false - } + site_admin: false, + }, ], milestone: null, comments: 0, @@ -153,11 +153,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/83", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch", }, body: "", performed_via_github_app: null, - score: 1 + score: 1, }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-static/issues/48", @@ -188,7 +188,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "closed", @@ -207,11 +207,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-static/pulls/48", html_url: "https://github.com/Real-Dev-Squad/website-static/pull/48", diff_url: "https://github.com/Real-Dev-Squad/website-static/pull/48.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-static/pull/48.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-static/pull/48.patch", }, body: "Adding info and image to member's page", performed_via_github_app: null, - score: 1 + score: 1, }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/72", @@ -242,7 +242,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "open", @@ -265,7 +265,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, assignees: [ { @@ -286,8 +286,8 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false - } + site_admin: false, + }, ], milestone: null, comments: 0, @@ -301,11 +301,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/72", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/72.patch", }, body: "Products api \r\nget /crypto/products\r\nget /crypto/products/id\r\npost /crypto/products body:{data}\r\n\r\nCrypto user transaction will be done in next pr\r\n ", performed_via_github_app: null, - score: 1 + score: 1, }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-crypto/issues/34", @@ -336,7 +336,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "closed", @@ -355,21 +355,21 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-crypto/pulls/34", html_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34", diff_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-crypto/pull/34.patch", }, body: "Changed CSS of transactionCard .\r\nChanged Coin color.\r\nOther minor changes\r\n", performed_via_github_app: null, - score: 1 - } - ] - } + score: 1, + }, + ], + }, }, userWithNoPrs: { data: { total_count: 0, incomplete_results: false, - items: [] - } + items: [], + }, }, userNoTask: { data: { @@ -405,7 +405,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "closed", @@ -424,11 +424,11 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/145", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/145.patch", }, body: "", performed_via_github_app: null, - score: 1 + score: 1, }, { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/83", @@ -459,7 +459,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [], state: "open", @@ -482,7 +482,7 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false + site_admin: false, }, assignees: [ { @@ -503,8 +503,8 @@ module.exports = () => { events_url: "https://api.github.com/users/prakashchoudhary07/events{/privacy}", received_events_url: "https://api.github.com/users/prakashchoudhary07/received_events", type: "User", - site_admin: false - } + site_admin: false, + }, ], milestone: null, comments: 0, @@ -518,14 +518,14 @@ module.exports = () => { url: "https://api.github.com/repos/Real-Dev-Squad/website-backend/pulls/83", html_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83", diff_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.diff", - patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch" + patch_url: "https://github.com/Real-Dev-Squad/website-backend/pull/83.patch", }, body: "", performed_via_github_app: null, - score: 1 - } - ] - } - } + score: 1, + }, + ], + }, + }, }; }; diff --git a/test/fixtures/currencies/currencies.js b/test/fixtures/currencies/currencies.js index 5c42f5ff1..97fa7460f 100644 --- a/test/fixtures/currencies/currencies.js +++ b/test/fixtures/currencies/currencies.js @@ -10,10 +10,10 @@ const { DINERO, NEELAM } = require("../../../constants/wallets"); module.exports = { default: { [DINERO]: 1000, - [NEELAM]: 2 + [NEELAM]: 2, }, modified: { [DINERO]: 2000, - [NEELAM]: 0 - } + [NEELAM]: 0, + }, }; diff --git a/test/fixtures/discordResponse/discord-response.js b/test/fixtures/discordResponse/discord-response.js index a46d46ae0..7e61f26a4 100644 --- a/test/fixtures/discordResponse/discord-response.js +++ b/test/fixtures/discordResponse/discord-response.js @@ -17,10 +17,10 @@ const getDiscordMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: "", @@ -40,10 +40,10 @@ const getDiscordMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: "", @@ -63,11 +63,11 @@ const getDiscordMembers = [ avatar: "56yu6567uuju7636w4e6yr7e9utbw8r4", // avatar hash discriminator: "44551", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false - } + deaf: false, + }, ]; const usersFromRds = [ @@ -81,8 +81,8 @@ const usersFromRds = [ discordId: "123456789098765432", roles: { in_discord: false, - archived: false - } + archived: false, + }, }, { username: "nonArchivedAndInDiscord", @@ -94,8 +94,8 @@ const usersFromRds = [ discordId: "12345678909867666", roles: { in_discord: false, - archived: false - } + archived: false, + }, }, { username: "archivedAndInDiscord", @@ -107,8 +107,8 @@ const usersFromRds = [ discordId: "12345678909867666", roles: { in_discord: true, - archived: true - } + archived: true, + }, }, { username: "archivedAndNotInDiscord", @@ -120,8 +120,8 @@ const usersFromRds = [ discordId: "90438342", roles: { in_discord: true, - archived: true - } + archived: true, + }, }, { username: "nonArchivedAndNotInDiscord", @@ -133,19 +133,19 @@ const usersFromRds = [ discordId: "457298342", roles: { in_discord: false, - archived: false + archived: false, }, - id: "nonArchivedAndNotInDiscord" - } + id: "nonArchivedAndNotInDiscord", + }, ]; const updatedNicknameResponse = { userAffected: { userId: "X0H3paYveEWh7Q2fPhor", username: "test-name-007", - discordId: "1123566257019568232" + discordId: "1123566257019568232", }, - message: "User nickname changed successfully" + message: "User nickname changed successfully", }; const getOnboarding31DPlusMembers = [ @@ -167,10 +167,10 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: "", @@ -190,10 +190,10 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e4utbw8r4", // avatar hash discriminator: "4455", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: "", @@ -213,10 +213,10 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e9utbw8r4", // avatar hash discriminator: "44551", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: "", @@ -237,16 +237,16 @@ const getOnboarding31DPlusMembers = [ avatar: "56yu6567uuju7636w4e6yr7e9utbw8r4", // avatar hash discriminator: "4451", // 4-digit discord-tag public_flags: 0, - avatar_decoration: null + avatar_decoration: null, }, mute: false, - deaf: false - } + deaf: false, + }, ]; module.exports = { getDiscordMembers, usersFromRds, updatedNicknameResponse, - getOnboarding31DPlusMembers + getOnboarding31DPlusMembers, }; diff --git a/test/fixtures/discordactions/discordactions.js b/test/fixtures/discordactions/discordactions.js index 335400a1e..0ef3c5647 100644 --- a/test/fixtures/discordactions/discordactions.js +++ b/test/fixtures/discordactions/discordactions.js @@ -3,48 +3,48 @@ const groupData = [ { rolename: "Group 2", roleid: "2" }, { rolename: "Group 3", roleid: "3" }, { rolename: "admin", roleid: "4" }, - { rolename: "group-test", roleid: "5" } + { rolename: "group-test", roleid: "5" }, ]; const groupIdle7d = { rolename: "group-idle-7d+", roleid: 4, createdBy: "1dad23q23j131j" }; const roleData = { roleid: "test-role-id", - userid: "test-user-id" + userid: "test-user-id", }; const requestRoleData = { - rolename: "test-role" + rolename: "test-role", }; const existingRole = { roleData: { roleid: "test-role-id", userid: "test-user-id" }, - wasSuccess: false + wasSuccess: false, }; const roleDataFromDiscord = { roles: [ { id: "test-role-id", - name: "test-role-name" + name: "test-role-name", }, { id: "test-role-id1", - name: "Group 2" - } - ] + name: "Group 2", + }, + ], }; const memberGroupData = [ { roleid: "1234", userid: "12356" }, { roleid: "12567", userid: "12367" }, - { roleid: "12564", userid: "12350" } + { roleid: "12564", userid: "12350" }, ]; const groupOnboarding31dPlus = { rolename: "group-onboarding-31d+", roleid: "11334336", - createdBy: "1dad23q23j131j" + createdBy: "1dad23q23j131j", }; module.exports = { @@ -55,5 +55,5 @@ module.exports = { requestRoleData, groupIdle7d, roleDataFromDiscord, - groupOnboarding31dPlus + groupOnboarding31dPlus, }; diff --git a/test/fixtures/events/event-codes.js b/test/fixtures/events/event-codes.js index 7d037bcab..1d164335b 100644 --- a/test/fixtures/events/event-codes.js +++ b/test/fixtures/events/event-codes.js @@ -7,21 +7,21 @@ module.exports = () => { event_id: "64d4eeb24467618438785156", code: "satyam75", role: "maven", - id: "3042c55c-89ad-4273-b553-d65b203ea251" + id: "3042c55c-89ad-4273-b553-d65b203ea251", }, { event_id: "64d4eeb24467618438785156", code: "sanket75", role: "maven", - id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd" + id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd", }, { event_id: "64d4eeb24467618438785156", code: "prerana75", role: "maven", - id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a" - } - ] + id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a", + }, + ], }, { data: [ @@ -29,63 +29,63 @@ module.exports = () => { event_id: "64d4eeb24467618438785156", code: "satyam75", role: "maven", - id: "3042c55c-89ad-4273-b553-d65b203ea251" + id: "3042c55c-89ad-4273-b553-d65b203ea251", }, { event_id: "64d4eeb24467618438785156", code: "sanket75", role: "maven", - id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd" + id: "4c9b0986-a9e9-4ad7-985f-c542e88563bd", }, { event_id: "64d4eeb24467618438785156", code: "prerana75", role: "maven", - id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a" + id: "4af0b60d-5f10-4f79-b2ac-1dcf68b6332a", }, { event_id: "64d4eeb24467618438785156", code: "zomato75", role: "maven", - id: "9dc84ef2-033d-4e0f-aabe-ca2cc6ae768f" + id: "9dc84ef2-033d-4e0f-aabe-ca2cc6ae768f", }, { event_id: "64d4eeb24467618438785156", code: "swiggy75", role: "maven", - id: "91a3d8e6-7ac7-4662-8a66-30e044ffd180" + id: "91a3d8e6-7ac7-4662-8a66-30e044ffd180", }, { event_id: "64d4eeb24467618438785156", code: "paytm75", role: "maven", - id: "cdddf717-7921-441b-8e75-745f9578a5a7" + id: "cdddf717-7921-441b-8e75-745f9578a5a7", }, { event_id: "64d4eeb24467618438785156", code: "paytm75", role: "maven", - id: "81b84e08-0769-4d4c-8439-f28d632256f4" + id: "81b84e08-0769-4d4c-8439-f28d632256f4", }, { event_id: "64d4eeb24467618438785156", code: "cred75", role: "maven", - id: "d6274e0a-5368-4d4a-a635-a1c1e8728ef9" + id: "d6274e0a-5368-4d4a-a635-a1c1e8728ef9", }, { event_id: "64d4eeb24467618438785156", code: "cred75", role: "maven", - id: "97a7f8c6-882b-4760-901a-3247bd3ae167" + id: "97a7f8c6-882b-4760-901a-3247bd3ae167", }, { event_id: "64d4eeb24467618438785156", code: "oppo75", role: "maven", - id: "90bf6af3-08c6-42c1-b888-2a332f5f8e67" - } - ] - } + id: "90bf6af3-08c6-42c1-b888-2a332f5f8e67", + }, + ], + }, ]; }; diff --git a/test/fixtures/events/events.js b/test/fixtures/events/events.js index 66b10e245..abfd2de3b 100644 --- a/test/fixtures/events/events.js +++ b/test/fixtures/events/events.js @@ -14,7 +14,7 @@ module.exports = () => { customer: "627cdddff2e4e30487862ad1", customer_id: "6407de59edc7c8f3674c0d12", app_id: "6407de59edc7c8f3674c0d13", - recording_info: null + recording_info: null, }, { description: "The RDS live", @@ -39,11 +39,11 @@ module.exports = () => { "81b84e08-0769-4d4c-8439-f28d632256f4", "d6274e0a-5368-4d4a-a635-a1c1e8728ef9", "97a7f8c6-882b-4760-901a-3247bd3ae167", - "90bf6af3-08c6-42c1-b888-2a332f5f8e67" - ] - } + "90bf6af3-08c6-42c1-b888-2a332f5f8e67", + ], + }, }, - peers: ["11c33e90-42d9-4db3-9d06-96d0a2f7de1e"] - } + peers: ["11c33e90-42d9-4db3-9d06-96d0a2f7de1e"], + }, ]; }; diff --git a/test/fixtures/events/peers.js b/test/fixtures/events/peers.js index e117597e0..eccc6e2e2 100644 --- a/test/fixtures/events/peers.js +++ b/test/fixtures/events/peers.js @@ -6,7 +6,7 @@ const eventOnePeerData = { name: "Satyam Bajpai", eventId: event1Data.room_id, role: "guest", - joinedAt: new Date() + joinedAt: new Date(), }; module.exports = { eventOnePeerData }; diff --git a/test/fixtures/external-accounts/external-accounts.js b/test/fixtures/external-accounts/external-accounts.js index 7cf65a856..86a061e10 100644 --- a/test/fixtures/external-accounts/external-accounts.js +++ b/test/fixtures/external-accounts/external-accounts.js @@ -9,8 +9,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: 1674041460211 - } + expiry: 1674041460211, + }, }, { // Bad Data @@ -22,8 +22,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: 1674041460211 - } + expiry: 1674041460211, + }, }, { type: "discord", @@ -34,8 +34,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: Date.now() + 600000 - } + expiry: Date.now() + 600000, + }, }, { type: "discord", @@ -46,8 +46,8 @@ module.exports = () => { userAvatar: "", discordId: "", discordJoinedAt: "", - expiry: Date.now() - 600000 - } - } + expiry: Date.now() - 600000, + }, + }, ]; }; diff --git a/test/fixtures/featureFlag/featureFlag.js b/test/fixtures/featureFlag/featureFlag.js index 013dfaca8..50aef0840 100644 --- a/test/fixtures/featureFlag/featureFlag.js +++ b/test/fixtures/featureFlag/featureFlag.js @@ -4,8 +4,8 @@ module.exports = () => { name: "Test-feature", title: "Test", config: { - enabled: true - } - } + enabled: true, + }, + }, ]; }; diff --git a/test/fixtures/goals/Token.js b/test/fixtures/goals/Token.js index 943b9d634..08875ccfc 100644 --- a/test/fixtures/goals/Token.js +++ b/test/fixtures/goals/Token.js @@ -3,7 +3,7 @@ const GET_OR_CREATE_GOAL_USER = { json: () => Promise.resolve({ id: "123456", - data: { attributes: { rds_id: "134556", token: "WHhHhWHu9ijHjkKhdbvFFhbnhCj" } } - }) + data: { attributes: { rds_id: "134556", token: "WHhHhWHu9ijHjkKhdbvFFhbnhCj" } }, + }), }; module.exports = { GET_OR_CREATE_GOAL_USER }; diff --git a/test/fixtures/issues/issues.js b/test/fixtures/issues/issues.js index 3eeeb7867..bb08b1411 100644 --- a/test/fixtures/issues/issues.js +++ b/test/fixtures/issues/issues.js @@ -27,7 +27,7 @@ const issuesData = { events_url: "https://api.github.com/users/SanketDhabarde/events{/privacy}", received_events_url: "https://api.github.com/users/SanketDhabarde/received_events", type: "User", - site_admin: false + site_admin: false, }, labels: [ { @@ -37,8 +37,8 @@ const issuesData = { name: "live-site", color: "FA3DCD", default: false, - description: "" - } + description: "", + }, ], state: "open", locked: false, @@ -60,7 +60,7 @@ const issuesData = { events_url: "https://api.github.com/users/SanketDhabarde/events{/privacy}", received_events_url: "https://api.github.com/users/SanketDhabarde/received_events", type: "User", - site_admin: false + site_admin: false, }, assignees: [ { @@ -81,8 +81,8 @@ const issuesData = { events_url: "https://api.github.com/users/SanketDhabarde/events{/privacy}", received_events_url: "https://api.github.com/users/SanketDhabarde/received_events", type: "User", - site_admin: false - } + site_admin: false, + }, ], milestone: null, comments: 0, @@ -102,12 +102,12 @@ const issuesData = { confused: 0, heart: 0, rocket: 0, - eyes: 0 + eyes: 0, }, timeline_url: "https://api.github.com/repos/Real-Dev-Squad/website-www/issues/679/timeline", performed_via_github_app: null, state_reason: null, - score: 1 + score: 1, }; const issuesHtmlUrl = "https://github.com/Real-Dev-Squad/website-www/issues/679"; diff --git a/test/fixtures/logs/archievedUsers.js b/test/fixtures/logs/archievedUsers.js index 7dc3e9ebf..27f935d0c 100644 --- a/test/fixtures/logs/archievedUsers.js +++ b/test/fixtures/logs/archievedUsers.js @@ -11,14 +11,14 @@ export const archivedUserDetailsModal = [ in_discord: true, super_user: false, member: true, - archived: false - } - } + archived: false, + }, + }, }, timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000 - } + _nanoseconds: 912000000, + }, }, { type: "archived-details", @@ -32,14 +32,14 @@ export const archivedUserDetailsModal = [ in_discord: true, super_user: false, member: true, - archived: false - } - } + archived: false, + }, + }, }, timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000 - } + _nanoseconds: 912000000, + }, }, { type: "archived-details", @@ -53,13 +53,13 @@ export const archivedUserDetailsModal = [ in_discord: true, super_user: false, member: true, - archived: false - } - } + archived: false, + }, + }, }, timestamp: { _seconds: 1657193216, - _nanoseconds: 912000000 - } - } + _nanoseconds: 912000000, + }, + }, ]; diff --git a/test/fixtures/logs/extensionRequests.js b/test/fixtures/logs/extensionRequests.js index 16fde62ec..af8c56f54 100644 --- a/test/fixtures/logs/extensionRequests.js +++ b/test/fixtures/logs/extensionRequests.js @@ -4,69 +4,69 @@ export const extensionRequestLogs = [ extensionRequestId: "y79PXir0s82qNAzeIn8S", userId: "XBucw7nHW1wOxdWrmLVa", taskId: "mZB0akqPUa1GQQdrgsx7", - username: "joygupta" + username: "joygupta", }, type: "extensionRequests", body: { - status: "APPROVED" + status: "APPROVED", }, timestamp: { _seconds: 1695832409, - _nanoseconds: 947000000 - } + _nanoseconds: 947000000, + }, }, { meta: { extensionRequestId: "y79PXir0s82qNAzeIn8S", userId: "XBucw7nHW1wOxdWrmLVa", taskId: "mZB0akqPUa1GQQdrgsx7", - username: "joygupta" + username: "joygupta", }, type: "extensionRequests", body: { - status: "DENIED" + status: "DENIED", }, timestamp: { _seconds: 1695859014, - _nanoseconds: 252000000 - } + _nanoseconds: 252000000, + }, }, { meta: { taskId: "mZB0akqPUa1GQQdrgsx7", createdBy: "XBucw7nHW1wOxdWrmLVa", - username: "joygupta" + username: "joygupta", }, body: { assignee: "XBucw7nHW1wOxdWrmLVa", extensionRequestId: "y79PXir0s82qNAzeIn8S", oldEndsOn: 1707264000, newEndsOn: 1706918400, - status: "PENDING" + status: "PENDING", }, type: "extensionRequests", timestamp: { _seconds: 1695832836, - _nanoseconds: 401000000 - } + _nanoseconds: 401000000, + }, }, { meta: { taskId: "mZB0akqPUa1GQQdrgsx7", createdBy: "XBucw7nHW1wOxdWrmLVa", - username: "joygupta" + username: "joygupta", }, body: { assignee: "XBucw7nHW1wOxdWrmLVa", oldTitle: "Hello World", newTitle: "Hello JS", extensionRequestId: "y79PXir0s82qNAzeIn8S", - status: "PENDING" + status: "PENDING", }, type: "extensionRequests", timestamp: { _seconds: 1695832836, - _nanoseconds: 401000000 - } - } + _nanoseconds: 401000000, + }, + }, ]; diff --git a/test/fixtures/logs/requests.js b/test/fixtures/logs/requests.js index bb959e7bb..c02739524 100644 --- a/test/fixtures/logs/requests.js +++ b/test/fixtures/logs/requests.js @@ -4,7 +4,7 @@ export const requestsLogs = [ createdAt: 1709175284035, createdBy: "iODXB6ns8jaZB9p0XlBw", requestId: "CNExxpR1F4UPbtYIpxFP", - action: "create" + action: "create", }, type: "REQUEST_CREATED", body: { @@ -16,19 +16,19 @@ export const requestsLogs = [ state: "PENDING", type: "OOO", message: "Out of office for personal reasons.", - updatedAt: 1709175282967 + updatedAt: 1709175282967, }, timestamp: { _seconds: 1709175284, - _nanoseconds: 35000000 - } + _nanoseconds: 35000000, + }, }, { meta: { createdAt: 1709170848580, createdBy: "iODXB6ns8jaZB9p0XlBw", requestId: "K7ioni8arDgRCBAWwYxp", - action: "create" + action: "create", }, type: "REQUEST_CREATED", body: { @@ -40,11 +40,11 @@ export const requestsLogs = [ state: "PENDING", type: "OOO", message: "Out of office for personal reasons.", - updatedAt: 1709170848318 + updatedAt: 1709170848318, }, timestamp: { _seconds: 1709170848, - _nanoseconds: 580000000 - } - } + _nanoseconds: 580000000, + }, + }, ]; diff --git a/test/fixtures/logs/tasks.js b/test/fixtures/logs/tasks.js index f0363bbf8..163efffaa 100644 --- a/test/fixtures/logs/tasks.js +++ b/test/fixtures/logs/tasks.js @@ -3,54 +3,54 @@ export const taskLogs = [ meta: { userId: "aaL1MXrpmnUNfLkhgXRj", taskId: "P8ZZX2ef8heTs0erA6a8", - username: "shubham-sharma" + username: "shubham-sharma", }, type: "task", body: { new: { - status: "NEEDS_REVIEW" + status: "NEEDS_REVIEW", }, - subType: "update" + subType: "update", }, timestamp: { _seconds: 1710731591, - _nanoseconds: 323000000 - } + _nanoseconds: 323000000, + }, }, { meta: { userId: "aaL1MXrpmnUNfLkhgXRj", taskId: "P8ZZX2ef8heTs0erA6a8", - username: "shubham-sharma" + username: "shubham-sharma", }, type: "task", body: { new: { - status: "IN_PROGRESS" + status: "IN_PROGRESS", }, - subType: "update" + subType: "update", }, timestamp: { _seconds: 1710731469, - _nanoseconds: 274000000 - } + _nanoseconds: 274000000, + }, }, { meta: { userId: "aaL1MXrpmnUNfLkhgXRj", taskId: "P8ZZX2ef8heTs0erA6a8", - username: "shubham-sharma" + username: "shubham-sharma", }, type: "task", body: { new: { - status: "BLOCKED" + status: "BLOCKED", }, - subType: "update" + subType: "update", }, timestamp: { _seconds: 1710731408, - _nanoseconds: 684000000 - } - } + _nanoseconds: 684000000, + }, + }, ]; diff --git a/test/fixtures/profileDiffs/profileDiffs.js b/test/fixtures/profileDiffs/profileDiffs.js index 70efc7b6d..e530409a3 100644 --- a/test/fixtures/profileDiffs/profileDiffs.js +++ b/test/fixtures/profileDiffs/profileDiffs.js @@ -15,7 +15,7 @@ module.exports = () => { twitter_id: "ankur909", instagram_id: "", website: "", - message: "" - } + message: "", + }, ]; }; diff --git a/test/fixtures/progress/progresses.js b/test/fixtures/progress/progresses.js index 736a04041..abcb80677 100644 --- a/test/fixtures/progress/progresses.js +++ b/test/fixtures/progress/progresses.js @@ -2,7 +2,7 @@ const standupProgressDay1 = { type: "user", completed: "Working on a backend Go project", planned: "Implement error handling for API endpoints", - blockers: "Waiting for database access credentials" + blockers: "Waiting for database access credentials", }; const incompleteProgress = [ @@ -11,33 +11,33 @@ const incompleteProgress = [ payload: { completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" - } + blockers: "Waiting for feedback from the code review", + }, }, { missingField: "completed", payload: { type: "user", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" - } + blockers: "Waiting for feedback from the code review", + }, }, { missingField: "planned", payload: { type: "user", completed: "Implemented caching mechanism for frequent API requests", - blockers: "Waiting for feedback from the code review" - } + blockers: "Waiting for feedback from the code review", + }, }, { missingField: "blockers", payload: { type: "user", completed: "Implemented caching mechanism for frequent API requests", - planned: "Refactor code to follow coding best practices" - } - } + planned: "Refactor code to follow coding best practices", + }, + }, ]; const stubbedModelProgressData = (userId, createdAt, date) => { @@ -48,7 +48,7 @@ const stubbedModelProgressData = (userId, createdAt, date) => { type: "user", completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" + blockers: "Waiting for feedback from the code review", }; }; @@ -58,7 +58,7 @@ const taskProgressDay1 = (taskId) => { type: "task", completed: "Working on a backend Go Task", planned: "Implement error handling for API endpoints", - blockers: "Waiting for database access credentials" + blockers: "Waiting for database access credentials", }; }; @@ -69,8 +69,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" - } + blockers: "Waiting for feedback from the code review", + }, }, { missingField: "completed", @@ -78,8 +78,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, type: "task", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" - } + blockers: "Waiting for feedback from the code review", + }, }, { missingField: "planned", @@ -87,8 +87,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, type: "task", completed: "Implemented caching mechanism for frequent API requests", - blockers: "Waiting for feedback from the code review" - } + blockers: "Waiting for feedback from the code review", + }, }, { missingField: "blockers", @@ -96,8 +96,8 @@ const incompleteTaskProgress = (taskId) => [ taskId, type: "task", completed: "Implemented caching mechanism for frequent API requests", - planned: "Refactor code to follow coding best practices" - } + planned: "Refactor code to follow coding best practices", + }, }, { missingField: "taskId", @@ -105,9 +105,9 @@ const incompleteTaskProgress = (taskId) => [ type: "task", completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" - } - } + blockers: "Waiting for feedback from the code review", + }, + }, ]; const stubbedModelTaskProgressData = (userId, taskId, createdAt, date) => { @@ -119,7 +119,7 @@ const stubbedModelTaskProgressData = (userId, taskId, createdAt, date) => { type: "task", completed: "Implemented caching mechanism for frequent API requests", planned: "Refactor code to follow coding best practices", - blockers: "Waiting for feedback from the code review" + blockers: "Waiting for feedback from the code review", }; }; @@ -129,5 +129,5 @@ module.exports = { stubbedModelProgressData, taskProgressDay1, incompleteTaskProgress, - stubbedModelTaskProgressData + stubbedModelTaskProgressData, }; diff --git a/test/fixtures/pullrequests/pullrequests.js b/test/fixtures/pullrequests/pullrequests.js index 681522cee..fd9aef059 100644 --- a/test/fixtures/pullrequests/pullrequests.js +++ b/test/fixtures/pullrequests/pullrequests.js @@ -8,7 +8,7 @@ const filteredPRs = [ repository: "website-my", url: "https://github.com/Real-Dev-Squad/website-my/pull/407", labels: ["UX", "UI"], - assignees: ["RitikJaiswal75"] + assignees: ["RitikJaiswal75"], }, { title: "Added a link on logo ", @@ -19,7 +19,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/465", labels: [], - assignees: [] + assignees: [], }, { title: "nuke: links to crypto site", @@ -30,7 +30,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/473", labels: [], - assignees: [] + assignees: [], }, { title: "[Ember-Migration] Embroider Setup", @@ -41,7 +41,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/490", labels: ["ember-migration", "config"], - assignees: ["rohan09-raj"] + assignees: ["rohan09-raj"], }, { title: "Added task-dependency data model", @@ -52,7 +52,7 @@ const filteredPRs = [ repository: "website-data-models", url: "https://github.com/Real-Dev-Squad/website-data-models/pull/46", labels: ["documentation"], - assignees: ["vinit717"] + assignees: ["vinit717"], }, { title: "[Live-Site] create a modal for joining the live session", @@ -63,7 +63,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/477", labels: ["live-site"], - assignees: ["SanketDhabarde"] + assignees: ["SanketDhabarde"], }, { title: "Set github actions timeout to 5 mins", @@ -74,7 +74,7 @@ const filteredPRs = [ repository: "website-backend", url: "https://github.com/Real-Dev-Squad/website-backend/pull/1117", labels: [], - assignees: [] + assignees: [], }, { title: "create a social share image for realdevsquad.com/join", @@ -85,7 +85,7 @@ const filteredPRs = [ repository: "website-www", url: "https://github.com/Real-Dev-Squad/website-www/pull/487", labels: [], - assignees: ["Pratiyushkumar"] + assignees: ["Pratiyushkumar"], }, { title: "Sync dev to main", @@ -96,7 +96,7 @@ const filteredPRs = [ repository: "website-status", url: "https://github.com/Real-Dev-Squad/website-status/pull/586", labels: [], - assignees: [] + assignees: [], }, { title: "Task details page", @@ -107,28 +107,28 @@ const filteredPRs = [ repository: "website-status", url: "https://github.com/Real-Dev-Squad/website-status/pull/341", labels: ["feature task"], - assignees: ["kotesh-arya"] - } + assignees: ["kotesh-arya"], + }, ]; const prDates = [ { pull_request: { - merged_at: "2023-08-18T11:56:45Z" - } + merged_at: "2023-08-18T11:56:45Z", + }, }, { pull_request: { - merged_at: "2023-08-18T11:56:45Z" - } + merged_at: "2023-08-18T11:56:45Z", + }, }, { pull_request: { - merged_at: "2023-08-18T11:56:45Z" - } - } + merged_at: "2023-08-18T11:56:45Z", + }, + }, ]; module.exports = { filteredPRs, - prDates + prDates, }; diff --git a/test/fixtures/qrCodeAuth/qrCodeAuth.js b/test/fixtures/qrCodeAuth/qrCodeAuth.js index 6a08d761c..35e078bf7 100644 --- a/test/fixtures/qrCodeAuth/qrCodeAuth.js +++ b/test/fixtures/qrCodeAuth/qrCodeAuth.js @@ -9,8 +9,8 @@ const userDeviceInfoDataArray = [ { user_id: "TEST_USER_ID", device_info: "TEST_DEVICE_INFO", - device_id: "TEST_DEVICE_ID" - } + device_id: "TEST_DEVICE_ID", + }, ]; const userDeviceInfoIdKeys = ["user_id", "device_info", "device_id"]; diff --git a/test/fixtures/recruiter/recruiter.js b/test/fixtures/recruiter/recruiter.js index a3c31d7d2..4fa9a009e 100644 --- a/test/fixtures/recruiter/recruiter.js +++ b/test/fixtures/recruiter/recruiter.js @@ -14,8 +14,8 @@ const recruiterDataArray = [ reason: "Test", email: "abc@gmail.com", currency: "$", - package: 100000 - } + package: 100000, + }, ]; const recruiterWithIdKeys = [ @@ -29,7 +29,7 @@ const recruiterWithIdKeys = [ "package", "timestamp", "id", - "username" + "username", ]; module.exports = { recruiterDataArray, recruiterWithIdKeys }; diff --git a/test/fixtures/standup/standup.js b/test/fixtures/standup/standup.js index 291be62a1..5e9c95967 100644 --- a/test/fixtures/standup/standup.js +++ b/test/fixtures/standup/standup.js @@ -4,12 +4,12 @@ module.exports = () => { timestamp: "2023-04-20T16:23:58Z", yesterday: "Did something", today: "will do something", - blockers: "nothing" + blockers: "nothing", }, { yesterday: "Did something", today: "will do something", - blockers: "nothing" - } + blockers: "nothing", + }, ]; }; diff --git a/test/fixtures/task-requests/task-requests.js b/test/fixtures/task-requests/task-requests.js index e8619de6e..8190087a9 100644 --- a/test/fixtures/task-requests/task-requests.js +++ b/test/fixtures/task-requests/task-requests.js @@ -6,7 +6,7 @@ const validAssignmentRequest = { externalIssueHtmlUrl: "https://github.com/Real-Dev-Squad/website-status/issues/1564672", userId: "7890", proposedDeadline: 1243455234, - proposedStartDate: 1243405234 + proposedStartDate: 1243405234, }; const { taskId: tarTaskId, ...assignmentReqWithoutTaskId } = validAssignmentRequest; const { userId: tarUserId, ...assignmentReqWithoutUserId } = validAssignmentRequest; @@ -19,7 +19,7 @@ const validCreationRequest = { requestType: "CREATION", userId: "7890", proposedDeadline: 1243455234, - proposedStartDate: 1243405234 + proposedStartDate: 1243405234, }; const creationReqWithTaskId = { ...validCreationRequest, taskId: "1234" }; const { userId: tcrUserId, ...creationReqWithoutUserId } = validCreationRequest; @@ -27,7 +27,7 @@ const { proposedDeadline: tcrProposedDeadline, ...creationReqWithoutProposedDead const { externalIssueUrl: tcrExternalIssueUrl, ...creationReqWithoutExtIssueId } = validCreationRequest; const creationReqWithDescription = { ...validCreationRequest, description: "something something" }; const invalidRequest = { - hello: "world" + hello: "world", }; const taskRequestData = { userId: "user123", @@ -37,7 +37,7 @@ const taskRequestData = { requestType: TASK_REQUEST_TYPE.CREATION, externalIssueUrl: "https://api.github.com/repos/Real-Dev-Squad/website-backend/issues/1599", externalIssueHtmlUrl: "https://github.com/Real-Dev-Squad/website-backend/issues/1599", - markdownEnabled: false + markdownEnabled: false, }; const existingTaskRequest = { requestors: ["user123"], @@ -54,23 +54,23 @@ const existingTaskRequest = { proposedDeadline: 1697452226789, proposedStartDate: 1697452226789, description: "Task description", - status: "PENDING" - } + status: "PENDING", + }, ], createdBy: "testUser", createdAt: 1697452229369, lastModifiedBy: "testUser", - lastModifiedAt: 1697452229369 + lastModifiedAt: 1697452229369, }; const existingOldTaskRequest = { requestors: ["user123"], status: "PENDING", - taskId: "task123" + taskId: "task123", }; const existingOldTaskRequestWithMultipleUsers = { requestors: ["user123", "user456"], status: "PENDING", - taskId: "task456" + taskId: "task456", }; module.exports = { existingOldTaskRequest, @@ -89,5 +89,5 @@ module.exports = { creationReqWithoutExtIssueId, creationReqWithDescription, invalidRequest, - existingOldTaskRequestWithMultipleUsers + existingOldTaskRequestWithMultipleUsers, }; diff --git a/test/fixtures/tasks/multiple-extension-requests-tasks.js b/test/fixtures/tasks/multiple-extension-requests-tasks.js index f13164371..97f7bdaf9 100644 --- a/test/fixtures/tasks/multiple-extension-requests-tasks.js +++ b/test/fixtures/tasks/multiple-extension-requests-tasks.js @@ -14,7 +14,7 @@ module.exports = () => { assignee: user.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task 2", @@ -26,7 +26,7 @@ module.exports = () => { assignee: user.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task 3", @@ -42,7 +42,7 @@ module.exports = () => { isNoteworthy: false, assignee: appOwner.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task 4", @@ -54,7 +54,7 @@ module.exports = () => { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } - } + lossRate: { [DINERO]: 1 }, + }, ]; }; diff --git a/test/fixtures/tasks/tasks.js b/test/fixtures/tasks/tasks.js index 48b75a43a..1d5efa978 100644 --- a/test/fixtures/tasks/tasks.js +++ b/test/fixtures/tasks/tasks.js @@ -19,7 +19,7 @@ module.exports = () => { status: "IN_PROGRESS", percentCompleted: 50, endsOn: 1647172800, // 13 march - startedOn: 1644753600 // 13 feb + startedOn: 1644753600, // 13 feb }, { title: "Overdue task 2", @@ -32,7 +32,7 @@ module.exports = () => { status: "ASSIGNED", percentCompleted: 50, endsOn: 1647172800, // 13 march - startedOn: 1644753600 // 13 feb + startedOn: 1644753600, // 13 feb }, { title: "Testing purpose", @@ -45,7 +45,7 @@ module.exports = () => { status: "BLOCKED", percentCompleted: 50, endsOn: 1647172800, - startedOn: 1644753600 + startedOn: 1644753600, }, { title: "check is task form is working", @@ -58,7 +58,7 @@ module.exports = () => { endsOn: 1650032259, startedOn: 1644753600, createdAt: 1644753600, - updatedAt: 1644753600 + updatedAt: 1644753600, }, { title: "Test task", @@ -76,7 +76,7 @@ module.exports = () => { isNoteworthy: true, assignee: false, createdAt: 1644753600, - updatedAt: 1644753600 + updatedAt: 1644753600, }, { title: "Test task-dependency", @@ -91,7 +91,7 @@ module.exports = () => { isNoteworthy: true, assignee: false, createdAt: 1644753600, - updatedAt: 1644753600 + updatedAt: 1644753600, }, { id: "P86Y1hVrS0zR5ZcVPwLZ", @@ -101,21 +101,21 @@ module.exports = () => { createdBy: "sahsi", lossRate: { dinero: 100, - neelam: 0 + neelam: 0, }, assignee: "narendra", type: "feature", priority: "HIGH", completionAward: { dinero: 1000, - neelam: 0 + neelam: 0, }, title: "Implement user authentication and authorization", status: "IN_PROGRESS", assigneeId: "WbceXEPcohuJ5IxHHecf", dependsOn: [], createdAt: 1644753600, - updatedAt: 1644753600 + updatedAt: 1644753600, }, { id: "P86Y1fsvS0zR5ZcVPwLZ", @@ -125,20 +125,20 @@ module.exports = () => { createdBy: "ramchandra", lossRate: { dinero: 100, - neelam: 0 + neelam: 0, }, assignee: "ravan", type: "feature", priority: "HIGH", completionAward: { dinero: 10000, - neelam: 0 + neelam: 0, }, title: "Undefined status", assigneeId: "WbceXEPcdsuJ5IxHHecf", dependsOn: [], createdAt: 1644753600, - updatedAt: 1644753600 - } + updatedAt: 1644753600, + }, ]; }; diff --git a/test/fixtures/tasks/tasks1.js b/test/fixtures/tasks/tasks1.js index ca48f8eaf..0f5072407 100644 --- a/test/fixtures/tasks/tasks1.js +++ b/test/fixtures/tasks/tasks1.js @@ -19,7 +19,7 @@ module.exports = () => { assignee: appOwner.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true - } + isNoteworthy: true, + }, ]; }; diff --git a/test/fixtures/time/time.js b/test/fixtures/time/time.js index 2f0b19de1..0d957771f 100644 --- a/test/fixtures/time/time.js +++ b/test/fixtures/time/time.js @@ -3,66 +3,66 @@ const admin = require("firebase-admin"); const minutesToMilliseconds = [ { param: 60, - result: 3600000 + result: 3600000, }, { param: 10000000000, - result: 600000000000000 - } + result: 600000000000000, + }, ]; const hoursToMilliseconds = [ { param: 60, - result: 216000000 + result: 216000000, }, { param: 10000000000, - result: 36000000000000000 - } + result: 36000000000000000, + }, ]; const daysToMilliseconds = [ { param: 60, - result: 5184000000 + result: 5184000000, }, { param: 10000000000, - result: 864000000000000000 - } + result: 864000000000000000, + }, ]; const timeInSecondsAfter = [ { param: { - timestamp: 1648370545193 + timestamp: 1648370545193, }, - result: 1648370545 + result: 1648370545, }, { param: { timestamp: 1648370545193, - days: 20 + days: 20, }, - result: 1648370545 + 1728000 - } + result: 1648370545 + 1728000, + }, ]; const timeBeforeHour = [ { param: { timestamp: admin.firestore.Timestamp.fromDate(new Date(1671820200 * 1000)), - hours: 24 + hours: 24, }, - result: admin.firestore.Timestamp.fromDate(new Date(1671733800 * 1000))._seconds + result: admin.firestore.Timestamp.fromDate(new Date(1671733800 * 1000))._seconds, }, { param: { - timestamp: admin.firestore.Timestamp.fromDate(new Date()) + timestamp: admin.firestore.Timestamp.fromDate(new Date()), }, - result: admin.firestore.Timestamp.fromDate(new Date())._seconds - } + result: admin.firestore.Timestamp.fromDate(new Date())._seconds, + }, ]; module.exports = { @@ -70,5 +70,5 @@ module.exports = { hoursToMilliseconds, daysToMilliseconds, timeInSecondsAfter, - timeBeforeHour + timeBeforeHour, }; diff --git a/test/fixtures/trackedProgress/index.js b/test/fixtures/trackedProgress/index.js index 9bc5c5a38..742ba459f 100644 --- a/test/fixtures/trackedProgress/index.js +++ b/test/fixtures/trackedProgress/index.js @@ -3,7 +3,7 @@ const predefinedTrackedProgressDataForUser = { monitored: true, frequency: 1, createdAt: "2023-05-20T03:49:20.298Z", - updatedAt: "2023-05-20T03:49:20.298Z" + updatedAt: "2023-05-20T03:49:20.298Z", }; const predefinedTrackedProgressDataForTask = { @@ -11,22 +11,22 @@ const predefinedTrackedProgressDataForTask = { monitored: true, frequency: 4, createdAt: "2023-05-20T03:49:20.298Z", - updatedAt: "2023-05-20T03:49:20.298Z" + updatedAt: "2023-05-20T03:49:20.298Z", }; const trackedProgressUserDataForPost = { type: "user", - monitored: true + monitored: true, }; const trackedProgressTaskDataForPost = { type: "task", monitored: true, - frequency: 2 + frequency: 2, }; const trackedProgressDataForPatch = { - monitored: false + monitored: false, }; /** @@ -46,5 +46,5 @@ module.exports = { trackedProgressUserDataForPost, trackedProgressTaskDataForPost, trackedProgressDataForPatch, - isISOString + isISOString, }; diff --git a/test/fixtures/user/inDiscord.js b/test/fixtures/user/inDiscord.js index ecc804e89..ac16abf2d 100644 --- a/test/fixtures/user/inDiscord.js +++ b/test/fixtures/user/inDiscord.js @@ -20,10 +20,10 @@ module.exports = () => { accent_color: null, global_name: "Shardul", avatar_decoration_data: null, - banner_color: null + banner_color: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: null, @@ -45,10 +45,10 @@ module.exports = () => { accent_color: null, global_name: "fmk", avatar_decoration_data: null, - banner_color: null + banner_color: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: null, @@ -70,10 +70,10 @@ module.exports = () => { accent_color: null, global_name: "Anirban", avatar_decoration_data: null, - banner_color: null + banner_color: null, }, mute: false, - deaf: false + deaf: false, }, { avatar: null, @@ -95,10 +95,10 @@ module.exports = () => { accent_color: null, global_name: "Anish", avatar_decoration_data: null, - banner_color: null + banner_color: null, }, mute: false, - deaf: false - } + deaf: false, + }, ]; }; diff --git a/test/fixtures/user/join.js b/test/fixtures/user/join.js index f3b2d67b4..173fa36c0 100644 --- a/test/fixtures/user/join.js +++ b/test/fixtures/user/join.js @@ -20,12 +20,12 @@ module.exports = (userId = " ") => { "mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien faucibus et molestie ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor eu augue ut lectus arcu bibendum at", country: "India", intro: { - numberOfHours: 20 + numberOfHours: 20, }, - numberOfHours: 20 + numberOfHours: 20, }, { - data: "invalidData" + data: "invalidData", }, { college: "I work at Tata Consultancy Services", @@ -45,7 +45,7 @@ module.exports = (userId = " ") => { introduction: "mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien faucibus et molestie ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor eu augue ut lectus arcu bibendum at", country: "India", - numberOfHours: 20 + numberOfHours: 20, }, { userId, @@ -66,7 +66,7 @@ module.exports = (userId = " ") => { introduction: "mattis aliquam faucibus purus in massa tempor nec feugiat nisl pretium fusce id velit ut tortor pretium viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare suspendisse sed nisi lacus sed viverra tellus in hac habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper dignissim cras tincidunt lobortis feugiat vivamus at augue eget arcu dictum varius duis at consectetur lorem donec massa sapien faucibus et molestie ac feugiat sed lectus vestibulum mattis ullamcorper velit sed ullamcorper morbi tincidunt ornare massa eget egestas purus viverra accumsan in nisl nisi scelerisque eu ultrices vitae auctor eu augue ut lectus arcu bibendum at", country: "India", - numberOfHours: 20 - } + numberOfHours: 20, + }, ]; }; diff --git a/test/fixtures/user/photo-verification.js b/test/fixtures/user/photo-verification.js index ed670b61e..1950b750e 100644 --- a/test/fixtures/user/photo-verification.js +++ b/test/fixtures/user/photo-verification.js @@ -6,17 +6,17 @@ const userPhotoVerificationData = { approved: true, date: { _seconds: 1686518413, - _nanoseconds: 453000000 - } + _nanoseconds: 453000000, + }, }, profile: { url: "https://res.cloudinary.com/avatars/1234/something.png", approved: false, date: { _seconds: 1686518413, - _nanoseconds: 453000000 - } - } + _nanoseconds: 453000000, + }, + }, }; const newUserPhotoVerificationData = { discordId: "1234567", @@ -26,17 +26,17 @@ const newUserPhotoVerificationData = { approved: false, date: { _seconds: 1686518413, - _nanoseconds: 453000000 - } + _nanoseconds: 453000000, + }, }, profile: { url: "https://cloudinary.example.com/demo.png", approved: false, date: { _seconds: 1686518413, - _nanoseconds: 453000000 - } - } + _nanoseconds: 453000000, + }, + }, }; module.exports = { userPhotoVerificationData, newUserPhotoVerificationData }; diff --git a/test/fixtures/user/user.js b/test/fixtures/user/user.js index 5cc302d94..9903a64af 100644 --- a/test/fixtures/user/user.js +++ b/test/fixtures/user/user.js @@ -27,19 +27,19 @@ module.exports = () => { joined_discord: "2023-01-13T18:21:09.278000+00:00", roles: { member: true, - in_discord: true + in_discord: true, }, tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, status: "active", profileURL: "https://abcde.com", picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", }, incompleteUserDetails: false, - nickname_synced: false + nickname_synced: false, }, { username: "nikhil", @@ -56,9 +56,9 @@ module.exports = () => { email: "abc1@gmail.com", picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", }, - nickname_synced: false + nickname_synced: false, }, { username: "pranavg", @@ -74,13 +74,13 @@ module.exports = () => { phone: "1234567891", email: "pgajjewar@gmail.com", roles: { - restricted: true + restricted: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", }, - nickname_synced: false + nickname_synced: false, }, { username: "sagar", @@ -95,16 +95,16 @@ module.exports = () => { email: "abc@gmail.com", status: "active", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { restricted: false, - app_owner: true + app_owner: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "ankush", @@ -121,17 +121,17 @@ module.exports = () => { joined_discord: "2023-01-13T18:21:09.278000+00:00", status: "idle", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { super_user: true, archived: false, - in_discord: true + in_discord: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "ankita", @@ -146,17 +146,17 @@ module.exports = () => { phone: "1234567890", email: "abc@gmail.com", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, status: "active", roles: { app_owner: true, - archived: true + archived: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "mehul", @@ -170,18 +170,18 @@ module.exports = () => { phone: "1234567891", email: "mehul@gmail.com", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, status: "active", roles: { member: true, archived: false, - in_discord: true + in_discord: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "23ankur", @@ -193,7 +193,7 @@ module.exports = () => { github_id: "ankur1234", github_display_name: "ankur-xyz", phone: "1234567890", - email: "abc@gmail.com" + email: "abc@gmail.com", }, { username: "ritvik", @@ -202,7 +202,7 @@ module.exports = () => { yoe: 1, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", }, incompleteUserDetails: false, status: "active", @@ -216,10 +216,10 @@ module.exports = () => { archived: false, member: true, in_discord: true, - designer: true + designer: true, }, twitter_id: "RitvikJamwal4u", - linkedin_id: "ritvik-jamwal4u" + linkedin_id: "ritvik-jamwal4u", }, { username: "Tanishq", @@ -233,18 +233,18 @@ module.exports = () => { phone: "1234567890", email: "ts@gmail.com", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { member: true, archived: false, in_discord: true, - product_manager: true + product_manager: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "darthvader", @@ -258,16 +258,16 @@ module.exports = () => { phone: "1234567890", email: "dv@gmail.com", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { member: true, - maven: true + maven: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { id: 11, @@ -280,12 +280,12 @@ module.exports = () => { github_id: "testuser1", github_display_name: "Test User", roles: { - member: true + member: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { id: 12, @@ -301,15 +301,15 @@ module.exports = () => { email: "tu@gmail.com", chaincode: "12345", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { - member: true + member: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "ram", @@ -318,7 +318,7 @@ module.exports = () => { yoe: 1, picture: { publicId: "profile/abc/abc", - url: "https://res.cloudinary.com/realdevsquad/image/upload/123.jpg" + url: "https://res.cloudinary.com/realdevsquad/image/upload/123.jpg", }, incompleteUserDetails: false, status: "active", @@ -330,10 +330,10 @@ module.exports = () => { instagram_id: "ramsingh", roles: { archived: true, - member: false + member: false, }, twitter_id: "ramsingh123", - linkedin_id: "ramsingh123" + linkedin_id: "ramsingh123", }, { username: "testuser3", @@ -348,15 +348,15 @@ module.exports = () => { email: "abcd@gmail.com", chaincode: "12345", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { - member: true + member: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, }, { username: "shubham-sigdar", @@ -366,11 +366,11 @@ module.exports = () => { github_display_name: githubUserInfo[1].name, roles: { member: true, - in_discord: true + in_discord: true, }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now() + created_at: Date.now(), }, { username: "satyam-bajpai", @@ -381,11 +381,11 @@ module.exports = () => { roles: { member: false, in_discord: true, - archived: false + archived: false, }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now() + created_at: Date.now(), }, { first_name: "Kotesh", @@ -395,11 +395,11 @@ module.exports = () => { roles: { member: false, in_discord: true, - archived: false + archived: false, }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now() + created_at: Date.now(), }, { first_name: "vinit", @@ -407,11 +407,11 @@ module.exports = () => { github_id: "vinit717", github_display_name: "vinit717", roles: { - in_discord: false + in_discord: false, }, incompleteUserDetails: false, updated_at: Date.now(), - created_at: Date.now() + created_at: Date.now(), }, { username: "Vinayak", @@ -427,17 +427,17 @@ module.exports = () => { email: "abc@gmail.com", status: "active", tokens: { - githubAccessToken: "githubAccessToken" + githubAccessToken: "githubAccessToken", }, roles: { restricted: false, app_owner: true, - archived: true + archived: true, }, picture: { publicId: "profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar", - url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg" - } - } + url: "https://res.cloudinary.com/realdevsquad/image/upload/v1667685133/profile/mtS4DhUvNYsKqI7oCWVB/aenklfhtjldc5ytei3ar.jpg", + }, + }, ]; }; diff --git a/test/fixtures/userBadges/userBadges.js b/test/fixtures/userBadges/userBadges.js index e9f2248ba..cca78af1e 100644 --- a/test/fixtures/userBadges/userBadges.js +++ b/test/fixtures/userBadges/userBadges.js @@ -7,17 +7,17 @@ const userFound = { userExists: true, - userBadges: [{ title: "badgeTitle", description: "badgeDescription" }] + userBadges: [{ title: "badgeTitle", description: "badgeDescription" }], }; const userNotFound = { userExists: false, - userBadges: [] + userBadges: [], }; const badgesEmpty = { userExists: true, - userBadges: [] + userBadges: [], }; module.exports = { userFound, userNotFound, badgesEmpty }; diff --git a/test/fixtures/userDeviceInfo/userDeviceInfo.js b/test/fixtures/userDeviceInfo/userDeviceInfo.js index 6a08d761c..35e078bf7 100644 --- a/test/fixtures/userDeviceInfo/userDeviceInfo.js +++ b/test/fixtures/userDeviceInfo/userDeviceInfo.js @@ -9,8 +9,8 @@ const userDeviceInfoDataArray = [ { user_id: "TEST_USER_ID", device_info: "TEST_DEVICE_INFO", - device_id: "TEST_DEVICE_ID" - } + device_id: "TEST_DEVICE_ID", + }, ]; const userDeviceInfoIdKeys = ["user_id", "device_info", "device_id"]; diff --git a/test/fixtures/userStatus/userStatus.js b/test/fixtures/userStatus/userStatus.js index c5e6fbeb1..733bb73a5 100644 --- a/test/fixtures/userStatus/userStatus.js +++ b/test/fixtures/userStatus/userStatus.js @@ -7,22 +7,22 @@ const userStatusDataForNewUser = { message: "Bad Health", state: "OOO", updatedAt: 1668215609000, - from: 1668215609000 + from: 1668215609000, }, monthlyHours: { updatedAt: 1668215609000, - committed: 40 - } + committed: 40, + }, }; const userStatusDataAfterSignup = { currentStatus: { state: "ONBOARDING" }, - monthlyHours: { committed: 0 } + monthlyHours: { committed: 0 }, }; const userStatusDataAfterFillingJoinSection = { currentStatus: { state: "ONBOARDING" }, - monthlyHours: { committed: 40 } + monthlyHours: { committed: 40 }, }; const oooStatusDataForShortDuration = { @@ -31,12 +31,12 @@ const oooStatusDataForShortDuration = { state: "OOO", updatedAt: 1673893800000, from: 1673893800000, - until: 1674066600000 + until: 1674066600000, }, monthlyHours: { updatedAt: 1668215609000, - committed: 40 - } + committed: 40, + }, }; const userStatusDataForOooState = { currentStatus: { @@ -44,35 +44,35 @@ const userStatusDataForOooState = { message: "Bad Health", updatedAt: 1668211200000, from: 1668211200000, - until: 1668709800000 + until: 1668709800000, }, monthlyHours: { updatedAt: 1668215609000, - committed: 40 - } + committed: 40, + }, }; const idleStatus = { currentStatus: { message: "", state: userState.IDLE, - updatedAt: 1673893800000 + updatedAt: 1673893800000, }, monthlyHours: { updatedAt: 1668215609000, - committed: 40 - } + committed: 40, + }, }; const activeStatus = { currentStatus: { message: "", state: userState.ACTIVE, - updatedAt: 1673893800000 + updatedAt: 1673893800000, }, monthlyHours: { updatedAt: 1668215609000, - committed: 40 - } + committed: 40, + }, }; const generateUserStatusData = (state, updatedAt, from, until = "", message = "") => { @@ -82,8 +82,8 @@ const generateUserStatusData = (state, updatedAt, from, until = "", message = "" message, from, until, - updatedAt - } + updatedAt, + }, }; }; @@ -102,8 +102,8 @@ const generateStatusDataForState = (userId, state) => { from: nowTimeStamp, until, updatedAt: nowTimeStamp, - state - } + state, + }, }; }; @@ -122,8 +122,8 @@ const generateStatusDataForCancelOOO = (userId, state) => { from: nowTimeStamp, until, updatedAt: nowTimeStamp, - state - } + state, + }, }; }; @@ -134,77 +134,77 @@ const getStatusData = () => { futureStatus: { from: today + 1000 * 36 * 60 * 60, state: "IDLE", - updatedAt: today - ONE_DAY_IN_MS + updatedAt: today - ONE_DAY_IN_MS, }, currentStatus: { from: today - ONE_DAY_IN_MS, until: today + 1000 * 36 * 60 * 60, state: "OOO", - updatedAt: today - ONE_DAY_IN_MS - } + updatedAt: today - ONE_DAY_IN_MS, + }, }, { currentStatus: { from: today - ONE_DAY_IN_MS * 2, state: "ACTIVE", - updatedAt: today - ONE_DAY_IN_MS * 2 + updatedAt: today - ONE_DAY_IN_MS * 2, }, futureStatus: { from: today + 1000 * 100 * 60 * 60, until: today + ONE_DAY_IN_MS * 5, state: "OOO", - updatedAt: today - } + updatedAt: today, + }, }, { currentStatus: { from: today - 1000 * 77 * 60 * 60, state: "ACTIVE", - updatedAt: today - 1000 * 77 * 60 * 60 + updatedAt: today - 1000 * 77 * 60 * 60, }, futureStatus: { from: today + 1000 * 36 * 60 * 60, until: today + ONE_DAY_IN_MS * 4, state: "OOO", - updatedAt: today - } + updatedAt: today, + }, }, { currentStatus: { from: today - 1000 * 77 * 60 * 60, state: "IDLE", - updatedAt: today - 1000 * 77 * 60 * 60 + updatedAt: today - 1000 * 77 * 60 * 60, }, futureStatus: { from: today + ONE_DAY_IN_MS * 5, until: today + ONE_DAY_IN_MS * 8, state: "OOO", - updatedAt: today - 1000 * 77 * 60 * 60 - } - } + updatedAt: today - 1000 * 77 * 60 * 60, + }, + }, ]; }; const inputFixtureForFnConvertTimestampsToUTC = { currentStatus: { from: 1696439365987, // Wed Oct 04 2023 17:09:25 UTC - until: 1697124600000 // Thu Oct 12, 2023, 15:30:00 + until: 1697124600000, // Thu Oct 12, 2023, 15:30:00 }, futureStatus: { from: 1696439365987, // Wed Oct 04 2023 17:09:25 UTC - until: "" // An empty string - } + until: "", // An empty string + }, }; const OutputFixtureForFnConvertTimestampsToUTC = { currentStatus: { from: 1696377600000, // October 4, 2023, 00:00:00 UTC - until: 1697155199999 // Thu Oct 12, 2023, 23:59:59 UTC + until: 1697155199999, // Thu Oct 12, 2023, 23:59:59 UTC }, futureStatus: { from: 1696377600000, // October 4, 2023, 00:00:00 UTC - until: "" // No conversion for an empty string - } + until: "", // No conversion for an empty string + }, }; const generateDefaultFutureStatus = (state, from, until) => { @@ -213,7 +213,7 @@ const generateDefaultFutureStatus = (state, from, until) => { from, until, message: "", - updatedAt: new Date().getTime() + updatedAt: new Date().getTime(), }; return futureStatusData; }; @@ -232,5 +232,5 @@ module.exports = { getStatusData, inputFixtureForFnConvertTimestampsToUTC, OutputFixtureForFnConvertTimestampsToUTC, - generateDefaultFutureStatus + generateDefaultFutureStatus, }; diff --git a/test/integration/arts.test.js b/test/integration/arts.test.js index 443b6f84e..e8bb4f780 100644 --- a/test/integration/arts.test.js +++ b/test/integration/arts.test.js @@ -63,7 +63,7 @@ describe("Arts", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); @@ -127,7 +127,7 @@ describe("Arts", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); diff --git a/test/integration/auction.test.js b/test/integration/auction.test.js index 0398e956f..1cb33d42f 100644 --- a/test/integration/auction.test.js +++ b/test/integration/auction.test.js @@ -158,7 +158,7 @@ describe("Auctions", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); @@ -239,7 +239,7 @@ describe("Auctions", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); diff --git a/test/integration/auth.test.js b/test/integration/auth.test.js index 16c811786..cf9c2d872 100644 --- a/test/integration/auth.test.js +++ b/test/integration/auth.test.js @@ -205,7 +205,7 @@ describe("auth", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "User cannot be authenticated" + message: "User cannot be authenticated", }); return done(); diff --git a/test/integration/badges.test.js b/test/integration/badges.test.js index d840b5de0..0c0debbf7 100644 --- a/test/integration/badges.test.js +++ b/test/integration/badges.test.js @@ -101,7 +101,7 @@ describe("Badges", function () { .set("cookie", `${cookieName}=${jwt}`) .attach("file", Buffer.from("something", "utf-8"), "simple.png") .field({ - name: "badgexRandom" + name: "badgexRandom", }) .end(function (error, response) { if (error) { @@ -109,7 +109,7 @@ describe("Badges", function () { } expect(response).to.have.status(400); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required` + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required`, ); expect(response.body.error).to.equal("Bad Request"); @@ -128,7 +128,7 @@ describe("Badges", function () { .attach("file", Buffer.from("something", "utf-8"), "simple.png") .field({ name: "badgeXrandom", - createdBy: "shmbajaj" + createdBy: "shmbajaj", }) .end(function (error, response) { if (error) { @@ -156,7 +156,7 @@ describe("Badges", function () { expect(response).to.have.status(400); expect(response.body.error).to.equal("Bad Request"); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required` + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required`, ); return done(); }); @@ -169,7 +169,7 @@ describe("Badges", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ userId, - badgeIds: ["1", "2", "3"] + badgeIds: ["1", "2", "3"], }) .end(function (error, response) { if (error) { @@ -190,7 +190,7 @@ describe("Badges", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ userId: "a-random-user-id", - badgeIds: ["1", "2", "3"] + badgeIds: ["1", "2", "3"], }) .end(function (error, response) { if (error) { diff --git a/test/integration/cloudflareCache.test.js b/test/integration/cloudflareCache.test.js index e03af4481..4a29d9ac8 100644 --- a/test/integration/cloudflareCache.test.js +++ b/test/integration/cloudflareCache.test.js @@ -87,7 +87,7 @@ describe("Purged Cache Metadata", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); }); @@ -189,7 +189,7 @@ describe("Purged Cache Metadata", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); }); diff --git a/test/integration/contributions.test.js b/test/integration/contributions.test.js index f785f92f4..8522e7502 100644 --- a/test/integration/contributions.test.js +++ b/test/integration/contributions.test.js @@ -23,7 +23,7 @@ describe("Contributions", function () { yoe: 0, img: "./img.png", github_id: "prakashchoudhary07", - username: "prakash" + username: "prakash", }; // Adding user await userModel.addOrUpdate(user); @@ -50,7 +50,7 @@ describe("Contributions", function () { participants: ["prakash"], completionAward: { gold: 3, bronze: 300 }, lossRate: { gold: 1 }, - isNoteworthy: true + isNoteworthy: true, }; await testModel.updateTask(task); // Creating second task @@ -90,7 +90,7 @@ describe("Contributions", function () { "startedOn", "status", "title", - "id" + "id", ); expect(noteworthyObj.prList[0]).to.have.all.keys( "title", @@ -98,7 +98,7 @@ describe("Contributions", function () { "url", "createdAt", "updatedAt", - "raisedBy" + "raisedBy", ); const [noteworthyObj2] = res.body.all; expect(noteworthyObj2).to.contain.keys("task", "prList"); diff --git a/test/integration/discord.test.js b/test/integration/discord.test.js index 5be3482f9..188fbf1b5 100644 --- a/test/integration/discord.test.js +++ b/test/integration/discord.test.js @@ -76,7 +76,7 @@ describe("test discord actions", function () { const addRolesPromises = [ discordRoleModel.add({ roleid: groupData[0].roleid, rolename: groupData[0].rolename, createdBy: allIds[1] }), - discordRoleModel.add({ roleid: groupData[1].roleid, rolename: groupData[1].rolename, createdBy: allIds[0] }) + discordRoleModel.add({ roleid: groupData[1].roleid, rolename: groupData[1].rolename, createdBy: allIds[0] }), ]; await Promise.all(addRolesPromises); @@ -84,7 +84,7 @@ describe("test discord actions", function () { addGroupRoleToMember({ roleid: groupData[0].roleid, userid: allIds[0] }), addGroupRoleToMember({ roleid: groupData[0].roleid, userid: allIds[1] }), addGroupRoleToMember({ roleid: groupData[0].roleid, userid: allIds[1] }), - addGroupRoleToMember({ roleid: groupData[1].roleid, userid: allIds[0] }) + addGroupRoleToMember({ roleid: groupData[1].roleid, userid: allIds[0] }), ]; await Promise.all(addGroupRolesPromises); }); diff --git a/test/integration/discordactions.test.js b/test/integration/discordactions.test.js index 84958747b..b48ab1ced 100644 --- a/test/integration/discordactions.test.js +++ b/test/integration/discordactions.test.js @@ -32,7 +32,7 @@ const { groupIdle7d, roleDataFromDiscord, memberGroupData, - groupOnboarding31dPlus + groupOnboarding31dPlus, } = require("../fixtures/discordactions/discordactions"); const discordServices = require("../../services/discordService"); const { addGroupRoleToMember, addInviteToInviteModel } = require("../../models/discordactions"); @@ -90,8 +90,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }) - }) + json: () => Promise.resolve({ user: { avatar: 12345 } }), + }), ); chai .request(app) @@ -112,8 +112,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }) - }) + json: () => Promise.resolve({ user: { avatar: 12345 } }), + }), ); chai .request(app) @@ -142,21 +142,21 @@ describe("Discord actions", function () { newGroupData = groupData.map((group, index) => { return { ...group, - createdBy: allIds[Math.min(index, allIds.length - 1)] + createdBy: allIds[Math.min(index, allIds.length - 1)], }; }); const addRolesPromises = [ discordRoleModel.add(newGroupData[0]), discordRoleModel.add(newGroupData[1]), - discordRoleModel.add(newGroupData[2]) + discordRoleModel.add(newGroupData[2]), ]; await Promise.all(addRolesPromises); const addGroupRolesPromises = [ addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[0].discordId }), addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[1].discordId }), - addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }) + addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }), ]; await Promise.all(addGroupRolesPromises); }); @@ -218,7 +218,7 @@ describe("Discord actions", function () { discordRoleModel.add(groupData[0]), discordRoleModel.add(groupData[1]), discordRoleModel.add(groupData[3]), - discordRoleModel.add(groupData[4]) + discordRoleModel.add(groupData[4]), ]; roleid = groupData[0].roleid; await Promise.all(discordRoleModelPromise); @@ -242,13 +242,13 @@ describe("Discord actions", function () { date: new Date().toISOString(), createdBy: "CzI06Da1zPwciLcyIwU4", roleid: "1214641424516124823", - rolename: "admin" - }) - } - ] - } + rolename: "admin", + }), + }, + ], + }, }, - { user: userData[0] } + { user: userData[0] }, ); const res = await chai @@ -267,8 +267,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({}) - }) + json: () => Promise.resolve({}), + }), ); const roleId = groupData[4].roleid; const res = await chai @@ -286,8 +286,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({}) - }) + json: () => Promise.resolve({}), + }), ); const roleId = groupData[4].roleid; @@ -302,7 +302,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role added successfully!"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}` + `Action initiator's username=>ankur and id=${userId}`, ); }); @@ -354,8 +354,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }) - }) + json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), + }), ); chai .request(app) @@ -379,8 +379,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }) - }) + json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), + }), ); const res = await chai .request(app) @@ -392,7 +392,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role deleted successfully"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}` + `Action initiator's username=>ankur and id=${userId}`, ); }); @@ -462,8 +462,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordUsers) - }) + json: () => Promise.resolve(discordUsers), + }), ); chai .request(app) @@ -491,25 +491,25 @@ describe("Discord actions", function () { delete userData2.discordId; const [{ id }, { id: userId2 }] = await Promise.all([ userModel.add({ ...userData[0] }), - userModel.add(userData2) + userModel.add(userData2), ]); const statusData = { ...userStatusDataForOooState, futureStatus: { state: "ACTIVE", updatedAt: 1668211200000, - from: 1668709800000 + from: 1668709800000, }, - userId: id + userId: id, }; const statusData2 = { ...userStatusDataForOooState, futureStatus: { state: "ACTIVE", updatedAt: 1668211200000, - from: 1668709800000 + from: 1668709800000, }, - userId: userId2 + userId: userId2, }; await Promise.all([userStatusModel.add(statusData), userStatusModel.add(statusData2)]); @@ -525,8 +525,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(response) - }) + json: () => Promise.resolve(response), + }), ); chai @@ -534,7 +534,7 @@ describe("Discord actions", function () { .post("/discord-actions/nickname/status") .set("Authorization", `Bearer ${jwtToken}`) .send({ - lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString() + lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString(), }) .end((err, res) => { if (err) { @@ -547,8 +547,8 @@ describe("Discord actions", function () { data: { totalUsersStatus: 2, successfulNicknameUpdates: 1, - unsuccessfulNicknameUpdates: 1 - } + unsuccessfulNicknameUpdates: 1, + }, }); return done(); }); @@ -563,7 +563,7 @@ describe("Discord actions", function () { .post("/discord-actions/nickname/status") .set("Authorization", `Bearer ${jwtToken}`) .send({ - lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString() + lastNicknameUpdate: (userStatusDataForOooState.currentStatus.updatedAt - 1000 * 60 * 10).toString(), }) .end((err, res) => { if (err) { @@ -635,8 +635,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); }); @@ -670,25 +670,25 @@ describe("Discord actions", function () { ...userData[0], discordId: "123456789098765432", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true } + roles: { archived: false, in_discord: true }, }; userData[1] = { ...userData[1], discordId: "12345678909867666", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true } + roles: { archived: false, in_discord: true }, }; userData[2] = { ...userData[2], discordId: "123456", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true } + roles: { archived: false, in_discord: true }, }; userData[3] = { ...userData[3], discordId: "9653710123456", discordJoinedAt: "2023-07-31T16:57:53.894000+00:00", - roles: { archived: false, in_discord: true } + roles: { archived: false, in_discord: true }, }; const allUsers = [userData[0], userData[1], userData[2], userData[3]]; @@ -707,8 +707,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getOnboarding31DPlusMembers) - }) + json: () => Promise.resolve(getOnboarding31DPlusMembers), + }), ); }); @@ -748,7 +748,7 @@ describe("Discord actions", function () { expect(res.body).to.be.a("object"); expect(res.body).to.deep.equal({ message: "Invite returned successfully", - inviteLink: "discord.gg/apQYT7HB" + inviteLink: "discord.gg/apQYT7HB", }); }); @@ -762,7 +762,7 @@ describe("Discord actions", function () { expect(res.body).to.be.a("object"); expect(res.body).to.deep.equal({ message: "Invite returned successfully", - inviteLink: "discord.gg/apQYT7HA" + inviteLink: "discord.gg/apQYT7HA", }); }); @@ -813,7 +813,7 @@ describe("Discord actions", function () { it("should return 403 if the user doesn't have role designer, product_manager, or mavens", async function () { developerUserWithoutApprovedProfileStatusId = await addUser(developerUserWithoutApprovedProfileStatus); developerUserWithoutApprovedProfileStatusToken = authService.generateAuthToken({ - userId: developerUserWithoutApprovedProfileStatusId + userId: developerUserWithoutApprovedProfileStatusId, }); const res = await chai .request(app) @@ -828,8 +828,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "xyz" } }) - }) + json: () => Promise.resolve({ data: { code: "xyz" } }), + }), ); productManagerUserId = await addUser(productManagerUser); @@ -848,8 +848,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "zlmfasd" } }) - }) + json: () => Promise.resolve({ data: { code: "zlmfasd" } }), + }), ); designerUserId = await addUser(designerUser); @@ -868,8 +868,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }) - }) + json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), + }), ); mavenUserId = await addUser(mavenUser); @@ -888,8 +888,8 @@ describe("Discord actions", function () { fetchStub.returns( Promise.resolve({ status: 201, - json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }) - }) + json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), + }), ); const res = await chai diff --git a/test/integration/events.test.js b/test/integration/events.test.js index 43471a8fb..57952a0b6 100644 --- a/test/integration/events.test.js +++ b/test/integration/events.test.js @@ -55,7 +55,7 @@ describe("events", function () { name: "TestingEvent", description: "Hello world! How are you", region: "in", - userId: userId + userId: userId, }; service = sinon.stub(EventAPIService.prototype, "post").returns(event1Data); @@ -91,7 +91,7 @@ describe("events", function () { name: "Test Event", description: "This is a test event", region: "in", - userId: userId + userId: userId, }) .end((error, response) => { if (error) { @@ -111,7 +111,7 @@ describe("events", function () { name: "Test Room", description: "This is a test room", region: "in", - userId: userId + userId: userId, }; chai .request(app) @@ -213,13 +213,13 @@ describe("events", function () { it("should return a token when the request is successful", function (done) { const eventsData = { - data: [event1Data] + data: [event1Data], }; service = sinon.stub(EventAPIService.prototype, "get").returns(eventsData); const payload = { roomId: event1Data.id, userId: "5678", - role: "guest" + role: "guest", }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -262,14 +262,14 @@ describe("events", function () { it("should return a token when the request is successful for host", function (done) { const eventsData = { - data: [event1Data] + data: [event1Data], }; service = sinon.stub(EventAPIService.prototype, "get").returns(eventsData); const payload = { roomId: event1Data.id, userId: "5678", - role: "host" + role: "host", }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -293,13 +293,13 @@ describe("events", function () { it("should return a token when the request is successful for moderator", function (done) { const eventsData = { - data: [event1Data] + data: [event1Data], }; service = sinon.stub(EventAPIService.prototype, "get").returns(eventsData); const payload = { roomId: event1Data.id, userId: "5678", - role: "moderator" + role: "moderator", }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -325,7 +325,7 @@ describe("events", function () { const payload = { roomId: event1Data.id, userId: "5678", - role: "host" + role: "host", }; tokenService = sinon.stub(EventTokenService.prototype, "getAuthToken").returns("test-token"); @@ -412,7 +412,7 @@ describe("events", function () { it("returns the enabled event data when the request is successful", function (done) { const payload = { - enabled: true + enabled: true, }; service = sinon.stub(EventAPIService.prototype, "post").returns(payload); sinon.stub(eventQuery, "updateEvent").resolves({ ...event1Data, enabled: true }); @@ -437,7 +437,7 @@ describe("events", function () { it("returns the disabled room data when the request is successful", function (done) { const payload = { - enabled: false + enabled: false, }; service = sinon.stub(EventAPIService.prototype, "post").returns(payload); @@ -502,7 +502,7 @@ describe("events", function () { it("returns a success message when the request is successful", function (done) { const payload = { reason: "Event ended by user", - lock: true + lock: true, }; service = sinon.stub(EventAPIService.prototype, "post").returns({ message: "session is ending" }); @@ -531,7 +531,7 @@ describe("events", function () { const id = event1Data.id; const payload = { eventCode: "test-code", - role: "moderator" + role: "moderator", }; chai .request(app) @@ -569,14 +569,14 @@ describe("events", function () { it("creates an event code when the request is successful", function (done) { const payload = { eventCode: "test-code", - role: EVENT_ROLES.MAVEN + role: EVENT_ROLES.MAVEN, }; service = sinon .stub(eventQuery, "createEventCode") .returns([ ...eventCodeDataFirst, - { code: "test-code", role: "maven", id: "test-id", event_id: event1Data.room_id } + { code: "test-code", role: "maven", id: "test-id", event_id: event1Data.room_id }, ]); chai @@ -602,7 +602,7 @@ describe("events", function () { const id = event1Data.id; const payload = { eventCode: "test-code", - role: "moderator" + role: "moderator", }; chai .request(app) @@ -626,7 +626,7 @@ describe("events", function () { it("returns an error message when code creation fails", function (done) { const payload = { eventCode: "test-code", - role: EVENT_ROLES.MAVEN + role: EVENT_ROLES.MAVEN, }; const errorMessage = "Error creating event code."; @@ -654,7 +654,7 @@ describe("events", function () { const id = event1Data.id; const payload = { eventCode: "test-code", - role: "moderator" + role: "moderator", }; chai .request(app) @@ -750,7 +750,7 @@ describe("events", function () { it("returns a success message when the request is successful for super user", function (done) { const payload = { peerId: "peer123", - reason: "Kicked out for a reason" + reason: "Kicked out for a reason", }; service = sinon.stub(EventAPIService.prototype, "post").returns({ message: "peer remove request submitted" }); @@ -780,7 +780,7 @@ describe("events", function () { it("returns a success message when the request is successful for member user", function (done) { const payload = { peerId: "peer123", - reason: "Kicked out for a reason" + reason: "Kicked out for a reason", }; service = sinon.stub(EventAPIService.prototype, "post").returns({ message: "peer remove request submitted" }); diff --git a/test/integration/extensionRequests.test.js b/test/integration/extensionRequests.test.js index b675c5c2f..b4746300d 100644 --- a/test/integration/extensionRequests.test.js +++ b/test/integration/extensionRequests.test.js @@ -57,7 +57,7 @@ describe("Extension Requests", function () { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task", @@ -70,7 +70,7 @@ describe("Extension Requests", function () { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task", @@ -87,7 +87,7 @@ describe("Extension Requests", function () { isNoteworthy: false, assignee: user.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task", @@ -100,7 +100,7 @@ describe("Extension Requests", function () { assignee: appOwner.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } + lossRate: { [DINERO]: 1 }, }, { title: "Test task for dev flag", @@ -113,8 +113,8 @@ describe("Extension Requests", function () { assignee: user.username, isNoteworthy: true, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, - lossRate: { [DINERO]: 1 } - } + lossRate: { [DINERO]: 1 }, + }, ]; // Add the active task @@ -135,7 +135,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }; const extensionRequest1 = { taskId: taskId2, @@ -144,7 +144,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "APPROVED" + status: "APPROVED", }; const extensionRequest2 = { @@ -154,7 +154,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }; const extensionRequest3 = { @@ -164,7 +164,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }; const extensionRequest4 = { @@ -174,7 +174,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }; extensionRequestId1 = (await extensionRequests.createExtensionRequest(extensionRequest)).id; extensionRequestId2 = (await extensionRequests.createExtensionRequest(extensionRequest1)).id; @@ -249,7 +249,7 @@ describe("Extension Requests", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); @@ -270,7 +270,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -298,7 +298,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -326,7 +326,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -350,7 +350,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -360,7 +360,7 @@ describe("Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task." + "Only assigned user and super user can create an extension request for this task.", ); return done(); }); @@ -378,7 +378,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -404,7 +404,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -430,7 +430,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 0, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -455,7 +455,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -480,7 +480,7 @@ describe("Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -643,7 +643,7 @@ describe("Extension Requests", function () { extensionRequestsList.forEach((extensionReq) => { expect(extensionReq.status).to.be.oneOf([ EXTENSION_REQUEST_STATUS.APPROVED, - EXTENSION_REQUEST_STATUS.PENDING + EXTENSION_REQUEST_STATUS.PENDING, ]); }); return done(); @@ -667,7 +667,7 @@ describe("Extension Requests", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action." + message: "You are not authorized for this action.", }); return done(); @@ -680,7 +680,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "APPROVED" + status: "APPROVED", }) .end((err, res) => { if (err) { @@ -720,7 +720,7 @@ describe("Extension Requests", function () { .set("cookie", `${cookieName}=${superUserJwt}`) .send({ title: "Hello World", - status: "APPROVED" + status: "APPROVED", }) .end((err, res) => { if (err) { @@ -740,7 +740,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - title: "Hello World" + title: "Hello World", }) .end((err, res) => { if (err) { @@ -771,7 +771,7 @@ describe("Extension Requests", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action." + message: "You are not authorized for this action.", }); return done(); @@ -784,7 +784,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - title: "new-title" + title: "new-title", }) .end((err, res) => { if (err) { @@ -802,7 +802,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - assignee: user.id + assignee: user.id, }) .end((err, res) => { if (err) { @@ -822,7 +822,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId1}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "APPROVED" + status: "APPROVED", }) .end((err, res) => { if (err) { @@ -842,7 +842,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId3}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "APPROVED" + status: "APPROVED", }) .end((err, res) => { if (err) { @@ -879,7 +879,7 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId4}/status`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - status: "DENIED" + status: "DENIED", }) .end((err, res) => { if (err) { @@ -920,11 +920,11 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId5}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - title: newTitle + title: newTitle, }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle + (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle, ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newTitle).to.equal(newTitle); @@ -940,11 +940,11 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId5}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - newEndsOn: suETA + newEndsOn: suETA, }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA + (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA, ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newEndsOn).to.equal(suETA); @@ -960,11 +960,12 @@ describe("Extension Requests", function () { .patch(`/extension-requests/${extensionRequestId5}`) .set("cookie", `${cookieName}=${superUserJwt}`) .send({ - reason: newReason + reason: newReason, }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason + (log) => + log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason, ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newReason).to.equal(newReason); diff --git a/test/integration/external-accounts.test.js b/test/integration/external-accounts.test.js index 87250e448..6cfefd89b 100644 --- a/test/integration/external-accounts.test.js +++ b/test/integration/external-accounts.test.js @@ -128,7 +128,7 @@ describe("External Accounts", function () { expect(res.body).to.be.eql({ statusCode: 409, error: "Conflict", - message: "Token already exists" + message: "Token already exists", }); return done(); @@ -201,7 +201,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Token Expired. Please generate it again" + message: "Token Expired. Please generate it again", }); return done(); @@ -221,7 +221,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); @@ -251,8 +251,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); chai .request(app) @@ -268,7 +268,7 @@ describe("External Accounts", function () { discordUsers: 3, userUpdatedWithInDiscordFalse: 0, usersMarkedUnArchived: 1, - message: "Data Sync Complete" + message: "Data Sync Complete", }); return done(); }); @@ -285,7 +285,7 @@ describe("External Accounts", function () { return done(err); } expect(res.body).to.deep.equal({ - message: INTERNAL_SERVER_ERROR + message: INTERNAL_SERVER_ERROR, }); return done(); }); @@ -313,23 +313,23 @@ describe("External Accounts", function () { const userId = usersFromRds[4].id; const task1 = { assignee: userId, - status: "ACTIVE" + status: "ACTIVE", }; const task2 = { assignee: userId, - status: "COMPLETED" + status: "COMPLETED", }; const task3 = { assignee: userId, - status: "IN_PROGRESS" + status: "IN_PROGRESS", }; await Promise.all([tasksModel.add(task1), tasksModel.add(task2), tasksModel.add(task3)]); fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); const res = await chai @@ -345,7 +345,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 0, totalUsersProcessed: 2, rdsDiscordServerUsers: 3, - backlogTasksCount: 2 + backlogTasksCount: 2, }); }); @@ -355,8 +355,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); const res = await chai .request(app) @@ -371,7 +371,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 0, totalUsersProcessed: 2, rdsDiscordServerUsers: 3, - backlogTasksCount: 0 + backlogTasksCount: 0, }); }); @@ -381,8 +381,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); const res = await chai .request(app) @@ -397,7 +397,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 1, totalUsersProcessed: 2, rdsDiscordServerUsers: 3, - backlogTasksCount: 0 + backlogTasksCount: 0, }); }); @@ -407,8 +407,8 @@ describe("External Accounts", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); const res = await chai .request(app) @@ -423,7 +423,7 @@ describe("External Accounts", function () { usersUnArchivedCount: 0, totalUsersProcessed: 1, rdsDiscordServerUsers: 3, - backlogTasksCount: 0 + backlogTasksCount: 0, }); }); @@ -439,7 +439,7 @@ describe("External Accounts", function () { return done(err); } expect(res.body).to.deep.equal({ - message: INTERNAL_SERVER_ERROR + message: INTERNAL_SERVER_ERROR, }); return done(); }); @@ -498,7 +498,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Token Expired. Please generate it again" + message: "Token Expired. Please generate it again", }); return done(); @@ -518,7 +518,7 @@ describe("External Accounts", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); diff --git a/test/integration/fcmToken.test.js b/test/integration/fcmToken.test.js index a5c894ec2..e7b180425 100644 --- a/test/integration/fcmToken.test.js +++ b/test/integration/fcmToken.test.js @@ -31,7 +31,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData + ...fcmTokenData, }); expect(response).to.have.status(200); @@ -45,7 +45,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData + ...fcmTokenData, }); const response = await chai @@ -53,7 +53,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData + ...fcmTokenData, }); expect(response).to.have.status(409); @@ -67,7 +67,7 @@ describe("Fcm Token Test", function () { .post("/v1/fcm-tokens") .set("cookie", `${cookieName}=${userIdToken0}`) .send({ - ...fcmTokenData + ...fcmTokenData, }); expect(response).to.have.status(400); expect(response.body.message).equals('"fcmToken" is required'); @@ -80,7 +80,7 @@ describe("Fcm Token Test", function () { .request(app) .post("/v1/fcm-tokens") .send({ - ...fcmTokenData + ...fcmTokenData, }); expect(response).to.have.status(401); @@ -94,7 +94,7 @@ describe("Fcm Token Test", function () { .request(app) .post("/v1/fcm-tokens") .send({ - ...fcmTokenData + ...fcmTokenData, }); expect(response).to.have.status(401); expect(response.body.message).equals("Unauthenticated User"); diff --git a/test/integration/goals.test.js b/test/integration/goals.test.js index 7933fc6c1..9f200844e 100644 --- a/test/integration/goals.test.js +++ b/test/integration/goals.test.js @@ -42,16 +42,16 @@ describe("Goals Site", function () { rds_id: userId, token: { exp: 1694625316, - access: "access-token-goal-site-backend" + access: "access-token-goal-site-backend", }, created_at: "2023-09-12T17:07:28.242030Z", modified_at: "2023-09-12T17:15:16.383069Z", roles: { - restricted: false + restricted: false, }, - id: goalsBackendUserId - } - } + id: goalsBackendUserId, + }, + }, ]; } return [400, { data: "something went wrong" }]; diff --git a/test/integration/health.test.js b/test/integration/health.test.js index 37327393c..94b3682af 100644 --- a/test/integration/health.test.js +++ b/test/integration/health.test.js @@ -40,7 +40,7 @@ describe("health", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); diff --git a/test/integration/logs.test.js b/test/integration/logs.test.js index e4a475f2c..d47dec912 100644 --- a/test/integration/logs.test.js +++ b/test/integration/logs.test.js @@ -34,9 +34,9 @@ describe("/logs", function () { requestId: requestResult.id, action: LOG_ACTION.CREATE, createdBy: userId, - createdAt: Date.now() + createdAt: Date.now(), }, - body: requestResult + body: requestResult, }; await addLog(requestLog.type, requestLog.meta, requestLog.body); await addLogs(); @@ -147,7 +147,7 @@ describe("/logs", function () { taskId: "mZB0akqPUa1GQQdrgsx7", extensionRequestId: "y79PXir0s82qNAzeIn8S", status: "PENDING", - type: "extensionRequests" + type: "extensionRequests", }); expect(res.body.data[0]).to.have.property("timestamp"); expect(res.body.data[0]).to.not.have.property("body"); diff --git a/test/integration/monitor.js b/test/integration/monitor.js index ac881c71e..a4a9bef99 100644 --- a/test/integration/monitor.js +++ b/test/integration/monitor.js @@ -14,7 +14,7 @@ const { isISOString, trackedProgressUserDataForPost, trackedProgressTaskDataForPost, - trackedProgressDataForPatch + trackedProgressDataForPatch, } = require("../fixtures/trackedProgress"); const userData = require("../fixtures/user/user")(); @@ -59,7 +59,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressUserDataForPost, - userId: userId1 + userId: userId1, }); expect(response).to.have.status(201); expect(response.body).to.be.an("object"); @@ -74,7 +74,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); const { id, type, userId, monitored, frequency, createdAt, updatedAt } = response.body.data; expect(id).to.be.a("string"); @@ -93,7 +93,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressUserDataForPost, - userId: userId0 + userId: userId0, }); expect(response).to.have.status(409); expect(response.body).to.be.an("object"); @@ -108,7 +108,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressTaskDataForPost, - taskId: taskId1 + taskId: taskId1, }); expect(response).to.have.status(201); expect(response.body).to.be.an("object"); @@ -123,7 +123,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); const { id, type, taskId, monitored, frequency, createdAt, updatedAt } = response.body.data; expect(id).to.be.a("string"); @@ -142,7 +142,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressTaskDataForPost, - taskId: taskId0 + taskId: taskId0, }); expect(response).to.have.status(409); expect(response.body).to.be.an("object"); @@ -158,7 +158,7 @@ describe("Test the tracked Progress API", function () { .send({ ...trackedProgressTaskDataForPost, type: "event", // passing incorrect type - taskId: taskId0 + taskId: taskId0, }); expect(response).to.have.status(400); expect(response.body).to.be.an("object"); @@ -173,7 +173,7 @@ describe("Test the tracked Progress API", function () { .post("/monitor") .send({ ...trackedProgressUserDataForPost, - userId: userId0 + userId: userId0, }); expect(response).to.have.status(401); expect(response.body).to.be.an("object"); @@ -189,7 +189,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${userIdToken0}`) .send({ ...trackedProgressUserDataForPost, - userId: userId0 + userId: userId0, }); expect(response).to.have.status(401); expect(response.body).to.be.an("object"); @@ -206,7 +206,7 @@ describe("Test the tracked Progress API", function () { .set("cookie", `${cookieName}=${superUserToken}`) .send({ ...trackedProgressUserDataForPost, - userId: "invalid-user" + userId: "invalid-user", }); expect(response).to.have.status(404); expect(response.body).to.be.an("object"); @@ -235,7 +235,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); const { id, type, userId, monitored, frequency, createdAt, updatedAt } = response.body.data; expect(id).to.be.a("string"); @@ -277,7 +277,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); const { id, type, taskId, monitored, frequency, createdAt, updatedAt } = response.body.data; @@ -368,7 +368,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); }); @@ -385,7 +385,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); }); @@ -434,7 +434,7 @@ describe("Test the tracked Progress API", function () { "userId", "frequency", "updatedAt", - "monitored" + "monitored", ]); const { id, createdAt, type, userId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); @@ -464,7 +464,7 @@ describe("Test the tracked Progress API", function () { "userId", "frequency", "updatedAt", - "monitored" + "monitored", ]); const { id, createdAt, type, userId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); @@ -501,7 +501,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); const { id, createdAt, type, taskId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); @@ -530,7 +530,7 @@ describe("Test the tracked Progress API", function () { "monitored", "frequency", "createdAt", - "updatedAt" + "updatedAt", ]); const { id, createdAt, type, taskId, frequency, updatedAt, monitored } = trackedProgress; expect(id).to.be.a("string"); diff --git a/test/integration/multilpleExtensionRequest.test.js b/test/integration/multilpleExtensionRequest.test.js index f126f9892..8d2c189b5 100644 --- a/test/integration/multilpleExtensionRequest.test.js +++ b/test/integration/multilpleExtensionRequest.test.js @@ -70,7 +70,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -98,7 +98,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -122,7 +122,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -132,7 +132,7 @@ describe("Multiple Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task." + "Only assigned user and super user can create an extension request for this task.", ); return done(); }); @@ -150,7 +150,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -176,7 +176,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }) .end((err, res) => { if (err) { @@ -200,7 +200,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }; const res = await chai @@ -224,7 +224,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1234, newEndsOn: 1235, reason: "family event", - status: "PENDING" + status: "PENDING", }); const requestData = { @@ -234,7 +234,7 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1235, newEndsOn: 1236, reason: "family event", - status: "PENDING" + status: "PENDING", }; const res = await chai @@ -257,8 +257,8 @@ describe("Multiple Extension Requests", function () { oldEndsOn: 1235, newEndsOn: 1236, reason: "family event", - status: "APPROVED" - } + status: "APPROVED", + }, ]); const requestData = { @@ -269,7 +269,7 @@ describe("Multiple Extension Requests", function () { // fail as newETA Promise.resolve({}) - }) + json: () => Promise.resolve({}), + }), ); chai .request(app) @@ -80,7 +80,7 @@ describe("Test Progress Updates API for Tasks", function () { "planned", "blockers", "createdAt", - "date" + "date", ]); expect(res.body.message).to.be.equal("Task Progress document created successfully."); expect(res.body.data.userId).to.be.equal(userId); @@ -215,7 +215,7 @@ describe("Test Progress Updates API for Tasks", function () { "blockers", "userId", "createdAt", - "date" + "date", ]); }); return done(); @@ -304,7 +304,7 @@ describe("Test Progress Updates API for Tasks", function () { "blockers", "userId", "createdAt", - "date" + "date", ]); }); return done(); @@ -460,7 +460,7 @@ describe("Test Progress Updates API for Tasks", function () { "userId", "taskId", "createdAt", - "date" + "date", ]); return done(); }); diff --git a/test/integration/progressesUsers.test.js b/test/integration/progressesUsers.test.js index 9b381201e..e06d9a1d2 100644 --- a/test/integration/progressesUsers.test.js +++ b/test/integration/progressesUsers.test.js @@ -10,7 +10,7 @@ const cleanDb = require("../utils/cleanDb"); const { standupProgressDay1, incompleteProgress, - stubbedModelProgressData + stubbedModelProgressData, } = require("../fixtures/progress/progresses"); const userData = require("../fixtures/user/user")(); @@ -35,7 +35,7 @@ describe("Test Progress Updates API for Users", function () { fetchMock = sinon.stub(global, "fetch"); clock = sinon.useFakeTimers({ now: new Date(Date.UTC(2023, 4, 2, 0, 25)).getTime(), // UTC time equivalent to 5:55 AM IST - toFake: ["Date"] + toFake: ["Date"], }); userId = await addUser(userData[1]); userToken = authService.generateAuthToken({ userId: userId }); @@ -54,8 +54,8 @@ describe("Test Progress Updates API for Users", function () { fetchMock.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({}) - }) + json: () => Promise.resolve({}), + }), ); chai .request(app) @@ -74,7 +74,7 @@ describe("Test Progress Updates API for Users", function () { "planned", "blockers", "createdAt", - "date" + "date", ]); expect(res.body.message).to.be.equal("User Progress document created successfully."); expect(res.body.data.userId).to.be.equal(userId); @@ -193,7 +193,7 @@ describe("Test Progress Updates API for Users", function () { "blockers", "userId", "createdAt", - "date" + "date", ]); }); return done(); @@ -219,7 +219,7 @@ describe("Test Progress Updates API for Users", function () { "blockers", "userId", "createdAt", - "date" + "date", ]); }); return done(); @@ -364,7 +364,7 @@ describe("Test Progress Updates API for Users", function () { "blockers", "userId", "createdAt", - "date" + "date", ]); return done(); }); diff --git a/test/integration/qrCodeAuth.test.js b/test/integration/qrCodeAuth.test.js index 774b43900..bcacbe99f 100644 --- a/test/integration/qrCodeAuth.test.js +++ b/test/integration/qrCodeAuth.test.js @@ -197,7 +197,7 @@ describe("QrCodeAuth", function () { ...userDeviceInfoDataArray[0], user_id: userId, authorization_status: "NOT_INIT", - access_token: "ACCESS_TOKEN" + access_token: "ACCESS_TOKEN", }; }); diff --git a/test/integration/recruiters.test.js b/test/integration/recruiters.test.js index ffcb744b0..855c65519 100644 --- a/test/integration/recruiters.test.js +++ b/test/integration/recruiters.test.js @@ -76,7 +76,7 @@ describe("Recruiters", function () { expect(res.body).to.eql({ statusCode: 404, error: "Not Found", - message: "User doesn't exist" + message: "User doesn't exist", }); return done(); diff --git a/test/integration/restricted.test.js b/test/integration/restricted.test.js index 9d2ab097a..81d62d0df 100644 --- a/test/integration/restricted.test.js +++ b/test/integration/restricted.test.js @@ -31,8 +31,8 @@ describe("checkRestrictedUser", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); }); @@ -63,7 +63,7 @@ describe("checkRestrictedUser", function () { .patch("/users/self") .set("cookie", `${cookieName}=${unrestrictedJwt}`) .send({ - first_name: "Test" + first_name: "Test", }) .end((err, res) => { if (err) { @@ -81,7 +81,7 @@ describe("checkRestrictedUser", function () { .patch("/users/self") .set("cookie", `${cookieName}=${restrictedJwt}`) .send({ - first_name: "Test" + first_name: "Test", }) .end((err, res) => { if (err) { diff --git a/test/integration/taskBasedStatusUpdate.test.js b/test/integration/taskBasedStatusUpdate.test.js index 69b5422dd..9105e4012 100644 --- a/test/integration/taskBasedStatusUpdate.test.js +++ b/test/integration/taskBasedStatusUpdate.test.js @@ -22,7 +22,7 @@ describe("Task Based Status Updates", function () { let taskArr; const reqBody = { status: "COMPLETED", - percentCompleted: 100 + percentCompleted: 100, }; beforeEach(async function () { @@ -49,7 +49,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.IDLE); }); @@ -64,7 +64,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to IDLE." + "As the user is currently OOO, the future status has been updated to IDLE.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.IDLE); @@ -143,7 +143,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -158,7 +158,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE." + "As the user is currently OOO, the future status has been updated to ACTIVE.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -232,7 +232,7 @@ describe("Task Based Status Updates", function () { type: "feature", status: "ASSIGNED", priority: "HIGH", - percentCompleted: 0 + percentCompleted: 0, }; beforeEach(async function () { @@ -257,7 +257,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -269,7 +269,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE." + "As the user is currently OOO, the future status has been updated to ACTIVE.", ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -304,7 +304,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(500); expect(res.body.userStatus.error).to.equal("Internal Server Error"); expect(res.body.userStatus.message).to.equal( - "Please reach out to the administrator as your user status is not recognized as valid." + "Please reach out to the administrator as your user status is not recognized as valid.", ); }); @@ -315,7 +315,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(404); expect(res.body.userStatus.error).to.equal("Not Found"); expect(res.body.userStatus.message).to.equal( - "Something went wrong. Username funkeyMonkey123 could not be found." + "Something went wrong. Username funkeyMonkey123 could not be found.", ); }); }); @@ -353,7 +353,7 @@ describe("Task Based Status Updates", function () { { userId: userId8, state: "ACTIVE" }, { userId: userId9, state: "ACTIVE" }, { userId: userId10, state: "ACTIVE" }, - { userId: userId11, state: "IDLE" } + { userId: userId11, state: "IDLE" }, ]; reqBody.users = listUsers; await userStatusModel.doc("userStatus000").set(generateStatusDataForState(userId0, userState.ACTIVE)); @@ -394,7 +394,7 @@ describe("Task Based Status Updates", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered" + "idleUsersUnaltered", ); expect(response.usersCount).to.equal(12); expect(response.unprocessedUsers).to.equal(0); @@ -448,7 +448,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(500); const response = res.body; expect(response.message).to.be.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information." + "The server has encountered an unexpected error. Please contact the administrator for more information.", ); }); }); @@ -509,7 +509,7 @@ describe("Task Based Status Updates", function () { { userId: userId1, state: "ACTIVE" }, { userId: userId2, state: "ACTIVE" }, { userId: userId3, state: "IDLE" }, - { userId: superUserId, state: "IDLE" } + { userId: superUserId, state: "IDLE" }, ]); }); @@ -518,8 +518,8 @@ describe("Task Based Status Updates", function () { .stub(userStatusModelFunction, "getTaskBasedUsersStatus") .throws( new Error( - "The server has encountered an unexpected error. Please contact the administrator for more information." - ) + "The server has encountered an unexpected error. Please contact the administrator for more information.", + ), ); const response = await chai .request(app) @@ -527,7 +527,7 @@ describe("Task Based Status Updates", function () { .set("cookie", `${cookieName}=${superUserJwt}`); expect(response.status).to.equal(500); expect(response.body.message).to.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information." + "The server has encountered an unexpected error. Please contact the administrator for more information.", ); }); }); diff --git a/test/integration/taskRequests.test.js b/test/integration/taskRequests.test.js index 9502b0631..582bc1a93 100644 --- a/test/integration/taskRequests.test.js +++ b/test/integration/taskRequests.test.js @@ -40,7 +40,7 @@ const activeMember = userData[0]; const { idleStatus: idleUserStatus, activeStatus: activeUserStatus, - userStatusDataForOooState: oooUserStatus + userStatusDataForOooState: oooUserStatus, } = userStatusData; describe("Task Requests", function () { @@ -232,7 +232,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId, - userId + userId, }) .end((err, res) => { if (err) { @@ -254,7 +254,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taksId: taskId, // task key is mispelled intentionally - userId + userId, }) .end((err, res) => { if (err) { @@ -303,7 +303,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId: "random taskId", - userId + userId, }) .end((err, res) => { if (err) { @@ -339,7 +339,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId, - userId: userId2 + userId: userId2, }) .end((err, res) => { if (err) { @@ -359,7 +359,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskId, - userId + userId, }) .end((err, res) => { if (err) { @@ -429,7 +429,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId + userId, }) .end((err, res) => { if (err) { @@ -448,7 +448,7 @@ describe("Task Requests", function () { .patch("/taskRequests/approve") .set("cookie", `${cookieName}=${jwt}`) .send({ - userId: oooUserId + userId: oooUserId, }) .end((err, res) => { if (err) { @@ -545,7 +545,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId + userId, }); expect(res).to.have.status(200); @@ -561,7 +561,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId + userId, }); expect(res).to.have.status(400); @@ -593,7 +593,7 @@ describe("Task Requests", function () { .resolves({ approvedTo: member.username, taskRequest: { taskRequestId: taskId } }); await chai.request(app).patch("/taskRequests/approve").set("cookie", `${cookieName}=${jwt}`).send({ taskRequestId: taskId, - userId + userId, }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -607,7 +607,7 @@ describe("Task Requests", function () { sinon.stub(taskRequestsModel, "approveTaskRequest").resolves({ taskRequestNotFound: true }); await chai.request(app).patch("/taskRequests/approve").set("cookie", `${cookieName}=${jwt}`).send({ taskRequestId: taskId, - userId + userId, }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -636,7 +636,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskId, - userId + userId, }) .end((err, res) => { if (err) { @@ -692,7 +692,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskRequestId, - userId + userId, }); expect(res.body.message).to.equal(`Task updated successfully.`); expect(res).to.have.status(200); @@ -706,7 +706,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.REJECT }) .send({ taskRequestId: taskRequestId, - userId + userId, }); expect(res).to.have.status(200); @@ -720,7 +720,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ - userId: oooUserId + userId: oooUserId, }) .end((err, res) => { if (err) { @@ -837,7 +837,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskRequestId, - userId + userId, }); expect(res).to.have.status(200); @@ -853,7 +853,7 @@ describe("Task Requests", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ taskRequestId: taskRequestId, - userId + userId, }); expect(res).to.have.status(200); @@ -869,7 +869,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskId, - userId + userId, }); expect(res).to.have.status(400); @@ -903,7 +903,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskRequestId, - userId + userId, }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -922,7 +922,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.REJECT }) .send({ taskRequestId: taskRequestId, - userId + userId, }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -940,7 +940,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskId, - userId + userId, }); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); let taskRequestLogs; @@ -970,7 +970,7 @@ describe("Task Requests", function () { .query({ action: TASK_REQUEST_ACTIONS.APPROVE }) .send({ taskRequestId: taskId, - userId + userId, }) .end((err, res) => { if (err) { @@ -1013,7 +1013,7 @@ describe("Task Requests", function () { id: "request123", taskRequest: mockData.existingTaskRequest, isCreate: true, - alreadyRequesting: false + alreadyRequesting: false, }); const res = await chai .request(app) @@ -1060,7 +1060,7 @@ describe("Task Requests", function () { it("should handle invalid external issue URL", async function () { const requestData = { ...mockData.taskRequestData, - externalIssueUrl: "https://api.github.com/repos/Real-Dev-Squad/website/atus/issues/1564672" + externalIssueUrl: "https://api.github.com/repos/Real-Dev-Squad/website/atus/issues/1564672", }; const res = await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(requestData); expect(res.body.message).to.equal("Issue does not exist"); @@ -1081,7 +1081,7 @@ describe("Task Requests", function () { it("should handle task deadline before start date", async function () { const requestData = { ...mockData.taskRequestData, - proposedStartDate: mockData.taskRequestData.proposedDeadline + 10000 + proposedStartDate: mockData.taskRequestData.proposedDeadline + 10000, }; const res = await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(requestData); expect(res.body.message).to.equal("Task deadline cannot be before the start date"); @@ -1117,7 +1117,7 @@ describe("Task Requests", function () { id: "request123", taskRequest: mockData.existingTaskRequest, isCreate: true, - alreadyRequesting: false + alreadyRequesting: false, }); await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(mockData.taskRequestData); const logsRef = await logsModel.where("type", "==", "taskRequests").get(); @@ -1133,7 +1133,7 @@ describe("Task Requests", function () { const requestData = { ...mockData.taskRequestData, taskId: "abc", - requestType: TASK_REQUEST_TYPE.ASSIGNMENT + requestType: TASK_REQUEST_TYPE.ASSIGNMENT, }; fetchTaskStub.resolves({ taskData: null }); await chai.request(app).post(url).set("cookie", `${cookieName}=${jwt}`).send(requestData); diff --git a/test/integration/tasks.test.js b/test/integration/tasks.test.js index 2c80e0397..1e9df7b53 100644 --- a/test/integration/tasks.test.js +++ b/test/integration/tasks.test.js @@ -51,7 +51,7 @@ const taskData = [ completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, isNoteworthy: true, - isCollapsed: true + isCollapsed: true, }, { title: "Test task", @@ -68,8 +68,8 @@ const taskData = [ completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, isNoteworthy: false, - assignee: appOwner.username - } + assignee: appOwner.username, + }, ]; describe("Tasks", function () { @@ -115,7 +115,7 @@ describe("Tasks", function () { lossRate: { [DINERO]: 1 }, assignee: appOwner.username, participants: [], - dependsOn: [] + dependsOn: [], }) .end((err, res) => { if (err) { @@ -153,7 +153,7 @@ describe("Tasks", function () { lossRate: { [DINERO]: 1 }, assignee: appOwner.username, participants: [], - dependsOn: [] + dependsOn: [], }) .end((err, res) => { if (err) { @@ -185,7 +185,7 @@ describe("Tasks", function () { completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, assignee: appOwner.username, - participants: [] + participants: [], }) .end((err, res) => { if (err) return done(err); @@ -210,7 +210,7 @@ describe("Tasks", function () { after(async function () { await tasks.updateTask( { ...taskData[1], createdAt: 1621717694, updatedAt: 1700775753, dependsOn: [], status: "IN_PROGRESS" }, - taskId2 + taskId2, ); }); @@ -505,9 +505,9 @@ describe("Tasks", function () { it("Should get tasks with COMPLETED status task when fetching task of status Done", async function () { await tasks.updateTask( { - status: "COMPLETED" + status: "COMPLETED", }, - taskId2 + taskId2, ); const res = await chai.request(app).get(`/tasks?dev=true&status=DONE&userFeatureFlag=true`); @@ -585,7 +585,7 @@ describe("Tasks", function () { it("Should return all assignee task", async function () { const { userId: assignedUser } = await userModel.addOrUpdate({ github_id: "prakashchoudhary07", - username: "user1" + username: "user1", }); const assignedTask = [ { @@ -599,7 +599,7 @@ describe("Tasks", function () { assignee: "user1", completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true + isNoteworthy: true, }, { title: "Test task", @@ -612,8 +612,8 @@ describe("Tasks", function () { assignee: "user1", completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true - } + isNoteworthy: true, + }, ]; const { taskId: taskId1 } = await tasks.updateTask(assignedTask[0]); const { taskId: taskId2 } = await tasks.updateTask(assignedTask[1]); @@ -640,7 +640,7 @@ describe("Tasks", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); @@ -655,7 +655,7 @@ describe("Tasks", function () { .patch("/tasks/" + taskId1) .set("cookie", `${cookieName}=${jwt}`) .send({ - title: "new-title" + title: "new-title", }) .end((err, res) => { if (err) { @@ -672,7 +672,7 @@ describe("Tasks", function () { .patch("/tasks/" + taskId1) .set("cookie", `${cookieName}=${jwt}`) .send({ - title: "new-title" + title: "new-title", }) .end((err, res) => { if (err) { @@ -804,7 +804,7 @@ describe("Tasks", function () { .patch("/tasks/" + taskId1) .set("cookie", `${cookieName}=${jwt}`) .send({ - isCollapsed: true + isCollapsed: true, }) .end((err, res) => { if (err) { @@ -823,7 +823,7 @@ describe("Tasks", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ title: "new-title", - status: "invalidStatus" + status: "invalidStatus", }) .end((err, res) => { if (err) { @@ -843,7 +843,7 @@ describe("Tasks", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ status: TASK_STATUS.IN_REVIEW, - percentCompleted: 120 + percentCompleted: 120, }) .end((err, res) => { if (err) { @@ -862,7 +862,7 @@ describe("Tasks", function () { .patch("/tasks/taskid") .set("cookie", `${cookieName}=${jwt}`) .send({ - title: "new-title" + title: "new-title", }) .end((err, res) => { if (err) { @@ -953,7 +953,7 @@ describe("Tasks", function () { describe("PATCH /tasks/self/:id", function () { const taskStatusData = { status: "AVAILABLE", - percentCompleted: 50 + percentCompleted: 50, }; const taskData = { @@ -966,7 +966,7 @@ describe("Tasks", function () { participants: [], completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true + isNoteworthy: true, }; it("Should throw 400 Bad Request if the user tries to update the status of a task to AVAILABLE", function (done) { @@ -1193,7 +1193,7 @@ describe("Tasks", function () { assignee: appOwner.username, completionAward: { [DINERO]: 3, [NEELAM]: 300 }, lossRate: { [DINERO]: 1 }, - isNoteworthy: true + isNoteworthy: true, }; taskId = (await tasks.updateTask(taskData)).taskId; const res = await chai @@ -1217,7 +1217,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from In progress until progress of task is not 100%." + "The status of task can not be changed from In progress until progress of task is not 100%.", ); }); @@ -1232,7 +1232,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed to In progress until progress of task is not 0%." + "The status of task can not be changed to In progress until progress of task is not 0%.", ); }); @@ -1247,7 +1247,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from Blocked until progress of task is not 100%." + "The status of task can not be changed from Blocked until progress of task is not 100%.", ); }); @@ -1334,7 +1334,7 @@ describe("Tasks", function () { update: function () {}, commit: function () { throw new Error("Firestore batch commit failed!"); - } + }, }); const taskData1 = { status: "COMPLETED" }; await firestore.collection("tasks").doc("updateTaskStatus1").set(taskData1); @@ -1385,7 +1385,7 @@ describe("Tasks", function () { await tasks.updateTask({ ...tasksData[10], createdAt: null }); const res = await chai.request(app).post("/tasks/migration").set("cookie", `${cookieName}=${superUserJwt}`).send({ action: "ADD", - field: "CREATED_AT+UPDATED_AT" + field: "CREATED_AT+UPDATED_AT", }); expect(res).to.have.status(200); expect(res.body.totalTasks).to.be.equal(10); @@ -1398,7 +1398,7 @@ describe("Tasks", function () { it("Should update status createdAt and updatedAt, if filed doesn't exists", async function () { const res = await chai.request(app).post("/tasks/migration").set("cookie", `${cookieName}=${superUserJwt}`).send({ action: "ADD", - field: "CREATED_AT+UPDATED_AT" + field: "CREATED_AT+UPDATED_AT", }); expect(res).to.have.status(200); expect(res.body.totalTasks).to.be.equal(6); @@ -1418,11 +1418,11 @@ describe("Tasks", function () { update: function () {}, commit: function () { throw new Error("Firestore batch commit failed!"); - } + }, }); const res = await chai.request(app).post("/tasks/migration").set("cookie", `${cookieName}=${superUserJwt}`).send({ action: "ADD", - field: "CREATED_AT+UPDATED_AT" + field: "CREATED_AT+UPDATED_AT", }); expect(res).to.have.status(200); expect(res.body.totalTasks).to.be.equal(10); @@ -1449,19 +1449,19 @@ describe("Tasks", function () { const { idleStatus: idleUserStatus, activeStatus: activeUserStatus, - userStatusDataForOooState: oooUserStatus + userStatusDataForOooState: oooUserStatus, } = userStatusData; const userIdList = await Promise.all([ await addUser(idleUser), // idle user with no task progress updates await addUser(activeUserWithProgressUpdates), // active user with task progress updates await addUser(activeUserWithNoUpdates), // active user with no task progress updates - await addUser(userNotInDiscord) // OOO user with + await addUser(userNotInDiscord), // OOO user with ]); await Promise.all([ await userStatusModel.updateUserStatus(userIdList[0], idleUserStatus), await userStatusModel.updateUserStatus(userIdList[1], activeUserStatus), await userStatusModel.updateUserStatus(userIdList[2], activeUserStatus), - await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus) + await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus), ]); const tasksPromise = []; @@ -1473,7 +1473,7 @@ describe("Tasks", function () { assignee: userIdList[index], startedOn: (new Date().getTime() - convertDaysToMilliseconds(7)) / 1000, endsOn: (new Date().getTime() + convertDaysToMilliseconds(4)) / 1000, - status: TASK_STATUS.IN_PROGRESS + status: TASK_STATUS.IN_PROGRESS, }; tasksPromise.push(tasksModel.add(validTask)); @@ -1515,8 +1515,8 @@ describe("Tasks", function () { data: { usersToAddRole: [activeUserWithProgressUpdates.discordId], tasks: 4, - missedUpdatesTasks: 3 - } + missedUpdatesTasks: 3, + }, }); expect(response.status).to.be.equal(200); }); @@ -1527,7 +1527,7 @@ describe("Tasks", function () { .get("/tasks/users/discord") .query({ size: 5, - q: `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -weekday:tue -weekday:wed -weekday:thu -weekday:fri -date:231423432 -days-count:4` + q: `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -weekday:tue -weekday:wed -weekday:thu -weekday:fri -date:231423432 -days-count:4`, }) .set("Authorization", `Bearer ${jwtToken}`); expect(response.body).to.be.deep.equal({ @@ -1535,8 +1535,8 @@ describe("Tasks", function () { data: { usersToAddRole: [], tasks: 4, - missedUpdatesTasks: 0 - } + missedUpdatesTasks: 0, + }, }); expect(response.status).to.be.equal(200); }); @@ -1550,7 +1550,7 @@ describe("Tasks", function () { expect(response.body).to.be.deep.equal({ error: "Bad Request", message: '"status" is required', - statusCode: 400 + statusCode: 400, }); expect(response.status).to.be.equal(400); }); @@ -1585,19 +1585,19 @@ describe("Tasks", function () { const task1 = { assignee: userId, - status: "ACTIVE" + status: "ACTIVE", }; const task2 = { assignee: userId2, - status: "COMPLETED" + status: "COMPLETED", }; const task3 = { assignee: userId2, - status: "IN_PROGRESS" + status: "IN_PROGRESS", }; const task4 = { assignee: userId, - status: "DONE" + status: "DONE", }; await Promise.all([tasksModel.add(task1), tasksModel.add(task2), tasksModel.add(task3), tasksModel.add(task4)]); }); @@ -1612,8 +1612,8 @@ describe("Tasks", function () { expect(res.body).to.deep.equal({ message: "Orphan tasks filtered successfully", updatedTasksData: { - orphanTasksUpdatedCount: 2 - } + orphanTasksUpdatedCount: 2, + }, }); }); @@ -1626,7 +1626,7 @@ describe("Tasks", function () { expect(res.body).to.deep.equal({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action." + message: "You are not authorized for this action.", }); }); }); diff --git a/test/integration/userStatus.test.js b/test/integration/userStatus.test.js index 3b39405e1..b45868bc2 100644 --- a/test/integration/userStatus.test.js +++ b/test/integration/userStatus.test.js @@ -15,7 +15,7 @@ const { userStatusDataForNewUser, userStatusDataForOooState, oooStatusDataForShortDuration, - generateUserStatusData + generateUserStatusData, } = require("../fixtures/userStatus/userStatus"); const config = require("config"); @@ -132,7 +132,7 @@ describe("UserStatus", function () { beforeEach(async function () { clock = sinon.useFakeTimers({ now: new Date(2022, 10, 12, 12, 0, 0).getTime(), - toFake: ["Date"] + toFake: ["Date"], }); testUserId = await addUser(userData[1]); testUserJwt = authService.generateAuthToken({ userId: testUserId }); @@ -185,7 +185,7 @@ describe("UserStatus", function () { oooUsersAltered: 0, oooUsersUnaltered: 0, nonOooUsersAltered: 1, - nonOooUsersUnaltered: 0 + nonOooUsersUnaltered: 0, }); // Checking the current status @@ -212,7 +212,7 @@ describe("UserStatus", function () { oooUsersAltered: 1, oooUsersUnaltered: 0, nonOooUsersAltered: 0, - nonOooUsersUnaltered: 0 + nonOooUsersUnaltered: 0, }); const response6 = await chai.request(app).get(`/users/status/self`).set("Cookie", `${cookieName}=${testUserJwt}`); @@ -260,7 +260,7 @@ describe("UserStatus", function () { oooUsersAltered: 0, oooUsersUnaltered: 0, nonOooUsersAltered: 1, - nonOooUsersUnaltered: 0 + nonOooUsersUnaltered: 0, }); // Checking the current status @@ -283,7 +283,7 @@ describe("UserStatus", function () { beforeEach(async function () { clock = sinon.useFakeTimers({ now: new Date(2022, 10, 12, 12, 0, 0).getTime(), - toFake: ["Date"] + toFake: ["Date"], }); testUserId = await addUser(userData[1]); testUserJwt = authService.generateAuthToken({ userId: testUserId }); @@ -431,7 +431,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The value for the 'message' field is mandatory when State is OOO for more than three days.` + `The value for the 'message' field is mandatory when State is OOO for more than three days.`, ); return done(); }); @@ -452,7 +452,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'from' field must have a value that is either today or a date that follows today.` + `The 'from' field must have a value that is either today or a date that follows today.`, ); return done(); }); @@ -474,7 +474,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, ); return done(); }); @@ -596,7 +596,7 @@ describe("UserStatus", function () { await firestore.collection("tasks").doc("user1AssignedTask").set({ assignee: userId, - status: "ASSIGNED" + status: "ASSIGNED", }); await firestore .collection("usersStatus") @@ -608,8 +608,8 @@ describe("UserStatus", function () { from: nowTimeStamp, until: fiveDaysFromNowTimeStamp, updatedAt: nowTimeStamp, - state: userState.OOO - } + state: userState.OOO, + }, }); const res = await chai .request(app) @@ -637,8 +637,8 @@ describe("UserStatus", function () { from: nowTimeStamp, until: fiveDaysFromNowTimeStamp, updatedAt: nowTimeStamp, - state: userState.OOO - } + state: userState.OOO, + }, }); const res = await chai .request(app) @@ -674,8 +674,8 @@ describe("UserStatus", function () { from: nowTimeStamp, until: "", updatedAt: nowTimeStamp, - state: "ACTIVE" - } + state: "ACTIVE", + }, }); const res = await chai .request(app) @@ -714,7 +714,7 @@ describe("UserStatus", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); }); @@ -733,7 +733,7 @@ describe("UserStatus", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "You are not authorized for this action." + message: "You are not authorized for this action.", }); return done(); }); diff --git a/test/integration/users.test.js b/test/integration/users.test.js index aaded56cd..2109c5e73 100644 --- a/test/integration/users.test.js +++ b/test/integration/users.test.js @@ -21,7 +21,7 @@ const joinData = require("../fixtures/user/join"); const { userStatusDataForNewUser, userStatusDataAfterSignup, - userStatusDataAfterFillingJoinSection + userStatusDataAfterFillingJoinSection, } = require("../fixtures/userStatus/userStatus"); const { addJoinData, addOrUpdate } = require("../../models/users"); const userStatusModel = require("../../models/userStatus"); @@ -71,8 +71,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); }); @@ -86,7 +86,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - first_name: "Test first_name" + first_name: "Test first_name", }) .end((err, res) => { if (err) { @@ -105,7 +105,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - status: "ooo" + status: "ooo", }) .end((err, res) => { if (err) { @@ -124,7 +124,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - username: "validUsername123" + username: "validUsername123", }) .end((err, res) => { if (err) { @@ -146,8 +146,8 @@ describe("Users", function () { .set("cookie", `${cookieName}=${newUserJwt}`) .send({ roles: { - maven: true - } + maven: true, + }, }) .end((err, res) => { if (err) { @@ -179,8 +179,8 @@ describe("Users", function () { .set("cookie", `${cookieName}=${newUserJwt}`) .send({ roles: { - maven: true - } + maven: true, + }, }); expect(updateRolesResponse).to.have.status(204); @@ -203,8 +203,8 @@ describe("Users", function () { .set("cookie", `${cookieName}=${jwt}`) .send({ roles: { - maven: true - } + maven: true, + }, }) .end((err, res) => { if (err) { @@ -223,7 +223,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - status: "blah" + status: "blah", }) .end((err, res) => { if (err) { @@ -235,7 +235,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: '"status" must be one of [ooo, idle, active, onboarding]' + message: '"status" must be one of [ooo, idle, active, onboarding]', }); return done(); @@ -250,8 +250,8 @@ describe("Users", function () { .send({ roles: { in_discord: false, - developer: true - } + developer: true, + }, }) .end((err, res) => { if (err) { @@ -273,8 +273,8 @@ describe("Users", function () { roles: { archived: "false", in_discord: false, - developer: true - } + developer: true, + }, }) .end((err, res) => { if (err) { @@ -293,7 +293,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - username: "@invalidUser-name" + username: "@invalidUser-name", }) .end((err, res) => { if (err) { @@ -305,7 +305,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Username must be between 4 and 20 characters long and contain only letters or numbers." + message: "Username must be between 4 and 20 characters long and contain only letters or numbers.", }); return done(); @@ -318,7 +318,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - twitter_id: "Valid_twitterId" + twitter_id: "Valid_twitterId", }) .end((err, res) => { if (err) { @@ -336,7 +336,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - twitter_id: "invalid@twitter_id" + twitter_id: "invalid@twitter_id", }) .end((err, res) => { if (err) { @@ -348,7 +348,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Twitter ID. ID should not contain special character @ or spaces" + message: "Invalid Twitter ID. ID should not contain special character @ or spaces", }); return done(); @@ -361,7 +361,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - linkedin_id: "invalid@linkedin_id" + linkedin_id: "invalid@linkedin_id", }) .end((err, res) => { if (err) { @@ -373,7 +373,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Linkedin ID. ID should not contain special character @ or spaces" + message: "Invalid Linkedin ID. ID should not contain special character @ or spaces", }); return done(); @@ -386,7 +386,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - instagram_id: "invalid@instagram_id" + instagram_id: "invalid@instagram_id", }) .end((err, res) => { if (err) { @@ -398,7 +398,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Instagram ID. ID should not contain special character @ or spaces" + message: "Invalid Instagram ID. ID should not contain special character @ or spaces", }); return done(); @@ -411,7 +411,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - linkedin_id: "Linkedin 123" + linkedin_id: "Linkedin 123", }) .end((err, res) => { if (err) { @@ -423,7 +423,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: "Invalid Linkedin ID. ID should not contain special character @ or spaces" + message: "Invalid Linkedin ID. ID should not contain special character @ or spaces", }); return done(); @@ -495,7 +495,7 @@ describe("Users", function () { .get("/users") .query({ size: 1, - page: 0 + page: 0, }) .end((err, res) => { if (err) { @@ -520,7 +520,7 @@ describe("Users", function () { .get("/users") .query({ size: -1, - page: -1 + page: -1, }) .end((err, res) => { if (err) { @@ -541,7 +541,7 @@ describe("Users", function () { .request(app) .get("/users") .query({ - size: 101 + size: 101, }) .end((err, res) => { if (err) { @@ -708,7 +708,7 @@ describe("Users", function () { .request(app) .get("/users") .query({ - query: "filterBy:unmerged_prs+days:30" + query: "filterBy:unmerged_prs+days:30", }) .end((err, res) => { if (err) { @@ -727,7 +727,7 @@ describe("Users", function () { .get("/users") .query({ q: "filterBy:unmerged_prs+days:30", - dev: true + dev: true, }) .end((err, res) => { if (err) { @@ -745,7 +745,7 @@ describe("Users", function () { .request(app) .get("/users") .query({ - q: "filterBy:unmerged_prs+days:30" + q: "filterBy:unmerged_prs+days:30", }) .end((err, res) => { if (err) { @@ -880,7 +880,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); @@ -1137,7 +1137,7 @@ describe("Users", function () { "linkedin_id", "github_id", "isMember", - "roles" + "roles", ]); expect(Object.keys(res.body.user)).to.not.include.members(["phone", "email", "tokens", "chaincode"]); expect(res.body.user.id).to.equal(userId); @@ -1397,7 +1397,7 @@ describe("Users", function () { .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ profileDiffId: `${profileDiffsId}`, - message: "" + message: "", }) .end((err, res) => { if (err) { @@ -1440,7 +1440,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); }); @@ -1471,7 +1471,7 @@ describe("Users", function () { twitter_id: "ankur909", instagram_id: "", website: "", - message: "" + message: "", }) .end((err, res) => { if (err) { @@ -1514,7 +1514,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 401, error: "Unauthorized", - message: "Unauthenticated User" + message: "Unauthenticated User", }); return done(); }); @@ -1562,7 +1562,7 @@ describe("Users", function () { .patch("/users/profileURL") .set("cookie", `${cookieName}=${jwt}`) .send({ - profileURL: "http://localhost:3000/healthcheck" + profileURL: "http://localhost:3000/healthcheck", }) .end((err, res) => { if (err) { @@ -1581,7 +1581,7 @@ describe("Users", function () { .patch("/users/profileURL") .set("cookie", `${cookieName}=${jwt}`) .send({ - profileURL: "random" + profileURL: "random", }) .end((err, res) => { if (err) { @@ -1593,7 +1593,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: '"profileURL" must be a valid uri' + message: '"profileURL" must be a valid uri', }); return done(); @@ -1616,7 +1616,7 @@ describe("Users", function () { expect(res.body).to.eql({ statusCode: 400, error: "Bad Request", - message: '"profileURL" is required' + message: '"profileURL" is required', }); return done(); }); @@ -1756,8 +1756,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); chai .request(app) @@ -1799,7 +1799,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: true + member: true, }) .end((err, res) => { if (err) { @@ -1820,7 +1820,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: false + member: false, }) .end((err, res) => { if (err) { @@ -1841,7 +1841,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: true + archived: true, }) .end((err, res) => { if (err) { @@ -1862,7 +1862,7 @@ describe("Users", function () { .patch(`/users/${userRoleUnArchivedId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: false + archived: false, }) .end((err, res) => { if (err) { @@ -1885,7 +1885,7 @@ describe("Users", function () { .send({ member: true, archived: true, - reason: "test reason" + reason: "test reason", }) .end((err, res) => { if (err) { @@ -1906,7 +1906,7 @@ describe("Users", function () { .patch(`/users/${userRoleUpdateId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - in_discord: true + in_discord: true, }) .end((err, res) => { if (err) { @@ -1927,7 +1927,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyMemberId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: true + member: true, }) .end((err, res) => { if (err) { @@ -1948,7 +1948,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyNotMemberId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - member: false + member: false, }) .end((err, res) => { if (err) { @@ -1969,7 +1969,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyArchivedId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: true + archived: true, }) .end((err, res) => { if (err) { @@ -1990,7 +1990,7 @@ describe("Users", function () { .patch(`/users/${userAlreadyUnArchivedId}/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: false + archived: false, }) .end((err, res) => { if (err) { @@ -2009,7 +2009,7 @@ describe("Users", function () { .patch(`/users/111111111111/temporary/data`) .set("cookie", `${cookieName}=${superUserAuthToken}`) .send({ - archived: true + archived: true, }) .end((err, res) => { if (err) { @@ -2029,7 +2029,7 @@ describe("Users", function () { .patch(`/users/${nonSuperUserId}/temporary/data`) .set("cookie", `${cookieName}=${nonSuperUserJwt}`) .send({ - archived: true + archived: true, }) .end((err, res) => { if (err) { @@ -2053,7 +2053,7 @@ describe("Users", function () { beforeEach(async function () { const rolesToBeAdded = { archived: false, - in_discord: false + in_discord: false, }; userId1 = await addUser({ ...userData[0], roles: rolesToBeAdded }); userId2 = await addUser({ ...userData[1], roles: rolesToBeAdded }); @@ -2100,7 +2100,7 @@ describe("Users", function () { expect(res.body.summary.totalUsers).to.be.equal(3); expect(res.body.summary.totalOperationsFailed).to.be.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false" + "Successfully updated users archived role to true if in_discord role is false", ); return done(); }); @@ -2109,7 +2109,7 @@ describe("Users", function () { it("should return proper response if no documents are found to update for api archiveUsersIfNotInDiscord", async function () { const roles = { archived: true, - in_discord: false + in_discord: false, }; await addOrUpdate({ ...userData[0], roles }, userId1); await addOrUpdate({ ...userData[1], roles }, userId2); @@ -2136,7 +2136,7 @@ describe("Users", function () { update: function () {}, commit: function () { throw new Error("Firestore batch commit failed!"); - } + }, }); const res = await chai @@ -2167,7 +2167,7 @@ describe("Users", function () { "totalOperationsFailed", "totalUsers", "updatedUserDetails", - "failedUserDetails" + "failedUserDetails", ]); expect(res.body.summary.totalUsersArchived).to.be.equal(3); expect(res.body.summary.totalUsers).to.be.equal(3); @@ -2175,7 +2175,7 @@ describe("Users", function () { expect(res.body.summary.updatedUserDetails.length).to.equal(3); expect(res.body.summary.failedUserDetails.length).to.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false" + "Successfully updated users archived role to true if in_discord role is false", ); return done(); }); @@ -2197,8 +2197,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve() - }) + json: () => Promise.resolve(), + }), ); chai .request(app) @@ -2234,7 +2234,7 @@ describe("Users", function () { update: function () {}, commit: function () { throw new Error("User not verified"); - } + }, }); chai .request(app) @@ -2258,8 +2258,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); }); @@ -2294,8 +2294,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordMembers) - }) + json: () => Promise.resolve(discordMembers), + }), ); }); @@ -2309,7 +2309,7 @@ describe("Users", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - first_name: "Test first_name" + first_name: "Test first_name", }) .end((err, res) => { if (err) { @@ -2318,7 +2318,7 @@ describe("Users", function () { expect(res).to.have.status(403); expect(res.body.message).to.equal( - "Developers can't update their profile data. Use profile service for updating." + "Developers can't update their profile data. Use profile service for updating.", ); return done(); @@ -2335,8 +2335,8 @@ describe("Users", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordMembers) - }) + json: () => Promise.resolve(discordMembers), + }), ); }); diff --git a/test/integration/usersFilter.test.js b/test/integration/usersFilter.test.js index d0c20921a..5b2d7cf2f 100644 --- a/test/integration/usersFilter.test.js +++ b/test/integration/usersFilter.test.js @@ -44,12 +44,12 @@ describe("Filter Users", function () { oooUser = await addUser(userData[0]); await updateUserStatus( oooUser, - generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health") + generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health"), ); idleUser = await addUser(userData[1]); await updateUserStatus( idleUser, - generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS") + generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS"), ); activeUser = await addUser(userData[8]); await updateUserStatus(activeUser, generateUserStatusData(userState.ACTIVE, updatedAtDate, updatedAtDate)); @@ -60,23 +60,23 @@ describe("Filter Users", function () { const { id: id1 } = await addTag({ name: "Vue JS", type: "SKILL", - reason: "Web Dev FE" + reason: "Web Dev FE", }); tagIdFE = id1; const { id: id2 } = await addTag({ name: "Node JS", type: "SKILL", - reason: "Web Dev BE" + reason: "Web Dev BE", }); tagIdBE = id2; const { id: id3 } = await addLevel({ name: "level 1", - value: 1 + value: 1, }); levelId1 = id3; const { id: id4 } = await addLevel({ name: "level 2", - value: 2 + value: 2, }); levelId2 = id4; @@ -87,13 +87,13 @@ describe("Filter Users", function () { tagPayload: [ { tagId: tagIdFE, - levelId: levelId1 + levelId: levelId1, }, { tagId: tagIdFE, - levelId: levelId2 - } - ] + levelId: levelId2, + }, + ], }); await addTagsToItem({ itemId: idleUser, @@ -101,13 +101,13 @@ describe("Filter Users", function () { tagPayload: [ { tagId: tagIdBE, - levelId: levelId1 + levelId: levelId1, }, { tagId: tagIdBE, - levelId: levelId2 - } - ] + levelId: levelId2, + }, + ], }); await addTagsToItem({ itemId: activeUser, @@ -115,13 +115,13 @@ describe("Filter Users", function () { tagPayload: [ { tagId: tagIdFE, - levelId: levelId1 + levelId: levelId1, }, { tagId: tagIdBE, - levelId: levelId1 - } - ] + levelId: levelId1, + }, + ], }); }); @@ -148,7 +148,7 @@ describe("Filter Users", function () { expect(res.body.users).to.be.a("array"); expect(res.body.users.length).to.equal(1); expect(res.body.users[0]).to.deep.include({ - id: oooUser + id: oooUser, }); return done(); }); @@ -256,7 +256,7 @@ describe("Filter Users", function () { expect(res.body.users).to.be.a("array"); expect(res.body.users.length).to.equal(1); expect(res.body.users[0]).to.deep.include({ - id: onboardingUser + id: onboardingUser, }); return done(); }); diff --git a/test/unit/middlewares/arts-validator.test.js b/test/unit/middlewares/arts-validator.test.js index f07658312..77ee785d9 100644 --- a/test/unit/middlewares/arts-validator.test.js +++ b/test/unit/middlewares/arts-validator.test.js @@ -8,8 +8,8 @@ describe("Test the arts validator", function () { body: { title: "some title", price: 100, - css: "random css" - } + css: "random css", + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -20,13 +20,13 @@ describe("Test the arts validator", function () { it("Stops the request to propogate to next", async function () { const req = { body: { - "": "" - } + "": "", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await createArt(req, res, nextSpy); diff --git a/test/unit/middlewares/auctions-validator.test.js b/test/unit/middlewares/auctions-validator.test.js index 7754d7beb..63fed1b54 100644 --- a/test/unit/middlewares/auctions-validator.test.js +++ b/test/unit/middlewares/auctions-validator.test.js @@ -10,8 +10,8 @@ describe("auctions validator", function () { item_type: "css art", quantity: 100, initial_price: 100, - end_time: 1234234234 - } + end_time: 1234234234, + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -22,13 +22,13 @@ describe("auctions validator", function () { it("stops the request to propogate to next", async function () { const req = { body: { - "": "" - } + "": "", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await createAuction(req, res, nextSpy).catch((err) => { @@ -42,8 +42,8 @@ describe("auctions validator", function () { it("allows the request to pass", async function () { const req = { body: { - bid: 100 - } + bid: 100, + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -54,13 +54,13 @@ describe("auctions validator", function () { it("stops the request to propogate to next", async function () { const req = { body: { - "": "" - } + "": "", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await placeBid(req, res, nextSpy).catch((err) => { diff --git a/test/unit/middlewares/authorizeBot.test.js b/test/unit/middlewares/authorizeBot.test.js index 2a695e5f2..f986d5d4b 100644 --- a/test/unit/middlewares/authorizeBot.test.js +++ b/test/unit/middlewares/authorizeBot.test.js @@ -8,13 +8,13 @@ describe("Middleware | Authorize Bot", function () { describe("Check authorization of bot", function (done) { it("return false when token is invalid", function () { const request = { - headers: `Bearer ${BAD_TOKEN}` + headers: `Bearer ${BAD_TOKEN}`, }; const response = { statusCode: 401, error: "Unauthorized", - message: "Unauthorized Bot" + message: "Unauthorized Bot", }; const nextSpy = sinon.spy(); @@ -28,7 +28,7 @@ describe("Middleware | Authorize Bot", function () { const response = { statusCode: 400, error: "Invalid Request", - message: "Invalid Request" + message: "Invalid Request", }; const nextSpy = sinon.spy(); @@ -41,8 +41,8 @@ describe("Middleware | Authorize Bot", function () { const request = { headers: { - authorization: `Bearer ${jwtToken}` - } + authorization: `Bearer ${jwtToken}`, + }, }; const response = {}; @@ -57,8 +57,8 @@ describe("Middleware | Authorize Bot", function () { it("Check fails on bad auth token", function () { const request = { headers: { - authorization: `Bearer ${BAD_TOKEN}` - } + authorization: `Bearer ${BAD_TOKEN}`, + }, }; const response = {}; @@ -71,7 +71,7 @@ describe("Middleware | Authorize Bot", function () { it("Should stop propagation for no auth token", function () { const request = { - headers: {} + headers: {}, }; const response = {}; @@ -88,8 +88,8 @@ describe("Middleware | Authorize Bot", function () { const jwtToken = bot.generateCronJobToken({ name: "Some Random Name" }); const request = { headers: { - authorization: `Bearer ${jwtToken}` - } + authorization: `Bearer ${jwtToken}`, + }, }; const response = {}; @@ -106,8 +106,8 @@ describe("Middleware | Authorize Bot", function () { const jwtToken = bot.generateCronJobToken({ name: CRON_JOB_HANDLER }); const request = { headers: { - authorization: `Bearer ${jwtToken}` - } + authorization: `Bearer ${jwtToken}`, + }, }; const response = {}; const nextSpy = sinon.spy(); diff --git a/test/unit/middlewares/cache.test.js b/test/unit/middlewares/cache.test.js index da2699dbf..9842908b0 100644 --- a/test/unit/middlewares/cache.test.js +++ b/test/unit/middlewares/cache.test.js @@ -16,12 +16,12 @@ describe("Middleware | Utils | cache", function () { const request = { method: "GET", - originalUrl: "/test1" + originalUrl: "/test1", }; const response = { statusCode: 200, - send: sinon.spy() + send: sinon.spy(), }; const nextSpy = sinon.spy(); @@ -46,12 +46,12 @@ describe("Middleware | Utils | cache", function () { const request = { method: "GET", - originalUrl: "/test2" + originalUrl: "/test2", }; const response = { on: sinon.spy(), statusCode: 200, - send: sinon.spy() + send: sinon.spy(), }; const nextSpy = sinon.spy(); @@ -87,12 +87,12 @@ describe("Middleware | Utils | cache", function () { const cacheTestKey = "__cache__3"; const request = { method: "GET", - originalUrl: "/test3" + originalUrl: "/test3", }; const response = { statusCode: 400, - send: sinon.spy() + send: sinon.spy(), }; const nextSpy = sinon.spy(); @@ -119,12 +119,12 @@ describe("Middleware | Utils | cache", function () { const request = { method: "GET", - originalUrl: "/test4" + originalUrl: "/test4", }; const response = { on: sinon.spy(), statusCode: 200, - send: sinon.spy() + send: sinon.spy(), }; const nextSpy = sinon.spy(); diff --git a/test/unit/middlewares/challenges-validator.test.js b/test/unit/middlewares/challenges-validator.test.js index 649b74542..9300fd52c 100644 --- a/test/unit/middlewares/challenges-validator.test.js +++ b/test/unit/middlewares/challenges-validator.test.js @@ -10,8 +10,8 @@ describe("Middleware | Validators | Challenges", function () { level: "Noob", title: "The noob challenge", start_date: 1254324345, - end_date: 354654345 - } + end_date: 354654345, + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -22,13 +22,13 @@ describe("Middleware | Validators | Challenges", function () { it("Stops the propogation of the next", async function () { const req = { body: { - level: "Noob" - } + level: "Noob", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await createChallenge(req, res, nextSpy).catch((err) => { diff --git a/test/unit/middlewares/contentTypeCheck.test.js b/test/unit/middlewares/contentTypeCheck.test.js index c2e9a7b19..9f4feaedf 100644 --- a/test/unit/middlewares/contentTypeCheck.test.js +++ b/test/unit/middlewares/contentTypeCheck.test.js @@ -25,8 +25,8 @@ describe("contentTypeCheck", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(getDiscordMembers) - }) + json: () => Promise.resolve(getDiscordMembers), + }), ); }); @@ -51,7 +51,7 @@ describe("contentTypeCheck", function () { expect(res.body).to.eql({ statusCode: 415, error: "Unsupported Media Type", - message: "Invalid content-type header: application/xml, expected: application/json or multipart/form-data" + message: "Invalid content-type header: application/xml, expected: application/json or multipart/form-data", }); return done(); @@ -79,7 +79,7 @@ describe("contentTypeCheck", function () { .patch("/users/self") .set("cookie", `${cookieName}=${jwt}`) .send({ - first_name: "Test first_name" + first_name: "Test first_name", }) .end((err, res) => { if (err) { diff --git a/test/unit/middlewares/data-access-layer.test.js b/test/unit/middlewares/data-access-layer.test.js index 4d392223c..bc3875f99 100644 --- a/test/unit/middlewares/data-access-layer.test.js +++ b/test/unit/middlewares/data-access-layer.test.js @@ -10,21 +10,21 @@ describe("dataAccessMiddleware", function () { const res = { send: (body) => { expect(body).to.deep.equal({ - publicField: "publicValue" + publicField: "publicValue", }); - } + }, }; const next = sinon.spy(); const rules = [ { allowedRoles: [SUPERUSER], - keyPath: "privateField" + keyPath: "privateField", }, { allowedRoles: [SUPERUSER], - keyPath: "privateField2" - } + keyPath: "privateField2", + }, ]; const middleware = dataAccessMiddleware({ rules }); @@ -40,15 +40,15 @@ describe("dataAccessMiddleware", function () { const res = { send: (body) => { expect(body).to.deep.equal({ privateField: "privateValue", publicField: "publicValue" }); - } + }, }; const next = sinon.spy(); const rules = [ { allowedRoles: [SUPERUSER], - keyPath: "privateField" - } + keyPath: "privateField", + }, ]; const middleware = dataAccessMiddleware({ rules }); diff --git a/test/unit/middlewares/discordactions-validators.test.js b/test/unit/middlewares/discordactions-validators.test.js index 6c6623e62..b96804bc5 100644 --- a/test/unit/middlewares/discordactions-validators.test.js +++ b/test/unit/middlewares/discordactions-validators.test.js @@ -2,7 +2,7 @@ const Sinon = require("sinon"); const { validateGroupRoleBody, validateMemberRoleBody, - validateUpdateUsersNicknameStatusBody + validateUpdateUsersNicknameStatusBody, } = require("../../../middlewares/validators/discordactions"); const { expect } = require("chai"); @@ -12,8 +12,8 @@ describe("Middleware | Validators | discord actions", function () { const res = {}; const req = { body: { - rolename: "test" - } + rolename: "test", + }, }; const nextSpy = Sinon.spy(); await validateGroupRoleBody(req, res, nextSpy); @@ -23,12 +23,12 @@ describe("Middleware | Validators | discord actions", function () { it("stops the propogation of the event to next function", async function () { const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); const req = { - body: {} + body: {}, }; await validateGroupRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); @@ -42,8 +42,8 @@ describe("Middleware | Validators | discord actions", function () { const req = { body: { userid: "12346re54d4e434", - roleid: "12345654325544565" - } + roleid: "12345654325544565", + }, }; const nextSpy = Sinon.spy(); const res = {}; @@ -54,12 +54,12 @@ describe("Middleware | Validators | discord actions", function () { it("stops the propogation to the next function", async function () { const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); const req = { - body: {} + body: {}, }; await validateMemberRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); @@ -72,8 +72,8 @@ describe("Middleware | Validators | discord actions", function () { it("should pass the request to the next function when lastNicknameUpdate timestamp is a string", async function () { const req = { body: { - lastNicknameUpdate: String(Date.now()) - } + lastNicknameUpdate: String(Date.now()), + }, }; const nextSpy = Sinon.spy(); const res = {}; @@ -84,8 +84,8 @@ describe("Middleware | Validators | discord actions", function () { it("should pass the request to the next function when lastNicknameUpdate timestamp is a number", async function () { const req = { body: { - lastNicknameUpdate: Date.now() - } + lastNicknameUpdate: Date.now(), + }, }; const nextSpy = Sinon.spy(); const res = {}; @@ -96,12 +96,12 @@ describe("Middleware | Validators | discord actions", function () { it("should throw error when the lastNicknameUpdate timestamp is not present", async function () { const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); const req = { - body: {} + body: {}, }; await validateMemberRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); @@ -112,14 +112,14 @@ describe("Middleware | Validators | discord actions", function () { it("should throw error when the lastNicknameUpdate timestamp is not a string or timestamp", async function () { const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); const req = { body: { - lastNicknameUpdate: 112.45478 - } + lastNicknameUpdate: 112.45478, + }, }; await validateMemberRoleBody(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); diff --git a/test/unit/middlewares/extension-request-validator.test.js b/test/unit/middlewares/extension-request-validator.test.js index e7ddaf670..1d1d47299 100644 --- a/test/unit/middlewares/extension-request-validator.test.js +++ b/test/unit/middlewares/extension-request-validator.test.js @@ -14,8 +14,8 @@ describe("getExtensionRequestsValidator", function () { it("should pass validation for valid query parameters", async function () { const req = { query: { - q: "assignee:user123" - } + q: "assignee:user123", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -31,8 +31,8 @@ describe("getExtensionRequestsValidator", function () { cursor: "value", order: "asc", size: 10, - q: "assignee:user123+user456" - } + q: "assignee:user123+user456", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -45,8 +45,8 @@ describe("getExtensionRequestsValidator", function () { it("should pass validation for valid multiple keys and values of query parameters", async function () { const req = { query: { - q: "assignee:user123+user456,status:PENDING+APPROVED" - } + q: "assignee:user123+user456,status:PENDING+APPROVED", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -59,13 +59,13 @@ describe("getExtensionRequestsValidator", function () { it("should not pass validation for invalid query parameters query string", async function () { const req = { query: { - q: "invalidkey:value" - } + q: "invalidkey:value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); @@ -78,13 +78,13 @@ describe("getExtensionRequestsValidator", function () { it("should not pass validation for invalid query parameters", async function () { const req = { query: { - invalidParam: "value" - } + invalidParam: "value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); diff --git a/test/unit/middlewares/external-accounts-validator.test.js b/test/unit/middlewares/external-accounts-validator.test.js index 58109471c..a06f291cb 100644 --- a/test/unit/middlewares/external-accounts-validator.test.js +++ b/test/unit/middlewares/external-accounts-validator.test.js @@ -2,7 +2,7 @@ const Sinon = require("sinon"); const { externalAccountData, postExternalAccountsUsers, - linkDiscord + linkDiscord, } = require("../../../middlewares/validators/external-accounts"); const { EXTERNAL_ACCOUNTS_POST_ACTIONS } = require("../../../constants/external-accounts"); const { expect } = require("chai"); @@ -20,9 +20,9 @@ describe("Middleware | Validators | external accounts", function () { userAvatar: "some avatar", discordId: "some id", discordJoinedAt: "some date", - expiry: Date.now() - } - } + expiry: Date.now(), + }, + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -32,12 +32,12 @@ describe("Middleware | Validators | external accounts", function () { it("stops the propogation of request to the next function", async function () { const req = { - body: {} + body: {}, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await externalAccountData(req, res, nextSpy).catch((err) => { @@ -50,7 +50,7 @@ describe("Middleware | Validators | external accounts", function () { describe("postExternalAccountsUsers", function () { it("should be successful when valid query params are passed", async function () { const req = { - query: { action: EXTERNAL_ACCOUNTS_POST_ACTIONS.DISCORD_USERS_SYNC } + query: { action: EXTERNAL_ACCOUNTS_POST_ACTIONS.DISCORD_USERS_SYNC }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -60,12 +60,12 @@ describe("Middleware | Validators | external accounts", function () { it("should be respond with bad request when invalid query params are passed", async function () { const req = { - query: { action: "abc" } + query: { action: "abc" }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextSpy = Sinon.spy(); await postExternalAccountsUsers(req, res, nextSpy); diff --git a/test/unit/middlewares/fcmToken-validator.test.js b/test/unit/middlewares/fcmToken-validator.test.js index de597e392..d7fe19f6a 100644 --- a/test/unit/middlewares/fcmToken-validator.test.js +++ b/test/unit/middlewares/fcmToken-validator.test.js @@ -7,8 +7,8 @@ describe("Test the fcmToken validator", function () { it("Allows the request to pass", async function () { const req = { body: { - fcmToken: "some token" - } + fcmToken: "some token", + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -19,13 +19,13 @@ describe("Test the fcmToken validator", function () { it("Stops the request to propogate to next", async function () { const req = { body: { - "": "" - } + "": "", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await fcmTokenValidator(req, res, nextSpy); diff --git a/test/unit/middlewares/notify-validator.test.js b/test/unit/middlewares/notify-validator.test.js index 94e60b6a5..4adac8bfc 100644 --- a/test/unit/middlewares/notify-validator.test.js +++ b/test/unit/middlewares/notify-validator.test.js @@ -9,8 +9,8 @@ describe("Test the notify validator", function () { body: { title: "some title", body: "some body", - userId: "user id" - } + userId: "user id", + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -23,8 +23,8 @@ describe("Test the notify validator", function () { body: { title: "some title", body: "some body", - groupRoleId: "group role id" - } + groupRoleId: "group role id", + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -38,13 +38,13 @@ describe("Test the notify validator", function () { title: "some title", body: "some body", userId: "user id", - groupRoleId: "some role id" - } + groupRoleId: "some role id", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await notifyValidator(req, res, nextSpy); @@ -54,13 +54,13 @@ describe("Test the notify validator", function () { it("Stops the request to propogate to next", async function () { const req = { body: { - "": "" - } + "": "", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); await notifyValidator(req, res, nextSpy); diff --git a/test/unit/middlewares/qrCodeAuthValidator.test.js b/test/unit/middlewares/qrCodeAuthValidator.test.js index 6d9480a5d..434385e2b 100644 --- a/test/unit/middlewares/qrCodeAuthValidator.test.js +++ b/test/unit/middlewares/qrCodeAuthValidator.test.js @@ -2,7 +2,7 @@ const Sinon = require("sinon"); const { validateAuthStatus, storeUserDeviceInfo, - validateFetchingUserDocument + validateFetchingUserDocument, } = require("../../../middlewares/validators/qrCodeAuth"); const { expect } = require("chai"); const { userDeviceInfoDataArray } = require("../../fixtures/qrCodeAuth/qrCodeAuth"); @@ -11,8 +11,8 @@ describe("qrCodeAuth", function () { it("Allows request to pass on valid params", async function () { const req = { body: { - ...userDeviceInfoDataArray[0] - } + ...userDeviceInfoDataArray[0], + }, }; const res = {}; @@ -26,14 +26,14 @@ describe("qrCodeAuth", function () { const req = { body: { ...userDeviceInfoDataArray[0], - user_id: 12 - } + user_id: 12, + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); @@ -46,8 +46,8 @@ describe("qrCodeAuth", function () { it("Allows request to pass on valid params", async function () { const req = { params: { - authorization_status: "AUTHORIZED" - } + authorization_status: "AUTHORIZED", + }, }; const res = {}; @@ -60,14 +60,14 @@ describe("qrCodeAuth", function () { it("Does not allow request to pass on invalid params", async function () { const req = { params: { - authorization_status: "OK" - } + authorization_status: "OK", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); @@ -80,8 +80,8 @@ describe("qrCodeAuth", function () { it("Allows request to pass on valid params", async function () { const req = { query: { - device_id: "DEVICE_ID" - } + device_id: "DEVICE_ID", + }, }; const res = {}; @@ -95,14 +95,14 @@ describe("qrCodeAuth", function () { const req = { query: { user_id: "ID", - device_type: "DEVICE_TYPE" - } + device_type: "DEVICE_TYPE", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); diff --git a/test/unit/middlewares/rateLimiting.test.js b/test/unit/middlewares/rateLimiting.test.js index 54befb989..7ab6ea6d3 100644 --- a/test/unit/middlewares/rateLimiting.test.js +++ b/test/unit/middlewares/rateLimiting.test.js @@ -5,11 +5,11 @@ const { commonRateLimiter } = require("../../../middlewares/rateLimiting"); function mockRequest(ipAddress) { return { headers: { - "x-forwarded-for": ipAddress + "x-forwarded-for": ipAddress, }, socket: { - remoteAddress: ipAddress - } + remoteAddress: ipAddress, + }, }; } diff --git a/test/unit/middlewares/security.test.js b/test/unit/middlewares/security.test.js index 14e7ff3b7..9bf5cf509 100644 --- a/test/unit/middlewares/security.test.js +++ b/test/unit/middlewares/security.test.js @@ -23,7 +23,7 @@ describe("CORS", function () { expect(res).to.have.status(200); expect(res.body).to.eql({}); expect(res.headers).to.include({ - "access-control-allow-origin": origin + "access-control-allow-origin": origin, }); return done(); @@ -46,7 +46,7 @@ describe("CORS", function () { expect(res).to.have.status(200); expect(res.body).to.eql({}); expect(res.headers).to.include({ - "access-control-allow-origin": origin + "access-control-allow-origin": origin, }); return done(); diff --git a/test/unit/middlewares/task-request.test.js b/test/unit/middlewares/task-request.test.js index f45181e9d..d5910bddc 100644 --- a/test/unit/middlewares/task-request.test.js +++ b/test/unit/middlewares/task-request.test.js @@ -7,7 +7,7 @@ describe("Middleware | Validators | Task Requests", function () { describe("Task Assignment Requests", function () { it("should not throw error when valid request body is passed", async function () { const req = { - body: data.validAssignmentRequest + body: data.validAssignmentRequest, }; const res = {}; const nextSpy = Sinon.spy(); @@ -17,7 +17,7 @@ describe("Middleware | Validators | Task Requests", function () { it("should not throw error when valid request body with description is passed", async function () { const req = { - body: data.assignmentReqWithDescription + body: data.assignmentReqWithDescription, }; const res = {}; const nextSpy = Sinon.spy(); @@ -27,7 +27,7 @@ describe("Middleware | Validators | Task Requests", function () { it("should not throw error when valid request body without external issue id is passed", async function () { const req = { - body: data.assignmentReqWithoutExtIssueId + body: data.assignmentReqWithoutExtIssueId, }; const res = {}; const nextSpy = Sinon.spy(); @@ -37,13 +37,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without proposed deadline is passed", async function () { const req = { - body: data.assignmentReqWithoutProposedDeadline + body: data.assignmentReqWithoutProposedDeadline, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -53,13 +53,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without task id is passed", async function () { const req = { - body: data.assignmentReqWithoutTaskId + body: data.assignmentReqWithoutTaskId, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -69,13 +69,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without used id is passed", async function () { const req = { - body: data.assignmentReqWithoutUserId + body: data.assignmentReqWithoutUserId, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -87,7 +87,7 @@ describe("Middleware | Validators | Task Requests", function () { describe("Task Creation Requests", function () { it("should not throw error when valid request body is passed", async function () { const req = { - body: data.validCreationRequest + body: data.validCreationRequest, }; const res = {}; const nextSpy = Sinon.spy(); @@ -97,7 +97,7 @@ describe("Middleware | Validators | Task Requests", function () { it("should not throw error when valid request body with description is passed", async function () { const req = { - body: data.creationReqWithDescription + body: data.creationReqWithDescription, }; const res = {}; const nextSpy = Sinon.spy(); @@ -107,13 +107,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without external issue id is passed", async function () { const req = { - body: data.creationReqWithoutExtIssueId + body: data.creationReqWithoutExtIssueId, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -123,13 +123,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without proposed deadline is passed", async function () { const req = { - body: data.creationReqWithoutProposedDeadline + body: data.creationReqWithoutProposedDeadline, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -139,13 +139,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when request body without used id is passed", async function () { const req = { - body: data.creationReqWithoutUserId + body: data.creationReqWithoutUserId, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -156,13 +156,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should throw error when invalid request body is passed", async function () { const req = { - body: data.invalidRequest + body: data.invalidRequest, }; const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const nextSpy = Sinon.spy(); await postTaskRequests(req, res, nextSpy); @@ -183,8 +183,8 @@ describe("Middleware | Validators | Task Requests", function () { it("should pass validation for valid query parameters", async function () { const req = { query: { - q: "status:approved" - } + q: "status:approved", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -195,8 +195,8 @@ describe("Middleware | Validators | Task Requests", function () { it("should pass validation for valid query parameters with multiple keys and values", async function () { const req = { query: { - q: "status:approved request-type:assignment" - } + q: "status:approved request-type:assignment", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -207,8 +207,8 @@ describe("Middleware | Validators | Task Requests", function () { it("should pass validation for valid sort query parameters", async function () { const req = { query: { - q: "sort:created-desc" - } + q: "sort:created-desc", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -222,8 +222,8 @@ describe("Middleware | Validators | Task Requests", function () { dev: "true", next: "id", size: "20", - q: "status:pending request-type:creation status:denied sort:created-desc" - } + q: "status:pending request-type:creation status:denied sort:created-desc", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -235,13 +235,13 @@ describe("Middleware | Validators | Task Requests", function () { const req = { query: { next: "value", - prev: "value" - } + prev: "value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -252,13 +252,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation when next is passed without size", async function () { const req = { query: { - next: "value" - } + next: "value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -269,13 +269,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation when prev is passed without size", async function () { const req = { query: { - prev: "value" - } + prev: "value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -286,13 +286,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation for invalid query parameters", async function () { const req = { query: { - invalidParam: "value" - } + invalidParam: "value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -303,13 +303,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation for invalid query parameters in RQL format", async function () { const req = { query: { - q: "invalidKey:value" - } + q: "invalidKey:value", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); @@ -320,13 +320,13 @@ describe("Middleware | Validators | Task Requests", function () { it("should not pass validation for invalid sort query parameters", async function () { const req = { query: { - q: "status:approved sort:af:sdv" - } + q: "status:approved sort:af:sdv", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTaskRequests(req, res, nextMiddlewareSpy); diff --git a/test/unit/middlewares/tasks-validator.test.js b/test/unit/middlewares/tasks-validator.test.js index 042ac1afb..89676d674 100644 --- a/test/unit/middlewares/tasks-validator.test.js +++ b/test/unit/middlewares/tasks-validator.test.js @@ -4,7 +4,7 @@ const { createTask, updateSelfTask, getUsersValidator, - updateTask: updateTaskValidator + updateTask: updateTaskValidator, } = require("../../../middlewares/validators/tasks"); const { expect } = require("chai"); const { TASK_STATUS, tasksUsersStatus } = require("../../../constants/tasks"); @@ -21,8 +21,8 @@ describe("getTasks validator", function () { it("should pass the request when dev query param value is boolean", async function () { const req = { query: { - dev: true - } + dev: true, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -33,8 +33,8 @@ describe("getTasks validator", function () { it("should pass the request when dev query param has a boolean value of type string", async function () { const req = { query: { - dev: "true" - } + dev: "true", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -45,13 +45,13 @@ describe("getTasks validator", function () { it("should not pass the request when dev query param value is not a boolean value", async function () { const req = { query: { - dev: "yes" - } + dev: "yes", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -62,8 +62,8 @@ describe("getTasks validator", function () { it("should pass the request when status query param has a valid task status value", async function () { const req = { query: { - status: "DONE" - } + status: "DONE", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -74,8 +74,8 @@ describe("getTasks validator", function () { it("should pass the request when status query param has a case-insensitive valid task status value", async function () { const req = { query: { - status: "done" - } + status: "done", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -86,13 +86,13 @@ describe("getTasks validator", function () { it("should not pass the request when status query param has an invalid task status value", async function () { const req = { query: { - status: "testing_in_progress" - } + status: "testing_in_progress", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -103,8 +103,8 @@ describe("getTasks validator", function () { const req = { query: { status: "in_progress", - dev: true - } + dev: true, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -116,13 +116,13 @@ describe("getTasks validator", function () { const req = { query: { status: "in_progress", - dev: "no" - } + dev: "no", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -133,13 +133,13 @@ describe("getTasks validator", function () { const req = { query: { status: "testing_in_progress", - dev: "false" - } + dev: "false", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -149,13 +149,13 @@ describe("getTasks validator", function () { it("should not pass the request when an invalid query param is passed", async function () { const req = { query: { - sort: "asc" - } + sort: "asc", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -165,13 +165,13 @@ describe("getTasks validator", function () { it("should not pass the request when an insensitive dev query param value is passed", async function () { const req = { query: { - dev: "True" - } + dev: "True", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -182,13 +182,13 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - page: -1 - } + page: -1, + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -199,8 +199,8 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - page: 0 - } + page: 0, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -212,13 +212,13 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - size: 0 - } + size: 0, + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -229,13 +229,13 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - size: 120 - } + size: 120, + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -246,8 +246,8 @@ describe("getTasks validator", function () { const req = { query: { dev: "true", - size: 3 - } + size: 3, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -260,13 +260,13 @@ describe("getTasks validator", function () { query: { dev: "true", next: "nextId", - page: 0 - } + page: 0, + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -278,13 +278,13 @@ describe("getTasks validator", function () { query: { dev: "true", prev: "prevId", - page: 0 - } + page: 0, + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -296,13 +296,13 @@ describe("getTasks validator", function () { query: { dev: "true", next: "nextId", - prev: "prevId" - } + prev: "prevId", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -315,8 +315,8 @@ describe("getTasks validator", function () { dev: "true", size: 3, next: "nextId", - status: TASK_STATUS.ASSIGNED - } + status: TASK_STATUS.ASSIGNED, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -330,8 +330,8 @@ describe("getTasks validator", function () { dev: "true", size: 3, prev: "prevId", - status: TASK_STATUS.ASSIGNED - } + status: TASK_STATUS.ASSIGNED, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -345,8 +345,8 @@ describe("getTasks validator", function () { dev: "true", size: 3, page: 0, - status: TASK_STATUS.ASSIGNED - } + status: TASK_STATUS.ASSIGNED, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -361,8 +361,8 @@ describe("getTasks validator", function () { size: 3, page: 0, status: TASK_STATUS.ASSIGNED, - q: "searchterm:apple" - } + q: "searchterm:apple", + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -377,15 +377,15 @@ describe("getTasks validator", function () { size: 3, page: 0, status: TASK_STATUS.ASSIGNED, - q: "invalidkey:value" - } + q: "invalidkey:value", + }, }; const res = { boom: { badRequest: (message) => { expect(message).to.equal('"q" contains an invalid value'); - } - } + }, + }, }; const nextMiddlewareSpy = Sinon.spy(); await getTasksValidator(req, res, nextMiddlewareSpy); @@ -398,8 +398,8 @@ describe("getTasks validator", function () { dev: "true", assignee: "assignee", title: "title", - status: TASK_STATUS.ASSIGNED - } + status: TASK_STATUS.ASSIGNED, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -413,18 +413,18 @@ describe("getTasks validator", function () { type: "Feature", status: TASK_STATUS.ASSIGNED, priority: "High", - percentCompleted: 0 + percentCompleted: 0, }; const req = { - body: validRequestBody + body: validRequestBody, }; const res = { boom: { badRequest: (message) => { throw new Error(message); - } - } + }, + }, }; const nextMiddlewareSpy = Sinon.spy(); @@ -441,14 +441,14 @@ describe("getTasks validator", function () { it("should return a bad request error when empty request body is provided", async function () { const invalidRequestBody = {}; const req = { - body: invalidRequestBody + body: invalidRequestBody, }; const res = { boom: { badRequest: (message) => { return message; - } - } + }, + }, }; const nextMiddlewareSpy = Sinon.spy(); @@ -472,20 +472,20 @@ describe("getTasks validator", function () { percentCompleted: 0, github: { issue: { - html_url: "https://github.com/issue-url" - } - } + html_url: "https://github.com/issue-url", + }, + }, }; const req = { - body: validRequestBody + body: validRequestBody, }; const res = { boom: { badRequest: (message) => { return message; - } - } + }, + }, }; const nextMiddlewareSpy = Sinon.spy(); @@ -507,19 +507,19 @@ describe("getTasks validator", function () { percentCompleted: 0, github: { issue: { - html_url: "invalid-url" - } - } + html_url: "invalid-url", + }, + }, }; const req = { - body: invalidRequestBody + body: invalidRequestBody, }; const res = { boom: { badRequest: (message) => { return message; - } - } + }, + }, }; const nextMiddlewareSpy = Sinon.spy(); try { @@ -535,8 +535,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: null, - endsOn: new Date().getTime() - } + endsOn: new Date().getTime(), + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -548,8 +548,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: new Date().getTime(), - endsOn: null - } + endsOn: null, + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -561,8 +561,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: null, - endsOn: null - } + endsOn: null, + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -574,8 +574,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: new Date("2023-11-15").getTime(), - endsOn: new Date("2023-11-18").getTime() - } + endsOn: new Date("2023-11-18").getTime(), + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -587,8 +587,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: "December 6 2023", - endsOn: new Date().getTime() - } + endsOn: new Date().getTime(), + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -600,8 +600,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: new Date().getTime(), - endsOn: true - } + endsOn: true, + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -613,8 +613,8 @@ describe("getTasks validator", function () { const req = { body: { startedOn: "December 6 2023", - endsOn: true - } + endsOn: true, + }, }; const res = { boom: { badRequest: Sinon.spy() } }; const nextMiddlewareSpy = Sinon.spy(); @@ -628,8 +628,8 @@ describe("getTasks validator", function () { query: { size: 10, cursor: "someCursor", - q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun` - } + q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun`, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -642,8 +642,8 @@ describe("getTasks validator", function () { query: { size: 10, cursor: "someCursor", - q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun -weekday:mon` - } + q: `status:${tasksUsersStatus.MISSED_UPDATES} -days-count:2 -date:123423432 -weekday:sun -weekday:mon`, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -654,8 +654,8 @@ describe("getTasks validator", function () { it("should pass the request when only required query parameters are provided", async function () { const req = { query: { - q: `status:${tasksUsersStatus.MISSED_UPDATES}` - } + q: `status:${tasksUsersStatus.MISSED_UPDATES}`, + }, }; const res = {}; const nextMiddlewareSpy = Sinon.spy(); @@ -666,13 +666,13 @@ describe("getTasks validator", function () { it("should not pass validation when invalid query parameters are provided", async function () { const req = { query: { - invalidParam: "someValue" - } + invalidParam: "someValue", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getUsersValidator(req, res, nextMiddlewareSpy); @@ -683,13 +683,13 @@ describe("getTasks validator", function () { it("should not pass validation when required parameters are missing", async function () { const req = { query: { - size: "someQuery" - } + size: "someQuery", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getUsersValidator(req, res, nextMiddlewareSpy); @@ -700,13 +700,13 @@ describe("getTasks validator", function () { it("should not pass validation when invalid filter parameters are provided", async function () { const req = { query: { - q: "date:invalidOperator:2023-01-01" - } + q: "date:invalidOperator:2023-01-01", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await getUsersValidator(req, res, nextMiddlewareSpy); @@ -719,13 +719,13 @@ describe("getTasks validator", function () { it("should not pass the request when status is AVAILABLE", async function () { const req = { body: { - status: "AVAILABLE" - } + status: "AVAILABLE", + }, }; const res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; const nextMiddlewareSpy = Sinon.spy(); await updateSelfTask(req, res, nextMiddlewareSpy); diff --git a/test/unit/middlewares/tasks.test.js b/test/unit/middlewares/tasks.test.js index c3474fcfb..fe738904e 100644 --- a/test/unit/middlewares/tasks.test.js +++ b/test/unit/middlewares/tasks.test.js @@ -9,8 +9,8 @@ describe("updateTask function", function () { // Helper function to create a response object with a mocked boom function const createResponse = () => ({ boom: { - badRequest: sinon.stub().returns({ error: true, message: "Bad Request" }) - } + badRequest: sinon.stub().returns({ error: true, message: "Bad Request" }), + }, }); // Helper function to create a next function that simply calls done @@ -27,7 +27,7 @@ describe("updateTask function", function () { type: "Sample Type", status: "active", isNoteworthy: true, - isCollapsed: false + isCollapsed: false, }; const req = createRequest(validRequestBody); @@ -49,7 +49,7 @@ describe("updateTask function", function () { status: "invalid_status", isNoteworthy: "yes", isCollapsed: "no", - assignee: "" + assignee: "", }; const req = createRequest(invalidRequestBody); diff --git a/test/unit/middlewares/user-validator.test.js b/test/unit/middlewares/user-validator.test.js index a4250cbd1..a36279a09 100644 --- a/test/unit/middlewares/user-validator.test.js +++ b/test/unit/middlewares/user-validator.test.js @@ -9,7 +9,7 @@ describe("Middleware | Validators | User", function () { describe("Create user validator for validateJoinData", function () { it("lets the request pass to next", async function () { const req = { - body: joinData[0] + body: joinData[0], }; const res = {}; @@ -21,13 +21,13 @@ describe("Middleware | Validators | User", function () { it("Stops the propagation of the next", async function () { const req = { body: { - firstName: "Neha" - } + firstName: "Neha", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await validateJoinData(req, res, nextSpy).catch((err) => { @@ -43,8 +43,8 @@ describe("Middleware | Validators | User", function () { const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const next = sinon.spy(); @@ -55,8 +55,8 @@ describe("Middleware | Validators | User", function () { it("should call the next for api nonVerifiedDiscordUsers", async function () { const req = { body: { - action: "nonVerifiedDiscordUsers" - } + action: "nonVerifiedDiscordUsers", + }, }; const res = {}; @@ -69,14 +69,14 @@ describe("Middleware | Validators | User", function () { it("should stop the propagation of next", async function () { const req = { body: { - action: "" - } + action: "", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const next = sinon.spy(); @@ -90,7 +90,7 @@ describe("Middleware | Validators | User", function () { describe("Create user validator for updateUser", function () { it("lets the request pass to next", async function () { const req = { - body: userData[1] + body: userData[1], }; const res = {}; @@ -103,9 +103,9 @@ describe("Middleware | Validators | User", function () { const req = { body: { roles: { - maven: true - } - } + maven: true, + }, + }, }; const res = {}; @@ -119,14 +119,14 @@ describe("Middleware | Validators | User", function () { body: { roles: { in_discord: false, - developer: true - } - } + developer: true, + }, + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -141,13 +141,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "@invalidusername-12", - twitter_id: "abhayisawesome" - } + twitter_id: "abhayisawesome", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -162,13 +162,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "invalidusername", - twitter_id: "@abhayisawesome" - } + twitter_id: "@abhayisawesome", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -183,13 +183,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "invalidusername", - twitter_id: "abhayisawesome" - } + twitter_id: "abhayisawesome", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -204,13 +204,13 @@ describe("Middleware | Validators | User", function () { last_name: "patil", first_name: "Abhay", username: "invalidusername", - instagram_id: "@abhayisawesome" - } + instagram_id: "@abhayisawesome", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -226,13 +226,13 @@ describe("Middleware | Validators | User", function () { first_name: "Abhay", username: "invalidusername12", twitter_id: "abhayisawesome", - linkedin_id: "@abhay2011" - } + linkedin_id: "@abhay2011", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -248,13 +248,13 @@ describe("Middleware | Validators | User", function () { first_name: "Abhay", username: "invalidusername12", twitter_id: "abhayisawesome", - linkedin_id: "abhay 2011" - } + linkedin_id: "abhay 2011", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); await updateUser(req, res, nextSpy).catch((err) => { @@ -266,16 +266,16 @@ describe("Middleware | Validators | User", function () { it("Allows a valid username", async function () { const req = { body: { - username: "john-doe" - } + username: "john-doe", + }, }; const res = { boom: { badRequest: (message) => { throw new Error(message); - } - } + }, + }, }; const next = sinon.spy(); @@ -288,14 +288,14 @@ describe("Middleware | Validators | User", function () { it("Stops the propagation of next for an invalid username", async function () { const req = { body: { - username: "@john_doe" - } + username: "@john_doe", + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); @@ -313,8 +313,8 @@ describe("Middleware | Validators | User", function () { const req = { query: { filterBy: "unmerged_prs", - days: "30" - } + days: "30", + }, }; const res = {}; @@ -327,14 +327,14 @@ describe("Middleware | Validators | User", function () { it("Stops the propagation of the next", async function () { const req = { query: { - filterBy: 45 - } + filterBy: 45, + }, }; const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = sinon.spy(); diff --git a/test/unit/middlewares/userStatusValidator.js b/test/unit/middlewares/userStatusValidator.js index 3b1a9e74a..4635ea393 100644 --- a/test/unit/middlewares/userStatusValidator.js +++ b/test/unit/middlewares/userStatusValidator.js @@ -8,8 +8,8 @@ describe("Middleware | Validators | userStatus", function () { const res = {}; const req = { query: { - state: "IDLE" - } + state: "IDLE", + }, }; const nextSpy = Sinon.spy(); await validateGetQueryParams(req, res, nextSpy); @@ -24,14 +24,14 @@ describe("Middleware | Validators | userStatus", function () { it("stops the propogation of the event to next function", async function () { const res = { boom: { - badRequest: () => {} - } + badRequest: () => {}, + }, }; const nextSpy = Sinon.spy(); const req = { query: { - taskStatus: "invalidKey" - } + taskStatus: "invalidKey", + }, }; await validateGetQueryParams(req, res, nextSpy).catch((err) => { expect(err).to.be.an.instanceOf(Error); diff --git a/test/unit/middlewares/userStatusValidator.test.js b/test/unit/middlewares/userStatusValidator.test.js index fa35dcb77..19974dcb7 100644 --- a/test/unit/middlewares/userStatusValidator.test.js +++ b/test/unit/middlewares/userStatusValidator.test.js @@ -10,8 +10,8 @@ describe("Validation Tests for Cancel OOO", function () { beforeEach(function () { res = { boom: { - badRequest: Sinon.spy() - } + badRequest: Sinon.spy(), + }, }; nextSpy = Sinon.spy(); }); @@ -19,8 +19,8 @@ describe("Validation Tests for Cancel OOO", function () { it("should validate for a valid request", async function () { req = { body: { - cancelOoo: true - } + cancelOoo: true, + }, }; await validateUserStatus(req, res, nextSpy); expect(nextSpy.calledOnce).to.be.equal(true); @@ -29,8 +29,8 @@ describe("Validation Tests for Cancel OOO", function () { it("should not validate for an invalid request", async function () { const req = { body: { - cancelOoo: "not a boolean" - } + cancelOoo: "not a boolean", + }, }; try { await validateUserStatus(req, res, nextSpy); diff --git a/test/unit/middlewares/users-validator.test.js b/test/unit/middlewares/users-validator.test.js index e6133c542..d01359507 100644 --- a/test/unit/middlewares/users-validator.test.js +++ b/test/unit/middlewares/users-validator.test.js @@ -6,8 +6,8 @@ describe("Test the roles update validator", function () { it("Allows the request to pass with member property", async function () { const req = { body: { - member: true - } + member: true, + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -19,8 +19,8 @@ describe("Test the roles update validator", function () { const req = { query: { state: "ONBOARDING", - time: "31d" - } + time: "31d", + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -31,8 +31,8 @@ describe("Test the roles update validator", function () { it("Allows the request to pass with archived property", async function () { const req = { body: { - archived: true - } + archived: true, + }, }; const res = {}; const nextSpy = Sinon.spy(); @@ -45,13 +45,13 @@ describe("Test the roles update validator", function () { body: { member: true, archived: true, - reason: "test reason" - } + reason: "test reason", + }, }; const res = { boom: { - badRequest: Sinon.stub().returns("Bad Request") - } + badRequest: Sinon.stub().returns("Bad Request"), + }, }; const nextSpy = Sinon.spy(); await validateUpdateRoles(req, res, nextSpy); @@ -60,12 +60,12 @@ describe("Test the roles update validator", function () { it("Throws an error if neither member nor archived properties are present", async function () { const req = { - body: {} + body: {}, }; const res = { boom: { - badRequest: Sinon.stub().returns("Bad Request") - } + badRequest: Sinon.stub().returns("Bad Request"), + }, }; const nextSpy = Sinon.spy(); await validateUpdateRoles(req, res, nextSpy); diff --git a/test/unit/models/auctions.test.js b/test/unit/models/auctions.test.js index 1528d83c1..1b74b4cca 100644 --- a/test/unit/models/auctions.test.js +++ b/test/unit/models/auctions.test.js @@ -91,7 +91,7 @@ describe("auctions", function () { initialPrice, itemType, endTime: Date.now() - 60 * 60 * 1000, - quantity + quantity, }); const response = await auctions.fetchAvailableAuctions(); diff --git a/test/unit/models/challenges.test.js b/test/unit/models/challenges.test.js index c61780e03..64362e06d 100644 --- a/test/unit/models/challenges.test.js +++ b/test/unit/models/challenges.test.js @@ -35,11 +35,11 @@ describe("Challenges", function () { expect(data.start_date).to.be.deep.equal({ _seconds: challengeData.start_date, - _nanoseconds: 0 + _nanoseconds: 0, }); expect(data.end_date).to.be.deep.equal({ _seconds: challengeData.end_date, - _nanoseconds: 0 + _nanoseconds: 0, }); }); }); diff --git a/test/unit/models/discordactions.test.js b/test/unit/models/discordactions.test.js index 963e6574a..b95ce28b0 100644 --- a/test/unit/models/discordactions.test.js +++ b/test/unit/models/discordactions.test.js @@ -30,7 +30,7 @@ const { getMissedProgressUpdatesUsers, addInviteToInviteModel, getUserDiscordInvite, - groupUpdateLastJoinDate + groupUpdateLastJoinDate, } = require("../../../models/discordactions"); const { groupData, roleData, existingRole, memberGroupData } = require("../../fixtures/discordactions/discordactions"); const cleanDb = require("../../utils/cleanDb"); @@ -80,7 +80,7 @@ describe("discordactions", function () { beforeEach(function () { getStub = sinon.stub(discordRoleModel, "get").resolves({ - forEach: (callback) => groupData.forEach(callback) + forEach: (callback) => groupData.forEach(callback), }); }); @@ -184,7 +184,7 @@ describe("discordactions", function () { it("should add role to member and return success", async function () { getStub.resolves({ - empty: true + empty: true, }); addStub.resolves(); @@ -202,8 +202,8 @@ describe("discordactions", function () { getStub.returns({ limit: sinon.stub().resolves({ empty: false, - forEach: callbackFunction - }) + forEach: callbackFunction, + }), }); const result = await addGroupRoleToMember(roleData); delete result.id; @@ -214,7 +214,7 @@ describe("discordactions", function () { it("should throw an error if adding role fails", async function () { const error = new Error("Database error"); getStub.resolves({ - empty: true + empty: true, }); addStub.rejects(error); @@ -237,7 +237,7 @@ describe("discordactions", function () { deleteStub = sinon.stub(); sinon.stub(memberRoleModel, "doc").returns({ - delete: deleteStub.resolves() + delete: deleteStub.resolves(), }); }); @@ -300,8 +300,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }) - }) + json: () => Promise.resolve({ user: { avatar: 12345 } }), + }), ); const result = await updateDiscordImageForVerification(userDiscordId); @@ -313,8 +313,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }) - }) + json: () => Promise.resolve({ user: { avatar: 12345 } }), + }), ); try { @@ -331,8 +331,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ user: { avatar: 12345 } }) - }) + json: () => Promise.resolve({ user: { avatar: 12345 } }), + }), ); sinon.stub(logger, "error"); @@ -357,21 +357,21 @@ describe("discordactions", function () { newGroupData = groupData.map((group, index) => { return { ...group, - createdBy: allIds[Math.min(index, allIds.length - 1)] + createdBy: allIds[Math.min(index, allIds.length - 1)], }; }); const addRolesPromises = [ discordRoleModel.add(newGroupData[0]), discordRoleModel.add(newGroupData[1]), - discordRoleModel.add(newGroupData[2]) + discordRoleModel.add(newGroupData[2]), ]; await Promise.all(addRolesPromises); const addGroupRolesPromises = [ addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[0].discordId }), addGroupRoleToMember({ roleid: newGroupData[0].roleid, userid: userData[1].discordId }), - addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }) + addGroupRoleToMember({ roleid: newGroupData[1].roleid, userid: userData[0].discordId }), ]; await Promise.all(addGroupRolesPromises); }); @@ -400,7 +400,7 @@ describe("discordactions", function () { firstName: userData[0].first_name, lastName: userData[0].last_name, image: userData[0].picture.url, - isMember: true + isMember: true, }); expect(result[1]).to.deep.equal({ @@ -409,7 +409,7 @@ describe("discordactions", function () { firstName: userData[1].first_name, lastName: userData[1].last_name, image: userData[1].picture.url, - isMember: true + isMember: true, }); expect(result[2]).to.deep.equal({ @@ -418,7 +418,7 @@ describe("discordactions", function () { firstName: userData[2].first_name, lastName: userData[2].last_name, image: userData[2].picture.url, - isMember: false + isMember: false, }); }); }); @@ -434,7 +434,7 @@ describe("discordactions", function () { return addGroupRoleToMember({ roleid: roleId, userid: index, - date: admin.firestore.Timestamp.fromDate(new Date()) + date: admin.firestore.Timestamp.fromDate(new Date()), }); }); await Promise.all(addGroupRolesPromises); @@ -478,8 +478,8 @@ describe("discordactions", function () { dataAccessLayerStub.withArgs(sinon.match({ id })).resolves({ user: { username, - discordId - } + discordId, + }, }); }); }); @@ -528,8 +528,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(fetchStubResponse) - }) + json: () => Promise.resolve(fetchStubResponse), + }), ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -537,7 +537,7 @@ describe("discordactions", function () { const responseObj = { totalUsersStatus: length, successfulNicknameUpdates: length, - unsuccessfulNicknameUpdates: 0 + unsuccessfulNicknameUpdates: 0, }; const response = await updateUsersNicknameStatus(lastTimestamp); @@ -554,8 +554,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(fetchStubResponse) - }) + json: () => Promise.resolve(fetchStubResponse), + }), ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -576,8 +576,8 @@ describe("discordactions", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(fetchStubResponse) - }) + json: () => Promise.resolve(fetchStubResponse), + }), ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -617,20 +617,20 @@ describe("discordactions", function () { const { idleStatus: idleUserStatus, activeStatus: activeUserStatus, - userStatusDataForOooState: oooUserStatus + userStatusDataForOooState: oooUserStatus, } = userStatusData; const userIdList = await Promise.all([ await addUser(idleUser), // idle user with no task progress updates await addUser(activeUserWithProgressUpdates), // active user with task progress updates await addUser(activeUserWithNoUpdates), // active user with no task progress updates - await addUser(userNotInDiscord) // OOO user with no task progress updates + await addUser(userNotInDiscord), // OOO user with no task progress updates ]); activeUserId = userIdList[2]; await Promise.all([ await userStatusModel.updateUserStatus(userIdList[0], idleUserStatus), await userStatusModel.updateUserStatus(userIdList[1], activeUserStatus), await userStatusModel.updateUserStatus(userIdList[2], activeUserStatus), - await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus) + await userStatusModel.updateUserStatus(userIdList[3], oooUserStatus), ]); const tasksPromise = []; @@ -642,7 +642,7 @@ describe("discordactions", function () { assignee: userIdList[index], startedOn: (new Date().getTime() - convertDaysToMilliseconds(7)) / 1000, endsOn: (new Date().getTime() + convertDaysToMilliseconds(4)) / 1000, - status: TASK_STATUS.IN_PROGRESS + status: TASK_STATUS.IN_PROGRESS, }; tasksPromise.push(tasksModel.add(validTask)); @@ -673,7 +673,7 @@ describe("discordactions", function () { expect(result).to.be.deep.equal({ tasks: 4, missedUpdatesTasks: 3, - usersToAddRole: [activeUserWithProgressUpdates.discordId] + usersToAddRole: [activeUserWithProgressUpdates.discordId], }); }); @@ -694,25 +694,25 @@ describe("discordactions", function () { const date4 = new Date(); date4.setDate(date4.getDate() - 4); const result = await getMissedProgressUpdatesUsers({ - excludedDates: [date.valueOf(), date2.valueOf(), date3.valueOf(), date4.valueOf()] + excludedDates: [date.valueOf(), date2.valueOf(), date3.valueOf(), date4.valueOf()], }); expect(result).to.be.an("object"); expect(result).to.be.deep.equal({ tasks: 4, missedUpdatesTasks: 0, - usersToAddRole: [] + usersToAddRole: [], }); }); it("should not list of users when all days of week are excluded", async function () { const result = await getMissedProgressUpdatesUsers({ - excludedDays: [0, 1, 2, 3, 4, 5, 6] + excludedDays: [0, 1, 2, 3, 4, 5, 6], }); expect(result).to.be.an("object"); expect(result).to.be.deep.equal({ tasks: 0, missedUpdatesTasks: 0, - usersToAddRole: [] + usersToAddRole: [], }); }); @@ -729,13 +729,13 @@ describe("discordactions", function () { const result = await getMissedProgressUpdatesUsers({ excludedDays: [0, 1, 2, 3, 4, 5], - dateGap: 3 + dateGap: 3, }); expect(result).to.be.an("object"); expect(result).to.be.deep.equal({ tasks: 5, missedUpdatesTasks: 0, - usersToAddRole: [] + usersToAddRole: [], }); }); @@ -788,7 +788,7 @@ describe("discordactions", function () { describe("groupUpdateLastJoinDate", function () { beforeEach(function () { sinon.stub(discordRoleModel, "doc").returns({ - set: Promise.resolve() + set: Promise.resolve(), }); }); diff --git a/test/unit/models/events.test.js b/test/unit/models/events.test.js index 196e4ecde..f33d7e1ad 100644 --- a/test/unit/models/events.test.js +++ b/test/unit/models/events.test.js @@ -49,7 +49,7 @@ describe("Events", function () { await eventQuery.endActiveEvent({ id: docRef.id, reason: "test reason", - lock: true + lock: true, }); const docSnapshot = await eventModel.doc(docRef.id).get(); @@ -74,7 +74,7 @@ describe("Events", function () { name: "NonExistingPeer", eventId: docRef.id, role: "participant", - joinedAt: new Date() + joinedAt: new Date(), }; const result = await eventQuery.addPeerToEvent(peerData); @@ -96,13 +96,13 @@ describe("Events", function () { name: "ExistingPeer", eventId: docRef.id, role: "participant", - joinedAt: new Date() + joinedAt: new Date(), }; await peerModel.add({ peerId: peerData.peerId, name: peerData.name, - joinedEvents: [] + joinedEvents: [], }); await eventQuery.addPeerToEvent(peerData); @@ -123,7 +123,7 @@ describe("Events", function () { code: "test-code", role: "maven", event_id: eventDocRef.id, - id: "test-id" + id: "test-id", }; const result = await eventQuery.createEventCode(eventCodeData); @@ -141,14 +141,14 @@ describe("Events", function () { code: "test-code-1", role: "maven", event_id: eventDocRef.id, - id: "test-id-1" + id: "test-id-1", }; const eventCodeDataSecond = { code: "test-code-2", role: "maven", event_id: eventDocRef.id, - id: "test-id-2" + id: "test-id-2", }; await eventQuery.createEventCode(eventCodeDataFirst); @@ -198,7 +198,7 @@ describe("Events", function () { name: "Satyam Bajpai", eventId: docRef.id, role: "guest", - joinedAt: new Date() + joinedAt: new Date(), }; await eventQuery.addPeerToEvent(peerData); diff --git a/test/unit/models/external-accounts.test.js b/test/unit/models/external-accounts.test.js index e09452a19..93b9a79b0 100644 --- a/test/unit/models/external-accounts.test.js +++ b/test/unit/models/external-accounts.test.js @@ -37,7 +37,7 @@ describe("External Accounts", function () { expiry: externalAccountData[2].attributes.expiry, userName: externalAccountData[2].attributes.userName, discriminator: externalAccountData[2].attributes.discriminator, - userAvatar: externalAccountData[2].attributes.userAvatar + userAvatar: externalAccountData[2].attributes.userAvatar, }); }); diff --git a/test/unit/models/logs.test.js b/test/unit/models/logs.test.js index 866c3dd13..d0840d508 100644 --- a/test/unit/models/logs.test.js +++ b/test/unit/models/logs.test.js @@ -105,7 +105,7 @@ describe("Logs", function () { it("Should fetch all archived logs for given user_id", async function () { const { type, meta, body } = logsData.archivedUserDetailsModal[0]; const query = { - userId: body.archived_user.user_id + userId: body.archived_user.user_id, }; await logsQuery.addLog(type, meta, body); const data = await logsQuery.fetchLogs(query, type); @@ -120,7 +120,7 @@ describe("Logs", function () { it("Should throw response status 404, if username is incorrect in the query", async function () { const { type, meta, body } = logsData.archivedUserDetailsModal[0]; const query = { - userId: "1234_test" // incorrect username + userId: "1234_test", // incorrect username }; await logsQuery.addLog(type, meta, body); const data = await logsQuery.fetchLogs(query, type); diff --git a/test/unit/models/qrCodeAuth.test.js b/test/unit/models/qrCodeAuth.test.js index 1ef51ee65..2b961fa46 100644 --- a/test/unit/models/qrCodeAuth.test.js +++ b/test/unit/models/qrCodeAuth.test.js @@ -25,7 +25,7 @@ describe("mobile auth", function () { const userDeviceInfoData = { ...userDeviceInfoDataArray[0], user_id: userId, - authorization_status: "NOT_INIT" + authorization_status: "NOT_INIT", }; const response = await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); @@ -34,7 +34,7 @@ describe("mobile auth", function () { user_id: userID, device_info: deviceInfo, device_id: deviceId, - authorization_status: authorizationStatus + authorization_status: authorizationStatus, } = response.userDeviceInfoData; const data = (await qrCodeAuthModel.doc(userID).get()).data(); @@ -58,7 +58,7 @@ describe("mobile auth", function () { user_id: userId, device_info: "TEST_DEVICE_INFO", device_id: "TEST_DEVICE_ID", - authorization_status: "NOT_INIT" + authorization_status: "NOT_INIT", }; await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); const response = await qrCodeAuth.updateStatus(userId, "AUTHORIZED"); @@ -89,7 +89,7 @@ describe("mobile auth", function () { ...userDeviceInfoDataArray[0], user_id: userId, authorization_status: "NOT_INIT", - access_token: "ACCESS_TOKEN" + access_token: "ACCESS_TOKEN", }; await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); @@ -100,7 +100,7 @@ describe("mobile auth", function () { device_info: deviceInfo, device_id: deviceId, authorization_status: authorizationStatus, - access_token: accessToken + access_token: accessToken, } = userDeviceInfo; const data = (await qrCodeAuthModel.doc(userId).get()).data(); @@ -127,7 +127,7 @@ describe("mobile auth", function () { ...userDeviceInfoDataArray[0], user_id: userId, authorization_status: "NOT_INIT", - access_token: "ACCESS_TOKEN" + access_token: "ACCESS_TOKEN", }; await qrCodeAuth.storeUserDeviceInfo(userDeviceInfoData); @@ -138,7 +138,7 @@ describe("mobile auth", function () { device_info: deviceInfo, device_id: deviceId, authorization_status: authorizationStatus, - access_token: accessToken + access_token: accessToken, } = userDeviceInfo; const data = (await qrCodeAuthModel.doc(userId).get()).data(); diff --git a/test/unit/models/recruiters.test.js b/test/unit/models/recruiters.test.js index e08e1ca8e..ef5856e65 100644 --- a/test/unit/models/recruiters.test.js +++ b/test/unit/models/recruiters.test.js @@ -31,7 +31,7 @@ describe("Recruiters", function () { // Add recruiter data const { recruiterId, recruiterName, userInfo, timestamp } = await recruiters.addRecruiterInfo( recruiterData, - username + username, ); const data = (await recruiterModel.doc(recruiterId).get()).data(); diff --git a/test/unit/models/task-requests.test.js b/test/unit/models/task-requests.test.js index 3f335dbf1..74934f61e 100644 --- a/test/unit/models/task-requests.test.js +++ b/test/unit/models/task-requests.test.js @@ -9,12 +9,12 @@ const { addNewFields, removeOldField, addUsersCountAndCreatedAt, - rejectTaskRequest + rejectTaskRequest, } = require("./../../../models/taskRequests"); const { TASK_REQUEST_TYPE, TASK_REQUEST_STATUS, - TASK_REQUEST_ERROR_MESSAGE + TASK_REQUEST_ERROR_MESSAGE, } = require("./../../../constants/taskRequests"); const mockData = require("../../fixtures/task-requests/task-requests"); @@ -56,8 +56,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled - } + markdownEnabled: requestData.markdownEnabled, + }, ]); expect(addedTaskRequest.createdBy).to.equal(authenticatedUsername); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -76,7 +76,7 @@ describe("Task requests | models", function () { expect(addedTaskRequest).to.not.be.equal(undefined); expect(addedTaskRequest.requestors).to.deep.equal([ ...mockData.existingTaskRequest.requestors, - requestData.userId + requestData.userId, ]); expect(addedTaskRequest.status).to.equal(TASK_REQUEST_STATUS.PENDING); expect(addedTaskRequest.taskTitle).to.not.be.equal(undefined); @@ -90,8 +90,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled - } + markdownEnabled: requestData.markdownEnabled, + }, ]); expect(addedTaskRequest.createdBy).to.equal(mockData.existingTaskRequest.createdBy); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -126,8 +126,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled - } + markdownEnabled: requestData.markdownEnabled, + }, ]); expect(addedTaskRequest.createdBy).to.equal(authenticatedUsername); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -144,14 +144,14 @@ describe("Task requests | models", function () { ...mockData.taskRequestData, userId: "user456", requestType: TASK_REQUEST_TYPE.ASSIGNMENT, - taskId: "task123" + taskId: "task123", }; const result = await createRequest(requestData, authenticatedUsername); const addedTaskRequest = result.taskRequest; expect(addedTaskRequest).to.not.be.equal(undefined); expect(addedTaskRequest.requestors).to.deep.equal([ ...mockData.existingTaskRequest.requestors, - requestData.userId + requestData.userId, ]); expect(addedTaskRequest.status).to.equal(TASK_REQUEST_STATUS.PENDING); expect(addedTaskRequest.taskTitle).to.not.be.equal(undefined); @@ -166,8 +166,8 @@ describe("Task requests | models", function () { proposedStartDate: requestData.proposedStartDate, status: TASK_REQUEST_STATUS.PENDING, description: requestData.description, - markdownEnabled: requestData.markdownEnabled - } + markdownEnabled: requestData.markdownEnabled, + }, ]); expect(addedTaskRequest.createdBy).to.equal(mockData.existingTaskRequest.createdBy); expect(addedTaskRequest.createdAt).to.be.a("number"); @@ -183,7 +183,7 @@ describe("Task requests | models", function () { const requestData = { ...mockData.taskRequestData, requestType: TASK_REQUEST_TYPE.ASSIGNMENT, - taskId: "task123" + taskId: "task123", }; const result = await createRequest(requestData, authenticatedUsername); expect(result.alreadyRequesting).to.be.equal(true); @@ -203,20 +203,20 @@ describe("Task requests | models", function () { ...mockData.existingTaskRequest, status: TASK_REQUEST_STATUS.APPROVED, createdAt: Date.now(), - usersCount: 1 + usersCount: 1, }; const assignmentTaskRequest = { ...mockData.existingTaskRequest, requestType: TASK_REQUEST_TYPE.ASSIGNMENT, createdAt: Date.now() + 10000, - usersCount: 2 + usersCount: 2, }; const existingTaskRequest = { ...mockData.existingTaskRequest, createdAt: Date.now() + 20000, usersCount: 3 }; await Promise.all([ taskRequestsCollection.add(existingTaskRequest), taskRequestsCollection.add(mockData.existingOldTaskRequest), taskRequestsCollection.add(approvedTaskRequest), - taskRequestsCollection.add(assignmentTaskRequest) + taskRequestsCollection.add(assignmentTaskRequest), ]); const userDetails = userData[0]; userDetails.id = mockData.existingTaskRequest.users[0].userId; @@ -266,7 +266,7 @@ describe("Task requests | models", function () { it("should fetch only task requests of status pending", async function () { const queries = { - q: "status:pending" + q: "status:pending", }; const result = await fetchPaginatedTaskRequests(queries); result.data.forEach((taskRequest) => { @@ -276,7 +276,7 @@ describe("Task requests | models", function () { it("should fetch only task requests of status approved and request type of assignment", async function () { const queries = { - q: "status:approved request-type:assignment" + q: "status:approved request-type:assignment", }; const result = await fetchPaginatedTaskRequests(queries); result.data.forEach((taskRequest) => { @@ -287,7 +287,7 @@ describe("Task requests | models", function () { it("should limit the response list to size 1", async function () { const queries = { - size: "1" + size: "1", }; const result = await fetchPaginatedTaskRequests(queries); expect(result.data.length).to.be.equal(1); @@ -295,7 +295,7 @@ describe("Task requests | models", function () { it("should sort the response in descending order of created time", async function () { const queries = { - q: "sort:created-desc" + q: "sort:created-desc", }; const result = await fetchPaginatedTaskRequests(queries); const createdTimeList = result.data.map((data) => data.createdAt); @@ -306,7 +306,7 @@ describe("Task requests | models", function () { it("should sort the response in ascending order of requestors count", async function () { const queries = { - q: "sort:requestors-asc" + q: "sort:requestors-asc", }; const result = await fetchPaginatedTaskRequests(queries); const usersCountList = result.data.map((data) => data.usersCount); @@ -318,7 +318,7 @@ describe("Task requests | models", function () { it("should provide next set of results when next is passed in query param", async function () { const queries = { q: "sort:requestors-asc", - size: "1" + size: "1", }; const result = await fetchPaginatedTaskRequests(queries); expect(result.next).to.be.not.equal(undefined); @@ -332,7 +332,7 @@ describe("Task requests | models", function () { it("should provide previous set of results when prev is passed in query param", async function () { const queries = { q: "sort:requestors-asc", - size: "1" + size: "1", }; const result = await fetchPaginatedTaskRequests(queries); expect(result.next).to.be.not.equal(undefined); @@ -348,26 +348,26 @@ describe("Task requests | models", function () { it("should return error when an invalid next value is passed", async function () { const queries = { next: "abc", - size: "1" + size: "1", }; const result = await fetchPaginatedTaskRequests(queries); expect(result).to.be.deep.equal({ statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${queries.next}` + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_NEXT}: ${queries.next}`, }); }); it("should return error when an invalid prev value is passed", async function () { const queries = { prev: "abc", - size: "1" + size: "1", }; const result = await fetchPaginatedTaskRequests(queries); expect(result).to.be.deep.equal({ statusCode: 400, error: "Bad Request", - message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${queries.prev}` + message: `${TASK_REQUEST_ERROR_MESSAGE.INVALID_PREV}: ${queries.prev}`, }); }); }); @@ -393,7 +393,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.equal( approvedTask.data().updatedAt, - "When new task is created createdAt and updatedAt both are same" + "When new task is created createdAt and updatedAt both are same", ); expect(approvedTask.data().percentCompleted).to.equal(0); expect(approvedTask.data().priority).to.equal(DEFAULT_TASK_PRIORITY); @@ -416,7 +416,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.not.equal( approvedTask.data().updatedAt, - "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same" + "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same", ); }); @@ -514,7 +514,7 @@ describe("Task requests | models", function () { it("Should update the existing documents with multiple users", async function () { await Promise.all([ taskRequestsCollection.doc(taskRequestId1).set(mockData.existingOldTaskRequest), - taskRequestsCollection.doc(taskRequestId2).set(mockData.existingOldTaskRequestWithMultipleUsers) + taskRequestsCollection.doc(taskRequestId2).set(mockData.existingOldTaskRequestWithMultipleUsers), ]); const response = await addNewFields(); expect(response.totalDocuments).to.be.equal(2); @@ -526,10 +526,10 @@ describe("Task requests | models", function () { const taskRequestData2 = (await taskRequestsCollection.doc(taskRequestId2).get()).data(); expect(taskRequestData2.taskTitle).to.be.equal(taskData.taskData.title); expect(taskRequestData2.users[0].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[0] + mockData.existingOldTaskRequestWithMultipleUsers.requestors[0], ); expect(taskRequestData2.users[1].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[1] + mockData.existingOldTaskRequestWithMultipleUsers.requestors[1], ); expect(taskRequestData2.requestType).to.be.equal(TASK_REQUEST_TYPE.ASSIGNMENT); }); diff --git a/test/unit/models/taskBasedStatusUpdate.test.js b/test/unit/models/taskBasedStatusUpdate.test.js index 3dafed704..92e85b05c 100644 --- a/test/unit/models/taskBasedStatusUpdate.test.js +++ b/test/unit/models/taskBasedStatusUpdate.test.js @@ -9,7 +9,7 @@ const { updateUserStatusOnNewTaskAssignment, updateUserStatusOnTaskUpdate, batchUpdateUsersStatus, - getTaskBasedUsersStatus + getTaskBasedUsersStatus, } = require("../../../models/userStatus"); const cleanDb = require("../../utils/cleanDb"); const addUser = require("../../utils/addUser"); @@ -56,7 +56,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", ); expect(res.data.currentStatus).to.equal(userState.IDLE); }); @@ -103,7 +103,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -156,7 +156,7 @@ describe("Update Status based on task update", function () { const res = await updateUserStatusOnNewTaskAssignment(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -204,7 +204,7 @@ describe("Update Status based on task update", function () { await updateUserStatusOnNewTaskAssignment(userId).catch((err) => { expect(err).to.be.an.instanceOf(Error); expect(err.message).to.be.equal( - "Please reach out to the administrator as your user status is not recognized as valid." + "Please reach out to the administrator as your user status is not recognized as valid.", ); }); }); @@ -214,7 +214,7 @@ describe("Update Status based on task update", function () { expect(res).to.deep.equal({ status: 404, error: "Not Found", - message: "Something went wrong. Username funkeyMonkey123 could not be found." + message: "Something went wrong. Username funkeyMonkey123 could not be found.", }); }); @@ -279,7 +279,7 @@ describe("Update Status based on task update", function () { { userId: userId8, state: "ACTIVE" }, { userId: userId9, state: "ACTIVE" }, { userId: userId10, state: "ACTIVE" }, - { userId: userId11, state: "IDLE" } + { userId: userId11, state: "IDLE" }, ]; }); @@ -298,7 +298,7 @@ describe("Update Status based on task update", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered" + "idleUsersUnaltered", ); expect(result.usersCount).to.equal(12); expect(result.unprocessedUsers).to.equal(0); @@ -391,14 +391,14 @@ describe("Update Status based on task update", function () { totalIdleUsers: 1, totalActiveUsers: 2, totalUnprocessedUsers: 0, - unprocessedUsers: [] + unprocessedUsers: [], }); expect(result) .to.have.deep.property("users") .that.has.deep.members([ { userId: userId1, state: "ACTIVE" }, { userId: userId3, state: "IDLE" }, - { userId: userId2, state: "ACTIVE" } + { userId: userId2, state: "ACTIVE" }, ]); }); diff --git a/test/unit/models/tasks.test.js b/test/unit/models/tasks.test.js index f8a23a803..44a560fd5 100644 --- a/test/unit/models/tasks.test.js +++ b/test/unit/models/tasks.test.js @@ -33,7 +33,7 @@ describe("tasks", function () { const newAvailableTasks = await tasks.overdueTasks([ { ...taskData1, id: taskId1 }, - { ...taskData2, id: taskId2 } + { ...taskData2, id: taskId2 }, ]); newAvailableTasks.forEach((task) => { @@ -52,7 +52,7 @@ describe("tasks", function () { it("should add dependencies to firestore and return dependsOn array", async function () { const data = { taskId: "taskId1", - dependsOn: ["taskId2", "taskId3"] + dependsOn: ["taskId2", "taskId3"], }; const result = await addDependency(data); expect(result).to.deep.equal(data.dependsOn); @@ -61,7 +61,7 @@ describe("tasks", function () { it("should throw an error if there is an error while creating dependencies", async function () { const data = { taskId: "taskId1", - dependsOn: ["taskId2", "taskId3"] + dependsOn: ["taskId2", "taskId3"], }; const expectedError = new Error("test error"); dependencyModel.doc = () => { @@ -148,7 +148,7 @@ describe("tasks", function () { it("should paginate and fetch tasks with the passed size", async function () { const SIZE = 3; const result = await tasks.fetchPaginatedTasks({ - size: SIZE + size: SIZE, }); expect(result).to.have.property("allTasks"); @@ -231,7 +231,7 @@ describe("tasks", function () { const taskId2 = (await tasks.updateTask(tasksData[4])).taskId; const dependsOn = [taskId1, taskId2]; const data = { - dependsOn + dependsOn, }; await updateTask(data, taskId); @@ -247,7 +247,7 @@ describe("tasks", function () { const dependsOn = ["taskId1", "taskId2"]; const data = { - dependsOn + dependsOn, }; try { @@ -263,7 +263,7 @@ describe("tasks", function () { describe("update tasks", function () { it("should update status when assignee pass as payload", async function () { const data = { - assignee: "sagar" + assignee: "sagar", }; const taskId = (await tasks.updateTask(tasksData[4])).taskId; @@ -318,7 +318,7 @@ describe("tasks", function () { tasksData.forEach((task) => { const taskData = { ...task, - status: "COMPLETED" + status: "COMPLETED", }; addTasksPromises.push(tasksModel.add(taskData)); }); @@ -342,7 +342,7 @@ describe("tasks", function () { update: function () {}, commit: function () { throw new Error("Firestore batch update failed"); - } + }, }); try { await tasks.updateTaskStatus(); diff --git a/test/unit/models/users.test.js b/test/unit/models/users.test.js index 3f682dadb..82d735396 100644 --- a/test/unit/models/users.test.js +++ b/test/unit/models/users.test.js @@ -281,8 +281,8 @@ describe("users", function () { roles: { ...user.roles, in_discord: false, - archived: false - } + archived: false, + }, }; addUsersPromises.push(userModel.add(userData)); }); @@ -315,7 +315,7 @@ describe("users", function () { update: function () {}, commit: function () { throw new Error("Firestore batch update failed"); - } + }, }); try { @@ -382,7 +382,7 @@ describe("users", function () { it("should render users with onboarding state and time as 31days", async function () { const query = { state: "ONBOARDING", - time: "31d" + time: "31d", }; const result = await users.getUsersBasedOnFilter(query); expect(result.length).to.equal(1); diff --git a/test/unit/services/dataAccessLayer.test.js b/test/unit/services/dataAccessLayer.test.js index 4e36641f0..b55c8475f 100644 --- a/test/unit/services/dataAccessLayer.test.js +++ b/test/unit/services/dataAccessLayer.test.js @@ -13,7 +13,7 @@ const { retrieveMembers, retreiveFilteredUsers, levelSpecificAccess, - fetchUsersForKeyValues + fetchUsersForKeyValues, } = require("../../../services/dataAccessLayer"); const { KEYS_NOT_ALLOWED, ACCESS_LEVEL } = require("../../../constants/userDataLevels"); diff --git a/test/unit/services/discordMembersService.test.js b/test/unit/services/discordMembersService.test.js index 168b1aed8..e7d4c9c76 100644 --- a/test/unit/services/discordMembersService.test.js +++ b/test/unit/services/discordMembersService.test.js @@ -22,14 +22,14 @@ describe("getDiscordMemberDetails", function () { const expectedMemberDetails = { discordId: discordId, username: "Test User", - discriminator: "0001" + discriminator: "0001", }; fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(expectedMemberDetails) - }) + json: () => Promise.resolve(expectedMemberDetails), + }), ); const response = await getDiscordMemberDetails(discordId); @@ -43,8 +43,8 @@ describe("getDiscordMemberDetails", function () { fetchStub.returns( Promise.resolve({ status: 404, - json: () => Promise.resolve({ message: "User does not exist" }) - }) + json: () => Promise.resolve({ message: "User does not exist" }), + }), ); try { diff --git a/test/unit/services/discordService.test.js b/test/unit/services/discordService.test.js index 155831b51..4f507ab05 100644 --- a/test/unit/services/discordService.test.js +++ b/test/unit/services/discordService.test.js @@ -5,7 +5,7 @@ const { addRoleToUser, getDiscordMembers, removeRoleFromUser, - setUserDiscordNickname + setUserDiscordNickname, } = require("../../../services/discordService"); const { fetchAllUsers } = require("../../../models/users"); const Sinon = require("sinon"); @@ -46,8 +46,8 @@ describe("Discord services", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve({ message: "done" }) - }) + json: () => Promise.resolve({ message: "done" }), + }), ); const response = await addRoleToUser("123456789", "987654321"); @@ -69,8 +69,8 @@ describe("Discord services", function () { fetchStub.returns( Promise.resolve({ status: 200, - json: () => Promise.resolve(discordMembersArray.getDiscordMembers) - }) + json: () => Promise.resolve(discordMembersArray.getDiscordMembers), + }), ); const response = await getDiscordMembers(); @@ -103,14 +103,14 @@ describe("Discord services", function () { json: () => Promise.resolve({ message: "Role Removed Successfully", - userAffected: { userid: "987654321123456789", roleid: "112233445566778899" } - }) - }) + userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, + }), + }), ); const response = await removeRoleFromUser("112233445566778899", "987654321123456789"); expect(response).to.deep.equal({ message: "Role Removed Successfully", - userAffected: { userid: "987654321123456789", roleid: "112233445566778899" } + userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, }); expect(fetchStub.calledOnce).to.be.equal(true); }); @@ -140,9 +140,9 @@ describe("Discord services", function () { json: () => Promise.resolve({ userEffected: "Kotesh", - message: "User nickname changed successfully" - }) - }) + message: "User nickname changed successfully", + }), + }), ); const response = await setUserDiscordNickname("Kotesh", "aMYlI7sxQ4JMPwiqLQlp"); diff --git a/test/unit/services/getUserIdsFromRoleId.test.js b/test/unit/services/getUserIdsFromRoleId.test.js index 115accd68..92cbcd3ee 100644 --- a/test/unit/services/getUserIdsFromRoleId.test.js +++ b/test/unit/services/getUserIdsFromRoleId.test.js @@ -16,12 +16,12 @@ describe("FCM token services", function () { it("Should get user id's from role id", async function () { const memberRoleModelData = { roleid: "1147354535342383104", - userid: "jskdhaskjhdkasjh" + userid: "jskdhaskjhdkasjh", }; await addGroupRoleToMember(memberRoleModelData); const memberRoleModelData2 = { roleid: "1147354535342383104", - userid: "EFEGFHERIUGHIUER" + userid: "EFEGFHERIUGHIUER", }; await addGroupRoleToMember(memberRoleModelData2); diff --git a/test/unit/services/githubService.test.js b/test/unit/services/githubService.test.js index b759417cb..d3f9d090d 100644 --- a/test/unit/services/githubService.test.js +++ b/test/unit/services/githubService.test.js @@ -23,7 +23,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open PRs", async function () { const response = await githubService.fetchOpenPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1", ); }); }); @@ -32,15 +32,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch open PRs", async function () { const params = { searchParams: { - created: "2023-01-01..2023-02-01" + created: "2023-01-01..2023-02-01", }, resultOptions: { - order: "desc" - } + order: "desc", + }, }; const response = await githubService.fetchOpenPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1", ); }); }); @@ -50,7 +50,7 @@ describe("githubService", function () { await addUser(); const response = await githubService.fetchPRsByUser(githubUserInfo[0].username); expect(response).to.be.equal( - `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr` + `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr`, ); }); }); @@ -59,7 +59,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch merged Prs", async function () { const response = await githubService.fetchMergedPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1", ); }); }); @@ -68,15 +68,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch merged Prs", async function () { const params = { searchParams: { - merged: "<=2023-01-01" + merged: "<=2023-01-01", }, resultOptions: { - order: "asc" - } + order: "asc", + }, }; const response = await githubService.fetchMergedPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1", ); }); }); @@ -85,7 +85,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues", async function () { const response = await githubService.fetchOpenIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1", ); }); }); @@ -94,15 +94,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues", async function () { const params = { searchParams: { - created: ">=2023-01-01" + created: ">=2023-01-01", }, resultOptions: { - order: "desc" - } + order: "desc", + }, }; const response = await githubService.fetchOpenIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1", ); }); }); @@ -111,7 +111,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch closed issues", async function () { const response = await githubService.fetchClosedIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1", ); }); }); @@ -120,15 +120,15 @@ describe("githubService", function () { it("Should generate the correct url to fetch closed issues", async function () { const params = { searchParams: { - closed: "2023-01-01..2023-02-01" + closed: "2023-01-01..2023-02-01", }, resultOptions: { - order: "desc" - } + order: "desc", + }, }; const response = await githubService.fetchClosedIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1" + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1", ); }); }); @@ -144,7 +144,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues with search param", async function () { const searchString = "website"; const response = await githubService.fetchOpenIssues({ - searchString + searchString, }); const baseURL = config.get("githubApi.baseUrl"); @@ -181,7 +181,7 @@ describe("githubService", function () { it("Should throw an error if no merged PRs found for user", async function () { const username = "dfgfdgdg"; const stub = sinon.stub(githubService, "fetchLastMergedPR").returns({ - items: [] + items: [], }); try { diff --git a/test/unit/services/tasks.test.js b/test/unit/services/tasks.test.js index c059bfcfd..02d424134 100644 --- a/test/unit/services/tasks.test.js +++ b/test/unit/services/tasks.test.js @@ -17,7 +17,7 @@ describe("Tasks services", function () { taskDataArray.forEach((task) => { const taskData = { ...task, - status: "COMPLETED" + status: "COMPLETED", }; addTasksPromises.push(tasksModel.add(taskData)); }); @@ -49,7 +49,7 @@ describe("Tasks services", function () { totalUpdatedStatus: 8, totalOperationsFailed: 0, updatedTaskDetails: taskDetails, - failedTaskDetails: [] + failedTaskDetails: [], }); }); @@ -59,7 +59,7 @@ describe("Tasks services", function () { update: function () {}, commit: function () { throw new Error("Firebase batch operation failed"); - } + }, }); const res = await updateTaskStatusToDone(tasks); @@ -68,7 +68,7 @@ describe("Tasks services", function () { totalUpdatedStatus: 0, totalOperationsFailed: 8, updatedTaskDetails: [], - failedTaskDetails: taskDetails + failedTaskDetails: taskDetails, }); }); }); diff --git a/test/unit/services/users.test.js b/test/unit/services/users.test.js index db3fa3f3f..292cb613c 100644 --- a/test/unit/services/users.test.js +++ b/test/unit/services/users.test.js @@ -20,8 +20,8 @@ describe("Users services", function () { roles: { ...user.roles, in_discord: false, - archived: false - } + archived: false, + }, }; addUsersPromises.push(userModel.add(userData)); }); @@ -57,7 +57,7 @@ describe("Users services", function () { totalUsersArchived: 20, totalOperationsFailed: 0, updatedUserDetails: userDetails, - failedUserDetails: [] + failedUserDetails: [], }); }); @@ -67,7 +67,7 @@ describe("Users services", function () { update: function () {}, commit: function () { throw new Error("Firebase batch operation failed"); - } + }, }); const res = await archiveUsers(users); @@ -77,7 +77,7 @@ describe("Users services", function () { totalUsersArchived: 0, totalOperationsFailed: 20, updatedUserDetails: [], - failedUserDetails: userDetails + failedUserDetails: userDetails, }); }); }); diff --git a/test/unit/utils/customWordCountValidator.test.js b/test/unit/utils/customWordCountValidator.test.js index c93d090df..c2f504433 100644 --- a/test/unit/utils/customWordCountValidator.test.js +++ b/test/unit/utils/customWordCountValidator.test.js @@ -5,7 +5,7 @@ describe("customWordCountValidator", function () { it("should return an error if the word count is less than the desired count", function () { const value = "This is a test string with more than 100 words."; const helpers = { - error: () => "Word count validation failed." + error: () => "Word count validation failed.", }; const wordCount = 100; @@ -16,7 +16,7 @@ describe("customWordCountValidator", function () { it("should return the original value if the word count meets the desired count", function () { const value = "This string has more than 100 words. " + "This ".repeat(96) + "word."; const helpers = { - error: () => "Word count validation failed." + error: () => "Word count validation failed.", }; const wordCount = 100; diff --git a/test/unit/utils/data-access.test.js b/test/unit/utils/data-access.test.js index 33955c746..42f1b1d06 100644 --- a/test/unit/utils/data-access.test.js +++ b/test/unit/utils/data-access.test.js @@ -7,9 +7,9 @@ describe("removeObjectField", function () { a: { b: { c: 42, - d: "hello" - } - } + d: "hello", + }, + }, }; removeObjectField("a.b.c", obj); @@ -17,9 +17,9 @@ describe("removeObjectField", function () { expect(obj).to.deep.equal({ a: { b: { - d: "hello" - } - } + d: "hello", + }, + }, }); }); @@ -27,7 +27,7 @@ describe("removeObjectField", function () { const arr = [ { id: 1, a: "abc" }, { id: 2, a: "def" }, - { id: 3, b: "ghi" } + { id: 3, b: "ghi" }, ]; removeObjectField("*.a", arr); @@ -42,25 +42,25 @@ describe("removeObjectField", function () { a: "abc", z: [ { a: "abc", b: "def" }, - { a: "def", b: "def" } - ] + { a: "def", b: "def" }, + ], }, { id: 2, a: "def", z: [ { a: "abc", b: "def" }, - { a: "def", b: "def" } - ] + { a: "def", b: "def" }, + ], }, { id: 3, b: "ghi", z: [ { a: "abc", b: "def" }, - { a: "def", b: "def" } - ] - } + { a: "def", b: "def" }, + ], + }, ]; removeObjectField("*.z.*.a", arr); @@ -69,18 +69,18 @@ describe("removeObjectField", function () { { id: 1, a: "abc", - z: [{ b: "def" }, { b: "def" }] + z: [{ b: "def" }, { b: "def" }], }, { id: 2, a: "def", - z: [{ b: "def" }, { b: "def" }] + z: [{ b: "def" }, { b: "def" }], }, { id: 3, b: "ghi", - z: [{ b: "def" }, { b: "def" }] - } + z: [{ b: "def" }, { b: "def" }], + }, ]); }); @@ -89,9 +89,9 @@ describe("removeObjectField", function () { a: { b: { c: 42, - d: "hello" - } - } + d: "hello", + }, + }, }; removeObjectField("*", obj); @@ -103,8 +103,8 @@ describe("removeObjectField", function () { const obj = { b: { c: 42, - d: "hello" - } + d: "hello", + }, }; removeObjectField("x.y.z", obj); @@ -112,8 +112,8 @@ describe("removeObjectField", function () { expect(obj).to.deep.equal({ b: { c: 42, - d: "hello" - } + d: "hello", + }, }); }); diff --git a/test/unit/utils/events.test.js b/test/unit/utils/events.test.js index 1c82e316f..527c849ff 100644 --- a/test/unit/utils/events.test.js +++ b/test/unit/utils/events.test.js @@ -8,14 +8,14 @@ describe("removeUnwantedProperties", function () { property1: "value1", property2: "value2", property3: "value3", - property4: "value4" + property4: "value4", }; const cleanData = removeUnwantedProperties(propertiesToRemove, data); expect(cleanData).to.deep.equal({ property1: "value1", - property3: "value3" + property3: "value3", }); }); @@ -26,14 +26,14 @@ describe("removeUnwantedProperties", function () { property1: "value1", property2: "value2", property3: "value3", - property4: "value4" + property4: "value4", }, { property1: "value5", property2: "value6", property3: "value7", - property4: "value8" - } + property4: "value8", + }, ]; const cleanData = removeUnwantedProperties(propertiesToRemove, data); @@ -41,12 +41,12 @@ describe("removeUnwantedProperties", function () { expect(cleanData).to.deep.equal([ { property1: "value1", - property3: "value3" + property3: "value3", }, { property1: "value5", - property3: "value7" - } + property3: "value7", + }, ]); }); diff --git a/test/unit/utils/helper.test.js b/test/unit/utils/helper.test.js index 39196c9c7..83ee8f054 100644 --- a/test/unit/utils/helper.test.js +++ b/test/unit/utils/helper.test.js @@ -3,7 +3,7 @@ const { getDateTimeRangeForPRs, getQualifiers, getPaginatedLink, - findSubscribedGroupIds + findSubscribedGroupIds, } = require("../../../utils/helper"); const { TASK_STATUS, TASK_SIZE } = require("../../../constants/tasks"); const { expect } = chai; @@ -43,7 +43,7 @@ describe("helper", function () { filterBy: "OPEN_PRS", sortBy: "RECENT_FIRST", startDate: "2023-01-01", - endDate: "2023-03-01" + endDate: "2023-03-01", }); }); }); @@ -54,7 +54,7 @@ describe("helper", function () { const dev = true; const query = { dev, - status + status, }; const endpoint = "/tasks"; const cursorKey = "next"; @@ -63,7 +63,7 @@ describe("helper", function () { query, endpoint: "/tasks", cursorKey, - docId + docId, }); expect(result).to.contain(endpoint); expect(result).to.contain(`status=${status}`); @@ -80,7 +80,7 @@ describe("helper", function () { const query = { dev, status, - next: nextId + next: nextId, }; const endpoint = "/tasks"; const cursorKey = "prev"; @@ -89,7 +89,7 @@ describe("helper", function () { query, endpoint: "/tasks", cursorKey, - docId + docId, }); expect(result).to.contain(endpoint); expect(result).to.contain(`status=${status}`); @@ -103,7 +103,7 @@ describe("helper", function () { it("should return set of member groupIds", function () { const memberGroupIds = findSubscribedGroupIds("1234", [ { userid: "1234", roleid: "1" }, - { userid: "12345", roleid: "3" } + { userid: "12345", roleid: "3" }, ]); expect(memberGroupIds).to.deep.equal(new Set(["1"])); }); diff --git a/test/unit/utils/logs.test.js b/test/unit/utils/logs.test.js index 441038f04..c9a995a8a 100644 --- a/test/unit/utils/logs.test.js +++ b/test/unit/utils/logs.test.js @@ -5,12 +5,12 @@ describe("logs utils", function () { describe("formatLogsForFeed", function () { const usersMap = { user1: { username: "palak-gupta" }, - user2: { username: "mock-2" } + user2: { username: "mock-2" }, }; const tasksMap = { task1: { title: "Link details page to status site" }, - task2: { title: "Introduce /ooo command on discord" } + task2: { title: "Introduce /ooo command on discord" }, }; it("should format logs for OOO type", function () { @@ -19,7 +19,7 @@ describe("logs utils", function () { createdAt: 1710181066410, createdBy: "user1", requestId: "request123", - action: "create" + action: "create", }, type: "REQUEST_CREATED", body: { @@ -31,12 +31,12 @@ describe("logs utils", function () { state: "PENDING", type: "OOO", message: "For testing purpose", - updatedAt: 1710181064968 + updatedAt: 1710181064968, }, timestamp: { _seconds: 1710181066, - _nanoseconds: 410000000 - } + _nanoseconds: 410000000, + }, }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap); @@ -46,7 +46,7 @@ describe("logs utils", function () { requestId: "request123", from: 1710288000000, until: 1710288050000, - message: "For testing purpose" + message: "For testing purpose", }); }); @@ -56,16 +56,16 @@ describe("logs utils", function () { extensionRequestId: "po1gNOCXUP2IFsChcmn8", userId: "user2", taskId: "task1", - username: "techlord" + username: "techlord", }, type: "extensionRequests", body: { - status: "APPROVED" + status: "APPROVED", }, timestamp: { _seconds: 1709316797, - _nanoseconds: 616000000 - } + _nanoseconds: 616000000, + }, }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap, tasksMap); @@ -78,7 +78,7 @@ describe("logs utils", function () { type: "extensionRequests", user: "mock-2", userId: "user2", - username: "techlord" + username: "techlord", }); }); @@ -91,8 +91,8 @@ describe("logs utils", function () { from: "2024-03-24", until: "2024-03-25", message: "Out of office", - extensionRequestId: "extension123" - } + extensionRequestId: "extension123", + }, }; const formattedLog = formatLogsForFeed(invalidLogsSnapshot, usersMap); @@ -105,19 +105,19 @@ describe("logs utils", function () { meta: { userId: "user1", taskId: "task2", - username: "shubham-sharma" + username: "shubham-sharma", }, type: "task", body: { new: { - percentCompleted: 40 + percentCompleted: 40, }, - subType: "update" + subType: "update", }, timestamp: { _seconds: 1711273137, - _nanoseconds: 96000000 - } + _nanoseconds: 96000000, + }, }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap, tasksMap); @@ -130,7 +130,7 @@ describe("logs utils", function () { type: "task", user: "shubham-sharma", userId: "user1", - username: "shubham-sharma" + username: "shubham-sharma", }); }); @@ -138,17 +138,17 @@ describe("logs utils", function () { const logsSnapshot = { meta: { rejectedBy: "user2", - userId: "user1" + userId: "user1", }, type: "PROFILE_DIFF_REJECTED", body: { profileDiffId: "F8e0II1X7qZwzA1CbF0l", - message: "" + message: "", }, timestamp: { _seconds: 1708098695, - _nanoseconds: 709000000 - } + _nanoseconds: 709000000, + }, }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap); @@ -156,7 +156,7 @@ describe("logs utils", function () { expect(formattedLog).to.deep.equal({ user: "palak-gupta", rejectedBy: "mock-2", - message: "" + message: "", }); }); @@ -164,17 +164,17 @@ describe("logs utils", function () { const logsSnapshot = { meta: { approvedBy: "user1", - userId: "user2" + userId: "user2", }, type: "PROFILE_DIFF_APPROVED", body: { profileDiffId: "7sPvm4ooC1PyC91A5KVS", - message: "" + message: "", }, timestamp: { _seconds: 1707253607, - _nanoseconds: 697000000 - } + _nanoseconds: 697000000, + }, }; const formattedLog = formatLogsForFeed(logsSnapshot, usersMap); @@ -182,7 +182,7 @@ describe("logs utils", function () { expect(formattedLog).to.deep.equal({ approvedBy: "palak-gupta", user: "mock-2", - message: "" + message: "", }); }); }); @@ -191,7 +191,7 @@ describe("logs utils", function () { const data = [ { username: "palak", id: "100", task: "task2" }, { username: "mock-user-1", id: "101", task: "task23" }, - { username: "mock-user-2", id: "102", task: "task4" } + { username: "mock-user-2", id: "102", task: "task4" }, ]; it("mapify data based on username", function () { @@ -200,18 +200,18 @@ describe("logs utils", function () { "mock-user-1": { id: "101", username: "mock-user-1", - task: "task23" + task: "task23", }, "mock-user-2": { id: "102", username: "mock-user-2", - task: "task4" + task: "task4", }, palak: { id: "100", username: "palak", - task: "task2" - } + task: "task2", + }, }); }); }); diff --git a/test/unit/utils/parseSearchQuery.test.js b/test/unit/utils/parseSearchQuery.test.js index 4fbeaff8b..347d752e2 100644 --- a/test/unit/utils/parseSearchQuery.test.js +++ b/test/unit/utils/parseSearchQuery.test.js @@ -9,7 +9,7 @@ describe("parseSearchQuery", function () { expect(result).to.deep.equal({ searchTerm: "example", assignee: "john.doe", - status: "in_progress" + status: "in_progress", }); }); @@ -26,7 +26,7 @@ describe("parseSearchQuery", function () { expect(result).to.deep.equal({ searchTerm: "example", - assignee: "john.doe" + assignee: "john.doe", }); }); @@ -36,7 +36,7 @@ describe("parseSearchQuery", function () { expect(result).to.deep.equal({ searchTerm: "test", - assignee: "john.doe" + assignee: "john.doe", }); }); }); diff --git a/test/unit/utils/queryParser.test.js b/test/unit/utils/queryParser.test.js index ec967c671..562034c74 100644 --- a/test/unit/utils/queryParser.test.js +++ b/test/unit/utils/queryParser.test.js @@ -8,7 +8,7 @@ describe("parseQueryParams", function () { expect(parsedParams).to.deep.equal({ status: ["APPROVED", "DENIED"], - assignee: "user1" + assignee: "user1", }); }); @@ -25,7 +25,7 @@ describe("parseQueryParams", function () { expect(parsedParams).to.deep.equal({ status: ["APPROVED", "DENIED"], - assignee: "user1" + assignee: "user1", }); }); }); diff --git a/test/unit/utils/rqlQueryParser.test.js b/test/unit/utils/rqlQueryParser.test.js index 5111041d5..101fb1fb2 100644 --- a/test/unit/utils/rqlQueryParser.test.js +++ b/test/unit/utils/rqlQueryParser.test.js @@ -7,7 +7,7 @@ describe("RQLQueryParser", function () { const parser = new RQLQueryParser(queryString); const filterQueries = parser.getFilterQueries(); expect(filterQueries).to.deep.equal({ - key: [{ operator: Operators.INCLUDE, value: "value" }] + key: [{ operator: Operators.INCLUDE, value: "value" }], }); }); @@ -18,9 +18,9 @@ describe("RQLQueryParser", function () { expect(filterQueries).to.deep.equal({ key: [ { operator: Operators.INCLUDE, value: "value" }, - { operator: Operators.INCLUDE, value: "value2" } + { operator: Operators.INCLUDE, value: "value2" }, ], - key2: [{ operator: Operators.INCLUDE, value: "value" }] + key2: [{ operator: Operators.INCLUDE, value: "value" }], }); }); @@ -31,9 +31,9 @@ describe("RQLQueryParser", function () { expect(filterQueries).to.deep.equal({ key: [ { operator: Operators.INCLUDE, value: "value" }, - { operator: Operators.EXCLUDE, value: "value2" } + { operator: Operators.EXCLUDE, value: "value2" }, ], - key2: [{ operator: Operators.EXCLUDE, value: "value" }] + key2: [{ operator: Operators.EXCLUDE, value: "value" }], }); }); @@ -42,7 +42,7 @@ describe("RQLQueryParser", function () { const parser = new RQLQueryParser(queryString); const sortQueries = parser.getSortQueries(); expect(sortQueries).to.deep.equal({ - key: "desc" + key: "desc", }); }); @@ -54,7 +54,7 @@ describe("RQLQueryParser", function () { { operator: Operators.INCLUDE, value: "value1", type: QueryTypes.FILTER, key: "key" }, { operator: Operators.EXCLUDE, value: "value2", type: QueryTypes.FILTER, key: "key" }, { operator: Operators.INCLUDE, value: "value1", type: QueryTypes.FILTER, key: "key2" }, - { value: "asc", operator: Operators.INCLUDE, type: QueryTypes.SORT, key: "key" } + { value: "asc", operator: Operators.INCLUDE, type: QueryTypes.SORT, key: "key" }, ]); }); diff --git a/test/unit/utils/sendTaskUpdate.test.js b/test/unit/utils/sendTaskUpdate.test.js index c8f9fcc6a..7dde895b9 100644 --- a/test/unit/utils/sendTaskUpdate.test.js +++ b/test/unit/utils/sendTaskUpdate.test.js @@ -23,7 +23,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "Task title" + "Task title", ); expect(result).to.equal(undefined); }); @@ -38,7 +38,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "task title" + "task title", ); } catch (err) { expect(err).to.be.equal(error); diff --git a/test/unit/utils/taskBasedStatusUpdates.test.js b/test/unit/utils/taskBasedStatusUpdates.test.js index cc126a205..b589703af 100644 --- a/test/unit/utils/taskBasedStatusUpdates.test.js +++ b/test/unit/utils/taskBasedStatusUpdates.test.js @@ -11,7 +11,7 @@ const { createUserStatusWithState, updateCurrentStatusToState, updateFutureStatusToState, - getNextDayTimeStamp + getNextDayTimeStamp, } = require("../../../utils/userStatus"); describe("Task Based User Status Update Util Functions", function () { @@ -21,8 +21,8 @@ describe("Task Based User Status Update Util Functions", function () { status: "success", message: `The status is already ${userState.ACTIVE}`, data: { - currentStatus: userState.ACTIVE - } + currentStatus: userState.ACTIVE, + }, }); }); @@ -32,7 +32,7 @@ describe("Task Based User Status Update Util Functions", function () { expect(result).to.deep.equal({ status: 500, message: "user not found", - error: "Internal Server Error" + error: "Internal Server Error", }); }); @@ -40,15 +40,15 @@ describe("Task Based User Status Update Util Functions", function () { it("should return true if the user has active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 2 + size: 2, }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const tasksModel = { - where: mockWhere + where: mockWhere, }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -58,15 +58,15 @@ describe("Task Based User Status Update Util Functions", function () { it("should return false if the user does not have any active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 0 + size: 0, }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const tasksModel = { - where: mockWhere + where: mockWhere, }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -80,10 +80,10 @@ describe("Task Based User Status Update Util Functions", function () { const mockGet = () => Promise.reject(mockError); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const tasksModel = { - where: mockWhere + where: mockWhere, }; try { @@ -101,15 +101,15 @@ describe("Task Based User Status Update Util Functions", function () { const userId = "user123"; const mockSnapshot = { size: 1, - docs: [{ id: userId }] + docs: [{ id: userId }], }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const usersModel = { - where: mockWhere + where: mockWhere, }; const result = await getUserIdFromUserName(userName, usersModel); @@ -119,15 +119,15 @@ describe("Task Based User Status Update Util Functions", function () { it("should throw error if query size is 0", async function () { const userName = "randhir"; const mockSnapshot = { - size: 0 + size: 0, }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const usersModel = { - where: mockWhere + where: mockWhere, }; try { @@ -145,10 +145,10 @@ describe("Task Based User Status Update Util Functions", function () { const mockGet = () => Promise.reject(mockError); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const usersModel = { - where: mockWhere + where: mockWhere, }; try { @@ -165,15 +165,15 @@ describe("Task Based User Status Update Util Functions", function () { const userId = "user123"; const state = userState.ACTIVE; const mockCollection = { - add: sinon.stub().resolves() + add: sinon.stub().resolves(), }; const result = await createUserStatusWithState(userId, mockCollection, state); expect(result).to.deep.equal({ status: "success", message: `UserStatus Document did not previously exist, New UserStatus Document created and updated to an ${state} status.`, data: { - currentStatus: state - } + currentStatus: state, + }, }); }); @@ -181,7 +181,7 @@ describe("Task Based User Status Update Util Functions", function () { const userId = "user123"; const state = userState.ACTIVE; const mockCollection = { - add: sinon.stub().rejects(new Error("FireStore Error")) + add: sinon.stub().rejects(new Error("FireStore Error")), }; try { await createUserStatusWithState(userId, mockCollection, state); @@ -208,29 +208,29 @@ describe("Task Based User Status Update Util Functions", function () { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp - } - } + updatedAt: currentTimeStamp, + }, + }, }; }); it("should update current status", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().resolves() + update: sinon.stub().resolves(), }; const response = await updateCurrentStatusToState(mockCollection, latestStatusData, newState); expect(response).to.deep.equal({ status: "success", message: "The status has been updated to ACTIVE", - data: { previousStatus: "IDLE", currentStatus: "ACTIVE" } + data: { previousStatus: "IDLE", currentStatus: "ACTIVE" }, }); }); it("should throw an error if firebase query fails", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().rejects(new Error("Firestore error")) + update: sinon.stub().rejects(new Error("Firestore error")), }; try { await updateCurrentStatusToState(mockCollection, latestStatusData, newState); @@ -257,29 +257,29 @@ describe("Task Based User Status Update Util Functions", function () { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp - } - } + updatedAt: currentTimeStamp, + }, + }, }; }); it("should update the Future status", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().resolves() + update: sinon.stub().resolves(), }; const response = await updateFutureStatusToState(mockCollection, latestStatusData, newState); expect(response).to.deep.equal({ status: "success", message: "As the user is currently OOO, the future status has been updated to ACTIVE.", - data: { currentStatus: "OOO", futureStatus: "ACTIVE" } + data: { currentStatus: "OOO", futureStatus: "ACTIVE" }, }); }); it("should throw an error if firebase query fails", async function () { const mockCollection = { doc: () => mockCollection, - update: sinon.stub().rejects(new Error("Firestore error")) + update: sinon.stub().rejects(new Error("Firestore error")), }; try { await updateFutureStatusToState(mockCollection, latestStatusData, newState); diff --git a/test/unit/utils/tasks.test.js b/test/unit/utils/tasks.test.js index 942e5b340..884663800 100644 --- a/test/unit/utils/tasks.test.js +++ b/test/unit/utils/tasks.test.js @@ -7,7 +7,7 @@ describe("Utils | Tasks", function () { describe("transformTasksUsersQuery", function () { it("should correctly transform given queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4` + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4`, ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); @@ -21,7 +21,7 @@ describe("Utils | Tasks", function () { it("should correctly transform multiple queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4` + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4`, ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); diff --git a/test/unit/utils/userStatus.test.js b/test/unit/utils/userStatus.test.js index 06b580b5c..9b3457367 100644 --- a/test/unit/utils/userStatus.test.js +++ b/test/unit/utils/userStatus.test.js @@ -4,7 +4,7 @@ const { generateNewStatus, checkIfUserHasLiveTasks, convertTimestampsToUTC } = r const { userState } = require("../../../constants/userStatus"); const { OutputFixtureForFnConvertTimestampsToUTC, - inputFixtureForFnConvertTimestampsToUTC + inputFixtureForFnConvertTimestampsToUTC, } = require("../../fixtures/userStatus/userStatus"); describe("User Status Functions", function () { @@ -41,15 +41,15 @@ describe("User Status Functions", function () { it("should return true if the user has active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 2 + size: 2, }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const tasksModel = { - where: mockWhere + where: mockWhere, }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -59,15 +59,15 @@ describe("User Status Functions", function () { it("should return false if the user does not have any active tasks", async function () { const userId = "user123"; const mockSnapshot = { - size: 0 + size: 0, }; const mockGet = () => Promise.resolve(mockSnapshot); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const tasksModel = { - where: mockWhere + where: mockWhere, }; const result = await checkIfUserHasLiveTasks(userId, tasksModel); @@ -81,10 +81,10 @@ describe("User Status Functions", function () { const mockGet = () => Promise.reject(mockError); const mockWhere = () => ({ where: mockWhere, - get: mockGet + get: mockGet, }); const tasksModel = { - where: mockWhere + where: mockWhere, }; try { diff --git a/test/unit/utils/userStatusValidator.test.js b/test/unit/utils/userStatusValidator.test.js index 0b7260b45..d3cbfe87b 100644 --- a/test/unit/utils/userStatusValidator.test.js +++ b/test/unit/utils/userStatusValidator.test.js @@ -11,14 +11,14 @@ describe("Middleware | Validators | massUpdateUserStatus", function () { users: [ { userId: "4kAkRv9TBlOfR6WEUhoQ", - state: "IDLE" + state: "IDLE", }, { userId: "SooJK37gzjIZfFNH0tlL", - state: "ACTIVE" - } - ] - } + state: "ACTIVE", + }, + ], + }, }; const nextSpy = Sinon.spy(); await validateMassUpdate(req, res, nextSpy); @@ -29,13 +29,13 @@ describe("Middleware | Validators | massUpdateUserStatus", function () { const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const req = { body: { - users: [] - } + users: [], + }, }; const nextSpy = Sinon.spy(); await validateMassUpdate(req, res, nextSpy).catch((err) => { @@ -49,13 +49,13 @@ describe("Middleware | Validators | massUpdateUserStatus", function () { const badRequestSpy = Sinon.spy(); const res = { boom: { - badRequest: badRequestSpy - } + badRequest: badRequestSpy, + }, }; const req = { body: { - users: [123] - } + users: [123], + }, }; const nextSpy = Sinon.spy(); await validateMassUpdate(req, res, nextSpy).catch((err) => { diff --git a/test/unit/utils/users.test.js b/test/unit/utils/users.test.js index 080c0539d..515a6c20d 100644 --- a/test/unit/utils/users.test.js +++ b/test/unit/utils/users.test.js @@ -33,7 +33,7 @@ describe("users", function () { participants: ["ankur"], completionAward: { gold: 3, bronze: 300 }, lossRate: { gold: 1 }, - isNoteworthy: true + isNoteworthy: true, }; beforeEach(async function () { @@ -94,7 +94,7 @@ describe("users", function () { "SanketDhabarde", "prakashchoudhary07", "Pratiyushkumar", - "YashJain24-chief" + "YashJain24-chief", ]; expect(usernames).to.have.members(expectedUsernames); }); @@ -104,12 +104,12 @@ describe("users", function () { it("should return updateRole as false when the role already exists in userData", async function () { const userData = { roles: { - member: true - } + member: true, + }, }; const newRoles = { - member: true + member: true, }; const result = await usersUtils.getRoleToUpdate(userData, newRoles); @@ -121,11 +121,11 @@ describe("users", function () { it("should return updateRole as true and new user roles when the role doesn't exist in userData", async function () { const userData = { roles: { - member: true - } + member: true, + }, }; const newRoles = { - member: false + member: false, }; const result = await usersUtils.getRoleToUpdate(userData, newRoles); @@ -134,9 +134,9 @@ describe("users", function () { updateRole: true, newUserRoles: { roles: { - member: false - } - } + member: false, + }, + }, }); }); @@ -171,7 +171,7 @@ describe("users", function () { const from = new Date(); const until = new Date(); const nickname = usersUtils.generateOOONickname(username, from.getTime(), until.getTime(), [ - config.get("discordMavenRoleId") + config.get("discordMavenRoleId"), ]); const fromDate = from.getDate(); @@ -187,7 +187,7 @@ describe("users", function () { .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) .join("-") - .substring(0, usernameLen)} ${oooMessage}` + .substring(0, usernameLen)} ${oooMessage}`, ); }); @@ -201,14 +201,14 @@ describe("users", function () { it("should return first letters of nickname in capital case of the mavens as nickname when only username is passed and not from and until date ", async function () { const { username } = userData; const nickname = usersUtils.generateOOONickname(username, undefined, undefined, [ - config.get("discordMavenRoleId") + config.get("discordMavenRoleId"), ]); expect(nickname).to.be.equal( username .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) - .join("-") + .join("-"), ); }); }); @@ -232,19 +232,19 @@ describe("users", function () { Promise.resolve({ status: 200, ok: true, - json: () => Promise.resolve(response) - }) + json: () => Promise.resolve(response), + }), ); const status = { from: new Date().getTime(), - until: new Date().getTime() + until: new Date().getTime(), }; const nickname = usersUtils.generateOOONickname(userData.username, status.from, status.until); const responseObj = { userEffected: nickname, - message: response + message: response, }; const res = await usersUtils.updateNickname(userId, status); @@ -261,7 +261,7 @@ describe("users", function () { await usersUtils .updateNickname("1234", { from: new Date().getTime(), - until: new Date().getTime() + until: new Date().getTime(), }) .catch((err) => expect(err).to.be.equal(error)); expect(fetchStub.calledOnce).to.be.equal(false); @@ -277,7 +277,7 @@ describe("users", function () { await usersUtils .updateNickname(userId, { from: new Date().getTime(), - until: new Date().getTime() + until: new Date().getTime(), }) .catch((err) => expect(err).to.be.equal(err)); }); diff --git a/test/utils/generateBotToken.js b/test/utils/generateBotToken.js index bc4639e3d..11259058a 100644 --- a/test/utils/generateBotToken.js +++ b/test/utils/generateBotToken.js @@ -9,14 +9,14 @@ const jwt = require("jsonwebtoken"); const generateToken = (data) => { return jwt.sign(data, config.get("botToken.botPrivateKey"), { algorithm: "RS256", - expiresIn: "1m" + expiresIn: "1m", }); }; const generateCronJobToken = (data) => { const token = jwt.sign(data, config.get("cronJobHandler.privateKey"), { algorithm: "RS256", - expiresIn: "1m" + expiresIn: "1m", }); return token; }; diff --git a/test/utils/github.js b/test/utils/github.js index 09235f3b9..3b0c61c0d 100644 --- a/test/utils/github.js +++ b/test/utils/github.js @@ -7,7 +7,7 @@ const generateGithubAuthRedirectUrl = function ({ redirectUri = `${baseURL}/auth/github/callback`, scope = "user:email", state = "", - clientId = defaultClientId + clientId = defaultClientId, }) { const encodedBaseUrl = encodeURI(baseUrl); const encodedRedirectUri = encodeURIComponent(redirectUri); diff --git a/utils/array.js b/utils/array.js index 17f0abab9..5be4c3a7c 100644 --- a/utils/array.js +++ b/utils/array.js @@ -34,5 +34,5 @@ function arraysHaveCommonItem(array1, array2) { module.exports = { chunks, - arraysHaveCommonItem + arraysHaveCommonItem, }; diff --git a/utils/badges.js b/utils/badges.js index 311b11e99..807447eb5 100644 --- a/utils/badges.js +++ b/utils/badges.js @@ -14,7 +14,7 @@ function convertFirebaseTimestampToDateTime(createdAt) { const time = serverTimestampDateTime.toLocaleTimeString(); return { date, - time + time, }; } @@ -35,8 +35,8 @@ function convertFirebaseDocumentToBadgeDocument(id, data) { createdBy, createdAt: { date, - time - } + time, + }, }; } @@ -60,5 +60,5 @@ async function assignOrRemoveBadgesInBulk({ userId, array, isRemove = false }) { module.exports = { convertFirebaseDocumentToBadgeDocument, convertFirebaseTimestampToDateTime, - assignOrRemoveBadgesInBulk + assignOrRemoveBadgesInBulk, }; diff --git a/utils/cache.js b/utils/cache.js index 8e2ac6c27..44bde1147 100644 --- a/utils/cache.js +++ b/utils/cache.js @@ -169,7 +169,7 @@ const cacheResponse = (options = {}) => { priority: priority, response: body, expiry: new Date().getTime() + minutesToMilliseconds(expiry), - size: Buffer.byteLength(body) + size: Buffer.byteLength(body), }; pool.set(key, cacheValue); if (modelKey) { diff --git a/utils/cloudinary.js b/utils/cloudinary.js index eadc84cb9..4e35e1e25 100644 --- a/utils/cloudinary.js +++ b/utils/cloudinary.js @@ -9,5 +9,5 @@ const upload = async (file, options = {}) => { }; module.exports = { - upload + upload, }; diff --git a/utils/customWordCountValidator.js b/utils/customWordCountValidator.js index c925f31c4..dc5dd8532 100644 --- a/utils/customWordCountValidator.js +++ b/utils/customWordCountValidator.js @@ -16,5 +16,5 @@ const customWordCountValidator = (value, helpers, wordCount) => { }; module.exports = { - customWordCountValidator + customWordCountValidator, }; diff --git a/utils/data-access.js b/utils/data-access.js index 01b442a03..ad7fa6019 100644 --- a/utils/data-access.js +++ b/utils/data-access.js @@ -110,5 +110,5 @@ function removeObjectField(path, object) { module.exports = { removeObjectField, - dataAccessMiddleware + dataAccessMiddleware, }; diff --git a/utils/discord-actions.js b/utils/discord-actions.js index a0b130ee4..da1f3fe99 100644 --- a/utils/discord-actions.js +++ b/utils/discord-actions.js @@ -9,7 +9,7 @@ const generateAuthTokenForCloudflare = () => { const privateKey = config.get("rdsServerlessBot.rdsServerLessPrivateKey"); const authToken = jwt.sign({}, privateKey, { algorithm: "RS256", - expiresIn: expiry + expiresIn: expiry, }); return authToken; }; @@ -17,7 +17,7 @@ const generateCloudFlareHeaders = ({ username, id } = {}) => { const authToken = generateAuthTokenForCloudflare(); const headers = { "Content-Type": "application/json", - Authorization: `Bearer ${authToken}` + Authorization: `Bearer ${authToken}`, }; if (username && id) { headers["X-Audit-Log-Reason"] = `Action initiator's username=>${username} and id=${id}`; @@ -45,16 +45,16 @@ const generateDiscordInviteLink = async () => { const channelId = config.get("discordNewComersChannelId"); const authToken = jwt.sign({}, RDS_SERVERLESS_PRIVATE_KEY, { algorithm: "RS256", - expiresIn: RDS_SERVERLESS_TTL + expiresIn: RDS_SERVERLESS_TTL, }); const inviteOptions = { - channelId: channelId + channelId: channelId, }; const response = await fetch(`${DISCORD_BASE_URL}/invite`, { method: "POST", body: JSON.stringify(inviteOptions), - headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` } + headers: { "Content-Type": "application/json", Authorization: `Bearer ${authToken}` }, }); if (!response.ok) { const error = await response.json(); @@ -75,5 +75,5 @@ module.exports = { generateDiscordProfileImageUrl, generateAuthTokenForCloudflare, generateCloudFlareHeaders, - generateDiscordInviteLink + generateDiscordInviteLink, }; diff --git a/utils/events.js b/utils/events.js index dd0bea71d..ee4e01fe9 100644 --- a/utils/events.js +++ b/utils/events.js @@ -23,5 +23,5 @@ const removeUnwantedProperties = (propertiesToRemove, data) => { }; module.exports = { - removeUnwantedProperties + removeUnwantedProperties, }; diff --git a/utils/extensionRequests.js b/utils/extensionRequests.js index 769cc4e54..eacbc9991 100644 --- a/utils/extensionRequests.js +++ b/utils/extensionRequests.js @@ -4,7 +4,7 @@ const buildExtensionRequests = (extensionRequests, initialArray = []) => { extensionRequests.forEach((extensionRequests) => { initialArray.push({ id: extensionRequests.id, - ...extensionRequests.data() + ...extensionRequests.data(), }); }); } @@ -70,5 +70,5 @@ module.exports = { buildExtensionRequests, formatExtensionRequest, transformQuery, - generateNextLink + generateNextLink, }; diff --git a/utils/fetch.js b/utils/fetch.js index 796e6bc19..9204fd395 100644 --- a/utils/fetch.js +++ b/utils/fetch.js @@ -19,7 +19,7 @@ const fetch = async (url, method = "get", params = null, data = null, headers = params, data, headers, - ...options + ...options, }); return response; } catch (err) { @@ -29,5 +29,5 @@ const fetch = async (url, method = "get", params = null, data = null, headers = }; module.exports = { - fetch + fetch, }; diff --git a/utils/fetchMultiplePageResults.js b/utils/fetchMultiplePageResults.js index c322bfac4..deb9c9624 100644 --- a/utils/fetchMultiplePageResults.js +++ b/utils/fetchMultiplePageResults.js @@ -15,5 +15,5 @@ const fetchMultiplePageResults = async (callbackFn, params) => { }; module.exports = { - fetchMultiplePageResults + fetchMultiplePageResults, }; diff --git a/utils/firestore.js b/utils/firestore.js index b5b1620a7..41e8dc713 100644 --- a/utils/firestore.js +++ b/utils/firestore.js @@ -6,7 +6,7 @@ const config = require("config"); const credentialsObject = JSON.parse(config.firestore); admin.initializeApp({ - credential: admin.credential.cert(credentialsObject) + credential: admin.credential.cert(credentialsObject), }); const db = admin.firestore(); diff --git a/utils/helper.js b/utils/helper.js index a9056bef8..b0ab267d0 100644 --- a/utils/helper.js +++ b/utils/helper.js @@ -51,7 +51,7 @@ const getPaginatedLink = ({ query = {}, paramsToExclude = ["page", "next", "prev"], cursorKey, - docId + docId, }) => { let paginatedLink = endpoint + "?"; @@ -92,5 +92,5 @@ module.exports = { getQualifiers, getDateTimeRangeForPRs, getPaginatedLink, - findSubscribedGroupIds + findSubscribedGroupIds, }; diff --git a/utils/logs.js b/utils/logs.js index 4aaf4d77e..cadfb6f6a 100644 --- a/utils/logs.js +++ b/utils/logs.js @@ -27,13 +27,13 @@ async function getTasksFromLogs(allLogs) { .where( admin.firestore.FieldPath.documentId(), "in", - Array.from(taskIds).filter((e) => e) + Array.from(taskIds).filter((e) => e), ) .get(); data.forEach((doc) => { taskDetails.push({ id: doc.id, - ...doc.data() + ...doc.data(), }); }); } @@ -69,7 +69,7 @@ function formatOOORequestLogs(logsSnapshot, usersMap, type) { requestId: meta.requestId, from: body.from, until: body.until, - message: body.message + message: body.message, }; default: return {}; @@ -84,7 +84,7 @@ function formatExtensionRequestsLog(logsSnapshot, usersMap, tasksMap) { logsSnapshot.body.username, taskId: meta.taskId, taskTitle: tasksMap[logsSnapshot.meta.taskId]?.title ?? "Untitled Task", - ...flattenObject(logsSnapshot) + ...flattenObject(logsSnapshot), }; } @@ -94,7 +94,7 @@ function formatTaskUpdateLogs(logsSnapshot, usersMap, tasksMap) { user: logsSnapshot.meta.username ?? usersMap[meta.userId]?.username, taskId: meta.taskId, taskTitle: tasksMap[meta.taskId]?.title, - ...flattenObject(logsSnapshot) + ...flattenObject(logsSnapshot), }; } @@ -105,7 +105,7 @@ function formatProfileDiffLogs(logsSnapshot, usersMap, type) { user: usersMap[meta.userId]?.username, message: body.message, // eslint-disable-next-line security/detect-object-injection - [actionKey]: usersMap[meta[actionKey]]?.username + [actionKey]: usersMap[meta[actionKey]]?.username, }; } @@ -118,7 +118,7 @@ function formatTaskRequestsLogs(logsSnapshot, usersMap, tasksMap) { taskTitle: tasksMap[body.taskId]?.title, proposedStartDate: formattedData.users[0].proposedStartDate, proposedDeadline: formattedData.users[0].proposedDeadline, - ..._.omit(formattedData, "users") + ..._.omit(formattedData, "users"), }; } @@ -156,5 +156,5 @@ module.exports = { convertTimestamp, getTasksFromLogs, formatLogsForFeed, - getUsersListFromLogs + getUsersListFromLogs, }; diff --git a/utils/monitor.js b/utils/monitor.js index 354de9c79..3f4181ceb 100644 --- a/utils/monitor.js +++ b/utils/monitor.js @@ -59,5 +59,5 @@ const getTrackedProgressDocs = async (query) => { module.exports = { buildQueryByTypeId, buildQueryForFetchingDocsOfType, - getTrackedProgressDocs + getTrackedProgressDocs, }; diff --git a/utils/multer.js b/utils/multer.js index a67f19dd5..7d96718dc 100644 --- a/utils/multer.js +++ b/utils/multer.js @@ -19,7 +19,7 @@ const fileFilterImagesOnly = (req, file, cb) => { const upload = multer({ storage: multerMemoryStorage, limits: { fileSize: profileFileSize }, - fileFilter: fileFilterImagesOnly + fileFilter: fileFilterImagesOnly, }); const multerErrorHandling = (err, req, res, next) => { @@ -41,5 +41,5 @@ const isMulterError = (err) => { module.exports = { upload, multerErrorHandling, - isMulterError + isMulterError, }; diff --git a/utils/obfuscate.js b/utils/obfuscate.js index 961ecf798..92e0aeea3 100644 --- a/utils/obfuscate.js +++ b/utils/obfuscate.js @@ -8,5 +8,5 @@ const obfuscateMail = (email) => { module.exports = { obfuscatePhone, - obfuscateMail + obfuscateMail, }; diff --git a/utils/progresses.js b/utils/progresses.js index 94ee90a00..6459a4beb 100644 --- a/utils/progresses.js +++ b/utils/progresses.js @@ -7,7 +7,7 @@ const progressesModel = fireStore.collection("progresses"); const { PROGRESSES_RESPONSE_MESSAGES: { PROGRESS_DOCUMENT_NOT_FOUND }, MILLISECONDS_IN_DAY, - PROGRESS_VALID_SORT_FIELDS + PROGRESS_VALID_SORT_FIELDS, } = require("../constants/progresses"); const { convertTimestampToUTCStartOrEndOfDay } = require("./time"); const progressesCollection = fireStore.collection("progresses"); @@ -234,5 +234,5 @@ module.exports = { buildRangeProgressQuery, getProgressRecords, buildQueryToSearchProgressByDay, - buildProgressQueryForMissedUpdates + buildProgressQueryForMissedUpdates, }; diff --git a/utils/pullRequests.js b/utils/pullRequests.js index fe2e178c7..91efc577c 100644 --- a/utils/pullRequests.js +++ b/utils/pullRequests.js @@ -48,7 +48,7 @@ const getFilteredPRsOrIssues = async (qualifiers) => { allPRs = await fetchMultiplePageResults(githubServiceCallback, { searchParams, - resultOptions + resultOptions, }); return allPRs; @@ -56,10 +56,10 @@ const getFilteredPRsOrIssues = async (qualifiers) => { const ORDER_TYPE = { ASC: "asc", - DESC: "desc" + DESC: "desc", }; module.exports = { getFilteredPRsOrIssues, - ORDER_TYPE + ORDER_TYPE, }; diff --git a/utils/rateLimiting.js b/utils/rateLimiting.js index 13d76e4f5..50bebea69 100644 --- a/utils/rateLimiting.js +++ b/utils/rateLimiting.js @@ -9,5 +9,5 @@ function getRetrySeconds(msBeforeNext, fallbackValue = 1) { } module.exports = { - getRetrySeconds + getRetrySeconds, }; diff --git a/utils/sendTaskUpdate.js b/utils/sendTaskUpdate.js index e40414c72..24b78a78f 100644 --- a/utils/sendTaskUpdate.js +++ b/utils/sendTaskUpdate.js @@ -11,13 +11,13 @@ export const sendTaskUpdate = async (completed, blockers, planned, userName, tas planned, userName, taskId, - taskTitle - } + taskTitle, + }, }; await fetch(`${DISCORD_BASE_URL}/task/update`, { method: "POST", headers, - body: JSON.stringify(body) + body: JSON.stringify(body), }); } catch (error) { logger.error("Something went wrong", error); diff --git a/utils/tasks.js b/utils/tasks.js index d5cdb0838..639d26ac5 100644 --- a/utils/tasks.js +++ b/utils/tasks.js @@ -27,7 +27,7 @@ const fromFirestoreData = async (task) => { const updatedTask = { ...task, createdBy, - participants + participants, }; if (assigneeName || assigneeId) { @@ -59,7 +59,7 @@ const buildTasks = (tasks, initialTaskArray = []) => { tasks.forEach((task) => { initialTaskArray.push({ id: task.id, - ...task.data() + ...task.data(), }); }); } @@ -87,7 +87,7 @@ const transformQuery = (dev = false, status = "", size, page, assignee = "", tit dev: transformedDev, assignee: transformedAssignee, title: transformedTitle, - ...query + ...query, }; }; @@ -155,5 +155,5 @@ module.exports = { transformQuery, parseSearchQuery, buildTasksQueryForMissedUpdates, - transformTasksUsersQuery + transformTasksUsersQuery, }; diff --git a/utils/time.js b/utils/time.js index 33acf08a2..f2ca9a6c0 100644 --- a/utils/time.js +++ b/utils/time.js @@ -99,5 +99,5 @@ module.exports = { getBeforeHourTime, convertTimestampToUTCStartOrEndOfDay, getCurrentEpochTime, - convertMillisToSeconds + convertMillisToSeconds, }; diff --git a/utils/userStatus.js b/utils/userStatus.js index a20345c22..d6e353887 100644 --- a/utils/userStatus.js +++ b/utils/userStatus.js @@ -70,8 +70,8 @@ const generateNewStatus = (isActive) => { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp - } + updatedAt: currentTimeStamp, + }, }; if (isActive) { @@ -96,8 +96,8 @@ const generateAlreadyExistingStatusResponse = (state) => { status: "success", message: `The status is already ${state}`, data: { - currentStatus: state - } + currentStatus: state, + }, }; }; @@ -121,7 +121,7 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState data: { currentStatus: { state }, ...docData - } + }, } = latestStatusData; const currentTimeStamp = new Date().getTime(); const updatedStatusData = { @@ -131,8 +131,8 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp - } + updatedAt: currentTimeStamp, + }, }; try { await collection.doc(id).update(updatedStatusData); @@ -146,8 +146,8 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState message: `The status has been updated to ${newState}`, data: { previousStatus: state, - currentStatus: newState - } + currentStatus: newState, + }, }; }; @@ -167,10 +167,10 @@ const updateCurrentStatusToState = async (collection, latestStatusData, newState const updateFutureStatusToState = async (collection, latestStatusData, newState) => { const { id, - data: { futureStatus, ...docData } + data: { futureStatus, ...docData }, } = latestStatusData; const { - currentStatus: { state, until } + currentStatus: { state, until }, } = docData; const currentTimeStamp = new Date().getTime(); const updatedStatusData = { @@ -180,8 +180,8 @@ const updateFutureStatusToState = async (collection, latestStatusData, newState) message: "", from: until, until: "", - updatedAt: currentTimeStamp - } + updatedAt: currentTimeStamp, + }, }; try { await collection.doc(id).update(updatedStatusData); @@ -194,8 +194,8 @@ const updateFutureStatusToState = async (collection, latestStatusData, newState) message: `As the user is currently ${state}, the future status has been updated to ${newState}.`, data: { currentStatus: state, - futureStatus: newState - } + futureStatus: newState, + }, }; }; @@ -222,8 +222,8 @@ const createUserStatusWithState = async (userId, collection, state) => { message: "", from: currentTimeStamp, until: "", - updatedAt: currentTimeStamp - } + updatedAt: currentTimeStamp, + }, }); } catch (err) { logger.error(`error creating the current status for user id ${userId} - ${err.message}`); @@ -233,8 +233,8 @@ const createUserStatusWithState = async (userId, collection, state) => { status: "success", message: `UserStatus Document did not previously exist, New UserStatus Document created and updated to an ${state} status.`, data: { - currentStatus: state - } + currentStatus: state, + }, }; }; @@ -291,7 +291,7 @@ const generateErrorResponse = (message) => { return { status: 500, error: "Internal Server Error", - message: message + message: message, }; }; @@ -367,5 +367,5 @@ module.exports = { generateNewStatus, getNextDayTimeStamp, getFilteredPaginationLink, - convertTimestampsToUTC + convertTimestampsToUTC, }; diff --git a/utils/users.js b/utils/users.js index a40137f10..26d0575db 100644 --- a/utils/users.js +++ b/utils/users.js @@ -20,7 +20,7 @@ const getUserId = async (username) => { try { const { userExists, - user: { id } + user: { id }, } = await fetchUser({ username }); return userExists ? id : false; @@ -38,7 +38,7 @@ const getUserId = async (username) => { const getUsername = async (userId) => { try { const { - user: { username } + user: { username }, } = await fetchUser({ userId }); return username; } catch (error) { @@ -57,7 +57,7 @@ const getFullName = async (userId) => { try { const { // eslint-disable-next-line camelcase - user: { first_name, last_name } + user: { first_name, last_name }, } = await fetchUser({ userId }); // eslint-disable-next-line camelcase return { first_name, last_name }; @@ -75,7 +75,7 @@ const getFullName = async (userId) => { const getUsernameElseUndefined = async (userId) => { try { const { - user: { username } + user: { username }, } = await fetchUser({ userId }); return username; } catch (error) { @@ -95,7 +95,7 @@ const getUserIdElseUndefined = async (username) => { try { const { userExists, - user: { id } + user: { id }, } = await fetchUser({ username }); return userExists ? id : false; @@ -283,7 +283,7 @@ const updateNickname = async (userId, status = {}) => { try { const { user: { discordId, username, roles = {} }, - discordJoinedAt = {} + discordJoinedAt = {}, } = await dataAccessLayer.retrieveUsers({ id: userId }); if (!discordId || !username || !discordJoinedAt || roles[ROLES.ARCHIVED]) { @@ -320,5 +320,5 @@ module.exports = { getRoleToUpdate, parseSearchQuery, generateOOONickname, - updateNickname + updateNickname, }; From 9b8a3869bd0c964fd595d9f8a25f0d5aa6e04d84 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 11:11:02 +0530 Subject: [PATCH 14/17] fix:remove the changes of trailing commas --- controllers/cloudflareCache.js | 2 +- controllers/discordactions.js | 4 +- controllers/events.js | 2 +- controllers/extensionRequests.js | 8 +- controllers/external-accounts.js | 2 +- controllers/staging.js | 10 +- controllers/tasks.js | 6 +- controllers/users.js | 2 +- middlewares/contentTypeCheck.js | 2 +- middlewares/index.js | 4 +- middlewares/passport.js | 4 +- middlewares/validators/extensionRequests.js | 4 +- middlewares/validators/items.js | 2 +- middlewares/validators/task-requests.js | 4 +- middlewares/validators/tasks.js | 12 +- middlewares/validators/user.js | 2 +- middlewares/validators/userStatus.js | 10 +- models/badges.js | 2 +- models/discordactions.js | 26 +- models/events.js | 2 +- models/taskRequests.js | 6 +- models/tasks.js | 4 +- models/userStatus.js | 6 +- models/users.js | 4 +- package.json | 85 +- routes/badges.js | 6 +- routes/discordactions.js | 10 +- routes/events.js | 10 +- routes/extensionRequests.js | 4 +- routes/external-accounts.js | 2 +- routes/monitor.js | 4 +- routes/tasks.js | 8 +- routes/userStatus.js | 2 +- routes/users.js | 8 +- scripts/validateSetup.js | 2 +- services/EventAPIService.js | 4 +- services/cloudflareService.js | 2 +- services/githubService.js | 12 +- test/integration/badges.test.js | 4 +- test/integration/contributions.test.js | 4 +- test/integration/discordactions.test.js | 34 +- test/integration/extensionRequests.test.js | 9 +- test/integration/external-accounts.test.js | 10 +- .../multilpleExtensionRequest.test.js | 2 +- test/integration/progressesTasks.test.js | 2 +- test/integration/progressesUsers.test.js | 2 +- test/integration/restricted.test.js | 2 +- .../integration/taskBasedStatusUpdate.test.js | 26 +- test/integration/tasks.test.js | 10 +- test/integration/userStatus.test.js | 6 +- test/integration/users.test.js | 18 +- test/integration/usersFilter.test.js | 4 +- .../unit/middlewares/contentTypeCheck.test.js | 2 +- test/unit/models/discordactions.test.js | 12 +- test/unit/models/recruiters.test.js | 2 +- test/unit/models/task-requests.test.js | 8 +- .../unit/models/taskBasedStatusUpdate.test.js | 10 +- .../services/discordMembersService.test.js | 4 +- test/unit/services/discordService.test.js | 8 +- test/unit/services/githubService.test.js | 18 +- test/unit/utils/sendTaskUpdate.test.js | 4 +- test/unit/utils/tasks.test.js | 4 +- test/unit/utils/users.test.js | 6 +- utils/logs.js | 2 +- yarn.lock | 971 ++++++++++-------- 65 files changed, 773 insertions(+), 700 deletions(-) diff --git a/controllers/cloudflareCache.js b/controllers/cloudflareCache.js index df26f30b5..cd7e10adb 100644 --- a/controllers/cloudflareCache.js +++ b/controllers/cloudflareCache.js @@ -53,7 +53,7 @@ const purge = async (res, id, username, isSuperUser, userDetails) => { await logsQuery.addLog( logType.CLOUDFLARE_CACHE_PURGED, { userId: id, purgedFor: userDetails.user.id }, - { message: "Cache Purged" }, + { message: "Cache Purged" } ); } else { await logsQuery.addLog(logType.CLOUDFLARE_CACHE_PURGED, { userId: id }, { message: "Cache Purged" }); diff --git a/controllers/discordactions.js b/controllers/discordactions.js index d65c788df..7a6f64fcf 100644 --- a/controllers/discordactions.js +++ b/controllers/discordactions.js @@ -282,7 +282,7 @@ const updateDiscordNicknames = async (req, res) => { } catch (error) { logger.error(`error getting user with matching discordId ${error.message}`); } - }), + }) ); const totalNicknamesUpdated = { count: 0 }; @@ -366,7 +366,7 @@ const syncDiscordGroupRolesInFirestore = async (req, res) => { { roleid: role.id, }, - roleInFirestore.id, + roleInFirestore.id ); } } else { diff --git a/controllers/events.js b/controllers/events.js index 86aa60e20..852f2635f 100644 --- a/controllers/events.js +++ b/controllers/events.js @@ -302,7 +302,7 @@ const kickoutPeer = async (req, res) => { addLog( logType.EVENTS_REMOVE_PEER, { removed_by_id: req.userData.id, removed_by_username: req.userData.username }, - { ...payload, event_id: id, peer_name: peer.name }, + { ...payload, event_id: id, peer_name: peer.name } ); return res.status(200).json({ diff --git a/controllers/extensionRequests.js b/controllers/extensionRequests.js index 174c3fd15..06bbcca76 100644 --- a/controllers/extensionRequests.js +++ b/controllers/extensionRequests.js @@ -183,7 +183,7 @@ const fetchExtensionRequests = async (req, res) => { const allExtensionRequests = await extensionRequestsQuery.fetchPaginatedExtensionRequests( { taskId, status: transformedStatus, assignee }, - { cursor, order, size: transformedSize }, + { cursor, order, size: transformedSize } ); return res.json({ message: "Extension Requests returned successfully!", @@ -238,7 +238,7 @@ const getSelfExtensionRequests = async (req, res) => { if (latestExtensionRequest.status === "APPROVED" || latestExtensionRequest.status === "DENIED") { const logs = await logsQuery.fetchLogs( { "meta.extensionRequestId": latestExtensionRequest.id, limit: 1 }, - "extensionRequests", + "extensionRequests" ); if ( @@ -390,8 +390,8 @@ const updateExtensionRequestStatus = async (req, res) => { promises.push( tasks.updateTask( { endsOn: extensionRequest.extensionRequestData.newEndsOn }, - extensionRequest.extensionRequestData.taskId, - ), + extensionRequest.extensionRequestData.taskId + ) ); promises.push(addLog(taskLog.type, taskLog.meta, taskLog.body)); } diff --git a/controllers/external-accounts.js b/controllers/external-accounts.js index 3bc83326f..490ee6e99 100644 --- a/controllers/external-accounts.js +++ b/controllers/external-accounts.js @@ -66,7 +66,7 @@ const linkExternalAccount = async (req, res) => { discordId: attributes.discordId, discordJoinedAt: attributes.discordJoinedAt, }, - userId, + userId ); return res.status(204).json({ message: "Your discord profile has been linked successfully" }); diff --git a/controllers/staging.js b/controllers/staging.js index a18a6e983..f87b5f896 100644 --- a/controllers/staging.js +++ b/controllers/staging.js @@ -17,7 +17,7 @@ const updateRoles = async (req, res) => { }, updated_at: Date.now(), }, - userId, + userId ); return res.status(200).json({ message: "Roles Updated successfully", @@ -51,8 +51,8 @@ const removePrivileges = async (req, res) => { }, updated_at: Date.now(), }, - member.id, - ), + member.id + ) ); }); superUsers.forEach((superUser) => { @@ -65,8 +65,8 @@ const removePrivileges = async (req, res) => { }, updated_at: Date.now(), }, - superUser.id, - ), + superUser.id + ) ); }); diff --git a/controllers/tasks.js b/controllers/tasks.js index a041ebeeb..c4bc6ee1c 100644 --- a/controllers/tasks.js +++ b/controllers/tasks.js @@ -355,12 +355,12 @@ const updateTaskStatus = async (req, res, next) => { return res.boom.badRequest( `The status of task can not be changed from ${ isCurrentTaskStatusInProgress ? "In progress" : "Blocked" - } until progress of task is not 100%.`, + } until progress of task is not 100%.` ); } if (isNewTaskStatusInProgress && !isCurrentTaskStatusBlock && !isCurrProgress0 && !isNewProgress0) { return res.boom.badRequest( - "The status of task can not be changed to In progress until progress of task is not 0%.", + "The status of task can not be changed to In progress until progress of task is not 0%." ); } } @@ -439,7 +439,7 @@ const overdueTasks = async (req, res) => { const allTasks = await tasks.fetchTasks(); const now = Math.floor(Date.now() / 1000); const overDueTasks = allTasks.filter( - (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now, + (task) => (task.status === ASSIGNED || task.status === IN_PROGRESS) && task.endsOn < now ); const newAvailableTasks = await tasks.overdueTasks(overDueTasks); return res.json({ diff --git a/controllers/users.js b/controllers/users.js index 218808455..e76b33f90 100644 --- a/controllers/users.js +++ b/controllers/users.js @@ -652,7 +652,7 @@ const rejectProfileDiff = async (req, res) => { const { profileDiffId, message } = req.body; const profileResponse = await profileDiffsQuery.updateProfileDiff( { approval: profileDiffStatus.REJECTED }, - profileDiffId, + profileDiffId ); if (profileResponse.notFound) return res.boom.notFound("Profile Diff doesn't exist"); diff --git a/middlewares/contentTypeCheck.js b/middlewares/contentTypeCheck.js index 7e8dec877..1e3f981a1 100644 --- a/middlewares/contentTypeCheck.js +++ b/middlewares/contentTypeCheck.js @@ -12,7 +12,7 @@ module.exports = (req, res, next) => { const notMultiPart = !contentType.includes("multipart/form-data"); if (notMultiPart) { return res.boom.unsupportedMediaType( - `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data`, + `Invalid content-type header: ${contentType}, expected: application/json or multipart/form-data` ); } } diff --git a/middlewares/index.js b/middlewares/index.js index 6ce84b05a..a8696ba59 100644 --- a/middlewares/index.js +++ b/middlewares/index.js @@ -30,7 +30,7 @@ const middleware = (app) => { ieNoOpen: false, referrerPolicy: false, xssFilter: false, - }), + }) ); app.use( @@ -38,7 +38,7 @@ const middleware = (app) => { origin: config.get("cors.allowedOrigins"), credentials: true, optionsSuccessStatus: 200, - }), + }) ); app.use(contentTypeCheck); diff --git a/middlewares/passport.js b/middlewares/passport.js index cbd9276c6..93ee4274a 100644 --- a/middlewares/passport.js +++ b/middlewares/passport.js @@ -11,8 +11,8 @@ try { }, (accessToken, refreshToken, profile, done) => { return done(null, accessToken, profile); - }, - ), + } + ) ); } catch (err) { logger.error("Error initialising passport:", err); diff --git a/middlewares/validators/extensionRequests.js b/middlewares/validators/extensionRequests.js index 3430bbb21..8b2b0af0f 100644 --- a/middlewares/validators/extensionRequests.js +++ b/middlewares/validators/extensionRequests.js @@ -85,8 +85,8 @@ const getExtensionRequestsValidator = async (req, res, next) => { joi .string() .valid(...ER_STATUS_ENUM) - .insensitive(), - ), + .insensitive() + ) ) .optional(), assignee: joi.alternatives().try(joi.string(), joi.array().items(joi.string())).optional(), diff --git a/middlewares/validators/items.js b/middlewares/validators/items.js index 1911c51fe..2d3278f2c 100644 --- a/middlewares/validators/items.js +++ b/middlewares/validators/items.js @@ -16,7 +16,7 @@ const validateItemsPayload = async (req, res, next) => { Joi.object({ tagId: Joi.string().required(), levelId: Joi.string().required(), - }), + }) ), }); diff --git a/middlewares/validators/task-requests.js b/middlewares/validators/task-requests.js index a6a7daf65..f9754824d 100644 --- a/middlewares/validators/task-requests.js +++ b/middlewares/validators/task-requests.js @@ -68,7 +68,7 @@ const getTaskRequests = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_STATUS).map((value) => value.toLowerCase())), operator: joi.string().optional(), - }), + }) ) .optional(), "request-type": joi @@ -77,7 +77,7 @@ const getTaskRequests = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.values(TASK_REQUEST_TYPE).map((value) => value.toLowerCase())), operator: joi.string().optional(), - }), + }) ) .optional(), }); diff --git a/middlewares/validators/tasks.js b/middlewares/validators/tasks.js index 0cdc38717..5467137c8 100644 --- a/middlewares/validators/tasks.js +++ b/middlewares/validators/tasks.js @@ -121,7 +121,7 @@ const updateTask = async (req, res, next) => { const updateSelfTask = async (req, res, next) => { const validStatus = [...TASK_STATUS_ENUM, ...Object.values(TASK_STATUS_OLD)].filter( - (item) => item !== TASK_STATUS.AVAILABLE, + (item) => item !== TASK_STATUS.AVAILABLE ); const schema = joi .object() @@ -176,7 +176,7 @@ const getTasksValidator = async (req, res, next) => { joi.when("next", { is: joi.exist(), then: joi.custom((_, helpers) => helpers.message("Both prev and next cannot be passed")), - }), + }) ), size: joi.number().integer().positive().min(1).max(100).optional(), q: joi @@ -216,7 +216,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.values(tasksUsersStatus)), operator: joi.string().valid(Operators.INCLUDE), - }), + }) ) .required(), "days-count": joi @@ -225,7 +225,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.number().integer().min(1).max(10), operator: joi.string().valid(Operators.EXCLUDE), - }), + }) ) .max(1) .optional(), @@ -235,7 +235,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.string().valid(...Object.keys(daysOfWeek)), operator: joi.string().valid(Operators.EXCLUDE), - }), + }) ) .max(7) .optional(), @@ -245,7 +245,7 @@ const getUsersValidator = async (req, res, next) => { joi.object().keys({ value: joi.date().timestamp(), operator: joi.string().valid(Operators.EXCLUDE), - }), + }) ) .max(20) .optional(), diff --git a/middlewares/validators/user.js b/middlewares/validators/user.js index ffaa1804a..8be954e2e 100644 --- a/middlewares/validators/user.js +++ b/middlewares/validators/user.js @@ -180,7 +180,7 @@ async function getUsers(req, res, next) { joi.string().when("page", { is: joi.exist(), then: joi.custom((_, helpers) => helpers.message("Both page and prev can't be passed")), - }), + }) ) .messages({ "string.empty": "prev value cannot be empty", diff --git a/middlewares/validators/userStatus.js b/middlewares/validators/userStatus.js index 2ab71e811..926e38feb 100644 --- a/middlewares/validators/userStatus.js +++ b/middlewares/validators/userStatus.js @@ -23,8 +23,8 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { .required() .error( new Error( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, - ), + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` + ) ), otherwise: Joi.optional(), }), @@ -39,12 +39,12 @@ const validateUserStatusData = async (todaysTime, req, res, next) => { is: Joi.number().greater( Joi.ref("from", { adjust: (value) => value + threeDaysInMilliseconds, - }), + }) ), then: Joi.string() .optional() .error( - new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`), + new Error(`The value for the 'message' field is mandatory when State is OOO for more than three days.`) ), otherwise: Joi.required(), }), @@ -94,7 +94,7 @@ const validateMassUpdate = async (req, res, next) => { Joi.object({ userId: Joi.string().trim().required(), state: Joi.string().valid(userState.IDLE, userState.ACTIVE).required(), - }), + }) ) .min(1) .required() diff --git a/models/badges.js b/models/badges.js index 4e092e6c1..d0901eb67 100644 --- a/models/badges.js +++ b/models/badges.js @@ -114,7 +114,7 @@ async function removeBadges({ userId, badgeIds }) { const documentRefferences = snapshot.docs.map((doc) => doc.ref); const documentsRefferencesChunks = chunks(documentRefferences, DOCUMENT_WRITE_SIZE); const bulkWriterBatches = documentsRefferencesChunks.map((value) => - assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }), + assignOrRemoveBadgesInBulk({ userId, array: value, isRemove: true }) ); return await Promise.all(bulkWriterBatches); } catch (err) { diff --git a/models/discordactions.js b/models/discordactions.js index faa1966c7..3c71e74f7 100644 --- a/models/discordactions.js +++ b/models/discordactions.js @@ -358,7 +358,7 @@ const updateIdleUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }), + }) ); } allUsersHavingGroupIdle = usersHavingIdleRole; @@ -404,7 +404,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }), + }) ); } @@ -435,7 +435,7 @@ const updateIdleUsersOnDiscord = async () => { totalGroupIdleRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }), + }) ); } @@ -593,7 +593,7 @@ const updateIdle7dUsersOnDiscord = async () => { logger.error(`error updating discordId in userStatus ${error.message}`); throw new Error("error updating discordId in userStatus"); } - }), + }) ); } @@ -640,7 +640,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotApplied.errors.push(error.message); logger.error(`Error in setting group-idle on user: ${error}`); } - }), + }) ); } @@ -671,7 +671,7 @@ const updateIdle7dUsersOnDiscord = async () => { totalGroupIdle7dRolesNotRemoved.errors.push(error.message); logger.error(`Error in removing group-idle from user: ${error}`); } - }), + }) ); } @@ -717,7 +717,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { }); const usersForRoleAddition = allOnboardingDevs31DaysCompleted.filter( - (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId), + (user1) => !usersAlreadyHavingOnboaring31DaysRole.some((user2) => user1.discordId === user2.discordId) ); const errorInFetchingUserDetailsForRoleRemoval = { count: 0, errors: [] }; @@ -738,7 +738,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { logger.error(`Error in getting users to remove role: ${error}`); } return null; - }), + }) ); const filteredUsersForRoleRemoval = usersForRoleRemoval.filter((user) => user !== null); @@ -781,7 +781,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNoteApplied.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in setting group-onboarding-31+ role on user: ${error}`); } - }), + }) ); } @@ -812,7 +812,7 @@ const updateUsersWith31DaysPlusOnboarding = async () => { totalOnboarding31dPlusRoleNotRemoved.errors.push({ error: error.message, discordId: userDiscordId }); logger.error(`Error in removing group-onboarding-31d+ role from user: ${error}`); } - }), + }) ); } @@ -927,14 +927,14 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { await userStatusModel .where("currentStatus.state", "==", userState.ACTIVE) .where("userId", "in", userIdList) - .get(), + .get() ); const userDetailsPromise = userIdChunks.map( async (userIdList) => await userModel .where("roles.archived", "==", false) .where(admin.firestore.FieldPath.documentId(), "in", userIdList) - .get(), + .get() ); const userStatusChunks = await Promise.all(userStatusSnapshotPromise); @@ -942,7 +942,7 @@ const getMissedProgressUpdatesUsers = async (options = {}) => { userStatusChunks.forEach((userStatusList) => userStatusList.forEach((doc) => { usersMap.get(doc.data().userId).isActive = true; - }), + }) ); const userDetailsListChunks = await Promise.all(userDetailsPromise); diff --git a/models/events.js b/models/events.js index ddd222094..fb15219c1 100644 --- a/models/events.js +++ b/models/events.js @@ -180,7 +180,7 @@ const kickoutPeer = async ({ eventId, peerId, reason }) => { } const updatedJoinedEvents = joinedEvents.map((event, index) => - index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event, + index === eventIndex ? { ...event, left_at: new Date(), reason: reason, isKickedout: true } : event ); await peerRef.update({ joinedEvents: updatedJoinedEvents }); diff --git a/models/taskRequests.js b/models/taskRequests.js index 586381dc5..6bc5c8572 100644 --- a/models/taskRequests.js +++ b/models/taskRequests.js @@ -85,7 +85,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { Object.entries(rqlQueryParser.getFilterQueries()).forEach(([key, value]) => { const valuesList = value.map( - (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value], + (query) => query.operator === Operators.INCLUDE && TASK_REQUEST_FILTER_VALUES[query.value] ); taskRequestsSnapshot = taskRequestsSnapshot.where(TASK_REQUEST_FILTER_KEYS[key], "in", valuesList); }); @@ -97,7 +97,7 @@ const fetchPaginatedTaskRequests = async (queries = {}) => { sortQueryEntries.forEach(([key, value]) => { taskRequestsSnapshot = taskRequestsSnapshot.orderBy( TASK_REQUEST_SORT_KEYS[key], - TASK_REQUEST_SORT_VALUES[value], + TASK_REQUEST_SORT_VALUES[value] ); }); } else { @@ -552,7 +552,7 @@ const addNewFields = async () => { bulkWriter.update(taskRequestsCollection.doc(taskRequestsSnapshot.id), updatedTaskRequestData); documentsModified++; } - }), + }) ); await bulkWriter.close(); diff --git a/models/tasks.js b/models/tasks.js index a60484298..113065ba0 100644 --- a/models/tasks.js +++ b/models/tasks.js @@ -543,7 +543,7 @@ const overdueTasks = async (overDueTasks) => { unassignedMember: assignee, unassignedTask, }; - }), + }) ); return newAvailableTasks; } catch (err) { @@ -624,7 +624,7 @@ const updateTaskStatus = async () => { updatedTaskDetails: res.updatedTaskDetails, failedTaskDetails: res.failedTaskDetails, }; - }), + }) ); updatedTasksPromises.forEach((res) => { diff --git a/models/userStatus.js b/models/userStatus.js index a8dbf73ab..4f7288d7c 100644 --- a/models/userStatus.js +++ b/models/userStatus.js @@ -335,7 +335,7 @@ const updateAllUserStatus = async () => { }); if (batch._ops.length > 100) { logger.info( - `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.`, + `Warning: More than 100 User Status documents to update. The max limit permissible is 500. Refer https://github.com/Real-Dev-Squad/website-backend/issues/890 for more details.` ); } await batch.commit(); @@ -610,7 +610,7 @@ const getTaskBasedUsersStatus = async () => { unprocessedUsers.push(assigneeId); logger.error(`Error retrieving tasks for user ${assigneeId}: ${error.message}`); } - }), + }) ); } @@ -649,7 +649,7 @@ const cancelOooStatus = async (userId) => { const { futureStatus, ...docData } = userStatusDocument.data(); if (docData.currentStatus.state !== userState.OOO) { throw new Forbidden( - `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.`, + `The ${userState.OOO} Status cannot be canceled because the current status is ${docData.currentStatus.state}.` ); } try { diff --git a/models/users.js b/models/users.js index 52fbde3d8..087e18a9e 100644 --- a/models/users.js +++ b/models/users.js @@ -45,7 +45,7 @@ const addOrUpdate = async (userData, userId = null) => { ...userData, updated_at: Date.now(), }, - { merge: true }, + { merge: true } ); } @@ -559,7 +559,7 @@ const getUsersBasedOnFilter = async (query) => { const fetchUsersWithOnBoardingState = await getUsersWithOnboardingStateInRange( filteredUserDocs, stateItems, - query.time, + query.time ); return fetchUsersWithOnBoardingState; } diff --git a/package.json b/package.json index 9d4220fed..436f2d136 100644 --- a/package.json +++ b/package.json @@ -16,61 +16,62 @@ "tdd:watch": "sh scripts/tests/tdd.sh" }, "dependencies": { - "axios": "1.7.2", - "cloudinary": "2.0.3", + "axios": "^1.6.7", + "cloudinary": "^2.0.3", "config": "3.3.7", - "cookie-parser": "1.4.6", - "cors": "2.8.5", - "datauri": "4.1.0", - "debug": "4.3.5", - "express": "4.18.3", - "express-boom": "3.0.0", - "firebase-admin": "12.1.1", - "helmet": "7.1.0", - "http-errors": "2.0.0", - "joi": "17.13.1", - "jsdoc": "4.0.3", + "cookie-parser": "~1.4.6", + "cors": "^2.8.5", + "datauri": "^4.1.0", + "debug": "~4.3.4", + "express": "~4.18.3", + "express-boom": "^3.0.0", + "firebase-admin": "^11.11.1", + "helmet": "^7.1.0", + "http-errors": "~2.0.0", + "joi": "^17.12.2", + "jsdoc": "^4.0.2", "jsonwebtoken": "^8.5.1", - "morgan": "1.10.0", - "multer": "1.4.5-lts.1", - "newrelic": "11.19.0", - "passport": "0.7.0", - "passport-github2": "0.1.12", - "rate-limiter-flexible": "5.0.3", - "winston": "3.13.0" + "morgan": "~1.10.0", + "multer": "^1.4.2", + "newrelic": "^11.12.0", + "passport": "^0.7.0", + "passport-github2": "^0.1.12", + "rate-limiter-flexible": "^5.0.0", + "winston": "^3.12.0" }, "devDependencies": { - "@types/chai": "4.3.16", - "@types/config": "3.3.4", - "@types/express": "4.17.21", - "@types/jest": "29.5.12", - "@types/mocha": "10.0.6", - "@types/node": "20.11.24", - "@types/sinon": "17.0.3", + "@types/chai": "^4.3.12", + "@types/config": "^3.3.3", + "@types/express": "^4.17.21", + "@types/jest": "^29.5.12", + "@types/mocha": "^10.0.6", + "@types/node": "^20.11.24", + "@types/sinon": "^17.0.3", "@typescript-eslint/parser": "^7.1.1", - "chai": "4.4.1", - "chai-http": "4.4.0", - "cross-env": "7.0.3", + "chai": "^4.4.1", + "chai-http": "^4.4.0", + "cross-env": "^7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^16.0.3", "eslint-plugin-import": "^2.22.1", "eslint-plugin-mocha": "^10.0.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", - "firebase-tools": "13.4.0", - "mocha": "10.3.0", - "nock": "13.2.9", - "nodemon": "3.1.3", - "nyc": "15.1.0", + "eslint-plugin-standard": "^4.1.0", + "firebase-tools": "^13.4.0", + "mocha": "^10.3.0", + "nock": "~13.2.9", + "nodemon": "^3.1.0", + "nyc": "^15.1.0", "pre-commit": "^1.2.2", - "prettier": "^3.2.5", - "sinon": "18.0.0", - "ts-node": "10.9.2", - "ts-node-dev": "2.0.0", - "typescript": "5.3.3" + "prettier": "^2.5.1", + "sinon": "^17.0.1", + "ts-node": "^10.9.2", + "ts-node-dev": "^2.0.0", + "typescript": "~5.3.3" }, "engines": { "node": "20.x" @@ -82,4 +83,4 @@ "node": "20.11.1", "yarn": "1.22.21" } -} +} \ No newline at end of file diff --git a/routes/badges.js b/routes/badges.js index d6fba4aa8..917662bf3 100644 --- a/routes/badges.js +++ b/routes/badges.js @@ -15,21 +15,21 @@ router.post( authorizeRoles([SUPERUSER]), upload.single("file"), badgesValidator.createBadge, - badgesController.postBadge, + badgesController.postBadge ); router.post( "/assign", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.postUserBadges, + badgesController.postUserBadges ); router.delete( "/remove", authenticate, authorizeRoles([SUPERUSER]), badgesValidator.assignOrRemoveBadges, - badgesController.deleteUserBadges, + badgesController.deleteUserBadges ); module.exports = router; diff --git a/routes/discordactions.js b/routes/discordactions.js index 140342fca..745a306df 100644 --- a/routes/discordactions.js +++ b/routes/discordactions.js @@ -44,28 +44,28 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - updateDiscordImageForVerification, + updateDiscordImageForVerification ); router.put( "/group-idle", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdleToIdleUsers, + setRoleIdleToIdleUsers ); router.put( "/group-idle-7d", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleIdle7DToIdleUsers, + setRoleIdle7DToIdleUsers ); router.post( "/nicknames/sync", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - updateDiscordNicknames, + updateDiscordNicknames ); router.post("/nickname/status", verifyCronJob, validateUpdateUsersNicknameStatusBody, updateUsersNicknameStatus); router.post("/discord-roles", authenticate, authorizeRoles([SUPERUSER]), syncDiscordGroupRolesInFirestore); router.put( "/group-onboarding-31d-plus", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), - setRoleToUsersWith31DaysPlusOnboarding, + setRoleToUsersWith31DaysPlusOnboarding ); module.exports = router; diff --git a/routes/events.js b/routes/events.js index 6c50c2278..db8fb9584 100644 --- a/routes/events.js +++ b/routes/events.js @@ -13,7 +13,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.joinEvent, - events.joinEvent, + events.joinEvent ); router.post("/join", eventsValidator.joinEvent, events.joinEvent); router.get("/:id", eventsValidator.getEventById, events.getEventById); @@ -23,7 +23,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.endActiveEvent, - events.endActiveEvent, + events.endActiveEvent ); router.post("/:id/peers", eventsValidator.addPeerToEvent, events.addPeerToEvent); router.patch( @@ -31,20 +31,20 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, MEMBER]), eventsValidator.kickoutPeer, - events.kickoutPeer, + events.kickoutPeer ); router.post( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.generateEventCode, - events.generateEventCode, + events.generateEventCode ); router.get( "/:id/codes", authenticate, authorizeRoles([SUPERUSER]), eventsValidator.getEventCodes, - events.getEventCodes, + events.getEventCodes ); module.exports = router; diff --git a/routes/extensionRequests.js b/routes/extensionRequests.js index 7b74d1051..a4e93f56c 100644 --- a/routes/extensionRequests.js +++ b/routes/extensionRequests.js @@ -20,14 +20,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequest, - extensionRequests.updateExtensionRequest, + extensionRequests.updateExtensionRequest ); router.patch( "/:id/status", authenticate, authorizeRoles([SUPERUSER, APPOWNER]), updateExtensionRequestStatus, - extensionRequests.updateExtensionRequestStatus, + extensionRequests.updateExtensionRequestStatus ); module.exports = router; diff --git a/routes/external-accounts.js b/routes/external-accounts.js index d64c2bc3a..2cf24c484 100644 --- a/routes/external-accounts.js +++ b/routes/external-accounts.js @@ -18,7 +18,7 @@ router.post( "/users", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validator.postExternalAccountsUsers, - externalAccount.externalAccountsUsersPostHandler, + externalAccount.externalAccountsUsersPostHandler ); module.exports = router; diff --git a/routes/monitor.js b/routes/monitor.js index 16ca9b186..c0796f63f 100644 --- a/routes/monitor.js +++ b/routes/monitor.js @@ -19,7 +19,7 @@ router.post( authenticate, authorizeRoles([SUPERUSER]), validateCreateTrackedProgressRecord, - createTrackedProgressController, + createTrackedProgressController ); router.patch( @@ -27,7 +27,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), validateUpdateTrackedProgress, - updateTrackedProgressController, + updateTrackedProgressController ); router.get("/", validateGetTrackedProgressQueryParams, getTrackedProgressController); diff --git a/routes/tasks.js b/routes/tasks.js index 0b651d39a..5596f982c 100644 --- a/routes/tasks.js +++ b/routes/tasks.js @@ -21,7 +21,7 @@ const { CLOUDFLARE_WORKER, CRON_JOB_HANDLER } = require("../constants/bot"); const oldAuthorizationMiddleware = authorizeRoles([APPOWNER, SUPERUSER]); const newAuthorizationMiddleware = authorizeAndAuthenticate( [APPOWNER, SUPERUSER], - [CLOUDFLARE_WORKER, CRON_JOB_HANDLER], + [CLOUDFLARE_WORKER, CRON_JOB_HANDLER] ); // Middleware to check if 'dev' query parameter is set to true @@ -42,7 +42,7 @@ router.post( authorizeRoles([APPOWNER, SUPERUSER]), invalidateCache({ invalidationKeys: [ALL_TASKS] }), createTask, - tasks.addNewTask, + tasks.addNewTask ); router.patch( "/:id", @@ -50,7 +50,7 @@ router.patch( enableDevModeMiddleware, invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateTask, - tasks.updateTask, + tasks.updateTask ); router.get("/:id/details", tasks.getTask); router.get("/:username", tasks.getUserTasks); @@ -60,7 +60,7 @@ router.patch( invalidateCache({ invalidationKeys: [ALL_TASKS] }), updateSelfTask, tasks.updateTaskStatus, - assignTask, + assignTask ); router.patch("/assign/self", authenticate, invalidateCache({ invalidationKeys: [ALL_TASKS] }), tasks.assignTask); diff --git a/routes/userStatus.js b/routes/userStatus.js index 7bbf2c1b2..65f6008f1 100644 --- a/routes/userStatus.js +++ b/routes/userStatus.js @@ -30,7 +30,7 @@ router.patch( "/batch", authorizeAndAuthenticate([ROLES.SUPERUSER], [Services.CRON_JOB_HANDLER]), validateMassUpdate, - batchUpdateUsersStatus, + batchUpdateUsersStatus ); router.patch("/:userId", authenticate, authorizeRoles([SUPERUSER]), validateUserStatus, updateUserStatus); router.delete("/:userId", authenticate, authorizeRoles([SUPERUSER]), deleteUserStatus); diff --git a/routes/users.js b/routes/users.js index 5a9463648..fb91142ac 100644 --- a/routes/users.js +++ b/routes/users.js @@ -29,7 +29,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), checkIsVerifiedDiscord, - users.updateDiscordUserNickname, + users.updateDiscordUserNickname ); router.get("/:username", users.getUser); router.get("/:userId/intro", authenticate, authorizeRoles([SUPERUSER]), users.getUserIntro); @@ -41,14 +41,14 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUsersPatchHandler, - users.usersPatchHandler, + users.usersPatchHandler ); router.patch( "/:id/temporary/data", authenticate, authorizeRoles([SUPERUSER]), userValidator.validateUpdateRoles, - users.updateRoles, + users.updateRoles ); // upload.single('profile') -> multer inmemory storage of file for type multipart/form-data @@ -58,7 +58,7 @@ router.patch( authenticate, authorizeRoles([SUPERUSER]), userValidator.validateImageVerificationQuery, - users.verifyUserImage, + users.verifyUserImage ); router.get("/picture/:id", authenticate, authorizeRoles([SUPERUSER]), users.getUserImageForVerification); router.patch("/profileURL", authenticate, userValidator.updateProfileURL, users.profileURL); diff --git a/scripts/validateSetup.js b/scripts/validateSetup.js index f54688045..b0751ab51 100644 --- a/scripts/validateSetup.js +++ b/scripts/validateSetup.js @@ -16,7 +16,7 @@ try { console.info("✅ Firestore config is correct."); } catch (error) { throw new Error( - "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️", + "⚠️ Please make sure firestore config exists as a String (not an object) and is correctly set up. ⚠️" ); } diff --git a/services/EventAPIService.js b/services/EventAPIService.js index 8b5af91a5..e5671cf96 100644 --- a/services/EventAPIService.js +++ b/services/EventAPIService.js @@ -34,7 +34,7 @@ class EventAPIService { }; return config; }, - (error) => Promise.reject(error), + (error) => Promise.reject(error) ); this.#axiosInstance.interceptors.response.use( (response) => { @@ -48,7 +48,7 @@ class EventAPIService { originalRequest._retry = true; } return Promise.reject(error); - }, + } ); } diff --git a/services/cloudflareService.js b/services/cloudflareService.js index a41d5a5d9..39dcac554 100644 --- a/services/cloudflareService.js +++ b/services/cloudflareService.js @@ -10,7 +10,7 @@ async function purgeCache(files) { { "X-Auth-Key": config.get("cloudflare.CLOUDFLARE_X_AUTH_KEY"), "X-Auth-Email": config.get("cloudflare.CLOUDFLARE_X_AUTH_EMAIL"), - }, + } ); return response; diff --git a/services/githubService.js b/services/githubService.js index 31e1a3de8..e164da462 100644 --- a/services/githubService.js +++ b/services/githubService.js @@ -35,7 +35,7 @@ const extractPRdetails = (data) => { labels: allLabels, assignees: allAssignees, }); - }, + } ); return allPRs; }; @@ -147,7 +147,7 @@ const fetchOpenPRs = async (params = {}) => { ...resultOptions, per_page: perPage, page, - }, + } ); return getFetch(url); } catch (err) { @@ -171,7 +171,7 @@ const fetchMergedPRs = async (params = {}) => { ...resultOptions, per_page: perPage, page, - }, + } ); return getFetch(url); @@ -197,7 +197,7 @@ const fetchOpenIssues = async (params = {}) => { per_page: perPage, page, }, - searchString, + searchString ); return getFetch(url); } catch (err) { @@ -221,7 +221,7 @@ const fetchClosedIssues = async (params = {}) => { ...resultOptions, per_page: perPage, page, - }, + } ); return getFetch(url); } catch (err) { @@ -251,7 +251,7 @@ const fetchIssues = async () => { // TODO: replace with RDS org PAT Authorization: `Bearer `, org: config.get("githubApi.org"), - }, + } ); return res; } catch (err) { diff --git a/test/integration/badges.test.js b/test/integration/badges.test.js index 0c0debbf7..6404d34a7 100644 --- a/test/integration/badges.test.js +++ b/test/integration/badges.test.js @@ -109,7 +109,7 @@ describe("Badges", function () { } expect(response).to.have.status(400); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required`, + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "createdBy" is required` ); expect(response.body.error).to.equal("Bad Request"); @@ -156,7 +156,7 @@ describe("Badges", function () { expect(response).to.have.status(400); expect(response.body.error).to.equal("Bad Request"); expect(response.body.message).to.equal( - `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required`, + `${ERROR_MESSAGES_VALIDATORS.API_PAYLOAD_VALIDATION_FAILED}, "userId" is required` ); return done(); }); diff --git a/test/integration/contributions.test.js b/test/integration/contributions.test.js index 8522e7502..e544c73ce 100644 --- a/test/integration/contributions.test.js +++ b/test/integration/contributions.test.js @@ -90,7 +90,7 @@ describe("Contributions", function () { "startedOn", "status", "title", - "id", + "id" ); expect(noteworthyObj.prList[0]).to.have.all.keys( "title", @@ -98,7 +98,7 @@ describe("Contributions", function () { "url", "createdAt", "updatedAt", - "raisedBy", + "raisedBy" ); const [noteworthyObj2] = res.body.all; expect(noteworthyObj2).to.contain.keys("task", "prList"); diff --git a/test/integration/discordactions.test.js b/test/integration/discordactions.test.js index b48ab1ced..8d64574fb 100644 --- a/test/integration/discordactions.test.js +++ b/test/integration/discordactions.test.js @@ -91,7 +91,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + }) ); chai .request(app) @@ -113,7 +113,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + }) ); chai .request(app) @@ -248,7 +248,7 @@ describe("Discord actions", function () { ], }, }, - { user: userData[0] }, + { user: userData[0] } ); const res = await chai @@ -268,7 +268,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }), + }) ); const roleId = groupData[4].roleid; const res = await chai @@ -287,7 +287,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }), + }) ); const roleId = groupData[4].roleid; @@ -302,7 +302,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role added successfully!"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}`, + `Action initiator's username=>ankur and id=${userId}` ); }); @@ -355,7 +355,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), - }), + }) ); chai .request(app) @@ -380,7 +380,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ roleId: "1234", wasSuccess: true }), - }), + }) ); const res = await chai .request(app) @@ -392,7 +392,7 @@ describe("Discord actions", function () { expect(res.body).to.be.an("object"); expect(res.body.message).to.equal("Role deleted successfully"); expect(fetchStub.getCall(0).args[1].headers["X-Audit-Log-Reason"]).to.equal( - `Action initiator's username=>ankur and id=${userId}`, + `Action initiator's username=>ankur and id=${userId}` ); }); @@ -463,7 +463,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordUsers), - }), + }) ); chai .request(app) @@ -526,7 +526,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(response), - }), + }) ); chai @@ -636,7 +636,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); }); @@ -708,7 +708,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getOnboarding31DPlusMembers), - }), + }) ); }); @@ -829,7 +829,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "xyz" } }), - }), + }) ); productManagerUserId = await addUser(productManagerUser); @@ -849,7 +849,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "zlmfasd" } }), - }), + }) ); designerUserId = await addUser(designerUser); @@ -869,7 +869,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), - }), + }) ); mavenUserId = await addUser(mavenUser); @@ -889,7 +889,7 @@ describe("Discord actions", function () { Promise.resolve({ status: 201, json: () => Promise.resolve({ data: { code: "asdfdsfsd" } }), - }), + }) ); const res = await chai diff --git a/test/integration/extensionRequests.test.js b/test/integration/extensionRequests.test.js index b4746300d..9a1915299 100644 --- a/test/integration/extensionRequests.test.js +++ b/test/integration/extensionRequests.test.js @@ -360,7 +360,7 @@ describe("Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task.", + "Only assigned user and super user can create an extension request for this task." ); return done(); }); @@ -924,7 +924,7 @@ describe("Extension Requests", function () { }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle, + (log) => log.meta.userId === superUserId && log.body.newTitle === newTitle && log.body.oldTitle === oldTitle ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newTitle).to.equal(newTitle); @@ -944,7 +944,7 @@ describe("Extension Requests", function () { }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA, + (log) => log.meta.userId === superUserId && log.body.newEndsOn === suETA && log.body.oldEndsOn === usersETA ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newEndsOn).to.equal(suETA); @@ -964,8 +964,7 @@ describe("Extension Requests", function () { }); const logs = await logsQuery.fetchLogs({ "meta.extensionRequestId": extensionRequestId5 }, "extensionRequests"); const updationLogs = logs.find( - (log) => - log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason, + (log) => log.meta.userId === superUserId && log.body.newReason === newReason && log.body.oldReason === oldReason ); expect(updationLogs.meta.extensionRequestId).to.equal(extensionRequestId5); expect(updationLogs.body.newReason).to.equal(newReason); diff --git a/test/integration/external-accounts.test.js b/test/integration/external-accounts.test.js index 6cfefd89b..158b6bac0 100644 --- a/test/integration/external-accounts.test.js +++ b/test/integration/external-accounts.test.js @@ -252,7 +252,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); chai .request(app) @@ -329,7 +329,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); const res = await chai @@ -356,7 +356,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); const res = await chai .request(app) @@ -382,7 +382,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); const res = await chai .request(app) @@ -408,7 +408,7 @@ describe("External Accounts", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); const res = await chai .request(app) diff --git a/test/integration/multilpleExtensionRequest.test.js b/test/integration/multilpleExtensionRequest.test.js index 8d2c189b5..75a08996e 100644 --- a/test/integration/multilpleExtensionRequest.test.js +++ b/test/integration/multilpleExtensionRequest.test.js @@ -132,7 +132,7 @@ describe("Multiple Extension Requests", function () { expect(res).to.have.status(403); expect(res.body).to.be.a("object"); expect(res.body.message).to.equal( - "Only assigned user and super user can create an extension request for this task.", + "Only assigned user and super user can create an extension request for this task." ); return done(); }); diff --git a/test/integration/progressesTasks.test.js b/test/integration/progressesTasks.test.js index d8d128d74..704c534db 100644 --- a/test/integration/progressesTasks.test.js +++ b/test/integration/progressesTasks.test.js @@ -60,7 +60,7 @@ describe("Test Progress Updates API for Tasks", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }), + }) ); chai .request(app) diff --git a/test/integration/progressesUsers.test.js b/test/integration/progressesUsers.test.js index e06d9a1d2..e70d5d317 100644 --- a/test/integration/progressesUsers.test.js +++ b/test/integration/progressesUsers.test.js @@ -55,7 +55,7 @@ describe("Test Progress Updates API for Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({}), - }), + }) ); chai .request(app) diff --git a/test/integration/restricted.test.js b/test/integration/restricted.test.js index 81d62d0df..aa3b7e5df 100644 --- a/test/integration/restricted.test.js +++ b/test/integration/restricted.test.js @@ -32,7 +32,7 @@ describe("checkRestrictedUser", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); }); diff --git a/test/integration/taskBasedStatusUpdate.test.js b/test/integration/taskBasedStatusUpdate.test.js index 9105e4012..86b353617 100644 --- a/test/integration/taskBasedStatusUpdate.test.js +++ b/test/integration/taskBasedStatusUpdate.test.js @@ -49,7 +49,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.IDLE); }); @@ -64,7 +64,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to IDLE.", + "As the user is currently OOO, the future status has been updated to IDLE." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.IDLE); @@ -143,7 +143,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -158,7 +158,7 @@ describe("Task Based Status Updates", function () { .send(reqBody); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE.", + "As the user is currently OOO, the future status has been updated to ACTIVE." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -257,7 +257,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -269,7 +269,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(200); expect(res.body.userStatus.status).to.equal("success"); expect(res.body.userStatus.message).to.equal( - "As the user is currently OOO, the future status has been updated to ACTIVE.", + "As the user is currently OOO, the future status has been updated to ACTIVE." ); expect(res.body.userStatus.data.currentStatus).to.equal(userState.OOO); expect(res.body.userStatus.data.futureStatus).to.equal(userState.ACTIVE); @@ -304,7 +304,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(500); expect(res.body.userStatus.error).to.equal("Internal Server Error"); expect(res.body.userStatus.message).to.equal( - "Please reach out to the administrator as your user status is not recognized as valid.", + "Please reach out to the administrator as your user status is not recognized as valid." ); }); @@ -315,7 +315,7 @@ describe("Task Based Status Updates", function () { expect(res.body.userStatus.status).to.equal(404); expect(res.body.userStatus.error).to.equal("Not Found"); expect(res.body.userStatus.message).to.equal( - "Something went wrong. Username funkeyMonkey123 could not be found.", + "Something went wrong. Username funkeyMonkey123 could not be found." ); }); }); @@ -394,7 +394,7 @@ describe("Task Based Status Updates", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered", + "idleUsersUnaltered" ); expect(response.usersCount).to.equal(12); expect(response.unprocessedUsers).to.equal(0); @@ -448,7 +448,7 @@ describe("Task Based Status Updates", function () { expect(res.status).to.equal(500); const response = res.body; expect(response.message).to.be.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information.", + "The server has encountered an unexpected error. Please contact the administrator for more information." ); }); }); @@ -518,8 +518,8 @@ describe("Task Based Status Updates", function () { .stub(userStatusModelFunction, "getTaskBasedUsersStatus") .throws( new Error( - "The server has encountered an unexpected error. Please contact the administrator for more information.", - ), + "The server has encountered an unexpected error. Please contact the administrator for more information." + ) ); const response = await chai .request(app) @@ -527,7 +527,7 @@ describe("Task Based Status Updates", function () { .set("cookie", `${cookieName}=${superUserJwt}`); expect(response.status).to.equal(500); expect(response.body.message).to.equal( - "The server has encountered an unexpected error. Please contact the administrator for more information.", + "The server has encountered an unexpected error. Please contact the administrator for more information." ); }); }); diff --git a/test/integration/tasks.test.js b/test/integration/tasks.test.js index 1e9df7b53..ef3cee88f 100644 --- a/test/integration/tasks.test.js +++ b/test/integration/tasks.test.js @@ -210,7 +210,7 @@ describe("Tasks", function () { after(async function () { await tasks.updateTask( { ...taskData[1], createdAt: 1621717694, updatedAt: 1700775753, dependsOn: [], status: "IN_PROGRESS" }, - taskId2, + taskId2 ); }); @@ -507,7 +507,7 @@ describe("Tasks", function () { { status: "COMPLETED", }, - taskId2, + taskId2 ); const res = await chai.request(app).get(`/tasks?dev=true&status=DONE&userFeatureFlag=true`); @@ -1217,7 +1217,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from In progress until progress of task is not 100%.", + "The status of task can not be changed from In progress until progress of task is not 100%." ); }); @@ -1232,7 +1232,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed to In progress until progress of task is not 0%.", + "The status of task can not be changed to In progress until progress of task is not 0%." ); }); @@ -1247,7 +1247,7 @@ describe("Tasks", function () { expect(res).to.have.status(400); expect(res.body.message).to.be.equal( - "The status of task can not be changed from Blocked until progress of task is not 100%.", + "The status of task can not be changed from Blocked until progress of task is not 100%." ); }); diff --git a/test/integration/userStatus.test.js b/test/integration/userStatus.test.js index b45868bc2..6c62e811c 100644 --- a/test/integration/userStatus.test.js +++ b/test/integration/userStatus.test.js @@ -431,7 +431,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The value for the 'message' field is mandatory when State is OOO for more than three days.`, + `The value for the 'message' field is mandatory when State is OOO for more than three days.` ); return done(); }); @@ -452,7 +452,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'from' field must have a value that is either today or a date that follows today.`, + `The 'from' field must have a value that is either today or a date that follows today.` ); return done(); }); @@ -474,7 +474,7 @@ describe("UserStatus", function () { expect(res).to.have.status(400); expect(res.body.error).to.equal(`Bad Request`); expect(res.body.message).to.equal( - `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.`, + `The 'until' field must have a value that is either 'from' date or a date that comes after 'from' day.` ); return done(); }); diff --git a/test/integration/users.test.js b/test/integration/users.test.js index 2109c5e73..d613ff2f9 100644 --- a/test/integration/users.test.js +++ b/test/integration/users.test.js @@ -72,7 +72,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); }); @@ -1757,7 +1757,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); chai .request(app) @@ -2100,7 +2100,7 @@ describe("Users", function () { expect(res.body.summary.totalUsers).to.be.equal(3); expect(res.body.summary.totalOperationsFailed).to.be.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false", + "Successfully updated users archived role to true if in_discord role is false" ); return done(); }); @@ -2175,7 +2175,7 @@ describe("Users", function () { expect(res.body.summary.updatedUserDetails.length).to.equal(3); expect(res.body.summary.failedUserDetails.length).to.equal(0); expect(res.body.message).to.equal( - "Successfully updated users archived role to true if in_discord role is false", + "Successfully updated users archived role to true if in_discord role is false" ); return done(); }); @@ -2198,7 +2198,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(), - }), + }) ); chai .request(app) @@ -2259,7 +2259,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); }); @@ -2295,7 +2295,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordMembers), - }), + }) ); }); @@ -2318,7 +2318,7 @@ describe("Users", function () { expect(res).to.have.status(403); expect(res.body.message).to.equal( - "Developers can't update their profile data. Use profile service for updating.", + "Developers can't update their profile data. Use profile service for updating." ); return done(); @@ -2336,7 +2336,7 @@ describe("Users", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordMembers), - }), + }) ); }); diff --git a/test/integration/usersFilter.test.js b/test/integration/usersFilter.test.js index 5b2d7cf2f..32e80f5c2 100644 --- a/test/integration/usersFilter.test.js +++ b/test/integration/usersFilter.test.js @@ -44,12 +44,12 @@ describe("Filter Users", function () { oooUser = await addUser(userData[0]); await updateUserStatus( oooUser, - generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health"), + generateUserStatusData(userState.OOO, updatedAtDate, updatedAtDate, untilDate, "Bad Health") ); idleUser = await addUser(userData[1]); await updateUserStatus( idleUser, - generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS"), + generateUserStatusData(userState.IDLE, updatedAtDate, updatedAtDate, untilDate, "CSS") ); activeUser = await addUser(userData[8]); await updateUserStatus(activeUser, generateUserStatusData(userState.ACTIVE, updatedAtDate, updatedAtDate)); diff --git a/test/unit/middlewares/contentTypeCheck.test.js b/test/unit/middlewares/contentTypeCheck.test.js index 9f4feaedf..fc87aff25 100644 --- a/test/unit/middlewares/contentTypeCheck.test.js +++ b/test/unit/middlewares/contentTypeCheck.test.js @@ -26,7 +26,7 @@ describe("contentTypeCheck", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(getDiscordMembers), - }), + }) ); }); diff --git a/test/unit/models/discordactions.test.js b/test/unit/models/discordactions.test.js index b95ce28b0..f8d903872 100644 --- a/test/unit/models/discordactions.test.js +++ b/test/unit/models/discordactions.test.js @@ -301,7 +301,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + }) ); const result = await updateDiscordImageForVerification(userDiscordId); @@ -314,7 +314,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + }) ); try { @@ -332,7 +332,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ user: { avatar: 12345 } }), - }), + }) ); sinon.stub(logger, "error"); @@ -529,7 +529,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(fetchStubResponse), - }), + }) ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -555,7 +555,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(fetchStubResponse), - }), + }) ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; @@ -577,7 +577,7 @@ describe("discordactions", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(fetchStubResponse), - }), + }) ); const lastTimestamp = Date.now() - ONE_DAY_IN_MS * 3; diff --git a/test/unit/models/recruiters.test.js b/test/unit/models/recruiters.test.js index ef5856e65..e08e1ca8e 100644 --- a/test/unit/models/recruiters.test.js +++ b/test/unit/models/recruiters.test.js @@ -31,7 +31,7 @@ describe("Recruiters", function () { // Add recruiter data const { recruiterId, recruiterName, userInfo, timestamp } = await recruiters.addRecruiterInfo( recruiterData, - username, + username ); const data = (await recruiterModel.doc(recruiterId).get()).data(); diff --git a/test/unit/models/task-requests.test.js b/test/unit/models/task-requests.test.js index 74934f61e..092ff67fe 100644 --- a/test/unit/models/task-requests.test.js +++ b/test/unit/models/task-requests.test.js @@ -393,7 +393,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.equal( approvedTask.data().updatedAt, - "When new task is created createdAt and updatedAt both are same", + "When new task is created createdAt and updatedAt both are same" ); expect(approvedTask.data().percentCompleted).to.equal(0); expect(approvedTask.data().priority).to.equal(DEFAULT_TASK_PRIORITY); @@ -416,7 +416,7 @@ describe("Task requests | models", function () { expect(approvedTask.data().updatedAt).to.be.a("number"); expect(approvedTask.data().createdAt).to.be.not.equal( approvedTask.data().updatedAt, - "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same", + "When existing task is updated, updatedAt field is updated so createdAt and updatedAt are not same" ); }); @@ -526,10 +526,10 @@ describe("Task requests | models", function () { const taskRequestData2 = (await taskRequestsCollection.doc(taskRequestId2).get()).data(); expect(taskRequestData2.taskTitle).to.be.equal(taskData.taskData.title); expect(taskRequestData2.users[0].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[0], + mockData.existingOldTaskRequestWithMultipleUsers.requestors[0] ); expect(taskRequestData2.users[1].userId).to.be.equal( - mockData.existingOldTaskRequestWithMultipleUsers.requestors[1], + mockData.existingOldTaskRequestWithMultipleUsers.requestors[1] ); expect(taskRequestData2.requestType).to.be.equal(TASK_REQUEST_TYPE.ASSIGNMENT); }); diff --git a/test/unit/models/taskBasedStatusUpdate.test.js b/test/unit/models/taskBasedStatusUpdate.test.js index 92e85b05c..df149aa26 100644 --- a/test/unit/models/taskBasedStatusUpdate.test.js +++ b/test/unit/models/taskBasedStatusUpdate.test.js @@ -56,7 +56,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an IDLE status." ); expect(res.data.currentStatus).to.equal(userState.IDLE); }); @@ -103,7 +103,7 @@ describe("Update Status based on task update", function () { const res = await updateStatusOnTaskCompletion(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -156,7 +156,7 @@ describe("Update Status based on task update", function () { const res = await updateUserStatusOnNewTaskAssignment(userId); expect(res.status).to.equal("success"); expect(res.message).to.equal( - "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status.", + "UserStatus Document did not previously exist, New UserStatus Document created and updated to an ACTIVE status." ); expect(res.data.currentStatus).to.equal(userState.ACTIVE); }); @@ -204,7 +204,7 @@ describe("Update Status based on task update", function () { await updateUserStatusOnNewTaskAssignment(userId).catch((err) => { expect(err).to.be.an.instanceOf(Error); expect(err.message).to.be.equal( - "Please reach out to the administrator as your user status is not recognized as valid.", + "Please reach out to the administrator as your user status is not recognized as valid." ); }); }); @@ -298,7 +298,7 @@ describe("Update Status based on task update", function () { "activeUsersAltered", "activeUsersUnaltered", "idleUsersAltered", - "idleUsersUnaltered", + "idleUsersUnaltered" ); expect(result.usersCount).to.equal(12); expect(result.unprocessedUsers).to.equal(0); diff --git a/test/unit/services/discordMembersService.test.js b/test/unit/services/discordMembersService.test.js index e7d4c9c76..e2fa596fd 100644 --- a/test/unit/services/discordMembersService.test.js +++ b/test/unit/services/discordMembersService.test.js @@ -29,7 +29,7 @@ describe("getDiscordMemberDetails", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(expectedMemberDetails), - }), + }) ); const response = await getDiscordMemberDetails(discordId); @@ -44,7 +44,7 @@ describe("getDiscordMemberDetails", function () { Promise.resolve({ status: 404, json: () => Promise.resolve({ message: "User does not exist" }), - }), + }) ); try { diff --git a/test/unit/services/discordService.test.js b/test/unit/services/discordService.test.js index 4f507ab05..69887c58b 100644 --- a/test/unit/services/discordService.test.js +++ b/test/unit/services/discordService.test.js @@ -47,7 +47,7 @@ describe("Discord services", function () { Promise.resolve({ status: 200, json: () => Promise.resolve({ message: "done" }), - }), + }) ); const response = await addRoleToUser("123456789", "987654321"); @@ -70,7 +70,7 @@ describe("Discord services", function () { Promise.resolve({ status: 200, json: () => Promise.resolve(discordMembersArray.getDiscordMembers), - }), + }) ); const response = await getDiscordMembers(); @@ -105,7 +105,7 @@ describe("Discord services", function () { message: "Role Removed Successfully", userAffected: { userid: "987654321123456789", roleid: "112233445566778899" }, }), - }), + }) ); const response = await removeRoleFromUser("112233445566778899", "987654321123456789"); expect(response).to.deep.equal({ @@ -142,7 +142,7 @@ describe("Discord services", function () { userEffected: "Kotesh", message: "User nickname changed successfully", }), - }), + }) ); const response = await setUserDiscordNickname("Kotesh", "aMYlI7sxQ4JMPwiqLQlp"); diff --git a/test/unit/services/githubService.test.js b/test/unit/services/githubService.test.js index d3f9d090d..60e27ded2 100644 --- a/test/unit/services/githubService.test.js +++ b/test/unit/services/githubService.test.js @@ -23,7 +23,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open PRs", async function () { const response = await githubService.fetchOpenPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen&sort=created&per_page=100&page=1" ); }); }); @@ -40,7 +40,7 @@ describe("githubService", function () { }; const response = await githubService.fetchOpenPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Aopen+created%3A2023-01-01..2023-02-01&sort=created&order=desc&per_page=100&page=1" ); }); }); @@ -50,7 +50,7 @@ describe("githubService", function () { await addUser(); const response = await githubService.fetchPRsByUser(githubUserInfo[0].username); expect(response).to.be.equal( - `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr`, + `https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+author%3A${githubUserInfo[0].username}+type%3Apr` ); }); }); @@ -59,7 +59,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch merged Prs", async function () { const response = await githubService.fetchMergedPRs(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged&sort=updated&per_page=100&page=1" ); }); }); @@ -76,7 +76,7 @@ describe("githubService", function () { }; const response = await githubService.fetchMergedPRs(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Apr+is%3Amerged+merged%3A%3C%3D2023-01-01&sort=updated&order=asc&per_page=100&page=1" ); }); }); @@ -85,7 +85,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch open issues", async function () { const response = await githubService.fetchOpenIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen&sort=created&per_page=100&page=1" ); }); }); @@ -102,7 +102,7 @@ describe("githubService", function () { }; const response = await githubService.fetchOpenIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aopen+created%3A%3E%3D2023-01-01&sort=created&order=desc&per_page=100&page=1" ); }); }); @@ -111,7 +111,7 @@ describe("githubService", function () { it("Should generate the correct url to fetch closed issues", async function () { const response = await githubService.fetchClosedIssues(); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed&sort=updated&per_page=100&page=1" ); }); }); @@ -128,7 +128,7 @@ describe("githubService", function () { }; const response = await githubService.fetchClosedIssues(params); expect(response).to.be.equal( - "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1", + "https://api.github.com/search/issues?q=org%3AReal-Dev-Squad+type%3Aissue+is%3Aclosed+closed%3A2023-01-01..2023-02-01&sort=updated&order=desc&per_page=100&page=1" ); }); }); diff --git a/test/unit/utils/sendTaskUpdate.test.js b/test/unit/utils/sendTaskUpdate.test.js index 7dde895b9..c8f9fcc6a 100644 --- a/test/unit/utils/sendTaskUpdate.test.js +++ b/test/unit/utils/sendTaskUpdate.test.js @@ -23,7 +23,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "Task title", + "Task title" ); expect(result).to.equal(undefined); }); @@ -38,7 +38,7 @@ describe("sendTaskUpdate function", function () { "Plan for the next phase", "userName", "taskId", - "task title", + "task title" ); } catch (err) { expect(err).to.be.equal(error); diff --git a/test/unit/utils/tasks.test.js b/test/unit/utils/tasks.test.js index 884663800..942e5b340 100644 --- a/test/unit/utils/tasks.test.js +++ b/test/unit/utils/tasks.test.js @@ -7,7 +7,7 @@ describe("Utils | Tasks", function () { describe("transformTasksUsersQuery", function () { it("should correctly transform given queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4`, + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -date:231423432 -days-count:4` ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); @@ -21,7 +21,7 @@ describe("Utils | Tasks", function () { it("should correctly transform multiple queries", function () { const rqlParser = new RQLQueryParser( - `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4`, + `status:${tasksUsersStatus.MISSED_UPDATES} -weekday:sun -weekday:mon -date:231423432 -date:231423433434 -days-count:4` ); const filterQueries = rqlParser.getFilterQueries(); const result = transformTasksUsersQuery({ ...filterQueries, size: 40 }); diff --git a/test/unit/utils/users.test.js b/test/unit/utils/users.test.js index 515a6c20d..d2e2198a7 100644 --- a/test/unit/utils/users.test.js +++ b/test/unit/utils/users.test.js @@ -187,7 +187,7 @@ describe("users", function () { .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) .join("-") - .substring(0, usernameLen)} ${oooMessage}`, + .substring(0, usernameLen)} ${oooMessage}` ); }); @@ -208,7 +208,7 @@ describe("users", function () { username .split("-") .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) - .join("-"), + .join("-") ); }); }); @@ -233,7 +233,7 @@ describe("users", function () { status: 200, ok: true, json: () => Promise.resolve(response), - }), + }) ); const status = { diff --git a/utils/logs.js b/utils/logs.js index cadfb6f6a..94d5a10b0 100644 --- a/utils/logs.js +++ b/utils/logs.js @@ -27,7 +27,7 @@ async function getTasksFromLogs(allLogs) { .where( admin.firestore.FieldPath.documentId(), "in", - Array.from(taskIds).filter((e) => e), + Array.from(taskIds).filter((e) => e) ) .get(); data.forEach((doc) => { diff --git a/yarn.lock b/yarn.lock index 6b4c28d4f..0a6987c1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -269,95 +269,101 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== -"@fastify/busboy@^2.1.0": - version "2.1.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" - integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== - -"@firebase/app-check-interop-types@0.3.2": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz#455b6562c7a3de3ef75ea51f72dfec5829ad6997" - integrity sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ== +"@fastify/busboy@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-1.2.1.tgz#9c6db24a55f8b803b5222753b24fe3aea2ba9ca3" + integrity sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q== + dependencies: + text-decoding "^1.0.0" -"@firebase/app-types@0.9.2": - version "0.9.2" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.2.tgz#8cbcceba784753a7c0066a4809bc22f93adee080" - integrity sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ== +"@firebase/app-types@0.9.0": + version "0.9.0" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.0.tgz#35b5c568341e9e263b29b3d2ba0e9cfc9ec7f01e" + integrity sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q== -"@firebase/auth-interop-types@0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz#927f1f2139a680b55fef0bddbff2c982b08587e8" - integrity sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ== +"@firebase/auth-interop-types@0.2.1": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz#78884f24fa539e34a06c03612c75f222fcc33742" + integrity sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg== -"@firebase/component@0.6.7": - version "0.6.7" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.7.tgz#6fbffddb26833e1ed58bf296ad587cb330aee716" - integrity sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA== +"@firebase/component@0.6.4": + version "0.6.4" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.4.tgz#8981a6818bd730a7554aa5e0516ffc9b1ae3f33d" + integrity sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA== dependencies: - "@firebase/util" "1.9.6" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/database-compat@^1.0.2": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-1.0.5.tgz#18c2314f169942ac315e46b68f86cbe64bafe063" - integrity sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg== - dependencies: - "@firebase/component" "0.6.7" - "@firebase/database" "1.0.5" - "@firebase/database-types" "1.0.3" - "@firebase/logger" "0.4.2" - "@firebase/util" "1.9.6" +"@firebase/database-compat@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.3.4.tgz#4e57932f7a5ba761cd5ac946ab6b6ab3f660522c" + integrity sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg== + dependencies: + "@firebase/component" "0.6.4" + "@firebase/database" "0.14.4" + "@firebase/database-types" "0.10.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" tslib "^2.1.0" -"@firebase/database-types@1.0.3", "@firebase/database-types@^1.0.0": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.3.tgz#1b764212dce88eca74b16da9d220cfea6814858e" - integrity sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA== +"@firebase/database-types@0.10.4", "@firebase/database-types@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.10.4.tgz#47ba81113512dab637abace61cfb65f63d645ca7" + integrity sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ== dependencies: - "@firebase/app-types" "0.9.2" - "@firebase/util" "1.9.6" + "@firebase/app-types" "0.9.0" + "@firebase/util" "1.9.3" -"@firebase/database@1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.0.5.tgz#09d7162b7dbc4533f17498ac6a76d5e757ab45be" - integrity sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw== - dependencies: - "@firebase/app-check-interop-types" "0.3.2" - "@firebase/auth-interop-types" "0.2.3" - "@firebase/component" "0.6.7" - "@firebase/logger" "0.4.2" - "@firebase/util" "1.9.6" +"@firebase/database@0.14.4": + version "0.14.4" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.14.4.tgz#9e7435a16a540ddfdeb5d99d45618e6ede179aa6" + integrity sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ== + dependencies: + "@firebase/auth-interop-types" "0.2.1" + "@firebase/component" "0.6.4" + "@firebase/logger" "0.4.0" + "@firebase/util" "1.9.3" faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/logger@0.4.2": - version "0.4.2" - resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.2.tgz#74dfcfeedee810deb8a7080d5b7eba56aa16ffa2" - integrity sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A== +"@firebase/logger@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.0.tgz#15ecc03c452525f9d47318ad9491b81d1810f113" + integrity sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA== dependencies: tslib "^2.1.0" -"@firebase/util@1.9.6": - version "1.9.6" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.6.tgz#56dc34e20fcbc0dd07b11b800f95f5d0417cbfb4" - integrity sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw== +"@firebase/util@1.9.3": + version "1.9.3" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.3.tgz#45458dd5cd02d90e55c656e84adf6f3decf4b7ed" + integrity sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA== dependencies: tslib "^2.1.0" -"@google-cloud/firestore@^7.7.0": - version "7.8.0" - resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-7.8.0.tgz#029bed6c47de84c667a27256acbaca6f6ee50e15" - integrity sha512-m21BWVZLz7H7NF8HZ5hCGUSCEJKNwYB5yzQqDTuE9YUzNDRMDei3BwVDht5k4xF636sGlnobyBL+dcbthSGONg== +"@google-cloud/cloud-sql-connector@^1.2.3": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@google-cloud/cloud-sql-connector/-/cloud-sql-connector-1.3.1.tgz#0a6d050e1dd4f43c5a39f57e742cf70235f21174" + integrity sha512-lF52gnTeO3bf1Yt0DGkCJ8j/+Q9w9bK4Oa99hE6irR1k8WFYOMhwpg+rcMlYL8B1T2niUEFbS+u2gqwX+Krv/w== + dependencies: + "@googleapis/sqladmin" "^18.0.0" + gaxios "^6.1.1" + google-auth-library "^9.2.0" + p-throttle "^5.1.0" + +"@google-cloud/firestore@^6.8.0": + version "6.8.0" + resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-6.8.0.tgz#d8c852844c381afaf62592796606c10e178400b5" + integrity sha512-JRpk06SmZXLGz0pNx1x7yU3YhkUXheKgH5hbDZ4kMsdhtfV5qPLJLRI4wv69K0cZorIk+zTMOwptue7hizo0eA== dependencies: fast-deep-equal "^3.1.1" functional-red-black-tree "^1.0.1" - google-gax "^4.3.3" - protobufjs "^7.2.6" + google-gax "^3.5.7" + protobufjs "^7.2.5" -"@google-cloud/paginator@^4.0.0": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-4.0.1.tgz#5fb8793d4f84d18c50a6f2fad3dadab8d2c533ef" - integrity sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ== +"@google-cloud/paginator@^3.0.7": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" + integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== dependencies: arrify "^2.0.0" extend "^3.0.2" @@ -370,10 +376,10 @@ arrify "^2.0.0" extend "^3.0.2" -"@google-cloud/precise-date@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-3.0.1.tgz#1e6659a14af662442037b8f4d20dbc82bf1a78bd" - integrity sha512-crK2rgNFfvLoSgcKJY7ZBOLW91IimVNmPfi1CL+kMTf78pTJYd29XqEVedAeBu4DwCJc0EDIp1MpctLgoPq+Uw== +"@google-cloud/precise-date@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-4.0.0.tgz#e179893a3ad628b17a6fabdfcc9d468753aac11a" + integrity sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA== "@google-cloud/projectify@^3.0.0": version "3.0.0" @@ -385,59 +391,67 @@ resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== -"@google-cloud/promisify@^2.0.0": - version "2.0.4" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" - integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== +"@google-cloud/promisify@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-3.0.1.tgz#8d724fb280f47d1ff99953aee0c1669b25238c2e" + integrity sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA== "@google-cloud/promisify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== -"@google-cloud/pubsub@^3.0.1": - version "3.7.5" - resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-3.7.5.tgz#3fed656b7e7ea3a4618d5590004f08321a1389b9" - integrity sha512-4Qrry4vIToth5mqduVslltWVsyb7DR8OhnkBA3F7XiE0jgQsiuUfwp/RB2F559aXnRbwcfmjvP4jSuEaGcjrCQ== +"@google-cloud/pubsub@^4.4.0": + version "4.5.0" + resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-4.5.0.tgz#0c163038f4f00d40df1c21bfe1c1db87011a997e" + integrity sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA== dependencies: - "@google-cloud/paginator" "^4.0.0" - "@google-cloud/precise-date" "^3.0.0" - "@google-cloud/projectify" "^3.0.0" - "@google-cloud/promisify" "^2.0.0" - "@opentelemetry/api" "^1.6.0" - "@opentelemetry/semantic-conventions" "~1.3.0" - "@types/duplexify" "^3.6.0" - "@types/long" "^4.0.0" + "@google-cloud/paginator" "^5.0.0" + "@google-cloud/precise-date" "^4.0.0" + "@google-cloud/projectify" "^4.0.0" + "@google-cloud/promisify" "^4.0.0" + "@opentelemetry/api" "~1.8.0" + "@opentelemetry/semantic-conventions" "~1.21.0" arrify "^2.0.0" extend "^3.0.2" - google-auth-library "^8.0.2" - google-gax "^3.6.1" + google-auth-library "^9.3.0" + google-gax "^4.3.3" heap-js "^2.2.0" is-stream-ended "^0.1.4" lodash.snakecase "^4.1.1" p-defer "^3.0.0" -"@google-cloud/storage@^7.7.0": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.11.2.tgz#a8942d9a4a75634186d262b82c5b41e90649f11c" - integrity sha512-jJOrKyOdujfrSF8EJODW9yY6hqO4jSTk6eVITEj2gsD43BSXuDlnMlLOaBUQhXL29VGnSkxDgYl5tlFhA6LKSA== +"@google-cloud/storage@^6.9.5": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-6.12.0.tgz#a5d3093cc075252dca5bd19a3cfda406ad3a9de1" + integrity sha512-78nNAY7iiZ4O/BouWMWTD/oSF2YtYgYB3GZirn0To6eBOugjXVoK+GXgUXOl+HlqbAOyHxAVXOlsj3snfbQ1dw== dependencies: - "@google-cloud/paginator" "^5.0.0" - "@google-cloud/projectify" "^4.0.0" - "@google-cloud/promisify" "^4.0.0" + "@google-cloud/paginator" "^3.0.7" + "@google-cloud/projectify" "^3.0.0" + "@google-cloud/promisify" "^3.0.0" abort-controller "^3.0.0" async-retry "^1.3.3" - duplexify "^4.1.3" - fast-xml-parser "^4.3.0" - gaxios "^6.0.2" - google-auth-library "^9.6.3" - html-entities "^2.5.2" + compressible "^2.0.12" + duplexify "^4.0.0" + ent "^2.2.0" + extend "^3.0.2" + fast-xml-parser "^4.2.2" + gaxios "^5.0.0" + google-auth-library "^8.0.1" mime "^3.0.0" + mime-types "^2.0.8" p-limit "^3.0.1" - retry-request "^7.0.0" - teeny-request "^9.0.0" + retry-request "^5.0.0" + teeny-request "^8.0.0" uuid "^8.0.0" +"@googleapis/sqladmin@^18.0.0": + version "18.0.0" + resolved "https://registry.yarnpkg.com/@googleapis/sqladmin/-/sqladmin-18.0.0.tgz#290a41c05d750130493e08e3b7f0b6f2fd478aab" + integrity sha512-OhGKZzcFVVXPedf4WMecTmLQ7jfRyNte6NZ+unwO3PtDgw1WyTpbR9DMGMRDpOONeSpsdu0vDn8OrKokHCQpaw== + dependencies: + googleapis-common "^7.0.0" + "@grpc/grpc-js@^1.9.4", "@grpc/grpc-js@~1.10.3": version "1.10.9" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c" @@ -692,26 +706,21 @@ dependencies: semver "^7.3.5" -"@opentelemetry/api@^1.6.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" - integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== +"@opentelemetry/api@~1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" + integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== -"@opentelemetry/semantic-conventions@~1.3.0": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz#ba07b864a3c955f061aa30ea3ef7f4ae4449794a" - integrity sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA== +"@opentelemetry/semantic-conventions@~1.21.0": + version "1.21.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz#83f7479c524ab523ac2df702ade30b9724476c72" + integrity sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g== "@pkgjs/parseargs@^0.11.0": version "0.11.0" resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@pkgr/core/-/core-0.1.1.tgz#1ec17e2edbec25c8306d424ecfbf13c7de1aaa31" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== - "@pnpm/config.env-replace@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@pnpm/config.env-replace/-/config.env-replace-1.1.0.tgz#ab29da53df41e8948a00f2433f085f54de8b3a4c" @@ -891,7 +900,7 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== -"@types/chai@4", "@types/chai@4.3.16": +"@types/chai@4", "@types/chai@^4.3.12": version "4.3.16" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== @@ -903,7 +912,7 @@ dependencies: "@types/node" "*" -"@types/config@3.3.4": +"@types/config@^3.3.3": version "3.3.4" resolved "https://registry.yarnpkg.com/@types/config/-/config-3.3.4.tgz#e46d1ee74f9b0c53645f644dd5f3ba5bedc68d76" integrity sha512-qFiTLnWy+TdPSMIXFHP+87lFXFRM4SXjRS+CSB66+56TrpLNw003y1sh7DGaaC1NGesxgKoT5FDy6dyA1Xju/g== @@ -920,24 +929,17 @@ resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== -"@types/duplexify@^3.6.0": - version "3.6.4" - resolved "https://registry.yarnpkg.com/@types/duplexify/-/duplexify-3.6.4.tgz#aa7e916c33fcc05be8769546fd0441d9b368613e" - integrity sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg== - dependencies: - "@types/node" "*" - "@types/express-serve-static-core@^4.17.33": - version "4.19.3" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.3.tgz#e469a13e4186c9e1c0418fb17be8bc8ff1b19a7a" - integrity sha512-KOzM7MhcBFlmnlr/fzISFF5vGWVSvN6fTd4T+ExOt08bA/dA5kpSzY52nMsI1KDFmUREpJelPYyuslLRSjjgCg== + version "4.19.5" + resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" + integrity sha512-y6W03tvrACO72aijJ5uF02FRq5cgDR9lUxddQ8vyF+GvmjJQqbzDcJngEjURc+ZsG31VI3hODNZJ2URj86pzmg== dependencies: "@types/node" "*" "@types/qs" "*" "@types/range-parser" "*" "@types/send" "*" -"@types/express@4.17.21", "@types/express@^4.17.17": +"@types/express@^4.17.17", "@types/express@^4.17.21": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -986,7 +988,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@29.5.12": +"@types/jest@^29.5.12": version "29.5.12" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== @@ -1044,22 +1046,15 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== -"@types/mocha@10.0.6": +"@types/mocha@^10.0.6": version "10.0.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.10.3": - version "20.14.2" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.2.tgz#a5f4d2bcb4b6a87bffcaa717718c5a0f208f4a18" - integrity sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q== - dependencies: - undici-types "~5.26.4" - -"@types/node@20.11.24": - version "20.11.24" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" - integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.11.24": + version "20.14.6" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.6.tgz#f3c19ffc98c2220e18de259bb172dd4d892a6075" + integrity sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw== dependencies: undici-types "~5.26.4" @@ -1118,7 +1113,7 @@ "@types/node" "*" "@types/send" "*" -"@types/sinon@17.0.3": +"@types/sinon@^17.0.3": version "17.0.3" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== @@ -1176,36 +1171,36 @@ "@types/yargs-parser" "*" "@typescript-eslint/parser@^7.1.1": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.0.tgz#9489098d68d57ad392f507495f2b82ce8b8f0a6b" - integrity sha512-EjMfl69KOS9awXXe83iRN7oIEXy9yYdqWfqdrFAYAAr6syP8eLEFI7ZE4939antx2mNgPRW/o1ybm2SFYkbTVA== - dependencies: - "@typescript-eslint/scope-manager" "7.13.0" - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/typescript-estree" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-7.13.1.tgz#fac57811b3e519185f7259bac312291f7b9c4e72" + integrity sha512-1ELDPlnLvDQ5ybTSrMhRTFDfOQEOXNM+eP+3HT/Yq7ruWpciQw+Avi73pdEbA4SooCawEWo3dtYbF68gN7Ed1A== + dependencies: + "@typescript-eslint/scope-manager" "7.13.1" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/typescript-estree" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.0.tgz#6927d6451537ce648c6af67a2327378d4cc18462" - integrity sha512-ZrMCe1R6a01T94ilV13egvcnvVJ1pxShkE0+NDjDzH4nvG1wXpwsVI5bZCvE7AEDH1mXEx5tJSVR68bLgG7Dng== +"@typescript-eslint/scope-manager@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-7.13.1.tgz#c08041206904bf36f0e6997efdb0ca775e0c452e" + integrity sha512-adbXNVEs6GmbzaCpymHQ0MB6E4TqoiVbC0iqG3uijR8ZYfpAXMGttouQzF4Oat3P2GxDVIrg7bMI/P65LiQZdg== dependencies: - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" -"@typescript-eslint/types@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.0.tgz#0cca95edf1f1fdb0cfe1bb875e121b49617477c5" - integrity sha512-QWuwm9wcGMAuTsxP+qz6LBBd3Uq8I5Nv8xb0mk54jmNoCyDspnMvVsOxI6IsMmway5d1S9Su2+sCKv1st2l6eA== +"@typescript-eslint/types@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-7.13.1.tgz#787db283bd0b58751094c90d5b58bbf5e9fc9bd8" + integrity sha512-7K7HMcSQIAND6RBL4kDl24sG/xKM13cA85dc7JnmQXw2cBDngg7c19B++JzvJHRG3zG36n9j1i451GBzRuHchw== -"@typescript-eslint/typescript-estree@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.0.tgz#4cc24fc155088ebf3b3adbad62c7e60f72c6de1c" - integrity sha512-cAvBvUoobaoIcoqox1YatXOnSl3gx92rCZoMRPzMNisDiM12siGilSM4+dJAekuuHTibI2hVC2fYK79iSFvWjw== +"@typescript-eslint/typescript-estree@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-7.13.1.tgz#3412841b130e070db2f675e3d9b8cb1ae49e1c3f" + integrity sha512-uxNr51CMV7npU1BxZzYjoVz9iyjckBduFBP0S5sLlh1tXYzHzgZ3BR9SVsNed+LmwKrmnqN3Kdl5t7eZ5TS1Yw== dependencies: - "@typescript-eslint/types" "7.13.0" - "@typescript-eslint/visitor-keys" "7.13.0" + "@typescript-eslint/types" "7.13.1" + "@typescript-eslint/visitor-keys" "7.13.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -1213,12 +1208,12 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/visitor-keys@7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.0.tgz#2eb7ce8eb38c2b0d4a494d1fe1908e7071a1a353" - integrity sha512-nxn+dozQx+MK61nn/JP+M4eCkHDSxSLDpgE3WcQo0+fkjEolnaB5jswvIKC4K56By8MMgIho7f1PVxERHEo8rw== +"@typescript-eslint/visitor-keys@7.13.1": + version "7.13.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-7.13.1.tgz#9c229a795a919db61f2d7f2337ef584ac05fbe96" + integrity sha512-k/Bfne7lrP7hcb7m9zSsgcBmo+8eicqqfNAJ7uUY+jkTFpKeH2FSkWpFRtimBxgkyvqfu9jTPRbYOvud6isdXA== dependencies: - "@typescript-eslint/types" "7.13.0" + "@typescript-eslint/types" "7.13.1" eslint-visitor-keys "^3.4.3" "@tyriar/fibonacci-heap@^2.0.7": @@ -1616,7 +1611,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@1.7.2, axios@^1.6.8: +axios@^1.6.7, axios@^1.6.8: version "1.7.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== @@ -1780,12 +1775,13 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -busboy@^1.0.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== +busboy@^0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" + integrity sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg== dependencies: - streamsearch "^1.1.0" + dicer "0.2.5" + readable-stream "1.1.x" bytes@3.0.0: version "3.0.0" @@ -1881,7 +1877,7 @@ catharsis@^0.9.0: dependencies: lodash "^4.17.15" -chai-http@4.4.0: +chai-http@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/chai-http/-/chai-http-4.4.0.tgz#bb8c346caa25b3c76118c68f7a7cecc0493669b8" integrity sha512-uswN3rZpawlRaa5NiDUHcDZ3v2dw5QgLyAwnQ2tnVNuP7CwIsOFuYJ0xR1WiR7ymD4roBnJIzOUep7w9jQMFJA== @@ -1895,7 +1891,7 @@ chai-http@4.4.0: qs "^6.11.2" superagent "^8.0.9" -chai@4.4.1: +chai@^4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== @@ -2089,10 +2085,10 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cloudinary@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.0.3.tgz#10a0b0239120aec26655fe91fef67ce68ae0fcc9" - integrity sha512-2JPxAUuV4iHwiW4ATSOZvii6+BhhKI9+9KscgUkxJPKa6V6wOnZJHlYyovBGrrIbIgEdmGSZgqEsLfD0wWBhBg== +cloudinary@^2.0.3: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.2.0.tgz#9736a7421b5552c43603950fa41d9997c869d0b5" + integrity sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q== dependencies: lodash "^4.17.21" q "^1.5.1" @@ -2167,6 +2163,11 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== +commander@^2.19.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -2192,7 +2193,7 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" -compressible@~2.0.16: +compressible@^2.0.12, compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== @@ -2296,7 +2297,7 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-parser@1.4.6: +cookie-parser@~1.4.6: version "1.4.6" resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== @@ -2334,7 +2335,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@2.8.5, cors@^2.8.5: +cors@^2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -2360,13 +2361,6 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== -cross-env@7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - cross-env@^5.1.3: version "5.2.1" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" @@ -2374,6 +2368,13 @@ cross-env@^5.1.3: dependencies: cross-spawn "^6.0.5" +cross-env@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2445,7 +2446,7 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -datauri@4.1.0: +datauri@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/datauri/-/datauri-4.1.0.tgz#19e6e4fadc38ff8cea724d8ff59dcaad832520e4" integrity sha512-y17kh32+I82G+ED9MNWFkZiP/Cq/vO1hN9+tSZsT9C9qn3NrvcBnh7crSepg0AQPge1hXx2Ca44s1FRdv0gFWA== @@ -2465,7 +2466,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@4.3.5, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: +debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.4: version "4.3.5" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== @@ -2503,13 +2504,6 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== -decompress-response@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" - integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== - dependencies: - mimic-response "^3.1.0" - deep-eql@^4.1.3: version "4.1.4" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" @@ -2596,11 +2590,6 @@ destroy@1.2.0, destroy@^1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -detect-libc@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== - dezalgo@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" @@ -2609,6 +2598,14 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" +dicer@0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" + integrity sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg== + dependencies: + readable-stream "1.1.x" + streamsearch "0.1.2" + diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -2636,6 +2633,11 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" +discontinuous-range@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" + integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2657,7 +2659,7 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -duplexify@^4.0.0, duplexify@^4.1.3: +duplexify@^4.0.0: version "4.1.3" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== @@ -2692,9 +2694,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.796: - version "1.4.803" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.803.tgz#cf55808a5ee12e2a2778bbe8cdc941ef87c2093b" - integrity sha512-61H9mLzGOCLLVsnLiRzCbc63uldP0AniRYPV3hbGVtONA1pI7qSGILdbofR7A8TMbOypDocEAjH/e+9k1QIe3g== + version "1.4.807" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.807.tgz#4d6c5ea1516f0164ac5bfd487ccd4ee9507c8f01" + integrity sha512-kSmJl2ZwhNf/bcIuCH/imtNOKlpkLDn2jqT5FJ+/0CXjhnFaOa9cOe9gHKKy71eM49izwuQjZhKk+lWQ1JxB7A== emoji-regex@^8.0.0: version "8.0.0" @@ -2730,6 +2732,11 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" +ent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== + entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" @@ -2977,13 +2984,12 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-prettier@^5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz#17cfade9e732cef32b5f5be53bd4e07afd8e67e1" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== +eslint-plugin-prettier@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz#651cbb88b1dab98bfd42f017a12fa6b2d993f94b" + integrity sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ== dependencies: prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" eslint-plugin-promise@^6.0.0: version "6.2.0" @@ -2997,6 +3003,11 @@ eslint-plugin-security@^1.7.1: dependencies: safe-regex "^2.1.1" +eslint-plugin-standard@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" + integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== + eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" @@ -3166,11 +3177,6 @@ exegesis@^4.1.0: raw-body "^2.3.3" semver "^7.0.0" -expand-template@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" - integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== - expect@^29.0.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" @@ -3187,24 +3193,24 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -express-boom@3.0.0: +express-boom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/express-boom/-/express-boom-3.0.0.tgz#d8146f1eea1bf6611f622141c6689ca6defa09f0" integrity sha512-/esN6Am8YE1rzRsi+vBpJkdr8O+GX+oBjRE/hEuBu6Y3uyS9y026XptRZduAMYS8KxyLzXM5Qh+RlnqLOR1pVQ== dependencies: boom "^7.3.x" -express@4.18.3: - version "4.18.3" - resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" - integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== +express@^4.16.4: + version "4.19.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" + integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.5.0" + cookie "0.6.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3231,17 +3237,17 @@ express@4.18.3: utils-merge "1.0.1" vary "~1.1.2" -express@^4.16.4: - version "4.19.2" - resolved "https://registry.yarnpkg.com/express/-/express-4.19.2.tgz#e25437827a3aa7f2a827bc8171bbbb664a356465" - integrity sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q== +express@~4.18.3: + version "4.18.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.3.tgz#6870746f3ff904dee1819b82e4b51509afffb0d4" + integrity sha512-6VyCijWQ+9O7WuVMTRBTl+cjNNIzD5cY5mQ1WM8r/LEkI2u8EYpOotESNwzNlyCn3g+dmjKYI6BmNneSr/FSRw== dependencies: accepts "~1.3.8" array-flatten "1.1.1" body-parser "1.20.2" content-disposition "0.5.4" content-type "~1.0.4" - cookie "0.6.0" + cookie "0.5.0" cookie-signature "1.0.6" debug "2.6.9" depd "2.0.0" @@ -3289,14 +3295,6 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" -farmhash@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/farmhash/-/farmhash-3.3.1.tgz#f497dab369d4deb87ae6df2ab062c3bc160e1df4" - integrity sha512-XUizHanzlr/v7suBr/o85HSakOoWh6HKXZjFYl5C2+Gj0f0rkw+XTUZzrd9odDsgI9G5tRUcF4wSbKaX04T0DQ== - dependencies: - node-addon-api "^5.1.0" - prebuild-install "^7.1.2" - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3345,7 +3343,7 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" -fast-xml-parser@^4.3.0: +fast-xml-parser@^4.2.2: version "4.4.0" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501" integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg== @@ -3453,31 +3451,30 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -firebase-admin@12.1.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-12.1.1.tgz#bdc690189e42663e36cfac5ab1e2d502e856ab9b" - integrity sha512-Nuoxk//gaYrspS7TvwBINdGvFhh2QeiaWpRW6+PJ+tWyn2/CugBc7jKa1NaBg0AvhGSOXFOCIsXhzCzHA47Rew== +firebase-admin@^11.11.1: + version "11.11.1" + resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-11.11.1.tgz#6712923de70d218c9f514d73005d976d03339605" + integrity sha512-UyEbq+3u6jWzCYbUntv/HuJiTixwh36G1R9j0v71mSvGAx/YZEWEW7uSGLYxBYE6ckVRQoKMr40PYUEzrm/4dg== dependencies: - "@fastify/busboy" "^2.1.0" - "@firebase/database-compat" "^1.0.2" - "@firebase/database-types" "^1.0.0" - "@types/node" "^20.10.3" - farmhash "^3.3.1" + "@fastify/busboy" "^1.2.1" + "@firebase/database-compat" "^0.3.4" + "@firebase/database-types" "^0.10.4" + "@types/node" ">=12.12.47" jsonwebtoken "^9.0.0" - jwks-rsa "^3.1.0" - long "^5.2.3" + jwks-rsa "^3.0.1" node-forge "^1.3.1" uuid "^9.0.0" optionalDependencies: - "@google-cloud/firestore" "^7.7.0" - "@google-cloud/storage" "^7.7.0" + "@google-cloud/firestore" "^6.8.0" + "@google-cloud/storage" "^6.9.5" -firebase-tools@13.4.0: - version "13.4.0" - resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.4.0.tgz#1e17637a6189c6c9a05dabaf31504ba20a4d4411" - integrity sha512-yoxET4Xifezr+SopwFgkpMIRGmp11aTTE67tFcfJoTOZDveBbY16dfo6so2xiuqBXQ7DNxsZIQ+d3JEm2Jn40A== +firebase-tools@^13.4.0: + version "13.11.2" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.11.2.tgz#9e22b643836676d2c198da31c2814e8b1e871506" + integrity sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA== dependencies: - "@google-cloud/pubsub" "^3.0.1" + "@google-cloud/cloud-sql-connector" "^1.2.3" + "@google-cloud/pubsub" "^4.4.0" abort-controller "^3.0.0" ajv "^6.12.6" archiver "^5.0.0" @@ -3501,11 +3498,11 @@ firebase-tools@13.4.0: form-data "^4.0.0" fs-extra "^10.1.0" fuzzy "^0.1.3" + gaxios "^6.1.1" glob "^7.1.2" - google-auth-library "^7.11.0" + google-auth-library "^9.7.0" inquirer "^8.2.6" inquirer-autocomplete-prompt "^2.0.1" - js-yaml "^3.13.1" jsonwebtoken "^9.0.0" leven "^3.1.0" libsodium-wrappers "^0.7.10" @@ -3519,12 +3516,14 @@ firebase-tools@13.4.0: open "^6.3.0" ora "^5.4.1" p-limit "^3.0.1" + pg "^8.11.3" portfinder "^1.0.32" progress "^2.0.3" proxy-agent "^6.3.0" retry "^0.13.1" rimraf "^3.0.0" semver "^7.5.2" + sql-formatter "^15.3.0" stream-chain "^2.2.4" stream-json "^1.7.3" strip-ansi "^6.0.1" @@ -3539,6 +3538,7 @@ firebase-tools@13.4.0: winston "^3.0.0" winston-transport "^4.4.0" ws "^7.2.3" + yaml "^2.4.1" flat-cache@^3.0.4: version "3.2.0" @@ -3721,17 +3721,6 @@ fuzzy@^0.1.3: resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== -gaxios@^4.0.0: - version "4.3.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" - integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== - dependencies: - abort-controller "^3.0.0" - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.7" - gaxios@^5.0.0, gaxios@^5.0.1: version "5.1.3" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" @@ -3742,7 +3731,7 @@ gaxios@^5.0.0, gaxios@^5.0.1: is-stream "^2.0.0" node-fetch "^2.6.9" -gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: +gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1: version "6.6.0" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4" integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ== @@ -3753,14 +3742,6 @@ gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: node-fetch "^2.6.9" uuid "^9.0.1" -gcp-metadata@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" - integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== - dependencies: - gaxios "^4.0.0" - json-bigint "^1.0.0" - gcp-metadata@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" @@ -3813,6 +3794,11 @@ get-port@^3.1.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== +get-stdin@=8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" + integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== + get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" @@ -3832,11 +3818,6 @@ get-uri@^6.0.1: debug "^4.3.4" fs-extra "^11.2.0" -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3877,14 +3858,15 @@ glob@8.1.0, glob@^8.0.0: once "^1.3.0" glob@^10.2.2, glob@^10.3.10: - version "10.4.1" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.1.tgz#0cfb01ab6a6b438177bfe6a58e2576f6efe909c2" - integrity sha512-2jelhlq3E4ho74ZyVLN03oKdAZVUa6UDZzFLVH1H7dnoax+y9qyaq8zBkfDIggjniU19z0wU18y16jMB2eyVIw== + version "10.4.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.4.2.tgz#bed6b95dade5c1f80b4434daced233aee76160e5" + integrity sha512-GwMlUF6PkPo3Gk21UxkCohOv0PLcIXVtKyLlpEI28R/cO/4eNOdmLk3CMW1wROV/WR/EsZOWAfBbBOqYvs88/w== dependencies: foreground-child "^3.1.0" jackspeak "^3.1.2" minimatch "^9.0.4" minipass "^7.1.2" + package-json-from-dist "^1.0.0" path-scurry "^1.11.1" glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: @@ -3938,22 +3920,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-auth-library@^7.11.0: - version "7.14.1" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" - integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^4.0.0" - gcp-metadata "^4.2.0" - gtoken "^5.0.4" - jws "^4.0.0" - lru-cache "^6.0.0" - -google-auth-library@^8.0.2: +google-auth-library@^8.0.1, google-auth-library@^8.0.2: version "8.9.0" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0" integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg== @@ -3968,7 +3935,7 @@ google-auth-library@^8.0.2: jws "^4.0.0" lru-cache "^6.0.0" -google-auth-library@^9.3.0, google-auth-library@^9.6.3: +google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.7.0: version "9.11.0" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.11.0.tgz#bd6da364bcde4e0cc4ed70a0e0df5112b6a671dd" integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== @@ -3980,7 +3947,7 @@ google-auth-library@^9.3.0, google-auth-library@^9.6.3: gtoken "^7.0.0" jws "^4.0.0" -google-gax@^3.6.1: +google-gax@^3.5.7: version "3.6.1" resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-3.6.1.tgz#02c78fc496f5adf86f2ca9145545f4b6575f6118" integrity sha512-g/lcUjGcB6DSw2HxgEmCDOrI/CByOwqRvsuUvNalHUK2iPPPlmAIpbMbl62u0YufGMr8zgE3JL7th6dCb1Ry+w== @@ -4019,13 +3986,6 @@ google-gax@^4.3.3: retry-request "^7.0.0" uuid "^9.0.1" -google-p12-pem@^3.1.3: - version "3.1.4" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" - integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== - dependencies: - node-forge "^1.3.1" - google-p12-pem@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" @@ -4033,6 +3993,18 @@ google-p12-pem@^4.0.0: dependencies: node-forge "^1.3.1" +googleapis-common@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42" + integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA== + dependencies: + extend "^3.0.2" + gaxios "^6.0.3" + google-auth-library "^9.7.0" + qs "^6.7.0" + url-template "^2.0.8" + uuid "^9.0.0" + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -4055,15 +4027,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -gtoken@^5.0.4: - version "5.3.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" - integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== - dependencies: - gaxios "^4.0.0" - google-p12-pem "^3.1.3" - jws "^4.0.0" - gtoken@^6.1.0: version "6.1.2" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc" @@ -4158,7 +4121,7 @@ heap-js@^2.2.0: resolved "https://registry.yarnpkg.com/heap-js/-/heap-js-2.5.0.tgz#487e268b1733b187ca04eccf52f8387be92b46cb" integrity sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ== -helmet@7.1.0: +helmet@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/helmet/-/helmet-7.1.0.tgz#287279e00f8a3763d5dccbaf1e5ee39b8c3784ca" integrity sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg== @@ -4173,7 +4136,7 @@ hoek@6.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== -html-entities@^2.3.6, html-entities@^2.5.2: +html-entities@^2.3.6: version "2.5.2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== @@ -4198,7 +4161,7 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0: +http-errors@2.0.0, http-errors@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -4299,9 +4262,9 @@ import-fresh@^3.2.1: resolve-from "^4.0.0" import-in-the-middle@^1.6.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.8.0.tgz#c94d88d53701de9a248f9710b41f533e67f598a4" - integrity sha512-/xQjze8szLNnJ5rvHSzn+dcVXqCAU6Plbk4P24U/jwPmg1wy7IIp9OjKIO5tYue8GSPhDpPDiApQjvBUmWwhsQ== + version "1.8.1" + resolved "https://registry.yarnpkg.com/import-in-the-middle/-/import-in-the-middle-1.8.1.tgz#8b51c2cc631b64e53e958d7048d2d9463ce628f8" + integrity sha512-yhRwoHtiLGvmSozNOALgjRPFI6uYsds60EoMqqnXyyv+JOIW/BrrLejuTGBt+bq0T5tLzOHrN0T7xYTm4Qt/ng== dependencies: acorn "^8.8.2" acorn-import-attributes "^1.9.5" @@ -4331,7 +4294,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4823,10 +4786,10 @@ jju@^1.1.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== -joi@17.13.1: - version "17.13.1" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.1.tgz#9c7b53dc3b44dd9ae200255cc3b398874918a6ca" - integrity sha512-vaBlIKCyo4FCUtCm7Eu4QZd/q02bWcxfUO6YSXAZOWF6gzcLBeba8kwotUdYJjDLW8Cz8RywsSOqiNJZW0mNvg== +joi@^17.12.2: + version "17.13.3" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" + integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" @@ -4844,9 +4807,9 @@ join-path@^1.1.1: valid-url "^1" jose@^4.14.6: - version "4.15.5" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.5.tgz#6475d0f467ecd3c630a1b5dadd2735a7288df706" - integrity sha512-jc7BFxgKPKi94uOvEmzlSWFFe2+vASyXaKUpdQKatWAESU2MWjDfFf0fdfc83CDKcA5QecabZeNLyfhe3yKNkg== + version "4.15.7" + resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.7.tgz#96ad68d786632bd03c9068aa281810dbbe1b60d8" + integrity sha512-L7ioP+JAuZe8v+T5+zVI9Tx8LtU8BL7NxkyDFVMv+Qr3JW0jSoYDedLtodaXwfqMpeCyx4WXFNyu9tJt4WvC1A== js-tokens@^4.0.0: version "4.0.0" @@ -4880,7 +4843,7 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsdoc@4.0.3, jsdoc@^4.0.0: +jsdoc@^4.0.0, jsdoc@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.3.tgz#bfee86c6a82f6823e12b5e8be698fd99ae46c061" integrity sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw== @@ -5038,7 +5001,7 @@ jwa@^2.0.0: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jwks-rsa@^3.1.0: +jwks-rsa@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-3.1.0.tgz#50406f23e38c9b2682cd437f824d7d61aa983171" integrity sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg== @@ -5289,7 +5252,7 @@ logform@^2.3.2, logform@^2.4.0: safe-stable-stringify "^2.3.1" triple-beam "^1.3.0" -long@^5.0.0, long@^5.2.3: +long@^5.0.0: version "5.2.3" resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== @@ -5450,7 +5413,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -5482,11 +5445,6 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-response@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" - integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== - minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5527,7 +5485,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -5613,10 +5571,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@10.3.0: - version "10.3.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" - integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== +mocha@^10.3.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" + integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -5644,7 +5602,12 @@ module-details-from-path@^1.0.3: resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== -morgan@1.10.0, morgan@^1.10.0, morgan@^1.8.2: +moo@^0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" + integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== + +morgan@^1.10.0, morgan@^1.8.2, morgan@~1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== @@ -5670,16 +5633,17 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@1.4.5-lts.1: - version "1.4.5-lts.1" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" - integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== +multer@^1.4.2: + version "1.4.4" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" + integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== dependencies: append-field "^1.0.0" - busboy "^1.0.0" + busboy "^0.2.11" concat-stream "^1.5.2" mkdirp "^0.5.4" object-assign "^4.1.1" + on-finished "^2.3.0" type-is "^1.6.4" xtend "^4.0.0" @@ -5693,16 +5657,21 @@ nan@^2.17.0, nan@^2.18.0, nan@^2.20.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== -napi-build-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" - integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +nearley@^2.20.1: + version "2.20.1" + resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" + integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== + dependencies: + commander "^2.19.0" + moo "^0.5.0" + railroad-diagrams "^1.0.0" + randexp "0.4.6" + negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -5713,7 +5682,7 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -newrelic@11.19.0: +newrelic@^11.12.0: version "11.19.0" resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-11.19.0.tgz#9fd99fc8cc998335acb4f8c6992bdd01773bd528" integrity sha512-u1dQYf2wERMcU5il6goqD8Af3o83eGSWJkbKtLZQOYkpTP3EhcxVEM9gCIWnfkK5sw4KBnJOG/UxmtRR00JX5g== @@ -5742,10 +5711,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/nise/-/nise-6.0.0.tgz#ae56fccb5d912037363c3b3f29ebbfa28bde8b48" - integrity sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg== +nise@^5.1.9: + version "5.1.9" + resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" + integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers" "^11.2.2" @@ -5753,7 +5722,7 @@ nise@^6.0.0: just-extend "^6.2.0" path-to-regexp "^6.2.1" -nock@13.2.9: +nock@~13.2.9: version "13.2.9" resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.9.tgz#4faf6c28175d36044da4cfa68e33e5a15086ad4c" integrity sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA== @@ -5770,11 +5739,6 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" -node-addon-api@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" - integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== - node-emoji@^1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -5827,7 +5791,7 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -nodemon@3.1.3: +nodemon@^3.1.0: version "3.1.3" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.3.tgz#dcce9ee0aa7d19cd4dcd576ae9a0456d9078b286" integrity sha512-m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w== @@ -5862,7 +5826,7 @@ npm-run-path@^3.1.0: dependencies: path-key "^3.0.0" -nyc@15.1.0: +nyc@^15.1.0: version "15.1.0" resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== @@ -5958,7 +5922,7 @@ object.values@^1.1.7: define-properties "^1.2.1" es-object-atoms "^1.0.0" -on-finished@2.4.1, on-finished@^2.2.0: +on-finished@2.4.1, on-finished@^2.2.0, on-finished@^2.3.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -6108,6 +6072,11 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" +p-throttle@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/p-throttle/-/p-throttle-5.1.0.tgz#7daf27412a86f34154ff1c462ba33e91a8d7afe6" + integrity sha512-+N+s2g01w1Zch4D0K3OpnPDqLOKmLcQ4BvIFq3JC0K29R28vUOjWpO+OJZBNt8X9i3pFCksZJZ0YXkUGjaFE6g== + p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6145,6 +6114,11 @@ package-hash@^4.0.0: lodash.flattendeep "^4.4.0" release-zalgo "^1.0.0" +package-json-from-dist@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz#e501cd3094b278495eb4258d4c9f6d5ac3019f00" + integrity sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw== + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" @@ -6162,7 +6136,7 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -passport-github2@0.1.12: +passport-github2@^0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/passport-github2/-/passport-github2-0.1.12.tgz#a72ebff4fa52a35bc2c71122dcf470d1116f772c" integrity sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw== @@ -6185,7 +6159,7 @@ passport-strategy@1.x.x: resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== -passport@0.7.0: +passport@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/passport/-/passport-0.7.0.tgz#3688415a59a48cf8068417a8a8092d4492ca3a05" integrity sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ== @@ -6259,6 +6233,62 @@ pause@0.0.1: resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== +pg-cloudflare@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" + integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== + +pg-connection-string@^2.6.4: + version "2.6.4" + resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" + integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== + +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-pool@^3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" + integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== + +pg-protocol@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" + integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== + +pg-types@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + +pg@^8.11.3: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" + integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== + dependencies: + pg-connection-string "^2.6.4" + pg-pool "^3.6.2" + pg-protocol "^1.6.1" + pg-types "^2.1.0" + pgpass "1.x" + optionalDependencies: + pg-cloudflare "^1.1.1" + +pgpass@1.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" + integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== + dependencies: + split2 "^4.1.0" + picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" @@ -6290,6 +6320,28 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + pre-commit@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" @@ -6299,24 +6351,6 @@ pre-commit@^1.2.2: spawn-sync "^1.0.15" which "1.2.x" -prebuild-install@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" - integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== - dependencies: - detect-libc "^2.0.0" - expand-template "^2.0.3" - github-from-package "0.0.0" - minimist "^1.2.3" - mkdirp-classic "^0.5.3" - napi-build-utils "^1.0.1" - node-abi "^3.3.0" - pump "^3.0.0" - rc "^1.2.7" - simple-get "^4.0.0" - tar-fs "^2.0.0" - tunnel-agent "^0.6.0" - prebuildify@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/prebuildify/-/prebuildify-6.0.1.tgz#655746f91fc95b68610615898678536dd303cd03" @@ -6346,10 +6380,10 @@ prettier-linter-helpers@^1.0.0: dependencies: fast-diff "^1.1.2" -prettier@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.3.2.tgz#03ff86dc7c835f2d2559ee76876a3914cec4a90a" - integrity sha512-rAVeHYMcv8ATV5d508CFdn+8/pHPpXeIid1DdrPwXnaAdH7cqjVbpJaT5eq4yRAFU/lsbwYwSF/n5iNrdJHPQA== +prettier@^2.5.1: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== pretty-bytes@^5.6.0: version "5.6.0" @@ -6488,7 +6522,7 @@ protobufjs@7.3.0: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.0.0, protobufjs@^7.2.5, protobufjs@^7.2.6: +protobufjs@^7.0.0, protobufjs@^7.2.5: version "7.3.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== @@ -6585,7 +6619,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0: +qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0, qs@^6.7.0: version "6.12.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== @@ -6604,11 +6638,24 @@ queue@6.0.2: dependencies: inherits "~2.0.3" +railroad-diagrams@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" + integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== + rambda@^7.4.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== +randexp@0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" + integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== + dependencies: + discontinuous-range "1.0.0" + ret "~0.1.10" + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -6621,7 +6668,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@5.0.3: +rate-limiter-flexible@^5.0.0: version "5.0.3" resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-5.0.3.tgz#bfbfd7585e09073ebe22d177126116862b1024ae" integrity sha512-lWx2y8NBVlTOLPyqs+6y7dxfEpT6YFqKy3MzWbCy95sTTOhOuxufP2QvRyOHpfXpB9OUJPbVLybw3z3AVAS5fA== @@ -6636,7 +6683,7 @@ raw-body@2.5.2, raw-body@^2.3.3: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7, rc@^1.2.8: +rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -6660,6 +6707,16 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== +readable-stream@1.1.x: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -6798,6 +6855,11 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + retry-request@^5.0.0: version "5.0.2" resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.2.tgz#143d85f90c755af407fcc46b7166a4ba520e44da" @@ -7066,20 +7128,6 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -simple-concat@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" - integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== - -simple-get@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" - integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== - dependencies: - decompress-response "^6.0.0" - once "^1.3.1" - simple-concat "^1.0.0" - simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -7094,16 +7142,16 @@ simple-update-notifier@^2.0.0: dependencies: semver "^7.5.3" -sinon@18.0.0: - version "18.0.0" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.0.tgz#69ca293dbc3e82590a8b0d46c97f63ebc1e5fc01" - integrity sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA== +sinon@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-17.0.2.tgz#470894bcc2d24b01bad539722ea46da949892405" + integrity sha512-uihLiaB9FhzesElPDFZA7hDcNABzsVHwr3YfmM9sBllVwab3l0ltGlRV1XhpNfIacNDLGD1QRZNLs5nU5+hTuA== dependencies: "@sinonjs/commons" "^3.0.1" "@sinonjs/fake-timers" "^11.2.2" "@sinonjs/samsam" "^8.0.0" diff "^5.2.0" - nise "^6.0.0" + nise "^5.1.9" supports-color "^7" slash@^3.0.0: @@ -7173,6 +7221,11 @@ spawn-wrap@^2.0.0: signal-exit "^3.0.2" which "^2.0.1" +split2@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" + integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== + sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -7183,6 +7236,15 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +sql-formatter@^15.3.0: + version "15.3.1" + resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.3.1.tgz#e988861d172827b856470a9baefa0135737227df" + integrity sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA== + dependencies: + argparse "^2.0.1" + get-stdin "=8.0.0" + nearley "^2.20.1" + ssri@^10.0.0: version "10.0.6" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" @@ -7245,10 +7307,10 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== +streamsearch@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" + integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" @@ -7308,6 +7370,11 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7451,15 +7518,7 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.yarnpkg.com/synckit/-/synckit-0.8.8.tgz#fe7fe446518e3d3d49f5e429f443cf08b6edfcd7" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== - dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" - -tar-fs@^2.0.0, tar-fs@^2.1.0: +tar-fs@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -7500,6 +7559,17 @@ tcp-port-used@^1.0.2: debug "4.3.1" is2 "^2.0.6" +teeny-request@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-8.0.3.tgz#5cb9c471ef5e59f2fca8280dc3c5909595e6ca24" + integrity sha512-jJZpA5He2y52yUhA7pyAGZlgQpcB+xLjcN0eUFxr9c8hP/H7uOXbBNVo/O0C/xVfJLJs680jvkFgVJEEvk9+ww== + dependencies: + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + node-fetch "^2.6.1" + stream-events "^1.0.5" + uuid "^9.0.0" + teeny-request@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" @@ -7520,6 +7590,11 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" +text-decoding@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-decoding/-/text-decoding-1.0.0.tgz#38a5692d23b5c2b12942d6e245599cb58b1bc52f" + integrity sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA== + text-hex@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" @@ -7613,7 +7688,7 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -ts-node-dev@2.0.0: +ts-node-dev@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-2.0.0.tgz#bdd53e17ab3b5d822ef519928dc6b4a7e0f13065" integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== @@ -7629,7 +7704,7 @@ ts-node-dev@2.0.0: ts-node "^10.4.0" tsconfig "^7.0.0" -ts-node@10.9.2, ts-node@^10.4.0: +ts-node@^10.4.0, ts-node@^10.9.2: version "10.9.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -7668,18 +7743,11 @@ tsconfig@^7.0.0: strip-bom "^3.0.0" strip-json-comments "^2.0.0" -tslib@^2.0.1, tslib@^2.1.0, tslib@^2.6.2: +tslib@^2.0.1, tslib@^2.1.0: version "2.6.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== - dependencies: - safe-buffer "^5.0.1" - 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" @@ -7778,7 +7846,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@5.3.3: +typescript@~5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== @@ -7923,6 +7991,11 @@ url-join@0.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" integrity sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw== +url-template@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" + integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== + util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -8068,7 +8141,7 @@ winston-transport@^4.4.0, winston-transport@^4.5.0, winston-transport@^4.7.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@3.13.0, winston@^3.0.0: +winston@^3.0.0, winston@^3.12.0: version "3.13.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== @@ -8187,7 +8260,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1: +yaml@^2.2.1, yaml@^2.4.1: version "2.4.5" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== From 3f377a4418f3450c1ef65c9acce2dfe28ff3c95c Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 16:16:43 +0530 Subject: [PATCH 15/17] feat:upgrade the packages to the latest --- package.json | 30 +-- yarn.lock | 669 +++++++++++++++++++-------------------------------- 2 files changed, 266 insertions(+), 433 deletions(-) diff --git a/package.json b/package.json index 436f2d136..b03cdf314 100644 --- a/package.json +++ b/package.json @@ -16,28 +16,28 @@ "tdd:watch": "sh scripts/tests/tdd.sh" }, "dependencies": { - "axios": "^1.6.7", - "cloudinary": "^2.0.3", - "config": "3.3.7", - "cookie-parser": "~1.4.6", + "axios": "^1.7.2", + "cloudinary": "^2.2.0", + "config": "^3.3.11", + "cookie-parser": "^1.4.6", "cors": "^2.8.5", "datauri": "^4.1.0", - "debug": "~4.3.4", + "debug": "^4.3.5", "express": "~4.18.3", "express-boom": "^3.0.0", - "firebase-admin": "^11.11.1", + "firebase-admin": "^12.1.1", "helmet": "^7.1.0", - "http-errors": "~2.0.0", - "joi": "^17.12.2", - "jsdoc": "^4.0.2", + "http-errors": "^2.0.0", + "joi": "^17.13.3", + "jsdoc": "^4.0.3", "jsonwebtoken": "^8.5.1", - "morgan": "~1.10.0", - "multer": "^1.4.2", - "newrelic": "^11.12.0", + "morgan": "^1.10.0", + "multer": "^1.4.5-lts.1", + "newrelic": "^11.19.0", "passport": "^0.7.0", "passport-github2": "^0.1.12", - "rate-limiter-flexible": "^5.0.0", - "winston": "^3.12.0" + "rate-limiter-flexible": "^5.0.3", + "winston": "3.12.0" }, "devDependencies": { "@types/chai": "^4.3.12", @@ -83,4 +83,4 @@ "node": "20.11.1", "yarn": "1.22.21" } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index 0a6987c1b..3d2acb559 100644 --- a/yarn.lock +++ b/yarn.lock @@ -269,74 +269,78 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f" integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== -"@fastify/busboy@^1.2.1": - version "1.2.1" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-1.2.1.tgz#9c6db24a55f8b803b5222753b24fe3aea2ba9ca3" - integrity sha512-7PQA7EH43S0CxcOa9OeAnaeA0oQ+e/DHNPZwSQM9CQHW76jle5+OvLdibRp/Aafs9KXbLhxyjOTkRjWUbQEd3Q== - dependencies: - text-decoding "^1.0.0" +"@fastify/busboy@^2.1.0": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" + integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== -"@firebase/app-types@0.9.0": - version "0.9.0" - resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.0.tgz#35b5c568341e9e263b29b3d2ba0e9cfc9ec7f01e" - integrity sha512-AeweANOIo0Mb8GiYm3xhTEBVCmPwTYAu9Hcd2qSkLuga/6+j9b1Jskl5bpiSQWy9eJ/j5pavxj6eYogmnuzm+Q== +"@firebase/app-check-interop-types@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@firebase/app-check-interop-types/-/app-check-interop-types-0.3.2.tgz#455b6562c7a3de3ef75ea51f72dfec5829ad6997" + integrity sha512-LMs47Vinv2HBMZi49C09dJxp0QT5LwDzFaVGf/+ITHe3BlIhUiLNttkATSXplc89A2lAaeTqjgqVkiRfUGyQiQ== -"@firebase/auth-interop-types@0.2.1": - version "0.2.1" - resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.1.tgz#78884f24fa539e34a06c03612c75f222fcc33742" - integrity sha512-VOaGzKp65MY6P5FI84TfYKBXEPi6LmOCSMMzys6o2BN2LOsqy7pCuZCup7NYnfbk5OkkQKzvIfHOzTm0UDpkyg== +"@firebase/app-types@0.9.2": + version "0.9.2" + resolved "https://registry.yarnpkg.com/@firebase/app-types/-/app-types-0.9.2.tgz#8cbcceba784753a7c0066a4809bc22f93adee080" + integrity sha512-oMEZ1TDlBz479lmABwWsWjzHwheQKiAgnuKxE0pz0IXCVx7/rtlkx1fQ6GfgK24WCrxDKMplZrT50Kh04iMbXQ== -"@firebase/component@0.6.4": - version "0.6.4" - resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.4.tgz#8981a6818bd730a7554aa5e0516ffc9b1ae3f33d" - integrity sha512-rLMyrXuO9jcAUCaQXCMjCMUsWrba5fzHlNK24xz5j2W6A/SRmK8mZJ/hn7V0fViLbxC0lPMtrK1eYzk6Fg03jA== +"@firebase/auth-interop-types@0.2.3": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@firebase/auth-interop-types/-/auth-interop-types-0.2.3.tgz#927f1f2139a680b55fef0bddbff2c982b08587e8" + integrity sha512-Fc9wuJGgxoxQeavybiuwgyi+0rssr76b+nHpj+eGhXFYAdudMWyfBHvFL/I5fEHniUM/UQdFzi9VXJK2iZF7FQ== + +"@firebase/component@0.6.7": + version "0.6.7" + resolved "https://registry.yarnpkg.com/@firebase/component/-/component-0.6.7.tgz#6fbffddb26833e1ed58bf296ad587cb330aee716" + integrity sha512-baH1AA5zxfaz4O8w0vDwETByrKTQqB5CDjRls79Sa4eAGAoERw4Tnung7XbMl3jbJ4B/dmmtsMrdki0KikwDYA== dependencies: - "@firebase/util" "1.9.3" + "@firebase/util" "1.9.6" tslib "^2.1.0" -"@firebase/database-compat@^0.3.4": - version "0.3.4" - resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-0.3.4.tgz#4e57932f7a5ba761cd5ac946ab6b6ab3f660522c" - integrity sha512-kuAW+l+sLMUKBThnvxvUZ+Q1ZrF/vFJ58iUY9kAcbX48U03nVzIF6Tmkf0p3WVQwMqiXguSgtOPIB6ZCeF+5Gg== - dependencies: - "@firebase/component" "0.6.4" - "@firebase/database" "0.14.4" - "@firebase/database-types" "0.10.4" - "@firebase/logger" "0.4.0" - "@firebase/util" "1.9.3" +"@firebase/database-compat@^1.0.2": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@firebase/database-compat/-/database-compat-1.0.5.tgz#18c2314f169942ac315e46b68f86cbe64bafe063" + integrity sha512-NDSMaDjQ+TZEMDMmzJwlTL05kh1+0Y84C+kVMaOmNOzRGRM7VHi29I6YUhCetXH+/b1Wh4ZZRyp1CuWkd8s6hg== + dependencies: + "@firebase/component" "0.6.7" + "@firebase/database" "1.0.5" + "@firebase/database-types" "1.0.3" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.6" tslib "^2.1.0" -"@firebase/database-types@0.10.4", "@firebase/database-types@^0.10.4": - version "0.10.4" - resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-0.10.4.tgz#47ba81113512dab637abace61cfb65f63d645ca7" - integrity sha512-dPySn0vJ/89ZeBac70T+2tWWPiJXWbmRygYv0smT5TfE3hDrQ09eKMF3Y+vMlTdrMWq7mUdYW5REWPSGH4kAZQ== +"@firebase/database-types@1.0.3", "@firebase/database-types@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@firebase/database-types/-/database-types-1.0.3.tgz#1b764212dce88eca74b16da9d220cfea6814858e" + integrity sha512-39V/Riv2R3O/aUjYKh0xypj7NTNXNAK1bcgY5Kx+hdQPRS/aPTS8/5c0CGFYKgVuFbYlnlnhrCTYsh2uNhGwzA== dependencies: - "@firebase/app-types" "0.9.0" - "@firebase/util" "1.9.3" + "@firebase/app-types" "0.9.2" + "@firebase/util" "1.9.6" -"@firebase/database@0.14.4": - version "0.14.4" - resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.14.4.tgz#9e7435a16a540ddfdeb5d99d45618e6ede179aa6" - integrity sha512-+Ea/IKGwh42jwdjCyzTmeZeLM3oy1h0mFPsTy6OqCWzcu/KFqRAr5Tt1HRCOBlNOdbh84JPZC47WLU18n2VbxQ== - dependencies: - "@firebase/auth-interop-types" "0.2.1" - "@firebase/component" "0.6.4" - "@firebase/logger" "0.4.0" - "@firebase/util" "1.9.3" +"@firebase/database@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@firebase/database/-/database-1.0.5.tgz#09d7162b7dbc4533f17498ac6a76d5e757ab45be" + integrity sha512-cAfwBqMQuW6HbhwI3Cb/gDqZg7aR0OmaJ85WUxlnoYW2Tm4eR0hFl5FEijI3/gYPUiUcUPQvTkGV222VkT7KPw== + dependencies: + "@firebase/app-check-interop-types" "0.3.2" + "@firebase/auth-interop-types" "0.2.3" + "@firebase/component" "0.6.7" + "@firebase/logger" "0.4.2" + "@firebase/util" "1.9.6" faye-websocket "0.11.4" tslib "^2.1.0" -"@firebase/logger@0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.0.tgz#15ecc03c452525f9d47318ad9491b81d1810f113" - integrity sha512-eRKSeykumZ5+cJPdxxJRgAC3G5NknY2GwEbKfymdnXtnT0Ucm4pspfR6GT4MUQEDuJwRVbVcSx85kgJulMoFFA== +"@firebase/logger@0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@firebase/logger/-/logger-0.4.2.tgz#74dfcfeedee810deb8a7080d5b7eba56aa16ffa2" + integrity sha512-Q1VuA5M1Gjqrwom6I6NUU4lQXdo9IAQieXlujeHZWvRt1b7qQ0KwBaNAjgxG27jgF9/mUwsNmO8ptBCGVYhB0A== dependencies: tslib "^2.1.0" -"@firebase/util@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.3.tgz#45458dd5cd02d90e55c656e84adf6f3decf4b7ed" - integrity sha512-DY02CRhOZwpzO36fHpuVysz6JZrscPiBXD0fXp6qSrL9oNOx5KWICKdR95C0lSITzxp0TZosVyHqzatE8JbcjA== +"@firebase/util@1.9.6": + version "1.9.6" + resolved "https://registry.yarnpkg.com/@firebase/util/-/util-1.9.6.tgz#56dc34e20fcbc0dd07b11b800f95f5d0417cbfb4" + integrity sha512-IBr1MZbp4d5MjBCXL3TW1dK/PDXX4yOGbiwRNh1oAbE/+ci5Uuvy9KIrsFYY80as1I0iOaD5oOMA9Q8j4TJWcw== dependencies: tslib "^2.1.0" @@ -350,23 +354,15 @@ google-auth-library "^9.2.0" p-throttle "^5.1.0" -"@google-cloud/firestore@^6.8.0": - version "6.8.0" - resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-6.8.0.tgz#d8c852844c381afaf62592796606c10e178400b5" - integrity sha512-JRpk06SmZXLGz0pNx1x7yU3YhkUXheKgH5hbDZ4kMsdhtfV5qPLJLRI4wv69K0cZorIk+zTMOwptue7hizo0eA== +"@google-cloud/firestore@^7.7.0": + version "7.8.0" + resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-7.8.0.tgz#029bed6c47de84c667a27256acbaca6f6ee50e15" + integrity sha512-m21BWVZLz7H7NF8HZ5hCGUSCEJKNwYB5yzQqDTuE9YUzNDRMDei3BwVDht5k4xF636sGlnobyBL+dcbthSGONg== dependencies: fast-deep-equal "^3.1.1" functional-red-black-tree "^1.0.1" - google-gax "^3.5.7" - protobufjs "^7.2.5" - -"@google-cloud/paginator@^3.0.7": - version "3.0.7" - resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-3.0.7.tgz#fb6f8e24ec841f99defaebf62c75c2e744dd419b" - integrity sha512-jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ== - dependencies: - arrify "^2.0.0" - extend "^3.0.2" + google-gax "^4.3.3" + protobufjs "^7.2.6" "@google-cloud/paginator@^5.0.0": version "5.0.2" @@ -381,21 +377,11 @@ resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-4.0.0.tgz#e179893a3ad628b17a6fabdfcc9d468753aac11a" integrity sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA== -"@google-cloud/projectify@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-3.0.0.tgz#302b25f55f674854dce65c2532d98919b118a408" - integrity sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA== - "@google-cloud/projectify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== -"@google-cloud/promisify@^3.0.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-3.0.1.tgz#8d724fb280f47d1ff99953aee0c1669b25238c2e" - integrity sha512-z1CjRjtQyBOYL+5Qr9DdYIfrdLBe746jRTYfaYU6MeXkqp7UfYs/jX16lFFVzZ7PGEJvqZNqYUEtb1mvDww4pA== - "@google-cloud/promisify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" @@ -421,28 +407,25 @@ lodash.snakecase "^4.1.1" p-defer "^3.0.0" -"@google-cloud/storage@^6.9.5": - version "6.12.0" - resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-6.12.0.tgz#a5d3093cc075252dca5bd19a3cfda406ad3a9de1" - integrity sha512-78nNAY7iiZ4O/BouWMWTD/oSF2YtYgYB3GZirn0To6eBOugjXVoK+GXgUXOl+HlqbAOyHxAVXOlsj3snfbQ1dw== +"@google-cloud/storage@^7.7.0": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-7.11.2.tgz#a8942d9a4a75634186d262b82c5b41e90649f11c" + integrity sha512-jJOrKyOdujfrSF8EJODW9yY6hqO4jSTk6eVITEj2gsD43BSXuDlnMlLOaBUQhXL29VGnSkxDgYl5tlFhA6LKSA== dependencies: - "@google-cloud/paginator" "^3.0.7" - "@google-cloud/projectify" "^3.0.0" - "@google-cloud/promisify" "^3.0.0" + "@google-cloud/paginator" "^5.0.0" + "@google-cloud/projectify" "^4.0.0" + "@google-cloud/promisify" "^4.0.0" abort-controller "^3.0.0" async-retry "^1.3.3" - compressible "^2.0.12" - duplexify "^4.0.0" - ent "^2.2.0" - extend "^3.0.2" - fast-xml-parser "^4.2.2" - gaxios "^5.0.0" - google-auth-library "^8.0.1" + duplexify "^4.1.3" + fast-xml-parser "^4.3.0" + gaxios "^6.0.2" + google-auth-library "^9.6.3" + html-entities "^2.5.2" mime "^3.0.0" - mime-types "^2.0.8" p-limit "^3.0.1" - retry-request "^5.0.0" - teeny-request "^8.0.0" + retry-request "^7.0.0" + teeny-request "^9.0.0" uuid "^8.0.0" "@googleapis/sqladmin@^18.0.0": @@ -460,15 +443,7 @@ "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/grpc-js@~1.8.0": - version "1.8.22" - resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.22.tgz#847930c9af46e14df05b57fc12325db140ceff1d" - integrity sha512-oAjDdN7fzbUi+4hZjKG96MR6KTEubAeMpQEb+77qy+3r0Ua5xTFuie6JOLr4ZZgl5g+W5/uRTS2M1V8mVAFPuA== - dependencies: - "@grpc/proto-loader" "^0.7.0" - "@types/node" ">=12.12.47" - -"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": +"@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": version "0.7.13" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== @@ -956,14 +931,6 @@ dependencies: "@types/node" "*" -"@types/glob@*": - version "8.1.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" - integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== - dependencies: - "@types/minimatch" "^5.1.2" - "@types/node" "*" - "@types/http-errors@*": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" @@ -1041,17 +1008,12 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/minimatch@^5.1.2": - version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" - integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== - "@types/mocha@^10.0.6": version "10.0.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== -"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.11.24": +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^20.10.3", "@types/node@^20.11.24": version "20.14.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.6.tgz#f3c19ffc98c2220e18de259bb172dd4d892a6075" integrity sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw== @@ -1088,14 +1050,6 @@ "@types/tough-cookie" "*" form-data "^2.5.0" -"@types/rimraf@^3.0.2": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" - integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== - dependencies: - "@types/glob" "*" - "@types/node" "*" - "@types/send@*": version "0.17.4" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" @@ -1611,7 +1565,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.6.7, axios@^1.6.8: +axios@^1.6.8, axios@^1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== @@ -1775,13 +1729,12 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -busboy@^0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.2.14.tgz#6c2a622efcf47c57bbbe1e2a9c37ad36c7925453" - integrity sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg== +busboy@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: - dicer "0.2.5" - readable-stream "1.1.x" + streamsearch "^1.1.0" bytes@3.0.0: version "3.0.0" @@ -2085,7 +2038,7 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cloudinary@^2.0.3: +cloudinary@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.2.0.tgz#9736a7421b5552c43603950fa41d9997c869d0b5" integrity sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q== @@ -2193,7 +2146,7 @@ compress-commons@^4.1.2: normalize-path "^3.0.0" readable-stream "^3.6.0" -compressible@^2.0.12, compressible@~2.0.16: +compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== @@ -2246,12 +2199,12 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -config@3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/config/-/config-3.3.7.tgz#4310410dc2bf4e0effdca21a12a4035860a24ee4" - integrity sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA== +config@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/config/-/config-3.3.11.tgz#009e802631363e456d4cf57767a65c1549069ba2" + integrity sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA== dependencies: - json5 "^2.1.1" + json5 "^2.2.3" configstore@^5.0.1: version "5.0.1" @@ -2297,7 +2250,7 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-parser@~1.4.6: +cookie-parser@^1.4.6: version "1.4.6" resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== @@ -2466,7 +2419,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.4: +debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: version "4.3.5" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== @@ -2504,6 +2457,13 @@ decamelize@^4.0.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-eql@^4.1.3: version "4.1.4" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.4.tgz#d0d3912865911bb8fac5afb4e3acfa6a28dc72b7" @@ -2529,7 +2489,7 @@ deep-freeze@0.0.1: resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== -deep-is@^0.1.3, deep-is@~0.1.3: +deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -2590,6 +2550,11 @@ destroy@1.2.0, destroy@^1.0.4: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700" + integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + dezalgo@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" @@ -2598,14 +2563,6 @@ dezalgo@^1.0.4: asap "^2.0.0" wrappy "1" -dicer@0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - integrity sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg== - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -2659,7 +2616,7 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -duplexify@^4.0.0: +duplexify@^4.0.0, duplexify@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.3.tgz#a07e1c0d0a2c001158563d32592ba58bddb0236f" integrity sha512-M3BmBhwJRZsSx38lZyhE53Csddgzl5R7xGJNk7CVddZD6CcmwMCH8J+7AprIrQKH7TonKxaCjcv27Qmf+sQ+oA== @@ -2732,11 +2689,6 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -ent@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" - integrity sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA== - entities@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" @@ -2883,18 +2835,6 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escodegen@^1.13.0: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - escodegen@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -3089,7 +3029,7 @@ eslint@^8.57.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: +espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -3117,11 +3057,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -3177,6 +3112,11 @@ exegesis@^4.1.0: raw-body "^2.3.3" semver "^7.0.0" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + expect@^29.0.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" @@ -3295,6 +3235,14 @@ external-editor@^3.0.3: iconv-lite "^0.4.24" tmp "^0.0.33" +farmhash@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/farmhash/-/farmhash-3.3.1.tgz#f497dab369d4deb87ae6df2ab062c3bc160e1df4" + integrity sha512-XUizHanzlr/v7suBr/o85HSakOoWh6HKXZjFYl5C2+Gj0f0rkw+XTUZzrd9odDsgI9G5tRUcF4wSbKaX04T0DQ== + dependencies: + node-addon-api "^5.1.0" + prebuild-install "^7.1.2" + fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" @@ -3321,7 +3269,7 @@ 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 sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -3331,11 +3279,6 @@ fast-safe-stringify@^2.1.1: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== -fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: - version "1.0.6" - resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" - integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== - fast-url-parser@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" @@ -3343,7 +3286,7 @@ fast-url-parser@^1.1.3: dependencies: punycode "^1.3.2" -fast-xml-parser@^4.2.2: +fast-xml-parser@^4.3.0: version "4.4.0" resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.4.0.tgz#341cc98de71e9ba9e651a67f41f1752d1441a501" integrity sha512-kLY3jFlwIYwBNDojclKsNAC12sfD6NwW74QB2CoNGPvtVxjliYehVunB3HYyNi+n4Tt1dAcgwYvmKF/Z18flqg== @@ -3451,22 +3394,24 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -firebase-admin@^11.11.1: - version "11.11.1" - resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-11.11.1.tgz#6712923de70d218c9f514d73005d976d03339605" - integrity sha512-UyEbq+3u6jWzCYbUntv/HuJiTixwh36G1R9j0v71mSvGAx/YZEWEW7uSGLYxBYE6ckVRQoKMr40PYUEzrm/4dg== +firebase-admin@^12.1.1: + version "12.1.1" + resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-12.1.1.tgz#bdc690189e42663e36cfac5ab1e2d502e856ab9b" + integrity sha512-Nuoxk//gaYrspS7TvwBINdGvFhh2QeiaWpRW6+PJ+tWyn2/CugBc7jKa1NaBg0AvhGSOXFOCIsXhzCzHA47Rew== dependencies: - "@fastify/busboy" "^1.2.1" - "@firebase/database-compat" "^0.3.4" - "@firebase/database-types" "^0.10.4" - "@types/node" ">=12.12.47" + "@fastify/busboy" "^2.1.0" + "@firebase/database-compat" "^1.0.2" + "@firebase/database-types" "^1.0.0" + "@types/node" "^20.10.3" + farmhash "^3.3.1" jsonwebtoken "^9.0.0" - jwks-rsa "^3.0.1" + jwks-rsa "^3.1.0" + long "^5.2.3" node-forge "^1.3.1" uuid "^9.0.0" optionalDependencies: - "@google-cloud/firestore" "^6.8.0" - "@google-cloud/storage" "^6.9.5" + "@google-cloud/firestore" "^7.7.0" + "@google-cloud/storage" "^7.7.0" firebase-tools@^13.4.0: version "13.11.2" @@ -3721,17 +3666,7 @@ fuzzy@^0.1.3: resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== -gaxios@^5.0.0, gaxios@^5.0.1: - version "5.1.3" - resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" - integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA== - dependencies: - extend "^3.0.2" - https-proxy-agent "^5.0.0" - is-stream "^2.0.0" - node-fetch "^2.6.9" - -gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1: +gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.0.3, gaxios@^6.1.1: version "6.6.0" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4" integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ== @@ -3742,14 +3677,6 @@ gaxios@^6.0.0, gaxios@^6.0.3, gaxios@^6.1.1: node-fetch "^2.6.9" uuid "^9.0.1" -gcp-metadata@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" - integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w== - dependencies: - gaxios "^5.0.0" - json-bigint "^1.0.0" - gcp-metadata@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" @@ -3818,6 +3745,11 @@ get-uri@^6.0.1: debug "^4.3.4" fs-extra "^11.2.0" +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3846,7 +3778,7 @@ glob-slasher@^1.0.1: lodash.isobject "^2.4.1" toxic "^1.0.0" -glob@8.1.0, glob@^8.0.0: +glob@8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -3920,22 +3852,7 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-auth-library@^8.0.1, google-auth-library@^8.0.2: - version "8.9.0" - resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0" - integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg== - dependencies: - arrify "^2.0.0" - base64-js "^1.3.0" - ecdsa-sig-formatter "^1.0.11" - fast-text-encoding "^1.0.0" - gaxios "^5.0.0" - gcp-metadata "^5.3.0" - gtoken "^6.1.0" - jws "^4.0.0" - lru-cache "^6.0.0" - -google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.7.0: +google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.6.3, google-auth-library@^9.7.0: version "9.11.0" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.11.0.tgz#bd6da364bcde4e0cc4ed70a0e0df5112b6a671dd" integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== @@ -3947,27 +3864,6 @@ google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.7 gtoken "^7.0.0" jws "^4.0.0" -google-gax@^3.5.7: - version "3.6.1" - resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-3.6.1.tgz#02c78fc496f5adf86f2ca9145545f4b6575f6118" - integrity sha512-g/lcUjGcB6DSw2HxgEmCDOrI/CByOwqRvsuUvNalHUK2iPPPlmAIpbMbl62u0YufGMr8zgE3JL7th6dCb1Ry+w== - dependencies: - "@grpc/grpc-js" "~1.8.0" - "@grpc/proto-loader" "^0.7.0" - "@types/long" "^4.0.0" - "@types/rimraf" "^3.0.2" - abort-controller "^3.0.0" - duplexify "^4.0.0" - fast-text-encoding "^1.0.3" - google-auth-library "^8.0.2" - is-stream-ended "^0.1.4" - node-fetch "^2.6.1" - object-hash "^3.0.0" - proto3-json-serializer "^1.0.0" - protobufjs "7.2.4" - protobufjs-cli "1.1.1" - retry-request "^5.0.0" - google-gax@^4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.6.tgz#aed8cb1ffc8072615c7ec0cf557ade7343136413" @@ -3986,13 +3882,6 @@ google-gax@^4.3.3: retry-request "^7.0.0" uuid "^9.0.1" -google-p12-pem@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" - integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ== - dependencies: - node-forge "^1.3.1" - googleapis-common@^7.0.0: version "7.2.0" resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42" @@ -4027,15 +3916,6 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -gtoken@^6.1.0: - version "6.1.2" - resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc" - integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ== - dependencies: - gaxios "^5.0.1" - google-p12-pem "^4.0.0" - jws "^4.0.0" - gtoken@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26" @@ -4136,7 +4016,7 @@ hoek@6.x.x: resolved "https://registry.yarnpkg.com/hoek/-/hoek-6.1.3.tgz#73b7d33952e01fe27a38b0457294b79dd8da242c" integrity sha512-YXXAAhmF9zpQbC7LEcREFtXfGq5K1fmd+4PHkBq8NUqmzW3G+Dq10bI/i0KucLRwss3YYFQ0fSfoxBZYiGUqtQ== -html-entities@^2.3.6: +html-entities@^2.3.6, html-entities@^2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.5.2.tgz#201a3cf95d3a15be7099521620d19dfb4f65359f" integrity sha512-K//PSRMQk4FZ78Kyau+mZurHn3FH0Vwr+H36eE0rPbeYkRRi9YxceYPhuN60UwWorxyKHhqoAJl2OFKa4BVtaA== @@ -4161,7 +4041,7 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0, http-errors@~2.0.0: +http-errors@2.0.0, http-errors@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -4294,7 +4174,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4786,7 +4666,7 @@ jju@^1.1.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== -joi@^17.12.2: +joi@^17.13.3: version "17.13.3" resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== @@ -4843,7 +4723,7 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsdoc@^4.0.0, jsdoc@^4.0.2: +jsdoc@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.3.tgz#bfee86c6a82f6823e12b5e8be698fd99ae46c061" integrity sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw== @@ -4920,7 +4800,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.1.1, json5@^2.2.3: +json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -5001,7 +4881,7 @@ jwa@^2.0.0: ecdsa-sig-formatter "1.0.11" safe-buffer "^5.0.1" -jwks-rsa@^3.0.1: +jwks-rsa@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/jwks-rsa/-/jwks-rsa-3.1.0.tgz#50406f23e38c9b2682cd437f824d7d61aa983171" integrity sha512-v7nqlfezb9YfHHzYII3ef2a2j1XnGeSE/bK3WfumaYCqONAIstJbrEGapz4kadScZzEt7zYCN7bucj8C0Mv/Rg== @@ -5068,14 +4948,6 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - libsodium-wrappers@^0.7.10: version "0.7.13" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" @@ -5252,7 +5124,7 @@ logform@^2.3.2, logform@^2.4.0: safe-stable-stringify "^2.3.1" triple-beam "^1.3.0" -long@^5.0.0: +long@^5.0.0, long@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== @@ -5264,7 +5136,7 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" -lru-cache@6.0.0, lru-cache@^6.0.0: +lru-cache@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== @@ -5413,7 +5285,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.0.8, mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.35, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -5445,6 +5317,11 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimalistic-assert@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" @@ -5485,7 +5362,7 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -5607,7 +5484,7 @@ moo@^0.5.0: resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== -morgan@^1.10.0, morgan@^1.8.2, morgan@~1.10.0: +morgan@^1.10.0, morgan@^1.8.2: version "1.10.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== @@ -5633,17 +5510,16 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.2: - version "1.4.4" - resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.4.tgz#e2bc6cac0df57a8832b858d7418ccaa8ebaf7d8c" - integrity sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw== +multer@^1.4.5-lts.1: + version "1.4.5-lts.1" + resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" + integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== dependencies: append-field "^1.0.0" - busboy "^0.2.11" + busboy "^1.0.0" concat-stream "^1.5.2" mkdirp "^0.5.4" object-assign "^4.1.1" - on-finished "^2.3.0" type-is "^1.6.4" xtend "^4.0.0" @@ -5657,6 +5533,11 @@ nan@^2.17.0, nan@^2.18.0, nan@^2.20.0: resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -5682,7 +5563,7 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -newrelic@^11.12.0: +newrelic@^11.19.0: version "11.19.0" resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-11.19.0.tgz#9fd99fc8cc998335acb4f8c6992bdd01773bd528" integrity sha512-u1dQYf2wERMcU5il6goqD8Af3o83eGSWJkbKtLZQOYkpTP3EhcxVEM9gCIWnfkK5sw4KBnJOG/UxmtRR00JX5g== @@ -5739,6 +5620,11 @@ node-abi@^3.3.0: dependencies: semver "^7.3.5" +node-addon-api@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + node-emoji@^1.11.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -5792,9 +5678,9 @@ node-releases@^2.0.14: integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== nodemon@^3.1.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.3.tgz#dcce9ee0aa7d19cd4dcd576ae9a0456d9078b286" - integrity sha512-m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w== + version "3.1.4" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.4.tgz#c34dcd8eb46a05723ccde60cbdd25addcc8725e4" + integrity sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ== dependencies: chokidar "^3.5.2" debug "^4" @@ -5922,7 +5808,7 @@ object.values@^1.1.7: define-properties "^1.2.1" es-object-atoms "^1.0.0" -on-finished@2.4.1, on-finished@^2.2.0, on-finished@^2.3.0: +on-finished@2.4.1, on-finished@^2.2.0: version "2.4.1" resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== @@ -5976,18 +5862,6 @@ openapi3-ts@^3.1.1: dependencies: yaml "^2.2.1" -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -6351,6 +6225,24 @@ pre-commit@^1.2.2: spawn-sync "^1.0.15" which "1.2.x" +prebuild-install@^7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-7.1.2.tgz#a5fd9986f5a6251fbc47e1e5c65de71e68c0a056" + integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prebuildify@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/prebuildify/-/prebuildify-6.0.1.tgz#655746f91fc95b68610615898678536dd303cd03" @@ -6368,11 +6260,6 @@ prelude-ls@^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" - integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== - prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -6456,13 +6343,6 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== -proto3-json-serializer@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-1.1.1.tgz#1b5703152b6ce811c5cdcc6468032caf53521331" - integrity sha512-AwAuY4g9nxx0u52DnSMkqqgyLHaW/XaPLtaAo3y/ZCfeaQB/g4YDH4kb8Wc/mWzWvu0YjOznVnfn373MVZZrgw== - dependencies: - protobufjs "^7.0.0" - proto3-json-serializer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz#5b705203b4d58f3880596c95fad64902617529dd" @@ -6470,40 +6350,6 @@ proto3-json-serializer@^2.0.0: dependencies: protobufjs "^7.2.5" -protobufjs-cli@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.1.tgz#f531201b1c8c7772066aa822bf9a08318b24a704" - integrity sha512-VPWMgIcRNyQwWUv8OLPyGQ/0lQY/QTQAVN5fh+XzfDwsVw1FZ2L3DM/bcBf8WPiRz2tNpaov9lPZfNcmNo6LXA== - dependencies: - chalk "^4.0.0" - escodegen "^1.13.0" - espree "^9.0.0" - estraverse "^5.1.0" - glob "^8.0.0" - jsdoc "^4.0.0" - minimist "^1.2.0" - semver "^7.1.2" - tmp "^0.2.1" - uglify-js "^3.7.7" - -protobufjs@7.2.4: - version "7.2.4" - resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae" - integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ== - dependencies: - "@protobufjs/aspromise" "^1.1.2" - "@protobufjs/base64" "^1.1.2" - "@protobufjs/codegen" "^2.0.4" - "@protobufjs/eventemitter" "^1.1.0" - "@protobufjs/fetch" "^1.1.0" - "@protobufjs/float" "^1.0.2" - "@protobufjs/inquire" "^1.1.0" - "@protobufjs/path" "^1.1.2" - "@protobufjs/pool" "^1.1.0" - "@protobufjs/utf8" "^1.1.0" - "@types/node" ">=13.7.0" - long "^5.0.0" - protobufjs@7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c" @@ -6522,7 +6368,7 @@ protobufjs@7.3.0: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.0.0, protobufjs@^7.2.5: +protobufjs@^7.2.5, protobufjs@^7.2.6: version "7.3.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== @@ -6668,7 +6514,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^5.0.0: +rate-limiter-flexible@^5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-5.0.3.tgz#bfbfd7585e09073ebe22d177126116862b1024ae" integrity sha512-lWx2y8NBVlTOLPyqs+6y7dxfEpT6YFqKy3MzWbCy95sTTOhOuxufP2QvRyOHpfXpB9OUJPbVLybw3z3AVAS5fA== @@ -6683,7 +6529,7 @@ raw-body@2.5.2, raw-body@^2.3.3: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8: +rc@^1.2.7, rc@^1.2.8: version "1.2.8" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -6707,16 +6553,6 @@ react-is@^18.0.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -readable-stream@1.1.x: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - integrity sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2: version "2.3.8" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -6860,14 +6696,6 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -retry-request@^5.0.0: - version "5.0.2" - resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.2.tgz#143d85f90c755af407fcc46b7166a4ba520e44da" - integrity sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== - dependencies: - debug "^4.1.1" - extend "^3.0.2" - retry-request@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-7.0.2.tgz#60bf48cfb424ec01b03fca6665dee91d06dd95f3" @@ -7011,7 +6839,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.1.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: +semver@^7.0.0, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: version "7.6.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -7128,6 +6956,20 @@ signal-exit@^4.0.1: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -7237,9 +7079,9 @@ sprintf-js@~1.0.2: integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sql-formatter@^15.3.0: - version "15.3.1" - resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.3.1.tgz#e988861d172827b856470a9baefa0135737227df" - integrity sha512-L/dqan+Hrt0PpPdCbHcI9bdfOvqaQZR7v5c5SWMJ3bUGQSezK09Mm9q2I3B4iObjaq7FyoldIM+fDSmfzGRXCA== + version "15.3.2" + resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.3.2.tgz#696fb84c3ce6d368b0d16248a605aa0e7a41751e" + integrity sha512-pNxSMf5DtwhpZ8gUcOGCGZIWtCcyAUx9oLgAtlO4ag7DvlfnETL0BGqXaISc84pNrXvTWmt8Wal1FWKxdTsL3Q== dependencies: argparse "^2.0.1" get-stdin "=8.0.0" @@ -7307,10 +7149,10 @@ streamroller@^3.1.5: debug "^4.3.4" fs-extra "^8.1.0" -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" @@ -7370,11 +7212,6 @@ string_decoder@^1.1.1: dependencies: safe-buffer "~5.2.0" -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== - string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7518,7 +7355,7 @@ sync-rpc@^1.2.1: dependencies: get-port "^3.1.0" -tar-fs@^2.1.0: +tar-fs@^2.0.0, tar-fs@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== @@ -7559,17 +7396,6 @@ tcp-port-used@^1.0.2: debug "4.3.1" is2 "^2.0.6" -teeny-request@^8.0.0: - version "8.0.3" - resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-8.0.3.tgz#5cb9c471ef5e59f2fca8280dc3c5909595e6ca24" - integrity sha512-jJZpA5He2y52yUhA7pyAGZlgQpcB+xLjcN0eUFxr9c8hP/H7uOXbBNVo/O0C/xVfJLJs680jvkFgVJEEvk9+ww== - dependencies: - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.0" - node-fetch "^2.6.1" - stream-events "^1.0.5" - uuid "^9.0.0" - teeny-request@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/teeny-request/-/teeny-request-9.0.0.tgz#18140de2eb6595771b1b02203312dfad79a4716d" @@ -7590,11 +7416,6 @@ test-exclude@^6.0.0: glob "^7.1.4" minimatch "^3.0.4" -text-decoding@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/text-decoding/-/text-decoding-1.0.0.tgz#38a5692d23b5c2b12942d6e245599cb58b1bc52f" - integrity sha512-/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA== - text-hex@1.0.x: version "1.0.0" resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" @@ -7748,6 +7569,13 @@ tslib@^2.0.1, tslib@^2.1.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.3.tgz#0438f810ad7a9edcde7a241c3d80db693c8cbfe0" integrity sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ== +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + 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" @@ -7755,13 +7583,6 @@ type-check@^0.4.0, type-check@~0.4.0: 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" - integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== - dependencies: - prelude-ls "~1.1.2" - type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -7856,11 +7677,6 @@ uc.micro@^2.0.0, uc.micro@^2.1.0: resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== -uglify-js@^3.7.7: - version "3.18.0" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.18.0.tgz#73b576a7e8fda63d2831e293aeead73e0a270deb" - integrity sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A== - uid2@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" @@ -8141,7 +7957,24 @@ winston-transport@^4.4.0, winston-transport@^4.5.0, winston-transport@^4.7.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@^3.0.0, winston@^3.12.0: +winston@3.12.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.12.0.tgz#a5d965a41d3dc31be5408f8c66e927958846c0d0" + integrity sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w== + dependencies: + "@colors/colors" "^1.6.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.7.0" + +winston@^3.0.0: version "3.13.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== @@ -8158,7 +7991,7 @@ winston@^3.0.0, winston@^3.12.0: triple-beam "^1.3.0" winston-transport "^4.7.0" -word-wrap@^1.2.5, word-wrap@~1.2.3: +word-wrap@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== From cf3a4563e5996d36d786bfdd5e444ad10821786e Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 18:21:44 +0530 Subject: [PATCH 16/17] fix:remove the ~ and the ^ and pgrade the packages to the latest --- .eslintrc.js | 2 +- package.json | 80 +++--- yarn.lock | 783 ++++++++++++++++++++++++++++++--------------------- 3 files changed, 509 insertions(+), 356 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index c03c81df1..ec26c7836 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -28,7 +28,7 @@ module.exports = { "mocha/no-exclusive-tests": "error", // Prettier for formatting - "prettier/prettier": ["error"], + "prettier/prettier": "error", }, ignorePatterns: ["public/*", "dist/*"], }; diff --git a/package.json b/package.json index b03cdf314..325662d8e 100644 --- a/package.json +++ b/package.json @@ -16,41 +16,41 @@ "tdd:watch": "sh scripts/tests/tdd.sh" }, "dependencies": { - "axios": "^1.7.2", - "cloudinary": "^2.2.0", - "config": "^3.3.11", - "cookie-parser": "^1.4.6", - "cors": "^2.8.5", - "datauri": "^4.1.0", - "debug": "^4.3.5", + "axios": "1.7.2", + "cloudinary": "2.0.3", + "config": "3.3.7", + "cookie-parser": "1.4.6", + "cors": "2.8.5", + "datauri": "4.1.0", + "debug": "4.3.5", "express": "~4.18.3", - "express-boom": "^3.0.0", - "firebase-admin": "^12.1.1", - "helmet": "^7.1.0", - "http-errors": "^2.0.0", - "joi": "^17.13.3", - "jsdoc": "^4.0.3", + "express-boom": "3.0.0", + "firebase-admin": "12.1.1", + "helmet": "7.1.0", + "http-errors": "~2.0.0", + "joi": "17.12.2", + "jsdoc": "4.0.2", "jsonwebtoken": "^8.5.1", - "morgan": "^1.10.0", - "multer": "^1.4.5-lts.1", - "newrelic": "^11.19.0", - "passport": "^0.7.0", - "passport-github2": "^0.1.12", - "rate-limiter-flexible": "^5.0.3", - "winston": "3.12.0" + "morgan": "1.10.0", + "multer": "1.4.5-lts.1", + "newrelic": "11.19.0", + "passport": "0.7.0", + "passport-github2": "0.1.12", + "rate-limiter-flexible": "5.0.3", + "winston": "3.13.0" }, "devDependencies": { - "@types/chai": "^4.3.12", - "@types/config": "^3.3.3", - "@types/express": "^4.17.21", - "@types/jest": "^29.5.12", - "@types/mocha": "^10.0.6", - "@types/node": "^20.11.24", - "@types/sinon": "^17.0.3", + "@types/chai": "4.3.16", + "@types/config": "3.3.4", + "@types/express": "4.17.21", + "@types/jest": "29.5.12", + "@types/mocha": "10.0.6", + "@types/node": "20.11.24", + "@types/sinon": "17.0.3", "@typescript-eslint/parser": "^7.1.1", - "chai": "^4.4.1", - "chai-http": "^4.4.0", - "cross-env": "^7.0.3", + "chai": "4.4.1", + "chai-http": "4.4.0", + "cross-env": "7.0.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-config-standard": "^16.0.3", @@ -61,17 +61,17 @@ "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", "eslint-plugin-standard": "^4.1.0", - "firebase-tools": "^13.4.0", - "mocha": "^10.3.0", - "nock": "~13.2.9", - "nodemon": "^3.1.0", - "nyc": "^15.1.0", - "pre-commit": "^1.2.2", + "firebase-tools": "13.4.0", + "mocha": "10.3.0", + "nock": "13.2.9", + "nodemon": "3.1.3", + "nyc": "15.1.0", + "pre-commit": "1.2.2", "prettier": "^2.5.1", - "sinon": "^17.0.1", - "ts-node": "^10.9.2", - "ts-node-dev": "^2.0.0", - "typescript": "~5.3.3" + "sinon": "18.0.0", + "ts-node": "10.9.2", + "ts-node-dev": "2.0.0", + "typescript": "5.3.3" }, "engines": { "node": "20.x" diff --git a/yarn.lock b/yarn.lock index 3d2acb559..7729f3adb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -344,16 +344,6 @@ dependencies: tslib "^2.1.0" -"@google-cloud/cloud-sql-connector@^1.2.3": - version "1.3.1" - resolved "https://registry.yarnpkg.com/@google-cloud/cloud-sql-connector/-/cloud-sql-connector-1.3.1.tgz#0a6d050e1dd4f43c5a39f57e742cf70235f21174" - integrity sha512-lF52gnTeO3bf1Yt0DGkCJ8j/+Q9w9bK4Oa99hE6irR1k8WFYOMhwpg+rcMlYL8B1T2niUEFbS+u2gqwX+Krv/w== - dependencies: - "@googleapis/sqladmin" "^18.0.0" - gaxios "^6.1.1" - google-auth-library "^9.2.0" - p-throttle "^5.1.0" - "@google-cloud/firestore@^7.7.0": version "7.8.0" resolved "https://registry.yarnpkg.com/@google-cloud/firestore/-/firestore-7.8.0.tgz#029bed6c47de84c667a27256acbaca6f6ee50e15" @@ -364,6 +354,14 @@ google-gax "^4.3.3" protobufjs "^7.2.6" +"@google-cloud/paginator@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-4.0.1.tgz#5fb8793d4f84d18c50a6f2fad3dadab8d2c533ef" + integrity sha512-6G1ui6bWhNyHjmbYwavdN7mpVPRBtyDg/bfqBTAlwr413On2TnFNfDxc9UhTJctkgoCDgQXEKiRPLPR9USlkbQ== + dependencies: + arrify "^2.0.0" + extend "^3.0.2" + "@google-cloud/paginator@^5.0.0": version "5.0.2" resolved "https://registry.yarnpkg.com/@google-cloud/paginator/-/paginator-5.0.2.tgz#86ad773266ce9f3b82955a8f75e22cd012ccc889" @@ -372,36 +370,48 @@ arrify "^2.0.0" extend "^3.0.2" -"@google-cloud/precise-date@^4.0.0": - version "4.0.0" - resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-4.0.0.tgz#e179893a3ad628b17a6fabdfcc9d468753aac11a" - integrity sha512-1TUx3KdaU3cN7nfCdNf+UVqA/PSX29Cjcox3fZZBtINlRrXVTmUkQnCKv2MbBUbCopbK4olAT1IHl76uZyCiVA== +"@google-cloud/precise-date@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@google-cloud/precise-date/-/precise-date-3.0.1.tgz#1e6659a14af662442037b8f4d20dbc82bf1a78bd" + integrity sha512-crK2rgNFfvLoSgcKJY7ZBOLW91IimVNmPfi1CL+kMTf78pTJYd29XqEVedAeBu4DwCJc0EDIp1MpctLgoPq+Uw== + +"@google-cloud/projectify@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-3.0.0.tgz#302b25f55f674854dce65c2532d98919b118a408" + integrity sha512-HRkZsNmjScY6Li8/kb70wjGlDDyLkVk3KvoEo9uIoxSjYLJasGiCch9+PqRVDOCGUFvEIqyogl+BeqILL4OJHA== "@google-cloud/projectify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/projectify/-/projectify-4.0.0.tgz#d600e0433daf51b88c1fa95ac7f02e38e80a07be" integrity sha512-MmaX6HeSvyPbWGwFq7mXdo0uQZLGBYCwziiLIGq5JVX+/bdI3SAq6bP98trV5eTWfLuvsMcIC1YJOF2vfteLFA== +"@google-cloud/promisify@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.4.tgz#9d8705ecb2baa41b6b2673f3a8e9b7b7e1abc52a" + integrity sha512-j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA== + "@google-cloud/promisify@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-4.0.0.tgz#a906e533ebdd0f754dca2509933334ce58b8c8b1" integrity sha512-Orxzlfb9c67A15cq2JQEyVc7wEsmFBmHjZWZYQMUyJ1qivXyMwdyNOs9odi79hze+2zqdTtu1E19IM/FtqZ10g== -"@google-cloud/pubsub@^4.4.0": - version "4.5.0" - resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-4.5.0.tgz#0c163038f4f00d40df1c21bfe1c1db87011a997e" - integrity sha512-ptRLLDrAp1rStD1n3ZrG8FdAfpccqI6M5rCaceF6PL7DU3hqJbvQ2Y91G8MKG7c7zK+jiWv655Qf5r2IvjTzwA== - dependencies: - "@google-cloud/paginator" "^5.0.0" - "@google-cloud/precise-date" "^4.0.0" - "@google-cloud/projectify" "^4.0.0" - "@google-cloud/promisify" "^4.0.0" - "@opentelemetry/api" "~1.8.0" - "@opentelemetry/semantic-conventions" "~1.21.0" +"@google-cloud/pubsub@^3.0.1": + version "3.7.5" + resolved "https://registry.yarnpkg.com/@google-cloud/pubsub/-/pubsub-3.7.5.tgz#3fed656b7e7ea3a4618d5590004f08321a1389b9" + integrity sha512-4Qrry4vIToth5mqduVslltWVsyb7DR8OhnkBA3F7XiE0jgQsiuUfwp/RB2F559aXnRbwcfmjvP4jSuEaGcjrCQ== + dependencies: + "@google-cloud/paginator" "^4.0.0" + "@google-cloud/precise-date" "^3.0.0" + "@google-cloud/projectify" "^3.0.0" + "@google-cloud/promisify" "^2.0.0" + "@opentelemetry/api" "^1.6.0" + "@opentelemetry/semantic-conventions" "~1.3.0" + "@types/duplexify" "^3.6.0" + "@types/long" "^4.0.0" arrify "^2.0.0" extend "^3.0.2" - google-auth-library "^9.3.0" - google-gax "^4.3.3" + google-auth-library "^8.0.2" + google-gax "^3.6.1" heap-js "^2.2.0" is-stream-ended "^0.1.4" lodash.snakecase "^4.1.1" @@ -428,13 +438,6 @@ teeny-request "^9.0.0" uuid "^8.0.0" -"@googleapis/sqladmin@^18.0.0": - version "18.0.0" - resolved "https://registry.yarnpkg.com/@googleapis/sqladmin/-/sqladmin-18.0.0.tgz#290a41c05d750130493e08e3b7f0b6f2fd478aab" - integrity sha512-OhGKZzcFVVXPedf4WMecTmLQ7jfRyNte6NZ+unwO3PtDgw1WyTpbR9DMGMRDpOONeSpsdu0vDn8OrKokHCQpaw== - dependencies: - googleapis-common "^7.0.0" - "@grpc/grpc-js@^1.9.4", "@grpc/grpc-js@~1.10.3": version "1.10.9" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.10.9.tgz#468cc1549a3fe37b760a16745fb7685d91f4f10c" @@ -443,7 +446,15 @@ "@grpc/proto-loader" "^0.7.13" "@js-sdsl/ordered-map" "^4.4.2" -"@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": +"@grpc/grpc-js@~1.8.0": + version "1.8.22" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.22.tgz#847930c9af46e14df05b57fc12325db140ceff1d" + integrity sha512-oAjDdN7fzbUi+4hZjKG96MR6KTEubAeMpQEb+77qy+3r0Ua5xTFuie6JOLr4ZZgl5g+W5/uRTS2M1V8mVAFPuA== + dependencies: + "@grpc/proto-loader" "^0.7.0" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.13", "@grpc/proto-loader@^0.7.5": version "0.7.13" resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.13.tgz#f6a44b2b7c9f7b609f5748c6eac2d420e37670cf" integrity sha512-AiXO/bfe9bmxBjxxtYxFAXGZvMaN5s8kO+jBHAJCON8rJoB5YS/D6X7ZNc6XQkuHNmyl4CYaMI1fJ/Gn27RGGw== @@ -681,15 +692,15 @@ dependencies: semver "^7.3.5" -"@opentelemetry/api@~1.8.0": - version "1.8.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.8.0.tgz#5aa7abb48f23f693068ed2999ae627d2f7d902ec" - integrity sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w== +"@opentelemetry/api@^1.6.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" + integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== -"@opentelemetry/semantic-conventions@~1.21.0": - version "1.21.0" - resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.21.0.tgz#83f7479c524ab523ac2df702ade30b9724476c72" - integrity sha512-lkC8kZYntxVKr7b8xmjCVUgE0a8xgDakPyDo9uSWavXPyYqLgYYGdEd2j8NxihRyb6UwpX3G/hFUF4/9q2V+/g== +"@opentelemetry/semantic-conventions@~1.3.0": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.3.1.tgz#ba07b864a3c955f061aa30ea3ef7f4ae4449794a" + integrity sha512-wU5J8rUoo32oSef/rFpOT1HIjLjAv3qIDHkw1QIhODV3OpAVHi5oVzlouozg9obUmZKtbZ0qUe/m7FP0y0yBzA== "@pkgjs/parseargs@^0.11.0": version "0.11.0" @@ -875,7 +886,7 @@ resolved "https://registry.yarnpkg.com/@types/caseless/-/caseless-0.12.5.tgz#db9468cb1b1b5a925b8f34822f1669df0c5472f5" integrity sha512-hWtVTC2q7hc7xZ/RLbxapMvDMgUnDvKvMOpKal4DrMyfGBUfB1oKaZlIRr6mJL+If3bAP6sV/QneGzF6tJjZDg== -"@types/chai@4", "@types/chai@^4.3.12": +"@types/chai@4", "@types/chai@4.3.16": version "4.3.16" resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== @@ -887,7 +898,7 @@ dependencies: "@types/node" "*" -"@types/config@^3.3.3": +"@types/config@3.3.4": version "3.3.4" resolved "https://registry.yarnpkg.com/@types/config/-/config-3.3.4.tgz#e46d1ee74f9b0c53645f644dd5f3ba5bedc68d76" integrity sha512-qFiTLnWy+TdPSMIXFHP+87lFXFRM4SXjRS+CSB66+56TrpLNw003y1sh7DGaaC1NGesxgKoT5FDy6dyA1Xju/g== @@ -904,6 +915,13 @@ resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.5.tgz#14a3e83fa641beb169a2dd8422d91c3c345a9a78" integrity sha512-he+DHOWReW0nghN24E1WUqM0efK4kI9oTqDm6XmK8ZPe2djZ90BSNdGnIyCLzCPw7/pogPlGbzI2wHGGmi4O/Q== +"@types/duplexify@^3.6.0": + version "3.6.4" + resolved "https://registry.yarnpkg.com/@types/duplexify/-/duplexify-3.6.4.tgz#aa7e916c33fcc05be8769546fd0441d9b368613e" + integrity sha512-2eahVPsd+dy3CL6FugAzJcxoraWhUghZGEQJns1kTKfCXWKJ5iG/VkaB05wRVrDKHfOFKqb0X0kXh91eE99RZg== + dependencies: + "@types/node" "*" + "@types/express-serve-static-core@^4.17.33": version "4.19.5" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.5.tgz#218064e321126fcf9048d1ca25dd2465da55d9c6" @@ -914,7 +932,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@^4.17.17", "@types/express@^4.17.21": +"@types/express@4.17.21", "@types/express@^4.17.17": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -931,6 +949,14 @@ dependencies: "@types/node" "*" +"@types/glob@*": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" + integrity sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w== + dependencies: + "@types/minimatch" "^5.1.2" + "@types/node" "*" + "@types/http-errors@*": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.4.tgz#7eb47726c391b7345a6ec35ad7f4de469cf5ba4f" @@ -955,7 +981,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.12": +"@types/jest@29.5.12": version "29.5.12" resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.5.12.tgz#7f7dc6eb4cf246d2474ed78744b05d06ce025544" integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== @@ -980,7 +1006,7 @@ dependencies: "@types/node" "*" -"@types/linkify-it@^5": +"@types/linkify-it@*", "@types/linkify-it@^5": version "5.0.0" resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== @@ -990,6 +1016,14 @@ resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/markdown-it@^12.2.3": + version "12.2.3" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" + integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== + dependencies: + "@types/linkify-it" "*" + "@types/mdurl" "*" + "@types/markdown-it@^14.1.1": version "14.1.1" resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.1.tgz#06bafb7a4e3f77b62b1f308acf7df76687887e0b" @@ -998,7 +1032,7 @@ "@types/linkify-it" "^5" "@types/mdurl" "^2" -"@types/mdurl@^2": +"@types/mdurl@*", "@types/mdurl@^2": version "2.0.0" resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== @@ -1008,18 +1042,30 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/mocha@^10.0.6": +"@types/minimatch@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/mocha@10.0.6": version "10.0.6" resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== -"@types/node@*", "@types/node@>=13.7.0", "@types/node@^20.10.3", "@types/node@^20.11.24": +"@types/node@*", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@^20.10.3": version "20.14.6" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.14.6.tgz#f3c19ffc98c2220e18de259bb172dd4d892a6075" integrity sha512-JbA0XIJPL1IiNnU7PFxDXyfAwcwVVrOoqyzzyQTyMeVhBzkJVMSkC1LlVsRQ2lpqiY4n6Bb9oCS6lzDKVQxbZw== dependencies: undici-types "~5.26.4" +"@types/node@20.11.24": + version "20.11.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.24.tgz#cc207511104694e84e9fb17f9a0c4c42d4517792" + integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== + dependencies: + undici-types "~5.26.4" + "@types/node@^10.0.3": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -1050,6 +1096,14 @@ "@types/tough-cookie" "*" form-data "^2.5.0" +"@types/rimraf@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-3.0.2.tgz#a63d175b331748e5220ad48c901d7bbf1f44eef8" + integrity sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ== + dependencies: + "@types/glob" "*" + "@types/node" "*" + "@types/send@*": version "0.17.4" resolved "https://registry.yarnpkg.com/@types/send/-/send-0.17.4.tgz#6619cd24e7270793702e4e6a4b958a9010cfc57a" @@ -1067,7 +1121,7 @@ "@types/node" "*" "@types/send" "*" -"@types/sinon@^17.0.3": +"@types/sinon@17.0.3": version "17.0.3" resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== @@ -1565,7 +1619,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axios@^1.6.8, axios@^1.7.2: +axios@1.7.2, axios@^1.6.8: version "1.7.2" resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.2.tgz#b625db8a7051fbea61c35a3cbb3a1daa7b9c7621" integrity sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw== @@ -1830,7 +1884,7 @@ catharsis@^0.9.0: dependencies: lodash "^4.17.15" -chai-http@^4.4.0: +chai-http@4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/chai-http/-/chai-http-4.4.0.tgz#bb8c346caa25b3c76118c68f7a7cecc0493669b8" integrity sha512-uswN3rZpawlRaa5NiDUHcDZ3v2dw5QgLyAwnQ2tnVNuP7CwIsOFuYJ0xR1WiR7ymD4roBnJIzOUep7w9jQMFJA== @@ -1844,7 +1898,7 @@ chai-http@^4.4.0: qs "^6.11.2" superagent "^8.0.9" -chai@^4.4.1: +chai@4.4.1: version "4.4.1" resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== @@ -2038,10 +2092,10 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== -cloudinary@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.2.0.tgz#9736a7421b5552c43603950fa41d9997c869d0b5" - integrity sha512-akbLTZcNegGSkl07Frnt9fyiK9KZ2zPS+a+j7uLrjNYxVhDpDdIBz9G6snPCYqgk+WLVMRPfXTObalLr5L6g0Q== +cloudinary@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/cloudinary/-/cloudinary-2.0.3.tgz#10a0b0239120aec26655fe91fef67ce68ae0fcc9" + integrity sha512-2JPxAUuV4iHwiW4ATSOZvii6+BhhKI9+9KscgUkxJPKa6V6wOnZJHlYyovBGrrIbIgEdmGSZgqEsLfD0wWBhBg== dependencies: lodash "^4.17.21" q "^1.5.1" @@ -2116,11 +2170,6 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^2.19.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^4.0.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -2199,12 +2248,12 @@ config-chain@^1.1.11: ini "^1.3.4" proto-list "~1.2.1" -config@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/config/-/config-3.3.11.tgz#009e802631363e456d4cf57767a65c1549069ba2" - integrity sha512-Dhn63ZoWCW5EMg4P0Sl/XNsj/7RLiUIA1x1npCy+m2cRwRHzLnt3UtYtxRDMZW/6oOMdWhCzaGYkOcajGgrAOA== +config@3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/config/-/config-3.3.7.tgz#4310410dc2bf4e0effdca21a12a4035860a24ee4" + integrity sha512-mX/n7GKDYZMqvvkY6e6oBY49W8wxdmQt+ho/5lhwFDXqQW9gI+Ahp8EKp8VAbISPnmf2+Bv5uZK7lKXZ6pf1aA== dependencies: - json5 "^2.2.3" + json5 "^2.1.1" configstore@^5.0.1: version "5.0.1" @@ -2250,7 +2299,7 @@ convert-source-map@^2.0.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -cookie-parser@^1.4.6: +cookie-parser@1.4.6: version "1.4.6" resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== @@ -2288,7 +2337,7 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@^2.8.5: +cors@2.8.5, cors@^2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -2314,6 +2363,13 @@ create-require@^1.1.0: resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-env@7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== + dependencies: + cross-spawn "^7.0.1" + cross-env@^5.1.3: version "5.2.1" resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.2.1.tgz#b2c76c1ca7add66dc874d11798466094f551b34d" @@ -2321,13 +2377,6 @@ cross-env@^5.1.3: dependencies: cross-spawn "^6.0.5" -cross-env@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" - integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== - dependencies: - cross-spawn "^7.0.1" - cross-spawn@^5.0.1: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" @@ -2399,7 +2448,7 @@ data-view-byte-offset@^1.0.0: es-errors "^1.3.0" is-data-view "^1.0.1" -datauri@^4.1.0: +datauri@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/datauri/-/datauri-4.1.0.tgz#19e6e4fadc38ff8cea724d8ff59dcaad832520e4" integrity sha512-y17kh32+I82G+ED9MNWFkZiP/Cq/vO1hN9+tSZsT9C9qn3NrvcBnh7crSepg0AQPge1hXx2Ca44s1FRdv0gFWA== @@ -2419,7 +2468,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5: +debug@4, debug@4.3.5, debug@^4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.5" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== @@ -2489,7 +2538,7 @@ deep-freeze@0.0.1: resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== -deep-is@^0.1.3: +deep-is@^0.1.3, deep-is@~0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== @@ -2590,11 +2639,6 @@ dir-glob@^3.0.1: dependencies: path-type "^4.0.0" -discontinuous-range@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a" - integrity sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ== - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -2694,6 +2738,11 @@ entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +entities@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" + integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== + env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -2835,6 +2884,18 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escodegen@^1.13.0: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -3029,7 +3090,7 @@ eslint@^8.57.0: strip-ansi "^6.0.1" text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: +espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -3057,6 +3118,11 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" +estraverse@^4.2.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" @@ -3133,7 +3199,7 @@ exponential-backoff@^3.1.1: resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== -express-boom@^3.0.0: +express-boom@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/express-boom/-/express-boom-3.0.0.tgz#d8146f1eea1bf6611f622141c6689ca6defa09f0" integrity sha512-/esN6Am8YE1rzRsi+vBpJkdr8O+GX+oBjRE/hEuBu6Y3uyS9y026XptRZduAMYS8KxyLzXM5Qh+RlnqLOR1pVQ== @@ -3269,7 +3335,7 @@ 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 sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== @@ -3279,6 +3345,11 @@ fast-safe-stringify@^2.1.1: resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== +fast-text-encoding@^1.0.0, fast-text-encoding@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" + integrity sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w== + fast-url-parser@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d" @@ -3394,7 +3465,7 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -firebase-admin@^12.1.1: +firebase-admin@12.1.1: version "12.1.1" resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-12.1.1.tgz#bdc690189e42663e36cfac5ab1e2d502e856ab9b" integrity sha512-Nuoxk//gaYrspS7TvwBINdGvFhh2QeiaWpRW6+PJ+tWyn2/CugBc7jKa1NaBg0AvhGSOXFOCIsXhzCzHA47Rew== @@ -3413,13 +3484,12 @@ firebase-admin@^12.1.1: "@google-cloud/firestore" "^7.7.0" "@google-cloud/storage" "^7.7.0" -firebase-tools@^13.4.0: - version "13.11.2" - resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.11.2.tgz#9e22b643836676d2c198da31c2814e8b1e871506" - integrity sha512-LNvaNO/hLeTo2JLuz2HQoXnGVhgD51ztny7ozFh2XTsAHuyTRtwmoXFFIBsvW3UGguiPAXR1LetoTVXXHB7oHA== +firebase-tools@13.4.0: + version "13.4.0" + resolved "https://registry.yarnpkg.com/firebase-tools/-/firebase-tools-13.4.0.tgz#1e17637a6189c6c9a05dabaf31504ba20a4d4411" + integrity sha512-yoxET4Xifezr+SopwFgkpMIRGmp11aTTE67tFcfJoTOZDveBbY16dfo6so2xiuqBXQ7DNxsZIQ+d3JEm2Jn40A== dependencies: - "@google-cloud/cloud-sql-connector" "^1.2.3" - "@google-cloud/pubsub" "^4.4.0" + "@google-cloud/pubsub" "^3.0.1" abort-controller "^3.0.0" ajv "^6.12.6" archiver "^5.0.0" @@ -3443,11 +3513,11 @@ firebase-tools@^13.4.0: form-data "^4.0.0" fs-extra "^10.1.0" fuzzy "^0.1.3" - gaxios "^6.1.1" glob "^7.1.2" - google-auth-library "^9.7.0" + google-auth-library "^7.11.0" inquirer "^8.2.6" inquirer-autocomplete-prompt "^2.0.1" + js-yaml "^3.13.1" jsonwebtoken "^9.0.0" leven "^3.1.0" libsodium-wrappers "^0.7.10" @@ -3461,14 +3531,12 @@ firebase-tools@^13.4.0: open "^6.3.0" ora "^5.4.1" p-limit "^3.0.1" - pg "^8.11.3" portfinder "^1.0.32" progress "^2.0.3" proxy-agent "^6.3.0" retry "^0.13.1" rimraf "^3.0.0" semver "^7.5.2" - sql-formatter "^15.3.0" stream-chain "^2.2.4" stream-json "^1.7.3" strip-ansi "^6.0.1" @@ -3483,7 +3551,6 @@ firebase-tools@^13.4.0: winston "^3.0.0" winston-transport "^4.4.0" ws "^7.2.3" - yaml "^2.4.1" flat-cache@^3.0.4: version "3.2.0" @@ -3666,7 +3733,28 @@ fuzzy@^0.1.3: resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8" integrity sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w== -gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.0.3, gaxios@^6.1.1: +gaxios@^4.0.0: + version "4.3.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-4.3.3.tgz#d44bdefe52d34b6435cc41214fdb160b64abfc22" + integrity sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA== + dependencies: + abort-controller "^3.0.0" + extend "^3.0.2" + https-proxy-agent "^5.0.0" + is-stream "^2.0.0" + node-fetch "^2.6.7" + +gaxios@^5.0.0, gaxios@^5.0.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-5.1.3.tgz#f7fa92da0fe197c846441e5ead2573d4979e9013" + integrity sha512-95hVgBRgEIRQQQHIbnxBXeHbW4TqFk4ZDJW7wmVtvYar72FdhRIo1UGOLS2eRAKCPEdPBWu+M7+A33D9CdX9rA== + dependencies: + extend "^3.0.2" + https-proxy-agent "^5.0.0" + is-stream "^2.0.0" + node-fetch "^2.6.9" + +gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.1.1: version "6.6.0" resolved "https://registry.yarnpkg.com/gaxios/-/gaxios-6.6.0.tgz#af8242fff0bbb82a682840d5feaa91b6a1c58be4" integrity sha512-bpOZVQV5gthH/jVCSuYuokRo2bTKOcuBiVWpjmTn6C5Agl5zclGfTljuGsQZxwwDBkli+YhZhP4TdlqTnhOezQ== @@ -3677,6 +3765,22 @@ gaxios@^6.0.0, gaxios@^6.0.2, gaxios@^6.0.3, gaxios@^6.1.1: node-fetch "^2.6.9" uuid "^9.0.1" +gcp-metadata@^4.2.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-4.3.1.tgz#fb205fe6a90fef2fd9c85e6ba06e5559ee1eefa9" + integrity sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A== + dependencies: + gaxios "^4.0.0" + json-bigint "^1.0.0" + +gcp-metadata@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-5.3.0.tgz#6f45eb473d0cb47d15001476b48b663744d25408" + integrity sha512-FNTkdNEnBdlqF2oatizolQqNANMrcqJt6AAYt99B3y1aLLC8Hc5IOBb+ZnnzllodEEf6xMBp6wRcBbc16fa65w== + dependencies: + gaxios "^5.0.0" + json-bigint "^1.0.0" + gcp-metadata@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/gcp-metadata/-/gcp-metadata-6.1.0.tgz#9b0dd2b2445258e7597f2024332d20611cbd6b8c" @@ -3721,11 +3825,6 @@ get-port@^3.1.0: resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" integrity sha512-x5UJKlgeUiNT8nyo/AcnwLnZuZNcSjSw0kogRB+Whd1fjjFq4B1hySFxSFWWSn4mIBzg3sRNUDFYc4g5gjPoLg== -get-stdin@=8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53" - integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg== - get-symbol-description@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.2.tgz#533744d5aa20aca4e079c8e5daf7fd44202821f5" @@ -3778,7 +3877,7 @@ glob-slasher@^1.0.1: lodash.isobject "^2.4.1" toxic "^1.0.0" -glob@8.1.0: +glob@8.1.0, glob@^8.0.0: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -3852,7 +3951,37 @@ globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.6.3, google-auth-library@^9.7.0: +google-auth-library@^7.11.0: + version "7.14.1" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-7.14.1.tgz#e3483034162f24cc71b95c8a55a210008826213c" + integrity sha512-5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA== + dependencies: + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^4.0.0" + gcp-metadata "^4.2.0" + gtoken "^5.0.4" + jws "^4.0.0" + lru-cache "^6.0.0" + +google-auth-library@^8.0.2: + version "8.9.0" + resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-8.9.0.tgz#15a271eb2ec35d43b81deb72211bd61b1ef14dd0" + integrity sha512-f7aQCJODJFmYWN6PeNKzgvy9LI2tYmXnzpNDHEjG5sDNPgGb2FXQyTBnXeSH+PAtpKESFD+LmHw3Ox3mN7e1Fg== + dependencies: + arrify "^2.0.0" + base64-js "^1.3.0" + ecdsa-sig-formatter "^1.0.11" + fast-text-encoding "^1.0.0" + gaxios "^5.0.0" + gcp-metadata "^5.3.0" + gtoken "^6.1.0" + jws "^4.0.0" + lru-cache "^6.0.0" + +google-auth-library@^9.3.0, google-auth-library@^9.6.3: version "9.11.0" resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-9.11.0.tgz#bd6da364bcde4e0cc4ed70a0e0df5112b6a671dd" integrity sha512-epX3ww/mNnhl6tL45EQ/oixsY8JLEgUFoT4A5E/5iAR4esld9Kqv6IJGk7EmGuOgDvaarwF95hU2+v7Irql9lw== @@ -3864,6 +3993,27 @@ google-auth-library@^9.2.0, google-auth-library@^9.3.0, google-auth-library@^9.6 gtoken "^7.0.0" jws "^4.0.0" +google-gax@^3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-3.6.1.tgz#02c78fc496f5adf86f2ca9145545f4b6575f6118" + integrity sha512-g/lcUjGcB6DSw2HxgEmCDOrI/CByOwqRvsuUvNalHUK2iPPPlmAIpbMbl62u0YufGMr8zgE3JL7th6dCb1Ry+w== + dependencies: + "@grpc/grpc-js" "~1.8.0" + "@grpc/proto-loader" "^0.7.0" + "@types/long" "^4.0.0" + "@types/rimraf" "^3.0.2" + abort-controller "^3.0.0" + duplexify "^4.0.0" + fast-text-encoding "^1.0.3" + google-auth-library "^8.0.2" + is-stream-ended "^0.1.4" + node-fetch "^2.6.1" + object-hash "^3.0.0" + proto3-json-serializer "^1.0.0" + protobufjs "7.2.4" + protobufjs-cli "1.1.1" + retry-request "^5.0.0" + google-gax@^4.3.3: version "4.3.6" resolved "https://registry.yarnpkg.com/google-gax/-/google-gax-4.3.6.tgz#aed8cb1ffc8072615c7ec0cf557ade7343136413" @@ -3882,17 +4032,19 @@ google-gax@^4.3.3: retry-request "^7.0.0" uuid "^9.0.1" -googleapis-common@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/googleapis-common/-/googleapis-common-7.2.0.tgz#5c19102c9af1e5d27560be5e69ee2ccf68755d42" - integrity sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA== +google-p12-pem@^3.1.3: + version "3.1.4" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-3.1.4.tgz#123f7b40da204de4ed1fbf2fd5be12c047fc8b3b" + integrity sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg== dependencies: - extend "^3.0.2" - gaxios "^6.0.3" - google-auth-library "^9.7.0" - qs "^6.7.0" - url-template "^2.0.8" - uuid "^9.0.0" + node-forge "^1.3.1" + +google-p12-pem@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-4.0.1.tgz#82841798253c65b7dc2a4e5fe9df141db670172a" + integrity sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ== + dependencies: + node-forge "^1.3.1" gopd@^1.0.1: version "1.0.1" @@ -3916,6 +4068,24 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +gtoken@^5.0.4: + version "5.3.2" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-5.3.2.tgz#deb7dc876abe002178e0515e383382ea9446d58f" + integrity sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ== + dependencies: + gaxios "^4.0.0" + google-p12-pem "^3.1.3" + jws "^4.0.0" + +gtoken@^6.1.0: + version "6.1.2" + resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-6.1.2.tgz#aeb7bdb019ff4c3ba3ac100bbe7b6e74dce0e8bc" + integrity sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ== + dependencies: + gaxios "^5.0.1" + google-p12-pem "^4.0.0" + jws "^4.0.0" + gtoken@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-7.1.0.tgz#d61b4ebd10132222817f7222b1e6064bd463fc26" @@ -4001,7 +4171,7 @@ heap-js@^2.2.0: resolved "https://registry.yarnpkg.com/heap-js/-/heap-js-2.5.0.tgz#487e268b1733b187ca04eccf52f8387be92b46cb" integrity sha512-kUGoI3p7u6B41z/dp33G6OaL7J4DRqRYwVmeIlwLClx7yaaAy7hoDExnuejTKtuDwfcatGmddHDEOjf6EyIxtQ== -helmet@^7.1.0: +helmet@7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/helmet/-/helmet-7.1.0.tgz#287279e00f8a3763d5dccbaf1e5ee39b8c3784ca" integrity sha512-g+HZqgfbpXdCkme/Cd/mZkV0aV3BZZZSugecH03kl38m/Kmdx8jKjBikpDj2cr+Iynv4KpYEviojNdTJActJAg== @@ -4041,7 +4211,7 @@ http-cache-semantics@^4.1.1: resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== -http-errors@2.0.0, http-errors@^2.0.0: +http-errors@2.0.0, http-errors@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -4666,10 +4836,10 @@ jju@^1.1.0: resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" integrity sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA== -joi@^17.13.3: - version "17.13.3" - resolved "https://registry.yarnpkg.com/joi/-/joi-17.13.3.tgz#0f5cc1169c999b30d344366d384b12d92558bcec" - integrity sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA== +joi@17.12.2: + version "17.12.2" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.12.2.tgz#283a664dabb80c7e52943c557aab82faea09f521" + integrity sha512-RonXAIzCiHLc8ss3Ibuz45u28GOsWE1UpfDXLbN/9NKbL4tCJf8TWYVKsoYuuh+sAUt7fsSNpA+r2+TBA6Wjmw== dependencies: "@hapi/hoek" "^9.3.0" "@hapi/topo" "^5.1.0" @@ -4723,7 +4893,28 @@ jsbn@1.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== -jsdoc@^4.0.3: +jsdoc@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.2.tgz#a1273beba964cf433ddf7a70c23fd02c3c60296e" + integrity sha512-e8cIg2z62InH7azBBi3EsSEqrKx+nUtAS5bBcYTSpZFA+vhNPyhv8PTFZ0WsjOPDj04/dOLlm08EDcQJDqaGQg== + dependencies: + "@babel/parser" "^7.20.15" + "@jsdoc/salty" "^0.2.1" + "@types/markdown-it" "^12.2.3" + bluebird "^3.7.2" + catharsis "^0.9.0" + escape-string-regexp "^2.0.0" + js2xmlparser "^4.0.2" + klaw "^3.0.0" + markdown-it "^12.3.2" + markdown-it-anchor "^8.4.1" + marked "^4.0.10" + mkdirp "^1.0.4" + requizzle "^0.2.3" + strip-json-comments "^3.1.0" + underscore "~1.13.2" + +jsdoc@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-4.0.3.tgz#bfee86c6a82f6823e12b5e8be698fd99ae46c061" integrity sha512-Nu7Sf35kXJ1MWDZIMAuATRQTg1iIPdzh7tqJ6jjvaU/GfDf+qi5UV8zJR3Mo+/pYFvm8mzay4+6O5EWigaQBQw== @@ -4800,7 +4991,7 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.3: +json5@^2.1.1, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -4948,6 +5139,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + libsodium-wrappers@^0.7.10: version "0.7.13" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz#83299e06ee1466057ba0e64e532777d2929b90d3" @@ -4965,6 +5164,13 @@ limiter@^1.1.5: resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== +linkify-it@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" + integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== + dependencies: + uc.micro "^1.0.1" + linkify-it@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-5.0.0.tgz#9ef238bfa6dc70bd8e7f9572b52d369af569b421" @@ -5136,7 +5342,7 @@ loupe@^2.3.6: dependencies: get-func-name "^2.0.1" -lru-cache@6.0.0: +lru-cache@6.0.0, lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== @@ -5213,11 +5419,22 @@ make-fetch-happen@^13.0.0: promise-retry "^2.0.1" ssri "^10.0.0" -markdown-it-anchor@^8.6.7: +markdown-it-anchor@^8.4.1, markdown-it-anchor@^8.6.7: version "8.6.7" resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== +markdown-it@^12.3.2: + version "12.3.2" + resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" + integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== + dependencies: + argparse "^2.0.1" + entities "~2.1.0" + linkify-it "^3.0.1" + mdurl "^1.0.1" + uc.micro "^1.0.5" + markdown-it@^14.1.0: version "14.1.0" resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-14.1.0.tgz#3c3c5992883c633db4714ccb4d7b5935d98b7d45" @@ -5247,6 +5464,11 @@ marked@^4.0.10, marked@^4.0.14: resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== +mdurl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== + mdurl@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-2.0.0.tgz#80676ec0433025dd3e17ee983d0fe8de5a2237e0" @@ -5448,10 +5670,10 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -mocha@^10.3.0: - version "10.4.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" - integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== +mocha@10.3.0: + version "10.3.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.3.0.tgz#0e185c49e6dccf582035c05fa91084a4ff6e3fe9" + integrity sha512-uF2XJs+7xSLsrmIvn37i/wnc91nw7XjOQB8ccyx5aEgdnohr7n+rEiZP23WkCYHjilR6+EboEnbq/ZQDz4LSbg== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -5479,12 +5701,7 @@ module-details-from-path@^1.0.3: resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== -moo@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.2.tgz#f9fe82473bc7c184b0d32e2215d3f6e67278733c" - integrity sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q== - -morgan@^1.10.0, morgan@^1.8.2: +morgan@1.10.0, morgan@^1.10.0, morgan@^1.8.2: version "1.10.0" resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== @@ -5510,7 +5727,7 @@ ms@2.1.3, ms@^2.1.1: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -multer@^1.4.5-lts.1: +multer@1.4.5-lts.1: version "1.4.5-lts.1" resolved "https://registry.yarnpkg.com/multer/-/multer-1.4.5-lts.1.tgz#803e24ad1984f58edffbc79f56e305aec5cfd1ac" integrity sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ== @@ -5543,16 +5760,6 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== -nearley@^2.20.1: - version "2.20.1" - resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.20.1.tgz#246cd33eff0d012faf197ff6774d7ac78acdd474" - integrity sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ== - dependencies: - commander "^2.19.0" - moo "^0.5.0" - railroad-diagrams "^1.0.0" - randexp "0.4.6" - negotiator@0.6.3, negotiator@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -5563,7 +5770,7 @@ netmask@^2.0.2: resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -newrelic@^11.19.0: +newrelic@11.19.0: version "11.19.0" resolved "https://registry.yarnpkg.com/newrelic/-/newrelic-11.19.0.tgz#9fd99fc8cc998335acb4f8c6992bdd01773bd528" integrity sha512-u1dQYf2wERMcU5il6goqD8Af3o83eGSWJkbKtLZQOYkpTP3EhcxVEM9gCIWnfkK5sw4KBnJOG/UxmtRR00JX5g== @@ -5592,10 +5799,10 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -nise@^5.1.9: - version "5.1.9" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" - integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== +nise@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/nise/-/nise-6.0.0.tgz#ae56fccb5d912037363c3b3f29ebbfa28bde8b48" + integrity sha512-K8ePqo9BFvN31HXwEtTNGzgrPpmvgciDsFz8aztFjt4LqKO/JeFD8tBOeuDiCMXrIl/m1YvfH8auSpxfaD09wg== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/fake-timers" "^11.2.2" @@ -5603,7 +5810,7 @@ nise@^5.1.9: just-extend "^6.2.0" path-to-regexp "^6.2.1" -nock@~13.2.9: +nock@13.2.9: version "13.2.9" resolved "https://registry.yarnpkg.com/nock/-/nock-13.2.9.tgz#4faf6c28175d36044da4cfa68e33e5a15086ad4c" integrity sha512-1+XfJNYF1cjGB+TKMWi29eZ0b82QOvQs2YoLNzbpWGqFMtRQHTa57osqdGj4FrFPgkO4D4AZinzUJR9VvW3QUA== @@ -5677,10 +5884,10 @@ node-releases@^2.0.14: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -nodemon@^3.1.0: - version "3.1.4" - resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.4.tgz#c34dcd8eb46a05723ccde60cbdd25addcc8725e4" - integrity sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ== +nodemon@3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-3.1.3.tgz#dcce9ee0aa7d19cd4dcd576ae9a0456d9078b286" + integrity sha512-m4Vqs+APdKzDFpuaL9F9EVOF85+h070FnkHVEoU4+rmT6Vw0bmNl7s61VEkY/cJkL7RCv1p4urnUDUMrS5rk2w== dependencies: chokidar "^3.5.2" debug "^4" @@ -5712,7 +5919,7 @@ npm-run-path@^3.1.0: dependencies: path-key "^3.0.0" -nyc@^15.1.0: +nyc@15.1.0: version "15.1.0" resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== @@ -5862,6 +6069,18 @@ openapi3-ts@^3.1.1: dependencies: yaml "^2.2.1" +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + optionator@^0.9.3: version "0.9.4" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" @@ -5946,11 +6165,6 @@ p-map@^4.0.0: dependencies: aggregate-error "^3.0.0" -p-throttle@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/p-throttle/-/p-throttle-5.1.0.tgz#7daf27412a86f34154ff1c462ba33e91a8d7afe6" - integrity sha512-+N+s2g01w1Zch4D0K3OpnPDqLOKmLcQ4BvIFq3JC0K29R28vUOjWpO+OJZBNt8X9i3pFCksZJZ0YXkUGjaFE6g== - p-try@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6010,7 +6224,7 @@ parseurl@~1.3.3: resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== -passport-github2@^0.1.12: +passport-github2@0.1.12: version "0.1.12" resolved "https://registry.yarnpkg.com/passport-github2/-/passport-github2-0.1.12.tgz#a72ebff4fa52a35bc2c71122dcf470d1116f772c" integrity sha512-3nPUCc7ttF/3HSP/k9sAXjz3SkGv5Nki84I05kSQPo01Jqq1NzJACgMblCK0fGcv9pKCG/KXU3AJRDGLqHLoIw== @@ -6033,7 +6247,7 @@ passport-strategy@1.x.x: resolved "https://registry.yarnpkg.com/passport-strategy/-/passport-strategy-1.0.0.tgz#b5539aa8fc225a3d1ad179476ddf236b440f52e4" integrity sha512-CB97UUvDKJde2V0KDWWB3lyf6PC3FaZP7YxZ2G8OAtn9p4HI9j9JLP9qjOGZFvyl8uwNT8qM+hGnz/n16NI7oA== -passport@^0.7.0: +passport@0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/passport/-/passport-0.7.0.tgz#3688415a59a48cf8068417a8a8092d4492ca3a05" integrity sha512-cPLl+qZpSc+ireUvt+IzqbED1cHHkDoVYMo30jbJIdOOjQ1MQYZBPiNvmi8UM6lJuOpTPXJGZQk0DtC4y61MYQ== @@ -6107,62 +6321,6 @@ pause@0.0.1: resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" integrity sha512-KG8UEiEVkR3wGEb4m5yZkVCzigAD+cVEJck2CzYZO37ZGJfctvVptVO192MwrtPhzONn6go8ylnOdMhKqi4nfg== -pg-cloudflare@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/pg-cloudflare/-/pg-cloudflare-1.1.1.tgz#e6d5833015b170e23ae819e8c5d7eaedb472ca98" - integrity sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q== - -pg-connection-string@^2.6.4: - version "2.6.4" - resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.6.4.tgz#f543862adfa49fa4e14bc8a8892d2a84d754246d" - integrity sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA== - -pg-int8@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" - integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== - -pg-pool@^3.6.2: - version "3.6.2" - resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-3.6.2.tgz#3a592370b8ae3f02a7c8130d245bc02fa2c5f3f2" - integrity sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg== - -pg-protocol@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.1.tgz#21333e6d83b01faaebfe7a33a7ad6bfd9ed38cb3" - integrity sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg== - -pg-types@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" - integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== - dependencies: - pg-int8 "1.0.1" - postgres-array "~2.0.0" - postgres-bytea "~1.0.0" - postgres-date "~1.0.4" - postgres-interval "^1.1.0" - -pg@^8.11.3: - version "8.12.0" - resolved "https://registry.yarnpkg.com/pg/-/pg-8.12.0.tgz#9341724db571022490b657908f65aee8db91df79" - integrity sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ== - dependencies: - pg-connection-string "^2.6.4" - pg-pool "^3.6.2" - pg-protocol "^1.6.1" - pg-types "^2.1.0" - pgpass "1.x" - optionalDependencies: - pg-cloudflare "^1.1.1" - -pgpass@1.x: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.5.tgz#9b873e4a564bb10fa7a7dbd55312728d422a223d" - integrity sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug== - dependencies: - split2 "^4.1.0" - picocolors@^1.0.0, picocolors@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" @@ -6194,29 +6352,7 @@ possible-typed-array-names@^1.0.0: resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz#89bb63c6fada2c3e90adc4a647beeeb39cc7bf8f" integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== -postgres-array@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" - integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== - -postgres-bytea@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" - integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== - -postgres-date@~1.0.4: - version "1.0.7" - resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" - integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== - -postgres-interval@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" - integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== - dependencies: - xtend "^4.0.0" - -pre-commit@^1.2.2: +pre-commit@1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/pre-commit/-/pre-commit-1.2.2.tgz#dbcee0ee9de7235e57f79c56d7ce94641a69eec6" integrity sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA== @@ -6260,6 +6396,11 @@ prelude-ls@^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" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prettier-linter-helpers@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" @@ -6343,6 +6484,13 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== +proto3-json-serializer@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-1.1.1.tgz#1b5703152b6ce811c5cdcc6468032caf53521331" + integrity sha512-AwAuY4g9nxx0u52DnSMkqqgyLHaW/XaPLtaAo3y/ZCfeaQB/g4YDH4kb8Wc/mWzWvu0YjOznVnfn373MVZZrgw== + dependencies: + protobufjs "^7.0.0" + proto3-json-serializer@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/proto3-json-serializer/-/proto3-json-serializer-2.0.2.tgz#5b705203b4d58f3880596c95fad64902617529dd" @@ -6350,6 +6498,40 @@ proto3-json-serializer@^2.0.0: dependencies: protobufjs "^7.2.5" +protobufjs-cli@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/protobufjs-cli/-/protobufjs-cli-1.1.1.tgz#f531201b1c8c7772066aa822bf9a08318b24a704" + integrity sha512-VPWMgIcRNyQwWUv8OLPyGQ/0lQY/QTQAVN5fh+XzfDwsVw1FZ2L3DM/bcBf8WPiRz2tNpaov9lPZfNcmNo6LXA== + dependencies: + chalk "^4.0.0" + escodegen "^1.13.0" + espree "^9.0.0" + estraverse "^5.1.0" + glob "^8.0.0" + jsdoc "^4.0.0" + minimist "^1.2.0" + semver "^7.1.2" + tmp "^0.2.1" + uglify-js "^3.7.7" + +protobufjs@7.2.4: + version "7.2.4" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.4.tgz#3fc1ec0cdc89dd91aef9ba6037ba07408485c3ae" + integrity sha512-AT+RJgD2sH8phPmCf7OUZR8xGdcJRga4+1cOaXJ64hvcSkVhNcRHOwIxUatPH15+nj59WAGTDv3LSGZPEQbJaQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + protobufjs@7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.0.tgz#a32ec0422c039798c41a0700306a6e305b9cb32c" @@ -6368,7 +6550,7 @@ protobufjs@7.3.0: "@types/node" ">=13.7.0" long "^5.0.0" -protobufjs@^7.2.5, protobufjs@^7.2.6: +protobufjs@^7.0.0, protobufjs@^7.2.5, protobufjs@^7.2.6: version "7.3.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" integrity sha512-RXyHaACeqXeqAKGLDl68rQKbmObRsTIn4TYVUUug1KfS47YWCo5MacGITEryugIgZqORCvJWEk4l449POg5Txg== @@ -6465,7 +6647,7 @@ qs@6.11.0: dependencies: side-channel "^1.0.4" -qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0, qs@^6.7.0: +qs@^6.11.0, qs@^6.11.2, qs@^6.4.0, qs@^6.6.0: version "6.12.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.1.tgz#39422111ca7cbdb70425541cba20c7d7b216599a" integrity sha512-zWmv4RSuB9r2mYQw3zxQuHWeU+42aKi1wWig/j4ele4ygELZ7PEO6MM7rim9oAQH2A5MWfsAVf/jPvTPgCbvUQ== @@ -6484,24 +6666,11 @@ queue@6.0.2: dependencies: inherits "~2.0.3" -railroad-diagrams@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e" - integrity sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A== - rambda@^7.4.0: version "7.5.0" resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== -randexp@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3" - integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ== - dependencies: - discontinuous-range "1.0.0" - ret "~0.1.10" - randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -6514,7 +6683,7 @@ range-parser@~1.2.1: resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== -rate-limiter-flexible@^5.0.3: +rate-limiter-flexible@5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/rate-limiter-flexible/-/rate-limiter-flexible-5.0.3.tgz#bfbfd7585e09073ebe22d177126116862b1024ae" integrity sha512-lWx2y8NBVlTOLPyqs+6y7dxfEpT6YFqKy3MzWbCy95sTTOhOuxufP2QvRyOHpfXpB9OUJPbVLybw3z3AVAS5fA== @@ -6691,10 +6860,13 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== +retry-request@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/retry-request/-/retry-request-5.0.2.tgz#143d85f90c755af407fcc46b7166a4ba520e44da" + integrity sha512-wfI3pk7EE80lCIXprqh7ym48IHYdwmAAzESdbU8Q9l7pnRCk9LEhpbOTNKjz6FARLm/Bl5m+4F0ABxOkYUujSQ== + dependencies: + debug "^4.1.1" + extend "^3.0.2" retry-request@^7.0.0: version "7.0.2" @@ -6839,7 +7011,7 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.0.0, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: +semver@^7.0.0, semver@^7.1.2, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.2, semver@^7.5.3, semver@^7.5.4, semver@^7.6.0: version "7.6.2" resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.2.tgz#1e3b34759f896e8f14d6134732ce798aeb0c6e13" integrity sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w== @@ -6984,16 +7156,16 @@ simple-update-notifier@^2.0.0: dependencies: semver "^7.5.3" -sinon@^17.0.1: - version "17.0.2" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-17.0.2.tgz#470894bcc2d24b01bad539722ea46da949892405" - integrity sha512-uihLiaB9FhzesElPDFZA7hDcNABzsVHwr3YfmM9sBllVwab3l0ltGlRV1XhpNfIacNDLGD1QRZNLs5nU5+hTuA== +sinon@18.0.0: + version "18.0.0" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-18.0.0.tgz#69ca293dbc3e82590a8b0d46c97f63ebc1e5fc01" + integrity sha512-+dXDXzD1sBO6HlmZDd7mXZCR/y5ECiEiGCBSGuFD/kZ0bDTofPYc6JaeGmPSF+1j1MejGUWkORbYOLDyvqCWpA== dependencies: "@sinonjs/commons" "^3.0.1" "@sinonjs/fake-timers" "^11.2.2" "@sinonjs/samsam" "^8.0.0" diff "^5.2.0" - nise "^5.1.9" + nise "^6.0.0" supports-color "^7" slash@^3.0.0: @@ -7063,11 +7235,6 @@ spawn-wrap@^2.0.0: signal-exit "^3.0.2" which "^2.0.1" -split2@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4" - integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== - sprintf-js@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -7078,15 +7245,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sql-formatter@^15.3.0: - version "15.3.2" - resolved "https://registry.yarnpkg.com/sql-formatter/-/sql-formatter-15.3.2.tgz#696fb84c3ce6d368b0d16248a605aa0e7a41751e" - integrity sha512-pNxSMf5DtwhpZ8gUcOGCGZIWtCcyAUx9oLgAtlO4ag7DvlfnETL0BGqXaISc84pNrXvTWmt8Wal1FWKxdTsL3Q== - dependencies: - argparse "^2.0.1" - get-stdin "=8.0.0" - nearley "^2.20.1" - ssri@^10.0.0: version "10.0.6" resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.6.tgz#a8aade2de60ba2bce8688e3fa349bad05c7dc1e5" @@ -7509,7 +7667,7 @@ ts-api-utils@^1.3.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1" integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ== -ts-node-dev@^2.0.0: +ts-node-dev@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ts-node-dev/-/ts-node-dev-2.0.0.tgz#bdd53e17ab3b5d822ef519928dc6b4a7e0f13065" integrity sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w== @@ -7525,7 +7683,7 @@ ts-node-dev@^2.0.0: ts-node "^10.4.0" tsconfig "^7.0.0" -ts-node@^10.4.0, ts-node@^10.9.2: +ts-node@10.9.2, ts-node@^10.4.0: version "10.9.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -7583,6 +7741,13 @@ type-check@^0.4.0, type-check@~0.4.0: 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" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" @@ -7667,16 +7832,26 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@~5.3.3: +typescript@5.3.3: version "5.3.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +uc.micro@^1.0.1, uc.micro@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" + integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== + uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A== +uglify-js@^3.7.7: + version "3.18.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.18.0.tgz#73b576a7e8fda63d2831e293aeead73e0a270deb" + integrity sha512-SyVVbcNBCk0dzr9XL/R/ySrmYf0s372K6/hFklzgcp2lBFyXtw4I7BOdDjlLhE1aVqaI/SHWXWmYdlZxuyF38A== + uid2@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/uid2/-/uid2-0.0.4.tgz#033f3b1d5d32505f5ce5f888b9f3b667123c0a44" @@ -7807,11 +7982,6 @@ url-join@0.0.1: resolved "https://registry.yarnpkg.com/url-join/-/url-join-0.0.1.tgz#1db48ad422d3402469a87f7d97bdebfe4fb1e3c8" integrity sha512-H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw== -url-template@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/url-template/-/url-template-2.0.8.tgz#fc565a3cccbff7730c775f5641f9555791439f21" - integrity sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw== - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -7957,24 +8127,7 @@ winston-transport@^4.4.0, winston-transport@^4.5.0, winston-transport@^4.7.0: readable-stream "^3.6.0" triple-beam "^1.3.0" -winston@3.12.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/winston/-/winston-3.12.0.tgz#a5d965a41d3dc31be5408f8c66e927958846c0d0" - integrity sha512-OwbxKaOlESDi01mC9rkM0dQqQt2I8DAUMRLZ/HpbwvDXm85IryEHgoogy5fziQy38PntgZsLlhAYHz//UPHZ5w== - dependencies: - "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" - async "^3.2.3" - is-stream "^2.0.0" - logform "^2.4.0" - one-time "^1.0.0" - readable-stream "^3.4.0" - safe-stable-stringify "^2.3.1" - stack-trace "0.0.x" - triple-beam "^1.3.0" - winston-transport "^4.7.0" - -winston@^3.0.0: +winston@3.13.0, winston@^3.0.0: version "3.13.0" resolved "https://registry.yarnpkg.com/winston/-/winston-3.13.0.tgz#e76c0d722f78e04838158c61adc1287201de7ce3" integrity sha512-rwidmA1w3SE4j0E5MuIufFhyJPBDG7Nu71RkZor1p2+qHvJSZ9GYDA81AyleQcZbh/+V6HjeBdfnTZJm9rSeQQ== @@ -7991,7 +8144,7 @@ winston@^3.0.0: triple-beam "^1.3.0" winston-transport "^4.7.0" -word-wrap@^1.2.5: +word-wrap@^1.2.5, word-wrap@~1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== @@ -8093,7 +8246,7 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== -yaml@^2.2.1, yaml@^2.4.1: +yaml@^2.2.1: version "2.4.5" resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.4.5.tgz#60630b206dd6d84df97003d33fc1ddf6296cca5e" integrity sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg== From b4251396f7ae2b54d46d1d5d3c5fd27e8cf65ce4 Mon Sep 17 00:00:00 2001 From: abhay Date: Thu, 20 Jun 2024 18:34:38 +0530 Subject: [PATCH 17/17] chore:remove the eslint-standard package as it's depricated and no longer maintained --- package.json | 1 - yarn.lock | 5 ----- 2 files changed, 6 deletions(-) diff --git a/package.json b/package.json index 325662d8e..7df8a48a8 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,6 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-security": "^1.7.1", - "eslint-plugin-standard": "^4.1.0", "firebase-tools": "13.4.0", "mocha": "10.3.0", "nock": "13.2.9", diff --git a/yarn.lock b/yarn.lock index 7729f3adb..5781ddc3d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3004,11 +3004,6 @@ eslint-plugin-security@^1.7.1: dependencies: safe-regex "^2.1.1" -eslint-plugin-standard@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== - eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"