+
+
-
-
-
-
-
{_t("failed_to_start")}
-
-
-
-
-
{title}
- {messages && messages.map((msg) =>
{msg}
)}
-
-
-
-
+
+ {title}
+
+ {messages?.map((message) => (
+
+ {message}
+
+ ))}
+ {children}
+ {footer}
);
};
-export default ErrorView;
+const MobileAppLinks: React.FC<{
+ appleAppStoreUrl?: string;
+ googlePlayUrl?: string;
+ fdroidUrl?: string;
+}> = ({ appleAppStoreUrl, googlePlayUrl, fdroidUrl }) => (
+
+ {appleAppStoreUrl && (
+
+
+
+ )}
+ {googlePlayUrl && (
+
+
+
+ )}
+ {fdroidUrl && (
+
+
+
+ )}
+
+);
+
+const DesktopAppLinks: React.FC<{
+ macOsUrl?: string;
+ win64Url?: string;
+ win32Url?: string;
+ linuxUrl?: string;
+}> = ({ macOsUrl, win64Url, win32Url, linuxUrl }) => {
+ return (
+
+ {macOsUrl && (
+
+ {_t("incompatible_browser|macos")}
+
+ )}
+ {win64Url && (
+
+ {_t("incompatible_browser|windows", { bits: "64" })}
+
+ )}
+ {win32Url && (
+
+ {_t("incompatible_browser|windows", { bits: "32" })}
+
+ )}
+ {linuxUrl && (
+
+ {_t("incompatible_browser|linux")}
+
+ )}
+
+ );
+};
+
+const linkFactory =
+ (link: string) =>
+ (text: string): JSX.Element => (
+
+ {text}
+
+ );
+
+export const UnsupportedBrowserView: React.FC<{
+ onAccept?(): void;
+}> = ({ onAccept }) => {
+ const config = SdkConfig.get();
+ const brand = config.brand ?? "Element";
+
+ const hasDesktopBuilds =
+ config.desktop_builds?.available &&
+ (config.desktop_builds?.url_macos ||
+ config.desktop_builds?.url_win64 ||
+ config.desktop_builds?.url_win32 ||
+ config.desktop_builds?.url_linux);
+ const hasMobileBuilds = Boolean(
+ config.mobile_builds?.ios || config.mobile_builds?.android || config.mobile_builds?.fdroid,
+ );
+
+ return (
+
+ {/* We render the apps in the footer as they are wider than the 520px container */}
+ {(hasDesktopBuilds || hasMobileBuilds) && }
+
+ {hasDesktopBuilds && (
+ <>
+
+ {_t("incompatible_browser|use_desktop_heading", { brand })}
+
+
+ >
+ )}
+
+ {hasMobileBuilds && (
+ <>
+
+ {hasDesktopBuilds
+ ? _t("incompatible_browser|use_mobile_heading_after_desktop")
+ : _t("incompatible_browser|use_mobile_heading", { brand })}
+
+
+ >
+ )}
+ >
+ }
+ >
+
+ {_t(
+ "incompatible_browser|supported_browsers",
+ {},
+ {
+ Chrome: linkFactory("https://google.com/chrome"),
+ Firefox: linkFactory("https://firefox.com"),
+ Edge: linkFactory("https://microsoft.com/edge"),
+ Safari: linkFactory("https://apple.com/safari"),
+ },
+ )}
+
+
+
+
+ {_t("incompatible_browser|learn_more")}
+
+ {onAccept && (
+
+ {_t("incompatible_browser|continue")}
+
+ )}
+
+
+ );
+};
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 39725bfee7..03b38fe373 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -21,20 +21,24 @@
"invalid_json_generic": "Invalid JSON",
"misconfigured": "Your Element is misconfigured"
},
- "failed_to_start": "Failed to start",
- "go_to_element_io": "Go to element.io",
"incompatible_browser": {
- "browser_links": "Please install
Chrome ,
Firefox , or
Safari for the best experience.",
- "continue_warning": "I understand the risks and wish to continue",
- "feature_warning": "You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.",
- "features": "%(brand)s uses advanced browser features which aren't supported by your current browser.",
- "summary": "Your browser can't run %(brand)s",
- "title": "Unsupported browser"
+ "continue": "Continue anyway",
+ "description": "%(brand)s uses some browser features which are not available in your current browser. %(detail)s",
+ "detail_can_continue": "If you continue, some features may stop working and there is a risk that you may lose data in the future.",
+ "detail_no_continue": "Try updating this browser if you're not using the latest version and try again.",
+ "learn_more": "Learn more",
+ "linux": "Linux",
+ "macos": "Mac",
+ "supported_browsers": "For the best experience, use
Chrome ,
Firefox ,
Edge , or
Safari .",
+ "title": "%(brand)s does not support this browser",
+ "use_desktop_heading": "Use %(brand)s Desktop instead",
+ "use_mobile_heading": "Use %(brand)s on mobile instead",
+ "use_mobile_heading_after_desktop": "Or use our mobile app",
+ "windows": "Windows (%(bits)s-bit)"
},
"powered_by_matrix": "Powered by Matrix",
"powered_by_matrix_with_logo": "Decentralised, encrypted chat & collaboration powered by $matrixLogo",
"unknown_device": "Unknown device",
- "use_brand_on_mobile": "Use %(brand)s on mobile",
"web_default_device_name": "%(appName)s: %(browserName)s on %(osName)s",
"welcome_to_element": "Welcome to Element"
}
diff --git a/src/vector/init.tsx b/src/vector/init.tsx
index 76c238d0e4..277321eba4 100644
--- a/src/vector/init.tsx
+++ b/src/vector/init.tsx
@@ -109,12 +109,10 @@ export async function loadApp(fragParams: {}): Promise
{
}
export async function showError(title: string, messages?: string[]): Promise {
- const ErrorView = (
- await import(
- /* webpackChunkName: "error-view" */
- "../async-components/structures/ErrorView"
- )
- ).default;
+ const { ErrorView } = await import(
+ /* webpackChunkName: "error-view" */
+ "../async-components/structures/ErrorView"
+ );
window.matrixChat = ReactDOM.render(
,
document.getElementById("matrixchat"),
@@ -122,14 +120,12 @@ export async function showError(title: string, messages?: string[]): Promise void): Promise {
- const CompatibilityView = (
- await import(
- /* webpackChunkName: "compatibility-view" */
- "../async-components/structures/CompatibilityView"
- )
- ).default;
+ const { UnsupportedBrowserView } = await import(
+ /* webpackChunkName: "error-view" */
+ "../async-components/structures/ErrorView"
+ );
window.matrixChat = ReactDOM.render(
- ,
+ ,
document.getElementById("matrixchat"),
);
}
diff --git a/test/unit-tests/async-components/structures/ErrorView-test.tsx b/test/unit-tests/async-components/structures/ErrorView-test.tsx
index 773c8106fd..266511dba7 100644
--- a/test/unit-tests/async-components/structures/ErrorView-test.tsx
+++ b/test/unit-tests/async-components/structures/ErrorView-test.tsx
@@ -16,8 +16,9 @@ limitations under the License.
import * as React from "react";
import { render } from "@testing-library/react";
+import SdkConfig from "matrix-react-sdk/src/SdkConfig";
-import ErrorView from "../../../../src/async-components/structures/ErrorView";
+import { ErrorView, UnsupportedBrowserView } from "../../../../src/async-components/structures/ErrorView";
import { setupLanguageMock } from "../../../setup/setupLanguage";
describe(" ", () => {
@@ -30,3 +31,15 @@ describe(" ", () => {
expect(asFragment()).toMatchSnapshot();
});
});
+
+describe(" ", () => {
+ beforeEach(() => {
+ setupLanguageMock();
+ SdkConfig.put({});
+ });
+
+ it("should match snapshot", () => {
+ const { asFragment } = render( );
+ expect(asFragment()).toMatchSnapshot();
+ });
+});
diff --git a/test/unit-tests/async-components/structures/__snapshots__/ErrorView-test.tsx.snap b/test/unit-tests/async-components/structures/__snapshots__/ErrorView-test.tsx.snap
index 9af471f05b..0bb96dc929 100644
--- a/test/unit-tests/async-components/structures/__snapshots__/ErrorView-test.tsx.snap
+++ b/test/unit-tests/async-components/structures/__snapshots__/ErrorView-test.tsx.snap
@@ -3,63 +3,248 @@
exports[` should match snapshot 1`] = `
+
-
-
+
-
-
-
- TITLE
-
-
- MSG1
-
-
- MSG2
-
-
-
-
-
+ MSG2
+
+
+
+
+`;
+
+exports[` should match snapshot 1`] = `
+
+
+
+
+
+ Element does not support this browser
+
+
+ Element uses some browser features which are not available in your current browser. Try updating this browser if you're not using the latest version and try again.
+
+
+
+ For the best experience, use
+
+ Chrome
+
+ ,
+
+ Firefox
+
+ ,
+
+ Edge
+
+ , or
+
+ Safari
+
+ .
+
+
+
+
+
+
+ Use Element Desktop instead
+
+
+
+ Or use our mobile app
+
+
diff --git a/tsconfig.json b/tsconfig.json
index b7c007a729..902b3469b6 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -23,6 +23,7 @@
"./node_modules/matrix-react-sdk/src/@types/png-chunks-extract.d.ts",
"./node_modules/matrix-react-sdk/src/@types/sanitize-html.d.ts",
"./node_modules/matrix-react-sdk/src/@types/matrix-js-sdk.d.ts",
+ "./node_modules/matrix-react-sdk/src/@types/electron-to-chromium.d.ts",
"./src/**/*.ts",
"./src/**/*.tsx",
"./test/**/*.ts",
diff --git a/yarn.lock b/yarn.lock
index 247a2e7c55..64a3f45d93 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1564,22 +1564,27 @@
"@floating-ui/core" "^1.6.0"
"@floating-ui/utils" "^0.2.4"
-"@floating-ui/react-dom@^2.0.0", "@floating-ui/react-dom@^2.0.8", "@floating-ui/react-dom@^2.1.1":
+"@floating-ui/react-dom@^2.0.0":
version "2.1.1"
resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.1.1.tgz#cca58b6b04fc92b4c39288252e285e0422291fb0"
integrity sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==
dependencies:
"@floating-ui/dom" "^1.0.0"
-"@floating-ui/react@^0.26.9":
- version "0.26.19"
- resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.19.tgz#e3c713bec8a7264caa6f8195e0865f9210f483a1"
- integrity sha512-Jk6zITdjjIvjO/VdQFvpRaD3qPwOHH6AoDHxjhpy+oK4KFgaSP871HYWUAPdnLmx1gQ+w/pB312co3tVml+BXA==
+"@floating-ui/react@0.26.11", "@floating-ui/react@^0.26.9":
+ version "0.26.11"
+ resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.26.11.tgz#226d3fec890de439443b62f3138ef7de052b0998"
+ integrity sha512-fo01Cu+jzLDVG/AYAV2OtV6flhXvxP5rDaR1Fk8WWhtsFqwk478Dr2HGtB8s0HqQCsFWVbdHYpPjMiQiR/A9VA==
dependencies:
- "@floating-ui/react-dom" "^2.1.1"
- "@floating-ui/utils" "^0.2.4"
+ "@floating-ui/react-dom" "^2.0.0"
+ "@floating-ui/utils" "^0.2.0"
tabbable "^6.0.0"
+"@floating-ui/utils@^0.2.0":
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.5.tgz#105c37d9d9620ce69b7f692a20c821bf1ad2cbf9"
+ integrity sha512-sTcG+QZ6fdEUObICavU+aB3Mp8HY4n14wYHdxK4fXjPmv3PXZZeY5RaguJmGyeH/CJQhX3fqKUtS4qc1LoHwhQ==
+
"@floating-ui/utils@^0.2.4":
version "0.2.4"
resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.4.tgz#1d459cee5031893a08a0e064c406ad2130cced7c"
@@ -2216,15 +2221,7 @@
"@radix-ui/react-label" "2.0.2"
"@radix-ui/react-primitive" "1.0.3"
-"@radix-ui/react-id@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.0.1.tgz#73cdc181f650e4df24f0b6a5b7aa426b912c88c0"
- integrity sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==
- dependencies:
- "@babel/runtime" "^7.13.10"
- "@radix-ui/react-use-layout-effect" "1.0.1"
-
-"@radix-ui/react-id@1.1.0":
+"@radix-ui/react-id@1.0.1", "@radix-ui/react-id@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-id/-/react-id-1.1.0.tgz#de47339656594ad722eb87f94a6b25f9cffae0ed"
integrity sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==
@@ -2310,6 +2307,14 @@
dependencies:
"@radix-ui/react-slot" "1.1.0"
+"@radix-ui/react-progress@^1.0.3":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@radix-ui/react-progress/-/react-progress-1.1.0.tgz#28c267885ec154fc557ec7a66cb462787312f7e2"
+ integrity sha512-aSzvnYpP725CROcxAOEBVZZSIQVQdHgBr2QQFKySsaD14u8dNT0batuXI+AAGDdAHfXH8rbnHmjYFqVJ21KkRg==
+ dependencies:
+ "@radix-ui/react-context" "1.1.0"
+ "@radix-ui/react-primitive" "2.0.0"
+
"@radix-ui/react-roving-focus@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz#b30c59daf7e714c748805bfe11c76f96caaac35e"
@@ -2384,13 +2389,6 @@
dependencies:
"@radix-ui/react-use-callback-ref" "1.1.0"
-"@radix-ui/react-use-layout-effect@1.0.1":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz#be8c7bc809b0c8934acf6657b577daf948a75399"
- integrity sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==
- dependencies:
- "@babel/runtime" "^7.13.10"
-
"@radix-ui/react-use-layout-effect@1.1.0":
version "1.1.0"
resolved "https://registry.yarnpkg.com/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz#3c2c8ce04827b26a39e442ff4888d9212268bd27"
@@ -3114,11 +3112,6 @@
resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.12.tgz#12bb1e2be27293c1406acb6af1c3f3a1481d98c6"
integrity sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==
-"@types/q@^1.5.1":
- version "1.5.8"
- resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.8.tgz#95f6c6a08f2ad868ba230ead1d2d7f7be3db3837"
- integrity sha512-hroOstUScF6zhIi+5+x0dzqrHA1EJi+Irri6b1fxolMTqqHIV/Cg77EtnQcZqZCu8hR3mX2BzIxN4/GzI68Kfw==
-
"@types/qrcode@^1.5.5":
version "1.5.5"
resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac"
@@ -3369,27 +3362,26 @@
resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
-"@vector-im/compound-design-tokens@^1.2.0":
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/@vector-im/compound-design-tokens/-/compound-design-tokens-1.5.0.tgz#6c8ed8eb0ddbb1fd8f8e6025d66b856dee8b5677"
- integrity sha512-G1EvLJ2lyWjd2esKqlJjQl7KXrCfQNKZUdtW68y2aQi8EvVMOpVvCNXGf0HwRmdXGGy2FhBIOufVTgx39I7juw==
- dependencies:
- svg2vectordrawable "^2.9.1"
+"@vector-im/compound-design-tokens@1.7.0", "@vector-im/compound-design-tokens@^1.2.0", "@vector-im/compound-design-tokens@^1.6.1":
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/@vector-im/compound-design-tokens/-/compound-design-tokens-1.7.0.tgz#508b41cd8464c72d73725030f5c84b627a41167c"
+ integrity sha512-cXb2QiwEwtEZiC+7IRvYIf7tBD1KoFcL4YsrFlWapD689Wi3qrmmhFRLFoijHUM3d8Ni6B+7p5SdACRrWb6xBQ==
-"@vector-im/compound-web@^4.6.0":
- version "4.10.0"
- resolved "https://registry.yarnpkg.com/@vector-im/compound-web/-/compound-web-4.10.0.tgz#5403c9933af91d432b5fb5f92a305acadc810893"
- integrity sha512-SPeol6FK/h/q8ChHyuCCncUIVoIGNdPODBf7UqvaohRjt8EzyAAHKP89l1YhWKqEaOtG67+28IXoFvdS46tbUA==
+"@vector-im/compound-web@5.5.0", "@vector-im/compound-web@^4.6.0", "@vector-im/compound-web@^5.5.0":
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/@vector-im/compound-web/-/compound-web-5.5.0.tgz#c646cd8c59aa7e5df527d843ad3b7b7c064d5224"
+ integrity sha512-Z+QSXOkJE4/LYk9j9FMVE2m5noz3gEA4yRxetjSJyXB5mDpyIJ1OYAweuZJXS3foxqygVDeB82YgTw1JgDtUvg==
dependencies:
"@floating-ui/react" "^0.26.9"
- "@floating-ui/react-dom" "^2.0.8"
"@radix-ui/react-context-menu" "^2.1.5"
"@radix-ui/react-dropdown-menu" "^2.0.6"
"@radix-ui/react-form" "^0.0.3"
+ "@radix-ui/react-progress" "^1.0.3"
"@radix-ui/react-separator" "^1.0.3"
"@radix-ui/react-slot" "^1.0.2"
"@radix-ui/react-tooltip" "^1.0.6"
classnames "^2.3.2"
+ ts-xor "^1.3.0"
vaul "^0.7.0"
"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1":
@@ -3560,11 +3552,6 @@ abab@^2.0.6:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
-abs-svg-path@^0.1.1:
- version "0.1.1"
- resolved "https://registry.yarnpkg.com/abs-svg-path/-/abs-svg-path-0.1.1.tgz#df601c8e8d2ba10d4a76d625e236a9a39c2723bf"
- integrity sha512-d8XPSGjfyzlXC3Xx891DJRyZfqk5JU0BJrDQcsWomFIV1/BIzPW5HDH5iDdWpqWaav0YVIEzT1RHTwWr0FFshA==
-
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
@@ -4220,7 +4207,7 @@ chalk@5.2.0:
resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.2.0.tgz#249623b7d66869c673699fb66d65723e54dfcfb3"
integrity sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==
-chalk@^2.4.1, chalk@^2.4.2:
+chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -4328,15 +4315,6 @@ co@^4.6.0:
resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==
-coa@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
- integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
- dependencies:
- "@types/q" "^1.5.1"
- chalk "^2.4.1"
- q "^1.1.2"
-
code-block-writer@^11.0.0:
version "11.0.3"
resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.3.tgz#9eec2993edfb79bfae845fbc093758c0a0b73b76"
@@ -4699,14 +4677,6 @@ css-select@^5.1.0:
domutils "^3.0.1"
nth-check "^2.0.1"
-css-tree@^1.1.2, css-tree@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d"
- integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==
- dependencies:
- mdn-data "2.0.14"
- source-map "^0.6.1"
-
css-tree@^2.3.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
@@ -4797,13 +4767,6 @@ cssnano@^7.0.1:
cssnano-preset-default "^7.0.4"
lilconfig "^3.1.2"
-csso@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529"
- integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==
- dependencies:
- css-tree "^1.1.2"
-
csso@^5.0.5:
version "5.0.5"
resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6"
@@ -6941,11 +6904,6 @@ is-subset@^0.1.1:
resolved "https://registry.yarnpkg.com/is-subset/-/is-subset-0.1.1.tgz#8a59117d932de1de00f245fcdd39ce43f1e939a6"
integrity sha512-6Ybun0IkarhmEqxXCNw/C0bna6Zb/TkfUX9UbwJtK6ObwAVCxmAP308WWTHviM/zAqXk05cdhYsUsZeGQh99iw==
-is-svg-path@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-svg-path/-/is-svg-path-1.0.2.tgz#77ab590c12b3d20348e5c7a13d0040c87784dda0"
- integrity sha512-Lj4vePmqpPR1ZnRctHv8ltSh1OrSxHkhUkd7wi+VQdcdP15/KvQFyk7LhNuM7ZW0EVbJz8kZLVmL9quLrfq4Kg==
-
is-symbol@^1.0.2, is-symbol@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c"
@@ -8125,11 +8083,6 @@ matrix-widget-api@^1.3.1, matrix-widget-api@^1.5.0, matrix-widget-api@^1.6.0:
"@types/events" "^3.0.0"
events "^3.2.0"
-mdn-data@2.0.14:
- version "2.0.14"
- resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50"
- integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
-
mdn-data@2.0.28:
version "2.0.28"
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba"
@@ -8426,13 +8379,6 @@ normalize-range@^0.1.2:
resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
-normalize-svg-path@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/normalize-svg-path/-/normalize-svg-path-1.1.0.tgz#0e614eca23c39f0cffe821d6be6cd17e569a766c"
- integrity sha512-r9KHKG2UUeB5LoTouwDzBy2VxXlHsiM6fyLQvnJa0S5hrhzqElH/CH7TUGhT1fVvIYBIKf3OpY4YJ4CK+iaqHg==
- dependencies:
- svg-arc-to-cubic-bezier "^3.0.0"
-
npm-run-path@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea"
@@ -8708,11 +8654,6 @@ parse-srcset@^1.0.2:
resolved "https://registry.yarnpkg.com/parse-srcset/-/parse-srcset-1.0.2.tgz#f2bd221f6cc970a938d88556abc589caaaa2bde1"
integrity sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==
-parse-svg-path@^0.1.2:
- version "0.1.2"
- resolved "https://registry.yarnpkg.com/parse-svg-path/-/parse-svg-path-0.1.2.tgz#7a7ec0d1eb06fa5325c7d3e009b859a09b5d49eb"
- integrity sha512-JyPSBnkTJ0AI8GGJLfMXvKq42cj5c006fnLz6fXy6zfoVjJizi8BNTpu8on8ziI1cKy9d9DGNuY17Ce7wuejpQ==
-
parse5@^7.0.0, parse5@^7.1.1:
version "7.1.2"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.2.tgz#0736bebbfd77793823240a23b7fc5e010b7f8e32"
@@ -9626,11 +9567,6 @@ pure-rand@^6.0.0:
resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.1.0.tgz#d173cf23258231976ccbdb05247c9787957604f2"
integrity sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==
-q@^1.1.2:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
- integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==
-
qrcode@1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.3.tgz#03afa80912c0dccf12bc93f615a535aad1066170"
@@ -10530,11 +10466,6 @@ sprintf-js@~1.0.2:
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
-stable@^0.1.8:
- version "0.1.8"
- resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
- integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-
stack-utils@^2.0.3:
version "2.0.6"
resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f"
@@ -10845,55 +10776,16 @@ supports-preserve-symlinks-flag@^1.0.0:
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
-svg-arc-to-cubic-bezier@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/svg-arc-to-cubic-bezier/-/svg-arc-to-cubic-bezier-3.2.0.tgz#390c450035ae1c4a0104d90650304c3bc814abe6"
- integrity sha512-djbJ/vZKZO+gPoSDThGNpKDO+o+bAeA4XQKovvkNCqnIS2t+S4qnLAGQhyyrulhCFRl1WWzAp0wUDV8PpTVU3g==
-
svg-parser@^2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5"
integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==
-svg-path-bounds@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/svg-path-bounds/-/svg-path-bounds-1.0.2.tgz#00312f672b08afc432a66ddfbd06db40cec8d0d0"
- integrity sha512-H4/uAgLWrppIC0kHsb2/dWUYSmb4GE5UqH06uqWBcg6LBjX2fu0A8+JrO2/FJPZiSsNOKZAhyFFgsLTdYUvSqQ==
- dependencies:
- abs-svg-path "^0.1.1"
- is-svg-path "^1.0.1"
- normalize-svg-path "^1.0.0"
- parse-svg-path "^0.1.2"
-
svg-tags@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
integrity sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==
-svg2vectordrawable@^2.9.1:
- version "2.9.1"
- resolved "https://registry.yarnpkg.com/svg2vectordrawable/-/svg2vectordrawable-2.9.1.tgz#23186ff7ace7038d09c031176dbca04063a97e5d"
- integrity sha512-7WJIh4SzZLyEJtn45y+f8rREkgBiQMWfb0FoYkXuioywESjDWfbSuP0FQEmIiHP2zOi0oOO8pTG4VkeWJyidWw==
- dependencies:
- coa "^2.0.2"
- mkdirp "^1.0.4"
- svg-path-bounds "^1.0.1"
- svgo "^2.8.0"
- svgpath "^2.5.0"
-
-svgo@^2.8.0:
- version "2.8.0"
- resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24"
- integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==
- dependencies:
- "@trysound/sax" "0.2.0"
- commander "^7.2.0"
- css-select "^4.1.3"
- css-tree "^1.1.3"
- csso "^4.2.0"
- picocolors "^1.0.0"
- stable "^0.1.8"
-
svgo@^3.0.2, svgo@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.2.tgz#ad58002652dffbb5986fc9716afe52d869ecbda8"
@@ -10907,11 +10799,6 @@ svgo@^3.0.2, svgo@^3.3.2:
csso "^5.0.5"
picocolors "^1.0.0"
-svgpath@^2.5.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/svgpath/-/svgpath-2.6.0.tgz#5b160ef3d742b7dfd2d721bf90588d3450d7a90d"
- integrity sha512-OIWR6bKzXvdXYyO4DK/UWa1VA1JeKq8E+0ug2DG98Y/vOmMpfZNj+TIG988HjfYSqtcy/hFOtZq/n/j5GSESNg==
-
symbol-tree@^3.2.4:
version "3.2.4"
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
@@ -11130,6 +11017,11 @@ ts-prune@^0.10.3:
"true-myth" "^4.1.0"
ts-morph "^13.0.1"
+ts-xor@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/ts-xor/-/ts-xor-1.3.0.tgz#3e59f24f0321f9f10f350e0cee3b534b89a2c70b"
+ integrity sha512-RLXVjliCzc1gfKQFLRpfeD0rrWmjnSTgj7+RFhoq3KRkUYa8LE/TIidYOzM5h+IdFBDSjjSgk9Lto9sdMfDFEA==
+
tsconfig-paths@^3.15.0:
version "3.15.0"
resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4"