From 7a82fed92afb0ef331933afa9cf44583d6523597 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 28 Mar 2022 10:43:06 +0200 Subject: [PATCH 1/8] Use specific version of Docker dind Signed-off-by: Thomas Citharel --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 02a3c76dd..4cd0e6e9e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -183,7 +183,7 @@ pages: .docker: &docker stage: docker - image: docker:stable + image: docker:20.10.12 variables: DOCKER_TLS_CERTDIR: "/certs" DOCKER_HOST: tcp://docker:2376 @@ -191,7 +191,7 @@ pages: DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client" DOCKER_DRIVER: overlay2 services: - - docker:stable-dind + - docker:20.10.12-dind cache: {} before_script: # Install buildx From b47e46cef54baac3c7259a54ee3d4599a0db4a83 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 28 Mar 2022 10:48:40 +0200 Subject: [PATCH 2/8] Update deps Signed-off-by: Thomas Citharel --- js/yarn.lock | 311 +++++++++++++++++++++++++-------------------------- mix.lock | 6 +- 2 files changed, 155 insertions(+), 162 deletions(-) diff --git a/js/yarn.lock b/js/yarn.lock index 95a2a3a20..99314e6f7 100644 --- a/js/yarn.lock +++ b/js/yarn.lock @@ -1341,9 +1341,9 @@ graphql "14.0.2" "@mdi/font@^6.1.95": - version "6.6.95" - resolved "https://registry.yarnpkg.com/@mdi/font/-/font-6.6.95.tgz#668e023f19aa3cab1549088c767df055387c6b8a" - integrity sha512-WAQfnO/eqZEwXd+wD4mFV/Vna9RrVEyOdYKFa2H+sqf+PJ/a/803pPacEioOAuzGfXUVScm8cdZi8KqyeCCs1Q== + version "6.6.96" + resolved "https://registry.yarnpkg.com/@mdi/font/-/font-6.6.96.tgz#4eee6faee5f44d3ec401d354fb95775cd6699575" + integrity sha512-FbcvG9z17hwZ7IwX5XeOR1UYGoLq+gTKq6XNPvJFuCpn599GdiPCJbAmmDBJb+jMYXjKYr0lCxfouWGxDA82sA== "@node-ipc/js-queue@2.0.3": version "2.0.3" @@ -1832,9 +1832,9 @@ pretty-format "^27.0.0" "@types/json-schema@*", "@types/json-schema@^7.0.3", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.10.tgz#9b05b7896166cd00e9cbd59864853abf65d9ac23" - integrity sha512-BLO9bBq59vW3fxCpD4o0N4U+DXsvwvIcl+jofw0frQo/GrBFC+/jRZj1E7kgp6dvTyNmA4y6JCV5Id/r3mNP5A== + version "7.0.11" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" + integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/json5@^0.0.29": version "0.0.29" @@ -2920,9 +2920,9 @@ ansi-regex@^2.0.0: integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== ansi-regex@^5.0.1: version "5.0.1" @@ -3308,7 +3308,7 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^3.0.1, braces@~3.0.2: +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== @@ -3878,11 +3878,9 @@ crypto-random-string@^2.0.0: integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== css-declaration-sorter@^6.0.3: - version "6.1.4" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz#b9bfb4ed9a41f8dcca9bf7184d849ea94a8294b4" - integrity sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw== - dependencies: - timsort "^0.3.0" + version "6.2.2" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz#bfd2f6f50002d6a3ae779a87d3a0c5d5b10e0f02" + integrity sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg== css-loader@^6.5.0: version "6.7.1" @@ -4032,9 +4030,9 @@ data-urls@^2.0.0: whatwg-url "^8.0.0" date-fns-tz@^1.1.6: - version "1.3.0" - resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.0.tgz#6c83d4bdf20d54060cf176d96a3ca45043b36a84" - integrity sha512-r6ye6PmGEvkF467/41qzU71oGwv9kHTnV3vtSZdyV6VThwPID47ZH7FtR7zQWrhgOUWkYySm2ems2w6ZfNUqoA== + version "1.3.1" + resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.1.tgz#88b6374e5a74cfb11ec2d2b120cfe0bc02eeb862" + integrity sha512-Uy+wph6HcQ0IG8TWbVyXicgDmB1zdvb0CoIknZQaxiTun4uSfxLR+8gSTC2C3KCLq+0fEIuEtJ/ORDRIn6doQw== date-fns@^2.16.0: version "2.28.0" @@ -4352,9 +4350,9 @@ ejs@^3.1.6: jake "^10.6.1" electron-to-chromium@^1.4.84: - version "1.4.92" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.92.tgz#88996e9aceb3a500710fd439abfa89b6cc1ac56c" - integrity sha512-YAVbvQIcDE/IJ/vzDMjD484/hsRbFPW2qXJPaYTfOhtligmfYEYOep+5QojpaEU9kq6bMvNeC2aG7arYvTHYsA== + version "1.4.96" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz#a97438a01d5db1460343fea4a344960b09330990" + integrity sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw== emittery@^0.8.1: version "0.8.1" @@ -4659,9 +4657,9 @@ eslint@^7.9.0: v8-compile-cache "^2.0.3" eslint@^8.2.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.11.0.tgz#88b91cfba1356fc10bb9eb592958457dfe09fb37" - integrity sha512-/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA== + version "8.12.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.12.0.tgz#c7a5bd1cfa09079aae64c9076c07eada66a46e8e" + integrity sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q== dependencies: "@eslint/eslintrc" "^1.2.1" "@humanwhocodes/config-array" "^0.9.2" @@ -5370,9 +5368,9 @@ html-encoding-sniffer@^2.0.1: whatwg-encoding "^1.0.5" html-entities@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.2.tgz#760b404685cb1d794e4f4b744332e3b00dcfe488" - integrity sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ== + version "2.3.3" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.3.tgz#117d7626bece327fc8baace8868fa6f5ef856e46" + integrity sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA== html-escaper@^2.0.0: version "2.0.2" @@ -6843,12 +6841,12 @@ methods@~1.1.2: integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: - version "4.0.4" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" - integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: - braces "^3.0.1" - picomatch "^2.2.3" + braces "^3.0.2" + picomatch "^2.3.1" mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" @@ -6973,9 +6971,9 @@ mz@^2.4.0: thenify-all "^1.0.0" nanoid@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" - integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + version "3.3.2" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557" + integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA== natural-compare@^1.4.0: version "1.4.0" @@ -7017,7 +7015,7 @@ node-fetch@^2.6.7: dependencies: whatwg-url "^5.0.0" -node-forge@^1.2.0: +node-forge@^1: version "1.3.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.0.tgz#37a874ea723855f37db091e6c186e5b67a01d4b2" integrity sha512-08ARB91bUi6zNKzVmaj3QO7cr397uiDT2nJ63cHjyNtCTWIgvS47j3eT0WfzUwS9+6Z5YshRaoasFkXCKrIYbA== @@ -7424,7 +7422,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -7776,9 +7774,9 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" "prettier@^1.18.2 || ^2.0.0", prettier@^2.0.0, prettier@^2.2.1: - version "2.6.0" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.0.tgz#12f8f504c4d8ddb76475f441337542fa799207d4" - integrity sha512-m2FgJibYrBGGgQXNzfd0PuDGShJgRavjUoRCw1mZERIWVSXF0iLzLm+aOqTAbLnC3n6JzUhAA8uZnFVghHJ86A== + version "2.6.1" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.1.tgz#d472797e0d7461605c1609808e27b80c0f9cfe17" + integrity sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A== pretty-bytes@^5.3.0, pretty-bytes@^5.4.1: version "5.6.0" @@ -8393,11 +8391,11 @@ select-hose@^2.0.0: integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= selfsigned@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.0.tgz#e927cd5377cbb0a1075302cff8df1042cc2bce5b" - integrity sha512-cUdFiCbKoa1mZ6osuJs2uDHrs0k0oprsKveFiiaBKCNq3SYyb5gs2HxhQyDNLCmL51ZZThqi4YNDpCK6GOP1iQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-2.0.1.tgz#8b2df7fa56bf014d19b6007655fff209c0ef0a56" + integrity sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ== dependencies: - node-forge "^1.2.0" + node-forge "^1" "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: version "5.7.1" @@ -9113,11 +9111,6 @@ thunky@^1.0.2: resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - tippy.js@^6.2.3, tippy.js@^6.3.7: version "6.3.7" resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c" @@ -9195,9 +9188,9 @@ ts-invariant@^0.9.4: tslib "^2.1.0" ts-jest@27: - version "27.1.3" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.3.tgz#1f723e7e74027c4da92c0ffbd73287e8af2b2957" - integrity sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA== + version "27.1.4" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-27.1.4.tgz#84d42cf0f4e7157a52e7c64b1492c46330943e00" + integrity sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" @@ -9896,25 +9889,25 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -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-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-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" @@ -9938,132 +9931,132 @@ 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-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-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-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-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-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-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-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-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-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-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-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-webpack-plugin@^6.1.0: - 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== + 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" wrap-ansi@^3.0.1: version "3.0.1" diff --git a/mix.lock b/mix.lock index c6f0384eb..739bfc2de 100644 --- a/mix.lock +++ b/mix.lock @@ -25,7 +25,7 @@ "decimal": {:hex, :decimal, "2.0.0", "a78296e617b0f5dd4c6caf57c714431347912ffb1d0842e998e9792b5642d697", [:mix], [], "hexpm", "34666e9c55dea81013e77d9d87370fe6cb6291d1ef32f46a1600230b1d44f577"}, "dialyxir": {:hex, :dialyxir, "1.1.0", "c5aab0d6e71e5522e77beff7ba9e08f8e02bad90dfbeffae60eaf0cb47e29488", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "07ea8e49c45f15264ebe6d5b93799d4dd56a44036cf42d0ad9c960bc266c0b9a"}, "doctor": {:hex, :doctor, "0.18.0", "114934c1740239953208a39db617699b7e2660770e81129d7f95cdf7837ab766", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "829c88c365f72c0666e443ea670ffb6f180de7b90c23d536edabdd8c722b88f4"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.24", "344f8d2a558691d3fcdef3f9400157d7c4b3b8e58ee5063297e9ae593e8326d9", [:mix], [], "hexpm", "1f6451b0116dd270449c8f5b30289940ee9c0a39154c783283a08e55af82ea34"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.25", "2024618731c55ebfcc5439d756852ec4e85978a39d0d58593763924d9a15916f", [:mix], [], "hexpm", "56749c5e1c59447f7b7a23ddb235e4b3defe276afc220a6227237f3efe83f51e"}, "eblurhash": {:hex, :eblurhash, "1.2.2", "7da4255aaea984b31bb71155f673257353b0e0554d0d30dcf859547e74602582", [:rebar3], [], "hexpm", "8c20ca00904de023a835a9dcb7b7762fed32264c85a80c3cafa85288e405044c"}, "ecto": {:hex, :ecto, "3.7.2", "44c034f88e1980754983cc4400585970b4206841f6f3780967a65a9150ef09a8", [:mix], [{:decimal, "~> 1.6 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: true]}, {:telemetry, "~> 0.4 or ~> 1.0", [hex: :telemetry, repo: "hexpm", optional: false]}], "hexpm", "a600da5772d1c31abbf06f3e4a1ffb150e74ed3e2aa92ff3cee95901657a874e"}, "ecto_autoslug_field": {:hex, :ecto_autoslug_field, "3.0.0", "37fbc2f07e6691136afff246f2cf5b159ad395b665a55d06db918975fd2397db", [:mix], [{:ecto, ">= 3.7.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:slugger, ">= 0.3.0", [hex: :slugger, repo: "hexpm", optional: false]}], "hexpm", "8ec252c7cf85f13132062f56a484d6a0ef1f981f7be9ce4ad7e9546dd8c0cc0f"}, @@ -55,7 +55,7 @@ "fast_sanitize": {:hex, :fast_sanitize, "0.2.3", "67b93dfb34e302bef49fec3aaab74951e0f0602fd9fa99085987af05bd91c7a5", [:mix], [{:fast_html, "~> 2.0", [hex: :fast_html, repo: "hexpm", optional: false]}, {:plug, "~> 1.8", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "e8ad286d10d0386e15d67d0ee125245ebcfbc7d7290b08712ba9013c8c5e56e2"}, "file_info": {:hex, :file_info, "0.0.4", "2e0e77f211e833f38ead22cb29ce53761d457d80b3ffe0ffe0eb93880b0963b2", [:mix], [{:mimetype_parser, "~> 0.1.2", [hex: :mimetype_parser, repo: "hexpm", optional: false]}], "hexpm", "50e7ad01c2c8b9339010675fe4dc4a113b8d6ca7eddce24d1d74fd0e762781a5"}, "file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"}, - "floki": {:hex, :floki, "0.32.0", "f915dc15258bc997d49be1f5ef7d3992f8834d6f5695270acad17b41f5bcc8e2", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "1c5a91cae1fd8931c26a4826b5e2372c284813904c8bacb468b5de39c7ececbd"}, + "floki": {:hex, :floki, "0.32.1", "dfe3b8db3b793939c264e6f785bca01753d17318d144bd44b407fb3493acaa87", [:mix], [{:html_entities, "~> 0.5.0", [hex: :html_entities, repo: "hexpm", optional: false]}], "hexpm", "d4b91c713e4a784a3f7b1e3cc016eefc619f6b1c3898464222867cafd3c681a3"}, "gen_smtp": {:hex, :gen_smtp, "1.1.1", "bf9303c31735100631b1d708d629e4c65944319d1143b5c9952054f4a1311d85", [:rebar3], [{:hut, "1.3.0", [hex: :hut, repo: "hexpm", optional: false]}, {:ranch, ">= 1.7.0", [hex: :ranch, repo: "hexpm", optional: false]}], "hexpm", "51bc50cc017efd4a4248cbc39ea30fb60efa7d4a49688986fafad84434ff9ab7"}, "geo": {:hex, :geo, "3.4.3", "0ddf3f681993d32c397e5ef346e7b4b6f36f39ed138502429832fa4000ebb9d5", [:mix], [{:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}], "hexpm", "e23f2892e5437ec8b063cee1beccec89c58fd841ae11133304700235feb25552"}, "geo_postgis": {:hex, :geo_postgis, "3.4.2", "5a3462b2a2271d6949ba355ceed0212dc89ecfd6d0073ff1dd8fd53de78af867", [:mix], [{:geo, "~> 3.4", [hex: :geo, repo: "hexpm", optional: false]}, {:jason, "~> 1.2", [hex: :jason, repo: "hexpm", optional: true]}, {:poison, "~> 2.2 or ~> 3.0 or ~> 4.0", [hex: :poison, repo: "hexpm", optional: true]}, {:postgrex, ">= 0.0.0", [hex: :postgrex, repo: "hexpm", optional: false]}], "hexpm", "48d8c9f97f03805546db19217c42a57e972a3eb69fabaa3d11740285d25aaad4"}, @@ -63,7 +63,7 @@ "geolix": {:hex, :geolix, "2.0.0", "7e65764bedfc98d08a3ddb24c417657c9d438eff163280b45fbb7de289626acd", [:mix], [], "hexpm", "8742bf588ed0bb7def2c443204d09d355990846c6efdff96ded66aac24c301df"}, "geolix_adapter_mmdb2": {:hex, :geolix_adapter_mmdb2, "0.6.0", "6ab9dbf6ea395817aa1fd2597be25d0dda1853c7f664e62716e47728d18bc4f9", [:mix], [{:geolix, "~> 2.0", [hex: :geolix, repo: "hexpm", optional: false]}, {:mmdb2_decoder, "~> 3.0", [hex: :mmdb2_decoder, repo: "hexpm", optional: false]}], "hexpm", "06ff962feae8a310cffdf86b74bfcda6e2d0dccb439bb1f62df2b657b1c0269b"}, "gettext": {:hex, :gettext, "0.19.1", "564953fd21f29358e68b91634799d9d26989f8d039d7512622efb3c3b1c97892", [:mix], [], "hexpm", "10c656c0912b8299adba9b061c06947511e3f109ab0d18b44a866a4498e77222"}, - "guardian": {:hex, :guardian, "2.2.2", "d881b2a9e0b1597266cef067091ef14fd7a188356b8fbe2950d83df1b5b5cc86", [:mix], [{:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "8bcbc15c3e5eecc1d575bcc0049919875b477d9c39b6b632c4ba70754cc1e178"}, + "guardian": {:hex, :guardian, "2.2.3", "23fca9ed3583f3d517d17a33b179814167d987e7127cf6a30a191945e2ae7d6b", [:mix], [{:jose, "~> 1.8", [hex: :jose, repo: "hexpm", optional: false]}, {:plug, "~> 1.3.3 or ~> 1.4", [hex: :plug, repo: "hexpm", optional: true]}], "hexpm", "048bb7bafecd692208b01b4c0a919dd6865937a631332a6236674b9b4e898c63"}, "guardian_db": {:hex, :guardian_db, "2.1.0", "ec95a9d99cdd1e550555d09a7bb4a340d8887aad0697f594590c2fd74be02426", [:mix], [{:ecto, "~> 3.0", [hex: :ecto, repo: "hexpm", optional: false]}, {:ecto_sql, "~> 3.1", [hex: :ecto_sql, repo: "hexpm", optional: false]}, {:guardian, "~> 1.0 or ~> 2.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:postgrex, "~> 0.13", [hex: :postgrex, repo: "hexpm", optional: true]}], "hexpm", "f8e7d543ac92c395f3a7fd5acbe6829faeade57d688f7562e2f0fca8f94a0d70"}, "guardian_phoenix": {:hex, :guardian_phoenix, "2.0.1", "89a817265af09a6ddf7cb1e77f17ffca90cea2db10ff888375ef34502b2731b1", [:mix], [{:guardian, "~> 2.0", [hex: :guardian, repo: "hexpm", optional: false]}, {:phoenix, "~> 1.3", [hex: :phoenix, repo: "hexpm", optional: false]}], "hexpm", "21f439246715192b231f228680465d1ed5fbdf01555a4a3b17165532f5f9a08c"}, "hackney": {:hex, :hackney, "1.18.1", "f48bf88f521f2a229fc7bae88cf4f85adc9cd9bcf23b5dc8eb6a1788c662c4f6", [:rebar3], [{:certifi, "~>2.9.0", [hex: :certifi, repo: "hexpm", optional: false]}, {:idna, "~>6.1.0", [hex: :idna, repo: "hexpm", optional: false]}, {:metrics, "~>1.0.0", [hex: :metrics, repo: "hexpm", optional: false]}, {:mimerl, "~>1.1", [hex: :mimerl, repo: "hexpm", optional: false]}, {:parse_trans, "3.3.1", [hex: :parse_trans, repo: "hexpm", optional: false]}, {:ssl_verify_fun, "~>1.1.0", [hex: :ssl_verify_fun, repo: "hexpm", optional: false]}, {:unicode_util_compat, "~>0.7.0", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "a4ecdaff44297e9b5894ae499e9a070ea1888c84afdd1fd9b7b2bc384950128e"}, From 85f8450a858460293fe0a564cb5fa8d24befe737 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 28 Mar 2022 11:22:40 +0200 Subject: [PATCH 3/8] Debounce tag input autocomplete Signed-off-by: Thomas Citharel --- js/src/components/Event/TagInput.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/js/src/components/Event/TagInput.vue b/js/src/components/Event/TagInput.vue index ec4606fc4..9d4a6671c 100644 --- a/js/src/components/Event/TagInput.vue +++ b/js/src/components/Event/TagInput.vue @@ -21,7 +21,7 @@ maxlength="20" maxtags="10" :placeholder="$t('Eg: Stockholm, Dance, Chess…')" - @typing="getFilteredTags" + @typing="debouncedGetFilteredTags" :id="id" dir="auto" > @@ -33,6 +33,7 @@ import { Component, Prop, Vue } from "vue-property-decorator"; import differenceBy from "lodash/differenceBy"; import { ITag } from "../../types/tag.model"; import { FILTER_TAGS } from "@/graphql/tags"; +import debounce from "lodash/debounce"; @Component({ apollo: { @@ -63,6 +64,12 @@ export default class TagInput extends Vue { return `tag-input-${TagInput.componentId}`; } + data(): Record { + return { + debouncedGetFilteredTags: debounce(this.getFilteredTags, 200), + }; + } + async getFilteredTags(text: string): Promise { this.text = text; await this.$apollo.queries.tags.refetch(); From 91ed13d5c219d47a31759eaa2d8793e0ee09f77a Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 28 Mar 2022 13:56:37 +0200 Subject: [PATCH 4/8] Fix first-day-of-week prop in event edition Signed-off-by: Thomas Citharel --- js/src/views/Event/Edit.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/src/views/Event/Edit.vue b/js/src/views/Event/Edit.vue index 3f2295d49..efb20bf29 100644 --- a/js/src/views/Event/Edit.vue +++ b/js/src/views/Event/Edit.vue @@ -49,11 +49,11 @@ horizontal-time-picker editable :tz-offset="tzOffset(beginsOn)" + :first-day-of-week="firstDayOfWeek" :datepicker="{ id: 'begins-on-field', 'aria-next-label': $t('Next month'), 'aria-previous-label': $t('Previous month'), - 'first-day-of-week': firstDayOfWeek, }" > @@ -70,11 +70,11 @@ :min-datetime="beginsOn" :tz-offset="tzOffset(endsOn)" editable + :first-day-of-week="firstDayOfWeek" :datepicker="{ id: 'ends-on-field', 'aria-next-label': $t('Next month'), 'aria-previous-label': $t('Previous month'), - 'first-day-of-week': firstDayOfWeek, }" > From f5bdedf789dafcea6a5e9a39cea280ca0061050c Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 28 Mar 2022 17:42:59 +0200 Subject: [PATCH 5/8] Introduce event categories Closes #1056 Signed-off-by: Thomas Citharel --- js/src/components/Tag.vue | 3 +- js/src/graphql/event.ts | 5 +- js/src/graphql/search.ts | 2 + js/src/i18n/en_US.json | 20 +++- js/src/i18n/fr_FR.json | 20 +++- js/src/types/enums.ts | 8 -- js/src/types/event.model.ts | 6 + js/src/utils/categories.ts | 68 +++++++++++ js/src/views/Event/Edit.vue | 42 ++++--- js/src/views/Event/Event.vue | 19 ++- js/src/views/Search.vue | 94 +++++++++++---- lib/graphql/schema.ex | 7 +- lib/graphql/schema/custom/enum_types.ex | 109 ++++++++++++++++++ lib/graphql/schema/event.ex | 10 +- lib/graphql/schema/search.ex | 1 + lib/mobilizon/events/events.ex | 16 +-- mix.exs | 1 - ...640_set_all_events_category_to_meeting.exs | 11 ++ test/graphql/resolvers/event_test.exs | 2 +- test/graphql/resolvers/participant_test.exs | 2 +- test/mobilizon/events/events_test.exs | 2 +- 21 files changed, 371 insertions(+), 77 deletions(-) create mode 100644 js/src/utils/categories.ts create mode 100644 lib/graphql/schema/custom/enum_types.ex create mode 100644 priv/repo/migrations/20220328153640_set_all_events_category_to_meeting.exs diff --git a/js/src/components/Tag.vue b/js/src/components/Tag.vue index 64eff4b5d..2fcf28699 100644 --- a/js/src/components/Tag.vue +++ b/js/src/components/Tag.vue @@ -17,7 +17,8 @@ span.tag { background: $purple-3; color: $violet-2; text-transform: uppercase; - &::before { + + &:not(.category)::before { content: "#"; } } diff --git a/js/src/graphql/event.ts b/js/src/graphql/event.ts index d2dcc4b3b..605d9ddc3 100644 --- a/js/src/graphql/event.ts +++ b/js/src/graphql/event.ts @@ -23,6 +23,7 @@ const FULL_EVENT_FRAGMENT = gql` joinOptions draft language + category picture { id url @@ -203,7 +204,7 @@ export const CREATE_EVENT = gql` $picture: MediaInput $onlineAddress: String $phoneAddress: String - $category: String + $category: EventCategory $physicalAddress: AddressInput $options: EventOptionsInput $contacts: [Contact] @@ -253,7 +254,7 @@ export const EDIT_EVENT = gql` $phoneAddress: String $organizerActorId: ID $attributedToId: ID - $category: String + $category: EventCategory $physicalAddress: AddressInput $options: EventOptionsInput $contacts: [Contact] diff --git a/js/src/graphql/search.ts b/js/src/graphql/search.ts index 9f4462d3e..22e2d9a33 100644 --- a/js/src/graphql/search.ts +++ b/js/src/graphql/search.ts @@ -11,6 +11,7 @@ export const SEARCH_EVENTS_AND_GROUPS = gql` $tags: String $term: String $type: EventType + $category: String $beginsOn: DateTime $endsOn: DateTime $eventPage: Int @@ -23,6 +24,7 @@ export const SEARCH_EVENTS_AND_GROUPS = gql` tags: $tags term: $term type: $type + category: $category beginsOn: $beginsOn endsOn: $endsOn page: $eventPage diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index 4399aa369..236522afd 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -1306,5 +1306,23 @@ "IP Address": "IP Address", "Last seen on": "Last seen on", "No user matches the filters": "No user matches the filters", - "Reset filters": "Reset filters" + "Reset filters": "Reset filters", + "Arts": "Arts", + "Book Clubs": "Book Clubs", + "Business": "Business", + "Causes": "Causes", + "Comedy": "Comedy", + "Crafts": "Crafts", + "Food & Drink": "Food & Drink", + "Health": "Health", + "Music": "Music", + "Auto, Boat & Air": "Auto, Boat & Air", + "Community": "Community", + "Family & Education": "Family & Education", + "Fashion & Beauty": "Fashion & Beauty", + "Film & Media": "Film & Media", + "Games": "Games", + "Category": "Category", + "Select a category": "Select a category", + "Any category": "Any category" } diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index 839266cbf..b3fc7b805 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -1305,5 +1305,23 @@ "{timezoneLongName} ({timezoneShortName})": "{timezoneLongName} ({timezoneShortName})", "{title} ({count} todos)": "{title} ({count} todos)", "{username} was invited to {group}": "{username} a été invité à {group}", - "© The OpenStreetMap Contributors": "© Les Contributeur⋅ices OpenStreetMap" + "© The OpenStreetMap Contributors": "© Les Contributeur⋅ices OpenStreetMap", + "Arts": "Arts", + "Book Clubs": "Clubs de lecture", + "Business": "Entreprises", + "Causes": "Causes", + "Comedy": "Comédie", + "Crafts": "Artisanat", + "Food & Drink": "Alimentation et boissons", + "Health": "Santé", + "Music": "Musique", + "Auto, Boat & Air": "Automobile, bateaux et aéronautique", + "Community": "Communauté", + "Family & Education": "Famille et éducation", + "Fashion & Beauty": "Mode et beauté", + "Film & Media": "Films et médias", + "Games": "Jeux", + "Category": "Catégorie", + "Select a category": "Choisissez une categorie", + "Any category": "N'importe quelle catégorie" } diff --git a/js/src/types/enums.ts b/js/src/types/enums.ts index 2f05bd0d0..1061d196b 100644 --- a/js/src/types/enums.ts +++ b/js/src/types/enums.ts @@ -72,14 +72,6 @@ export enum EventVisibilityJoinOptions { LIMITED = "LIMITED", } -export enum Category { - BUSINESS = "business", - CONFERENCE = "conference", - BIRTHDAY = "birthday", - DEMONSTRATION = "demonstration", - MEETING = "meeting", -} - export enum LoginErrorCode { NEED_TO_LOGIN = "need_to_login", } diff --git a/js/src/types/event.model.ts b/js/src/types/event.model.ts index e091af117..e06703665 100644 --- a/js/src/types/event.model.ts +++ b/js/src/types/event.model.ts @@ -53,6 +53,7 @@ interface IEventEditJSON { options: IEventOptions; contacts: { id?: string }[]; metadata: IEventMetadata[]; + category: string; } export interface IEvent { @@ -91,6 +92,7 @@ export interface IEvent { metadata: IEventMetadata[]; contacts: IActor[]; language: string; + category: string; toEditJSON(): IEventEditJSON; } @@ -166,6 +168,8 @@ export class EventModel implements IEvent { metadata: IEventMetadata[] = []; + category = "MEETING"; + constructor(hash?: IEvent | IEditableEvent) { if (!hash) return; @@ -214,6 +218,7 @@ export class EventModel implements IEvent { this.tags = hash.tags; this.metadata = hash.metadata; this.language = hash.language; + this.category = hash.category; if (hash.options) this.options = hash.options; } @@ -240,6 +245,7 @@ export function toEditJSON(event: IEditableEvent): IEventEditJSON { beginsOn: event.beginsOn ? event.beginsOn.toISOString() : null, endsOn: event.endsOn ? event.endsOn.toISOString() : null, status: event.status, + category: event.category, visibility: event.visibility, joinOptions: event.joinOptions, draft: event.draft, diff --git a/js/src/utils/categories.ts b/js/src/utils/categories.ts new file mode 100644 index 000000000..981659c4c --- /dev/null +++ b/js/src/utils/categories.ts @@ -0,0 +1,68 @@ +import { i18n } from "@/utils/i18n"; + +export const eventCategories = [ + { + id: "ARTS", + label: i18n.t("Arts"), + icon: "palette", + }, + { + id: "BOOK_CLUBS", + label: i18n.t("Book Clubs"), + icon: "favourite-book", + }, + { + id: "BUSINESS", + label: i18n.t("Business"), + }, + { + id: "CAUSES", + label: i18n.t("Causes"), + }, + { + id: "COMEDY", + label: i18n.t("Comedy"), + }, + { + id: "CRAFTS", + label: i18n.t("Crafts"), + }, + { + id: "FOOD_DRINK", + label: i18n.t("Food & Drink"), + }, + { + id: "HEALTH", + label: i18n.t("Health"), + }, + { + id: "MUSIC", + label: i18n.t("Music"), + }, + { + id: "AUTO_BOAT_AIR", + label: i18n.t("Auto, Boat & Air"), + }, + { + id: "COMMUNITY", + label: i18n.t("Community"), + }, + { + id: "FAMILY_EDUCATION", + label: i18n.t("Family & Education"), + }, + { + id: "FASHION_BEAUTY", + label: i18n.t("Fashion & Beauty"), + }, + { + id: "FILM_MEDIA", + label: i18n.t("Film & Media"), + }, + { + id: "GAMES", + label: i18n.t("Games"), + }, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore +].sort(({ label: label1 }, { label: label2 }) => label1.localeCompare(label2)); diff --git a/js/src/views/Event/Edit.vue b/js/src/views/Event/Edit.vue index efb20bf29..9a3e0c0dd 100644 --- a/js/src/views/Event/Edit.vue +++ b/js/src/views/Event/Edit.vue @@ -32,7 +32,28 @@ /> - +
+ + + + + + +
-

