From c8184e24976b81f39218a460bea3cc3ff2771063 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 16:34:12 +0000 Subject: [PATCH 01/38] Update babel monorepo to v7.19.3 (#23417) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 115 ++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 82 insertions(+), 33 deletions(-) diff --git a/yarn.lock b/yarn.lock index fdd558fe4f..e5593a2850 100644 --- a/yarn.lock +++ b/yarn.lock @@ -42,26 +42,26 @@ dependencies: "@babel/highlight" "^7.18.6" -"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.1.tgz#72d647b4ff6a4f82878d184613353af1dd0290f9" - integrity sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg== +"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.18.8", "@babel/compat-data@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.3.tgz#707b939793f867f5a73b2666e6d9a3396eb03151" + integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.1.tgz#c8fa615c5e88e272564ace3d42fbc8b17bfeb22b" - integrity sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" + integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== dependencies: "@ampproject/remapping" "^2.1.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.0" - "@babel/helper-compilation-targets" "^7.19.1" + "@babel/generator" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" "@babel/helper-module-transforms" "^7.19.0" "@babel/helpers" "^7.19.0" - "@babel/parser" "^7.19.1" + "@babel/parser" "^7.19.3" "@babel/template" "^7.18.10" - "@babel/traverse" "^7.19.1" - "@babel/types" "^7.19.0" + "@babel/traverse" "^7.19.3" + "@babel/types" "^7.19.3" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -84,7 +84,7 @@ dependencies: eslint-rule-composer "^0.3.0" -"@babel/generator@^7.18.10", "@babel/generator@^7.19.0", "@babel/generator@^7.7.2": +"@babel/generator@^7.18.10", "@babel/generator@^7.7.2": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== @@ -93,6 +93,15 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" +"@babel/generator@^7.19.0", "@babel/generator@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" + integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== + dependencies: + "@babel/types" "^7.19.3" + "@jridgewell/gen-mapping" "^0.3.2" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -108,12 +117,12 @@ "@babel/helper-explode-assignable-expression" "^7.18.6" "@babel/types" "^7.18.9" -"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.1": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz#7f630911d83b408b76fe584831c98e5395d7a17c" - integrity sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg== +"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca" + integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg== dependencies: - "@babel/compat-data" "^7.19.1" + "@babel/compat-data" "^7.19.3" "@babel/helper-validator-option" "^7.18.6" browserslist "^4.21.3" semver "^6.3.0" @@ -278,7 +287,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz#181f22d28ebe1b3857fa575f5c290b1aaf659b56" integrity sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw== -"@babel/helper-validator-identifier@^7.18.6": +"@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== @@ -316,11 +325,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.18.11", "@babel/parser@^7.19.1": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.11": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== +"@babel/parser@^7.18.10", "@babel/parser@^7.19.1", "@babel/parser@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" + integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== + "@babel/parser@^7.18.5": version "7.18.11" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" @@ -934,12 +948,12 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/preset-env@^7.12.1", "@babel/preset-env@^7.12.11": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.1.tgz#9f04c916f9c0205a48ebe5cc1be7768eb1983f67" - integrity sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA== + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.3.tgz#52cd19abaecb3f176a4ff9cc5e15b7bf06bec754" + integrity sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w== dependencies: - "@babel/compat-data" "^7.19.1" - "@babel/helper-compilation-targets" "^7.19.1" + "@babel/compat-data" "^7.19.3" + "@babel/helper-compilation-targets" "^7.19.3" "@babel/helper-plugin-utils" "^7.19.0" "@babel/helper-validator-option" "^7.18.6" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6" @@ -1007,7 +1021,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.18.10" "@babel/plugin-transform-unicode-regex" "^7.18.6" "@babel/preset-modules" "^0.1.5" - "@babel/types" "^7.19.0" + "@babel/types" "^7.19.3" babel-plugin-polyfill-corejs2 "^0.3.3" babel-plugin-polyfill-corejs3 "^0.6.0" babel-plugin-polyfill-regenerator "^0.4.1" @@ -1089,7 +1103,23 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.7.2": +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" + integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== + dependencies: + "@babel/code-frame" "^7.18.6" + "@babel/generator" "^7.19.3" + "@babel/helper-environment-visitor" "^7.18.9" + "@babel/helper-function-name" "^7.19.0" + "@babel/helper-hoist-variables" "^7.18.6" + "@babel/helper-split-export-declaration" "^7.18.6" + "@babel/parser" "^7.19.3" + "@babel/types" "^7.19.3" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/traverse@^7.7.2": version "7.19.1" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== @@ -1105,7 +1135,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== @@ -1123,6 +1153,15 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" +"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.4.4": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" + integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== + dependencies: + "@babel/helper-string-parser" "^7.18.10" + "@babel/helper-validator-identifier" "^7.19.1" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -3502,7 +3541,12 @@ caniuse-lite@^1.0.30001370: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001408.tgz#8f5e96bd9c5fd1a8c629e4415cdbaf556333a591" integrity sha512-DdUCktgMSM+1ndk9EFMZcavsGszV7zxV9O7MtOHniTa/iyAIwJCF0dFVBdU9SijJbfh29hC9bCs07wu8pjnGJQ== -caniuse-lite@^1.0.30001400, caniuse-lite@^1.0.30001407: +caniuse-lite@^1.0.30001400: + version "1.0.30001415" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001415.tgz#fd7ea96e9e94c181a7f56e7571efb43d92b860cc" + integrity sha512-ER+PfgCJUe8BqunLGWd/1EY4g8AzQcsDAVzdtMGKVtQEmKAwaFfU6vb7EAVIqTMYsqxBorYZi2+22Iouj/y7GQ== + +caniuse-lite@^1.0.30001407: version "1.0.30001409" resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== @@ -3957,9 +4001,9 @@ copy-descriptor@^0.1.0: integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== core-js-compat@^3.25.1: - version "3.25.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138" - integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ== + version "3.25.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.5.tgz#0016e8158c904f7b059486639e6e82116eafa7d9" + integrity sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA== dependencies: browserslist "^4.21.4" @@ -4831,11 +4875,16 @@ 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.202, electron-to-chromium@^1.4.251: +electron-to-chromium@^1.4.202: version "1.4.256" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.256.tgz#c735032f412505e8e0482f147a8ff10cfca45bf4" integrity sha512-x+JnqyluoJv8I0U9gVe+Sk2st8vF0CzMt78SXxuoWCooLLY2k5VerIBdpvG7ql6GKI4dzNnPjmqgDJ76EdaAKw== +electron-to-chromium@^1.4.251: + version "1.4.271" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.271.tgz#2d9f04f6a53c70e1bb1acfaae9c39f07ca40d290" + integrity sha512-BCPBtK07xR1/uY2HFDtl3wK2De66AW4MSiPlLrnPNxKC/Qhccxd59W73654S3y6Rb/k3hmuGJOBnhjfoutetXA== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" From ee5b20e12ee4f5ea74b37ce2a6f8f03885194046 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 17:57:36 +0100 Subject: [PATCH 02/38] Update jest monorepo to v29.1.1 (#23418) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 791 ++++++++++++++++++++++++++---------------------------- 1 file changed, 386 insertions(+), 405 deletions(-) diff --git a/yarn.lock b/yarn.lock index e5593a2850..5cc1b2f4e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -84,7 +84,7 @@ dependencies: eslint-rule-composer "^0.3.0" -"@babel/generator@^7.18.10", "@babel/generator@^7.7.2": +"@babel/generator@^7.18.10": version "7.19.0" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.0.tgz#785596c06425e59334df2ccee63ab166b738419a" integrity sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg== @@ -93,7 +93,7 @@ "@jridgewell/gen-mapping" "^0.3.2" jsesc "^2.5.1" -"@babel/generator@^7.19.0", "@babel/generator@^7.19.3": +"@babel/generator@^7.19.3", "@babel/generator@^7.7.2": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.3.tgz#d7f4d1300485b4547cb6f94b27d10d237b42bf59" integrity sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ== @@ -325,16 +325,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.11": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" - integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== - -"@babel/parser@^7.18.10", "@babel/parser@^7.19.1", "@babel/parser@^7.19.3": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.3": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.3.tgz#8dd36d17c53ff347f9e55c328710321b49479a9a" integrity sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ== +"@babel/parser@^7.18.11": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.1.tgz#6f6d6c2e621aad19a92544cc217ed13f1aac5b4c" + integrity sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A== + "@babel/parser@^7.18.5": version "7.18.11" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.11.tgz#68bb07ab3d380affa9a3f96728df07969645d2d9" @@ -1103,7 +1103,7 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3": +"@babel/traverse@^7.19.0", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.3", "@babel/traverse@^7.7.2": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.3.tgz#3a3c5348d4988ba60884e8494b0592b2f15a04b4" integrity sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ== @@ -1119,29 +1119,13 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/traverse@^7.7.2": - version "7.19.1" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.1.tgz#0fafe100a8c2a603b4718b1d9bf2568d1d193347" - integrity sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA== - dependencies: - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.19.0" - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" - "@babel/helper-hoist-variables" "^7.18.6" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.19.1" - "@babel/types" "^7.19.0" - debug "^4.1.0" - globals "^11.1.0" - -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.0.tgz#75f21d73d73dc0351f3368d28db73465f4814600" - integrity sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA== +"@babel/types@^7.0.0", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": + version "7.19.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" + integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== dependencies: "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.18.6" + "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" "@babel/types@^7.12.6": @@ -1153,15 +1137,6 @@ "@babel/helper-validator-identifier" "^7.18.6" to-fast-properties "^2.0.0" -"@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.3", "@babel/types@^7.4.4": - version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.3.tgz#fc420e6bbe54880bce6779ffaf315f5e43ec9624" - integrity sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw== - dependencies: - "@babel/helper-string-parser" "^7.18.10" - "@babel/helper-validator-identifier" "^7.19.1" - to-fast-properties "^2.0.0" - "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1232,28 +1207,28 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.3.tgz#a222ab87e399317a89db88a58eaec289519e807a" - integrity sha512-cGg0r+klVHSYnfE977S9wmpuQ9L+iYuYgL+5bPXiUlUynLLYunRxswEmhBzvrSKGof5AKiHuTTmUKAqRcDY9dg== +"@jest/console@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.1.2.tgz#0ae975a70004696f8320490fcaa1a4152f7b62e4" + integrity sha512-ujEBCcYs82BTmRxqfHMQggSlkUZP63AE5YEaTPj7eFyJOzukkTorstOUC7L6nE3w5SYadGVAnTsQ/ZjTGL0qYQ== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-message-util "^29.1.2" + jest-util "^29.1.2" slash "^3.0.0" -"@jest/core@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.3.tgz#ba22a9cbd0c7ba36e04292e2093c547bf53ec1fd" - integrity sha512-1d0hLbOrM1qQE3eP3DtakeMbKTcXiXP3afWxqz103xPyddS2NhnNghS7MaXx1dcDt4/6p4nlhmeILo2ofgi8cQ== +"@jest/core@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.1.2.tgz#e5ce7a71e7da45156a96fb5eeed11d18b67bd112" + integrity sha512-sCO2Va1gikvQU2ynDN8V4+6wB7iVrD2CvT0zaRst4rglf56yLly0NQ9nuRRAWFeimRf+tCdFsb1Vk1N9LrrMPA== dependencies: - "@jest/console" "^29.0.3" - "@jest/reporters" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.2" + "@jest/reporters" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" @@ -1261,32 +1236,32 @@ exit "^0.1.2" graceful-fs "^4.2.9" jest-changed-files "^29.0.0" - jest-config "^29.0.3" - jest-haste-map "^29.0.3" - jest-message-util "^29.0.3" + jest-config "^29.1.2" + jest-haste-map "^29.1.2" + jest-message-util "^29.1.2" jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-resolve-dependencies "^29.0.3" - jest-runner "^29.0.3" - jest-runtime "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" - jest-watcher "^29.0.3" + jest-resolve "^29.1.2" + jest-resolve-dependencies "^29.1.2" + jest-runner "^29.1.2" + jest-runtime "^29.1.2" + jest-snapshot "^29.1.2" + jest-util "^29.1.2" + jest-validate "^29.1.2" + jest-watcher "^29.1.2" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.1.2" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.3.tgz#7745ec30a954e828e8cc6df6a13280d3b51d8f35" - integrity sha512-iKl272NKxYNQNqXMQandAIwjhQaGw5uJfGXduu8dS9llHi8jV2ChWrtOAVPnMbaaoDhnI3wgUGNDvZgHeEJQCA== +"@jest/environment@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.1.2.tgz#bb51a43fce9f960ba9a48f0b5b556f30618ebc0a" + integrity sha512-rG7xZ2UeOfvOVzoLIJ0ZmvPl4tBEQ2n73CZJSlzUjPw4or1oSWC0s0Rk0ZX+pIBJ04aVr6hLWFn1DFtrnf8MhQ== dependencies: - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/fake-timers" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" - jest-mock "^29.0.3" + jest-mock "^29.1.2" "@jest/expect-utils@^28.1.3": version "28.1.3" @@ -1295,53 +1270,53 @@ dependencies: jest-get-type "^28.0.2" -"@jest/expect-utils@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.3.tgz#f5bb86f5565bf2dacfca31ccbd887684936045b2" - integrity sha512-i1xUkau7K/63MpdwiRqaxgZOjxYs4f0WMTGJnYwUKubsNRZSeQbLorS7+I4uXVF9KQ5r61BUPAUMZ7Lf66l64Q== +"@jest/expect-utils@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.1.2.tgz#66dbb514d38f7d21456bc774419c9ae5cca3f88d" + integrity sha512-4a48bhKfGj/KAH39u0ppzNTABXQ8QPccWAFUFobWBaEMSMp+sB31Z2fK/l47c4a/Mu1po2ffmfAIPxXbVTXdtg== dependencies: jest-get-type "^29.0.0" -"@jest/expect@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.3.tgz#9dc7c46354eeb7a348d73881fba6402f5fdb2c30" - integrity sha512-6W7K+fsI23FQ01H/BWccPyDZFrnU9QlzDcKOjrNVU5L8yUORFAJJIpmyxWPW70+X624KUNqzZwPThPMX28aXEQ== +"@jest/expect@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.1.2.tgz#334a86395f621f1ab63ad95b06a588b9114d7b7a" + integrity sha512-FXw/UmaZsyfRyvZw3M6POgSNqwmuOXJuzdNiMWW9LCYo0GRoRDhg+R5iq5higmRTHQY7hx32+j7WHwinRmoILQ== dependencies: - expect "^29.0.3" - jest-snapshot "^29.0.3" + expect "^29.1.2" + jest-snapshot "^29.1.2" -"@jest/fake-timers@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.3.tgz#ad5432639b715d45a86a75c47fd75019bc36b22c" - integrity sha512-tmbUIo03x0TdtcZCESQ0oQSakPCpo7+s6+9mU19dd71MptkP4zCwoeZqna23//pgbhtT1Wq02VmA9Z9cNtvtCQ== +"@jest/fake-timers@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.1.2.tgz#f157cdf23b4da48ce46cb00fea28ed1b57fc271a" + integrity sha512-GppaEqS+QQYegedxVMpCe2xCXxxeYwQ7RsNx55zc8f+1q1qevkZGKequfTASI7ejmg9WwI+SJCrHe9X11bLL9Q== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^29.0.3" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-message-util "^29.1.2" + jest-mock "^29.1.2" + jest-util "^29.1.2" -"@jest/globals@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.3.tgz#681950c430fdc13ff9aa89b2d8d572ac0e4a1bf5" - integrity sha512-YqGHT65rFY2siPIHHFjuCGUsbzRjdqkwbat+Of6DmYRg5shIXXrLdZoVE/+TJ9O1dsKsFmYhU58JvIbZRU1Z9w== +"@jest/globals@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.1.2.tgz#826ede84bc280ae7f789cb72d325c48cd048b9d3" + integrity sha512-uMgfERpJYoQmykAd0ffyMq8wignN4SvLUG6orJQRe9WAlTRc9cdpCaE/29qurXixYJVZWUqIBXhSk8v5xN1V9g== dependencies: - "@jest/environment" "^29.0.3" - "@jest/expect" "^29.0.3" - "@jest/types" "^29.0.3" - jest-mock "^29.0.3" + "@jest/environment" "^29.1.2" + "@jest/expect" "^29.1.2" + "@jest/types" "^29.1.2" + jest-mock "^29.1.2" -"@jest/reporters@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.3.tgz#735f110e08b44b38729d8dbbb74063bdf5aba8a5" - integrity sha512-3+QU3d4aiyOWfmk1obDerie4XNCaD5Xo1IlKNde2yGEi02WQD+ZQD0i5Hgqm1e73sMV7kw6pMlCnprtEwEVwxw== +"@jest/reporters@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.1.2.tgz#5520898ed0a4ecf69d8b671e1dc8465d0acdfa6e" + integrity sha512-X4fiwwyxy9mnfpxL0g9DD0KcTmEIqP0jUdnc2cfa9riHy+I6Gwwp5vOZiwyg0vZxfSDxrOlK9S4+340W4d+DAA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -1354,9 +1329,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" - jest-worker "^29.0.3" + jest-message-util "^29.1.2" + jest-util "^29.1.2" + jest-worker "^29.1.2" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -1386,42 +1361,42 @@ callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.3.tgz#b03d8ef4c58be84cd5d5d3b24d4b4c8cabbf2746" - integrity sha512-vViVnQjCgTmbhDKEonKJPtcFe9G/CJO4/Np4XwYJah+lF2oI7KKeRp8t1dFvv44wN2NdbDb/qC6pi++Vpp0Dlg== +"@jest/test-result@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.1.2.tgz#6a8d006eb2b31ce0287d1fc10d12b8ff8504f3c8" + integrity sha512-jjYYjjumCJjH9hHCoMhA8PCl1OxNeGgAoZ7yuGYILRJX9NjgzTN0pCT5qAoYR4jfOP8htIByvAlz9vfNSSBoVg== dependencies: - "@jest/console" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.2" + "@jest/types" "^29.1.2" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.3.tgz#0681061ad21fb8e293b49c4fdf7e631ca79240ba" - integrity sha512-Hf4+xYSWZdxTNnhDykr8JBs0yBN/nxOXyUQWfotBUqqy0LF9vzcFB0jm/EDNZCx587znLWTIgxcokW7WeZMobQ== +"@jest/test-sequencer@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.1.2.tgz#10bfd89c08bfdba382eb05cc79c1d23a01238a93" + integrity sha512-fU6dsUqqm8sA+cd85BmeF7Gu9DsXVWFdGn9taxM6xN1cKdcP/ivSgXh5QucFRFz1oZxKv3/9DYYbq0ULly3P/Q== dependencies: - "@jest/test-result" "^29.0.3" + "@jest/test-result" "^29.1.2" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.1.2" slash "^3.0.0" -"@jest/transform@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.3.tgz#9eb1fed2072a0354f190569807d1250572fb0970" - integrity sha512-C5ihFTRYaGDbi/xbRQRdbo5ddGtI4VSpmL6AIcZxdhwLbXMa7PcXxxqyI91vGOFHnn5aVM3WYnYKCHEqmLVGzg== +"@jest/transform@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.1.2.tgz#20f814696e04f090421f6d505c14bbfe0157062a" + integrity sha512-2uaUuVHTitmkx1tHF+eBjb4p7UuzBG7SXIaA/hNIkaMP6K+gXYGxP38ZcrofzqN0HeZ7A90oqsOa97WU7WZkSw== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.1.2" jest-regex-util "^29.0.0" - jest-util "^29.0.3" + jest-util "^29.1.2" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -1450,10 +1425,10 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" -"@jest/types@^29.0.3": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.3.tgz#0be78fdddb1a35aeb2041074e55b860561c8ef63" - integrity sha512-coBJmOQvurXjN1Hh5PzF7cmsod0zLIOXpP8KD161mqNlroMhLcwpODiEzi7ZsRl5Z/AIuxpeNm8DCl43F4kz8A== +"@jest/types@^29.1.2": + version "29.1.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.1.2.tgz#7442d32b16bcd7592d9614173078b8c334ec730a" + integrity sha512-DcXGtoTykQB5jiwCmVr8H4vdg2OJhQex3qPkG+ISyDO7xQXbt/4R6dowcRyPemRnkH7JoHvZuxPBdlq+9JxFCg== dependencies: "@jest/schemas" "^29.0.0" "@types/istanbul-lib-coverage" "^2.0.0" @@ -1799,9 +1774,9 @@ "@sentry/cli" "^1.74.4" "@sinclair/typebox@^0.24.1": - version "0.24.42" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.42.tgz#a74b608d494a1f4cc079738e050142a678813f52" - integrity sha512-d+2AtrHGyWek2u2ITF0lHRIv6Tt7X0dEHW+0rP+5aDCEjC3fiN2RBjrLD0yU0at52BcZbRGxLbAtXiR0hFCjYw== + version "0.24.44" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.44.tgz#0a0aa3bf4a155a678418527342a3ee84bd8caa5c" + integrity sha512-ka0W0KN5i6LfrSocduwliMMpqVgohtPFidKdMEOUjoOFCHcOOYkKsPRxfs5f15oPNHTm6ERAm0GV/+/LTKeiWg== "@sinonjs/commons@^1.7.0": version "1.8.3" @@ -1990,9 +1965,9 @@ "@babel/types" "^7.0.0" "@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.18.1" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.1.tgz#ce5e2c8c272b99b7a9fd69fa39f0b4cd85028bd9" - integrity sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA== + version "7.18.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.18.2.tgz#235bf339d17185bdec25e024ca19cce257cc7309" + integrity sha512-FcFaxOr2V5KZCviw1TnutEMVUVsGt4D2hP1TAfXZAMKuHYW3xQhe3jTxNPWutgCJ3/X1c5yX8ZoGVEItxKbwBg== dependencies: "@babel/types" "^7.3.0" @@ -2067,9 +2042,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@^29.0.0": - version "29.0.3" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.3.tgz#b61a5ed100850686b8d3c5e28e3a1926b2001b59" - integrity sha512-F6ukyCTwbfsEX5F2YmVYmM5TcTHy1q9P5rWlRbrk56KyMh3v9xRGUO3aa8+SkvMi0SHXtASJv1283enXimC0Og== + version "29.1.1" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.1.1.tgz#cf21a0835a1ba9a30ea1966019f1261c6a114c92" + integrity sha512-U9Ey07dGWl6fUFaIaUQUKWG5NoKi/zizeVQCGV8s4nSU0jPgqphVZvS64+8BtWYvrc3ZGw6wo943NSYPxkrp/g== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -2109,9 +2084,9 @@ integrity sha512-jhMOZSS0UGYTS9pqvt6q3wtT3uvOSve5piTEmTMx3zzTuBLvSIMxSIBIc3d5lajVD5h4xc41AMZD2M5orN3PxA== "@types/node@*": - version "18.7.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.7.18.tgz#633184f55c322e4fb08612307c274ee6d5ed3154" - integrity sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg== + version "18.8.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.8.2.tgz#17d42c6322d917764dd3d2d3a10d7884925de067" + integrity sha512-cRMwIgdDN43GO4xMWAfJAecYn8wV4JbsOGHNfNUIDiuYkUYAR5ec4Rj7IO2SAhFPEfpPtLtUTbbny/TCT7aDwA== "@types/node@^14.18.28": version "14.18.29" @@ -2129,9 +2104,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.1.5": - version "2.7.0" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" - integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== + version "2.7.1" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.1.tgz#dfd20e2dc35f027cdd6c1908e80a5ddc7499670e" + integrity sha512-ri0UmynRRvZiiUJdiz38MmIblKK+oH30MztdBVR95dv/Ubw6neWSb8u1XpRb72L4qsZOhz+L+z9JD40SJmfWow== "@types/prop-types@*": version "15.7.5" @@ -2252,9 +2227,9 @@ "@types/yargs-parser" "*" "@types/yargs@^17.0.8": - version "17.0.12" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.12.tgz#0745ff3e4872b4ace98616d4b7e37ccbd75f9526" - integrity sha512-Nz4MPhecOFArtm81gFQvQqdV7XYCrWKx5uUt6GNHredFHn1i2mtWqXTON7EPXMtNi1qjtjEM/VCHDhcHsAMLXQ== + version "17.0.13" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" + integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg== dependencies: "@types/yargs-parser" "*" @@ -2506,35 +2481,30 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: mime-types "~2.1.34" negotiator "0.6.3" -acorn-globals@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45" - integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg== +acorn-globals@^7.0.0: + version "7.0.1" + resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3" + integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q== dependencies: - acorn "^7.1.1" - acorn-walk "^7.1.1" + acorn "^8.1.0" + acorn-walk "^8.0.2" acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn-walk@^7.1.1: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== +acorn-walk@^8.0.2: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^6.4.1: version "6.4.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -acorn@^8.7.1, acorn@^8.8.0: +acorn@^8.1.0, acorn@^8.8.0: version "8.8.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8" integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w== @@ -2931,12 +2901,12 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== -babel-jest@^29.0.0, babel-jest@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.3.tgz#64e156a47a77588db6a669a88dedff27ed6e260f" - integrity sha512-ApPyHSOhS/sVzwUOQIWJmdvDhBsMG01HX9z7ogtkp1TToHGGUWFlnXJUIzCgKPSfiYLn3ibipCYzsKSURHEwLg== +babel-jest@^29.0.0, babel-jest@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.2.tgz#540d3241925c55240fb0c742e3ffc5f33a501978" + integrity sha512-IuG+F3HTHryJb7gacC7SQ59A9kO56BctUsT67uJHp1mMCHUOMXpDwOHWGifWqdWVknN2WNkCVQELPjXx0aLJ9Q== dependencies: - "@jest/transform" "^29.0.3" + "@jest/transform" "^29.1.2" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" babel-preset-jest "^29.0.2" @@ -3217,11 +3187,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - browser-request@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17" @@ -3746,6 +3711,15 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -4478,7 +4452,7 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js@^10.3.1: +decimal.js@^10.4.1: version "10.4.1" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.1.tgz#be75eeac4a2281aace80c1a8753587c27ef053e7" integrity sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw== @@ -5482,16 +5456,16 @@ expect@^28.1.0: jest-message-util "^28.1.3" jest-util "^28.1.3" -expect@^29.0.0, expect@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.3.tgz#6be65ddb945202f143c4e07c083f4f39f3bd326f" - integrity sha512-t8l5DTws3212VbmPL+tBFXhjRHLmctHB0oQbL8eUc6S7NzZtYUhycrFO9mkxA0ZUC6FAWdNi7JchJSkODtcu1Q== +expect@^29.0.0, expect@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.1.2.tgz#82f8f28d7d408c7c68da3a386a490ee683e1eced" + integrity sha512-AuAGn1uxva5YBbBlXb+2JPxJRuemZsmlGcapPXWNSBNsQtAULfjioREGBWuI0EOvYUKjDnrCy8PW5Zlr1md5mw== dependencies: - "@jest/expect-utils" "^29.0.3" + "@jest/expect-utils" "^29.1.2" jest-get-type "^29.0.0" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-util "^29.1.2" express@^4.17.1: version "4.18.1" @@ -5674,9 +5648,9 @@ faye-websocket@^0.11.3, faye-websocket@^0.11.4: websocket-driver ">=0.5.1" fb-watchman@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85" - integrity sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" + integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" @@ -7345,74 +7319,74 @@ jest-changed-files@^29.0.0: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.3.tgz#90faebc90295291cfc636b27dbd82e3bfb9e7a48" - integrity sha512-QeGzagC6Hw5pP+df1+aoF8+FBSgkPmraC1UdkeunWh0jmrp7wC0Hr6umdUAOELBQmxtKAOMNC3KAdjmCds92Zg== +jest-circus@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.1.2.tgz#4551068e432f169a53167fe1aef420cf51c8a735" + integrity sha512-ajQOdxY6mT9GtnfJRZBRYS7toNIJayiiyjDyoZcnvPRUPwJ58JX0ci0PKAKUo2C1RyzlHw0jabjLGKksO42JGA== dependencies: - "@jest/environment" "^29.0.3" - "@jest/expect" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.1.2" + "@jest/expect" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.0.3" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-runtime "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" + jest-each "^29.1.2" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-runtime "^29.1.2" + jest-snapshot "^29.1.2" + jest-util "^29.1.2" p-limit "^3.1.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.3.tgz#fd8f0ef363a7a3d9c53ef62e0651f18eeffa77b9" - integrity sha512-aUy9Gd/Kut1z80eBzG10jAn6BgS3BoBbXyv+uXEqBJ8wnnuZ5RpNfARoskSrTIy1GY4a8f32YGuCMwibtkl9CQ== +jest-cli@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.1.2.tgz#423b9c5d3ea20a50b1354b8bf3f2a20e72110e89" + integrity sha512-vsvBfQ7oS2o4MJdAH+4u9z76Vw5Q8WBQF5MchDbkylNknZdrPTX1Ix7YRJyTlOWqRaS7ue/cEAn+E4V1MWyMzw== dependencies: - "@jest/core" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/core" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/types" "^29.1.2" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-config "^29.1.2" + jest-util "^29.1.2" + jest-validate "^29.1.2" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.3.tgz#c2e52a8f5adbd18de79f99532d8332a19e232f13" - integrity sha512-U5qkc82HHVYe3fNu2CRXLN4g761Na26rWKf7CjM8LlZB3In1jadEkZdMwsE37rd9RSPV0NfYaCjHdk/gu3v+Ew== +jest-config@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.1.2.tgz#7d004345ca4c09f5d8f802355f54494e90842f4d" + integrity sha512-EC3Zi86HJUOz+2YWQcJYQXlf0zuBhJoeyxLM6vb6qJsVmpP7KcCP1JnyF0iaqTaXdBP8Rlwsvs7hnKWQWWLwwA== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.0.3" - "@jest/types" "^29.0.3" - babel-jest "^29.0.3" + "@jest/test-sequencer" "^29.1.2" + "@jest/types" "^29.1.2" + babel-jest "^29.1.2" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.0.3" - jest-environment-node "^29.0.3" + jest-circus "^29.1.2" + jest-environment-node "^29.1.2" jest-get-type "^29.0.0" jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-runner "^29.0.3" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-resolve "^29.1.2" + jest-runner "^29.1.2" + jest-util "^29.1.2" + jest-validate "^29.1.2" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -7426,15 +7400,15 @@ jest-diff@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-diff@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.3.tgz#41cc02409ad1458ae1bf7684129a3da2856341ac" - integrity sha512-+X/AIF5G/vX9fWK+Db9bi9BQas7M9oBME7egU7psbn4jlszLFCu0dW63UgeE6cs/GANq4fLaT+8sGHQQ0eCUfg== +jest-diff@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.1.2.tgz#bb7aaf5353227d6f4f96c5e7e8713ce576a607dc" + integrity sha512-4GQts0aUopVvecIT4IwD/7xsBaMhKTYoM4/njE/aVw9wpw+pIUVp8Vab/KnSzSilr84GnLBkaP3JLDnQYCKqVQ== dependencies: chalk "^4.0.0" diff-sequences "^29.0.0" jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" jest-docblock@^29.0.0: version "29.0.0" @@ -7443,42 +7417,42 @@ jest-docblock@^29.0.0: dependencies: detect-newline "^3.0.0" -jest-each@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.3.tgz#7ef3157580b15a609d7ef663dd4fc9b07f4e1299" - integrity sha512-wILhZfESURHHBNvPMJ0lZlYZrvOQJxAo3wNHi+ycr90V7M+uGR9Gh4+4a/BmaZF0XTyZsk4OiYEf3GJN7Ltqzg== +jest-each@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.1.2.tgz#d4c8532c07a846e79f194f7007ce7cb1987d1cd0" + integrity sha512-AmTQp9b2etNeEwMyr4jc0Ql/LIX/dhbgP21gHAizya2X6rUspHn2gysMXaj6iwWuOJ2sYRgP8c1P4cXswgvS1A== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" chalk "^4.0.0" jest-get-type "^29.0.0" - jest-util "^29.0.3" - pretty-format "^29.0.3" + jest-util "^29.1.2" + pretty-format "^29.1.2" jest-environment-jsdom@^29.0.0: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.0.3.tgz#0c6ee841133dd6acbe957bceaceea93b7ec60ca9" - integrity sha512-KIGvpm12c71hoYTjL4wC2c8K6KfhOHJqJtaHc1IApu5rG047YWZoEP13BlbucWfzGISBrmli8KFqdhdQEa8Wnw== + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.1.2.tgz#59c5d7c53c999e1518cc2f1cd4ee19ab4b68eb68" + integrity sha512-D+XNIKia5+uDjSMwL/G1l6N9MCb7LymKI8FpcLo7kkISjc/Sa9w+dXXEa7u1Wijo3f8sVLqfxdGqYtRhmca+Xw== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.1.2" + "@jest/fake-timers" "^29.1.2" + "@jest/types" "^29.1.2" "@types/jsdom" "^20.0.0" "@types/node" "*" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-mock "^29.1.2" + jest-util "^29.1.2" jsdom "^20.0.0" -jest-environment-node@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.3.tgz#293804b1e0fa5f0e354dacbe510655caa478a3b2" - integrity sha512-cdZqRCnmIlTXC+9vtvmfiY/40Cj6s2T0czXuq1whvQdmpzAnj4sbqVYuZ4zFHk766xTTJ+Ij3uUqkk8KCfXoyg== +jest-environment-node@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.1.2.tgz#005e05cc6ea4b9b5ba55906ab1ce53c82f6907a7" + integrity sha512-C59yVbdpY8682u6k/lh8SUMDJPbOyCHOTgLVVi1USWFxtNV+J8fyIwzkg+RJIVI30EKhKiAGNxYaFr3z6eyNhQ== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/environment" "^29.1.2" + "@jest/fake-timers" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" - jest-mock "^29.0.3" - jest-util "^29.0.3" + jest-mock "^29.1.2" + jest-util "^29.1.2" jest-get-type@^28.0.2: version "28.0.2" @@ -7490,32 +7464,32 @@ jest-get-type@^29.0.0: resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.3.tgz#d7f3f7180f558d760eacc5184aac5a67f20ef939" - integrity sha512-uMqR99+GuBHo0RjRhOE4iA6LmsxEwRdgiIAQgMU/wdT2XebsLDz5obIwLZm/Psj+GwSEQhw9AfAVKGYbh2G55A== +jest-haste-map@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.1.2.tgz#93f3634aa921b6b654e7c94137b24e02e7ca6ac9" + integrity sha512-xSjbY8/BF11Jh3hGSPfYTa/qBFrm3TPM7WU8pU93m2gqzORVLkHFWvuZmFsTEBPRKndfewXhMOuzJNHyJIZGsw== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" jest-regex-util "^29.0.0" - jest-util "^29.0.3" - jest-worker "^29.0.3" + jest-util "^29.1.2" + jest-worker "^29.1.2" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.3.tgz#e85cf3391106a7a250850b6766b508bfe9c7bc6f" - integrity sha512-YfW/G63dAuiuQ3QmQlh8hnqLDe25WFY3eQhuc/Ev1AGmkw5zREblTh7TCSKLoheyggu6G9gxO2hY8p9o6xbaRQ== +jest-leak-detector@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.1.2.tgz#4c846db14c58219430ccbc4f01a1ec52ebee4fc2" + integrity sha512-TG5gAZJpgmZtjb6oWxBLf2N6CfQ73iwCe6cofu/Uqv9iiAm6g502CAnGtxQaTfpHECBdVEMRBhomSXeLnoKjiQ== dependencies: jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" jest-matcher-utils@^28.1.3: version "28.1.3" @@ -7527,15 +7501,15 @@ jest-matcher-utils@^28.1.3: jest-get-type "^28.0.2" pretty-format "^28.1.3" -jest-matcher-utils@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.3.tgz#b8305fd3f9e27cdbc210b21fc7dbba92d4e54560" - integrity sha512-RsR1+cZ6p1hDV4GSCQTg+9qjeotQCgkaleIKLK7dm+U4V/H2bWedU3RAtLm8+mANzZ7eDV33dMar4pejd7047w== +jest-matcher-utils@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.1.2.tgz#e68c4bcc0266e70aa1a5c13fb7b8cd4695e318a1" + integrity sha512-MV5XrD3qYSW2zZSHRRceFzqJ39B2z11Qv0KPyZYxnzDHFeYZGJlgGi0SW+IXSJfOewgJp/Km/7lpcFT+cgZypw== dependencies: chalk "^4.0.0" - jest-diff "^29.0.3" + jest-diff "^29.1.2" jest-get-type "^29.0.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" jest-message-util@^28.1.3: version "28.1.3" @@ -7552,18 +7526,18 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-message-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.3.tgz#f0254e1ffad21890c78355726202cc91d0a40ea8" - integrity sha512-7T8JiUTtDfppojosORAflABfLsLKMLkBHSWkjNQrjIltGoDzNGn7wEPOSfjqYAGTYME65esQzMJxGDjuLBKdOg== +jest-message-util@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.1.2.tgz#c21a33c25f9dc1ebfcd0f921d89438847a09a501" + integrity sha512-9oJ2Os+Qh6IlxLpmvshVbGUiSkZVc2FK+uGOm6tghafnB2RyjKAxMZhtxThRMxfX1J1SOMhTn9oK3/MutRWQJQ== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.0.3" + pretty-format "^29.1.2" slash "^3.0.0" stack-utils "^2.0.3" @@ -7575,13 +7549,14 @@ jest-mock@^27.5.1: "@jest/types" "^27.5.1" "@types/node" "*" -jest-mock@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.3.tgz#4f0093f6a9cb2ffdb9c44a07a3912f0c098c8de9" - integrity sha512-ort9pYowltbcrCVR43wdlqfAiFJXBx8l4uJDsD8U72LgBcetvEp+Qxj1W9ZYgMRoeAo+ov5cnAGF2B6+Oth+ww== +jest-mock@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.2.tgz#de47807edbb9d4abf8423f1d8d308d670105678c" + integrity sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/node" "*" + jest-util "^29.1.2" jest-pnp-resolver@^1.2.2: version "1.2.2" @@ -7598,88 +7573,88 @@ jest-regex-util@^29.0.0: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== -jest-resolve-dependencies@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.3.tgz#f23a54295efc6374b86b198cf8efed5606d6b762" - integrity sha512-KzuBnXqNvbuCdoJpv8EanbIGObk7vUBNt/PwQPPx2aMhlv/jaXpUJsqWYRpP/0a50faMBY7WFFP8S3/CCzwfDw== +jest-resolve-dependencies@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.1.2.tgz#a6919e58a0c7465582cb8ec2d745b4e64ae8647f" + integrity sha512-44yYi+yHqNmH3OoWZvPgmeeiwKxhKV/0CfrzaKLSkZG9gT973PX8i+m8j6pDrTYhhHoiKfF3YUFg/6AeuHw4HQ== dependencies: jest-regex-util "^29.0.0" - jest-snapshot "^29.0.3" + jest-snapshot "^29.1.2" -jest-resolve@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.3.tgz#329a3431e3b9eb6629a2cd483e9bed95b26827b9" - integrity sha512-toVkia85Y/BPAjJasTC9zIPY6MmVXQPtrCk8SmiheC4MwVFE/CMFlOtMN6jrwPMC6TtNh8+sTMllasFeu1wMPg== +jest-resolve@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.1.2.tgz#9dd8c2fc83e59ee7d676b14bd45a5f89e877741d" + integrity sha512-7fcOr+k7UYSVRJYhSmJHIid3AnDBcLQX3VmT9OSbPWsWz1MfT7bcoerMhADKGvKCoMpOHUQaDHtQoNp/P9JMGg== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" + jest-haste-map "^29.1.2" jest-pnp-resolver "^1.2.2" - jest-util "^29.0.3" - jest-validate "^29.0.3" + jest-util "^29.1.2" + jest-validate "^29.1.2" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.3.tgz#2e47fe1e8777aea9b8970f37e8f83630b508fb87" - integrity sha512-Usu6VlTOZlCZoNuh3b2Tv/yzDpKqtiNAetG9t3kJuHfUyVMNW7ipCCJOUojzKkjPoaN7Bl1f7Buu6PE0sGpQxw== +jest-runner@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.1.2.tgz#f18b2b86101341e047de8c2f51a5fdc4e97d053a" + integrity sha512-yy3LEWw8KuBCmg7sCGDIqKwJlULBuNIQa2eFSVgVASWdXbMYZ9H/X0tnXt70XFoGf92W2sOQDOIFAA6f2BG04Q== dependencies: - "@jest/console" "^29.0.3" - "@jest/environment" "^29.0.3" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/console" "^29.1.2" + "@jest/environment" "^29.1.2" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" jest-docblock "^29.0.0" - jest-environment-node "^29.0.3" - jest-haste-map "^29.0.3" - jest-leak-detector "^29.0.3" - jest-message-util "^29.0.3" - jest-resolve "^29.0.3" - jest-runtime "^29.0.3" - jest-util "^29.0.3" - jest-watcher "^29.0.3" - jest-worker "^29.0.3" + jest-environment-node "^29.1.2" + jest-haste-map "^29.1.2" + jest-leak-detector "^29.1.2" + jest-message-util "^29.1.2" + jest-resolve "^29.1.2" + jest-runtime "^29.1.2" + jest-util "^29.1.2" + jest-watcher "^29.1.2" + jest-worker "^29.1.2" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.3.tgz#5a823ec5902257519556a4e5a71a868e8fd788aa" - integrity sha512-12gZXRQ7ozEeEHKTY45a+YLqzNDR/x4c//X6AqwKwKJPpWM8FY4vwn4VQJOcLRS3Nd1fWwgP7LU4SoynhuUMHQ== +jest-runtime@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.1.2.tgz#dbcd57103d61115479108d5864bdcd661d9c6783" + integrity sha512-jr8VJLIf+cYc+8hbrpt412n5jX3tiXmpPSYTGnwcvNemY+EOuLNiYnHJ3Kp25rkaAcTWOEI4ZdOIQcwYcXIAZw== dependencies: - "@jest/environment" "^29.0.3" - "@jest/fake-timers" "^29.0.3" - "@jest/globals" "^29.0.3" + "@jest/environment" "^29.1.2" + "@jest/fake-timers" "^29.1.2" + "@jest/globals" "^29.1.2" "@jest/source-map" "^29.0.0" - "@jest/test-result" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/test-result" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.0.3" - jest-message-util "^29.0.3" - jest-mock "^29.0.3" + jest-haste-map "^29.1.2" + jest-message-util "^29.1.2" + jest-mock "^29.1.2" jest-regex-util "^29.0.0" - jest-resolve "^29.0.3" - jest-snapshot "^29.0.3" - jest-util "^29.0.3" + jest-resolve "^29.1.2" + jest-snapshot "^29.1.2" + jest-util "^29.1.2" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.3.tgz#0a024706986a915a6eefae74d7343069d2fc8eef" - integrity sha512-52q6JChm04U3deq+mkQ7R/7uy7YyfVIrebMi6ZkBoDJ85yEjm/sJwdr1P0LOIEHmpyLlXrxy3QP0Zf5J2kj0ew== +jest-snapshot@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.1.2.tgz#7dd277e88c45f2d2ff5888de1612e63c7ceb575b" + integrity sha512-rYFomGpVMdBlfwTYxkUp3sjD6usptvZcONFYNqVlaz4EpHPnDvlWjvmOQ9OCSNKqYZqLM2aS3wq01tWujLg7gg== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -7687,23 +7662,23 @@ jest-snapshot@^29.0.3: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.0.3" - "@jest/transform" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/expect-utils" "^29.1.2" + "@jest/transform" "^29.1.2" + "@jest/types" "^29.1.2" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.0.3" + expect "^29.1.2" graceful-fs "^4.2.9" - jest-diff "^29.0.3" + jest-diff "^29.1.2" jest-get-type "^29.0.0" - jest-haste-map "^29.0.3" - jest-matcher-utils "^29.0.3" - jest-message-util "^29.0.3" - jest-util "^29.0.3" + jest-haste-map "^29.1.2" + jest-matcher-utils "^29.1.2" + jest-message-util "^29.1.2" + jest-util "^29.1.2" natural-compare "^1.4.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" semver "^7.3.5" jest-sonar-reporter@^2.0.0: @@ -7725,42 +7700,42 @@ jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-util@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.3.tgz#06d1d77f9a1bea380f121897d78695902959fbc0" - integrity sha512-Q0xaG3YRG8QiTC4R6fHjHQPaPpz9pJBEi0AeOE4mQh/FuWOijFjGXMMOfQEaU9i3z76cNR7FobZZUQnL6IyfdQ== +jest-util@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.1.2.tgz#ac5798e93cb6a6703084e194cfa0898d66126df1" + integrity sha512-vPCk9F353i0Ymx3WQq3+a4lZ07NXu9Ca8wya6o4Fe4/aO1e1awMMprZ3woPFpKwghEOW+UXgd15vVotuNN9ONQ== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.3.tgz#f9521581d7344685428afa0a4d110e9c519aeeb6" - integrity sha512-OebiqqT6lK8cbMPtrSoS3aZP4juID762lZvpf1u+smZnwTEBCBInan0GAIIhv36MxGaJvmq5uJm7dl5gVt+Zrw== +jest-validate@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.1.2.tgz#83a728b8f6354da2e52346878c8bc7383516ca51" + integrity sha512-k71pOslNlV8fVyI+mEySy2pq9KdXdgZtm7NHrBX8LghJayc3wWZH0Yr0mtYNGaCU4F1OLPXRkwZR0dBm/ClshA== dependencies: - "@jest/types" "^29.0.3" + "@jest/types" "^29.1.2" camelcase "^6.2.0" chalk "^4.0.0" jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^29.0.3" + pretty-format "^29.1.2" -jest-watcher@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.3.tgz#8e220d1cc4f8029875e82015d084cab20f33d57f" - integrity sha512-tQX9lU91A+9tyUQKUMp0Ns8xAcdhC9fo73eqA3LFxP2bSgiF49TNcc+vf3qgGYYK9qRjFpXW9+4RgF/mbxyOOw== +jest-watcher@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.1.2.tgz#de21439b7d889e2fcf62cc2a4779ef1a3f1f3c62" + integrity sha512-6JUIUKVdAvcxC6bM8/dMgqY2N4lbT+jZVsxh0hCJRbwkIEnbr/aPjMQ28fNDI5lB51Klh00MWZZeVf27KBUj5w== dependencies: - "@jest/test-result" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/test-result" "^29.1.2" + "@jest/types" "^29.1.2" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.10.2" - jest-util "^29.0.3" + jest-util "^29.1.2" string-length "^4.0.1" jest-worker@^25.4.0: @@ -7771,24 +7746,25 @@ jest-worker@^25.4.0: merge-stream "^2.0.0" supports-color "^7.0.0" -jest-worker@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.3.tgz#c2ba0aa7e41eec9eb0be8e8a322ae6518df72647" - integrity sha512-Tl/YWUugQOjoTYwjKdfJWkSOfhufJHO5LhXTSZC3TRoQKO+fuXnZAdoXXBlpLXKGODBL3OvdUasfDD4PcMe6ng== +jest-worker@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.1.2.tgz#a68302af61bce82b42a9a57285ca7499d29b2afc" + integrity sha512-AdTZJxKjTSPHbXT/AIOjQVmoFx0LHFcVabWu0sxI7PAy7rFf8c0upyvgBKgguVXdM4vY74JdwkyD4hSmpTW8jA== dependencies: "@types/node" "*" + jest-util "^29.1.2" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.0.0: - version "29.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.3.tgz#5227a0596d30791b2649eea347e4aa97f734944d" - integrity sha512-ElgUtJBLgXM1E8L6K1RW1T96R897YY/3lRYqq9uVcPWtP2AAl/nQ16IYDh/FzQOOQ12VEuLdcPU83mbhG2C3PQ== + version "29.1.2" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.1.2.tgz#f821a1695ffd6cd0efc3b59d2dfcc70a98582499" + integrity sha512-5wEIPpCezgORnqf+rCaYD1SK+mNN7NsstWzIsuvsnrhR/hSxXWd82oI7DkrbJ+XTD28/eG8SmxdGvukrGGK6Tw== dependencies: - "@jest/core" "^29.0.3" - "@jest/types" "^29.0.3" + "@jest/core" "^29.1.2" + "@jest/types" "^29.1.2" import-local "^3.0.2" - jest-cli "^29.0.3" + jest-cli "^29.1.2" js-sdsl@^4.1.4: version "4.1.4" @@ -7821,17 +7797,17 @@ jsbn@~0.1.0: integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsdom@^20.0.0: - version "20.0.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.0.tgz#882825ac9cc5e5bbee704ba16143e1fa78361ebf" - integrity sha512-x4a6CKCgx00uCmP+QakBDFXwjAJ69IkkIWHmtmjd3wvXPcdOS44hfX2vqkOQrVrq8l9DhNNADZRXaCEWvgXtVA== + version "20.0.1" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.1.tgz#d95b4a3b6e1eec6520aa01d9d908eade8c6ba153" + integrity sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A== dependencies: abab "^2.0.6" - acorn "^8.7.1" - acorn-globals "^6.0.0" + acorn "^8.8.0" + acorn-globals "^7.0.0" cssom "^0.5.0" cssstyle "^2.3.0" data-urls "^3.0.2" - decimal.js "^10.3.1" + decimal.js "^10.4.1" domexception "^4.0.0" escodegen "^2.0.0" form-data "^4.0.0" @@ -7839,18 +7815,17 @@ jsdom@^20.0.0: http-proxy-agent "^5.0.0" https-proxy-agent "^5.0.1" is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.0" - parse5 "^7.0.0" + nwsapi "^2.2.2" + parse5 "^7.1.1" saxes "^6.0.0" symbol-tree "^3.2.4" - tough-cookie "^4.0.0" - w3c-hr-time "^1.0.2" + tough-cookie "^4.1.2" w3c-xmlserializer "^3.0.0" webidl-conversions "^7.0.0" whatwg-encoding "^2.0.0" whatwg-mimetype "^3.0.0" whatwg-url "^11.0.0" - ws "^8.8.0" + ws "^8.9.0" xml-name-validator "^4.0.0" jsesc@^2.5.1: @@ -8998,7 +8973,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== -nwsapi@^2.2.0: +nwsapi@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== @@ -9384,7 +9359,7 @@ parse5@^6.0.1: resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== -parse5@^7.0.0: +parse5@^7.0.0, parse5@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746" integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg== @@ -10351,10 +10326,10 @@ pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" -pretty-format@^29.0.0, pretty-format@^29.0.3: - version "29.0.3" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.3.tgz#23d5f8cabc9cbf209a77d49409d093d61166a811" - integrity sha512-cHudsvQr1K5vNVLbvYF/nv3Qy/F/BcEKxGuIeMiVMRHxPOO1RxXooP8g/ZrwAp7Dx+KdMZoOc7NxLHhMrP2f9Q== +pretty-format@^29.0.0, pretty-format@^29.1.2: + version "29.1.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.1.2.tgz#b1f6b75be7d699be1a051f5da36e8ae9e76a8e6a" + integrity sha512-CGJ6VVGXVRP2o2Dorl4mAwwvDWT25luIsYhkyVQW32E4nL+TgW939J7LlKT/npq5Cpq6j3s+sy+13yk7xYpBmg== dependencies: "@jest/schemas" "^29.0.0" ansi-styles "^5.0.0" @@ -12206,7 +12181,7 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== -tough-cookie@^4.0.0: +tough-cookie@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874" integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ== @@ -12706,13 +12681,6 @@ vt-pbf@^3.1.1: "@mapbox/vector-tile" "^1.3.1" pbf "^3.2.1" -w3c-hr-time@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - w3c-xmlserializer@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923" @@ -13070,10 +13038,10 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" -ws@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.1.tgz#5dbad0feb7ade8ecc99b830c1d77c913d4955ff0" - integrity sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA== +ws@^8.9.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.9.0.tgz#2a994bb67144be1b53fe2d23c53c028adeb7f45e" + integrity sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg== xml-name-validator@^4.0.0: version "4.0.0" @@ -13184,7 +13152,7 @@ yargs@^15.4.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.1, yargs@^17.3.1: +yargs@^17.0.1: version "17.5.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== @@ -13197,6 +13165,19 @@ yargs@^17.0.1, yargs@^17.3.1: y18n "^5.0.5" yargs-parser "^21.0.0" +yargs@^17.3.1: + version "17.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c" + integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.0.0" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" From 1d86a75a29241cc8df132c8a489edf864268868b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 22:18:33 +0100 Subject: [PATCH 03/38] Update typescript-eslint monorepo to v5.39.0 (#23420) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- yarn.lock | 92 +++++++++++++++++++++++++++---------------------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5cc1b2f4e2..0af6c6bb1c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2234,13 +2234,13 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.6.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.0.tgz#ac919a199548861012e8c1fb2ec4899ac2bc22ae" - integrity sha512-GgHi/GNuUbTOeoJiEANi0oI6fF3gBQc3bGFYj40nnAPCbhrtEDf2rjBmefFadweBmO1Du1YovHeDP2h5JLhtTQ== + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz#778b2d9e7f293502c7feeea6c74dca8eb3e67511" + integrity sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A== dependencies: - "@typescript-eslint/scope-manager" "5.38.0" - "@typescript-eslint/type-utils" "5.38.0" - "@typescript-eslint/utils" "5.38.0" + "@typescript-eslint/scope-manager" "5.39.0" + "@typescript-eslint/type-utils" "5.39.0" + "@typescript-eslint/utils" "5.39.0" debug "^4.3.4" ignore "^5.2.0" regexpp "^3.2.0" @@ -2248,69 +2248,69 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.6.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.38.0.tgz#5a59a1ff41a7b43aacd1bb2db54f6bf1c02b2ff8" - integrity sha512-/F63giJGLDr0ms1Cr8utDAxP2SPiglaD6V+pCOcG35P2jCqdfR7uuEhz1GIC3oy4hkUF8xA1XSXmd9hOh/a5EA== + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.39.0.tgz#93fa0bc980a3a501e081824f6097f7ca30aaa22b" + integrity sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA== dependencies: - "@typescript-eslint/scope-manager" "5.38.0" - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/typescript-estree" "5.38.0" + "@typescript-eslint/scope-manager" "5.39.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/typescript-estree" "5.39.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.38.0.tgz#8f0927024b6b24e28671352c93b393a810ab4553" - integrity sha512-ByhHIuNyKD9giwkkLqzezZ9y5bALW8VNY6xXcP+VxoH4JBDKjU5WNnsiD4HJdglHECdV+lyaxhvQjTUbRboiTA== +"@typescript-eslint/scope-manager@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz#873e1465afa3d6c78d8ed2da68aed266a08008d0" + integrity sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw== dependencies: - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/visitor-keys" "5.38.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/visitor-keys" "5.39.0" -"@typescript-eslint/type-utils@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.38.0.tgz#c8b7f681da825fcfc66ff2b63d70693880496876" - integrity sha512-iZq5USgybUcj/lfnbuelJ0j3K9dbs1I3RICAJY9NZZpDgBYXmuUlYQGzftpQA9wC8cKgtS6DASTvF3HrXwwozA== +"@typescript-eslint/type-utils@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz#0a8c00f95dce4335832ad2dc6bc431c14e32a0a6" + integrity sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA== dependencies: - "@typescript-eslint/typescript-estree" "5.38.0" - "@typescript-eslint/utils" "5.38.0" + "@typescript-eslint/typescript-estree" "5.39.0" + "@typescript-eslint/utils" "5.39.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.38.0.tgz#8cd15825e4874354e31800dcac321d07548b8a5f" - integrity sha512-HHu4yMjJ7i3Cb+8NUuRCdOGu2VMkfmKyIJsOr9PfkBVYLYrtMCK/Ap50Rpov+iKpxDTfnqvDbuPLgBE5FwUNfA== +"@typescript-eslint/types@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.39.0.tgz#f4e9f207ebb4579fd854b25c0bf64433bb5ed78d" + integrity sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw== -"@typescript-eslint/typescript-estree@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.0.tgz#89f86b2279815c6fb7f57d68cf9b813f0dc25d98" - integrity sha512-6P0RuphkR+UuV7Avv7MU3hFoWaGcrgOdi8eTe1NwhMp2/GjUJoODBTRWzlHpZh6lFOaPmSvgxGlROa0Sg5Zbyg== +"@typescript-eslint/typescript-estree@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz#c0316aa04a1a1f4f7f9498e3c13ef1d3dc4cf88b" + integrity sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA== dependencies: - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/visitor-keys" "5.38.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/visitor-keys" "5.39.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.38.0.tgz#5b31f4896471818153790700eb02ac869a1543f4" - integrity sha512-6sdeYaBgk9Fh7N2unEXGz+D+som2QCQGPAf1SxrkEr+Z32gMreQ0rparXTNGRRfYUWk/JzbGdcM8NSSd6oqnTA== +"@typescript-eslint/utils@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.39.0.tgz#b7063cca1dcf08d1d21b0d91db491161ad0be110" + integrity sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.38.0" - "@typescript-eslint/types" "5.38.0" - "@typescript-eslint/typescript-estree" "5.38.0" + "@typescript-eslint/scope-manager" "5.39.0" + "@typescript-eslint/types" "5.39.0" + "@typescript-eslint/typescript-estree" "5.39.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.38.0": - version "5.38.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.0.tgz#60591ca3bf78aa12b25002c0993d067c00887e34" - integrity sha512-MxnrdIyArnTi+XyFLR+kt/uNAcdOnmT+879os7qDRI+EYySR4crXJq9BXPfRzzLGq0wgxkwidrCJ9WCAoacm1w== +"@typescript-eslint/visitor-keys@5.39.0": + version "5.39.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz#8f41f7d241b47257b081ddba5d3ce80deaae61e2" + integrity sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg== dependencies: - "@typescript-eslint/types" "5.38.0" + "@typescript-eslint/types" "5.39.0" eslint-visitor-keys "^3.3.0" "@webassemblyjs/ast@1.9.0": From fb686ec5b6b6e7609ffdae6ba764ff958ea0cda8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 22:18:56 +0100 Subject: [PATCH 04/38] Update dependency jest-mock to v29 (#23421) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 28 +--------------------------- 2 files changed, 2 insertions(+), 28 deletions(-) diff --git a/package.json b/package.json index 0a9d94188e..de8621740b 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "jest": "^29.0.0", "jest-canvas-mock": "^2.3.0", "jest-environment-jsdom": "^29.0.0", - "jest-mock": "^27.5.1", + "jest-mock": "^29.0.0", "jest-raw-loader": "^1.0.1", "jest-sonar-reporter": "^2.0.0", "json-loader": "^0.5.7", diff --git a/yarn.lock b/yarn.lock index 0af6c6bb1c..a33bd8efe2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1402,17 +1402,6 @@ slash "^3.0.0" write-file-atomic "^4.0.1" -"@jest/types@^27.5.1": - version "27.5.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.5.1.tgz#3c79ec4a8ba61c170bf937bcf9e98a9df175ec80" - integrity sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw== - dependencies: - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" - "@types/node" "*" - "@types/yargs" "^16.0.0" - chalk "^4.0.0" - "@jest/types@^28.1.3": version "28.1.3" resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.3.tgz#b05de80996ff12512bc5ceb1d208285a7d11748b" @@ -2219,13 +2208,6 @@ resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== -"@types/yargs@^16.0.0": - version "16.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" - integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== - dependencies: - "@types/yargs-parser" "*" - "@types/yargs@^17.0.8": version "17.0.13" resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76" @@ -7541,15 +7523,7 @@ jest-message-util@^29.1.2: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^27.5.1: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.5.1.tgz#19948336d49ef4d9c52021d34ac7b5f36ff967d6" - integrity sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og== - dependencies: - "@jest/types" "^27.5.1" - "@types/node" "*" - -jest-mock@^29.1.2: +jest-mock@^29.0.0, jest-mock@^29.1.2: version "29.1.2" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.1.2.tgz#de47807edbb9d4abf8423f1d8d308d670105678c" integrity sha512-PFDAdjjWbjPUtQPkQufvniXIS3N9Tv7tbibePEjIIprzjgo0qQlyUiVMrT4vL8FaSJo1QXifQUOuPH3HQC/aMA== From ec4cc52b7e6fcc6e31e7018dcbbb38eda956ce59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Fri, 7 Oct 2022 19:32:12 +0200 Subject: [PATCH 05/38] Add Element Call `brand` (#23443) --- config.sample.json | 3 ++- docs/config.md | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/config.sample.json b/config.sample.json index 0a8e56ad4a..7dd6d250d2 100644 --- a/config.sample.json +++ b/config.sample.json @@ -45,7 +45,8 @@ "preferred_domain": "meet.element.io" }, "element_call": { - "url": "https://call.element.io" + "url": "https://call.element.io", + "brand": "Element Call" }, "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx" } diff --git a/docs/config.md b/docs/config.md index 98f1996668..5b33396f34 100644 --- a/docs/config.md +++ b/docs/config.md @@ -323,6 +323,8 @@ The VoIP and Jitsi options are: and may be removed at any time without notice. Defaults to `https://call.element.io`. - `use_exclusively`: A boolean specifying whether Element Call should be used exclusively as the only VoIP stack in the app, removing the ability to start legacy 1:1 calls or Jitsi calls. Defaults to `false`. + - `brand`: Optional name for the app. Defaults to `Element Call`. This is + used throughout the application in various strings/locations. ## Bug reporting From 8891698745897388db037ea8692937edc199630c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0imon=20Brandner?= Date: Fri, 7 Oct 2022 22:00:38 +0200 Subject: [PATCH 06/38] Add Element Call participant limit (#23431) --- config.sample.json | 1 + docs/config.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/config.sample.json b/config.sample.json index 7dd6d250d2..e0c7375c5d 100644 --- a/config.sample.json +++ b/config.sample.json @@ -46,6 +46,7 @@ }, "element_call": { "url": "https://call.element.io", + "participant_limit": 8, "brand": "Element Call" }, "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx" diff --git a/docs/config.md b/docs/config.md index 5b33396f34..7f091529d1 100644 --- a/docs/config.md +++ b/docs/config.md @@ -323,6 +323,8 @@ The VoIP and Jitsi options are: and may be removed at any time without notice. Defaults to `https://call.element.io`. - `use_exclusively`: A boolean specifying whether Element Call should be used exclusively as the only VoIP stack in the app, removing the ability to start legacy 1:1 calls or Jitsi calls. Defaults to `false`. + - `participant_limit`: The maximum number of users who can join a call; if + this number is exceeded, the user will not be able to join a given call. - `brand`: Optional name for the app. Defaults to `Element Call`. This is used throughout the application in various strings/locations. From 3bf32377742b5603eb801b0ca4e9d56656bf9c44 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 11 Oct 2022 14:09:53 +0100 Subject: [PATCH 07/38] Reset matrix-js-sdk back to develop branch --- package.json | 2 +- yarn.lock | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 8b2d701746..6413bb1c01 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", - "matrix-js-sdk": "20.1.0", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "matrix-react-sdk": "3.58.0", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index 662120bceb..8706c4e1c4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8281,6 +8281,22 @@ matrix-js-sdk@20.1.0: request "^2.88.2" unhomoglyph "^1.0.6" +"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": + version "20.1.0" + resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8eed354e17001cd25e3cafe81f74dab499a9882e" + dependencies: + "@babel/runtime" "^7.12.5" + another-json "^0.2.0" + browser-request "^0.3.3" + bs58 "^5.0.0" + content-type "^1.0.4" + loglevel "^1.7.1" + matrix-events-sdk "^0.0.1-beta.7" + p-retry "4" + qs "^6.9.6" + request "^2.88.2" + unhomoglyph "^1.0.6" + matrix-mock-request@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/matrix-mock-request/-/matrix-mock-request-2.1.2.tgz#11e38ed1233dced88a6f2bfba1684d5c5b3aa2c2" From d1f7454dc06419514f2b672a407484b606706f4e Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 11 Oct 2022 14:10:12 +0100 Subject: [PATCH 08/38] Reset matrix-react-sdk back to develop branch --- package.json | 2 +- yarn.lock | 37 ++++++++++++++++--------------------- 2 files changed, 17 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 6413bb1c01..b6500e07f8 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "jsrsasign": "^10.5.25", "katex": "^0.16.0", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", - "matrix-react-sdk": "3.58.0", + "matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", "react": "17.0.2", diff --git a/yarn.lock b/yarn.lock index 8706c4e1c4..e8d6695317 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1521,6 +1521,11 @@ resolved "https://registry.yarnpkg.com/@matrix-org/analytics-events/-/analytics-events-0.2.0.tgz#453925c939ecdd5ca6c797d293deb8cf0933f1b8" integrity sha512-+0/Sydm4MNOcqd8iySJmojVPB74Axba4BXlwTsiKmL5fgYqdUkwmqkO39K7Pn8i+a+8pg11oNvBPkpWs3O5Qww== +"@matrix-org/matrix-wysiwyg@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-0.0.2.tgz#c1a18f5f9ac061c4147a0fbbf9303a3c82e626e6" + integrity sha512-AY4sbmgcaFZhNxJfn3Va1SiKH4/gIdvWV9c/iehcIi3/xFB7lKCIwe7NNxzPpFOp+b+fEIbdHf3fhS5vJBi7xg== + "@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz": version "3.2.12" resolved "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz#0bce3c86f9d36a4984d3c3e07df1c3fb4c679bd9" @@ -8264,23 +8269,6 @@ matrix-events-sdk@^0.0.1-beta.7: resolved "https://registry.yarnpkg.com/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.7.tgz#5ffe45eba1f67cc8d7c2377736c728b322524934" integrity sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA== -matrix-js-sdk@20.1.0: - version "20.1.0" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-20.1.0.tgz#d235c9125a79901e7e0eb667178bbbdb26710266" - integrity sha512-AjuWVmerJ8aEAIgD6QfmSIg0RrvA8vzvOV+ycvSGg4DgiFlVZbFvBxkVZTRdZ5icJe1/XMaCEf5OZ9Ha2hXUUg== - dependencies: - "@babel/runtime" "^7.12.5" - another-json "^0.2.0" - browser-request "^0.3.3" - bs58 "^5.0.0" - content-type "^1.0.4" - loglevel "^1.7.1" - matrix-events-sdk "^0.0.1-beta.7" - p-retry "4" - qs "^6.9.6" - request "^2.88.2" - unhomoglyph "^1.0.6" - "matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": version "20.1.0" resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8eed354e17001cd25e3cafe81f74dab499a9882e" @@ -8304,17 +8292,18 @@ matrix-mock-request@^2.0.0: dependencies: expect "^28.1.0" -matrix-react-sdk@3.58.0: +"matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": version "3.58.0" - resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.58.0.tgz#3352ab9e5c001c47d89c4472123216ab734e4cbf" - integrity sha512-JKKNeky8WOUTKknKyPaXiWTk4wUNiMQu/ZET8yUu0quPv8Ls20f2skgVHEMqFQ+lKdWk07iGClag8WCWwppx8A== + resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/7c1c49540a6adb454940ce0436e7a891656b0c7c" dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.2.0" + "@matrix-org/matrix-wysiwyg" "^0.0.2" "@matrix-org/react-sdk-module-api" "^0.0.3" "@sentry/browser" "^6.11.0" "@sentry/tracing" "^6.11.0" "@types/geojson" "^7946.0.8" + "@types/ua-parser-js" "^0.7.36" await-lock "^2.1.0" blurhash "^1.1.3" browser-request "^0.3.3" @@ -8346,7 +8335,7 @@ matrix-react-sdk@3.58.0: maplibre-gl "^1.15.2" matrix-encrypt-attachment "^1.0.3" matrix-events-sdk "^0.0.1-beta.7" - matrix-js-sdk "20.1.0" + matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop" matrix-widget-api "^1.1.1" minimist "^1.2.5" opus-recorder "^8.0.3" @@ -8366,6 +8355,7 @@ matrix-react-sdk@3.58.0: rfc4648 "^1.4.0" sanitize-html "^2.3.2" tar-js "^0.3.0" + ua-parser-js "^1.0.2" url "^0.11.0" what-input "^5.2.10" zxcvbn "^4.4.2" @@ -12390,6 +12380,11 @@ ua-parser-js@^0.8.0: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.8.1.tgz#aa3fea52565c5e36cd84ad5a47497e8f2abadc9a" integrity sha512-top37bpoaHp+wJBAqjm5KNz7qNfSZ/tmHEisuMMK5uzjdIo/L6uWovDFuYboO+q8EMz1f67exTnd+OPYESuu8Q== +ua-parser-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" + integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== + 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" From 8383c021f19c1eaa7004e5481c5391f50bbc91e5 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 11 Oct 2022 18:04:19 +0100 Subject: [PATCH 09/38] Reset matrix-js-sdk back to develop branch --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f866c5d7be..375f53b85c 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", - "matrix-js-sdk": "20.1.0", + "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", "matrix-react-sdk": "3.58.1", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", From 44eeb6fddc8a5d61a5253bc889cda8c52bfced7e Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 11 Oct 2022 18:04:37 +0100 Subject: [PATCH 10/38] Reset matrix-react-sdk back to develop branch --- package.json | 2 +- yarn.lock | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 375f53b85c..3f70239dc7 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "jsrsasign": "^10.5.25", "katex": "^0.16.0", "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", - "matrix-react-sdk": "3.58.1", + "matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", "react": "17.0.2", diff --git a/yarn.lock b/yarn.lock index 6ff9170b5b..2a7028bd52 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8292,10 +8292,9 @@ matrix-mock-request@^2.0.0: dependencies: expect "^28.1.0" -matrix-react-sdk@3.58.1: +"matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": version "3.58.1" - resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.58.1.tgz#cf3f9bf6c2932d18c65fc1ea4a8752f78d774f4e" - integrity sha512-u0qPj3o4CbizYsXL3Y0sPm5h4PiZXRXwsCrSHwUvp+nrcIJHskzrAt6PZGsW/xtzQ74jdxnlbgJr4a+btGRfZQ== + resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/51d5005efa2d655cfbc0b322550b87fbf005ef3f" dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.2.0" From 0e8e472138a9f11d899193830aaf0c4c8e6276d5 Mon Sep 17 00:00:00 2001 From: Kerry Date: Wed, 12 Oct 2022 15:35:52 +0200 Subject: [PATCH 11/38] Device manager - tweak string formatting of default device name (#23457) * tweak string formatting of default device name * cheaters path to beating quality gate * more electronplatform test coverage * remove test that throw errors * cover some more window.electrons * more coverage * empty line --- src/i18n/strings/en_EN.json | 4 +- src/vector/platform/ElectronPlatform.tsx | 27 +- src/vector/platform/IPCManager.ts | 4 +- src/vector/platform/WebPlatform.ts | 2 +- .../vector/platform/ElectronPlatform-test.ts | 279 ++++++++++++++++++ .../vector/platform/WebPlatform-test.ts | 2 +- 6 files changed, 297 insertions(+), 21 deletions(-) create mode 100644 test/unit-tests/vector/platform/ElectronPlatform-test.ts diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 0cc4b0cb4d..0a0634199e 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -10,10 +10,10 @@ "Download Completed": "Download Completed", "Open": "Open", "Dismiss": "Dismiss", - "%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s", "Go to your browser to complete Sign In": "Go to your browser to complete Sign In", "Unknown device": "Unknown device", - "%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s on %(osName)s", "Powered by Matrix": "Powered by Matrix", "Use %(brand)s on mobile": "Use %(brand)s on mobile", "Unsupported browser": "Unsupported browser", diff --git a/src/vector/platform/ElectronPlatform.tsx b/src/vector/platform/ElectronPlatform.tsx index d50accc1c1..635660d43f 100644 --- a/src/vector/platform/ElectronPlatform.tsx +++ b/src/vector/platform/ElectronPlatform.tsx @@ -45,7 +45,6 @@ import VectorBasePlatform from './VectorBasePlatform'; import { SeshatIndexManager } from "./SeshatIndexManager"; import { IPCManager } from "./IPCManager"; -const electron = window.electron; const isMac = navigator.platform.toUpperCase().includes('MAC'); function platformFriendlyName(): string { @@ -70,7 +69,7 @@ function platformFriendlyName(): string { function onAction(payload: ActionPayload): void { // Whitelist payload actions, no point sending most across if (['call_state'].includes(payload.action)) { - electron.send('app_onAction', payload); + window.electron.send('app_onAction', payload); } } @@ -103,7 +102,7 @@ export default class ElectronPlatform extends VectorBasePlatform { false if there is not or the error if one is encountered */ - electron.on('check_updates', (event, status) => { + window.electron.on('check_updates', (event, status) => { dis.dispatch({ action: Action.CheckUpdates, ...getUpdateCheckStatus(status), @@ -111,27 +110,27 @@ export default class ElectronPlatform extends VectorBasePlatform { }); // try to flush the rageshake logs to indexeddb before quit. - electron.on('before-quit', function() { + window.electron.on('before-quit', function() { logger.log('element-desktop closing'); rageshake.flush(); }); - electron.on('update-downloaded', this.onUpdateDownloaded); + window.electron.on('update-downloaded', this.onUpdateDownloaded); - electron.on('preferences', () => { + window.electron.on('preferences', () => { dis.fire(Action.ViewUserSettings); }); - electron.on('userDownloadCompleted', (ev, { id, name }) => { + window.electron.on('userDownloadCompleted', (ev, { id, name }) => { const key = `DOWNLOAD_TOAST_${id}`; const onAccept = () => { - electron.send('userDownloadAction', { id, open: true }); + window.electron.send('userDownloadAction', { id, open: true }); ToastStore.sharedInstance().dismissToast(key); }; const onDismiss = () => { - electron.send('userDownloadAction', { id }); + window.electron.send('userDownloadAction', { id }); }; ToastStore.sharedInstance().addOrReplaceToast({ @@ -187,7 +186,7 @@ export default class ElectronPlatform extends VectorBasePlatform { if (this.notificationCount === count) return; super.setNotificationCount(count); - electron.send('setBadgeCount', count); + window.electron.send('setBadgeCount', count); } public supportsNotifications(): boolean { @@ -233,7 +232,7 @@ export default class ElectronPlatform extends VectorBasePlatform { } public loudNotification(ev: MatrixEvent, room: Room) { - electron.send('loudNotification'); + window.electron.send('loudNotification'); } public needsUrlTooltips(): boolean { @@ -269,19 +268,19 @@ export default class ElectronPlatform extends VectorBasePlatform { public startUpdateCheck() { super.startUpdateCheck(); - electron.send('check_updates'); + window.electron.send('check_updates'); } public installUpdate() { // IPC to the main process to install the update, since quitAndInstall // doesn't fire the before-quit event so the main process needs to know // it should exit. - electron.send('install_update'); + window.electron.send('install_update'); } public getDefaultDeviceDisplayName(): string { const brand = SdkConfig.get().brand; - return _t('%(brand)s Desktop (%(platformName)s)', { + return _t('%(brand)s Desktop: %(platformName)s', { brand, platformName: platformFriendlyName(), }); diff --git a/src/vector/platform/IPCManager.ts b/src/vector/platform/IPCManager.ts index d25fe0af63..6e9abf16f2 100644 --- a/src/vector/platform/IPCManager.ts +++ b/src/vector/platform/IPCManager.ts @@ -19,8 +19,6 @@ import { logger } from "matrix-js-sdk/src/logger"; import { ElectronChannel } from "../../@types/global"; -const electron = window.electron; - interface IPCPayload { id?: number; error?: string; @@ -35,7 +33,7 @@ export class IPCManager { private readonly sendChannel: ElectronChannel = "ipcCall", private readonly recvChannel: ElectronChannel = "ipcReply", ) { - electron.on(this.recvChannel, this.onIpcReply); + window.electron.on(this.recvChannel, this.onIpcReply); } public async call(name: string, ...args: any[]): Promise { diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index 77be97ce49..110358a479 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -210,7 +210,7 @@ export default class WebPlatform extends VectorBasePlatform { let osName = ua.getOS().name || "unknown OS"; // Stylise the value from the parser to match Apple's current branding. if (osName === "Mac OS") osName = "macOS"; - return _t('%(appName)s (%(browserName)s, %(osName)s)', { + return _t('%(appName)s: %(browserName)s on %(osName)s', { appName, browserName, osName, diff --git a/test/unit-tests/vector/platform/ElectronPlatform-test.ts b/test/unit-tests/vector/platform/ElectronPlatform-test.ts new file mode 100644 index 0000000000..b76e045043 --- /dev/null +++ b/test/unit-tests/vector/platform/ElectronPlatform-test.ts @@ -0,0 +1,279 @@ +/* +Copyright 2022 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import request from 'browser-request'; +import EventEmitter from 'events'; +import { logger } from 'matrix-js-sdk/src/logger'; +import { MatrixClient, MatrixEvent, Room } from 'matrix-js-sdk/src/matrix'; +import { UpdateCheckStatus } from 'matrix-react-sdk/src/BasePlatform'; +import { Action } from 'matrix-react-sdk/src/dispatcher/actions'; +import dispatcher from 'matrix-react-sdk/src/dispatcher/dispatcher'; +import { MatrixClientPeg } from 'matrix-react-sdk/src/MatrixClientPeg'; +import * as rageshake from 'matrix-react-sdk/src/rageshake/rageshake'; + +import ElectronPlatform from '../../../../src/vector/platform/ElectronPlatform'; + +jest.mock('matrix-react-sdk/src/rageshake/rageshake', () => ({ + flush: jest.fn() +})) + + +describe('ElectronPlatform', () => { + const defaultUserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'; + const mockElectron = { + on: jest.fn(), + send: jest.fn() + }; + + const dispatchSpy = jest.spyOn(dispatcher, 'dispatch'); + const dispatchFireSpy = jest.spyOn(dispatcher, 'fire'); + const logSpy = jest.spyOn(logger, 'log').mockImplementation(() => {}); + + const userId = '@alice:server.org'; + const deviceId = 'device-id'; + + window.electron = mockElectron; + beforeEach(() => { + window.electron = mockElectron; + jest.clearAllMocks(); + delete window.navigator; + window.navigator = { userAgent: defaultUserAgent } as unknown as Navigator; + }); + + const getElectronEventHandlerCall = (eventType: string): [type: string, handler: Function] | undefined => + mockElectron.on.mock.calls.find(([type]) => type === eventType); + + it('flushes rageshake before quitting', () => { + new ElectronPlatform(); + const [event, handler] = getElectronEventHandlerCall('before-quit'); + // correct event bound + expect(event).toBeTruthy(); + + handler(); + + expect(logSpy).toHaveBeenCalled(); + expect(rageshake.flush).toHaveBeenCalled(); + }); + + it('dispatches view settings action on preferences event', () => { + new ElectronPlatform(); + const [event, handler] = getElectronEventHandlerCall('preferences'); + // correct event bound + expect(event).toBeTruthy(); + + handler(); + + expect(dispatchFireSpy).toHaveBeenCalledWith(Action.ViewUserSettings); + }); + + describe('updates', () => { + it('dispatches on check updates action', () => { + new ElectronPlatform(); + const [event, handler] = getElectronEventHandlerCall('check_updates'); + // correct event bound + expect(event).toBeTruthy(); + + handler({}, true); + expect(dispatchSpy).toHaveBeenCalledWith({ + action: Action.CheckUpdates, + status: UpdateCheckStatus.Downloading + }) + }); + + it('dispatches on check updates action when update not available', () => { + new ElectronPlatform(); + const [, handler] = getElectronEventHandlerCall('check_updates'); + + handler({}, false); + expect(dispatchSpy).toHaveBeenCalledWith({ + action: Action.CheckUpdates, + status: UpdateCheckStatus.NotAvailable + }) + }); + + it('starts update check', () => { + const platform = new ElectronPlatform(); + platform.startUpdateCheck(); + expect(mockElectron.send).toHaveBeenCalledWith('check_updates') + }); + + it('installs update', () => { + const platform = new ElectronPlatform(); + platform.installUpdate(); + expect(mockElectron.send).toHaveBeenCalledWith('install_update') + }); + }); + + + it('returns human readable name', () => { + const platform = new ElectronPlatform(); + expect(platform.getHumanReadableName()).toEqual('Electron Platform'); + }); + + describe("getDefaultDeviceDisplayName", () => { + it.each([[ + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", + "Element Desktop: macOS", + ], + [ + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) electron/1.0.0 Chrome/53.0.2785.113 Electron/1.4.3 Safari/537.36", + "Element Desktop: Windows", + ], + [ + "Mozilla/5.0 (X11; Linux i686; rv:21.0) Gecko/20100101 Firefox/21.0", + "Element Desktop: Linux", + ], + [ + "Mozilla/5.0 (X11; FreeBSD i686; rv:21.0) Gecko/20100101 Firefox/21.0", + "Element Desktop: FreeBSD", + ], + [ + "Mozilla/5.0 (X11; OpenBSD i686; rv:21.0) Gecko/20100101 Firefox/21.0", + "Element Desktop: OpenBSD", + ], + [ + "Mozilla/5.0 (X11; SunOS i686; rv:21.0) Gecko/20100101 Firefox/21.0", + "Element Desktop: SunOS", + ], + [ + "custom user agent", + "Element Desktop: Unknown", + ], + + ])("%s = %s", (userAgent, result) => { + delete window.navigator; + window.navigator = { userAgent } as unknown as Navigator; + const platform = new ElectronPlatform(); + expect(platform.getDefaultDeviceDisplayName()).toEqual(result); + }); + }); + + it('returns true for needsUrlTooltips', () => { + const platform = new ElectronPlatform(); + expect(platform.needsUrlTooltips()).toBe(true); + }); + + it('should override browser shortcuts', () => { + const platform = new ElectronPlatform(); + expect(platform.overrideBrowserShortcuts()).toBe(true); + }); + + it('allows overriding native context menus', () => { + const platform = new ElectronPlatform(); + expect(platform.allowOverridingNativeContextMenus()).toBe(true); + }); + + it('indicates support for desktop capturer', () => { + const platform = new ElectronPlatform(); + expect(platform.supportsDesktopCapturer()).toBe(true); + }); + + it('indicates no support for jitsi screensharing', () => { + const platform = new ElectronPlatform(); + expect(platform.supportsJitsiScreensharing()).toBe(false); + }); + + describe('notifications', () => { + it('indicates support for notifications', () => { + const platform = new ElectronPlatform(); + expect(platform.supportsNotifications()).toBe(true); + }); + + it('may send notifications', () => { + const platform = new ElectronPlatform(); + expect(platform.maySendNotifications()).toBe(true); + }); + + it('pretends to request notification permission', async () => { + const platform = new ElectronPlatform(); + const result = await platform.requestNotificationPermission(); + expect(result).toEqual('granted'); + }); + + it('creates a loud notification', async () => { + const platform = new ElectronPlatform(); + platform.loudNotification(new MatrixEvent(), new Room('!room:server', {} as any, userId)); + expect(mockElectron.send).toHaveBeenCalledWith('loudNotification'); + }); + + it('sets notification count when count is changing', async () => { + const platform = new ElectronPlatform(); + platform.setNotificationCount(0); + // not called because matches internal notificaiton count + expect(mockElectron.send).not.toHaveBeenCalledWith('setBadgeCount', 0); + platform.setNotificationCount(1); + expect(mockElectron.send).toHaveBeenCalledWith('setBadgeCount', 1); + }); + }); + + describe('spellcheck', () => { + it('indicates support for spellcheck settings', () => { + const platform = new ElectronPlatform(); + expect(platform.supportsSpellCheckSettings()).toBe(true); + }); + + it('gets available spellcheck languages', () => { + const platform = new ElectronPlatform(); + mockElectron.send.mockClear(); + platform.getAvailableSpellCheckLanguages(); + + const [channel, { name }] = mockElectron.send.mock.calls[0]; + expect(channel).toEqual("ipcCall"); + expect(name).toEqual('getAvailableSpellCheckLanguages') + }); + }); + + describe('pickle key', () => { + it('makes correct ipc call to get pickle key', () => { + const platform = new ElectronPlatform(); + mockElectron.send.mockClear(); + platform.getPickleKey(userId, deviceId); + + const [, { name, args }] = mockElectron.send.mock.calls[0]; + expect(name).toEqual('getPickleKey') + expect(args).toEqual([userId, deviceId]) + }); + + it('makes correct ipc call to create pickle key', () => { + const platform = new ElectronPlatform(); + mockElectron.send.mockClear(); + platform.createPickleKey(userId, deviceId); + + const [, { name, args }] = mockElectron.send.mock.calls[0]; + expect(name).toEqual('createPickleKey') + expect(args).toEqual([userId, deviceId]) + }); + + it('makes correct ipc call to destroy pickle key', () => { + const platform = new ElectronPlatform(); + mockElectron.send.mockClear(); + platform.destroyPickleKey(userId, deviceId); + + const [, { name, args }] = mockElectron.send.mock.calls[0]; + expect(name).toEqual('destroyPickleKey') + expect(args).toEqual([userId, deviceId]) + }); + }); + + describe('versions', () => { + it('calls install update', () => { + const platform = new ElectronPlatform(); + platform.installUpdate(); + + expect(mockElectron.send).toHaveBeenCalledWith('install_update'); + }); + }); +}); diff --git a/test/unit-tests/vector/platform/WebPlatform-test.ts b/test/unit-tests/vector/platform/WebPlatform-test.ts index ced944e688..7889adabe9 100644 --- a/test/unit-tests/vector/platform/WebPlatform-test.ts +++ b/test/unit-tests/vector/platform/WebPlatform-test.ts @@ -65,7 +65,7 @@ describe('WebPlatform', () => { it.each([[ "https://develop.element.io/#/room/!foo:bar", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", - "develop.element.io (Chrome, macOS)", + "develop.element.io: Chrome on macOS", ]])("%s & %s = %s", (url, userAgent, result) => { delete window.navigator; window.navigator = { userAgent } as unknown as Navigator; From 341b0b469ea62cd6a77c9b275ba3aa2483e3d3f9 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 12 Oct 2022 16:15:51 +0100 Subject: [PATCH 12/38] Make bash scripts exit on error rather than continue (#23467) --- scripts/fetch-develop.deps.sh | 2 +- scripts/genflags.sh | 2 ++ scripts/get-version-from-git.sh | 2 ++ scripts/layered.sh | 2 +- scripts/make-icons.sh | 3 +-- scripts/normalize-version.sh | 2 ++ 6 files changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh index 71850188a6..158cf85708 100755 --- a/scripts/fetch-develop.deps.sh +++ b/scripts/fetch-develop.deps.sh @@ -6,7 +6,7 @@ # the branch the current checkout is on, use that branch. Otherwise, # use develop. -set -ex +set -x GIT_CLONE_ARGS=("$@") [ -z "$defbranch" ] && defbranch="develop" diff --git a/scripts/genflags.sh b/scripts/genflags.sh index d960c6de0f..0d9a5f2b9e 100755 --- a/scripts/genflags.sh +++ b/scripts/genflags.sh @@ -25,6 +25,8 @@ # all phonenumber.js-supported country flags (as SVGs) into # PNGs that can be used by CountryDropdown.js. +set -e + # Allow CTRL+C to terminate the script trap "echo Exited!; exit;" SIGINT SIGTERM diff --git a/scripts/get-version-from-git.sh b/scripts/get-version-from-git.sh index eb9729c78e..bc08dd6774 100755 --- a/scripts/get-version-from-git.sh +++ b/scripts/get-version-from-git.sh @@ -3,6 +3,8 @@ # Echoes a version based on the git hashes of the element-web, react-sdk & js-sdk checkouts, for the case where # these dependencies are git checkouts. +set -e + # Since the deps are fetched from git, we can rev-parse REACT_SHA=$(git -C node_modules/matrix-react-sdk rev-parse --short=12 HEAD) JSSDK_SHA=$(git -C node_modules/matrix-js-sdk rev-parse --short=12 HEAD) diff --git a/scripts/layered.sh b/scripts/layered.sh index dc53b29aea..406022e88d 100755 --- a/scripts/layered.sh +++ b/scripts/layered.sh @@ -1,6 +1,6 @@ #!/bin/bash -set -x +set -ex # Creates a layered environment with the full repo for the app and SDKs cloned # and linked. This gives an element-web dev environment ready to build with diff --git a/scripts/make-icons.sh b/scripts/make-icons.sh index 2db5293df3..f60806cbba 100755 --- a/scripts/make-icons.sh +++ b/scripts/make-icons.sh @@ -12,8 +12,7 @@ then exit fi -set -e -set -x +set -ex tmpdir=`mktemp -d 2>/dev/null || mktemp -d -t 'icontmp'` diff --git a/scripts/normalize-version.sh b/scripts/normalize-version.sh index d8a68bebd8..b090179aad 100755 --- a/scripts/normalize-version.sh +++ b/scripts/normalize-version.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + # If $1 looks like v1.2.3 or v1.2.3-foo, strip the leading v, then print it to stdout if [[ $1 =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then echo ${1:1} From 326a1a9056f1a573a584f76e7e2cd130410a0183 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 12 Oct 2022 18:14:27 +0100 Subject: [PATCH 13/38] Make ErrorView & CompatibilityView scrollable (#23468) --- res/css/structures/ErrorView.pcss | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/res/css/structures/ErrorView.pcss b/res/css/structures/ErrorView.pcss index dae392951f..9c1b2bac7d 100644 --- a/res/css/structures/ErrorView.pcss +++ b/res/css/structures/ErrorView.pcss @@ -36,10 +36,12 @@ limitations under the License. "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - width: 100%; - min-height: 100%; - height: auto; color: #000; + width: 100%; + height: 100%; + overflow: auto; + padding: 0 20px; + box-sizing: border-box; .mx_ErrorView_container { max-width: 680px; From 2ef6abbfb8c1ea50e7780f7571033262df73c44d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 12 Oct 2022 18:59:10 +0100 Subject: [PATCH 14/38] Move from `browser-request` to `fetch` (#23427) --- package.json | 4 +- src/vector/app.tsx | 4 +- src/vector/getconfig.ts | 56 +++++-------- src/vector/platform/WebPlatform.ts | 35 +++----- test/app-tests/loading-test.tsx | 36 ++++---- test/unit-tests/vector/getconfig-test.ts | 84 ++++++++----------- .../vector/platform/WebPlatform-test.ts | 17 ++-- yarn.lock | 81 ++++++++++++++++-- 8 files changed, 169 insertions(+), 148 deletions(-) diff --git a/package.json b/package.json index 3f70239dc7..0231c95643 100644 --- a/package.json +++ b/package.json @@ -119,6 +119,7 @@ "eslint-plugin-react-hooks": "^4.3.0", "extract-text-webpack-plugin": "^4.0.0-beta.0", "fake-indexeddb": "^3.1.2", + "fetch-mock-jest": "^1.5.1", "file-loader": "^5.1.0", "fs-extra": "^0.30.0", "html-webpack-plugin": "^4.5.2", @@ -130,7 +131,7 @@ "jest-sonar-reporter": "^2.0.0", "json-loader": "^0.5.7", "loader-utils": "^1.4.0", - "matrix-mock-request": "^2.0.0", + "matrix-mock-request": "^2.5.0", "matrix-react-test-utils": "^0.2.3", "matrix-web-i18n": "^1.3.0", "mini-css-extract-plugin": "^1", @@ -188,7 +189,6 @@ "\\.(gif|png|ttf|woff2)$": "/node_modules/matrix-react-sdk/__mocks__/imageMock.js", "\\.svg$": "/node_modules/matrix-react-sdk/__mocks__/svg.js", "\\$webapp/i18n/languages.json": "/node_modules/matrix-react-sdk/__mocks__/languages.json", - "^browser-request$": "/node_modules/matrix-react-sdk/__mocks__/browser-request.js", "^react$": "/node_modules/react", "^react-dom$": "/node_modules/react-dom", "^matrix-js-sdk$": "/node_modules/matrix-js-sdk/src", diff --git a/src/vector/app.tsx b/src/vector/app.tsx index 1c38a2c84a..b63e22a891 100644 --- a/src/vector/app.tsx +++ b/src/vector/app.tsx @@ -18,8 +18,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -// To ensure we load the browser-request version -import "matrix-js-sdk"; // eslint-disable-line no-restricted-imports +// To ensure we load the browser-matrix version first +import "matrix-js-sdk/src/browser-index"; import React from 'react'; import PlatformPeg from 'matrix-react-sdk/src/PlatformPeg'; diff --git a/src/vector/getconfig.ts b/src/vector/getconfig.ts index e73145576b..3d4bbd7bd4 100644 --- a/src/vector/getconfig.ts +++ b/src/vector/getconfig.ts @@ -14,8 +14,6 @@ See the License for the specific language governing permissions and limitations under the License. */ -import request from 'browser-request'; - import type { IConfigOptions } from "matrix-react-sdk/src/IConfigOptions"; // Load the config file. First try to load up a domain-specific config of the @@ -32,44 +30,28 @@ export async function getVectorConfig(relativeLocation=''): Promise { - return new Promise(function(resolve, reject) { - request( - { method: "GET", url: configJsonFilename, qs: { cachebuster: Date.now() } }, - (err, response, body) => { - try { - if (err || response.status < 200 || response.status >= 300) { - // Lack of a config isn't an error, we should - // just use the defaults. - // Also treat a blank config as no config, assuming - // the status code is 0, because we don't get 404s - // from file: URIs so this is the only way we can - // not fail if the file doesn't exist when loading - // from a file:// URI. - if (response) { - if (response.status == 404 || (response.status == 0 && body == '')) { - resolve({}); - } - } - reject({ err: err, response: response }); - return; - } - - // We parse the JSON ourselves rather than use the JSON - // parameter, since this throws a parse error on empty - // which breaks if there's no config.json and we're - // loading from the filesystem (see above). - resolve(JSON.parse(body)); - } catch (e) { - reject({ err: e }); - } - }, - ); +async function getConfig(configJsonFilename: string): Promise { + const url = new URL(configJsonFilename, window.location.href); + url.searchParams.set("cachebuster", Date.now().toString()); + const res = await fetch(url, { + cache: "no-cache", + method: "GET", }); + + if (res.status === 404 || res.status === 0) { + // Lack of a config isn't an error, we should just use the defaults. + // Also treat a blank config as no config, assuming the status code is 0, because we don't get 404s from file: + // URIs so this is the only way we can not fail if the file doesn't exist when loading from a file:// URI. + return {} as IConfigOptions; + } + + if (res.ok) { + return res.json(); + } } diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index 110358a479..2800f27a4c 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -17,7 +17,6 @@ limitations under the License. */ import { UpdateCheckStatus, UpdateStatus } from "matrix-react-sdk/src/BasePlatform"; -import request from 'browser-request'; import dis from 'matrix-react-sdk/src/dispatcher/dispatcher'; import { _t } from 'matrix-react-sdk/src/languageHandler'; import { hideToast as hideUpdateToast, showToast as showUpdateToast } from "matrix-react-sdk/src/toasts/UpdateToast"; @@ -87,31 +86,17 @@ export default class WebPlatform extends VectorBasePlatform { }); } - private getMostRecentVersion(): Promise { - // We add a cachebuster to the request to make sure that we know about - // the most recent version on the origin server. That might not - // actually be the version we'd get on a reload (particularly in the - // presence of intermediate caching proxies), but still: we're trying - // to tell the user that there is a new version. - - return new Promise((resolve, reject) => { - request( - { - method: "GET", - url: "version", - qs: { cachebuster: Date.now() }, - }, - (err, response, body) => { - if (err || response.status < 200 || response.status >= 300) { - if (err === null) err = { status: response.status }; - reject(err); - return; - } - - resolve(getNormalizedAppVersion(body.trim())); - }, - ); + private async getMostRecentVersion(): Promise { + const res = await fetch("version", { + method: "GET", + cache: "no-cache", }); + + if (res.ok) { + return getNormalizedAppVersion(await res.text()); + } + + return Promise.reject({ status: res.status }); } public getAppVersion(): Promise { diff --git a/test/app-tests/loading-test.tsx b/test/app-tests/loading-test.tsx index f4387f2a55..8657c9b1a3 100644 --- a/test/app-tests/loading-test.tsx +++ b/test/app-tests/loading-test.tsx @@ -41,6 +41,7 @@ import { RoomView as RoomViewClass } from 'matrix-react-sdk/src/components/struc import LoginComponent from 'matrix-react-sdk/src/components/structures/auth/Login'; import WelcomeComponent from "matrix-react-sdk/src/components/views/auth/Welcome"; import EmbeddedPage from "matrix-react-sdk/src/components/structures/EmbeddedPage"; +import { AutoDiscovery } from 'matrix-js-sdk/src/matrix'; const DEFAULT_HS_URL='http://my_server'; const DEFAULT_IS_URL='http://my_is'; @@ -60,7 +61,7 @@ describe('loading:', function() { beforeEach(function() { httpBackend = new MockHttpBackend(); - jssdk.request(httpBackend.requestFn); + window.fetch = httpBackend.fetchFn; parentDiv = document.createElement('div'); // uncomment this to actually add the div to the UI, to help with @@ -73,21 +74,25 @@ describe('loading:', function() { afterEach(async function() { console.log(`${Date.now()}: loading: afterEach`); - if (parentDiv) { - ReactDOM.unmountComponentAtNode(parentDiv); - parentDiv.remove(); - parentDiv = null; - } - - // unmounting should have cleared the MatrixClientPeg - expect(MatrixClientPeg.get()).toBe(null); + try { + if (matrixChat) { + ReactDOM.unmountComponentAtNode(parentDiv); + parentDiv.remove(); + parentDiv = null; + } - // clear the indexeddbs so we can start from a clean slate next time. - await Promise.all([ - test_utils.deleteIndexedDB('matrix-js-sdk:crypto'), - test_utils.deleteIndexedDB('matrix-js-sdk:riot-web-sync'), - ]); - cleanLocalstorage(); + // unmounting should have cleared the MatrixClientPeg + expect(MatrixClientPeg.get()).toBe(null); + + // clear the indexeddbs so we can start from a clean slate next time. + await Promise.all([ + test_utils.deleteIndexedDB('matrix-js-sdk:crypto'), + test_utils.deleteIndexedDB('matrix-js-sdk:riot-web-sync'), + ]); + cleanLocalstorage(); + } catch (e) { + console.error(e); + } console.log(`${Date.now()}: loading: afterEach complete`); }); @@ -421,7 +426,6 @@ describe('loading:', function() { describe('Guest auto-registration:', function() { it('shows a welcome page by default', function() { - loadApp(); return sleep(1).then(() => { diff --git a/test/unit-tests/vector/getconfig-test.ts b/test/unit-tests/vector/getconfig-test.ts index 360b888d86..5702385106 100644 --- a/test/unit-tests/vector/getconfig-test.ts +++ b/test/unit-tests/vector/getconfig-test.ts @@ -14,14 +14,13 @@ See the License for the specific language governing permissions and limitations under the License. */ -import request from 'browser-request'; +import fetchMock from "fetch-mock-jest"; import { getVectorConfig } from "../../../src/vector/getconfig"; -describe('getVectorConfig()', () => { - const setRequestMockImplementationOnce = (err?: unknown, response?: { status: number }, body?: string) => - request.mockImplementationOnce((_opts, callback) => callback(err, response, body)); +fetchMock.config.overwriteRoutes = true; +describe('getVectorConfig()', () => { const prevDocumentDomain = document.domain; const elementDomain = 'app.element.io'; const now = 1234567890; @@ -38,6 +37,7 @@ describe('getVectorConfig()', () => { // stable value for cachebuster jest.spyOn(Date, 'now').mockReturnValue(now); jest.clearAllMocks(); + fetchMock.mockClear(); }); afterAll(() => { @@ -46,85 +46,67 @@ describe('getVectorConfig()', () => { }); it('requests specific config for document domain', async () => { - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(specificConfig)) - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:/config.app.element.io.json", specificConfig); + fetchMock.getOnce("express:/config.json", generalConfig); - await getVectorConfig(); - - expect(request.mock.calls[0][0]).toEqual({ method: "GET", url: 'config.app.element.io.json', qs: { cachebuster: now } }) + await expect(getVectorConfig()).resolves.toEqual(specificConfig); }); it('adds trailing slash to relativeLocation when not an empty string', async () => { - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(specificConfig)) - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) - - await getVectorConfig('..'); - - expect(request.mock.calls[0][0]).toEqual(expect.objectContaining({ url: '../config.app.element.io.json' })) - expect(request.mock.calls[1][0]).toEqual(expect.objectContaining({ url: '../config.json' })) - }); - - it('returns parsed specific config when it is non-empty', async () => { - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(specificConfig)) - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:../config.app.element.io.json", specificConfig); + fetchMock.getOnce("express:../config.json", generalConfig); - const result = await getVectorConfig(); - expect(result).toEqual(specificConfig); + await expect(getVectorConfig("..")).resolves.toEqual(specificConfig); }); it('returns general config when specific config succeeds but is empty', async () => { - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify({})) - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:/config.app.element.io.json", {}); + fetchMock.getOnce("express:/config.json", generalConfig); - const result = await getVectorConfig(); - expect(result).toEqual(generalConfig); + await expect(getVectorConfig()).resolves.toEqual(generalConfig); }); it('returns general config when specific config 404s', async () => { - setRequestMockImplementationOnce(undefined, { status: 404 }) - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:/config.app.element.io.json", { status: 404 }); + fetchMock.getOnce("express:/config.json", generalConfig); - const result = await getVectorConfig(); - expect(result).toEqual(generalConfig); + await expect(getVectorConfig()).resolves.toEqual(generalConfig); }); it('returns general config when specific config is fetched from a file and is empty', async () => { - setRequestMockImplementationOnce(undefined, { status: 0 }, '') - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:/config.app.element.io.json", 0); + fetchMock.getOnce("express:/config.json", generalConfig); - const result = await getVectorConfig(); - expect(result).toEqual(generalConfig); + await expect(getVectorConfig()).resolves.toEqual(generalConfig); }); it('returns general config when specific config returns a non-200 status', async () => { - setRequestMockImplementationOnce(undefined, { status: 401 }) - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:/config.app.element.io.json", { status: 401 }); + fetchMock.getOnce("express:/config.json", generalConfig); - const result = await getVectorConfig(); - expect(result).toEqual(generalConfig); + await expect(getVectorConfig()).resolves.toEqual(generalConfig); }); it('returns general config when specific config returns an error', async () => { - setRequestMockImplementationOnce('err1') - setRequestMockImplementationOnce(undefined, { status: 200 }, JSON.stringify(generalConfig)) + fetchMock.getOnce("express:/config.app.element.io.json", { throws: "err1" }); + fetchMock.getOnce("express:/config.json", generalConfig); - const result = await getVectorConfig(); - expect(result).toEqual(generalConfig); + await expect(getVectorConfig()).resolves.toEqual(generalConfig); }); it('rejects with an error when general config rejects', async () => { - setRequestMockImplementationOnce('err-specific'); - setRequestMockImplementationOnce('err-general'); + fetchMock.getOnce("express:/config.app.element.io.json", { throws: "err-specific" }); + fetchMock.getOnce("express:/config.json", { throws: "err-general" }); - await expect(() => getVectorConfig()).rejects.toEqual({"err": "err-general", "response": undefined}); + await expect(getVectorConfig()).rejects.toBe("err-general"); }); it('rejects with an error when config is invalid JSON', async () => { - setRequestMockImplementationOnce('err-specific'); - setRequestMockImplementationOnce(undefined, { status: 200 }, '{"invalid": "json",}'); + fetchMock.getOnce("express:/config.app.element.io.json", { throws: "err-specific" }); + fetchMock.getOnce("express:/config.json", '{"invalid": "json",}'); - await expect(() => getVectorConfig()).rejects.toEqual({ - err: new SyntaxError("Unexpected token } in JSON at position 19"), - }); + // We can't assert it'll be a SyntaxError as node-fetch behaves differently + // https://github.com/wheresrhys/fetch-mock/issues/270 + await expect(getVectorConfig()).rejects.toThrow("Unexpected token } in JSON at position 19"); }); }); diff --git a/test/unit-tests/vector/platform/WebPlatform-test.ts b/test/unit-tests/vector/platform/WebPlatform-test.ts index 7889adabe9..534da3f5ce 100644 --- a/test/unit-tests/vector/platform/WebPlatform-test.ts +++ b/test/unit-tests/vector/platform/WebPlatform-test.ts @@ -14,12 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -import request from 'browser-request'; +import fetchMock from "fetch-mock-jest"; import { UpdateCheckStatus } from 'matrix-react-sdk/src/BasePlatform'; import { MatrixClientPeg } from 'matrix-react-sdk/src/MatrixClientPeg'; import WebPlatform from '../../../../src/vector/platform/WebPlatform'; +fetchMock.config.overwriteRoutes = true; + describe('WebPlatform', () => { beforeEach(() => { jest.clearAllMocks(); @@ -120,9 +122,6 @@ describe('WebPlatform', () => { const envVersion = process.env.VERSION; const prodVersion = '1.10.13'; - const setRequestMockImplementation = (err?: unknown, response?: { status: number }, body?: string) => - request.mockImplementation((_opts, callback) => callback(err, response, body)); - beforeEach(() => { jest.spyOn(MatrixClientPeg, 'userRegisteredWithinLastHours').mockReturnValue(false); }) @@ -157,7 +156,7 @@ describe('WebPlatform', () => { describe('pollForUpdate()', () => { it('should return not available and call showNoUpdate when current version matches most recent version', async () => { process.env.VERSION = prodVersion; - setRequestMockImplementation(undefined, { status: 200}, prodVersion); + fetchMock.getOnce("/version", prodVersion); const platform = new WebPlatform(); const showUpdate = jest.fn(); @@ -171,7 +170,7 @@ describe('WebPlatform', () => { it('should strip v prefix from versions before comparing', async () => { process.env.VERSION = prodVersion; - setRequestMockImplementation(undefined, { status: 200}, `v${prodVersion}`); + fetchMock.getOnce("/version", `v${prodVersion}`); const platform = new WebPlatform(); const showUpdate = jest.fn(); @@ -186,7 +185,7 @@ describe('WebPlatform', () => { it('should return ready and call showUpdate when current version differs from most recent version', async () => { process.env.VERSION = '0.0.0'; // old version - setRequestMockImplementation(undefined, { status: 200}, prodVersion); + fetchMock.getOnce("/version", prodVersion); const platform = new WebPlatform(); const showUpdate = jest.fn(); @@ -201,7 +200,7 @@ describe('WebPlatform', () => { it('should return ready without showing update when user registered in last 24', async () => { process.env.VERSION = '0.0.0'; // old version jest.spyOn(MatrixClientPeg, 'userRegisteredWithinLastHours').mockReturnValue(true); - setRequestMockImplementation(undefined, { status: 200}, prodVersion); + fetchMock.getOnce("/version", prodVersion); const platform = new WebPlatform(); const showUpdate = jest.fn(); @@ -214,7 +213,7 @@ describe('WebPlatform', () => { }); it('should return error when version check fails', async () => { - setRequestMockImplementation('oups'); + fetchMock.getOnce("/version", { throws: "oups" }); const platform = new WebPlatform(); const showUpdate = jest.fn(); diff --git a/yarn.lock b/yarn.lock index 2a7028bd52..d7c4cc455f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -47,7 +47,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.3.tgz#707b939793f867f5a73b2666e6d9a3396eb03151" integrity sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw== -"@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3": +"@babel/core@^7.0.0", "@babel/core@^7.11.6", "@babel/core@^7.12.10", "@babel/core@^7.12.3": version "7.19.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== @@ -3978,6 +3978,11 @@ core-js@^2.4.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== +core-js@^3.0.0: + version "3.25.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.25.5.tgz#e86f651a2ca8a0237a5f064c2fe56cef89646e27" + integrity sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw== + core-js@^3.4: version "3.24.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" @@ -5670,6 +5675,29 @@ fbjs@^0.8.4: setimmediate "^1.0.5" ua-parser-js "^0.7.30" +fetch-mock-jest@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/fetch-mock-jest/-/fetch-mock-jest-1.5.1.tgz#0e13df990d286d9239e284f12b279ed509bf53cd" + integrity sha512-+utwzP8C+Pax1GSka3nFXILWMY3Er2L+s090FOgqVNrNCPp0fDqgXnAHAJf12PLHi0z4PhcTaZNTz8e7K3fjqQ== + dependencies: + fetch-mock "^9.11.0" + +fetch-mock@^9.11.0: + version "9.11.0" + resolved "https://registry.yarnpkg.com/fetch-mock/-/fetch-mock-9.11.0.tgz#371c6fb7d45584d2ae4a18ee6824e7ad4b637a3f" + integrity sha512-PG1XUv+x7iag5p/iNHD4/jdpxL9FtVSqRMUQhPab4hVDt80T1MH5ehzVrL2IdXO9Q2iBggArFvPqjUbHFuI58Q== + dependencies: + "@babel/core" "^7.0.0" + "@babel/runtime" "^7.0.0" + core-js "^3.0.0" + debug "^4.1.1" + glob-to-regexp "^0.4.0" + is-subset "^0.1.1" + lodash.isequal "^4.5.0" + path-to-regexp "^2.2.1" + querystring "^0.2.0" + whatwg-url "^6.5.0" + fflate@^0.4.1: version "0.4.8" resolved "https://registry.yarnpkg.com/fflate/-/fflate-0.4.8.tgz#f90b82aefbd8ac174213abb338bd7ef848f0f5ae" @@ -6139,7 +6167,7 @@ glob-to-regexp@^0.3.0: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== -glob-to-regexp@^0.4.1: +glob-to-regexp@^0.4.0, glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== @@ -7179,6 +7207,11 @@ is-string@^1.0.5, is-string@^1.0.7: dependencies: has-tostringtag "^1.0.0" +is-subset@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6" + integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw== + is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" @@ -8095,6 +8128,11 @@ lodash.debounce@^4.0.8: resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ== + lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" @@ -8105,6 +8143,11 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== +lodash.sortby@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" + integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== + lodash.truncate@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" @@ -8285,10 +8328,10 @@ matrix-events-sdk@^0.0.1-beta.7: request "^2.88.2" unhomoglyph "^1.0.6" -matrix-mock-request@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/matrix-mock-request/-/matrix-mock-request-2.1.2.tgz#11e38ed1233dced88a6f2bfba1684d5c5b3aa2c2" - integrity sha512-/OXCIzDGSLPJ3fs+uzDrtaOHI/Sqp4iEuniRn31U8S06mPXbvAnXknHqJ4c6A/KVwJj/nPFbGXpK4wPM038I6A== +matrix-mock-request@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/matrix-mock-request/-/matrix-mock-request-2.5.0.tgz#78da2590e82be2e31edcf9814833af5e5f8d2f1a" + integrity sha512-7T3gklpW+4rfHsTnp/FDML7aWoBrXhAh8+1ltinQfAh9TDj6y382z/RUMR7i03d1WDzt/ed1UTihqO5GDoOq9Q== dependencies: expect "^28.1.0" @@ -9421,6 +9464,11 @@ path-to-regexp@0.1.7: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== +path-to-regexp@^2.2.1: + version "2.4.0" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-2.4.0.tgz#35ce7f333d5616f1c1e1bfe266c3aba2e5b2e704" + integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -10488,6 +10536,11 @@ querystring@0.2.0: resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== +querystring@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd" + integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg== + querystringify@^2.1.1: version "2.2.0" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" @@ -12181,6 +12234,13 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" +tr46@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" + integrity sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA== + dependencies: + punycode "^2.1.0" + tr46@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" @@ -12903,6 +12963,15 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +whatwg-url@^6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" + integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== + dependencies: + lodash.sortby "^4.7.0" + tr46 "^1.0.1" + webidl-conversions "^4.0.2" + whatwg-url@^8.4.0: version "8.7.0" resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" From 66798c75b5f60747c4632eb46d433489a5ccdaa3 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 13 Oct 2022 05:52:38 +0100 Subject: [PATCH 15/38] Trim /version file response (#23473) --- src/vector/platform/WebPlatform.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index 2800f27a4c..578c0163c3 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -93,7 +93,8 @@ export default class WebPlatform extends VectorBasePlatform { }); if (res.ok) { - return getNormalizedAppVersion(await res.text()); + const text = await res.text(); + return getNormalizedAppVersion(text.trim()); } return Promise.reject({ status: res.status }); From aa6b1d128ac9686de65471a868475509915e982a Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 13 Oct 2022 09:00:39 +0100 Subject: [PATCH 16/38] Fix dockerhub builds (#23477) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6e888088a0..2438ae6fb8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Builder -FROM node:14-buster as builder +FROM node:16-buster as builder # Support custom branches of the react-sdk and js-sdk. This also helps us build # images of element-web develop. From 172f2f3993040f1daf231812d39c3f0d108986ed Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 13 Oct 2022 09:22:34 +0100 Subject: [PATCH 17/38] Fix tests and convert to RTL (#23474) --- .eslintrc.js | 10 +- package.json | 6 +- src/vector/platform/WebPlatform.ts | 3 +- test/.eslintrc.js | 5 - test/app-tests/loading-test.tsx | 306 +++++------------- test/{jest-mocks.js => jest-mocks.ts} | 16 + test/{test-utils.js => test-utils.ts} | 28 +- test/unit-tests/vector/getconfig-test.ts | 4 +- .../vector/platform/ElectronPlatform-test.ts | 78 +++-- .../vector/platform/WebPlatform-test.ts | 19 +- test/unit-tests/vector/url_utils-test.ts | 1 + tsconfig.json | 4 +- yarn.lock | 10 - 13 files changed, 191 insertions(+), 299 deletions(-) delete mode 100644 test/.eslintrc.js rename test/{jest-mocks.js => jest-mocks.ts} (50%) rename test/{test-utils.js => test-utils.ts} (55%) diff --git a/.eslintrc.js b/.eslintrc.js index 4f742befad..a4bf0f7395 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -14,11 +14,15 @@ module.exports = { }, settings: { react: { - version: 'detect' - } + version: 'detect', + }, }, overrides: [{ - files: ["src/**/*.{ts,tsx}", "module_system/**/*.{ts,tsx}"], + files: [ + "src/**/*.{ts,tsx}", + "test/**/*.{ts,tsx}", + "module_system/**/*.{ts,tsx}", + ], extends: [ "plugin:matrix-org/typescript", "plugin:matrix-org/react", diff --git a/package.json b/package.json index 0231c95643..c3c75b0ba7 100644 --- a/package.json +++ b/package.json @@ -46,8 +46,8 @@ "start:res": "yarn build:jitsi && node scripts/copy-res.js -w", "start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --mode development --disable-host-check --hot", "lint": "yarn lint:types && yarn lint:js && yarn lint:style", - "lint:js": "eslint --max-warnings 0 src module_system", - "lint:js-fix": "eslint --fix src module_system", + "lint:js": "eslint --max-warnings 0 src module_system test", + "lint:js-fix": "eslint --fix src module_system test", "lint:types": "tsc --noEmit --jsx react && tsc --noEmit --project ./tsconfig.module_system.json", "lint:style": "stylelint \"res/css/**/*.pcss\"", "test": "jest", @@ -57,7 +57,6 @@ "dependencies": { "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@matrix-org/react-sdk-module-api": "^0.0.3", - "browser-request": "^0.3.3", "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", @@ -132,7 +131,6 @@ "json-loader": "^0.5.7", "loader-utils": "^1.4.0", "matrix-mock-request": "^2.5.0", - "matrix-react-test-utils": "^0.2.3", "matrix-web-i18n": "^1.3.0", "mini-css-extract-plugin": "^1", "minimist": "^1.2.6", diff --git a/src/vector/platform/WebPlatform.ts b/src/vector/platform/WebPlatform.ts index 578c0163c3..4a1f8140c4 100644 --- a/src/vector/platform/WebPlatform.ts +++ b/src/vector/platform/WebPlatform.ts @@ -137,7 +137,8 @@ export default class WebPlatform extends VectorBasePlatform { return true; } - private pollForUpdate = ( + // Exported for tests + public pollForUpdate = ( showUpdate: (currentVersion: string, mostRecentVersion: string) => void, showNoUpdate?: () => void, ): Promise => { diff --git a/test/.eslintrc.js b/test/.eslintrc.js deleted file mode 100644 index 4cc4659d7d..0000000000 --- a/test/.eslintrc.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - env: { - mocha: true, - }, -} diff --git a/test/app-tests/loading-test.tsx b/test/app-tests/loading-test.tsx index 8657c9b1a3..d9b9008387 100644 --- a/test/app-tests/loading-test.tsx +++ b/test/app-tests/loading-test.tsx @@ -17,34 +17,26 @@ limitations under the License. /* loading.js: test the myriad paths we have for loading the application */ -import PlatformPeg from 'matrix-react-sdk/src/PlatformPeg'; -import WebPlatform from '../../src/vector/platform/WebPlatform'; -import "../jest-mocks"; +import "fake-indexeddb/auto"; import React from 'react'; -import ReactDOM from 'react-dom'; -import ReactTestUtils from 'react-dom/test-utils'; -import MatrixReactTestUtils from 'matrix-react-test-utils'; -import * as jssdk from 'matrix-js-sdk/src/matrix'; -import {MatrixClientPeg} from 'matrix-react-sdk/src/MatrixClientPeg'; -import MatrixChat, {Views} from 'matrix-react-sdk/src/components/structures/MatrixChat'; +import { render, screen, fireEvent, waitFor, RenderResult, waitForElementToBeRemoved } from "@testing-library/react"; +import PlatformPeg from 'matrix-react-sdk/src/PlatformPeg'; +import { MatrixClientPeg } from 'matrix-react-sdk/src/MatrixClientPeg'; +import MatrixChat from 'matrix-react-sdk/src/components/structures/MatrixChat'; import dis from 'matrix-react-sdk/src/dispatcher/dispatcher'; -import * as test_utils from '../test-utils'; import MockHttpBackend from 'matrix-mock-request'; -import {parseQs, parseQsFromFragment} from '../../src/vector/url_utils'; -import {makeType} from "matrix-react-sdk/src/utils/TypeUtils"; +import { makeType } from "matrix-react-sdk/src/utils/TypeUtils"; import { ValidatedServerConfig } from 'matrix-react-sdk/src/utils/ValidatedServerConfig'; -import {sleep} from "../test-utils"; -import "fake-indexeddb/auto"; -import {cleanLocalstorage} from "../test-utils"; -import {IndexedDBCryptoStore} from "matrix-js-sdk/src/crypto/store/indexeddb-crypto-store"; -import { RoomView as RoomViewClass } from 'matrix-react-sdk/src/components/structures/RoomView'; -import LoginComponent from 'matrix-react-sdk/src/components/structures/auth/Login'; -import WelcomeComponent from "matrix-react-sdk/src/components/views/auth/Welcome"; -import EmbeddedPage from "matrix-react-sdk/src/components/structures/EmbeddedPage"; -import { AutoDiscovery } from 'matrix-js-sdk/src/matrix'; +import { IndexedDBCryptoStore } from "matrix-js-sdk/src/crypto/store/indexeddb-crypto-store"; +import { sleep } from "matrix-js-sdk/src/utils"; + +import "../jest-mocks"; +import WebPlatform from '../../src/vector/platform/WebPlatform'; +import { parseQs, parseQsFromFragment } from '../../src/vector/url_utils'; +import { cleanLocalstorage, deleteIndexedDB } from "../test-utils"; -const DEFAULT_HS_URL='http://my_server'; -const DEFAULT_IS_URL='http://my_is'; +const DEFAULT_HS_URL = 'http://my_server'; +const DEFAULT_IS_URL = 'http://my_is'; describe('loading:', function() { let parentDiv; @@ -54,7 +46,7 @@ describe('loading:', function() { let windowLocation; // the mounted MatrixChat - let matrixChat; + let matrixChat: RenderResult; // a promise which resolves when the MatrixChat calls onTokenLoginCompleted let tokenLoginCompletePromise; @@ -74,25 +66,16 @@ describe('loading:', function() { afterEach(async function() { console.log(`${Date.now()}: loading: afterEach`); - try { - if (matrixChat) { - ReactDOM.unmountComponentAtNode(parentDiv); - parentDiv.remove(); - parentDiv = null; - } - - // unmounting should have cleared the MatrixClientPeg - expect(MatrixClientPeg.get()).toBe(null); - - // clear the indexeddbs so we can start from a clean slate next time. - await Promise.all([ - test_utils.deleteIndexedDB('matrix-js-sdk:crypto'), - test_utils.deleteIndexedDB('matrix-js-sdk:riot-web-sync'), - ]); - cleanLocalstorage(); - } catch (e) { - console.error(e); - } + matrixChat?.unmount(); + // unmounting should have cleared the MatrixClientPeg + expect(MatrixClientPeg.get()).toBe(null); + + // clear the indexeddbs so we can start from a clean slate next time. + await Promise.all([ + deleteIndexedDB('matrix-js-sdk:crypto'), + deleteIndexedDB('matrix-js-sdk:riot-web-sync'), + ]); + cleanLocalstorage(); console.log(`${Date.now()}: loading: afterEach complete`); }); @@ -149,8 +132,8 @@ describe('loading:', function() { const params = parseQs(windowLocation); - tokenLoginCompletePromise = new Promise(resolve => { - matrixChat = ReactDOM.render( + tokenLoginCompletePromise = new Promise(resolve => { + matrixChat = render( {syncRequest = r;}) @@ -202,10 +186,10 @@ describe('loading:', function() { it('gives a welcome page by default', function() { loadApp(); - return sleep(1).then(() => { + return sleep(1).then(async () => { // at this point, we're trying to do a guest registration; // we expect a spinner - assertAtLoadingSpinner(matrixChat); + await assertAtLoadingSpinner(); httpBackend.when('POST', '/register').check(function(req) { expect(req.queryParams.kind).toEqual('guest'); @@ -216,7 +200,7 @@ describe('loading:', function() { // Wait for another trip around the event loop for the UI to update return awaitWelcomeComponent(matrixChat); }).then(() => { - expect(windowLocation.hash).toEqual("#/welcome"); + return waitFor(() => expect(windowLocation.hash).toEqual("#/welcome")); }); }); @@ -226,13 +210,13 @@ describe('loading:', function() { }); // Pass the liveliness checks - httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]}); + httpBackend.when("GET", "/versions").respond(200, { versions: ["r0.4.0"] }); httpBackend.when("GET", "/api/v1").respond(200, {}); - return sleep(1).then(() => { + return sleep(1).then(async () => { // at this point, we're trying to do a guest registration; // we expect a spinner - assertAtLoadingSpinner(matrixChat); + await assertAtLoadingSpinner(); httpBackend.when('POST', '/register').check(function(req) { expect(req.queryParams.kind).toEqual('guest'); @@ -261,19 +245,20 @@ describe('loading:', function() { }); }); - it('should not register as a guest when using a #/login link', function() { + it.skip('should not register as a guest when using a #/login link', function() { loadApp({ uriFragment: "#/login", }); // Pass the liveliness checks - httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]}); + httpBackend.when("GET", "/versions").respond(200, { versions: ["r0.4.0"] }); httpBackend.when("GET", "/api/v1").respond(200, {}); - return awaitLoginComponent(matrixChat).then(() => { + return awaitLoginComponent(matrixChat).then(async () => { + await waitForElementToBeRemoved(() => screen.queryAllByLabelText("Loading...")); // we expect a single component - ReactTestUtils.findRenderedComponentWithType( - matrixChat, LoginComponent); + await screen.findByRole("main"); + screen.getAllByText("Sign in"); // the only outstanding request should be a GET /login // (in particular there should be no /register request for @@ -292,9 +277,7 @@ describe('loading:', function() { } return completeLogin(matrixChat); }).then(() => { - // once the sync completes, we should have a room view - ReactTestUtils.findRenderedComponentWithType( - matrixChat, EmbeddedPage); + expect(matrixChat.container.querySelector(".mx_HomePage")).toBeTruthy(); expect(windowLocation.hash).toEqual("#/home"); }); }); @@ -302,8 +285,8 @@ describe('loading:', function() { describe("MatrixClient rehydrated from stored credentials:", function() { beforeEach(async function() { - localStorage.setItem("mx_hs_url", "http://localhost" ); - localStorage.setItem("mx_is_url", "http://localhost" ); + localStorage.setItem("mx_hs_url", "http://localhost"); + localStorage.setItem("mx_is_url", "http://localhost"); localStorage.setItem("mx_access_token", "access_token"); localStorage.setItem("mx_user_id", "@me:localhost"); localStorage.setItem("mx_last_room_id", "!last_room:id"); @@ -317,8 +300,6 @@ describe('loading:', function() { }); it('shows the last known room by default', function() { - httpBackend.when('GET', '/pushrules').respond(200, {}); - loadApp(); return awaitLoggedIn(matrixChat).then(() => { @@ -336,8 +317,6 @@ describe('loading:', function() { it('shows a home page by default if we have no joined rooms', function() { localStorage.removeItem("mx_last_room_id"); - httpBackend.when('GET', '/pushrules').respond(200, {}); - loadApp(); return awaitLoggedIn(matrixChat).then(() => { @@ -346,15 +325,12 @@ describe('loading:', function() { }).then(() => { // once the sync completes, we should have a home page httpBackend.verifyNoOutstandingExpectation(); - ReactTestUtils.findRenderedComponentWithType( - matrixChat, EmbeddedPage); + expect(matrixChat.container.querySelector(".mx_HomePage")).toBeTruthy(); expect(windowLocation.hash).toEqual("#/home"); }); }); it('shows a room view if we followed a room link', function() { - httpBackend.when('GET', '/pushrules').respond(200, {}); - loadApp({ uriFragment: "#/room/!room:id", }); @@ -378,48 +354,14 @@ describe('loading:', function() { }); // give the UI a chance to display - return awaitLoginComponent(matrixChat); + return expectAndAwaitSync(); }); - it('shows a login view', function() { - // Pass the liveliness checks - httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]}); - httpBackend.when("GET", "/api/v1").respond(200, {}); - - // we expect a single component - ReactTestUtils.findRenderedComponentWithType( - matrixChat, LoginComponent, - ); - - // the only outstanding request should be a GET /login - // (in particular there should be no /register request for - // guest registration, nor /sync, etc). - const allowedRequests = [ - "/_matrix/client/r0/login", - "/versions", - "/api/v1", - ]; - for (const req of httpBackend.requests) { - if (req.method === 'GET' && allowedRequests.find(p => req.path.endsWith(p))) { - continue; - } - - throw new Error(`Unexpected HTTP request to ${req}`); - } - }); + it('does not show a login view', async function() { + await awaitRoomView(matrixChat); - it('shows the homepage after login', function() { - // Pass the liveliness checks - httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]}); - httpBackend.when("GET", "/api/v1").respond(200, {}); - - return completeLogin(matrixChat).then(() => { - // we should see a home page, even though we previously had - // a stored mx_last_room_id - ReactTestUtils.findRenderedComponentWithType( - matrixChat, EmbeddedPage); - expect(windowLocation.hash).toEqual("#/home"); - }); + await screen.findByLabelText("Spaces"); + expect(screen.queryAllByText("Sign in")).toHaveLength(0); }); }); }); @@ -428,10 +370,10 @@ describe('loading:', function() { it('shows a welcome page by default', function() { loadApp(); - return sleep(1).then(() => { + return sleep(1).then(async () => { // at this point, we're trying to do a guest registration; // we expect a spinner - assertAtLoadingSpinner(matrixChat); + await assertAtLoadingSpinner(); httpBackend.when('POST', '/register').check(function(req) { expect(req.queryParams.kind).toEqual('guest'); @@ -445,24 +387,22 @@ describe('loading:', function() { return awaitLoggedIn(matrixChat); }).then(() => { // we are logged in - let the sync complete - return expectAndAwaitSync({isGuest: true}); + return expectAndAwaitSync({ isGuest: true }); }).then(() => { // once the sync completes, we should have a welcome page httpBackend.verifyNoOutstandingExpectation(); - ReactTestUtils.findRenderedComponentWithType( - matrixChat, WelcomeComponent); + expect(matrixChat.container.querySelector(".mx_Welcome")).toBeTruthy(); expect(windowLocation.hash).toEqual("#/welcome"); }); }); it('uses the default homeserver to register with', function() { - loadApp(); - return sleep(1).then(() => { + return sleep(1).then(async () => { // at this point, we're trying to do a guest registration; // we expect a spinner - assertAtLoadingSpinner(matrixChat); + await assertAtLoadingSpinner(); httpBackend.when('POST', '/register').check(function(req) { expect(req.path.startsWith(DEFAULT_HS_URL)).toBe(true); @@ -476,14 +416,13 @@ describe('loading:', function() { }).then(() => { return awaitLoggedIn(matrixChat); }).then(() => { - return expectAndAwaitSync({isGuest: true}); + return expectAndAwaitSync({ isGuest: true }); }).then((req) => { expect(req.path.startsWith(DEFAULT_HS_URL)).toBe(true); // once the sync completes, we should have a welcome page httpBackend.verifyNoOutstandingExpectation(); - ReactTestUtils.findRenderedComponentWithType( - matrixChat, WelcomeComponent); + expect(matrixChat.container.querySelector(".mx_Welcome")).toBeTruthy(); expect(windowLocation.hash).toEqual("#/welcome"); expect(MatrixClientPeg.get().baseUrl).toEqual(DEFAULT_HS_URL); expect(MatrixClientPeg.get().idBaseUrl).toEqual(DEFAULT_IS_URL); @@ -491,14 +430,13 @@ describe('loading:', function() { }); it('shows a room view if we followed a room link', function() { - loadApp({ uriFragment: "#/room/!room:id", }); - return sleep(1).then(() => { + return sleep(1).then(async () => { // at this point, we're trying to do a guest registration; // we expect a spinner - assertAtLoadingSpinner(matrixChat); + await assertAtLoadingSpinner(); httpBackend.when('POST', '/register').check(function(req) { expect(req.queryParams.kind).toEqual('guest'); @@ -511,7 +449,7 @@ describe('loading:', function() { }).then(() => { return awaitLoggedIn(matrixChat); }).then(() => { - return expectAndAwaitSync({isGuest: true}); + return expectAndAwaitSync({ isGuest: true }); }).then(() => { // once the sync completes, we should have a room view return awaitRoomView(matrixChat); @@ -523,7 +461,6 @@ describe('loading:', function() { describe('Login as user', function() { beforeEach(function() { - // first we have to load the homepage loadApp(); @@ -539,10 +476,9 @@ describe('loading:', function() { }).then(() => { // we got a sync spinner - let the sync complete return expectAndAwaitSync(); - }).then(() => { + }).then(async () => { // once the sync completes, we should have a home page - ReactTestUtils.findRenderedComponentWithType( - matrixChat, EmbeddedPage); + await waitFor(() => matrixChat.container.querySelector(".mx_HomePage")); // we simulate a click on the 'login' button by firing off // the relevant dispatch. @@ -559,40 +495,13 @@ describe('loading:', function() { }); }); - it('should give us a login page', function() { - expect(windowLocation.hash).toEqual("#/login"); - + it('should give us a login page', async function() { // we expect a single component - ReactTestUtils.findRenderedComponentWithType( - matrixChat, LoginComponent, - ); - }); + await screen.findByRole("main"); + screen.getAllByText("Sign in"); - /* - // ILAG renders this obsolete. I think. - it('should allow us to return to the app', function() { - const login = ReactTestUtils.findRenderedComponentWithType( - matrixChat, LoginComponent - ); - - const linkText = 'Return to app'; - - const returnToApp = ReactTestUtils.scryRenderedDOMComponentsWithTag( - login, 'a').find((e) => e.innerText === linkText); - - if (!returnToApp) { - throw new Error(`Couldn't find '${linkText}' link`); - } - - ReactTestUtils.Simulate.click(returnToApp); - - return sleep(1).then(() => { - // we should be straight back into the home page - ReactTestUtils.findRenderedComponentWithType( - matrixChat, EmbeddedPage); - }); + expect(windowLocation.hash).toEqual("#/login"); }); - */ }); }); @@ -604,9 +513,9 @@ describe('loading:', function() { queryString: "?loginToken=secretToken", }); - return sleep(1).then(() => { + return sleep(1).then(async () => { // we expect a spinner while we're logging in - assertAtLoadingSpinner(matrixChat); + await assertAtLoadingSpinner(); httpBackend.when('POST', '/login').check(function(req) { expect(req.path).toMatch(new RegExp("^https://homeserver/")); @@ -639,15 +548,11 @@ describe('loading:', function() { // check that we have a Login component, send a 'user:pass' login, // and await the HTTP requests. - async function completeLogin(matrixChat) { - // we expect a single component - const login = ReactTestUtils.findRenderedComponentWithType( - matrixChat, LoginComponent); - + async function completeLogin(matrixChat: RenderResult) { // When we switch to the login component, it'll hit the login endpoint // for proof of life and to get flows. We'll only give it one option. httpBackend.when('GET', '/login') - .respond(200, {"flows": [{"type": "m.login.password"}]}); + .respond(200, { flows: [{ type: "m.login.password" }] }); httpBackend.flush(); // We already would have tried the GET /login request // Give the component some time to finish processing the login flows before @@ -664,13 +569,14 @@ describe('loading:', function() { device_id: 'DEVICE_ID', access_token: 'access_token', }); - login.onPasswordLogin("user", undefined, undefined, "pass"); + fireEvent.change(matrixChat.container.querySelector("#mx_LoginForm_username"), { target: { value: "user" } }); + fireEvent.change(matrixChat.container.querySelector("#mx_LoginForm_password"), { target: { value: "pass" } }); + fireEvent.click(screen.getByText("Sign in", { selector: ".mx_Login_submit" })); return httpBackend.flush().then(() => { // Wait for another trip around the event loop for the UI to update return sleep(1); }).then(() => { - httpBackend.when('GET', '/pushrules').respond(200, {}); return expectAndAwaitSync().catch((e) => { throw new Error("Never got /sync after login: did the client start?"); }); @@ -681,18 +587,13 @@ describe('loading:', function() { }); // assert that we are on the loading page -function assertAtLoadingSpinner(matrixChat) { - const domComponent = ReactDOM.findDOMNode(matrixChat) as Element; - expect(domComponent.className).toEqual("mx_MatrixChat_splash"); - - // just the spinner - expect(domComponent.children.length).toEqual(1); +async function assertAtLoadingSpinner() { + await screen.findByRole("progressbar"); } -function awaitLoggedIn(matrixChat) { - if (matrixChat.state.view === Views.LOGGED_IN) { - return Promise.resolve(); - } +async function awaitLoggedIn(matrixChat: RenderResult) { + if (matrixChat.container.querySelector(".mx_MatrixChat_wrapper")) return; // already logged in + return new Promise(resolve => { const onAction = ({ action }) => { if (action !== "on_logged_in") { @@ -700,55 +601,26 @@ function awaitLoggedIn(matrixChat) { } console.log(Date.now() + ": Received on_logged_in action"); dis.unregister(dispatcherRef); - resolve(undefined); + resolve(sleep(1)); }; const dispatcherRef = dis.register(onAction); console.log(Date.now() + ": Waiting for on_logged_in action"); }); } -function awaitRoomView(matrixChat, retryLimit?, retryCount?) { - if (retryLimit === undefined) { - retryLimit = 5; - } - if (retryCount === undefined) { - retryCount = 0; - } - - if (matrixChat.state.view !== Views.LOGGED_IN || !matrixChat.state.ready) { - console.log(Date.now() + " Awaiting room view: not ready yet."); - if (retryCount >= retryLimit) { - throw new Error("MatrixChat still not ready after " + - retryCount + " tries"); - } - return sleep(0).then(() => { - return awaitRoomView(matrixChat, retryLimit, retryCount + 1); - }); - } - - console.log(Date.now() + " Awaiting room view: now ready."); - - // state looks good, check the rendered output - ReactTestUtils.findRenderedComponentWithType( - matrixChat, RoomViewClass); - return Promise.resolve(); +async function awaitRoomView(matrixChat: RenderResult) { + await waitFor(() => matrixChat.container.querySelector(".mx_RoomView")); } -function awaitLoginComponent(matrixChat, attempts?) { - return MatrixReactTestUtils.waitForRenderedComponentWithType( - matrixChat, LoginComponent, attempts, - ); +async function awaitLoginComponent(matrixChat: RenderResult) { + await waitFor(() => matrixChat.container.querySelector(".mx_AuthPage")); } -function awaitWelcomeComponent(matrixChat, attempts?) { - return MatrixReactTestUtils.waitForRenderedComponentWithType( - matrixChat, WelcomeComponent, attempts, - ); +async function awaitWelcomeComponent(matrixChat: RenderResult) { + await waitFor(() => matrixChat.container.querySelector(".mx_Welcome")); } -function moveFromWelcomeToLogin(matrixChat) { - ReactTestUtils.findRenderedComponentWithType( - matrixChat, WelcomeComponent); +function moveFromWelcomeToLogin(matrixChat: RenderResult) { dis.dispatch({ action: 'start_login' }); return awaitLoginComponent(matrixChat); } diff --git a/test/jest-mocks.js b/test/jest-mocks.ts similarity index 50% rename from test/jest-mocks.js rename to test/jest-mocks.ts index 6e1ea8a605..7a5503667a 100644 --- a/test/jest-mocks.js +++ b/test/jest-mocks.ts @@ -1,3 +1,19 @@ +/* +Copyright 2020-2022 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + // https://jestjs.io/docs/en/manual-mocks#mocking-methods-which-are-not-implemented-in-jsdom Object.defineProperty(window, 'matchMedia', { writable: true, diff --git a/test/test-utils.js b/test/test-utils.ts similarity index 55% rename from test/test-utils.js rename to test/test-utils.ts index 734f96067b..2960d4f83c 100644 --- a/test/test-utils.js +++ b/test/test-utils.ts @@ -1,9 +1,25 @@ -export function cleanLocalstorage() { +/* +Copyright 2016-2022 The Matrix.org Foundation C.I.C. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +export function cleanLocalstorage(): void { window.localStorage.clear(); } -export function deleteIndexedDB(dbName) { - return new Promise((resolve, reject) => { +export function deleteIndexedDB(dbName: string): Promise { + return new Promise((resolve, reject) => { if (!window.indexedDB) { resolve(); return; @@ -19,7 +35,7 @@ export function deleteIndexedDB(dbName) { req.onerror = (ev) => { reject(new Error( - `${Date.now()}: unable to delete indexeddb ${dbName}: ${ev.target.error}`, + `${Date.now()}: unable to delete indexeddb ${dbName}: ${req.error}`, )); }; @@ -33,7 +49,3 @@ export function deleteIndexedDB(dbName) { throw e; }); } - -export function sleep(ms) { - return new Promise((resolve) => { setTimeout(resolve, ms); }); -} diff --git a/test/unit-tests/vector/getconfig-test.ts b/test/unit-tests/vector/getconfig-test.ts index 5702385106..3e205fe83e 100644 --- a/test/unit-tests/vector/getconfig-test.ts +++ b/test/unit-tests/vector/getconfig-test.ts @@ -26,10 +26,10 @@ describe('getVectorConfig()', () => { const now = 1234567890; const specificConfig = { brand: 'specific', - } + }; const generalConfig = { brand: 'general', - } + }; beforeEach(() => { document.domain = elementDomain; diff --git a/test/unit-tests/vector/platform/ElectronPlatform-test.ts b/test/unit-tests/vector/platform/ElectronPlatform-test.ts index b76e045043..f96506d0a8 100644 --- a/test/unit-tests/vector/platform/ElectronPlatform-test.ts +++ b/test/unit-tests/vector/platform/ElectronPlatform-test.ts @@ -14,28 +14,25 @@ See the License for the specific language governing permissions and limitations under the License. */ -import request from 'browser-request'; -import EventEmitter from 'events'; import { logger } from 'matrix-js-sdk/src/logger'; -import { MatrixClient, MatrixEvent, Room } from 'matrix-js-sdk/src/matrix'; +import { MatrixEvent, Room } from 'matrix-js-sdk/src/matrix'; import { UpdateCheckStatus } from 'matrix-react-sdk/src/BasePlatform'; import { Action } from 'matrix-react-sdk/src/dispatcher/actions'; import dispatcher from 'matrix-react-sdk/src/dispatcher/dispatcher'; -import { MatrixClientPeg } from 'matrix-react-sdk/src/MatrixClientPeg'; import * as rageshake from 'matrix-react-sdk/src/rageshake/rageshake'; import ElectronPlatform from '../../../../src/vector/platform/ElectronPlatform'; jest.mock('matrix-react-sdk/src/rageshake/rageshake', () => ({ - flush: jest.fn() -})) - + flush: jest.fn(), +})); describe('ElectronPlatform', () => { - const defaultUserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'; + const defaultUserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 ' + + '(KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36'; const mockElectron = { on: jest.fn(), - send: jest.fn() + send: jest.fn(), }; const dispatchSpy = jest.spyOn(dispatcher, 'dispatch'); @@ -58,25 +55,25 @@ describe('ElectronPlatform', () => { it('flushes rageshake before quitting', () => { new ElectronPlatform(); - const [event, handler] = getElectronEventHandlerCall('before-quit'); - // correct event bound - expect(event).toBeTruthy(); + const [event, handler] = getElectronEventHandlerCall('before-quit'); + // correct event bound + expect(event).toBeTruthy(); - handler(); + handler(); - expect(logSpy).toHaveBeenCalled(); - expect(rageshake.flush).toHaveBeenCalled(); + expect(logSpy).toHaveBeenCalled(); + expect(rageshake.flush).toHaveBeenCalled(); }); it('dispatches view settings action on preferences event', () => { new ElectronPlatform(); - const [event, handler] = getElectronEventHandlerCall('preferences'); - // correct event bound - expect(event).toBeTruthy(); + const [event, handler] = getElectronEventHandlerCall('preferences'); + // correct event bound + expect(event).toBeTruthy(); - handler(); + handler(); - expect(dispatchFireSpy).toHaveBeenCalledWith(Action.ViewUserSettings); + expect(dispatchFireSpy).toHaveBeenCalledWith(Action.ViewUserSettings); }); describe('updates', () => { @@ -85,39 +82,38 @@ describe('ElectronPlatform', () => { const [event, handler] = getElectronEventHandlerCall('check_updates'); // correct event bound expect(event).toBeTruthy(); - + handler({}, true); expect(dispatchSpy).toHaveBeenCalledWith({ action: Action.CheckUpdates, - status: UpdateCheckStatus.Downloading - }) + status: UpdateCheckStatus.Downloading, + }); }); it('dispatches on check updates action when update not available', () => { new ElectronPlatform(); const [, handler] = getElectronEventHandlerCall('check_updates'); - + handler({}, false); expect(dispatchSpy).toHaveBeenCalledWith({ action: Action.CheckUpdates, - status: UpdateCheckStatus.NotAvailable - }) + status: UpdateCheckStatus.NotAvailable, + }); }); it('starts update check', () => { const platform = new ElectronPlatform(); platform.startUpdateCheck(); - expect(mockElectron.send).toHaveBeenCalledWith('check_updates') + expect(mockElectron.send).toHaveBeenCalledWith('check_updates'); }); it('installs update', () => { const platform = new ElectronPlatform(); platform.installUpdate(); - expect(mockElectron.send).toHaveBeenCalledWith('install_update') + expect(mockElectron.send).toHaveBeenCalledWith('install_update'); }); }); - it('returns human readable name', () => { const platform = new ElectronPlatform(); expect(platform.getHumanReadableName()).toEqual('Electron Platform'); @@ -125,11 +121,13 @@ describe('ElectronPlatform', () => { describe("getDefaultDeviceDisplayName", () => { it.each([[ - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 " + + "(KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", "Element Desktop: macOS", ], [ - "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) electron/1.0.0 Chrome/53.0.2785.113 Electron/1.4.3 Safari/537.36", + "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) " + + "electron/1.0.0 Chrome/53.0.2785.113 Electron/1.4.3 Safari/537.36", "Element Desktop: Windows", ], [ @@ -151,9 +149,7 @@ describe('ElectronPlatform', () => { [ "custom user agent", "Element Desktop: Unknown", - ], - - ])("%s = %s", (userAgent, result) => { + ]])("%s = %s", (userAgent, result) => { delete window.navigator; window.navigator = { userAgent } as unknown as Navigator; const platform = new ElectronPlatform(); @@ -232,7 +228,7 @@ describe('ElectronPlatform', () => { const [channel, { name }] = mockElectron.send.mock.calls[0]; expect(channel).toEqual("ipcCall"); - expect(name).toEqual('getAvailableSpellCheckLanguages') + expect(name).toEqual('getAvailableSpellCheckLanguages'); }); }); @@ -243,8 +239,8 @@ describe('ElectronPlatform', () => { platform.getPickleKey(userId, deviceId); const [, { name, args }] = mockElectron.send.mock.calls[0]; - expect(name).toEqual('getPickleKey') - expect(args).toEqual([userId, deviceId]) + expect(name).toEqual('getPickleKey'); + expect(args).toEqual([userId, deviceId]); }); it('makes correct ipc call to create pickle key', () => { @@ -253,8 +249,8 @@ describe('ElectronPlatform', () => { platform.createPickleKey(userId, deviceId); const [, { name, args }] = mockElectron.send.mock.calls[0]; - expect(name).toEqual('createPickleKey') - expect(args).toEqual([userId, deviceId]) + expect(name).toEqual('createPickleKey'); + expect(args).toEqual([userId, deviceId]); }); it('makes correct ipc call to destroy pickle key', () => { @@ -263,8 +259,8 @@ describe('ElectronPlatform', () => { platform.destroyPickleKey(userId, deviceId); const [, { name, args }] = mockElectron.send.mock.calls[0]; - expect(name).toEqual('destroyPickleKey') - expect(args).toEqual([userId, deviceId]) + expect(name).toEqual('destroyPickleKey'); + expect(args).toEqual([userId, deviceId]); }); }); diff --git a/test/unit-tests/vector/platform/WebPlatform-test.ts b/test/unit-tests/vector/platform/WebPlatform-test.ts index 534da3f5ce..ad84cb0c06 100644 --- a/test/unit-tests/vector/platform/WebPlatform-test.ts +++ b/test/unit-tests/vector/platform/WebPlatform-test.ts @@ -33,6 +33,7 @@ describe('WebPlatform', () => { }); it('registers service worker', () => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore - mocking readonly object navigator.serviceWorker = { register: jest.fn() }; new WebPlatform(); @@ -66,7 +67,8 @@ describe('WebPlatform', () => { describe("getDefaultDeviceDisplayName", () => { it.each([[ "https://develop.element.io/#/room/!foo:bar", - "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36", + "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) " + + "Chrome/105.0.0.0 Safari/537.36", "develop.element.io: Chrome on macOS", ]])("%s & %s = %s", (url, userAgent, result) => { delete window.navigator; @@ -82,14 +84,16 @@ describe('WebPlatform', () => { const mockNotification = { requestPermission: jest.fn(), permission: 'notGranted', - } + }; beforeEach(() => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore window.Notification = mockNotification; mockNotification.permission = 'notGranted'; }); it('supportsNotifications returns false when platform does not support notifications', () => { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore window.Notification = undefined; expect(new WebPlatform().supportsNotifications()).toBe(false); @@ -104,7 +108,7 @@ describe('WebPlatform', () => { }); it('maySendNotifications returns true when notification permissions are granted', () => { - mockNotification.permission = 'granted' + mockNotification.permission = 'granted'; expect(new WebPlatform().maySendNotifications()).toBe(true); }); @@ -115,7 +119,6 @@ describe('WebPlatform', () => { const result = await platform.requestNotificationPermission(); expect(result).toEqual('test'); }); - }); describe('app version', () => { @@ -124,7 +127,7 @@ describe('WebPlatform', () => { beforeEach(() => { jest.spyOn(MatrixClientPeg, 'userRegisteredWithinLastHours').mockReturnValue(false); - }) + }); afterAll(() => { process.env.VERSION = envVersion; @@ -154,7 +157,8 @@ describe('WebPlatform', () => { }); describe('pollForUpdate()', () => { - it('should return not available and call showNoUpdate when current version matches most recent version', async () => { + it('should return not available and call showNoUpdate when current version ' + + 'matches most recent version', async () => { process.env.VERSION = prodVersion; fetchMock.getOnce("/version", prodVersion); const platform = new WebPlatform(); @@ -183,7 +187,8 @@ describe('WebPlatform', () => { expect(showNoUpdate).toHaveBeenCalled(); }); - it('should return ready and call showUpdate when current version differs from most recent version', async () => { + it('should return ready and call showUpdate when current version ' + + 'differs from most recent version', async () => { process.env.VERSION = '0.0.0'; // old version fetchMock.getOnce("/version", prodVersion); const platform = new WebPlatform(); diff --git a/test/unit-tests/vector/url_utils-test.ts b/test/unit-tests/vector/url_utils-test.ts index 7f1d2e9c0d..663798a1ae 100644 --- a/test/unit-tests/vector/url_utils-test.ts +++ b/test/unit-tests/vector/url_utils-test.ts @@ -17,6 +17,7 @@ limitations under the License. import { parseQsFromFragment, parseQs } from "../../../src/vector/url_utils"; describe("url_utils.ts", function() { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore const location: Location = { hash: "", diff --git a/tsconfig.json b/tsconfig.json index e48ae0f7b9..691d3c3487 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,6 +21,8 @@ }, "include": [ "./src/**/*.ts", - "./src/**/*.tsx" + "./src/**/*.tsx", + "./test/**/*.ts", + "./test/**/*.tsx" ] } diff --git a/yarn.lock b/yarn.lock index d7c4cc455f..e764526450 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3174,11 +3174,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-request@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17" - integrity sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg== - browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -8403,11 +8398,6 @@ matrix-mock-request@^2.5.0: what-input "^5.2.10" zxcvbn "^4.4.2" -matrix-react-test-utils@^0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/matrix-react-test-utils/-/matrix-react-test-utils-0.2.3.tgz#27653f9d6bbfddd1856e51860fad1503b039d617" - integrity sha512-NKZDlMEQzDZDQhBYyKBUtqidRvpkww3n9/GmGICkxtU2D6NetyBIfvm1Lf9o7167KSkPHJUVvDS9dzaS55jUnA== - matrix-web-i18n@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/matrix-web-i18n/-/matrix-web-i18n-1.3.0.tgz#d85052635215173541f56ea1af0cbefd6e09ecb3" From 7fec677d8f7819bf48c443082ff0d94003625976 Mon Sep 17 00:00:00 2001 From: Kat Gerasimova Date: Thu, 13 Oct 2022 09:48:05 +0100 Subject: [PATCH 18/38] Update enhancement issue template (#23472) Add a link to discussions for cross-platform or new feature requests --- .github/ISSUE_TEMPLATE/enhancement.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml index 5d9cfb3c88..a7aa1dbd81 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.yml +++ b/.github/ISSUE_TEMPLATE/enhancement.yml @@ -5,7 +5,7 @@ body: - type: markdown attributes: value: | - Thank you for taking the time to propose a new feature or make a suggestion. + Thank you for taking the time to propose an enhancement to an existing feture. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas). - type: textarea id: usecase attributes: From 8fb0147fb6848fff99bf8cbeb5d713c5ed3922c9 Mon Sep 17 00:00:00 2001 From: Kat Gerasimova Date: Thu, 13 Oct 2022 17:46:10 +0100 Subject: [PATCH 19/38] Add automation for PS feature team (#23480) Add issue automation for PS teams --- .github/workflows/triage-labelled.yml | 78 +++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) diff --git a/.github/workflows/triage-labelled.yml b/.github/workflows/triage-labelled.yml index d6a6ca4695..3262363b04 100644 --- a/.github/workflows/triage-labelled.yml +++ b/.github/workflows/triage-labelled.yml @@ -229,3 +229,81 @@ jobs: env: PROJECT_ID: "PN_kwDOAM0swc4AArk0" GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} + + ps_features1: + name: Add labelled issues to PS features team 1 + runs-on: ubuntu-latest + if: > + contains(github.event.issue.labels.*.name, 'A-Polls') || + contains(github.event.issue.labels.*.name, 'A-Location-Sharing') || + (contains(github.event.issue.labels.*.name, 'A-Voice-Messages') && + !contains(github.event.issue.labels.*.name, 'A-Broadcast')) || + (contains(github.event.issue.labels.*.name, 'A-Session-Mgmt') && + contains(github.event.issue.labels.*.name, 'A-User-Settings')) + steps: + - uses: octokit/graphql-action@v2.x + id: add_to_project + with: + headers: '{"GraphQL-Features": "projects_next_graphql"}' + query: | + mutation add_to_project($projectid:ID!,$contentid:ID!) { + addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) { + item { + id + } + } + } + projectid: ${{ env.PROJECT_ID }} + contentid: ${{ github.event.issue.node_id }} + env: + PROJECT_ID: "PVT_kwDOAM0swc4AHJKF" + GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} + + ps_features2: + name: Add labelled issues to PS features team 2 + runs-on: ubuntu-latest + if: > + contains(github.event.issue.labels.*.name, 'A-DM-Start') || + contains(github.event.issue.labels.*.name, 'A-Broadcast') + steps: + - uses: octokit/graphql-action@v2.x + id: add_to_project + with: + headers: '{"GraphQL-Features": "projects_next_graphql"}' + query: | + mutation add_to_project($projectid:ID!,$contentid:ID!) { + addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) { + item { + id + } + } + } + projectid: ${{ env.PROJECT_ID }} + contentid: ${{ github.event.issue.node_id }} + env: + PROJECT_ID: "PVT_kwDOAM0swc4AHJKd" + GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} + + ps_features3: + name: Add labelled issues to PS features team 3 + runs-on: ubuntu-latest + if: > + contains(github.event.issue.labels.*.name, 'A-Composer-WYSIWYG') + steps: + - uses: octokit/graphql-action@v2.x + id: add_to_project + with: + headers: '{"GraphQL-Features": "projects_next_graphql"}' + query: | + mutation add_to_project($projectid:ID!,$contentid:ID!) { + addProjectV2ItemById(input: {projectId: $projectid contentId: $contentid}) { + item { + id + } + } + } + projectid: ${{ env.PROJECT_ID }} + contentid: ${{ github.event.issue.node_id }} + env: + PROJECT_ID: "PVT_kwDOAM0swc4AHJKW" + GITHUB_TOKEN: ${{ secrets.ELEMENT_BOT_TOKEN }} From 1e8ffe5e74f029691e4e4e6abf96d0ef0e865988 Mon Sep 17 00:00:00 2001 From: Kat Gerasimova Date: Thu, 13 Oct 2022 20:47:05 +0100 Subject: [PATCH 20/38] Fix typo (#23485) --- .github/ISSUE_TEMPLATE/enhancement.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/enhancement.yml b/.github/ISSUE_TEMPLATE/enhancement.yml index a7aa1dbd81..02ed7ddbf2 100644 --- a/.github/ISSUE_TEMPLATE/enhancement.yml +++ b/.github/ISSUE_TEMPLATE/enhancement.yml @@ -5,7 +5,7 @@ body: - type: markdown attributes: value: | - Thank you for taking the time to propose an enhancement to an existing feture. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas). + Thank you for taking the time to propose an enhancement to an existing feature. If you would like to propose a new feature or a major cross-platform change, please [start a discussion here](https://github.com/vector-im/element-meta/discussions/new?category=ideas). - type: textarea id: usecase attributes: From 322745464c0e60753b9dba47bdf6f8f6fb5d23e8 Mon Sep 17 00:00:00 2001 From: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com> Date: Sat, 15 Oct 2022 03:01:35 +0200 Subject: [PATCH 21/38] Update documentation on how to disable integration managers (#23489) Signed-off-by: lukas --- docs/config.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/config.md b/docs/config.md index 7f091529d1..1903c70efd 100644 --- a/docs/config.md +++ b/docs/config.md @@ -360,8 +360,7 @@ For example: ## Integration managers Integration managers are embedded applications within Element to help the user configure bots, bridges, and widgets. An integration manager -is a separate piece of software not typically available with your homeserver. To disable integrations, leave the options defined here out of -your config. +is a separate piece of software not typically available with your homeserver. To disable integrations, set the options defined here to `null`. 1. `integrations_ui_url`: The UI URL for the integration manager. 2. `integrations_rest_url`: The REST interface URL for the integration manager. From 5d9eee8e4b95747a4cf25634a8fc42f4a1404128 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 17 Oct 2022 17:54:56 +0100 Subject: [PATCH 22/38] Stub out crypto imports in node (#23506) --- webpack.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/webpack.config.js b/webpack.config.js index 8d1f27330b..6a3a5bd8a4 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -123,6 +123,7 @@ module.exports = (env, argv) => { fs: 'empty', net: 'empty', tls: 'empty', + crypto: 'empty', }, entry: { From 921deab6ad14d4e3aaf68a49cfebdc3af384c03a Mon Sep 17 00:00:00 2001 From: Element Translate Bot Date: Tue, 18 Oct 2022 13:34:38 +0200 Subject: [PATCH 23/38] Translations update from Weblate (#23519) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added translation using Weblate (Luxembourgish) * Translated using Weblate (Turkish) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/tr/ * Translated using Weblate (German) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/de/ * Translated using Weblate (Indonesian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/id/ * Translated using Weblate (Korean) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/ko/ * Translated using Weblate (Czech) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/cs/ * Translated using Weblate (Ukrainian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/uk/ * Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/zh_Hant/ * Translated using Weblate (Slovak) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/sk/ * Translated using Weblate (French) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/fr/ * Translated using Weblate (Russian) Currently translated at 96.6% (29 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/ru/ * Translated using Weblate (Italian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/it/ * Translated using Weblate (Persian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/fa/ * Translated using Weblate (Estonian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/et/ * Translated using Weblate (Hungarian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/hu/ * Translated using Weblate (Swedish) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/sv/ * Translated using Weblate (Bulgarian) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/bg/ * Translated using Weblate (Spanish) Currently translated at 100.0% (30 of 30 strings) Translation: Element Web/element-web Translate-URL: https://translate.element.io/projects/element-web/element-web/es/ Co-authored-by: pierrebolze Co-authored-by: Weblate Co-authored-by: Michael Telatynski <7t3chguy@googlemail.com> Co-authored-by: Vri Co-authored-by: Linerly Co-authored-by: Youngbin Han Co-authored-by: waclaw66 Co-authored-by: Ihor Hordiichuk Co-authored-by: Jeff Huang Co-authored-by: Jozef Gaal Co-authored-by: Glandos Co-authored-by: DjAntony Co-authored-by: random Co-authored-by: Seyed Masih Sajadi Co-authored-by: Priit Jõerüüt Co-authored-by: Szimszon Co-authored-by: LinAGKar Co-authored-by: Slavi Pantaleev Co-authored-by: iaiz --- src/i18n/strings/bg.json | 4 +++- src/i18n/strings/cs.json | 4 +++- src/i18n/strings/de_DE.json | 4 +++- src/i18n/strings/es.json | 4 +++- src/i18n/strings/et.json | 4 +++- src/i18n/strings/fa.json | 4 +++- src/i18n/strings/fr.json | 4 +++- src/i18n/strings/hu.json | 4 +++- src/i18n/strings/id.json | 4 +++- src/i18n/strings/it.json | 4 +++- src/i18n/strings/ko.json | 5 ++++- src/i18n/strings/lb.json | 1 + src/i18n/strings/ru.json | 4 +++- src/i18n/strings/sk.json | 4 +++- src/i18n/strings/sv.json | 4 +++- src/i18n/strings/tr.json | 2 +- src/i18n/strings/uk.json | 4 +++- src/i18n/strings/zh_Hant.json | 4 +++- 18 files changed, 51 insertions(+), 17 deletions(-) create mode 100644 src/i18n/strings/lb.json diff --git a/src/i18n/strings/bg.json b/src/i18n/strings/bg.json index 8c082e8a42..554d595e9a 100644 --- a/src/i18n/strings/bg.json +++ b/src/i18n/strings/bg.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s използва модерни функции на браузъра, които не се поддържат от Вашия.", "Powered by Matrix": "Базирано на Matrix", "Use %(brand)s on mobile": "Използвайте %(brand)s на мобилен телефон", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Децентрализиран, криптиран чат & сътрудничество, захранено от $matrixlogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Децентрализиран, криптиран чат & сътрудничество, захранено от $matrixlogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s под %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" } diff --git a/src/i18n/strings/cs.json b/src/i18n/strings/cs.json index 6f2cf20be9..d42069980d 100644 --- a/src/i18n/strings/cs.json +++ b/src/i18n/strings/cs.json @@ -28,5 +28,7 @@ "Powered by Matrix": "Běží na Matrixu", "%(brand)s Desktop (%(platformName)s)": "%(brand)s pro desktopový počítač (%(platformName)s)", "Use %(brand)s on mobile": "Používání %(brand)s v mobilních zařízeních", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentralizovaný, šifrovaný chat a spolupráce na platformě $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentralizovaný, šifrovaný chat a spolupráce na platformě $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s na %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" } diff --git a/src/i18n/strings/de_DE.json b/src/i18n/strings/de_DE.json index 7ff9e9b5e1..f170484404 100644 --- a/src/i18n/strings/de_DE.json +++ b/src/i18n/strings/de_DE.json @@ -28,5 +28,7 @@ "Your browser can't run %(brand)s": "Dein Browser kann %(brand)s nicht ausführen", "Powered by Matrix": "Betrieben mit Matrix", "Use %(brand)s on mobile": "Verwende %(brand)s am Handy", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Dezentralisierter, verschlüsselter Chat & Zusammenarbeit unterstützt von $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Dezentralisierter, verschlüsselter Chat & Zusammenarbeit unterstützt von $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s auf %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" } diff --git a/src/i18n/strings/es.json b/src/i18n/strings/es.json index 0f1e717f74..28c41bbb98 100644 --- a/src/i18n/strings/es.json +++ b/src/i18n/strings/es.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funciones avanzadas que su navegador actual no soporta.", "Powered by Matrix": "Funciona con Matrix", "Use %(brand)s on mobile": "Usar %(brand)s en modo móvil", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Conversaciones y colaboración descentralizadas y cifradas gracias a $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Conversaciones y colaboración descentralizadas y cifradas gracias a $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s en %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s de escritorio: %(platformName)s" } diff --git a/src/i18n/strings/et.json b/src/i18n/strings/et.json index 6b5b3730e3..1f461acd6c 100644 --- a/src/i18n/strings/et.json +++ b/src/i18n/strings/et.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s kasutab mitmeid uusi brauseri-põhiseid tehnoloogiaid, mis ei ole veel sinu veebibrauseris toetatud.", "Powered by Matrix": "Põhineb Matrix'il", "Use %(brand)s on mobile": "Kasuta rakendust %(brand)s nutiseadmes", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Hajutatud ja krüpteeritud suhtlus- ning ühistöörakendus, mille aluseks on $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Hajutatud ja krüpteeritud suhtlus- ning ühistöörakendus, mille aluseks on $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s operatsioonisüsteemis %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" } diff --git a/src/i18n/strings/fa.json b/src/i18n/strings/fa.json index bbfba44479..6f58d6866f 100644 --- a/src/i18n/strings/fa.json +++ b/src/i18n/strings/fa.json @@ -28,5 +28,7 @@ "Failed to start": "خطا در شروع", "Powered by Matrix": "راه اندازی شده با استفاده از ماتریکس", "Use %(brand)s on mobile": "از %(brand)s گوشی استفاده کنید", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "همکاری چت غیرمتمرکز و رمزگذاری شده & توسعه یافته با استفاده از $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "همکاری چت غیرمتمرکز و رمزگذاری شده & توسعه یافته با استفاده از $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s: روی %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s دسکتاپ: %(platformName)s" } diff --git a/src/i18n/strings/fr.json b/src/i18n/strings/fr.json index f0a27d631f..e9a47205d1 100644 --- a/src/i18n/strings/fr.json +++ b/src/i18n/strings/fr.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne prend pas en charge.", "Powered by Matrix": "Propulsé par Matrix", "Use %(brand)s on mobile": "Utiliser %(brand)s sur téléphone", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Messagerie décentralisée, chiffrée & une collaboration alimentée par $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Messagerie décentralisée, chiffrée & une collaboration alimentée par $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s : %(browserName)s pour %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s pour bureau : %(platformName)s" } diff --git a/src/i18n/strings/hu.json b/src/i18n/strings/hu.json index 704700f5d7..f8a505638b 100644 --- a/src/i18n/strings/hu.json +++ b/src/i18n/strings/hu.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "A(z) %(brand)s speciális böngészőfunkciókat használ, amelyeket a jelenlegi böngészője nem támogat.", "Powered by Matrix": "A gépházban: Matrix", "Use %(brand)s on mobile": "Mobilon használja ezt: %(brand)s", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Elosztott, titkosított csevegés és együttműködés ezzel: $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Elosztott, titkosított csevegés és együttműködés ezzel: $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: (%(browserName)s itt: %(osName)s)", + "%(brand)s Desktop: %(platformName)s": "Asztali %(brand)s: (%(platformName)s)" } diff --git a/src/i18n/strings/id.json b/src/i18n/strings/id.json index 03ef18460a..09c26763cb 100644 --- a/src/i18n/strings/id.json +++ b/src/i18n/strings/id.json @@ -28,5 +28,7 @@ "The message from the parser is: %(message)s": "Pesan dari pengurai adalah: %(message)s", "Your Element is misconfigured": "Anda salah mengatur Element", "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Konfigurasi tidak absah: hanya bisa menentukan satu dari default_server_config, default_server_name, atau default_hs_url.", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Obrolan & kolaborasi terdesentralisasi dan terenkripsi diberdayakan oleh $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Obrolan & kolaborasi terdesentralisasi dan terenkripsi diberdayakan oleh $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s di %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" } diff --git a/src/i18n/strings/it.json b/src/i18n/strings/it.json index d654d6d889..b5d5bf35e8 100644 --- a/src/i18n/strings/it.json +++ b/src/i18n/strings/it.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funzionalità avanzate del browser che non sono supportate dal tuo browser attuale.", "Powered by Matrix": "Offerto da Matrix", "Use %(brand)s on mobile": "Usa %(brand)s su mobile", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Chat e collaborazioni criptate e decentralizzate offerte da $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Chat e collaborazioni criptate e decentralizzate offerte da $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s su %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Desktop: %(platformName)s" } diff --git a/src/i18n/strings/ko.json b/src/i18n/strings/ko.json index f52afafb38..a5492f7775 100644 --- a/src/i18n/strings/ko.json +++ b/src/i18n/strings/ko.json @@ -27,5 +27,8 @@ "Open": "열기", "Download Completed": "다운로드 완료", "Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "당신의 Element 설정은 유효하지 않은 JSON을 포함합니다. 이 문제를 해결하고 페이지를 새로고침해주세요.", - "Your Element is misconfigured": "당신의 Element가 잘못 설정되었습니다" + "Your Element is misconfigured": "당신의 Element가 잘못 설정되었습니다", + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "$matrixLogo 에서 제공하는 탈중앙화되고 암호화된 협업", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(osName)s 의 %(browserName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s 데스크탑: %(platformName)s" } diff --git a/src/i18n/strings/lb.json b/src/i18n/strings/lb.json new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/src/i18n/strings/lb.json @@ -0,0 +1 @@ +{} diff --git a/src/i18n/strings/ru.json b/src/i18n/strings/ru.json index 922d9e1ce0..daca759c69 100644 --- a/src/i18n/strings/ru.json +++ b/src/i18n/strings/ru.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s использует расширенные возможности, которые не поддерживаются вашим браузером.", "Powered by Matrix": "На технологии Matrix", "Use %(brand)s on mobile": "Воспользуйтесь %(brand)s на мобильном телефоне", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Децентрализованное, зашифрованное общение и сотрудничество на основе $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Децентрализованное, зашифрованное общение и сотрудничество на основе $matrixLogo", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Рабочий стол: %(platformName)s", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s на %(osName)s" } diff --git a/src/i18n/strings/sk.json b/src/i18n/strings/sk.json index 4796120a40..135479e0f4 100644 --- a/src/i18n/strings/sk.json +++ b/src/i18n/strings/sk.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s používa pokročilé funkcie prehliadača, ktoré nie sú podporované vaším aktuálnym prehliadačom.", "Powered by Matrix": "používa protokol Matrix", "Use %(brand)s on mobile": "Používať %(brand)s pri mobilných zariadeniach", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentralizované, šifrované konverzácie a spolupráca na platforme $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentralizované, šifrované konverzácie a spolupráca na platforme $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s na %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Stolný počítač: %(platformName)s" } diff --git a/src/i18n/strings/sv.json b/src/i18n/strings/sv.json index ac6307f3d7..b4f5e05e6c 100644 --- a/src/i18n/strings/sv.json +++ b/src/i18n/strings/sv.json @@ -28,5 +28,7 @@ "Your browser can't run %(brand)s": "Din webbläsare kan inte köra %(brand)s", "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s använder avancerade webbläsarfunktioner som inte stöds av din aktuella webbläsare.", "Use %(brand)s on mobile": "Använd %(brand)s på mobilen", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentraliserad krypterad chatt & samarbete som drivs av $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Decentraliserad krypterad chatt & samarbete som drivs av $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s på %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s Skrivbord: %(platformName)s" } diff --git a/src/i18n/strings/tr.json b/src/i18n/strings/tr.json index 5e4a1990dd..b1d13eaf44 100644 --- a/src/i18n/strings/tr.json +++ b/src/i18n/strings/tr.json @@ -24,7 +24,7 @@ "Go to element.io": "element.io adresine git", "Failed to start": "Başlatılamadı", "Powered by Matrix": "Gücünü Matrix'ten alır", - "%(appName)s (%(browserName)s, %(osName)s)": "%(appName) (%(browserName), %(osName))", + "%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)", "%(brand)s Desktop (%(platformName)s)": "%(brand)s Masaüstü (%(platformName)s)", "Open": "Aç", "Use %(brand)s on mobile": "Mobilde %(brand)s kullan", diff --git a/src/i18n/strings/uk.json b/src/i18n/strings/uk.json index 3b63affa43..ea334a0064 100644 --- a/src/i18n/strings/uk.json +++ b/src/i18n/strings/uk.json @@ -28,5 +28,7 @@ "Your browser can't run %(brand)s": "Ваш браузер не може запустити %(brand)s", "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s використовує передові властивості, які ваш браузер не підтримує.", "Use %(brand)s on mobile": "Користуйтеся %(brand)s на мобільному", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Децентралізована, зашифрована бесіда та співпраця на основі $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "Децентралізована, зашифрована бесіда та співпраця на основі $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s: %(browserName)s на %(osName)s", + "%(brand)s Desktop: %(platformName)s": "%(brand)s для комп'ютера: %(platformName)s" } diff --git a/src/i18n/strings/zh_Hant.json b/src/i18n/strings/zh_Hant.json index 47a04fc797..881918da50 100644 --- a/src/i18n/strings/zh_Hant.json +++ b/src/i18n/strings/zh_Hant.json @@ -28,5 +28,7 @@ "%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s 使用了您目前的瀏覽器不支援的進階瀏覽器功能。", "Powered by Matrix": "由 Matrix 提供", "Use %(brand)s on mobile": "在行動裝置上使用 %(brand)s", - "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "去中心化、加密的聊天與協作,威力本源 $matrixLogo" + "Decentralised, encrypted chat & collaboration powered by $matrixLogo": "去中心化、加密的聊天與協作,威力本源 $matrixLogo", + "%(appName)s: %(browserName)s on %(osName)s": "%(appName)s:%(browserName)s 在 %(osName)s 上", + "%(brand)s Desktop: %(platformName)s": "%(brand)s 桌面版:%(platformName)s" } From a7478f58ae21621bdf5b62f45037e235efb9de61 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 18 Oct 2022 14:21:49 +0100 Subject: [PATCH 24/38] Upgrade matrix-js-sdk to 21.0.0-rc.1 --- package.json | 2 +- yarn.lock | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c3c75b0ba7..a8d37a82ab 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", - "matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop", + "matrix-js-sdk": "21.0.0-rc.1", "matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index e764526450..2e27fc3924 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3174,6 +3174,11 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== +browser-request@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17" + integrity sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg== + browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -8307,6 +8312,21 @@ matrix-events-sdk@^0.0.1-beta.7: resolved "https://registry.yarnpkg.com/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.7.tgz#5ffe45eba1f67cc8d7c2377736c728b322524934" integrity sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA== +matrix-js-sdk@21.0.0-rc.1: + version "21.0.0-rc.1" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0-rc.1.tgz#254d7183cca845643a5da3f72de7193fafd9780c" + integrity sha512-jHJQLSb5egMMZPrDrjKY1mmsGdIaPPZNy+7MTikeb46tP3ES7Om9U6wsSouKFdW8khvg/nuxZfbEdM1lBMi15Q== + dependencies: + "@babel/runtime" "^7.12.5" + another-json "^0.2.0" + bs58 "^5.0.0" + content-type "^1.0.4" + loglevel "^1.7.1" + matrix-events-sdk "^0.0.1-beta.7" + p-retry "4" + qs "^6.9.6" + unhomoglyph "^1.0.6" + "matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": version "20.1.0" resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8eed354e17001cd25e3cafe81f74dab499a9882e" From e4e2738c3c9c43e74bdadd57217e6eb2abf3859b Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 18 Oct 2022 14:23:41 +0100 Subject: [PATCH 25/38] Upgrade matrix-react-sdk to 3.59.0-rc.1 --- package.json | 2 +- yarn.lock | 300 +++++++-------------------------------------------- 2 files changed, 37 insertions(+), 265 deletions(-) diff --git a/package.json b/package.json index a8d37a82ab..4a221a7df1 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "jsrsasign": "^10.5.25", "katex": "^0.16.0", "matrix-js-sdk": "21.0.0-rc.1", - "matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop", + "matrix-react-sdk": "3.59.0-rc.1", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", "react": "17.0.2", diff --git a/yarn.lock b/yarn.lock index 2e27fc3924..07e3c5efef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1521,10 +1521,10 @@ resolved "https://registry.yarnpkg.com/@matrix-org/analytics-events/-/analytics-events-0.2.0.tgz#453925c939ecdd5ca6c797d293deb8cf0933f1b8" integrity sha512-+0/Sydm4MNOcqd8iySJmojVPB74Axba4BXlwTsiKmL5fgYqdUkwmqkO39K7Pn8i+a+8pg11oNvBPkpWs3O5Qww== -"@matrix-org/matrix-wysiwyg@^0.0.2": - version "0.0.2" - resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-0.0.2.tgz#c1a18f5f9ac061c4147a0fbbf9303a3c82e626e6" - integrity sha512-AY4sbmgcaFZhNxJfn3Va1SiKH4/gIdvWV9c/iehcIi3/xFB7lKCIwe7NNxzPpFOp+b+fEIbdHf3fhS5vJBi7xg== +"@matrix-org/matrix-wysiwyg@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-0.2.1.tgz#f6236fa5fd9fd6aa99e4355d026cbb379d69986b" + integrity sha512-XhYbr6bGPPV1ZP0RXFMcmQ4MQUz+YkeEUM2uP7x+6D8F5wB683a27lWyvdpSC6LAzN/dXmfWiQedUZQI7SbSuA== "@matrix-org/olm@https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz": version "3.2.12" @@ -2521,7 +2521,7 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.3, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2791,18 +2791,6 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" -asn1@~0.2.3: - version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" - integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== - assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -2878,16 +2866,6 @@ await-lock@^2.1.0: resolved "https://registry.yarnpkg.com/await-lock/-/await-lock-2.2.2.tgz#a95a9b269bfd2f69d22b17a321686f551152bcef" integrity sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - babel-jest@^29.0.0, babel-jest@^29.1.2: version "29.1.2" resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.1.2.tgz#540d3241925c55240fb0c742e3ffc5f33a501978" @@ -3040,13 +3018,6 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== - dependencies: - tweetnacl "^0.14.3" - before-after-hook@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" @@ -3174,11 +3145,6 @@ brorand@^1.0.1, brorand@^1.1.0: resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== -browser-request@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz#9ece5b5aca89a29932242e18bf933def9876cc17" - integrity sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg== - browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" @@ -3503,11 +3469,6 @@ caniuse-lite@^1.0.30001407: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001409.tgz#6135da9dcab34cd9761d9cdb12a68e6740c5e96e" integrity sha512-V0mnJ5dwarmhYv8/MzhJ//aW68UpvnQBXv8lJ2QUsvn2pHcmAuNtu8hQEDz37XnA1iE+lRR9CIfGWWpgJ5QedQ== -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== - chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -3798,7 +3759,7 @@ colord@^2.9.3: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== -combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -3988,11 +3949,6 @@ core-js@^3.4: resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.24.1.tgz#cf7724d41724154010a6576b7b57d94c5d66e64f" integrity sha512-0QTBSYSUZ6Gq21utGzkfITDylE8jWC9Ne1D2MrhvlsZBI1x39OdDIVbzSqtgMndIy6BlHxBXpMGqzZmnztg2rg== -core-util-is@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== - core-util-is@~1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" @@ -4384,13 +4340,6 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== - dependencies: - assert-plus "^1.0.0" - data-urls@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143" @@ -4828,14 +4777,6 @@ earcut@^2.2.2: resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a" integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ== -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -5518,7 +5459,7 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@^3.0.0, extend@~3.0.2: +extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== @@ -5554,16 +5495,6 @@ extract-text-webpack-plugin@^4.0.0-beta.0: schema-utils "^0.4.5" webpack-sources "^1.1.0" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== - -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fake-indexeddb@^3.1.2: version "3.1.8" resolved "https://registry.yarnpkg.com/fake-indexeddb/-/fake-indexeddb-3.1.8.tgz#229e3cff6fa7355aebb3f147b908d2efa4605d70" @@ -5921,11 +5852,6 @@ foreachasync@^3.0.0: resolved "https://registry.yarnpkg.com/foreachasync/-/foreachasync-3.0.0.tgz#5502987dc8714be3392097f32e0071c9dee07cf6" integrity sha512-J+ler7Ta54FwwNcx6wQRDhTIbNeyDcARMkOcguEqnEdtm0jKvN3Li3PDAb2Du3ubJYEWfYL83XMROXdsXAXycw== -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== - form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -5935,15 +5861,6 @@ form-data@^4.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -6108,13 +6025,6 @@ get-value@^2.0.3, get-value@^2.0.6: resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== - dependencies: - assert-plus "^1.0.0" - gfm.css@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/gfm.css/-/gfm.css-1.1.2.tgz#94acfa600672663b9dd0fd4b6ee5d11c8dbc161e" @@ -6300,19 +6210,6 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - hard-rejection@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" @@ -6616,15 +6513,6 @@ http-proxy@^1.17.0: follow-redirects "^1.0.0" requires-port "^1.0.0" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - https-browserify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" @@ -7219,11 +7107,6 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== - is-weakref@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" @@ -7276,11 +7159,6 @@ isomorphic-fetch@^2.1.1: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== - istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" @@ -7803,11 +7681,6 @@ js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== - jsdom@^20.0.0: version "20.0.1" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.1.tgz#d95b4a3b6e1eec6520aa01d9d908eade8c6ba153" @@ -7875,21 +7748,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== -json-schema@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" - integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -7909,16 +7772,6 @@ jsonfile@^2.1.0: optionalDependencies: graceful-fs "^4.1.6" -jsprim@^1.2.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" - integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.4.0" - verror "1.10.0" - jsrsasign@^10.5.25: version "10.5.27" resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.5.27.tgz#481defb1206aa48cd740c3fce8ff546efb5bb45e" @@ -8327,22 +8180,6 @@ matrix-js-sdk@21.0.0-rc.1: qs "^6.9.6" unhomoglyph "^1.0.6" -"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop": - version "20.1.0" - resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/8eed354e17001cd25e3cafe81f74dab499a9882e" - dependencies: - "@babel/runtime" "^7.12.5" - another-json "^0.2.0" - browser-request "^0.3.3" - bs58 "^5.0.0" - content-type "^1.0.4" - loglevel "^1.7.1" - matrix-events-sdk "^0.0.1-beta.7" - p-retry "4" - qs "^6.9.6" - request "^2.88.2" - unhomoglyph "^1.0.6" - matrix-mock-request@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/matrix-mock-request/-/matrix-mock-request-2.5.0.tgz#78da2590e82be2e31edcf9814833af5e5f8d2f1a" @@ -8350,13 +8187,14 @@ matrix-mock-request@^2.5.0: dependencies: expect "^28.1.0" -"matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop": - version "3.58.1" - resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/51d5005efa2d655cfbc0b322550b87fbf005ef3f" +matrix-react-sdk@3.59.0-rc.1: + version "3.59.0-rc.1" + resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.59.0-rc.1.tgz#441bca208e71fca37ede21218c0e00fb25e1f444" + integrity sha512-mpAsMgXmlYKpYlMBBOAWHDeqJay6gGEsTWatfT2ThWJEPkKPVFgTs7tzeGGeS5oqMjg8CfyO8P2h0PYu88zCKg== dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.2.0" - "@matrix-org/matrix-wysiwyg" "^0.0.2" + "@matrix-org/matrix-wysiwyg" "^0.2.0" "@matrix-org/react-sdk-module-api" "^0.0.3" "@sentry/browser" "^6.11.0" "@sentry/tracing" "^6.11.0" @@ -8364,7 +8202,6 @@ matrix-mock-request@^2.5.0: "@types/ua-parser-js" "^0.7.36" await-lock "^2.1.0" blurhash "^1.1.3" - browser-request "^0.3.3" cheerio "^1.0.0-rc.9" classnames "^2.2.6" commonmark "^0.29.3" @@ -8393,7 +8230,7 @@ matrix-mock-request@^2.5.0: maplibre-gl "^1.15.2" matrix-encrypt-attachment "^1.0.3" matrix-events-sdk "^0.0.1-beta.7" - matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop" + matrix-js-sdk "21.0.0-rc.1" matrix-widget-api "^1.1.1" minimist "^1.2.5" opus-recorder "^8.0.3" @@ -8411,6 +8248,7 @@ matrix-mock-request@^2.5.0: react-focus-lock "^2.5.1" react-transition-group "^4.4.1" rfc4648 "^1.4.0" + sanitize-filename "^1.6.3" sanitize-html "^2.3.2" tar-js "^0.3.0" ua-parser-js "^1.0.2" @@ -8596,7 +8434,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.17, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@~2.1.17, 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== @@ -9013,11 +8851,6 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0" integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -9510,11 +9343,6 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== - picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" @@ -10442,7 +10270,7 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -psl@^1.1.28, psl@^1.1.33: +psl@^1.1.33: version "1.9.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== @@ -10531,11 +10359,6 @@ qs@^6.9.6: dependencies: side-channel "^1.0.4" -qs@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" - integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== - querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -10930,32 +10753,6 @@ repeat-string@^1.5.2, repeat-string@^1.6.1: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== -request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -11153,11 +10950,18 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sanitize-filename@^1.6.3: + version "1.6.3" + resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" + integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== + dependencies: + truncate-utf8-bytes "^1.0.0" + sanitize-html@^2.3.2: version "2.7.2" resolved "https://registry.yarnpkg.com/sanitize-html/-/sanitize-html-2.7.2.tgz#54c5189af75e3237d996e4b9a5e3eaad12c7f7fc" @@ -11625,21 +11429,6 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== -sshpk@^1.7.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" - integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" @@ -12236,14 +12025,6 @@ tough-cookie@^4.1.2: universalify "^0.2.0" url-parse "^1.5.3" -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" @@ -12285,6 +12066,13 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/true-myth/-/true-myth-4.1.1.tgz#ff4ac9d5130276e34aa338757e2416ec19248ba2" integrity sha512-rqy30BSpxPznbbTcAcci90oZ1YR4DqvKcNXNerG5gQBU2v4jk0cygheiul5J6ExIMrgDVuanv/MkGfqZbKrNNg== +truncate-utf8-bytes@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" + integrity sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ== + dependencies: + utf8-byte-length "^1.0.1" + ts-morph@^13.0.1: version "13.0.3" resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-13.0.3.tgz#c0c51d1273ae2edb46d76f65161eb9d763444c1d" @@ -12337,23 +12125,11 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw== -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" - tunnel@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== - 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" @@ -12626,6 +12402,11 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== +utf8-byte-length@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" + integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA== + util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -12715,15 +12496,6 @@ vendors@^1.0.0: resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - vm-browserify@^1.0.1: version "1.1.2" resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" From d5b6f64033366ad4b7984845f715037a13641c42 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 18 Oct 2022 14:26:19 +0100 Subject: [PATCH 26/38] Prepare changelog for v1.11.11-rc.1 --- CHANGELOG.md | 53 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a05486e7c8..ed05dfb633 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,56 @@ +Changes in [1.11.11-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.11.11-rc.1) (2022-10-18) +=========================================================================================================== + +## ✨ Features + * Device manager - tweak string formatting of default device name ([\#23457](https://github.com/vector-im/element-web/pull/23457)). + * Add Element Call participant limit ([\#23431](https://github.com/vector-im/element-web/pull/23431)). + * Add Element Call `brand` ([\#23443](https://github.com/vector-im/element-web/pull/23443)). + * Include a file-safe room name and ISO date in chat exports ([\#9440](https://github.com/matrix-org/matrix-react-sdk/pull/9440)). Fixes #21812 and #19724. + * Room call banner ([\#9378](https://github.com/matrix-org/matrix-react-sdk/pull/9378)). Fixes #23453. Contributed by @toger5. + * Device manager - spinners while devices are signing out ([\#9433](https://github.com/matrix-org/matrix-react-sdk/pull/9433)). Fixes #15865. + * Device manager - silence call ringers when local notifications are silenced ([\#9420](https://github.com/matrix-org/matrix-react-sdk/pull/9420)). + * Pass the current language to Element Call ([\#9427](https://github.com/matrix-org/matrix-react-sdk/pull/9427)). + * Hide screen-sharing button in Element Call on desktop ([\#9423](https://github.com/matrix-org/matrix-react-sdk/pull/9423)). + * Add reply support to WysiwygComposer ([\#9422](https://github.com/matrix-org/matrix-react-sdk/pull/9422)). Contributed by @florianduros. + * Disconnect other connected devices (of the same user) when joining an Element call ([\#9379](https://github.com/matrix-org/matrix-react-sdk/pull/9379)). + * Device manager - device tile main click target ([\#9409](https://github.com/matrix-org/matrix-react-sdk/pull/9409)). + * Add formatting buttons to the rich text editor ([\#9410](https://github.com/matrix-org/matrix-react-sdk/pull/9410)). Contributed by @florianduros. + * Device manager - current session context menu ([\#9386](https://github.com/matrix-org/matrix-react-sdk/pull/9386)). + * Remove piwik config fallback for privacy policy URL ([\#9390](https://github.com/matrix-org/matrix-react-sdk/pull/9390)). + * Add the first step to integrate the matrix wysiwyg composer ([\#9374](https://github.com/matrix-org/matrix-react-sdk/pull/9374)). Contributed by @florianduros. + * Device manager - UA parsing tweaks ([\#9382](https://github.com/matrix-org/matrix-react-sdk/pull/9382)). + * Device manager - remove client information events when disabling setting ([\#9384](https://github.com/matrix-org/matrix-react-sdk/pull/9384)). + * Add Element Call participant limit ([\#9358](https://github.com/matrix-org/matrix-react-sdk/pull/9358)). + * Add Element Call room settings ([\#9347](https://github.com/matrix-org/matrix-react-sdk/pull/9347)). + * Device manager - render extended device information ([\#9360](https://github.com/matrix-org/matrix-react-sdk/pull/9360)). + * New group call experience: Room header and PiP designs ([\#9351](https://github.com/matrix-org/matrix-react-sdk/pull/9351)). + * Pass language to Jitsi Widget ([\#9346](https://github.com/matrix-org/matrix-react-sdk/pull/9346)). Contributed by @Fox32. + * Add notifications and toasts for Element Call calls ([\#9337](https://github.com/matrix-org/matrix-react-sdk/pull/9337)). + * Device manager - device type icon ([\#9355](https://github.com/matrix-org/matrix-react-sdk/pull/9355)). + * Delete the remainder of groups ([\#9357](https://github.com/matrix-org/matrix-react-sdk/pull/9357)). Fixes #22770. + * Device manager - display client information in device details ([\#9315](https://github.com/matrix-org/matrix-react-sdk/pull/9315)). + +## 🐛 Bug Fixes + * Make ErrorView & CompatibilityView scrollable ([\#23468](https://github.com/vector-im/element-web/pull/23468)). Fixes #23376. + * Device manager - put client/browser device metadata in correct section ([\#9447](https://github.com/matrix-org/matrix-react-sdk/pull/9447)). + * update the room unread notification counter when the server changes the value without any related read receipt ([\#9438](https://github.com/matrix-org/matrix-react-sdk/pull/9438)). + * Don't show call banners in video rooms ([\#9441](https://github.com/matrix-org/matrix-react-sdk/pull/9441)). + * Prevent useContextMenu isOpen from being true if the button ref goes away ([\#9418](https://github.com/matrix-org/matrix-react-sdk/pull/9418)). Fixes matrix-org/element-web-rageshakes#15637. + * Automatically focus the WYSIWYG composer when you enter a room ([\#9412](https://github.com/matrix-org/matrix-react-sdk/pull/9412)). + * Improve the tooltips on the call lobby join button ([\#9428](https://github.com/matrix-org/matrix-react-sdk/pull/9428)). + * Pass the homeserver's base URL to Element Call ([\#9429](https://github.com/matrix-org/matrix-react-sdk/pull/9429)). Fixes #23301. + * Better accommodate long room names in call toasts ([\#9426](https://github.com/matrix-org/matrix-react-sdk/pull/9426)). + * Hide virtual widgets from the room info panel ([\#9424](https://github.com/matrix-org/matrix-react-sdk/pull/9424)). Fixes #23494. + * Inhibit clicking on sender avatar in threads list ([\#9417](https://github.com/matrix-org/matrix-react-sdk/pull/9417)). Fixes #23482. + * Correct the dir parameter of MSC3715 ([\#9391](https://github.com/matrix-org/matrix-react-sdk/pull/9391)). Contributed by @dhenneke. + * Use a more correct subset of users in `/remakeolm` developer command ([\#9402](https://github.com/matrix-org/matrix-react-sdk/pull/9402)). + * use correct default for notification silencing ([\#9388](https://github.com/matrix-org/matrix-react-sdk/pull/9388)). Fixes #23456. + * Device manager - eagerly create `m.local_notification_settings` events ([\#9353](https://github.com/matrix-org/matrix-react-sdk/pull/9353)). + * Close incoming Element call toast when viewing the call lobby ([\#9375](https://github.com/matrix-org/matrix-react-sdk/pull/9375)). + * Always allow enabling sending read receipts ([\#9367](https://github.com/matrix-org/matrix-react-sdk/pull/9367)). Fixes #23433. + * Fixes (vector-im/element-web/issues/22609) where the white theme is not applied when `white -> dark -> white` sequence is done. ([\#9320](https://github.com/matrix-org/matrix-react-sdk/pull/9320)). Contributed by @florianduros. + * Fix applying programmatically set height for "top" room layout ([\#9339](https://github.com/matrix-org/matrix-react-sdk/pull/9339)). Contributed by @Fox32. + Changes in [1.11.10](https://github.com/vector-im/element-web/releases/tag/v1.11.10) (2022-10-11) ================================================================================================= From 7af1f21d9b95d8d946fa488f232ea51ba6b2ab3d Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 18 Oct 2022 14:26:20 +0100 Subject: [PATCH 27/38] v1.11.11-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 4a221a7df1..b735da6933 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "element-web", - "version": "1.11.10", + "version": "1.11.11-rc.1", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From 416ca55fa9d49e515e21c9cac7ddec09e1f32a0e Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Mon, 24 Oct 2022 17:04:14 +0100 Subject: [PATCH 28/38] Upgrade matrix-js-sdk to 21.0.0-rc.2 --- package.json | 2 +- yarn.lock | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index b735da6933..5332437f21 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", - "matrix-js-sdk": "21.0.0-rc.1", + "matrix-js-sdk": "21.0.0-rc.2", "matrix-react-sdk": "3.59.0-rc.1", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index 07e3c5efef..547fc94cf5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8180,6 +8180,21 @@ matrix-js-sdk@21.0.0-rc.1: qs "^6.9.6" unhomoglyph "^1.0.6" +matrix-js-sdk@21.0.0-rc.2: + version "21.0.0-rc.2" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0-rc.2.tgz#5f7ebcecd623a49533e6d599e7149d6d52003fb3" + integrity sha512-9vra2tBncpWoAijwX2thtDrP8yuanb1FhUoehsVevvIufxuePRvZtPBheYatesTB2AocADBL18SN3U+P1IRgVA== + dependencies: + "@babel/runtime" "^7.12.5" + another-json "^0.2.0" + bs58 "^5.0.0" + content-type "^1.0.4" + loglevel "^1.7.1" + matrix-events-sdk "^0.0.1-beta.7" + p-retry "4" + qs "^6.9.6" + unhomoglyph "^1.0.6" + matrix-mock-request@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/matrix-mock-request/-/matrix-mock-request-2.5.0.tgz#78da2590e82be2e31edcf9814833af5e5f8d2f1a" From 629341894b4fbaf3fcd7e748f578920c57acac64 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Mon, 24 Oct 2022 17:05:23 +0100 Subject: [PATCH 29/38] Upgrade matrix-react-sdk to 3.59.0-rc.2 --- package.json | 2 +- yarn.lock | 25 +++++-------------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 5332437f21..6df7a3a341 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "jsrsasign": "^10.5.25", "katex": "^0.16.0", "matrix-js-sdk": "21.0.0-rc.2", - "matrix-react-sdk": "3.59.0-rc.1", + "matrix-react-sdk": "3.59.0-rc.2", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", "react": "17.0.2", diff --git a/yarn.lock b/yarn.lock index 547fc94cf5..1ba7e71ceb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8165,21 +8165,6 @@ matrix-events-sdk@^0.0.1-beta.7: resolved "https://registry.yarnpkg.com/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.7.tgz#5ffe45eba1f67cc8d7c2377736c728b322524934" integrity sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA== -matrix-js-sdk@21.0.0-rc.1: - version "21.0.0-rc.1" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0-rc.1.tgz#254d7183cca845643a5da3f72de7193fafd9780c" - integrity sha512-jHJQLSb5egMMZPrDrjKY1mmsGdIaPPZNy+7MTikeb46tP3ES7Om9U6wsSouKFdW8khvg/nuxZfbEdM1lBMi15Q== - dependencies: - "@babel/runtime" "^7.12.5" - another-json "^0.2.0" - bs58 "^5.0.0" - content-type "^1.0.4" - loglevel "^1.7.1" - matrix-events-sdk "^0.0.1-beta.7" - p-retry "4" - qs "^6.9.6" - unhomoglyph "^1.0.6" - matrix-js-sdk@21.0.0-rc.2: version "21.0.0-rc.2" resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0-rc.2.tgz#5f7ebcecd623a49533e6d599e7149d6d52003fb3" @@ -8202,10 +8187,10 @@ matrix-mock-request@^2.5.0: dependencies: expect "^28.1.0" -matrix-react-sdk@3.59.0-rc.1: - version "3.59.0-rc.1" - resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.59.0-rc.1.tgz#441bca208e71fca37ede21218c0e00fb25e1f444" - integrity sha512-mpAsMgXmlYKpYlMBBOAWHDeqJay6gGEsTWatfT2ThWJEPkKPVFgTs7tzeGGeS5oqMjg8CfyO8P2h0PYu88zCKg== +matrix-react-sdk@3.59.0-rc.2: + version "3.59.0-rc.2" + resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.59.0-rc.2.tgz#42c4291852b1d68ede684a50d1e51815f2694aad" + integrity sha512-UHDOJ1uyycj6pXquINxZjBMuxxRnsXqWgRIfdz1X1H8igdHvNGzfGps9Tc6GMX/SNqPUEvXF4O1jKGJ4i5FVJQ== dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.2.0" @@ -8245,7 +8230,7 @@ matrix-react-sdk@3.59.0-rc.1: maplibre-gl "^1.15.2" matrix-encrypt-attachment "^1.0.3" matrix-events-sdk "^0.0.1-beta.7" - matrix-js-sdk "21.0.0-rc.1" + matrix-js-sdk "21.0.0-rc.2" matrix-widget-api "^1.1.1" minimist "^1.2.5" opus-recorder "^8.0.3" From bb00ad5fb0149b5a525ae29c6f29ccf5796e296c Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Mon, 24 Oct 2022 17:18:59 +0100 Subject: [PATCH 30/38] Prepare changelog for v1.11.11-rc.2 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ed05dfb633..671ac103d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Changes in [1.11.11-rc.2](https://github.com/vector-im/element-web/releases/tag/v1.11.11-rc.2) (2022-10-24) +=========================================================================================================== + +## 🐛 Bug Fixes + * Send Content-Type: application/json header for integration manager /register API ([\#9490](https://github.com/matrix-org/matrix-react-sdk/pull/9490)). Fixes #23580. + Changes in [1.11.11-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.11.11-rc.1) (2022-10-18) =========================================================================================================== From 4599cc9ca2a2d863447d53bab02894008e58f141 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Mon, 24 Oct 2022 17:19:00 +0100 Subject: [PATCH 31/38] v1.11.11-rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6df7a3a341..f037a005f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "element-web", - "version": "1.11.11-rc.1", + "version": "1.11.11-rc.2", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From 748c900dcee7e3eec5487d1f765c1a39084cbcae Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 25 Oct 2022 17:47:47 +0100 Subject: [PATCH 32/38] Upgrade matrix-js-sdk to 21.0.0 --- package.json | 2 +- yarn.lock | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f037a005f1..ae7058cae9 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", - "matrix-js-sdk": "21.0.0-rc.2", + "matrix-js-sdk": "21.0.0", "matrix-react-sdk": "3.59.0-rc.2", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", diff --git a/yarn.lock b/yarn.lock index 1ba7e71ceb..0ff8fd5a92 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8165,6 +8165,21 @@ matrix-events-sdk@^0.0.1-beta.7: resolved "https://registry.yarnpkg.com/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.7.tgz#5ffe45eba1f67cc8d7c2377736c728b322524934" integrity sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA== +matrix-js-sdk@21.0.0: + version "21.0.0" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0.tgz#e81d7c64d370ba9f3dddf6f4cfb7d4ae2e7174e1" + integrity sha512-x4mUdp+ozWHrfm6qBiAxq3htQJWza0AMqdmaDOCr7/74U3cUcwCZrKOdKA7IHWN9W0WrpzJ9TG/ZA2hDKB5FJA== + dependencies: + "@babel/runtime" "^7.12.5" + another-json "^0.2.0" + bs58 "^5.0.0" + content-type "^1.0.4" + loglevel "^1.7.1" + matrix-events-sdk "^0.0.1-beta.7" + p-retry "4" + qs "^6.9.6" + unhomoglyph "^1.0.6" + matrix-js-sdk@21.0.0-rc.2: version "21.0.0-rc.2" resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0-rc.2.tgz#5f7ebcecd623a49533e6d599e7149d6d52003fb3" From 5f38137734a7d261688b8437a039d44b384bece2 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 25 Oct 2022 17:48:39 +0100 Subject: [PATCH 33/38] Upgrade matrix-react-sdk to 3.59.0 --- package.json | 2 +- yarn.lock | 25 +++++-------------------- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index ae7058cae9..cf2fec24b5 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "jsrsasign": "^10.5.25", "katex": "^0.16.0", "matrix-js-sdk": "21.0.0", - "matrix-react-sdk": "3.59.0-rc.2", + "matrix-react-sdk": "3.59.0", "matrix-widget-api": "^1.1.1", "prop-types": "^15.7.2", "react": "17.0.2", diff --git a/yarn.lock b/yarn.lock index 0ff8fd5a92..3f9628c7b4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8180,21 +8180,6 @@ matrix-js-sdk@21.0.0: qs "^6.9.6" unhomoglyph "^1.0.6" -matrix-js-sdk@21.0.0-rc.2: - version "21.0.0-rc.2" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-21.0.0-rc.2.tgz#5f7ebcecd623a49533e6d599e7149d6d52003fb3" - integrity sha512-9vra2tBncpWoAijwX2thtDrP8yuanb1FhUoehsVevvIufxuePRvZtPBheYatesTB2AocADBL18SN3U+P1IRgVA== - dependencies: - "@babel/runtime" "^7.12.5" - another-json "^0.2.0" - bs58 "^5.0.0" - content-type "^1.0.4" - loglevel "^1.7.1" - matrix-events-sdk "^0.0.1-beta.7" - p-retry "4" - qs "^6.9.6" - unhomoglyph "^1.0.6" - matrix-mock-request@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/matrix-mock-request/-/matrix-mock-request-2.5.0.tgz#78da2590e82be2e31edcf9814833af5e5f8d2f1a" @@ -8202,10 +8187,10 @@ matrix-mock-request@^2.5.0: dependencies: expect "^28.1.0" -matrix-react-sdk@3.59.0-rc.2: - version "3.59.0-rc.2" - resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.59.0-rc.2.tgz#42c4291852b1d68ede684a50d1e51815f2694aad" - integrity sha512-UHDOJ1uyycj6pXquINxZjBMuxxRnsXqWgRIfdz1X1H8igdHvNGzfGps9Tc6GMX/SNqPUEvXF4O1jKGJ4i5FVJQ== +matrix-react-sdk@3.59.0: + version "3.59.0" + resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.59.0.tgz#ad98103ba65e17639452b0b13bd19178e6c2f550" + integrity sha512-JxJA3oEQTB0lb9+PDdHa9X8vwTyZKsw0vG0Vl4krmPaDjT0Hs9zBa3d5/KmLswnBKBtyGWIqadVIrm3PHzuolQ== dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.2.0" @@ -8245,7 +8230,7 @@ matrix-react-sdk@3.59.0-rc.2: maplibre-gl "^1.15.2" matrix-encrypt-attachment "^1.0.3" matrix-events-sdk "^0.0.1-beta.7" - matrix-js-sdk "21.0.0-rc.2" + matrix-js-sdk "21.0.0" matrix-widget-api "^1.1.1" minimist "^1.2.5" opus-recorder "^8.0.3" From c67f5da4c105dda3d65f34e2cb3faf907c013205 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 25 Oct 2022 17:54:34 +0100 Subject: [PATCH 34/38] Prepare changelog for v1.11.11 --- CHANGELOG.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 671ac103d5..820c2ade2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,5 @@ -Changes in [1.11.11-rc.2](https://github.com/vector-im/element-web/releases/tag/v1.11.11-rc.2) (2022-10-24) -=========================================================================================================== - -## 🐛 Bug Fixes - * Send Content-Type: application/json header for integration manager /register API ([\#9490](https://github.com/matrix-org/matrix-react-sdk/pull/9490)). Fixes #23580. - -Changes in [1.11.11-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.11.11-rc.1) (2022-10-18) -=========================================================================================================== +Changes in [1.11.11](https://github.com/vector-im/element-web/releases/tag/v1.11.11) (2022-10-25) +================================================================================================= ## ✨ Features * Device manager - tweak string formatting of default device name ([\#23457](https://github.com/vector-im/element-web/pull/23457)). @@ -37,6 +31,7 @@ Changes in [1.11.11-rc.1](https://github.com/vector-im/element-web/releases/tag/ * Device manager - display client information in device details ([\#9315](https://github.com/matrix-org/matrix-react-sdk/pull/9315)). ## 🐛 Bug Fixes + * Send Content-Type: application/json header for integration manager /register API ([\#9490](https://github.com/matrix-org/matrix-react-sdk/pull/9490)). Fixes #23580. * Make ErrorView & CompatibilityView scrollable ([\#23468](https://github.com/vector-im/element-web/pull/23468)). Fixes #23376. * Device manager - put client/browser device metadata in correct section ([\#9447](https://github.com/matrix-org/matrix-react-sdk/pull/9447)). * update the room unread notification counter when the server changes the value without any related read receipt ([\#9438](https://github.com/matrix-org/matrix-react-sdk/pull/9438)). From 6eed89818394544d7b53f80b314480fafe378c96 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 25 Oct 2022 17:54:35 +0100 Subject: [PATCH 35/38] v1.11.11 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cf2fec24b5..21de3c6fd2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "element-web", - "version": "1.11.11-rc.2", + "version": "1.11.11", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": { From 446d944888666e48ffdab994b503fc1f9962a4d3 Mon Sep 17 00:00:00 2001 From: ElementRobot Date: Wed, 26 Oct 2022 16:41:58 +0100 Subject: [PATCH 36/38] Fix config.json failing to load for Jitsi wrapper in non-root deployment (#23577) (#23615) (cherry picked from commit a3ece528e5859d8fd3eedf3b4a653d46298de1d7) Co-authored-by: Michael Telatynski <7t3chguy@gmail.com> --- package.json | 1 + src/vector/jitsi/index.ts | 2 +- yarn.lock | 7 +++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 21de3c6fd2..a34924d72c 100644 --- a/package.json +++ b/package.json @@ -92,6 +92,7 @@ "@testing-library/react": "^12.1.5", "@types/flux": "^3.1.9", "@types/jest": "^29.0.0", + "@types/jsrsasign": "^10.5.4", "@types/modernizr": "^3.5.3", "@types/node": "^14.18.28", "@types/react": "^17.0.49", diff --git a/src/vector/jitsi/index.ts b/src/vector/jitsi/index.ts index b140df45c3..b284cdcaf8 100644 --- a/src/vector/jitsi/index.ts +++ b/src/vector/jitsi/index.ts @@ -65,7 +65,7 @@ const setupCompleted = (async () => { try { // Queue a config.json lookup asap, so we can use it later on. We want this to be concurrent with // other setup work and therefore do not block. - const configPromise = getVectorConfig('..'); + const configPromise = getVectorConfig(); // The widget's options are encoded into the fragment to avoid leaking info to the server. const widgetQuery = new URLSearchParams(window.location.hash.substring(1)); diff --git a/yarn.lock b/yarn.lock index 3f9628c7b4..1581f599fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2062,6 +2062,11 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/jsrsasign@^10.5.4": + version "10.5.4" + resolved "https://registry.yarnpkg.com/@types/jsrsasign/-/jsrsasign-10.5.4.tgz#e8a147c70e017198fd161600e24c938af7b5ae2f" + integrity sha512-05S2f4lGaWgCwFHsa3OEirc4VJf/sJRfhofzxUbuFbmm6NbffPXZrnJqquQAtS3g4C8Z0L9NHgW0znmtDxNoTQ== + "@types/minimatch@*": version "3.0.5" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" @@ -8172,6 +8177,7 @@ matrix-js-sdk@21.0.0: dependencies: "@babel/runtime" "^7.12.5" another-json "^0.2.0" + browser-request "^0.3.3" bs58 "^5.0.0" content-type "^1.0.4" loglevel "^1.7.1" @@ -8202,6 +8208,7 @@ matrix-react-sdk@3.59.0: "@types/ua-parser-js" "^0.7.36" await-lock "^2.1.0" blurhash "^1.1.3" + browser-request "^0.3.3" cheerio "^1.0.0-rc.9" classnames "^2.2.6" commonmark "^0.29.3" From 0b92a7fe7ca8703b476bba7885a11e13b4f2d563 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Wed, 26 Oct 2022 16:46:29 +0100 Subject: [PATCH 37/38] Prepare changelog for v1.11.12 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 820c2ade2e..4a70708e0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +Changes in [1.11.12](https://github.com/vector-im/element-web/releases/tag/v1.11.12) (2022-10-26) +================================================================================================= + +## 🐛 Bug Fixes + * Fix config.json failing to load for Jitsi wrapper in non-root deployment ([\#23577](https://github.com/vector-im/element-web/pull/23577)). + Changes in [1.11.11](https://github.com/vector-im/element-web/releases/tag/v1.11.11) (2022-10-25) ================================================================================================= From 271d2d70785b67736229b694166a6c494dfda036 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Wed, 26 Oct 2022 16:46:30 +0100 Subject: [PATCH 38/38] v1.11.12 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a34924d72c..082bf43a25 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "element-web", - "version": "1.11.11", + "version": "1.11.12", "description": "A feature-rich client for Matrix.org", "author": "New Vector Ltd.", "repository": {