From 1386f9fac0d54944a0812666223df21aaefe8686 Mon Sep 17 00:00:00 2001 From: t3chguy Date: Tue, 17 May 2022 19:03:24 +0000 Subject: [PATCH 01/16] [create-pull-request] automated change --- yarn.lock | 391 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 216 insertions(+), 175 deletions(-) diff --git a/yarn.lock b/yarn.lock index e045ef87fc..75b3bb5dd0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8,28 +8,28 @@ integrity sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ== "@actions/core@^1.4.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.7.0.tgz#f179a5a0bf5c1102d89b8cf1712825e763feaee4" - integrity sha512-7fPSS7yKOhTpgLMbw7lBLc1QJWvJBBAgyTX2PEhagWcKK8t0H8AKCoPMfnrHqIm5cRYH4QFPqD1/ruhuUE7YcQ== + version "1.8.2" + resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.8.2.tgz#67539d669ae9b751430469e9ae4d83e0525973ac" + integrity sha512-FXcBL7nyik8K5ODeCKlxi+vts7torOkoDAKfeh61EAkAy1HAvwn9uVzZBY0f15YcQTcZZ2/iSGBFHEuioZWfDA== dependencies: - "@actions/http-client" "^1.0.11" + "@actions/http-client" "^2.0.1" "@actions/github@^5.0.0": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.0.1.tgz#5fdbe371d9a592038668be95d12421361585fba1" - integrity sha512-JZGyPM9ektb8NVTTI/2gfJ9DL7Rk98tQ7OVyTlgTuaQroariRBsOnzjy0I2EarX4xUZpK88YyO503fhmjFdyAg== + version "5.0.3" + resolved "https://registry.yarnpkg.com/@actions/github/-/github-5.0.3.tgz#b305765d6173962d113451ea324ff675aa674f35" + integrity sha512-myjA/pdLQfhUGLtRZC/J4L1RXOG4o6aYdiEq+zr5wVVKljzbFld+xv10k1FX6IkIJtNxbAq44BdwSNpQ015P0A== dependencies: - "@actions/http-client" "^1.0.11" + "@actions/http-client" "^2.0.1" "@octokit/core" "^3.6.0" "@octokit/plugin-paginate-rest" "^2.17.0" "@octokit/plugin-rest-endpoint-methods" "^5.13.0" -"@actions/http-client@^1.0.11": - version "1.0.11" - resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.11.tgz#c58b12e9aa8b159ee39e7dd6cbd0e91d905633c0" - integrity sha512-VRYHGQV1rqnROJqdMvGUbY/Kn8vriQe/F9HR2AlYHzmKuM/p3kjNuXhmdBfcVgsvRWTz5C5XW5xvndZrVBuAYg== +"@actions/http-client@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-2.0.1.tgz#873f4ca98fe32f6839462a6f046332677322f99c" + integrity sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw== dependencies: - tunnel "0.0.6" + tunnel "^0.0.6" "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.7": version "7.16.7" @@ -38,13 +38,13 @@ dependencies: "@babel/highlight" "^7.16.7" -"@babel/generator@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.10.tgz#c281fa35b0c349bbe9d02916f4ae08fc85ed7189" - integrity sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg== +"@babel/generator@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.12.tgz#5970e6160e9be0428e02f4aba62d8551ec366cc8" + integrity sha512-V49KtZiiiLjH/CnIW6OjJdrenrGoyh6AmKQ3k2AZFKozC1h846Q4NYlZ5nqAigPDUXfGzC88+LOUuG8yKd2kCw== dependencies: - "@babel/types" "^7.17.10" - "@jridgewell/gen-mapping" "^0.1.0" + "@babel/types" "^7.17.12" + "@jridgewell/gen-mapping" "^0.3.0" jsesc "^2.5.1" "@babel/helper-environment-visitor@^7.16.7": @@ -82,18 +82,18 @@ integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw== "@babel/highlight@^7.16.7": - version "7.17.9" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.9.tgz#61b2ee7f32ea0454612def4fccdae0de232b73e3" - integrity sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg== + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.17.12.tgz#257de56ee5afbd20451ac0a75686b6b404257351" + integrity sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.13.16", "@babel/parser@^7.16.7", "@babel/parser@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78" - integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ== +"@babel/parser@^7.13.16", "@babel/parser@^7.16.7", "@babel/parser@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.12.tgz#36c2ed06944e3691ba82735fc4cf62d12d491a23" + integrity sha512-FLzHmN9V3AJIrWfOpvRlZCeVg/WLdicSnTMsLur6uDj9TT8ymUlG9XxURdW/XvuygK+2CW0poOJABdA4m/YKxA== "@babel/runtime@^7.7.2": version "7.17.9" @@ -112,25 +112,25 @@ "@babel/types" "^7.16.7" "@babel/traverse@^7.13.17": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.10.tgz#1ee1a5ac39f4eac844e6cf855b35520e5eb6f8b5" - integrity sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw== + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.12.tgz#011874d2abbca0ccf1adbe38f6f7a4ff1747599c" + integrity sha512-zULPs+TbCvOkIFd4FrG53xrpxvCBwLIgo6tO0tJorY7YV2IWFxUfS/lXDJbGgfyYt9ery/Gxj2niwttNnB0gIw== dependencies: "@babel/code-frame" "^7.16.7" - "@babel/generator" "^7.17.10" + "@babel/generator" "^7.17.12" "@babel/helper-environment-visitor" "^7.16.7" "@babel/helper-function-name" "^7.17.9" "@babel/helper-hoist-variables" "^7.16.7" "@babel/helper-split-export-declaration" "^7.16.7" - "@babel/parser" "^7.17.10" - "@babel/types" "^7.17.10" + "@babel/parser" "^7.17.12" + "@babel/types" "^7.17.12" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.10": - version "7.17.10" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.10.tgz#d35d7b4467e439fcf06d195f8100e0fea7fc82c4" - integrity sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A== +"@babel/types@^7.16.7", "@babel/types@^7.17.0", "@babel/types@^7.17.12": + version "7.17.12" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.12.tgz#1210690a516489c0200f355d87619157fbbd69a0" + integrity sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg== dependencies: "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" @@ -493,23 +493,37 @@ "@babel/runtime" "^7.7.2" regenerator-runtime "^0.13.3" -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9" + integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg== dependencies: "@jridgewell/set-array" "^1.0.0" "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.7" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe" + integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA== "@jridgewell/set-array@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01" - integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg== + version "1.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea" + integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ== "@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.12" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.12.tgz#7ed98f6fa525ffb7c56a2cbecb5f7bb91abd2baf" - integrity sha512-az/NhpIwP3K33ILr0T2bso+k2E/SLf8Yidd8mHl0n6sCQ4YdyC8qDhZA6kOPDNDBA56ZnIjngVl0U3jREA0BUA== + version "1.4.13" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c" + integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.13" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea" + integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" "@malept/cross-spawn-promise@^1.1.0": version "1.1.1" @@ -792,7 +806,7 @@ "@types/json5@^0.0.29": version "0.0.29" resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" - integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/minimatch@*": version "3.0.5" @@ -825,9 +839,9 @@ form-data "^3.0.0" "@types/node@*", "@types/node@^17.0.12": - version "17.0.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.31.tgz#a5bb84ecfa27eec5e1c802c6bbf8139bdb163a5d" - integrity sha512-AR0x5HbXGqkEx9CadRH3EBYx/VkiUgZIhP4wvPn/+5KIsgpNoyFaRlVe0Zlx9gRtg8fA06a9tskE2MSN7TcG4Q== + version "17.0.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.34.tgz#3b0b6a50ff797280b8d000c6281d229f9c538cef" + integrity sha512-XImEz7XwTvDBtzlTnm8YvMqGW/ErMWBsKZ+hMTvnDIjGCKxwK5Xpc+c/oQjOauwq8M4OS11hEkpjX8rrI/eEgA== "@types/node@16.9.1": version "16.9.1" @@ -835,9 +849,9 @@ integrity sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g== "@types/node@^14.6.2": - version "14.18.16" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.16.tgz#878f670ba3f00482bf859b6550b6010610fc54b5" - integrity sha512-X3bUMdK/VmvrWdoTkz+VCn6nwKwrKCFTHtqwBIaQJNx4RUIBBUFXM00bqPz/DsDd+Icjmzm6/tyYZzeGVqb6/Q== + version "14.18.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.18.tgz#5c9503030df484ccffcbb935ea9a9e1d6fad1a20" + integrity sha512-B9EoJFjhqcQ9OmQrNorItO+OwEOORNn3S31WuiHvZY/dm9ajkB7AKD/8toessEtHHNL+58jofbq7hMMY9v4yig== "@types/npm-package-arg@*": version "6.1.1" @@ -911,84 +925,84 @@ "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.6.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.22.0.tgz#7b52a0de2e664044f28b36419210aea4ab619e2a" - integrity sha512-YCiy5PUzpAeOPGQ7VSGDEY2NeYUV1B0swde2e0HzokRsHBYjSdF6DZ51OuRZxVPHx0032lXGLvOMls91D8FXlg== - dependencies: - "@typescript-eslint/scope-manager" "5.22.0" - "@typescript-eslint/type-utils" "5.22.0" - "@typescript-eslint/utils" "5.22.0" - debug "^4.3.2" + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.25.0.tgz#e8ce050990e4d36cc200f2de71ca0d3eb5e77a31" + integrity sha512-icYrFnUzvm+LhW0QeJNKkezBu6tJs9p/53dpPLFH8zoM9w1tfaKzVurkPotEpAqQ8Vf8uaFyL5jHd0Vs6Z0ZQg== + dependencies: + "@typescript-eslint/scope-manager" "5.25.0" + "@typescript-eslint/type-utils" "5.25.0" + "@typescript-eslint/utils" "5.25.0" + debug "^4.3.4" functional-red-black-tree "^1.0.1" - ignore "^5.1.8" + ignore "^5.2.0" regexpp "^3.2.0" - semver "^7.3.5" + semver "^7.3.7" tsutils "^3.21.0" "@typescript-eslint/parser@^5.6.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.22.0.tgz#7bedf8784ef0d5d60567c5ba4ce162460e70c178" - integrity sha512-piwC4krUpRDqPaPbFaycN70KCP87+PC5WZmrWs+DlVOxxmF+zI6b6hETv7Quy4s9wbkV16ikMeZgXsvzwI3icQ== - dependencies: - "@typescript-eslint/scope-manager" "5.22.0" - "@typescript-eslint/types" "5.22.0" - "@typescript-eslint/typescript-estree" "5.22.0" - debug "^4.3.2" - -"@typescript-eslint/scope-manager@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.22.0.tgz#590865f244ebe6e46dc3e9cab7976fc2afa8af24" - integrity sha512-yA9G5NJgV5esANJCO0oF15MkBO20mIskbZ8ijfmlKIvQKg0ynVKfHZ15/nhAJN5m8Jn3X5qkwriQCiUntC9AbA== - dependencies: - "@typescript-eslint/types" "5.22.0" - "@typescript-eslint/visitor-keys" "5.22.0" - -"@typescript-eslint/type-utils@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.22.0.tgz#0c0e93b34210e334fbe1bcb7250c470f4a537c19" - integrity sha512-iqfLZIsZhK2OEJ4cQ01xOq3NaCuG5FQRKyHicA3xhZxMgaxQazLUHbH/B2k9y5i7l3+o+B5ND9Mf1AWETeMISA== - dependencies: - "@typescript-eslint/utils" "5.22.0" - debug "^4.3.2" + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.25.0.tgz#fb533487147b4b9efd999a4d2da0b6c263b64f7f" + integrity sha512-r3hwrOWYbNKP1nTcIw/aZoH+8bBnh/Lh1iDHoFpyG4DnCpvEdctrSl6LOo19fZbzypjQMHdajolxs6VpYoChgA== + dependencies: + "@typescript-eslint/scope-manager" "5.25.0" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/typescript-estree" "5.25.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.25.0.tgz#e78f1484bca7e484c48782075219c82c6b77a09f" + integrity sha512-p4SKTFWj+2VpreUZ5xMQsBMDdQ9XdRvODKXN4EksyBjFp2YvQdLkyHqOffakYZPuWJUDNu3jVXtHALDyTv3cww== + dependencies: + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/visitor-keys" "5.25.0" + +"@typescript-eslint/type-utils@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.25.0.tgz#5750d26a5db4c4d68d511611e0ada04e56f613bc" + integrity sha512-B6nb3GK3Gv1Rsb2pqalebe/RyQoyG/WDy9yhj8EE0Ikds4Xa8RR28nHz+wlt4tMZk5bnAr0f3oC8TuDAd5CPrw== + dependencies: + "@typescript-eslint/utils" "5.25.0" + debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.22.0.tgz#50a4266e457a5d4c4b87ac31903b28b06b2c3ed0" - integrity sha512-T7owcXW4l0v7NTijmjGWwWf/1JqdlWiBzPqzAWhobxft0SiEvMJB56QXmeCQjrPuM8zEfGUKyPQr/L8+cFUBLw== +"@typescript-eslint/types@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.25.0.tgz#dee51b1855788b24a2eceeae54e4adb89b088dd8" + integrity sha512-7fWqfxr0KNHj75PFqlGX24gWjdV/FDBABXL5dyvBOWHpACGyveok8Uj4ipPX/1fGU63fBkzSIycEje4XsOxUFA== -"@typescript-eslint/typescript-estree@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.22.0.tgz#e2116fd644c3e2fda7f4395158cddd38c0c6df97" - integrity sha512-EyBEQxvNjg80yinGE2xdhpDYm41so/1kOItl0qrjIiJ1kX/L/L8WWGmJg8ni6eG3DwqmOzDqOhe6763bF92nOw== +"@typescript-eslint/typescript-estree@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.25.0.tgz#a7ab40d32eb944e3fb5b4e3646e81b1bcdd63e00" + integrity sha512-MrPODKDych/oWs/71LCnuO7NyR681HuBly2uLnX3r5i4ME7q/yBqC4hW33kmxtuauLTM0OuBOhhkFaxCCOjEEw== dependencies: - "@typescript-eslint/types" "5.22.0" - "@typescript-eslint/visitor-keys" "5.22.0" - debug "^4.3.2" - globby "^11.0.4" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/visitor-keys" "5.25.0" + debug "^4.3.4" + globby "^11.1.0" is-glob "^4.0.3" - semver "^7.3.5" + semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.22.0.tgz#1f2c4897e2cf7e44443c848a13c60407861babd8" - integrity sha512-HodsGb037iobrWSUMS7QH6Hl1kppikjA1ELiJlNSTYf/UdMEwzgj0WIp+lBNb6WZ3zTwb0tEz51j0Wee3iJ3wQ== +"@typescript-eslint/utils@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.25.0.tgz#272751fd737733294b4ab95e16c7f2d4a75c2049" + integrity sha512-qNC9bhnz/n9Kba3yI6HQgQdBLuxDoMgdjzdhSInZh6NaDnFpTUlwNGxplUFWfY260Ya0TRPvkg9dd57qxrJI9g== dependencies: "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.22.0" - "@typescript-eslint/types" "5.22.0" - "@typescript-eslint/typescript-estree" "5.22.0" + "@typescript-eslint/scope-manager" "5.25.0" + "@typescript-eslint/types" "5.25.0" + "@typescript-eslint/typescript-estree" "5.25.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" -"@typescript-eslint/visitor-keys@5.22.0": - version "5.22.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.22.0.tgz#f49c0ce406944ffa331a1cfabeed451ea4d0909c" - integrity sha512-DbgTqn2Dv5RFWluG88tn0pP6Ex0ROF+dpDO1TNNZdRtLjUr6bdznjA6f/qNqJLjd2PgguAES2Zgxh/JzwzETDg== +"@typescript-eslint/visitor-keys@5.25.0": + version "5.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.25.0.tgz#33aa5fdcc5cedb9f4c8828c6a019d58548d4474b" + integrity sha512-yd26vFgMsC4h2dgX4+LR+GeicSKIfUvZREFLf3DDjZPtqgLx5AJZr6TetMNwFP9hcKreTTeztQYBTNbNoOycwA== dependencies: - "@typescript-eslint/types" "5.22.0" - eslint-visitor-keys "^3.0.0" + "@typescript-eslint/types" "5.25.0" + eslint-visitor-keys "^3.3.0" abbrev@1: version "1.1.1" @@ -1086,14 +1100,14 @@ ansi-align@^3.0.0: string-width "^4.1.0" ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== ansi-regex@^5.0.1: version "5.0.1" @@ -1200,7 +1214,7 @@ app-builder-lib@^22.14.10: applescript@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317" - integrity sha1-u4evVoytA0pOSMS9r2Bno6JwExc= + integrity sha512-yvtNHdWvtbYEiIazXAdp/NY+BBb65/DAseqlNiJQjOx9DynuzOYDbVLBJvuc0ve0VL9x6B3OHF6eH52y9hCBtQ== aproba@^1.0.3: version "1.2.0" @@ -1324,7 +1338,7 @@ asn1@~0.2.3: 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 sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== astral-regex@^2.0.0: version "2.0.0" @@ -1344,7 +1358,7 @@ async@^3.2.3: asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" @@ -1370,7 +1384,7 @@ auto-launch@^5.0.5: aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.11.0" @@ -1390,7 +1404,7 @@ base64-js@^1.3.1, base64-js@^1.5.1: bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" @@ -1428,7 +1442,7 @@ bluebird@^3.5.0, bluebird@^3.5.5: bmp-js@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.1.0.tgz#e05a63f796a6c1ff25f4771ec7adadc148c07233" - integrity sha1-4Fpj95amwf8l9Hcex62twUjAcjM= + integrity sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw== boolean@^3.0.1: version "3.2.0" @@ -1487,22 +1501,22 @@ buffer-alloc@^1.2.0: buffer-crc32@^0.2.1, buffer-crc32@^0.2.13, buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer-equal@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= + integrity sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA== buffer-equal@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" - integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + integrity sha512-tcBWO2Dl4e7Asr9hTGcpVrCe+F7DubpmqWCTbj4FHLmjqO2hIaC383acQubWtRJhdceqs5uBHs6Es+Sk//RKiQ== buffer-fill@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" - integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + integrity sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ== buffer-from@^1.0.0: version "1.1.2" @@ -1579,7 +1593,7 @@ builder-util@22.14.13: builtins@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== cacache@^15.0.5, cacache@^15.2.0: version "15.3.0" @@ -1639,7 +1653,7 @@ camelcase@^6.2.0: caseless@~0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chalk@^2.0.0: version "2.4.2" @@ -1686,7 +1700,7 @@ chownr@^2.0.0: chromium-pickle-js@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= + integrity sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw== ci-info@^2.0.0: version "2.0.0" @@ -1694,9 +1708,9 @@ ci-info@^2.0.0: integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== ci-info@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.0.tgz#b4ed1fb6818dea4803a55c623041f9165d2066b2" - integrity sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw== + version "3.3.1" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.3.1.tgz#58331f6f472a25fe3a50a351ae3052936c2c7f32" + integrity sha512-SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg== clean-stack@^2.0.0: version "2.2.0" @@ -1964,7 +1978,7 @@ debounce-fn@^4.0.0: dependencies: mimic-fn "^3.0.0" -debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3: +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2145,9 +2159,9 @@ ecc-jsbn@~0.1.1: safer-buffer "^2.1.0" ejs@^3.1.6: - version "3.1.7" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.7.tgz#c544d9c7f715783dd92f0bddcf73a59e6962d006" - integrity sha512-BIar7R6abbUxDA3bfXrO4DSgwo8I+fB5/1zgujl3HLLjwd6+9iOnrT+t3grn2qbk9vOgBubXOFwX2m9axoFaGw== + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== dependencies: jake "^10.8.5" @@ -2254,9 +2268,9 @@ electron-window-state@^5.0.3: mkdirp "^0.5.1" electron@^17: - version "17.4.2" - resolved "https://registry.yarnpkg.com/electron/-/electron-17.4.2.tgz#fb5226100fc3f5d6e319ccad7fa462bf15ee0d94" - integrity sha512-SEf0Tsc1GjCccdsmrEtT51DeaF48ZUa711ekVCmVczn40WvKaqQu7M0SB3c/qRLRQyek/Qyi56zpcoOkjJ8L0Q== + version "17.4.4" + resolved "https://registry.yarnpkg.com/electron/-/electron-17.4.4.tgz#a289fa5cff6a59ef83647517a295eca780d64a86" + integrity sha512-/CqXJwm1VLfhF7+QhCrPEoePcpGMdRh09A+sVHX+kgT1twrmNH8S+ZeMPYxX8EU0O0Eki3UfA5zA2ADWaCDq2Q== dependencies: "@electron/get" "^1.13.0" "@types/node" "^14.6.2" @@ -2303,17 +2317,19 @@ err-code@^2.0.2: resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== -es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: - version "1.19.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.5.tgz#a2cb01eb87f724e815b278b0dd0d00f36ca9a7f1" - integrity sha512-Aa2G2+Rd3b6kxEUKTF4TaW67czBLyAv3z7VOhYRU50YBx+bbsYZ9xQP4lMNazePuFlybXI0V4MruPos7qUo5fA== +es-abstract@^1.19.0, es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== dependencies: call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + function.prototype.name "^1.1.5" get-intrinsic "^1.1.1" get-symbol-description "^1.0.0" has "^1.0.3" + has-property-descriptors "^1.0.0" has-symbols "^1.0.3" internal-slot "^1.0.3" is-callable "^1.2.4" @@ -2325,9 +2341,10 @@ es-abstract@^1.19.1, es-abstract@^1.19.2, es-abstract@^1.19.5: object-inspect "^1.12.0" object-keys "^1.1.1" object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" es-shim-unscopables@^1.0.0: version "1.0.0" @@ -2483,7 +2500,7 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== -eslint-visitor-keys@^3.0.0: +eslint-visitor-keys@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== @@ -2679,9 +2696,9 @@ file-type@^9.0.0: integrity sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw== filelist@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.3.tgz#448607750376484932f67ef1b9ff07386b036c83" - integrity sha512-LwjCsruLWQULGYKy7TX0OPtrL9kLpojOFKc5VCTxdFTV7w5zbsgqVKfnkKG7Qgjtq50gKfO56hJv88OfcGb70Q== + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: minimatch "^5.0.1" @@ -2823,11 +2840,26 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gauge@~2.7.3: version "2.7.4" resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" @@ -2901,14 +2933,14 @@ glob-parent@^5.0.0, glob-parent@^5.1.2, glob-parent@~5.1.2: is-glob "^4.0.1" glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^3.1.1" once "^1.3.0" path-is-absolute "^1.0.0" @@ -2962,13 +2994,13 @@ globals@^12.1.0: type-fest "^0.8.1" globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" -globby@^11.0.4: +globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -3164,7 +3196,7 @@ ignore@^4.0.6: resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -ignore@^5.1.8, ignore@^5.2.0: +ignore@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== @@ -3247,9 +3279,9 @@ internal-slot@^1.0.3: side-channel "^1.0.4" ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== is-bigint@^1.0.1: version "1.0.4" @@ -3875,7 +3907,7 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" -minimatch@^3.0.4, minimatch@^3.1.2: +minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -3883,9 +3915,9 @@ minimatch@^3.0.4, minimatch@^3.1.2: brace-expansion "^1.1.7" minimatch@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" - integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== dependencies: brace-expansion "^2.0.1" @@ -4630,6 +4662,15 @@ regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + regexpp@^3.1.0, regexpp@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" @@ -4798,7 +4839,7 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: +semver@^7.1.1, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -4961,7 +5002,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string.prototype.trimend@^1.0.4: +string.prototype.trimend@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== @@ -4970,7 +5011,7 @@ string.prototype.trimend@^1.0.4: define-properties "^1.1.4" es-abstract "^1.19.5" -string.prototype.trimstart@^1.0.4: +string.prototype.trimstart@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== @@ -5245,7 +5286,7 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tunnel@0.0.6, tunnel@^0.0.6: +tunnel@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== @@ -5309,7 +5350,7 @@ typescript@4.5.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3" integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA== -unbox-primitive@^1.0.1: +unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== @@ -5620,9 +5661,9 @@ yargs-parser@^21.0.0: integrity sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg== yargs@^17.0.1: - version "17.4.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.4.1.tgz#ebe23284207bb75cee7c408c33e722bfb27b5284" - integrity sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g== + version "17.5.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e" + integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA== dependencies: cliui "^7.0.2" escalade "^3.1.1" From bce69efd379f579aa8451e50b0bdedcf6c77cd34 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 20 May 2022 01:01:07 +0100 Subject: [PATCH 02/16] Consolidate i18n check into a reusable workflow (#361) * Fix i18n check bypass for RiotTranslateBot * Consolidate i18n check into a reusable workflow --- .github/workflows/static_analysis.yaml | 36 +------------------------- 1 file changed, 1 insertion(+), 35 deletions(-) diff --git a/.github/workflows/static_analysis.yaml b/.github/workflows/static_analysis.yaml index 93e29a108c..8c0435bbd2 100644 --- a/.github/workflows/static_analysis.yaml +++ b/.github/workflows/static_analysis.yaml @@ -23,41 +23,7 @@ jobs: i18n_lint: name: "i18n Check" - runs-on: ubuntu-latest - permissions: - pull-requests: read - steps: - - uses: actions/checkout@v2 - - - name: "Get modified files" - id: changed_files - if: github.event_name == 'pull_request' && github.actor != 'RiotTranslateBot' - uses: tj-actions/changed-files@v19 - with: - files: | - src/i18n/strings/* - files_ignore: | - src/i18n/strings/en_EN.json - - - name: "Assert only en_EN was modified" - if: | - github.event_name == 'pull_request' && - github.actor != 'RiotTranslateBot' && - steps.changed_files.outputs.any_modified == 'true' - run: | - echo "You can only modify en_EN.json, do not touch any of the other i18n files as Weblate will be confused" - exit 1 - - - uses: actions/setup-node@v3 - with: - cache: 'yarn' - - # Does not need branch matching as only analyses this layer - - name: Install Deps - run: "yarn install --pure-lockfile" - - - name: i18n Check - run: "yarn run diff-i18n" + uses: matrix-org/matrix-react-sdk/.github/workflows/i18n_check.yml@develop js_lint: name: "ESLint" From bf62a92b50f43b8c19021359b77db7153e9f1d21 Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 13:26:16 +0100 Subject: [PATCH 03/16] Read and write config option disableHardwareAcceleration --- src/electron-main.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/electron-main.ts b/src/electron-main.ts index 8d290c9356..624cc17bbf 100644 --- a/src/electron-main.ts +++ b/src/electron-main.ts @@ -271,6 +271,7 @@ const store = new Store<{ spellCheckerEnabled?: boolean; autoHideMenuBar?: boolean; locale?: string | string[]; + disableHardwareAcceleration?: boolean; }>({ name: "electron-config" }); let eventIndex = null; @@ -424,6 +425,12 @@ ipcMain.on('ipcCall', async function(ev, payload) { global.mainWindow.autoHideMenuBar = Boolean(args[0]); global.mainWindow.setMenuBarVisibility(!args[0]); break; + case 'getDisableHardwareAcceleration': + ret = store.get('disableHardwareAcceleration') === true; + break; + case 'setDisableHardwareAcceleration': + store.set('disableHardwareAcceleration', args[0]); + break; case 'getAppVersion': ret = app.getVersion(); break; @@ -843,6 +850,11 @@ app.enableSandbox(); // We disable media controls here. We do this because calls use audio and video elements and they sometimes capture the media keys. See https://github.com/vector-im/element-web/issues/15704 app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling,MediaSessionService'); +// Disable hardware acceleration if the setting has been set. +if (store.get('disableHardwareAcceleration') === true) { + app.disableHardwareAcceleration(); +} + app.on('ready', async () => { try { await setupGlobals(); From f766cd0dcaf54d3e47717bdf6a222027736a5a27 Mon Sep 17 00:00:00 2001 From: James Salter Date: Fri, 20 May 2022 13:37:58 +0100 Subject: [PATCH 04/16] Add log line to denote disabling hardware acceleration --- src/electron-main.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/electron-main.ts b/src/electron-main.ts index 624cc17bbf..68d25063c2 100644 --- a/src/electron-main.ts +++ b/src/electron-main.ts @@ -852,6 +852,7 @@ app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling,Media // Disable hardware acceleration if the setting has been set. if (store.get('disableHardwareAcceleration') === true) { + console.log("Disabling hardware acceleration."); app.disableHardwareAcceleration(); } From 42ab878b082fd83e6846c830a41514a8445cdeca Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Sun, 22 May 2022 09:33:14 +0100 Subject: [PATCH 05/16] Update Node Headers URL https://www.electronjs.org/docs/latest/breaking-changes#deprecated-atomio-node-headers-url --- scripts/hak/hakEnv.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/hak/hakEnv.ts b/scripts/hak/hakEnv.ts index e46ea17746..004446b264 100644 --- a/scripts/hak/hakEnv.ts +++ b/scripts/hak/hakEnv.ts @@ -103,7 +103,7 @@ export default class HakEnv { return Object.assign({}, process.env, { npm_config_arch: this.target.arch, npm_config_target_arch: this.target.arch, - npm_config_disturl: 'https://atom.io/download/electron', + npm_config_disturl: 'https://electronjs.org/headers', npm_config_runtime: this.runtime, npm_config_target: this.runtimeVersion, npm_config_build_from_source: true, From e50e04c50777716595a40e55e4d777ea4f3756a0 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 23 May 2022 15:44:29 +0100 Subject: [PATCH 06/16] Improve typing (#364) * Improve typing * Make sonar happier --- src/@types/keytar.d.ts | 54 +++++++++++++ src/@types/matrix-seshat.d.ts | 145 ++++++++++++++++++++++++++++++++++ src/electron-main.ts | 83 +++++++++++-------- src/protocol.ts | 2 +- 4 files changed, 248 insertions(+), 36 deletions(-) create mode 100644 src/@types/keytar.d.ts create mode 100644 src/@types/matrix-seshat.d.ts diff --git a/src/@types/keytar.d.ts b/src/@types/keytar.d.ts new file mode 100644 index 0000000000..62882c973d --- /dev/null +++ b/src/@types/keytar.d.ts @@ -0,0 +1,54 @@ +// Based on https://github.com/atom/node-keytar/blob/master/keytar.d.ts because keytar is a hak-dependency and not a normal one +// Definitions by: Milan Burda , Brendan Forster , Hari Juturu +// Adapted from DefinitelyTyped: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/keytar/index.d.ts + +declare module "keytar" { + /** + * Get the stored password for the service and account. + * + * @param service The string service name. + * @param account The string account name. + * + * @returns A promise for the password string. + */ + export function getPassword(service: string, account: string): Promise; + + /** + * Add the password for the service and account to the keychain. + * + * @param service The string service name. + * @param account The string account name. + * @param password The string password. + * + * @returns A promise for the set password completion. + */ + export function setPassword(service: string, account: string, password: string): Promise; + + /** + * Delete the stored password for the service and account. + * + * @param service The string service name. + * @param account The string account name. + * + * @returns A promise for the deletion status. True on success. + */ + export function deletePassword(service: string, account: string): Promise; + + /** + * Find a password for the service in the keychain. + * + * @param service The string service name. + * + * @returns A promise for the password string. + */ + export function findPassword(service: string): Promise; + + /** + * Find all accounts and passwords for `service` in the keychain. + * + * @param service The string service name. + * + * @returns A promise for the array of found credentials. + */ + export function findCredentials(service: string): Promise>; +} diff --git a/src/@types/matrix-seshat.d.ts b/src/@types/matrix-seshat.d.ts new file mode 100644 index 0000000000..133a37e27f --- /dev/null +++ b/src/@types/matrix-seshat.d.ts @@ -0,0 +1,145 @@ +/* +Copyright 2022 New Vector Ltd + +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. +*/ + +declare module "matrix-seshat" { + interface IConfig { + language?: string; + passphrase?: string; + } + + /* eslint-disable camelcase */ + interface IMatrixEvent { + event_id: string; + sender: string; + room_id: string; + origin_server_ts: number; + content: Record; + } + + interface IMatrixProfile { + displayname?: string; + avatar_url?: string; + } + + interface ISearchArgs { + searchTerm: number; + limit: number; + before_limit: number; + after_limit: number; + order_by_recency: boolean; + next_batch?: string; + } + + interface ISearchContext { + events_before: IMatrixEvent[]; + events_after: IMatrixEvent[]; + profile_info: { [userId: string]: IMatrixProfile }; + } + + interface ISearchResult { + next_batch: string; + count: number; + results: Array<{ + rank: number; + result: IMatrixEvent; + context: ISearchContext; + }>; + } + /* eslint-enable camelcase */ + + interface ICheckpoint { + roomId: string; + token: string; + fullCrawl: boolean; + direction: "b" | "f"; + } + + interface IDatabaseStats { + size: number; + eventCount: number; + roomCount: number; + } + + interface ILoadArgs { + roomId: string; + limit: number; + fromEvent: string; + direction: "b" | "f"; + } + + interface ILoadResult { + event: IMatrixEvent; + matrixProfile: IMatrixProfile; + } + + export class Seshat { + constructor(path: string, config?: IConfig); + public addEvent(matrixEvent: IMatrixEvent, profile?: IMatrixProfile): void; + public deleteEvent(eventId: string): Promise; + public commit(force?: boolean): Promise; + public commitSync(wait?: boolean, force?: boolean): number; + public reload(): void; + public search(args: ISearchArgs): Promise; + public searchSync( + term: string, + limit?: number, + beforeLimit?: number, + afterLimit?: number, + orderByRecency?: boolean, + ): ISearchResult; + public addHistoricEventsSync( + events: IMatrixEvent[], + newCheckpoint?: ICheckpoint, + oldCheckpoint?: ICheckpoint, + ): boolean; + public addHistoricEvents( + events: IMatrixEvent[], + newCheckpoint?: ICheckpoint, + oldCheckpoint?: ICheckpoint, + ): Promise; + public addCrawlerCheckpoint(checkpoint: ICheckpoint): Promise; + public removeCrawlerCheckpoint(checkpoint: ICheckpoint): Promise; + public loadCheckpoints(): Promise; + public getSize(): Promise; + public getStats(): Promise; + public delete(): Promise; + public shutdown(): Promise; + public changePassphrase(newPassphrase: string): Promise; + public isEmpty(): Promise; + public isRoomIndexed(roomId: string): Promise; + public getUserVersion(): Promise; + public setUserVersion(version: number): Promise; + public loadFileEvents(args: ILoadArgs): Promise; + } + + interface IRecoveryInfo { + totalEvents: number; + reindexedEvents: number; + done: number; + } + + export class SeshatRecovery { + constructor(path: string, config?: IConfig); + public info(): IRecoveryInfo; + public getUserVersion(): Promise; + public shutdown(): Promise; + public reindex(): Promise; + } + + export class ReindexError extends Error { + constructor(message?: string); + } +} diff --git a/src/electron-main.ts b/src/electron-main.ts index 68d25063c2..57b99df9da 100644 --- a/src/electron-main.ts +++ b/src/electron-main.ts @@ -39,18 +39,26 @@ import crypto from "crypto"; import { URL } from "url"; import minimist from "minimist"; +import type * as Keytar from "keytar"; // Hak dependency type +import type { + Seshat as SeshatType, + SeshatRecovery as SeshatRecoveryType, + ReindexError as ReindexErrorType, +} from "matrix-seshat"; // Hak dependency type import * as tray from "./tray"; import { buildMenuTemplate } from './vectormenu'; import webContentsHandler from './webcontents-handler'; import * as updater from './updater'; import { getProfileFromDeeplink, protocolInit, recordSSOSession } from './protocol'; import { _t, AppLocalization } from './language-helper'; +import Input = Electron.Input; +import IpcMainEvent = Electron.IpcMainEvent; const argv = minimist(process.argv, { alias: { help: "h" }, }); -let keytar; +let keytar: typeof Keytar; try { // eslint-disable-next-line @typescript-eslint/no-var-requires keytar = require('keytar'); @@ -63,9 +71,9 @@ try { } let seshatSupported = false; -let Seshat; -let SeshatRecovery; -let ReindexError; +let Seshat: typeof SeshatType; +let SeshatRecovery: typeof SeshatRecoveryType; +let ReindexError: typeof ReindexErrorType; try { // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -84,13 +92,18 @@ try { // Things we need throughout the file but need to be created // async to are initialised in setupGlobals() -let asarPath; -let resPath; -let vectorConfig; -let iconPath; -let trayConfig; -let launcher; -let appLocalization; +let asarPath: string; +let resPath: string; +let iconPath: string; + +let vectorConfig: Record; +let trayConfig: { + // eslint-disable-next-line camelcase + icon_path: string; + brand: string; +}; +let launcher: AutoLaunch; +let appLocalization: AppLocalization; if (argv["help"]) { console.log("Options:"); @@ -108,12 +121,12 @@ if (argv["help"]) { // Electron creates the user data directory (with just an empty 'Dictionaries' directory...) // as soon as the app path is set, so pick a random path in it that must exist if it's a // real user data directory. -function isRealUserDataDir(d) { +function isRealUserDataDir(d: string): boolean { return fs.existsSync(path.join(d, 'IndexedDB')); } // check if we are passed a profile in the SSO callback url -let userDataPath; +let userDataPath: string; const userDataPathInProtocol = getProfileFromDeeplink(argv["_"]); if (userDataPathInProtocol) { @@ -143,7 +156,7 @@ if (userDataPathInProtocol) { } app.setPath('userData', userDataPath); -async function tryPaths(name, root, rawPaths) { +async function tryPaths(name: string, root: string, rawPaths: string[]): Promise { // Make everything relative to root const paths = rawPaths.map(p => path.join(root, p)); @@ -162,7 +175,7 @@ async function tryPaths(name, root, rawPaths) { } // Find the webapp resources and set up things that require them -async function setupGlobals() { +async function setupGlobals(): Promise { // find the webapp asar. asarPath = await tryPaths("webapp", __dirname, [ // If run from the source checkout, this will be in the directory above @@ -245,9 +258,9 @@ async function setupGlobals() { }); } -async function moveAutoLauncher() { +async function moveAutoLauncher(): Promise { // Look for an auto-launcher under 'Riot' and if we find one, port it's - // enabled/disbaledp-ness over to the new 'Element' launcher + // enabled/disabled-ness over to the new 'Element' launcher if (!vectorConfig.brand || vectorConfig.brand === 'Element') { const oldLauncher = new AutoLaunch({ name: 'Riot', @@ -274,18 +287,18 @@ const store = new Store<{ disableHardwareAcceleration?: boolean; }>({ name: "electron-config" }); -let eventIndex = null; +let eventIndex: SeshatType = null; -let mainWindow = null; +let mainWindow: BrowserWindow = null; global.appQuitting = false; -const exitShortcuts = [ +const exitShortcuts: Array<(input: Input, platform: string) => boolean> = [ (input, platform) => platform !== 'darwin' && input.alt && input.key.toUpperCase() === 'F4', (input, platform) => platform !== 'darwin' && input.control && input.key.toUpperCase() === 'Q', (input, platform) => platform === 'darwin' && input.meta && input.key.toUpperCase() === 'Q', ]; -const warnBeforeExit = (event, input) => { +const warnBeforeExit = (event: Event, input: Input): void => { const shouldWarnBeforeExit = store.get('warnBeforeExit', true); const exitShortcutPressed = input.type === 'keyDown' && exitShortcuts.some(shortcutFn => shortcutFn(input, process.platform)); @@ -305,14 +318,14 @@ const warnBeforeExit = (event, input) => { } }; -const deleteContents = async (p) => { +const deleteContents = async (p: string): Promise => { for (const entry of await afs.readdir(p)) { const curPath = path.join(p, entry); await afs.unlink(curPath); } }; -async function randomArray(size) { +async function randomArray(size: number): Promise { return new Promise((resolve, reject) => { crypto.randomBytes(size, (err, buf) => { if (err) { @@ -330,12 +343,12 @@ async function randomArray(size) { // no other way to catch this error). // Assuming we generally run from the console when developing, // this is far preferable. -process.on('uncaughtException', function(error) { +process.on('uncaughtException', function(error: Error): void { console.log('Unhandled exception', error); }); let focusHandlerAttached = false; -ipcMain.on('setBadgeCount', function(ev, count) { +ipcMain.on('setBadgeCount', function(_ev: IpcMainEvent, count: number): void { if (process.platform !== 'win32') { // only set badgeCount on Mac/Linux, the docs say that only those platforms support it but turns out Electron // has some Windows support too, and in some Windows environments this leads to two badges rendering atop @@ -347,7 +360,7 @@ ipcMain.on('setBadgeCount', function(ev, count) { } }); -ipcMain.on('loudNotification', function() { +ipcMain.on('loudNotification', function(): void { if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused() && !focusHandlerAttached) { mainWindow.flashFrame(true); mainWindow.once('focus', () => { @@ -358,8 +371,8 @@ ipcMain.on('loudNotification', function() { } }); -let powerSaveBlockerId = null; -ipcMain.on('app_onAction', function(ev, payload) { +let powerSaveBlockerId: number = null; +ipcMain.on('app_onAction', function(_ev: IpcMainEvent, payload) { switch (payload.action) { case 'call_state': if (powerSaveBlockerId !== null && powerSaveBlocker.isStarted(powerSaveBlockerId)) { @@ -376,11 +389,11 @@ ipcMain.on('app_onAction', function(ev, payload) { } }); -ipcMain.on('ipcCall', async function(ev, payload) { +ipcMain.on('ipcCall', async function(_ev: IpcMainEvent, payload) { if (!mainWindow) return; const args = payload.args || []; - let ret; + let ret: any; switch (payload.name) { case 'getUpdateFeedUrl': @@ -542,7 +555,7 @@ ipcMain.on('ipcCall', async function(ev, payload) { }); const seshatDefaultPassphrase = "DEFAULT_PASSPHRASE"; -async function getOrCreatePassphrase(key) { +async function getOrCreatePassphrase(key: string): Promise { if (keytar) { try { const storedPassphrase = await keytar.getPassword("element.io", key); @@ -561,7 +574,7 @@ async function getOrCreatePassphrase(key) { } } -ipcMain.on('seshat', async function(ev, payload) { +ipcMain.on('seshat', async function(_ev: IpcMainEvent, payload): Promise { if (!mainWindow) return; const sendError = (id, e) => { @@ -576,7 +589,7 @@ ipcMain.on('seshat', async function(ev, payload) { }; const args = payload.args || []; - let ret; + let ret: any; switch (payload.name) { case 'supportsEventIndexing': @@ -913,7 +926,7 @@ app.on('ready', async () => { target[target.length - 1] = 'index.html'; } - let baseDir; + let baseDir: string; if (target[1] === 'webapp') { baseDir = asarPath; } else { @@ -1048,7 +1061,7 @@ app.on('activate', () => { mainWindow.show(); }); -function beforeQuit() { +function beforeQuit(): void { global.appQuitting = true; if (mainWindow) { mainWindow.webContents.send('before-quit'); diff --git a/src/protocol.ts b/src/protocol.ts index 06b78c0b04..7e3bd8b002 100644 --- a/src/protocol.ts +++ b/src/protocol.ts @@ -80,7 +80,7 @@ export function recordSSOSession(sessionID: string): void { writeStore(store); } -export function getProfileFromDeeplink(args): string | undefined { +export function getProfileFromDeeplink(args: string[]): string | undefined { // check if we are passed a profile in the SSO callback url const deeplinkUrl = args.find(arg => arg.startsWith(PROTOCOL + '//')); if (deeplinkUrl && deeplinkUrl.includes(SEARCH_PARAM)) { From ff3647e29a1bd35e0792d610cc1f162368a9a8c4 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 25 May 2022 22:07:56 +0100 Subject: [PATCH 07/16] Remove stale release.sh parameter for no-jsdoc (#363) --- release.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release.sh b/release.sh index 20e787f32c..eb7353ebb9 100755 --- a/release.sh +++ b/release.sh @@ -2,11 +2,11 @@ # # Script to perform a release of element-desktop. # -# Requires githib-changelog-generator; to install, do +# Requires githib-changelog-generator; to install, do # pip install git+https://github.com/matrix-org/github-changelog-generator.git set -e cd `dirname $0` -./node_modules/matrix-js-sdk/release.sh -n -z "$@" +./node_modules/matrix-js-sdk/release.sh -n "$@" From 282109c8610e815f3dfda6e7e5b7b9f2d0da3a19 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 26 May 2022 10:21:41 +0100 Subject: [PATCH 08/16] Fix gha concurrency conditions (#366) --- .github/workflows/pull_request.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pull_request.yaml b/.github/workflows/pull_request.yaml index 8d115062ea..ce9167e05a 100644 --- a/.github/workflows/pull_request.yaml +++ b/.github/workflows/pull_request.yaml @@ -2,6 +2,9 @@ name: Pull Request on: pull_request_target: types: [ opened, edited, labeled, unlabeled, synchronize ] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.head.ref }} + cancel-in-progress: true jobs: changelog: name: Preview Changelog From ec62b8b2cff95f17bee0a18c2321f4f7b3dc0b5e Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 26 May 2022 20:58:27 +0100 Subject: [PATCH 09/16] Update windows-requirements.md (#368) * Update windows-requirements.md * Update windows-requirements.md --- docs/windows-requirements.md | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/windows-requirements.md b/docs/windows-requirements.md index 6ff446e75e..17e0d16b77 100644 --- a/docs/windows-requirements.md +++ b/docs/windows-requirements.md @@ -4,10 +4,12 @@ If you want to build native modules, make sure that the following tools are installed on your system. +- [Git for Windows](https://git-scm.com/download/win) - [Node 14](https://nodejs.org) -- [Python 3](https://www.python.org/downloads/) +- [Python 3](https://www.python.org/downloads/) (if you type 'python' into command prompt it will offer to install it from the windows store) - [Strawberry Perl](https://strawberryperl.com/) -- [Rust](https://rustup.rs/) +- [Rustup](https://rustup.rs/) +- [NASM](https://www.nasm.us/) - [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019) with the following configuration: - On the Workloads tab: - Desktop & Mobile -> C++ build tools @@ -17,10 +19,17 @@ If you want to build native modules, make sure that the following tools are inst - C++ CMake tools for Windows Once installed make sure all those utilities are accessible in your `PATH`. + +If you want to be able to build x86 targets from an x64 host install the right toolchain: +```cmd +rustup toolchain install stable-i686-pc-windows-msvc +rustup target add i686-pc-windows-msvc +``` + In order to load all the C++ utilities installed by Visual Studio you can run the following in a terminal window. ``` -call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 +call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" amd64 ``` You can replace `amd64` with `x86` depending on your CPU architecture. From f1f659b6a06782e6e99867c81ae9199173320f60 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 26 May 2022 23:05:59 +0100 Subject: [PATCH 10/16] Improve hak & build ia32 again by default (#369) * Improve hak & build ia32 again by default * Test both x86_64 and i686 in CI * Improve macOS job name * Try other things * Iterating this is no fun * Attempt again * pwsh is the default, use cmd * Update the incantation for 2022 * Avoid warning multiple times * Consolidate build tool setup * Move default targets to electron-builder and fix warnings --- .github/workflows/build.yaml | 31 +++++++++++++++++++------------ scripts/electron_afterSign.js | 12 ++++++++---- scripts/electron_winSign.js | 16 ++++++++++------ scripts/hak/copy.ts | 1 + scripts/hak/hakEnv.ts | 14 +++++--------- scripts/hak/index.ts | 8 ++++---- scripts/hak/target.ts | 11 +++-------- 7 files changed, 50 insertions(+), 43 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f1ead7c6ef..36bc309099 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -5,10 +5,18 @@ on: branches: [ develop, master ] jobs: windows: - name: Windows + strategy: + matrix: + include: + - target: x86_64-pc-windows-msvc + arch: x64 + - target: i686-pc-windows-msvc + arch: x86 + build-args: --ia32 + name: Windows (${{ matrix.arch }}) runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Cache .hak uses: actions/cache@v3 @@ -17,11 +25,10 @@ jobs: path: | ./.hak - - name: Install nmake + - name: Set up build tools uses: ilammy/msvc-dev-cmd@v1 - - - name: Install Microsoft Build Tools - uses: microsoft/setup-msbuild@v1.1 + with: + arch: ${{ matrix.arch }} # ActiveTCL package on choco is from 2015, # this one is newer but includes more than we need @@ -41,6 +48,7 @@ jobs: uses: actions-rs/toolchain@v1 with: toolchain: stable + target: ${{ matrix.target }} - uses: actions/setup-node@v3 with: @@ -51,19 +59,18 @@ jobs: run: "yarn install --pure-lockfile" - name: Build Natives - shell: pwsh run: | refreshenv - yarn build:native + yarn build:native --target ${{ matrix.target }} - name: Build App - run: "yarn build --publish never" + run: "yarn build --publish never -w ${{ matrix.build-args }}" linux: name: Linux runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Cache .hak uses: actions/cache@v3 @@ -92,10 +99,10 @@ jobs: run: "yarn build --publish never" macos: - name: macOS + name: macOS (universal) runs-on: macos-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Cache .hak uses: actions/cache@v3 diff --git a/scripts/electron_afterSign.js b/scripts/electron_afterSign.js index 100a4c704f..f79e37e460 100644 --- a/scripts/electron_afterSign.js +++ b/scripts/electron_afterSign.js @@ -1,5 +1,6 @@ const { notarize } = require('electron-notarize'); +let warned = false; exports.default = async function(context) { const { electronPlatformName, appOutDir } = context; const appId = context.packager.info.appInfo.id; @@ -11,10 +12,13 @@ exports.default = async function(context) { // from the keychain, so we need to get it from the environment. const userId = process.env.NOTARIZE_APPLE_ID; if (userId === undefined) { - console.log("*************************************"); - console.log("* NOTARIZE_APPLE_ID is not set. *"); - console.log("* This build will NOT be notarised. *"); - console.log("*************************************"); + if (!warned) { + console.log("*************************************"); + console.log("* NOTARIZE_APPLE_ID is not set. *"); + console.log("* This build will NOT be notarised. *"); + console.log("*************************************"); + warned = true; + } return; } diff --git a/scripts/electron_winSign.js b/scripts/electron_winSign.js index 361a102285..e56843e159 100644 --- a/scripts/electron_winSign.js +++ b/scripts/electron_winSign.js @@ -46,15 +46,19 @@ function computeSignToolArgs(options, keyContainer) { return args; } +let warned = false; exports.default = async function(options) { const keyContainer = process.env.SIGNING_KEY_CONTAINER; if (keyContainer === undefined) { - console.warn( - "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" + - "! Skipping Windows signing. !\n" + - "! SIGNING_KEY_CONTAINER not defined. !\n" + - "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", - ); + if (!warned) { + console.warn( + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n" + + "! Skipping Windows signing. !\n" + + "! SIGNING_KEY_CONTAINER not defined. !\n" + + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", + ); + warned = true; + } return; } diff --git a/scripts/hak/copy.ts b/scripts/hak/copy.ts index 4d31418677..3494f621c8 100644 --- a/scripts/hak/copy.ts +++ b/scripts/hak/copy.ts @@ -31,6 +31,7 @@ export default async function copy(hakEnv: HakEnv, moduleInfo: DependencyInfo): // (and if you set glob.cwd it just breaks because it can't find the files) const oldCwd = process.cwd(); try { + await mkdirp(moduleInfo.moduleOutDir); process.chdir(moduleInfo.moduleOutDir); await new Promise((resolve, reject) => { rimraf(moduleInfo.cfg.prune, {}, err => { diff --git a/scripts/hak/hakEnv.ts b/scripts/hak/hakEnv.ts index 004446b264..61f836a3c7 100644 --- a/scripts/hak/hakEnv.ts +++ b/scripts/hak/hakEnv.ts @@ -36,25 +36,21 @@ async function getRuntimeVersion(projectRoot: string): Promise { } export default class HakEnv { - public target: Target; - public projectRoot: string; + public readonly target: Target; public runtime: string; public runtimeVersion: string; public dotHakDir: string; - constructor(prefix: string, targetId: TargetId) { - let target; + constructor(public readonly projectRoot: string, targetId: TargetId | null) { if (targetId) { - target = TARGETS[targetId]; + this.target = TARGETS[targetId]; } else { - target = getHost(); + this.target = getHost(); } - if (!target) { + if (!this.target) { throw new Error(`Unknown target ${targetId}!`); } - this.target = target; - this.projectRoot = prefix; this.dotHakDir = path.join(this.projectRoot, '.hak'); } diff --git a/scripts/hak/index.ts b/scripts/hak/index.ts index afe678b7b4..f65d92f42b 100644 --- a/scripts/hak/index.ts +++ b/scripts/hak/index.ts @@ -61,7 +61,7 @@ async function main() { process.exit(1); } - const targetIds = [] as TargetId[]; + const targetIds: TargetId[] = []; // Apply `--target ` option if specified // Can be specified multiple times for the copy command to bundle // multiple archs into a single universal output module) @@ -84,13 +84,13 @@ async function main() { } const hakEnv = hakEnvs[0]; - const deps = {} as Record; + const deps: Record = {}; const hakDepsCfg = packageJson.hakDependencies || {}; for (const dep of Object.keys(hakDepsCfg)) { const hakJsonPath = path.join(prefix, 'hak', dep, 'hak.json'); - let hakJson; + let hakJson: Record; try { hakJson = await require(hakJsonPath); } catch (e) { @@ -125,7 +125,7 @@ async function main() { } } - let cmds; + let cmds: string[]; if (process.argv.length < 3) { cmds = ['check', 'fetch', 'fetchDeps', 'build', 'copy', 'link']; } else if (METACOMMANDS[process.argv[2]]) { diff --git a/scripts/hak/target.ts b/scripts/hak/target.ts index 50554faba3..7970bb3eb4 100644 --- a/scripts/hak/target.ts +++ b/scripts/hak/target.ts @@ -94,22 +94,17 @@ const x8664UnknownLinuxGnu: Target = { }; export const TARGETS: Record = { + // macOS 'aarch64-apple-darwin': aarch64AppleDarwin, 'x86_64-apple-darwin': x8664AppleDarwin, 'universal-apple-darwin': universalAppleDarwin, + // Windows 'i686-pc-windows-msvc': i686PcWindowsMsvc, 'x86_64-pc-windows-msvc': x8664PcWindowsMsvc, + // Linux 'x86_64-unknown-linux-gnu': x8664UnknownLinuxGnu, }; -// The set of targets we build by default, sorted by increasing complexity so -// that we fail fast when the native host target fails. -export const ENABLED_TARGETS: Target[] = [ - TARGETS['universal-apple-darwin'], - TARGETS['x86_64-unknown-linux-gnu'], - TARGETS['x86_64-pc-windows-msvc'], -]; - export function getHost(): Target { return Object.values(TARGETS).find(target => ( target.platform === process.platform && From 8c3c1908567e688f77ce3e9fcdce83662dbe4069 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Fri, 27 May 2022 09:15:47 +0100 Subject: [PATCH 11/16] Revert back to using libsqlcipher0 for Debian & Ubuntu packages of Desktop (#367) * Revert back to using libsqlcipher0 for Debian & Ubuntu packages of Element Desktop Add option to static link for linux instead of forcing it * Fix linux variants and add CI job * Fix workflow syntax and add concurrency * public all the things --- .github/workflows/build.yaml | 17 +++++++++++++++- dockerbuild/Dockerfile | 4 +++- docs/native-node-modules.md | 13 ++++++++++++- element.io/nightly/control.template | 4 ++-- element.io/release/control.template | 4 ++-- hak/matrix-seshat/build.ts | 26 +++++++++++++++---------- hak/matrix-seshat/check.ts | 28 ++++++++++++++------------- hak/matrix-seshat/fetchDeps.ts | 12 +++++++----- scripts/hak/hakEnv.ts | 30 ++++++++++++++++++----------- 9 files changed, 92 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 36bc309099..0e236eeba7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -3,6 +3,9 @@ on: pull_request: { } push: branches: [ develop, master ] +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true jobs: windows: strategy: @@ -67,7 +70,13 @@ jobs: run: "yarn build --publish never -w ${{ matrix.build-args }}" linux: - name: Linux + strategy: + matrix: + include: + - sqlcipher: system + - sqlcipher: static + static: 1 + name: 'Linux (sqlcipher: ${{ matrix.sqlcipher }})' runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 @@ -84,6 +93,10 @@ jobs: with: toolchain: stable + - name: Install libsqlcipher-dev + if: matrix.sqlcipher == 'system' + run: sudo apt-get install -y libsqlcipher-dev + - uses: actions/setup-node@v3 with: cache: "yarn" @@ -94,6 +107,8 @@ jobs: - name: Build Natives run: "yarn build:native" + env: + SQLCIPHER_STATIC: ${{ matrix.static }} - name: Build App run: "yarn build --publish never" diff --git a/dockerbuild/Dockerfile b/dockerbuild/Dockerfile index 41d1901a92..d7d07061ce 100644 --- a/dockerbuild/Dockerfile +++ b/dockerbuild/Dockerfile @@ -13,7 +13,9 @@ RUN apt-get -qq update && apt-get -qq dist-upgrade && \ # libsecret-1-dev and libgnome-keyring-dev are required even for prebuild keytar apt-get -qq install --no-install-recommends qtbase5-dev bsdtar build-essential autoconf libssl-dev gcc-multilib g++-multilib lzip rpm python libcurl4 git git-lfs ssh unzip tcl \ libsecret-1-dev libgnome-keyring-dev \ - libopenjp2-tools && \ + libopenjp2-tools \ + # Used by seshat (when not SQLCIPHER_STATIC) \ + libsqlcipher-dev && \ # git-lfs git lfs install && \ apt-get purge -y --auto-remove && rm -rf /var/lib/apt/lists/* diff --git a/docs/native-node-modules.md b/docs/native-node-modules.md index a36a5fde38..0da6f4a8a2 100644 --- a/docs/native-node-modules.md +++ b/docs/native-node-modules.md @@ -47,7 +47,7 @@ using yarn at the root of this project: yarn add matrix-seshat -You will have to rebuild the native libraries against electron's version of +You will have to rebuild the native libraries against electron's version of node rather than your system node, using the `electron-build-env` tool. This is also needed to when pulling in changes to Seshat using `yarn link`. @@ -66,6 +66,17 @@ as usual using: yarn start +### Statically linking libsqlcipher + +On Windows & macOS we always statically link libsqlcipher for it is not generally available. +On Linux by default we will use a system package, on debian & ubuntu this is `libsqlcipher0`, +but this is problematic for some other packages. +By including `SQLCIPHER_STATIC=1` in the build environment, the build scripts will statically link sqlcipher, +note that this will want a `libcrypto1.1` shared library available in the system. + +More info can be found at https://github.com/matrix-org/seshat/issues/102 +and https://github.com/vector-im/element-web/issues/20926. + ## Compiling for specific architectures ### macOS diff --git a/element.io/nightly/control.template b/element.io/nightly/control.template index aa29aa64c1..a4b50f303b 100644 --- a/element.io/nightly/control.template +++ b/element.io/nightly/control.template @@ -4,9 +4,9 @@ Vendor: support@element.io Architecture: amd64 Maintainer: support@element.io Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0 -Recommends: libappindicator3-1 +Recommends: libappindicator3-1, libsqlcipher0 Section: net Priority: extra Homepage: https://element.io/ -Description: +Description: riot.im A feature-rich client for Matrix.org (nightly unstable build). diff --git a/element.io/release/control.template b/element.io/release/control.template index 697466a0fe..3c3bcc2fe7 100644 --- a/element.io/release/control.template +++ b/element.io/release/control.template @@ -4,11 +4,11 @@ Vendor: support@element.io Architecture: amd64 Maintainer: support@element.io Depends: libgtk-3-0, libnotify4, libnss3, libxss1, libxtst6, xdg-utils, libatspi2.0-0, libuuid1, libsecret-1-0 -Recommends: libappindicator3-1 +Recommends: libappindicator3-1, libsqlcipher0 Replaces: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0) Breaks: riot-desktop (<< 1.7.0), riot-web (<< 1.7.0) Section: net Priority: extra Homepage: https://element.io/ -Description: +Description: A feature-rich client for Matrix.org diff --git a/hak/matrix-seshat/build.ts b/hak/matrix-seshat/build.ts index 3bd8601dc1..a6e240bfd0 100644 --- a/hak/matrix-seshat/build.ts +++ b/hak/matrix-seshat/build.ts @@ -26,7 +26,7 @@ export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promi if (hakEnv.isWin()) { await buildOpenSslWin(hakEnv, moduleInfo); await buildSqlCipherWin(hakEnv, moduleInfo); - } else { + } else if (hakEnv.wantsStaticSqlCipherUnix()) { await buildSqlCipherUnix(hakEnv, moduleInfo); } await buildMatrixSeshat(hakEnv, moduleInfo); @@ -186,8 +186,12 @@ async function buildSqlCipherUnix(hakEnv: HakEnv, moduleInfo: DependencyInfo) { args.push('--with-crypto-lib=commoncrypto'); } - if (hakEnv.isLinux()) { - args.push('--with-pic=yes'); + if (hakEnv.wantsStaticSqlCipherUnix()) { + args.push('--enable-tcl=no'); + + if (hakEnv.isLinux()) { + args.push('--with-pic=yes'); + } } if (!hakEnv.isHost()) { @@ -210,7 +214,7 @@ async function buildSqlCipherUnix(hakEnv: HakEnv, moduleInfo: DependencyInfo) { args.push(`CFLAGS=${cflags.join(' ')}`); } - const ldflags = []; + const ldflags: string[] = []; if (hakEnv.isMac()) { ldflags.push('-framework Security'); @@ -270,13 +274,15 @@ async function buildMatrixSeshat(hakEnv: HakEnv, moduleInfo: DependencyInfo) { // it for now: we should confirm how much of this it still actually needs. const env = hakEnv.makeGypEnv(); - Object.assign(env, { - SQLCIPHER_STATIC: 1, - SQLCIPHER_LIB_DIR: path.join(moduleInfo.depPrefix, 'lib'), - SQLCIPHER_INCLUDE_DIR: path.join(moduleInfo.depPrefix, 'include'), - }); + if (!hakEnv.isLinux() || hakEnv.wantsStaticSqlCipherUnix()) { + Object.assign(env, { + SQLCIPHER_STATIC: 1, + SQLCIPHER_LIB_DIR: path.join(moduleInfo.depPrefix, 'lib'), + SQLCIPHER_INCLUDE_DIR: path.join(moduleInfo.depPrefix, 'include'), + }); + } - if (hakEnv.isLinux()) { + if (hakEnv.isLinux() && hakEnv.wantsStaticSqlCipherUnix()) { // Ensure Element uses the statically-linked seshat build, and prevent other applications // from attempting to use this one. Detailed explanation: // diff --git a/hak/matrix-seshat/check.ts b/hak/matrix-seshat/check.ts index 14794187e6..86e1112ab7 100644 --- a/hak/matrix-seshat/check.ts +++ b/hak/matrix-seshat/check.ts @@ -21,20 +21,22 @@ import HakEnv from '../../scripts/hak/hakEnv'; import { DependencyInfo } from '../../scripts/hak/dep'; export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { - // of course tcl doesn't have a --version - await new Promise((resolve, reject) => { - const proc = childProcess.spawn('tclsh', [], { - stdio: ['pipe', 'ignore', 'ignore'], - }); - proc.on('exit', (code) => { - if (code !== 0) { - reject("Can't find tclsh - have you installed TCL?"); - } else { - resolve(); - } + if (hakEnv.wantsStaticSqlCipher()) { + // of course tcl doesn't have a --version + await new Promise((resolve, reject) => { + const proc = childProcess.spawn('tclsh', [], { + stdio: ['pipe', 'ignore', 'ignore'], + }); + proc.on('exit', (code) => { + if (code !== 0) { + reject("Can't find tclsh - have you installed TCL?"); + } else { + resolve(); + } + }); + proc.stdin.end(); }); - proc.stdin.end(); - }); + } const tools = [ ['rustc', '--version'], diff --git a/hak/matrix-seshat/fetchDeps.ts b/hak/matrix-seshat/fetchDeps.ts index 1ae1286bcb..6edccaaba9 100644 --- a/hak/matrix-seshat/fetchDeps.ts +++ b/hak/matrix-seshat/fetchDeps.ts @@ -25,7 +25,9 @@ import HakEnv from '../../scripts/hak/hakEnv'; import { DependencyInfo } from '../../scripts/hak/dep'; export default async function(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { - await getSqlCipher(hakEnv, moduleInfo); + if (hakEnv.wantsStaticSqlCipher()) { + await getSqlCipher(hakEnv, moduleInfo); + } if (hakEnv.isWin()) { await getOpenSsl(hakEnv, moduleInfo); @@ -36,7 +38,7 @@ async function getSqlCipher(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise const version = moduleInfo.cfg.dependencies.sqlcipher; const sqlCipherDir = path.join(moduleInfo.moduleTargetDotHakDir, `sqlcipher-${version}`); - let haveSqlcipher; + let haveSqlcipher: boolean; try { await fsProm.stat(sqlCipherDir); haveSqlcipher = true; @@ -47,7 +49,7 @@ async function getSqlCipher(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise if (haveSqlcipher) return; const sqlCipherTarball = path.join(moduleInfo.moduleDotHakDir, `sqlcipher-${version}.tar.gz`); - let haveSqlcipherTar; + let haveSqlcipherTar: boolean; try { await fsProm.stat(sqlCipherTarball); haveSqlcipherTar = true; @@ -97,7 +99,7 @@ async function getOpenSsl(hakEnv: HakEnv, moduleInfo: DependencyInfo): Promise { + public makeGypEnv(): Record { return Object.assign({}, process.env, { npm_config_arch: this.target.arch, npm_config_target_arch: this.target.arch, @@ -107,7 +107,15 @@ export default class HakEnv { }); } - getNodeModuleBin(name: string): string { + public getNodeModuleBin(name: string): string { return path.join(this.projectRoot, 'node_modules', '.bin', name); } + + public wantsStaticSqlCipherUnix(): boolean { + return this.isMac() || process.env.SQLCIPHER_STATIC == '1'; + } + + public wantsStaticSqlCipher(): boolean { + return this.isWin() || this.wantsStaticSqlCipherUnix(); + } } From aa898fd1ad6f4abf3036ffb2873e0a0db54b7dae Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Mon, 30 May 2022 15:40:45 +0100 Subject: [PATCH 12/16] Github Actions pull_request synchronize runs on PR open anyway (#370) * Github Actions pull_request synchronize runs on PR open anyway * Update pull_request.yaml * Update pull_request.yaml --- .github/workflows/pull_request.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yaml b/.github/workflows/pull_request.yaml index ce9167e05a..d861ea054e 100644 --- a/.github/workflows/pull_request.yaml +++ b/.github/workflows/pull_request.yaml @@ -2,9 +2,7 @@ name: Pull Request on: pull_request_target: types: [ opened, edited, labeled, unlabeled, synchronize ] -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.head.ref }} - cancel-in-progress: true +concurrency: ${{ github.workflow }}-${{ github.event.pull_request.head.ref }} jobs: changelog: name: Preview Changelog From f3ce61c2efb6368d91c98f7bb6dbe21e8a61f23c Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 31 May 2022 12:14:25 +0100 Subject: [PATCH 13/16] Prepare changelog for v1.10.14-rc.1 --- CHANGELOG.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47b006151d..70c855f742 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,63 @@ +Changes in [1.10.14-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.10.14-rc.1) (2022-05-31) +=============================================================================================================== + +## ✨ Features + * Builds Windows 32-bit builds once more! ([\#369](https://github.com/vector-im/element-desktop/pull/369)). Fixes vector-im/element-web#13175. + * Option to disable hardware acceleration ([\#365](https://github.com/vector-im/element-desktop/pull/365)). Fixes vector-im/element-web#13648. Contributed by @novocaine. + * Make Lao translation available ([\#22358](https://github.com/vector-im/element-web/pull/22358)). Fixes vector-im/element-web#22327. + * Option to disable hardware acceleration on Element Desktop ([\#22295](https://github.com/vector-im/element-web/pull/22295)). Contributed by @novocaine. + * Configure custom home.html via `.well-known/matrix/client["io.element.embedded_pages"]["home_url"]` for all your element-web/desktop users ([\#7790](https://github.com/matrix-org/matrix-react-sdk/pull/7790)). Contributed by @johannes-krude. + * Live location sharing - open location in OpenStreetMap ([\#8695](https://github.com/matrix-org/matrix-react-sdk/pull/8695)). Contributed by @kerryarchibald. + * Show a dialog when Jitsi encounters an error ([\#8701](https://github.com/matrix-org/matrix-react-sdk/pull/8701)). Fixes vector-im/element-web#22284. + * Add support for setting the `avatar_url` of widgets by integration managers. ([\#8550](https://github.com/matrix-org/matrix-react-sdk/pull/8550)). Contributed by @Fox32. + * Add an option to ignore (block) a user when reporting their events ([\#8471](https://github.com/matrix-org/matrix-react-sdk/pull/8471)). + * Add the option to disable hardware acceleration ([\#8655](https://github.com/matrix-org/matrix-react-sdk/pull/8655)). Contributed by @novocaine. + * Slightly better presentation of read receipts to screen reader users ([\#8662](https://github.com/matrix-org/matrix-react-sdk/pull/8662)). Fixes vector-im/element-web#22293. Contributed by @pvagner. + * Add jump to related event context menu item ([\#6775](https://github.com/matrix-org/matrix-react-sdk/pull/6775)). Fixes vector-im/element-web#19883. + * Add public room directory hook ([\#8626](https://github.com/matrix-org/matrix-react-sdk/pull/8626)). + +## 🐛 Bug Fixes + * Revert back to using libsqlcipher0 for Debian & Ubuntu packages of Desktop ([\#367](https://github.com/vector-im/element-desktop/pull/367)). Fixes vector-im/element-web#22325. + * Stop Jitsi if we time out while connecting to a video room ([\#22301](https://github.com/vector-im/element-web/pull/22301)). Fixes vector-im/element-web#22283. + * Remove inline margin from UTD error message inside a reply tile on ThreadView ([\#8708](https://github.com/matrix-org/matrix-react-sdk/pull/8708)). Fixes vector-im/element-web#22376. Contributed by @luixxiul. + * Move unread notification dots of the threads list to the expected position ([\#8700](https://github.com/matrix-org/matrix-react-sdk/pull/8700)). Fixes vector-im/element-web#22350. Contributed by @luixxiul. + * Prevent overflow of grid items on a bubble with UTD generally ([\#8697](https://github.com/matrix-org/matrix-react-sdk/pull/8697)). Contributed by @luixxiul. + * Create 'Unable To Decrypt' grid layout for hidden events on a bubble layout ([\#8704](https://github.com/matrix-org/matrix-react-sdk/pull/8704)). Fixes vector-im/element-web#22365. Contributed by @luixxiul. + * Fix - AccessibleButton does not set disabled attribute ([\#8682](https://github.com/matrix-org/matrix-react-sdk/pull/8682)). Contributed by @kerryarchibald. + * Fix font not resetting when logging out ([\#8670](https://github.com/matrix-org/matrix-react-sdk/pull/8670)). Fixes vector-im/element-web#17228. + * Fix local aliases section of room settings not working for some homeservers (ie ([\#8698](https://github.com/matrix-org/matrix-react-sdk/pull/8698)). Fixes vector-im/element-web#22337. + * Align EventTile_line with display name on message bubble ([\#8692](https://github.com/matrix-org/matrix-react-sdk/pull/8692)). Fixes vector-im/element-web#22343. Contributed by @luixxiul. + * Convert references to direct chat -> direct message ([\#8694](https://github.com/matrix-org/matrix-react-sdk/pull/8694)). Contributed by @novocaine. + * Improve combining diacritics for U+20D0 to U+20F0 in Chrome ([\#8687](https://github.com/matrix-org/matrix-react-sdk/pull/8687)). + * Make the empty thread panel fill BaseCard ([\#8690](https://github.com/matrix-org/matrix-react-sdk/pull/8690)). Fixes vector-im/element-web#22338. Contributed by @luixxiul. + * Fix edge case around composer handling gendered facepalm emoji ([\#8686](https://github.com/matrix-org/matrix-react-sdk/pull/8686)). + * Fix a grid blowout due to nowrap displayName on a bubble with UTD ([\#8688](https://github.com/matrix-org/matrix-react-sdk/pull/8688)). Fixes vector-im/element-web#21914. Contributed by @luixxiul. + * Apply the same max-width to image tile on the thread timeline as message bubble ([\#8669](https://github.com/matrix-org/matrix-react-sdk/pull/8669)). Fixes vector-im/element-web#22313. Contributed by @luixxiul. + * Fix dropdown button size for picture-in-picture CallView ([\#8680](https://github.com/matrix-org/matrix-react-sdk/pull/8680)). Fixes vector-im/element-web#22316. Contributed by @luixxiul. + * Live location sharing - fix square border for image-less avatar (PSF-1052) ([\#8679](https://github.com/matrix-org/matrix-react-sdk/pull/8679)). Contributed by @kerryarchibald. + * Stop connecting to a video room if the widget messaging disappears ([\#8660](https://github.com/matrix-org/matrix-react-sdk/pull/8660)). + * Fix file button and audio player overflowing from message bubble ([\#8666](https://github.com/matrix-org/matrix-react-sdk/pull/8666)). Fixes vector-im/element-web#22308. Contributed by @luixxiul. + * Don't show broken composer format bar when selection is whitespace ([\#8673](https://github.com/matrix-org/matrix-react-sdk/pull/8673)). Fixes vector-im/element-web#10788. + * Fix media upload http 413 handling ([\#8674](https://github.com/matrix-org/matrix-react-sdk/pull/8674)). + * Fix emoji picker for editing thread responses ([\#8671](https://github.com/matrix-org/matrix-react-sdk/pull/8671)). Fixes matrix-org/element-web-rageshakes#13129. + * Map attribution while sharing live location is now visible ([\#8621](https://github.com/matrix-org/matrix-react-sdk/pull/8621)). Fixes vector-im/element-web#22236. Contributed by @weeman1337. + * Fix info tile overlapping the time stamp on TimelineCard ([\#8639](https://github.com/matrix-org/matrix-react-sdk/pull/8639)). Fixes vector-im/element-web#22256. Contributed by @luixxiul. + * Fix position of wide images on IRC / modern layout ([\#8667](https://github.com/matrix-org/matrix-react-sdk/pull/8667)). Fixes vector-im/element-web#22309. Contributed by @luixxiul. + * Fix other user's displayName being wrapped on the bubble message layout ([\#8456](https://github.com/matrix-org/matrix-react-sdk/pull/8456)). Fixes vector-im/element-web#22004. Contributed by @luixxiul. + * Set spacing declarations to elements in mx_EventTile_mediaLine ([\#8665](https://github.com/matrix-org/matrix-react-sdk/pull/8665)). Fixes vector-im/element-web#22307. Contributed by @luixxiul. + * Fix wide image overflowing from the thumbnail container ([\#8663](https://github.com/matrix-org/matrix-react-sdk/pull/8663)). Fixes vector-im/element-web#22303. Contributed by @luixxiul. + * Fix styles of "Show all" link button on ReactionsRow ([\#8658](https://github.com/matrix-org/matrix-react-sdk/pull/8658)). Fixes vector-im/element-web#22300. Contributed by @luixxiul. + * Automatically log in after registration ([\#8654](https://github.com/matrix-org/matrix-react-sdk/pull/8654)). Fixes vector-im/element-web#19305. Contributed by @justjanne. + * Fix offline status in window title not working reliably ([\#8656](https://github.com/matrix-org/matrix-react-sdk/pull/8656)). + * Align input area with event body's first letter in a thread on IRC/modern layout ([\#8636](https://github.com/matrix-org/matrix-react-sdk/pull/8636)). Fixes vector-im/element-web#22252. Contributed by @luixxiul. + * Fix crash on null idp for SSO buttons ([\#8650](https://github.com/matrix-org/matrix-react-sdk/pull/8650)). Contributed by @hughns. + * Don't open the regular browser or our context menu on right-clicking the `Options` button in the message action bar ([\#8648](https://github.com/matrix-org/matrix-react-sdk/pull/8648)). Fixes vector-im/element-web#22279. + * Show notifications even when Element is focused ([\#8590](https://github.com/matrix-org/matrix-react-sdk/pull/8590)). Contributed by @sumnerevans. + * Remove padding from the buttons on edit message composer of a event tile on a thread ([\#8632](https://github.com/matrix-org/matrix-react-sdk/pull/8632)). Contributed by @luixxiul. + * ensure metaspace changes correctly notify listeners ([\#8611](https://github.com/matrix-org/matrix-react-sdk/pull/8611)). Fixes vector-im/element-web#21006. Contributed by @justjanne. + * Hide image banner on stickers, they have a tooltip already ([\#8641](https://github.com/matrix-org/matrix-react-sdk/pull/8641)). Fixes vector-im/element-web#22244. + * Adjust EditMessageComposer style declarations ([\#8631](https://github.com/matrix-org/matrix-react-sdk/pull/8631)). Fixes vector-im/element-web#22231. Contributed by @luixxiul. + Changes in [1.10.13](https://github.com/vector-im/element-desktop/releases/tag/v1.10.13) (2022-05-24) ===================================================================================================== From 3dc996ae4e532936d96599506a25a8da27d77fa3 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 31 May 2022 12:14:26 +0100 Subject: [PATCH 14/16] v1.10.14-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b470f65804..44ccb3c88e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "element-desktop", "productName": "Element", "main": "lib/electron-main.js", - "version": "1.10.13", + "version": "1.10.14-rc.1", "description": "A feature-rich client for Matrix.org", "author": "Element", "repository": { From 1d602fb2cc4a5ebe97e0635c3b9dddd742eb6383 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 7 Jun 2022 12:28:28 +0100 Subject: [PATCH 15/16] Prepare changelog for v1.10.14 --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70c855f742..8fe7886cea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ -Changes in [1.10.14-rc.1](https://github.com/vector-im/element-desktop/releases/tag/v1.10.14-rc.1) (2022-05-31) -=============================================================================================================== +Changes in [1.10.14](https://github.com/vector-im/element-desktop/releases/tag/v1.10.14) (2022-06-07) +===================================================================================================== ## ✨ Features * Builds Windows 32-bit builds once more! ([\#369](https://github.com/vector-im/element-desktop/pull/369)). Fixes vector-im/element-web#13175. From 35d7c33f0c47a21673bf3e3369d302ed678b7639 Mon Sep 17 00:00:00 2001 From: RiotRobot Date: Tue, 7 Jun 2022 12:28:29 +0100 Subject: [PATCH 16/16] v1.10.14 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 44ccb3c88e..ac17d6d445 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "element-desktop", "productName": "Element", "main": "lib/electron-main.js", - "version": "1.10.14-rc.1", + "version": "1.10.14", "description": "A feature-rich client for Matrix.org", "author": "Element", "repository": {