+

+ {{ + eventCategory + }} { + return eventCategory.id === this.event?.category; + })?.label as string; + } } diff --git a/lib/graphql/schema.ex b/lib/graphql/schema.ex index f8b143d05..e89641b4a 100644 --- a/lib/graphql/schema.ex +++ b/lib/graphql/schema.ex @@ -22,12 +22,15 @@ defmodule Mobilizon.GraphQL.Schema do alias Mobilizon.Events.{Event, Participant} alias Mobilizon.GraphQL.Middleware.{CurrentActorProvider, ErrorHandler} alias Mobilizon.GraphQL.Schema + alias Mobilizon.GraphQL.Schema.Custom alias Mobilizon.Storage.Repo + @pipeline_modifier Custom.EnumTypes + import_types(Absinthe.Type.Custom) import_types(Absinthe.Plug.Types) - import_types(Schema.Custom.UUID) - import_types(Schema.Custom.Point) + import_types(Custom.UUID) + import_types(Custom.Point) import_types(Schema.ActivityType) import_types(Schema.UserType) diff --git a/lib/graphql/schema/custom/enum_types.ex b/lib/graphql/schema/custom/enum_types.ex new file mode 100644 index 000000000..781449ec7 --- /dev/null +++ b/lib/graphql/schema/custom/enum_types.ex @@ -0,0 +1,109 @@ +defmodule Mobilizon.GraphQL.Schema.Custom.EnumTypes do + alias Absinthe.Blueprint.Schema + alias Absinthe.Schema.Notation + alias Absinthe.{Blueprint, Pipeline, Phase} + + @categories [ + %{ + id: :arts, + label: "ARTS" + }, + %{ + id: :book_clubs, + label: "BOOK_CLUBS" + }, + %{ + id: :business, + label: "BUSINESS" + }, + %{ + id: :causes, + label: "CAUSES" + }, + %{ + id: :comedy, + label: "COMEDY" + }, + %{ + id: :crafts, + label: "CRAFTS" + }, + %{ + id: :food_drink, + label: "FOOD_DRINK" + }, + %{ + id: :health, + label: "HEALTH" + }, + %{ + id: :music, + label: "MUSIC" + }, + %{ + id: :auto_boat_air, + label: "AUTO_BOAT_AIR" + }, + %{ + id: :community, + label: "COMMUNITY" + }, + %{ + id: :family_education, + label: "FAMILY_EDUCATION" + }, + %{ + id: :fashion_beauty, + label: "FASHION_BEAUTY" + }, + %{ + id: :film_media, + label: "FILM_MEDIA" + }, + %{ + id: :games, + label: "GAMES" + }, + # Legacy default value + %{ + id: :meeting, + label: "MEETING" + } + ] + + def pipeline(pipeline) do + Pipeline.insert_after(pipeline, Phase.Schema.TypeImports, __MODULE__) + end + + def run(blueprint = %Blueprint{}, _) do + %{schema_definitions: [schema]} = blueprint + + new_enum = build_dynamic_enum() + + schema = + Map.update!(schema, :type_definitions, fn type_definitions -> + [new_enum | type_definitions] + end) + + {:ok, %{blueprint | schema_definitions: [schema]}} + end + + def build_dynamic_enum() do + %Schema.EnumTypeDefinition{ + name: "EventCategory", + identifier: :event_category, + module: __MODULE__, + __reference__: Notation.build_reference(__ENV__), + values: + Enum.map(@categories, fn %{id: id, label: label} -> + %Schema.EnumValueDefinition{ + identifier: id, + value: label, + name: label, + module: __MODULE__, + __reference__: Notation.build_reference(__ENV__) + } + end) + } + end +end diff --git a/lib/graphql/schema/event.ex b/lib/graphql/schema/event.ex index 503c6e7e9..9a4dd9ea3 100644 --- a/lib/graphql/schema/event.ex +++ b/lib/graphql/schema/event.ex @@ -66,7 +66,7 @@ defmodule Mobilizon.GraphQL.Schema.EventType do description: "The event's tags" ) - field(:category, :string, description: "The event's category") + field(:category, :event_category, description: "The event's category") field(:draft, :boolean, description: "Whether or not the event is a draft") @@ -399,7 +399,11 @@ defmodule Mobilizon.GraphQL.Schema.EventType do arg(:attributed_to_id, :id, description: "Who the event is attributed to ID (often a group)") - arg(:category, :string, default_value: "meeting", description: "The event's category") + arg(:category, :event_category, + default_value: "MEETING", + description: "The event's category" + ) + arg(:physical_address, :address_input, description: "The event's physical address") arg(:options, :event_options_input, default_value: %{}, description: "The event options") arg(:metadata, list_of(:event_metadata_input), description: "The event metadata") @@ -448,7 +452,7 @@ defmodule Mobilizon.GraphQL.Schema.EventType do arg(:attributed_to_id, :id, description: "Who the event is attributed to ID (often a group)") - arg(:category, :string, description: "The event's category") + arg(:category, :event_category, description: "The event's category") arg(:physical_address, :address_input, description: "The event's physical address") arg(:options, :event_options_input, description: "The event options") arg(:metadata, list_of(:event_metadata_input), description: "The event metadata") diff --git a/lib/graphql/schema/search.ex b/lib/graphql/schema/search.ex index db0c7be58..2da1d8fa4 100644 --- a/lib/graphql/schema/search.ex +++ b/lib/graphql/schema/search.ex @@ -93,6 +93,7 @@ defmodule Mobilizon.GraphQL.Schema.SearchType do arg(:tags, :string, description: "A comma-separated string listing the tags") arg(:location, :string, description: "A geohash for coordinates") arg(:type, :event_type, description: "Whether the event is online or in person") + arg(:category, :string, description: "The category for the event") arg(:radius, :float, default_value: 50, diff --git a/lib/mobilizon/events/events.ex b/lib/mobilizon/events/events.ex index 72656e1d7..6d4b1a50f 100644 --- a/lib/mobilizon/events/events.ex +++ b/lib/mobilizon/events/events.ex @@ -54,14 +54,6 @@ defmodule Mobilizon.Events do :cancelled ]) - defenum(EventCategory, :event_category, [ - :business, - :conference, - :birthday, - :demonstration, - :meeting - ]) - defenum(ParticipantRole, :participant_role, [ :not_approved, :not_confirmed, @@ -536,6 +528,7 @@ defmodule Mobilizon.Events do |> events_for_search_query() |> events_for_begins_on(args) |> events_for_ends_on(args) + |> events_for_category(args) |> events_for_tags(args) |> events_for_location(args) |> filter_online(args) @@ -1313,6 +1306,13 @@ defmodule Mobilizon.Events do end end + @spec events_for_category(Ecto.Queryable.t(), map()) :: Ecto.Query.t() + defp events_for_category(query, %{category: category}) when is_valid_string(category) do + where(query, [q], q.category == ^category) + end + + defp events_for_category(query, _args), do: query + @spec events_for_tags(Ecto.Queryable.t(), map()) :: Ecto.Query.t() defp events_for_tags(query, %{tags: tags}) when is_valid_string(tags) do query diff --git a/mix.exs b/mix.exs index 20375bb1d..882bd7b49 100644 --- a/mix.exs +++ b/mix.exs @@ -299,7 +299,6 @@ defmodule Mobilizon.Mixfile do Mobilizon.Events.Tag, Mobilizon.Events.TagRelations, Mobilizon.Events.Track, - Mobilizon.Events.EventCategory, Mobilizon.Events.EventStatus, Mobilizon.Events.EventVisibility, Mobilizon.Events.JoinOptions, diff --git a/priv/repo/migrations/20220328153640_set_all_events_category_to_meeting.exs b/priv/repo/migrations/20220328153640_set_all_events_category_to_meeting.exs new file mode 100644 index 000000000..b51fa3b9e --- /dev/null +++ b/priv/repo/migrations/20220328153640_set_all_events_category_to_meeting.exs @@ -0,0 +1,11 @@ +defmodule Mobilizon.Storage.Repo.Migrations.SetAllEventsCategoryToMeeting do + use Ecto.Migration + + def up do + Ecto.Migration.execute("UPDATE events SET category = 'MEETING'") + end + + def down do + Ecto.Migration.execute("UPDATE events SET category = 'meeting' WHERE category = 'MEETING'") + end +end diff --git a/test/graphql/resolvers/event_test.exs b/test/graphql/resolvers/event_test.exs index 23b1bb8ec..79cdc16ae 100644 --- a/test/graphql/resolvers/event_test.exs +++ b/test/graphql/resolvers/event_test.exs @@ -21,7 +21,7 @@ defmodule Mobilizon.Web.Resolvers.EventTest do begins_on: DateTime.utc_now() |> DateTime.truncate(:second), uuid: "b5126423-f1af-43e4-a923-002a03003ba4", url: "some url", - category: "meeting" + category: "MEETING" } @find_event_query """ diff --git a/test/graphql/resolvers/participant_test.exs b/test/graphql/resolvers/participant_test.exs index 80d3c7b06..52194029f 100644 --- a/test/graphql/resolvers/participant_test.exs +++ b/test/graphql/resolvers/participant_test.exs @@ -20,7 +20,7 @@ defmodule Mobilizon.GraphQL.Resolvers.ParticipantTest do |> DateTime.truncate(:second), uuid: "b5126423-f1af-43e4-a923-002a03003ba4", url: "some url", - category: "meeting", + category: "MEETING", options: %{} } diff --git a/test/mobilizon/events/events_test.exs b/test/mobilizon/events/events_test.exs index efc0ae550..1e76249e0 100644 --- a/test/mobilizon/events/events_test.exs +++ b/test/mobilizon/events/events_test.exs @@ -17,7 +17,7 @@ defmodule Mobilizon.EventsTest do title: "some title", url: "some url", uuid: "b5126423-f1af-43e4-a923-002a03003ba4", - category: "meeting" + category: "MEETING" } describe "list_events/5" do From 368911b58ed9538cb2d010768eddd320b588e751 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 28 Mar 2022 20:02:43 +0200 Subject: [PATCH 6/8] Allow to register custom categories Signed-off-by: Thomas Citharel --- js/src/graphql/config.ts | 8 + js/src/i18n/en_US.json | 15 - js/src/i18n/fr_FR.json | 15 - js/src/types/config.model.ts | 1 + js/src/utils/categories.ts | 68 --- js/src/views/Event/Edit.vue | 6 +- js/src/views/Event/Event.vue | 3 +- js/src/views/Search.vue | 5 +- lib/graphql/resolvers/config.ex | 12 + lib/graphql/schema/config.ex | 15 + lib/graphql/schema/custom/enum_types.ex | 86 +-- lib/mobilizon/events/categories.ex | 144 +++++ priv/gettext/ar/LC_MESSAGES/default.po | 150 +++++ priv/gettext/be/LC_MESSAGES/default.po | 150 +++++ priv/gettext/ca/LC_MESSAGES/default.po | 150 +++++ priv/gettext/cs/LC_MESSAGES/default.po | 150 +++++ priv/gettext/de/LC_MESSAGES/default.po | 150 +++++ priv/gettext/default.pot | 150 +++++ priv/gettext/en/LC_MESSAGES/default.po | 150 +++++ priv/gettext/es/LC_MESSAGES/default.po | 150 +++++ priv/gettext/fi/LC_MESSAGES/default.po | 150 +++++ priv/gettext/fr/LC_MESSAGES/default.po | 707 +++++++--------------- priv/gettext/fr/LC_MESSAGES/errors.po | 327 ++++++++-- priv/gettext/gd/LC_MESSAGES/default.po | 150 +++++ priv/gettext/gl/LC_MESSAGES/default.po | 150 +++++ priv/gettext/he/LC_MESSAGES/default.po | 150 +++++ priv/gettext/hr/LC_MESSAGES/default.po | 150 +++++ priv/gettext/hu/LC_MESSAGES/default.po | 150 +++++ priv/gettext/id/LC_MESSAGES/default.po | 150 +++++ priv/gettext/it/LC_MESSAGES/default.po | 150 +++++ priv/gettext/ja/LC_MESSAGES/default.po | 150 +++++ priv/gettext/nb_NO/LC_MESSAGES/default.po | 150 +++++ priv/gettext/nl/LC_MESSAGES/default.po | 150 +++++ priv/gettext/nn/LC_MESSAGES/default.po | 150 +++++ priv/gettext/oc/LC_MESSAGES/default.po | 150 +++++ priv/gettext/pl/LC_MESSAGES/default.po | 150 +++++ priv/gettext/pt/LC_MESSAGES/default.po | 150 +++++ priv/gettext/pt_BR/LC_MESSAGES/default.po | 150 +++++ priv/gettext/ru/LC_MESSAGES/default.po | 150 +++++ priv/gettext/sv/LC_MESSAGES/default.po | 150 +++++ 40 files changed, 4587 insertions(+), 725 deletions(-) delete mode 100644 js/src/utils/categories.ts create mode 100644 lib/mobilizon/events/categories.ex diff --git a/js/src/graphql/config.ts b/js/src/graphql/config.ts index 0fb5fa2ce..230da2134 100644 --- a/js/src/graphql/config.ts +++ b/js/src/graphql/config.ts @@ -11,6 +11,10 @@ export const CONFIG = gql` demoMode countryCode languages + eventCategories { + id + label + } anonymous { participation { allowed @@ -103,6 +107,10 @@ export const CONFIG_EDIT_EVENT = gql` features { groups } + eventCategories { + id + label + } anonymous { participation { allowed diff --git a/js/src/i18n/en_US.json b/js/src/i18n/en_US.json index 236522afd..49f4b8b11 100644 --- a/js/src/i18n/en_US.json +++ b/js/src/i18n/en_US.json @@ -1307,21 +1307,6 @@ "Last seen on": "Last seen on", "No user matches the filters": "No user matches the filters", "Reset filters": "Reset filters", - "Arts": "Arts", - "Book Clubs": "Book Clubs", - "Business": "Business", - "Causes": "Causes", - "Comedy": "Comedy", - "Crafts": "Crafts", - "Food & Drink": "Food & Drink", - "Health": "Health", - "Music": "Music", - "Auto, Boat & Air": "Auto, Boat & Air", - "Community": "Community", - "Family & Education": "Family & Education", - "Fashion & Beauty": "Fashion & Beauty", - "Film & Media": "Film & Media", - "Games": "Games", "Category": "Category", "Select a category": "Select a category", "Any category": "Any category" diff --git a/js/src/i18n/fr_FR.json b/js/src/i18n/fr_FR.json index b3fc7b805..6d4ae2839 100644 --- a/js/src/i18n/fr_FR.json +++ b/js/src/i18n/fr_FR.json @@ -1306,21 +1306,6 @@ "{title} ({count} todos)": "{title} ({count} todos)", "{username} was invited to {group}": "{username} a été invité à {group}", "© The OpenStreetMap Contributors": "© Les Contributeur⋅ices OpenStreetMap", - "Arts": "Arts", - "Book Clubs": "Clubs de lecture", - "Business": "Entreprises", - "Causes": "Causes", - "Comedy": "Comédie", - "Crafts": "Artisanat", - "Food & Drink": "Alimentation et boissons", - "Health": "Santé", - "Music": "Musique", - "Auto, Boat & Air": "Automobile, bateaux et aéronautique", - "Community": "Communauté", - "Family & Education": "Famille et éducation", - "Fashion & Beauty": "Mode et beauté", - "Film & Media": "Films et médias", - "Games": "Jeux", "Category": "Catégorie", "Select a category": "Choisissez une categorie", "Any category": "N'importe quelle catégorie" diff --git a/js/src/types/config.model.ts b/js/src/types/config.model.ts index 2c771db4f..b8474d4fa 100644 --- a/js/src/types/config.model.ts +++ b/js/src/types/config.model.ts @@ -17,6 +17,7 @@ export interface IConfig { registrationsAllowlist: boolean; demoMode: boolean; countryCode: string; + eventCategories: { id: string; label: string }[]; languages: string[]; location: { latitude: number; diff --git a/js/src/utils/categories.ts b/js/src/utils/categories.ts deleted file mode 100644 index 981659c4c..000000000 --- a/js/src/utils/categories.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { i18n } from "@/utils/i18n"; - -export const eventCategories = [ - { - id: "ARTS", - label: i18n.t("Arts"), - icon: "palette", - }, - { - id: "BOOK_CLUBS", - label: i18n.t("Book Clubs"), - icon: "favourite-book", - }, - { - id: "BUSINESS", - label: i18n.t("Business"), - }, - { - id: "CAUSES", - label: i18n.t("Causes"), - }, - { - id: "COMEDY", - label: i18n.t("Comedy"), - }, - { - id: "CRAFTS", - label: i18n.t("Crafts"), - }, - { - id: "FOOD_DRINK", - label: i18n.t("Food & Drink"), - }, - { - id: "HEALTH", - label: i18n.t("Health"), - }, - { - id: "MUSIC", - label: i18n.t("Music"), - }, - { - id: "AUTO_BOAT_AIR", - label: i18n.t("Auto, Boat & Air"), - }, - { - id: "COMMUNITY", - label: i18n.t("Community"), - }, - { - id: "FAMILY_EDUCATION", - label: i18n.t("Family & Education"), - }, - { - id: "FASHION_BEAUTY", - label: i18n.t("Fashion & Beauty"), - }, - { - id: "FILM_MEDIA", - label: i18n.t("Film & Media"), - }, - { - id: "GAMES", - label: i18n.t("Games"), - }, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore -].sort(({ label: label1 }, { label: label2 }) => label1.localeCompare(label2)); diff --git a/js/src/views/Event/Edit.vue b/js/src/views/Event/Edit.vue index 9a3e0c0dd..aebe18e02 100644 --- a/js/src/views/Event/Edit.vue +++ b/js/src/views/Event/Edit.vue @@ -34,6 +34,7 @@