From 53b4cf012585720ee5984dd51e2dfaab4a519d96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 04:17:01 +0000 Subject: [PATCH 1/6] Bump actions/setup-python from 2 to 3 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pylint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pylint.yml b/.github/workflows/pylint.yml index b6f6869..5b3e42e 100644 --- a/.github/workflows/pylint.yml +++ b/.github/workflows/pylint.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v3 with: python-version: ${{ matrix.python-version }} - name: Install dependencies From 63c8b1ab023cbec37d0ca591271456ff07c610bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 04:21:06 +0000 Subject: [PATCH 2/6] Bump caniuse-lite from 1.0.30001317 to 1.0.30001320 in /frontend Bumps [caniuse-lite](https://github.com/browserslist/caniuse-lite) from 1.0.30001317 to 1.0.30001320. - [Release notes](https://github.com/browserslist/caniuse-lite/releases) - [Commits](https://github.com/browserslist/caniuse-lite/compare/1.0.30001317...1.0.30001320) --- updated-dependencies: - dependency-name: caniuse-lite dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- frontend/package.json | 2 +- frontend/yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index fa62a07..18e42f1 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,7 +8,7 @@ "lint": "vue-cli-service lint" }, "dependencies": { - "caniuse-lite": "^1.0.30001317", + "caniuse-lite": "^1.0.30001320", "core-js": "^3.16.2", "pretty-checkbox-vue": "^1.1.9", "register-service-worker": "^1.7.2", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 6e83e82..f7ddad0 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2228,10 +2228,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001317: - version "1.0.30001317" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz#0548fb28fd5bc259a70b8c1ffdbe598037666a1b" - integrity sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001286, caniuse-lite@^1.0.30001320: + version "1.0.30001320" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001320.tgz#8397391bec389b8ccce328636499b7284ee13285" + integrity sha512-MWPzG54AGdo3nWx7zHZTefseM5Y1ccM7hlQKHRqJkPozUaw3hNbBTMmLn16GG2FUzjR13Cr3NPfhIieX5PzXDA== case-sensitive-paths-webpack-plugin@^2.3.0: version "2.4.0" From c799ba8e266cd20e2ceefd6a8151f165532d37e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 04:22:38 +0000 Subject: [PATCH 3/6] Bump @vue/cli-plugin-router from 5.0.3 to 5.0.4 in /frontend Bumps [@vue/cli-plugin-router](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-router) from 5.0.3 to 5.0.4. - [Release notes](https://github.com/vuejs/vue-cli/releases) - [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md) - [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.4/packages/@vue/cli-plugin-router) --- updated-dependencies: - dependency-name: "@vue/cli-plugin-router" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- frontend/package.json | 2 +- frontend/yarn.lock | 40 ++++++++++++++++++++++++++++------------ 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index fa62a07..95793ff 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -23,7 +23,7 @@ "@vue/cli-plugin-babel": "~4.5.15", "@vue/cli-plugin-eslint": "~4.5.15", "@vue/cli-plugin-pwa": "~4.5.15", - "@vue/cli-plugin-router": "~5.0.3", + "@vue/cli-plugin-router": "~5.0.4", "@vue/cli-service": "~4.5.15", "babel-eslint": "^10.1.0", "eslint": "^6.7.2", diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 6e83e82..274bf45 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -2,6 +2,15 @@ # yarn lockfile v1 +"@achrinza/node-ipc@9.2.2": + version "9.2.2" + resolved "https://registry.yarnpkg.com/@achrinza/node-ipc/-/node-ipc-9.2.2.tgz#ae1b5d3d6a9362034eea60c8d946b93893c2e4ec" + integrity sha512-b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw== + dependencies: + "@node-ipc/js-queue" "2.0.3" + event-pubsub "4.3.0" + js-message "1.0.7" + "@apideck/better-ajv-errors@^0.3.1": version "0.3.1" resolved "https://registry.npmjs.org/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.1.tgz" @@ -880,6 +889,13 @@ call-me-maybe "^1.0.1" glob-to-regexp "^0.3.0" +"@node-ipc/js-queue@2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@node-ipc/js-queue/-/js-queue-2.0.3.tgz#ac7fe33d766fa53e233ef8fedaf3443a01c5a4cd" + integrity sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw== + dependencies: + easy-stack "1.0.1" + "@nodelib/fs.stat@^1.1.2": version "1.1.3" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz" @@ -1261,12 +1277,12 @@ dependencies: "@vue/cli-shared-utils" "^4.5.15" -"@vue/cli-plugin-router@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.3.tgz#8413d8a6347c556ffb6a1965d6992ff625564177" - integrity sha512-9GPewake2QhmnNe1p72Cejv0jyenH+gv3+3JlZf4kPR68ncqwF7YiUjxbnJnItWgq4Zep3+YqYmQ4PsIWjMPUQ== +"@vue/cli-plugin-router@~5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-5.0.4.tgz#d30b20125408d39c7ad19a7f8a4a82aee9e033a9" + integrity sha512-lylzCuH3Br0BcTz5IxxSffpyoF9dQ2k4jTdK8QlWrnRanWGw7P9C0kYMr9rohHaXpvAlu6bio392gbNIWpEepg== dependencies: - "@vue/cli-shared-utils" "^5.0.3" + "@vue/cli-shared-utils" "^5.0.4" "@vue/cli-plugin-vuex@^4.5.15": version "4.5.15" @@ -1351,18 +1367,18 @@ semver "^6.1.0" strip-ansi "^6.0.0" -"@vue/cli-shared-utils@^5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.3.tgz#e8facc759f4e2ceed4a26f33943c0005a834e4af" - integrity sha512-xAHxFDYVohHWXOLdmGvka3ffQcRgKdACempFQkGJX74Q7OBf0zPf5WH+vQXhlR17eA3LmWdY+Nv8OfsIGim6Fg== +"@vue/cli-shared-utils@^5.0.4": + version "5.0.4" + resolved "https://registry.yarnpkg.com/@vue/cli-shared-utils/-/cli-shared-utils-5.0.4.tgz#e3f42575cb6b70e021272ef2c8bb52ca544ecf27" + integrity sha512-nfAsj8Nopu5sVHMBIaut/YL7NaJFVmTBSTJD7LM17jc5uytrM9JwiRtzCiv3JWRBG78Xdb/s2Xb/1YR4fkdmkQ== dependencies: + "@achrinza/node-ipc" "9.2.2" chalk "^4.1.2" execa "^1.0.0" joi "^17.4.0" launch-editor "^2.2.1" lru-cache "^6.0.0" node-fetch "^2.6.7" - node-ipc "9.2.1" open "^8.0.2" ora "^5.3.0" read-pkg "^5.1.1" @@ -3138,7 +3154,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" -easy-stack@^1.0.1: +easy-stack@1.0.1, easy-stack@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/easy-stack/-/easy-stack-1.0.1.tgz" @@ -5396,7 +5412,7 @@ node-forge@^0.10.0: version "0.10.0" resolved "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz" -node-ipc@9.2.1, node-ipc@^9.1.1: +node-ipc@^9.1.1: version "9.2.1" resolved "https://registry.npmjs.org/node-ipc/-/node-ipc-9.2.1.tgz" dependencies: From 111934e7285082b09a7e4aa093f1b924e9de54a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Mar 2022 04:23:33 +0000 Subject: [PATCH 4/6] Bump workbox-webpack-plugin from 6.5.1 to 6.5.2 in /frontend Bumps [workbox-webpack-plugin](https://github.com/googlechrome/workbox) from 6.5.1 to 6.5.2. - [Release notes](https://github.com/googlechrome/workbox/releases) - [Commits](https://github.com/googlechrome/workbox/compare/v6.5.1...v6.5.2) --- updated-dependencies: - dependency-name: workbox-webpack-plugin dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- frontend/package.json | 2 +- frontend/yarn.lock | 216 +++++++++++++++++++++--------------------- 2 files changed, 109 insertions(+), 109 deletions(-) diff --git a/frontend/package.json b/frontend/package.json index fa62a07..5290517 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -29,7 +29,7 @@ "eslint": "^6.7.2", "eslint-plugin-vue": "^7.20.0", "vue-template-compiler": "^2.6.14", - "workbox-webpack-plugin": "^6.5.1" + "workbox-webpack-plugin": "^6.5.2" }, "eslintConfig": { "root": true, diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 6e83e82..60ed389 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -8062,13 +8062,13 @@ word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz" -workbox-background-sync@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.1.tgz#df79c6a4a22945d8a44493a4947a6ed0f720ef86" - integrity sha512-T5a35fagLXQvV8Dr4+bDU+XYsP90jJ3eBLjZMKuCNELMQZNj+VekCODz1QK44jgoBeQk+vp94pkZV6G+e41pgg== +workbox-background-sync@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.2.tgz#28be9bf89b8e4e0379d45903280c7c12f4df836f" + integrity sha512-EjG37LSMDJ1TFlFg56wx6YXbH4/NkG09B9OHvyxx+cGl2gP5OuOzsCY3rOPJSpbcz6jpuA40VIC3HzSD4OvE1g== dependencies: idb "^6.1.4" - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-background-sync@^4.3.1: version "4.3.1" @@ -8076,12 +8076,12 @@ workbox-background-sync@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-broadcast-update@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.1.tgz#9aecb116979b0709480b84cfd1beca7a901d01d4" - integrity sha512-mb/oyblyEpDbw167cCTyHnC3RqCnCQHtFYuYZd+QTpuExxM60qZuBH1AuQCgvLtDcztBKdEYK2VFD9SZYgRbaQ== +workbox-broadcast-update@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.2.tgz#b1f32bb40a9dcb5b05ca27e09fb7c01a0a126182" + integrity sha512-DjJYraYnprTZE/AQNoeogaxI1dPuYmbw+ZJeeP8uXBSbg9SNv5wLYofQgywXeRepv4yr/vglMo9yaHUmBMc+4Q== dependencies: - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-broadcast-update@^4.3.1: version "4.3.1" @@ -8089,10 +8089,10 @@ workbox-broadcast-update@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-build@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.1.tgz#6b5e8f090bb608267868540d3072b44b8531b3bc" - integrity sha512-coDUDzHvFZ1ADOl3wKCsCSyOBvkPKlPgcQDb6LMMShN1zgF31Mev/1HzN3+9T2cjjWAgFwZKkuRyExqc1v21Zw== +workbox-build@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.2.tgz#774faafd84b1dc94b74739ceb5d8ff367748523b" + integrity sha512-TVi4Otf6fgwikBeMpXF9n0awHfZTMNu/nwlMIT9W+c13yvxkmDFMPb7vHYK6RUmbcxwPnz4I/R+uL76+JxG4JQ== dependencies: "@apideck/better-ajv-errors" "^0.3.1" "@babel/core" "^7.11.1" @@ -8116,21 +8116,21 @@ workbox-build@6.5.1: strip-comments "^2.0.1" tempy "^0.6.0" upath "^1.2.0" - workbox-background-sync "6.5.1" - workbox-broadcast-update "6.5.1" - workbox-cacheable-response "6.5.1" - workbox-core "6.5.1" - workbox-expiration "6.5.1" - workbox-google-analytics "6.5.1" - workbox-navigation-preload "6.5.1" - workbox-precaching "6.5.1" - workbox-range-requests "6.5.1" - workbox-recipes "6.5.1" - workbox-routing "6.5.1" - workbox-strategies "6.5.1" - workbox-streams "6.5.1" - workbox-sw "6.5.1" - workbox-window "6.5.1" + workbox-background-sync "6.5.2" + workbox-broadcast-update "6.5.2" + workbox-cacheable-response "6.5.2" + workbox-core "6.5.2" + workbox-expiration "6.5.2" + workbox-google-analytics "6.5.2" + workbox-navigation-preload "6.5.2" + workbox-precaching "6.5.2" + workbox-range-requests "6.5.2" + workbox-recipes "6.5.2" + workbox-routing "6.5.2" + workbox-strategies "6.5.2" + workbox-streams "6.5.2" + workbox-sw "6.5.2" + workbox-window "6.5.2" workbox-build@^4.3.1: version "4.3.1" @@ -8160,12 +8160,12 @@ workbox-build@^4.3.1: workbox-sw "^4.3.1" workbox-window "^4.3.1" -workbox-cacheable-response@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.1.tgz#f71d0a75b3d6846e39594955e99ac42fd26f8693" - integrity sha512-3TdtH/luDiytmM+Cn72HCBLZXmbeRNJqZx2yaVOfUZhj0IVwZqQXhNarlGE9/k6U5Jelb+TtpH2mLVhnzfiSMg== +workbox-cacheable-response@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.2.tgz#d9252eb99f0d0fceb70f63866172f4eaac56a3e8" + integrity sha512-UnHGih6xqloV808T7ve1iNKZMbpML0jGLqkkmyXkJbZc5j16+HRSV61Qrh+tiq3E3yLvFMGJ3AUBODOPNLWpTg== dependencies: - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-cacheable-response@^4.3.1: version "4.3.1" @@ -8173,22 +8173,22 @@ workbox-cacheable-response@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-core@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.1.tgz#0dba3bccf883a46dfa61cc412eaa3cb09bb549e6" - integrity sha512-qObXZ39aFJ2N8X7IUbGrJHKWguliCuU1jOXM/I4MTT84u9BiKD2rHMkIzgeRP1Ixu9+cXU4/XHJq3Cy0Qqc5hw== +workbox-core@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.2.tgz#f5e06a22c6cb4651d3e13107443d972fdbd47364" + integrity sha512-IlxLGQf+wJHCR+NM0UWqDh4xe/Gu6sg2i4tfZk6WIij34IVk9BdOQgi6WvqSHd879jbQIUgL2fBdJUJyAP5ypQ== workbox-core@^4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz" -workbox-expiration@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.1.tgz#9f105fcf3362852754884ad153888070ce98b692" - integrity sha512-iY/cTADAQATMmPkUBRmQdacqq0TJd2wMHimBQz+tRnPGHSMH+/BoLPABPnu7O7rT/g/s59CUYYRGxe3mEgoJCA== +workbox-expiration@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.2.tgz#ee6ed755a220a0b375d67831f9237e4dcbccb59c" + integrity sha512-5Hfp0uxTZJrgTiy9W7AjIIec+9uTOtnxY/tRBm4DbqcWKaWbVTa+izrKzzOT4MXRJJIJUmvRhWw4oo8tpmMouw== dependencies: idb "^6.1.4" - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-expiration@^4.3.1: version "4.3.1" @@ -8196,15 +8196,15 @@ workbox-expiration@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-google-analytics@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.1.tgz#685224d439c1e7a943f8241d65e2a34ee95a4ba0" - integrity sha512-qZU46/h4dbionYT6Yk6iBkUwpiEzAfnO1W7KkI+AMmY7G9/gA03dQQ7rpTw8F4vWrG7ahTUGWDFv6fERtaw1BQ== +workbox-google-analytics@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.2.tgz#a79fa7a40824873baaa333dcd72d1fdf1c53adf5" + integrity sha512-8SMar+N0xIreP5/2we3dwtN1FUmTMScoopL86aKdXBpio8vXc8Oqb5fCJG32ialjN8BAOzDqx/FnGeCtkIlyvw== dependencies: - workbox-background-sync "6.5.1" - workbox-core "6.5.1" - workbox-routing "6.5.1" - workbox-strategies "6.5.1" + workbox-background-sync "6.5.2" + workbox-core "6.5.2" + workbox-routing "6.5.2" + workbox-strategies "6.5.2" workbox-google-analytics@^4.3.1: version "4.3.1" @@ -8215,12 +8215,12 @@ workbox-google-analytics@^4.3.1: workbox-routing "^4.3.1" workbox-strategies "^4.3.1" -workbox-navigation-preload@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.1.tgz#a244e3bdf99ce86da7210315ca1ba5aef3710825" - integrity sha512-aKrgAbn2IMgzTowTi/ZyKdQUcES2m++9aGtpxqsX7Gn9ovCY8zcssaMEAMMwrIeveij5HiWNBrmj6MWDHi+0rg== +workbox-navigation-preload@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.2.tgz#ffb3d9d5cdb881a3824851707da221dbb0bb3f23" + integrity sha512-iqDNWWMswjCsZuvGFDpcX1Z8InBVAlVBELJ28xShsWWntALzbtr0PXMnm2WHkXCc56JimmGldZi1N5yDPiTPOg== dependencies: - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-navigation-preload@^4.3.1: version "4.3.1" @@ -8228,14 +8228,14 @@ workbox-navigation-preload@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-precaching@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.1.tgz#177b6424f1e71e601b9c3d6864decad2655f9ff9" - integrity sha512-EzlPBxvmjGfE56YZzsT/vpVkpLG1XJhoplgXa5RPyVWLUL1LbwEAxhkrENElSS/R9tgiTw80IFwysidfUqLihg== +workbox-precaching@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.2.tgz#a3117b4d3eb61ce8d01b9dfc063c48155bd7f9d3" + integrity sha512-OZAlQ8AAT20KugGKKuJMHdQ8X1IyNQaLv+mPTHj+8Dmv8peBq5uWNzs4g/1OSFmXsbXZ6a1CBC6YtQWVPhJQ9w== dependencies: - workbox-core "6.5.1" - workbox-routing "6.5.1" - workbox-strategies "6.5.1" + workbox-core "6.5.2" + workbox-routing "6.5.2" + workbox-strategies "6.5.2" workbox-precaching@^4.3.1: version "4.3.1" @@ -8243,12 +8243,12 @@ workbox-precaching@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-range-requests@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.1.tgz#f40f84aa8765940543eba16131d02f12b38e2fdc" - integrity sha512-57Da/qRbd9v33YlHX0rlSUVFmE4THCjKqwkmfhY3tNLnSKN2L5YBS3qhWeDO0IrMNgUj+rGve2moKYXeUqQt4A== +workbox-range-requests@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.2.tgz#b8b7e5b5830fecc22f0a1d8815457921df2e5bf9" + integrity sha512-zi5VqF1mWqfCyJLTMXn1EuH/E6nisqWDK1VmOJ+TnjxGttaQrseOhMn+BMvULFHeF8AvrQ0ogfQ6bSv0rcfAlg== dependencies: - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-range-requests@^4.3.1: version "4.3.1" @@ -8256,24 +8256,24 @@ workbox-range-requests@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-recipes@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.1.tgz#d2fb21743677cc3ca9e1fc9e3b68f0d1587df205" - integrity sha512-DGsyKygHggcGPQpWafC/Nmbm1Ny3sB2vE9r//3UbeidXiQ+pLF14KEG1/0NNGRaY+lfOXOagq6d1H7SC8KA+rA== +workbox-recipes@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.2.tgz#19f47ec25a8788c65d0cc8d217cbebc0bbbb5c63" + integrity sha512-2lcUKMYDiJKvuvRotOxLjH2z9K7jhj8GNUaHxHNkJYbTCUN3LsX1cWrsgeJFDZ/LgI565t3fntpbG9J415ZBXA== dependencies: - workbox-cacheable-response "6.5.1" - workbox-core "6.5.1" - workbox-expiration "6.5.1" - workbox-precaching "6.5.1" - workbox-routing "6.5.1" - workbox-strategies "6.5.1" + workbox-cacheable-response "6.5.2" + workbox-core "6.5.2" + workbox-expiration "6.5.2" + workbox-precaching "6.5.2" + workbox-routing "6.5.2" + workbox-strategies "6.5.2" -workbox-routing@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.1.tgz#5488795ae850fe3ae435241143b54ff25ab0db70" - integrity sha512-yAAncdTwanvlR8KPjubyvFKeAok8ZcIws6UKxvIAg0I+wsf7UYi93DXNuZr6RBSQrByrN6HkCyjuhmk8P63+PA== +workbox-routing@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.2.tgz#e0ad46246ba51224fd57eff0dd46891b3220cb9a" + integrity sha512-nR1w5PjF6IVwo0SX3oE88LhmGFmTnqqU7zpGJQQPZiKJfEKgDENQIM9mh3L1ksdFd9Y3CZVkusopHfxQvit/BA== dependencies: - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-routing@^4.3.1: version "4.3.1" @@ -8281,12 +8281,12 @@ workbox-routing@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-strategies@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.1.tgz#51cabbddad5a1956eb9d51cf6ce01ab0a6372756" - integrity sha512-JNaTXPy8wXzKkr+6za7/eJX9opoZk7UgY261I2kPxl80XQD8lMjz0vo9EOcBwvD72v3ZhGJbW84ZaDwFEhFvWA== +workbox-strategies@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.2.tgz#56b02e6959c6391351011fc2e5b0829aff1ed859" + integrity sha512-fgbwaUMxbG39BHjJIs2y2X21C0bmf1Oq3vMQxJ1hr6y5JMJIm8rvKCcf1EIdAr+PjKdSk4ddmgyBQ4oO8be4Uw== dependencies: - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-strategies@^4.3.1: version "4.3.1" @@ -8294,13 +8294,13 @@ workbox-strategies@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-streams@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.1.tgz#12036817385fa4449a86a3ef77fce1cb00ecad9f" - integrity sha512-7jaTWm6HRGJ/ewECnhb+UgjTT50R42E0/uNCC4eTKQwnLO/NzNGjoXTdQgFjo4zteR+L/K6AtFAiYKH3ZJbAYw== +workbox-streams@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.2.tgz#2fb6ba307f7d2cbda63f64522a197be868b4ea25" + integrity sha512-ovD0P4UrgPtZ2Lfc/8E8teb1RqNOSZr+1ZPqLR6sGRZnKZviqKbQC3zVvvkhmOIwhWbpL7bQlWveLVONHjxd5w== dependencies: - workbox-core "6.5.1" - workbox-routing "6.5.1" + workbox-core "6.5.2" + workbox-routing "6.5.2" workbox-streams@^4.3.1: version "4.3.1" @@ -8308,10 +8308,10 @@ workbox-streams@^4.3.1: dependencies: workbox-core "^4.3.1" -workbox-sw@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.1.tgz#f9256b40f0a7e94656ccd06f127ba19a92cd23c5" - integrity sha512-hVrQa19yo9wzN1fQQ/h2JlkzFpkuH2qzYT2/rk7CLaWt6tLnTJVFCNHlGRRPhytZSf++LoIy7zThT714sowT/Q== +workbox-sw@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.2.tgz#2f5dca0e96c61a450fccf0405095ddf1b6f43bc7" + integrity sha512-2KhlYqtkoqlnPdllj2ujXUKRuEFsRDIp6rdE4l1PsxiFHRAFaRTisRQpGvRem5yxgXEr+fcEKiuZUW2r70KZaw== workbox-sw@^4.3.1: version "4.3.1" @@ -8325,24 +8325,24 @@ workbox-webpack-plugin@^4.3.1: json-stable-stringify "^1.0.1" workbox-build "^4.3.1" -workbox-webpack-plugin@^6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.1.tgz#da88b4b6d8eff855958f0e7ebb7aa3eea50a8282" - integrity sha512-SHtlQBpKruI16CAYhICDMkgjXE2fH5Yp+D+1UmBfRVhByZYzusVOykvnPm8ObJb9d/tXgn9yoppoxafFS7D4vQ== +workbox-webpack-plugin@^6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.2.tgz#0cf6e1d23d5107a88fd8502fd4f534215e1dd298" + integrity sha512-StrJ7wKp5tZuGVcoKLVjFWlhDy+KT7ZWsKnNcD6F08wA9Cpt6JN+PLIrplcsTHbQpoAV8+xg6RvcG0oc9z+RpQ== dependencies: fast-json-stable-stringify "^2.1.0" pretty-bytes "^5.4.1" upath "^1.2.0" webpack-sources "^1.4.3" - workbox-build "6.5.1" + workbox-build "6.5.2" -workbox-window@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.1.tgz#7b5ca29467b1da45dc9e2b5a1b89159d3eb9957a" - integrity sha512-oRlun9u7b7YEjo2fIDBqJkU2hXtrEljXcOytRhfeQRbqXxjUOpFgXSGRSAkmDx1MlKUNOSbr+zfi8h5n7In3yA== +workbox-window@6.5.2: + version "6.5.2" + resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.2.tgz#46d6412cd57039bdf3d5dd914ad21fb3f98fe980" + integrity sha512-2kZH37r9Wx8swjEOL4B8uGM53lakMxsKkQ7mOKzGA/QAn/DQTEZGrdHWtypk2tbhKY5S0jvPS+sYDnb2Z3378A== dependencies: "@types/trusted-types" "^2.0.2" - workbox-core "6.5.1" + workbox-core "6.5.2" workbox-window@^4.3.1: version "4.3.1" From 50fd2b5b068bb3907810df20d3c79575c31e4abb Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Fri, 25 Mar 2022 15:29:28 +0100 Subject: [PATCH 5/6] refactor metric collection --- backend/bang/game.py | 14 +++++--------- backend/metrics.py | 28 ++++++++++++++++++++++++++++ backend/server.py | 32 ++++++++++---------------------- 3 files changed, 43 insertions(+), 31 deletions(-) create mode 100644 backend/metrics.py diff --git a/backend/bang/game.py b/backend/bang/game.py index 7a8592a..53da6f2 100644 --- a/backend/bang/game.py +++ b/backend/bang/game.py @@ -1,5 +1,3 @@ -import time -import os import json from typing import List, Set, Dict, Tuple, Optional import random @@ -15,14 +13,13 @@ import bang.expansions.fistful_of_cards.card_events as ce import bang.expansions.high_noon.card_events as ceh import bang.expansions.gold_rush.shop_cards as grc import bang.expansions.gold_rush.characters as grch -import datadog +from metrics import Metrics class Game: - def __init__(self, name, sio:socketio, dd_api:datadog.api = None): + def __init__(self, name, sio:socketio): super().__init__() self.sio = sio self.name = name - self.dd_api = dd_api self.players: List[pl.Player] = [] self.spectators: List[pl.Player] = [] self.deck: Deck = None @@ -451,8 +448,7 @@ class Game: if not self.someone_won: self.someone_won = True self.sio.emit('chat_message', room=self.name, data=f'_won|{p.name}|{p.role.name}') - if self.dd_api: - self.dd_api.Metric.send(metric='player_win', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{p.character.name}", f"role:{p.role.name}"]) + Metrics.send_metric('player_win', points=[1], tags=[f"char:{p.character.name}", f"role:{p.role.name}"]) p.notify_self() if hasattr(self.sio, 'is_fake'): print('announces_winners(): Running for tests, you will have to call reset manually!') @@ -610,8 +606,8 @@ class Game: self.is_handling_death = True import bang.expansions.dodge_city.characters as chd print(f'{self.name}: the killer is {player.attacker}') - if self.dd_api and player.character and player.role: - self.dd_api.Metric.send(metric='player_death', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{player.character.name}", f"role:{player.role.name}"]) + if player.character and player.role: + Metrics.send_metric('player_death', points=[1], tags=[f"char:{player.character.name}", f"role:{player.role.name}"]) if len([c for c in player.gold_rush_equipment if isinstance(c, grc.Ricercato)]) > 0 and player.attacker and player.attacker in self.players: player.attacker.gold_nuggets += 1 player.attacker.hand.append(self.deck.draw(True)) diff --git a/backend/metrics.py b/backend/metrics.py new file mode 100644 index 0000000..93dbbaa --- /dev/null +++ b/backend/metrics.py @@ -0,0 +1,28 @@ +import os +import time +from datadog import initialize, api + +class Metrics: + send_metrics = False + + @classmethod + def init(cls): + if "DATADOG_API_KEY" in os.environ and "DATADOG_APP_KEY" in os.environ and "HOST" in os.environ: + Metrics.send_metrics = True + initialize() + api.Event.create(title="Backend start", text="", tags=["server:backend", f"host:{os.environ['HOST']}"], alert_type="info") + else: + print("Datadog not configured") + + @classmethod + def send_metric(cls, metric_name, **kwargs): + if Metrics.send_metrics: + kwargs['tags'] = ["server:backend", f"host:{os.environ['HOST']}"] + kwargs.get('tags', []) + kwargs['points'][0] = (int(time.time()) , kwargs['points'][0]) + api.Metric.send(metric=metric_name, **kwargs) + + @classmethod + def send_event(cls, event_name, event_data, **kwargs): + if Metrics.send_metrics: + kwargs['tags'] = ["server:backend", f"host:{os.environ['HOST']}"] + kwargs.get('tags', []) + api.Event.create(title=event_name, text=event_data, tags=kwargs['tags'], alert_type=kwargs.get('alert_type', "info")) diff --git a/backend/server.py b/backend/server.py index 408b0bb..bf725de 100644 --- a/backend/server.py +++ b/backend/server.py @@ -1,3 +1,4 @@ +import imp import os import json import time @@ -11,17 +12,10 @@ from bang.players import Player, PendingAction import requests from discord_webhook import DiscordWebhook -from datadog import initialize, api +from metrics import Metrics -send_metrics = False -if "DATADOG_API_KEY" in os.environ and "DATADOG_APP_KEY" in os.environ: - initialize() - send_metrics = True - api.Event.create(title="Backend start", text="", tags=["server:backend", f"host:{os.environ['HOST']}"], alert_type="info") -else: - print("Datadog not configured") - +Metrics.init() import sys sys.setrecursionlimit(10**6) # this should prevents bots from stopping @@ -55,8 +49,7 @@ blacklist: List[str] = [] def advertise_lobbies(): sio.emit('lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in games if not g.started and len(g.players) < 10 and not g.is_hidden]) sio.emit('spectate_lobbies', room='lobby', data=[{'name': g.name, 'players': len(g.players), 'locked': g.password != ''} for g in games if g.started]) - if send_metrics: - api.Metric.send(metric='lobbies', points=[(int(time.time()), len(games))], tags=["server:backend", "type:lobbies", f"host:{os.environ['HOST']}"]) + Metrics.send_metric('lobbies', points=[len(games)]) @sio.event def connect(sid, environ): @@ -65,8 +58,7 @@ def connect(sid, environ): print('connect ', sid) sio.enter_room(sid, 'lobby') sio.emit('players', room='lobby', data=online_players) - if send_metrics: - api.Metric.send(metric='online_players', points=[(int(time.time()), online_players)], tags=["server:backend", f"host:{os.environ['HOST']}"]) + Metrics.send_metric('online_players', points=[online_players]) @sio.event def get_online_players(sid): @@ -89,8 +81,7 @@ def report(sid, text): sio.emit('chat_message', room=sid, data={'color': f'green','text':f'Report OK'}) else: print("WARNING: DISCORD_WEBHOOK not found") - if send_metrics: - api.Event.create(title="BUG REPORT", text=data, tags=["server:backend", f"host:{os.environ['HOST']}"]) + Metrics.send_event('BUG_REPORT', event_data=text) print(f'New bug report, replay at https://www.toptal.com/developers/hastebin/{key}') @sio.event @@ -174,8 +165,7 @@ def disconnect(sid): games.pop(games.index(sio.get_session(sid).game)) print('disconnect ', sid) advertise_lobbies() - if send_metrics: - api.Metric.send(metric='online_players', points=[(int(time.time()), online_players)], tags=["server:backend", f"host:{os.environ['HOST']}"]) + Metrics.send_metric('online_players', points=[online_players]) @sio.event def create_room(sid, room_name): @@ -184,7 +174,7 @@ def create_room(sid, room_name): room_name += f'_{random.randint(0,100)}' sio.leave_room(sid, 'lobby') sio.enter_room(sid, room_name) - g = Game(room_name, sio, api if send_metrics else None) + g = Game(room_name, sio) g.add_player(sio.get_session(sid)) if room_name in blacklist: g.is_hidden = True @@ -283,15 +273,13 @@ def start_game(sid): ses: Player = sio.get_session(sid) ses.game.start_game() advertise_lobbies() - if send_metrics: - api.Metric.send(metric='start_game', points=[(int(time.time()), 1)], tags=(["server:backend", f"host:{os.environ['HOST']}"] + [f"exp:{e}" for e in ses.game.expansions])) + Metrics.send_metric('start_game', points=[1], tags=[f"exp:{e}" for e in ses.game.expansions]) @sio.event def set_character(sid, name): ses: Player = sio.get_session(sid) ses.game.rpc_log.append(f'{ses.name};set_character;{name}') - if send_metrics: - api.Metric.send(metric='set_character', points=[(int(time.time()), 1)], tags=["server:backend", f"host:{os.environ['HOST']}", f"char:{name}"]) + Metrics.send_metric('set_character', points=[1], tags=[f"char:{name}"]) ses.set_character(name) @sio.event From fd6c4cca1dc723587e18d1f592f0f4078b08626b Mon Sep 17 00:00:00 2001 From: Alberto Xamin Date: Fri, 25 Mar 2022 15:42:44 +0100 Subject: [PATCH 6/6] add cards metrics --- backend/bang/players.py | 2 ++ backend/server.py | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/bang/players.py b/backend/bang/players.py index a058f3e..e8d6091 100644 --- a/backend/bang/players.py +++ b/backend/bang/players.py @@ -14,6 +14,7 @@ import bang.expansions.gold_rush.shop_cards as grc import bang.expansions.gold_rush.characters as grch import eventlet from typing import List +from metrics import Metrics class PendingAction(IntEnum): PICK = 0 @@ -647,6 +648,7 @@ class Player: self.hand.insert(hand_index, card) else: did_play_card = True + Metrics.send_metric('play_card', points=[1], tags=[f'success:{did_play_card}', f'card:{card.name}', f'bot:{self.is_bot}']) print("did play card:", did_play_card) self.notify_self() if self.is_bot: diff --git a/backend/server.py b/backend/server.py index bf725de..cdea58a 100644 --- a/backend/server.py +++ b/backend/server.py @@ -1,4 +1,3 @@ -import imp import os import json import time