From 4a715bfd17fbb2cbaaeb8d5bc839ab7e8e73a036 Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 14 May 2022 08:24:21 +0530 Subject: [PATCH 001/717] Fix pasting not working #551 --- src/client/event/hotkeys.js | 8 ++++---- src/client/state/navigation.js | 10 ++++++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/src/client/event/hotkeys.js b/src/client/event/hotkeys.js index 30594e48..ce52decf 100644 --- a/src/client/event/hotkeys.js +++ b/src/client/event/hotkeys.js @@ -33,22 +33,22 @@ function listenKeyboard(event) { // open search modal if (event.code === 'KeyK') { event.preventDefault(); - if (navigation.isRawModalVisible) { - return; - } + if (navigation.isRawModalVisible) return; openSearch(); } // focus message field on paste if (event.code === 'KeyV') { + if (navigation.isRawModalVisible) return; const msgTextarea = document.getElementById('message-textarea'); + if (document.activeElement !== msgTextarea && document.activeElement.tagName.toLowerCase() === 'input') return; msgTextarea?.focus(); } } if (!event.ctrlKey && !event.altKey && !event.metaKey) { if (navigation.isRawModalVisible) return; - if (['text', 'textarea'].includes(document.activeElement.type)) { + if (document.activeElement.tagName.toLowerCase() === 'input') { return; } diff --git a/src/client/state/navigation.js b/src/client/state/navigation.js index cc1e1731..019a5d31 100644 --- a/src/client/state/navigation.js +++ b/src/client/state/navigation.js @@ -14,7 +14,8 @@ class Navigation extends EventEmitter { this.isRoomSettings = false; this.recentRooms = []; - this.isRawModalVisible = false; + this.rawModelStack = []; + window.nav = this; } _setSpacePath(roomId) { @@ -47,8 +48,13 @@ class Navigation extends EventEmitter { } } + get isRawModalVisible() { + return this.rawModelStack.length > 0; + } + setIsRawModalVisible(visible) { - this.isRawModalVisible = visible; + if (visible) this.rawModelStack.push(true); + else this.rawModelStack.pop(); } navigate(action) { From 941dae062517b6f380e5b38fa059c9c02b1fb8fc Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 14 May 2022 08:28:31 +0530 Subject: [PATCH 002/717] Remove globally exposed var --- src/client/state/navigation.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/client/state/navigation.js b/src/client/state/navigation.js index 019a5d31..b39c043f 100644 --- a/src/client/state/navigation.js +++ b/src/client/state/navigation.js @@ -15,7 +15,6 @@ class Navigation extends EventEmitter { this.recentRooms = []; this.rawModelStack = []; - window.nav = this; } _setSpacePath(roomId) { From a6fdf9010b31dcf89f0941adb4d294c363ab14bc Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 14 May 2022 09:38:58 +0530 Subject: [PATCH 003/717] v2.0.2 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index fa21cbcc..b57e931d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.0.1", + "version": "2.0.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.0.1", + "version": "2.0.2", "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.10", diff --git a/package.json b/package.json index 0ac5fbc9..20b35b95 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.0.1", + "version": "2.0.2", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index bc3aaa94..bff78b5f 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.0.1', + version: '2.0.2', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 1bdd0449e02fb48425d9aa6071b0180415eb148b Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 14 May 2022 20:05:43 +0530 Subject: [PATCH 004/717] Fix edit message not working (#552) --- src/client/event/hotkeys.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/client/event/hotkeys.js b/src/client/event/hotkeys.js index ce52decf..c1b2af1d 100644 --- a/src/client/event/hotkeys.js +++ b/src/client/event/hotkeys.js @@ -41,14 +41,17 @@ function listenKeyboard(event) { if (event.code === 'KeyV') { if (navigation.isRawModalVisible) return; const msgTextarea = document.getElementById('message-textarea'); - if (document.activeElement !== msgTextarea && document.activeElement.tagName.toLowerCase() === 'input') return; + const { activeElement } = document; + if (activeElement !== msgTextarea + && ['input', 'textarea'].includes(activeElement.tagName.toLowerCase()) + ) return; msgTextarea?.focus(); } } if (!event.ctrlKey && !event.altKey && !event.metaKey) { if (navigation.isRawModalVisible) return; - if (document.activeElement.tagName.toLowerCase() === 'input') { + if (['input', 'textarea'].includes(document.activeElement.tagName.toLowerCase())) { return; } From 69b60553531680d53da9232363548ec36a6830ae Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sun, 15 May 2022 10:39:42 +0530 Subject: [PATCH 005/717] v2.0.3 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index b57e931d..9b4ae930 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.0.2", + "version": "2.0.3", "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.10", diff --git a/package.json b/package.json index 20b35b95..34b56e6f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.0.2", + "version": "2.0.3", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index bff78b5f..b6021125 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.0.2', + version: '2.0.3', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From fda71166df4b71ef83cd40a4edb2dffdc449fef7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:16:55 +0530 Subject: [PATCH 006/717] Bump actions/github-script from 6.0.0 to 6.1.0 (#562) Bumps [actions/github-script](https://github.com/actions/github-script) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6.0.0...v6.1.0) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/deploy-pull-request.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 1c1ddfa0..11116945 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -21,7 +21,7 @@ jobs: path: dist retention-days: 1 - name: Get PR info - uses: actions/github-script@v6.0.0 + uses: actions/github-script@v6.1.0 with: script: | var fs = require('fs'); diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 814a344b..84098f24 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -14,7 +14,7 @@ jobs: # workflow_run action (https://github.com/actions/download-artifact/issues/60) # so instead we get this mess: - name: Download artifact - uses: actions/github-script@v6.0.0 + uses: actions/github-script@v6.1.0 with: script: | var artifacts = await github.rest.actions.listWorkflowRunArtifacts({ @@ -48,7 +48,7 @@ jobs: run: unzip -d dist previewbuild.zip && rm previewbuild.zip && unzip pr.json.zip && rm pr.json.zip - name: Read PR Info id: readctx - uses: actions/github-script@v6.0.0 + uses: actions/github-script@v6.1.0 with: script: | var fs = require('fs'); From 54fd394ef5f836977b6bb4df36056cb3bbeaa182 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:17:47 +0530 Subject: [PATCH 007/717] Bump webpack from 5.72.0 to 5.72.1 (#561) Bumps [webpack](https://github.com/webpack/webpack) from 5.72.0 to 5.72.1. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.72.0...v5.72.1) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b4ae930..8d14b05b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,7 @@ "style-loader": "^3.3.1", "url": "^0.11.0", "util": "^0.12.4", - "webpack": "^5.72.0", + "webpack": "^5.72.1", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.9.0", "webpack-merge": "^5.7.3" @@ -5480,9 +5480,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -8304,10 +8304,10 @@ "node": ">=4" } }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "node_modules/json-schema": { @@ -13438,9 +13438,9 @@ } }, "node_modules/webpack": { - "version": "5.72.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz", - "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", + "version": "5.72.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", + "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -13452,13 +13452,13 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.9.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", @@ -18150,9 +18150,9 @@ } }, "enhanced-resolve": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz", - "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", + "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -20282,10 +20282,10 @@ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, "json-schema": { @@ -24119,9 +24119,9 @@ } }, "webpack": { - "version": "5.72.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.0.tgz", - "integrity": "sha512-qmSmbspI0Qo5ld49htys8GY9XhS9CGqFoHTsOVAnjBdg0Zn79y135R+k4IR4rKK6+eKaabMhJwiVB7xw0SJu5w==", + "version": "5.72.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", + "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -24133,13 +24133,13 @@ "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.2", + "enhanced-resolve": "^5.9.3", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.9", - "json-parse-better-errors": "^1.0.2", + "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", diff --git a/package.json b/package.json index 34b56e6f..fd2cf6bf 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "style-loader": "^3.3.1", "url": "^0.11.0", "util": "^0.12.4", - "webpack": "^5.72.0", + "webpack": "^5.72.1", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.9.0", "webpack-merge": "^5.7.3" From 73dcb441210a857a736c85cfe7d7ff586124e586 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:20:01 +0530 Subject: [PATCH 008/717] Bump matrix-js-sdk from 17.1.0 to 17.2.0 (#560) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 17.1.0 to 17.2.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v17.1.0...v17.2.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 17 ++++++++++------- package.json | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8d14b05b..4cc09590 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "html-react-parser": "^1.4.12", "katex": "^0.15.3", "linkifyjs": "^2.1.9", - "matrix-js-sdk": "^17.1.0", + "matrix-js-sdk": "^17.2.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", @@ -8875,9 +8875,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.1.0.tgz", - "integrity": "sha512-1MZYo+B4FnZMII1/Mw0E7WX4erCxnPpeA8fankY5Ql82LQQVSnceOpX2XAsRlDHcxcdExB929KKqVrk/eqDM/A==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz", + "integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -8890,6 +8890,9 @@ "qs": "^6.9.6", "request": "^2.88.2", "unhomoglyph": "^1.0.6" + }, + "engines": { + "node": ">=12.9.0" } }, "node_modules/md5.js": { @@ -20770,9 +20773,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "17.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.1.0.tgz", - "integrity": "sha512-1MZYo+B4FnZMII1/Mw0E7WX4erCxnPpeA8fankY5Ql82LQQVSnceOpX2XAsRlDHcxcdExB929KKqVrk/eqDM/A==", + "version": "17.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz", + "integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index fd2cf6bf..bb3e7696 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "html-react-parser": "^1.4.12", "katex": "^0.15.3", "linkifyjs": "^2.1.9", - "matrix-js-sdk": "^17.1.0", + "matrix-js-sdk": "^17.2.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", From 7227fc7c43711f152df57bc3589ca2ed9755e6b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:20:54 +0530 Subject: [PATCH 009/717] Bump @babel/preset-react from 7.16.7 to 7.17.12 (#559) Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.16.7 to 7.17.12. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.17.12/packages/babel-preset-react) --- updated-dependencies: - dependency-name: "@babel/preset-react" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 86 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 44 insertions(+), 44 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4cc09590..368010b2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "devDependencies": { "@babel/core": "^7.17.10", "@babel/preset-env": "^7.17.10", - "@babel/preset-react": "^7.16.7", + "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", "browserify-fs": "^1.0.0", @@ -364,9 +364,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "dev": true, "engines": { "node": ">=6.9.0" @@ -867,12 +867,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1368,16 +1368,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", - "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1659,15 +1659,15 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", + "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.17.12", "@babel/plugin-transform-react-jsx-development": "^7.16.7", "@babel/plugin-transform-react-pure-annotations": "^7.16.7" }, @@ -1749,9 +1749,9 @@ } }, "node_modules/@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.12.tgz", + "integrity": "sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -14199,9 +14199,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", - "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", + "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -14540,12 +14540,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", - "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", + "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -14861,16 +14861,16 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", - "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", + "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/plugin-syntax-jsx": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12", + "@babel/plugin-syntax-jsx": "^7.17.12", + "@babel/types": "^7.17.12" } }, "@babel/plugin-transform-react-jsx-development": { @@ -15071,15 +15071,15 @@ } }, "@babel/preset-react": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", - "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", + "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.17.12", "@babel/plugin-transform-react-jsx-development": "^7.16.7", "@babel/plugin-transform-react-pure-annotations": "^7.16.7" } @@ -15147,9 +15147,9 @@ } }, "@babel/types": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.10.tgz", - "integrity": "sha512-9O26jG0mBYfGkUYCYZRnBwbVLd1UZOICEr2Em6InB6jVfsAv1GKgwXHmrSg+WFWDmeKTA6vyTZiN8tCSM5Oo3A==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.12.tgz", + "integrity": "sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", diff --git a/package.json b/package.json index bb3e7696..f15f6479 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@babel/core": "^7.17.10", "@babel/preset-env": "^7.17.10", - "@babel/preset-react": "^7.16.7", + "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", "browserify-fs": "^1.0.0", From 854d2b4c27b01cb2db191f430700875497bf9bf9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:24:28 +0530 Subject: [PATCH 010/717] Bump @fontsource/roboto from 4.5.5 to 4.5.7 (#556) Bumps [@fontsource/roboto](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/roboto) from 4.5.5 to 4.5.7. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/roboto) --- updated-dependencies: - dependency-name: "@fontsource/roboto" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 368010b2..902f0317 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.10", - "@fontsource/roboto": "^4.5.5", + "@fontsource/roboto": "^4.5.7", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", @@ -1811,9 +1811,9 @@ "integrity": "sha512-YOt2/K8yo25MVBjrTImHxVimmyZEt0GcrWp2w7O29sdFX9SJqbGlOqjFJ1wI5yBbP6AmTeimyPE0UC/jjFRoIA==" }, "node_modules/@fontsource/roboto": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.5.tgz", - "integrity": "sha512-Pe1p+gAO6K0aLxBXlLoJRHVx352tVc/v/7DOnvM3t+FYXb+KUga9aCD1NpnDfd0kKnWXqrZyAXguyyFWDDuphw==" + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.7.tgz", + "integrity": "sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==" }, "node_modules/@humanwhocodes/config-array": { "version": "0.9.3", @@ -15196,9 +15196,9 @@ "integrity": "sha512-YOt2/K8yo25MVBjrTImHxVimmyZEt0GcrWp2w7O29sdFX9SJqbGlOqjFJ1wI5yBbP6AmTeimyPE0UC/jjFRoIA==" }, "@fontsource/roboto": { - "version": "4.5.5", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.5.tgz", - "integrity": "sha512-Pe1p+gAO6K0aLxBXlLoJRHVx352tVc/v/7DOnvM3t+FYXb+KUga9aCD1NpnDfd0kKnWXqrZyAXguyyFWDDuphw==" + "version": "4.5.7", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.7.tgz", + "integrity": "sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==" }, "@humanwhocodes/config-array": { "version": "0.9.3", diff --git a/package.json b/package.json index f15f6479..26ce8100 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.10", - "@fontsource/roboto": "^4.5.5", + "@fontsource/roboto": "^4.5.7", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", From 0cd3df391e1de60d694960062083239f0d748ec6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:25:57 +0530 Subject: [PATCH 011/717] Bump eslint from 8.14.0 to 8.15.0 (#536) Bumps [eslint](https://github.com/eslint/eslint) from 8.14.0 to 8.15.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.14.0...v8.15.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 90 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/package-lock.json b/package-lock.json index 902f0317..21df319a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "eslint": "^8.14.0", + "eslint": "^8.15.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", @@ -1771,19 +1771,19 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", - "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", + "espree": "^9.3.2", "globals": "^13.9.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { @@ -1791,9 +1791,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2917,9 +2917,9 @@ } }, "node_modules/acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -5618,12 +5618,12 @@ } }, "node_modules/eslint": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", - "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.2", + "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -5634,7 +5634,7 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -5650,7 +5650,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -6064,13 +6064,13 @@ } }, "node_modules/espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "dependencies": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { @@ -15163,26 +15163,26 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.2.tgz", - "integrity": "sha512-lTVWHs7O2hjBFZunXTZYnYqtB9GakA1lnxIf+gKq2nY5gxkkNi/lQvveW6t8gFdOHTg6nG50Xs95PrLqVpcaLg==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", + "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.3.1", + "espree": "^9.3.2", "globals": "^13.9.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "dependencies": { "globals": { - "version": "13.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz", - "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -16138,9 +16138,9 @@ } }, "acorn": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", - "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, "acorn-jsx": { @@ -18258,12 +18258,12 @@ "dev": true }, "eslint": { - "version": "8.14.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.14.0.tgz", - "integrity": "sha512-3/CE4aJX7LNEiE3i6FeodHmI/38GZtWCsAtsymScmzYapx8q1nVVb+eLcLSzATmCPXw5pT4TqVs1E0OmxAd9tw==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", + "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.2", + "@eslint/eslintrc": "^1.2.3", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -18274,7 +18274,7 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", + "espree": "^9.3.2", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", @@ -18290,7 +18290,7 @@ "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "regexpp": "^3.2.0", @@ -18602,13 +18602,13 @@ "dev": true }, "espree": { - "version": "9.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz", - "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==", + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", + "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", "dev": true, "requires": { - "acorn": "^8.7.0", - "acorn-jsx": "^5.3.1", + "acorn": "^8.7.1", + "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } }, diff --git a/package.json b/package.json index 26ce8100..a1fcd3f3 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "eslint": "^8.14.0", + "eslint": "^8.15.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", From 2cd74b4ea9987ba55ed6e62b7913cfb4c71b6190 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:58:34 +0530 Subject: [PATCH 012/717] Bump docker/login-action from 1.14.1 to 2.0.0 (#540) Bumps [docker/login-action](https://github.com/docker/login-action) from 1.14.1 to 2.0.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v1.14.1...v2.0.0) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 107abbc4..cdd695c4 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -46,7 +46,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Login to Docker Hub - uses: docker/login-action@v1.14.1 + uses: docker/login-action@v2.0.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} From 780bd5e65a30138c409ac2e07c6d6702e0d655c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:59:00 +0530 Subject: [PATCH 013/717] Bump docker/metadata-action from 3.8.0 to 4.0.1 (#539) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 3.8.0 to 4.0.1. - [Release notes](https://github.com/docker/metadata-action/releases) - [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md) - [Commits](https://github.com/docker/metadata-action/compare/v3.8.0...v4.0.1) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index cdd695c4..65a09a7c 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -52,7 +52,7 @@ jobs: password: ${{ secrets.DOCKER_PASSWORD }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v3.8.0 + uses: docker/metadata-action@v4.0.1 with: images: ajbura/cinny - name: Build and push Docker image From 40de64078a4b5358ae74319f32f429dd55981099 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 09:59:40 +0530 Subject: [PATCH 014/717] Bump docker/build-push-action from 2.10.0 to 3.0.0 (#538) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.10.0 to 3.0.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 87df19dc..4daf0aae 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Build Docker image - uses: docker/build-push-action@v2.10.0 + uses: docker/build-push-action@v3.0.0 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 65a09a7c..0f790ff4 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -56,7 +56,7 @@ jobs: with: images: ajbura/cinny - name: Build and push Docker image - uses: docker/build-push-action@v2.10.0 + uses: docker/build-push-action@v3.0.0 with: context: . push: true From 38bd38a4873ff1113993cffbdb5e47e67d3f31f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 10:01:37 +0530 Subject: [PATCH 015/717] Bump @babel/core from 7.17.10 to 7.18.0 (#568) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.17.10 to 7.18.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.0/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 188 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 96 insertions(+), 94 deletions(-) diff --git a/package-lock.json b/package-lock.json index 21df319a..0d11f894 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.17.10", + "@babel/core": "^7.18.0", "@babel/preset-env": "^7.17.10", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", @@ -117,21 +117,21 @@ } }, "node_modules/@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.0.tgz", + "integrity": "sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", + "@babel/generator": "^7.18.0", "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.0", + "@babel/parser": "^7.18.0", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -147,13 +147,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", + "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", "dev": true, "dependencies": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", + "@babel/types": "^7.18.0", + "@jridgewell/gen-mapping": "^0.3.0", "jsesc": "^2.5.1" }, "engines": { @@ -333,9 +333,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.16.7", @@ -344,8 +344,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" }, "engines": { "node": ">=6.9.0" @@ -472,14 +472,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", + "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" }, "engines": { "node": ">=6.9.0" @@ -500,9 +500,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1728,19 +1728,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", + "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", + "@babel/generator": "^7.18.0", "@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.18.0", + "@babel/types": "^7.18.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1749,9 +1749,9 @@ } }, "node_modules/@babel/types": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.12.tgz", - "integrity": "sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", + "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -2330,13 +2330,14 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -2352,9 +2353,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz", - "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", "dev": true, "engines": { "node": ">=6.0.0" @@ -2367,9 +2368,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -14013,21 +14014,21 @@ "dev": true }, "@babel/core": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", - "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.0.tgz", + "integrity": "sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", + "@babel/generator": "^7.18.0", "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helpers": "^7.17.9", - "@babel/parser": "^7.17.10", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.0", + "@babel/parser": "^7.18.0", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.10", - "@babel/types": "^7.17.10", + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14036,13 +14037,13 @@ } }, "@babel/generator": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", - "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", + "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", "dev": true, "requires": { - "@babel/types": "^7.17.10", - "@jridgewell/gen-mapping": "^0.1.0", + "@babel/types": "^7.18.0", + "@jridgewell/gen-mapping": "^0.3.0", "jsesc": "^2.5.1" } }, @@ -14174,9 +14175,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz", - "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", + "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.16.7", @@ -14185,8 +14186,8 @@ "@babel/helper-split-export-declaration": "^7.16.7", "@babel/helper-validator-identifier": "^7.16.7", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.3", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" } }, "@babel/helper-optimise-call-expression": { @@ -14280,14 +14281,14 @@ } }, "@babel/helpers": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.9.tgz", - "integrity": "sha512-cPCt915ShDWUEzEp3+UNRktO2n6v49l5RSnG9M5pS24hA+2FAc5si+Pn1i4VVbQQ+jh+bIZhPFQOJOzbrOYY1Q==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", + "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.17.9", - "@babel/types": "^7.17.0" + "@babel/traverse": "^7.18.0", + "@babel/types": "^7.18.0" } }, "@babel/highlight": { @@ -14302,9 +14303,9 @@ } }, "@babel/parser": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.10.tgz", - "integrity": "sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", + "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -15129,27 +15130,27 @@ } }, "@babel/traverse": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.10.tgz", - "integrity": "sha512-VmbrTHQteIdUUQNTb+zE12SHS/xQVIShmBPhlNP12hD5poF2pbITW1Z4172d03HegaQWhLffdkRJYtAzp0AGcw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", + "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.17.10", + "@babel/generator": "^7.18.0", "@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.18.0", + "@babel/types": "^7.18.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.17.12.tgz", - "integrity": "sha512-rH8i29wcZ6x9xjzI5ILHL/yZkbQnCERdHlogKuIb4PUr7do4iT8DPekrTbBLWTnRQm6U0GYABbTMSzijmEqlAg==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", + "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", @@ -15599,13 +15600,14 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", + "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@jridgewell/resolve-uri": { @@ -15615,9 +15617,9 @@ "dev": true }, "@jridgewell/set-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz", - "integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", + "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", "dev": true }, "@jridgewell/sourcemap-codec": { @@ -15627,9 +15629,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz", - "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==", + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", + "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", diff --git a/package.json b/package.json index a1fcd3f3..c525f207 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.17.10", + "@babel/core": "^7.18.0", "@babel/preset-env": "^7.17.10", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", From deef1f2c8a73032aae00b8ff3092e5a96ee3b60a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 May 2022 10:06:10 +0530 Subject: [PATCH 016/717] Bump @babel/preset-env from 7.17.10 to 7.18.0 (#569) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.17.10 to 7.18.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.0/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 828 ++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 430 insertions(+), 400 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0d11f894..dd60aaf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ }, "devDependencies": { "@babel/core": "^7.18.0", - "@babel/preset-env": "^7.17.10", + "@babel/preset-env": "^7.18.0", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", @@ -204,9 +204,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", @@ -225,9 +225,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", @@ -512,12 +512,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -527,14 +527,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -544,12 +544,12 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -561,13 +561,13 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -577,13 +577,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -610,12 +610,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -626,12 +626,12 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -642,12 +642,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -658,12 +658,12 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -690,16 +690,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -725,12 +725,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, @@ -742,13 +742,13 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -758,14 +758,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -776,13 +776,13 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=4" @@ -854,6 +854,21 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -984,12 +999,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -999,13 +1014,13 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", "dev": true, "dependencies": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8" }, "engines": { @@ -1031,12 +1046,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz", + "integrity": "sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1046,16 +1061,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz", + "integrity": "sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" @@ -1068,12 +1083,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1083,12 +1098,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1114,12 +1129,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1145,12 +1160,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1177,12 +1192,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1207,13 +1222,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1224,13 +1239,13 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz", + "integrity": "sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-simple-access": "^7.17.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1242,14 +1257,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz", + "integrity": "sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1261,13 +1276,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1277,12 +1292,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1292,12 +1308,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1323,12 +1339,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1418,11 +1434,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", "dev": true, "dependencies": { + "@babel/helper-plugin-utils": "^7.17.12", "regenerator-transform": "^0.15.0" }, "engines": { @@ -1433,12 +1450,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1463,12 +1480,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" }, "engines": { @@ -1494,12 +1511,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz", + "integrity": "sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1509,12 +1526,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" }, "engines": { "node": ">=6.9.0" @@ -1555,37 +1572,38 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", - "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.0.tgz", + "integrity": "sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.10", "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.17.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1595,40 +1613,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.17.12", "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.0", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.17.9", - "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.17.12", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.17.10", + "@babel/types": "^7.18.0", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", @@ -14079,9 +14097,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.17.9.tgz", - "integrity": "sha512-kUjip3gruz6AJKOq5i3nC6CoCEEF/oHH3cp6tOZhB+IyyyPyW0g1Gfsxn3mkk6S08pIA2y8GQh609v9G/5sHVQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", + "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", @@ -14094,9 +14112,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.0.tgz", - "integrity": "sha512-awO2So99wG6KnlE+TPs6rn83gCz5WlEePJDTnLEqbchMVrBeAujURVphRdigsk094VhvZehFoNOihSlcBjwsXA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", + "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", @@ -14309,54 +14327,54 @@ "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.16.7.tgz", - "integrity": "sha512-anv/DObl7waiGEnC24O9zqL0pSuI9hljihqiDuFHC8d7/bjr/4RLGPWuc8rYOff/QPzbEPSkzG8wGG9aDuhHRg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", + "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.16.7.tgz", - "integrity": "sha512-di8vUHRdf+4aJ7ltXhaDbPoszdkh59AQtJM5soLsuHpQJdFQZOA4uGj0V2u/CZ8bJ/u8ULDL5yq6FO/bCXnKHw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", + "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.16.7" + "@babel/plugin-proposal-optional-chaining": "^7.17.12" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", - "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", + "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.16.7.tgz", - "integrity": "sha512-IobU0Xme31ewjYOShSIqd/ZGM/r/cuOz2z0MDbNrhF5FW+ZVgi0f2lyeoj9KFPDOAqsYxmLWZte1WOwlvY9aww==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", + "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.17.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.17.6.tgz", - "integrity": "sha512-X/tididvL2zbs7jZCeeRJ8167U/+Ac135AM6jCAx6gYXDUviZV5Ku9UDvWS2NCuWlFjIRXklYhwo6HhAC7ETnA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", + "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.6", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, @@ -14371,42 +14389,42 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.16.7.tgz", - "integrity": "sha512-ZxdtqDXLRGBL64ocZcs7ovt71L3jhC1RGSyR996svrCi3PYqHNkb3SwPJCs8RIzD86s+WPpt2S73+EHCGO+NUA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", + "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.16.7.tgz", - "integrity": "sha512-lNZ3EEggsGY78JavgbHsK9u5P3pQaW7k4axlgFLYkMd7UBsiNahCITShLjNQschPyjtO6dADrL24757IdhBrsQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", + "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.16.7.tgz", - "integrity": "sha512-K3XzyZJGQCr00+EtYtrDjmwX7o7PLK6U9bi1nCwkQioRFVUv6dJoxbQjtWVtP+bCPy82bONBKG8NPyQ4+i6yjg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", + "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.16.7.tgz", - "integrity": "sha512-aUOrYU3EVtjf62jQrCj63pYZ7k6vns2h/DQvHPWGmsJRYzWXZ6/AsfgpiRy6XiuIDADhJzP2Q9MwSMKauBQ+UQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", + "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, @@ -14421,16 +14439,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.17.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.17.3.tgz", - "integrity": "sha512-yuL5iQA/TbZn+RGAfxQXfi7CNLmKi1f8zInn4IgobuCWcAb7i+zj4TYzQ9l8cEzVyJ89PDGuqxK1xZpUDISesw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", + "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.0", - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.16.7" + "@babel/plugin-transform-parameters": "^7.17.12" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -14444,46 +14462,46 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.16.7.tgz", - "integrity": "sha512-eC3xy+ZrUcBtP7x+sq62Q/HYd674pPTb/77XZMb5wbDPGWIdUbSr4Agr052+zaUPSb+gGRnjxXfKFvx5iMJ+DA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", + "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.16.11", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.16.11.tgz", - "integrity": "sha512-F/2uAkPlXDr8+BHpZvo19w3hLFKge+k75XUprE6jaqKxjGkSYcK+4c+bup5PdW/7W/Rpjwql7FTVEDW+fRAQsw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", + "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.16.10", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.16.7.tgz", - "integrity": "sha512-rMQkjcOFbm+ufe3bTZLyOfsOUOxyvLXZJCTARhJr+8UMSoZmqTe1K1BgkFcrW37rAchWg57yI69ORxiWvUINuQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", + "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-create-class-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.16.7.tgz", - "integrity": "sha512-QRK0YI/40VLhNVGIjRNAAQkEHws0cswSdFFjpFyt943YmJIU1da9uW63Iu6NFV6CxTZW5eTDCrwZUstBWgp/Rg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", + "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-syntax-async-generators": { @@ -14531,6 +14549,15 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/plugin-syntax-import-assertions": { + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", + "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.17.12" + } + }, "@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -14622,22 +14649,22 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz", - "integrity": "sha512-9ffkFFMbvzTvv+7dTp/66xvZAWASuPD5Tl9LK3Z9vhOmANo6j94rik+5YMBt4CwHVMWLWpMsriIc2zsa3WW3xQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", + "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", - "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", + "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-remap-async-to-generator": "^7.16.8" } }, @@ -14651,46 +14678,46 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.16.7.tgz", - "integrity": "sha512-ObZev2nxVAYA4bhyusELdo9hb3H+A56bxH3FZMbEImZFiEDYVHXQSJ1hQKFlDnlt8G9bBrCZ5ZpURZUrV4G5qQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz", + "integrity": "sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-classes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.16.7.tgz", - "integrity": "sha512-WY7og38SFAGYRe64BrjKf8OrE6ulEHtr5jEYaZMwox9KebgqPi67Zqz8K53EKk1fFEJgm96r32rkKZ3qA2nCWQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz", + "integrity": "sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.16.7", "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", + "@babel/helper-function-name": "^7.17.9", "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-replace-supers": "^7.16.7", "@babel/helper-split-export-declaration": "^7.16.7", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.16.7.tgz", - "integrity": "sha512-gN72G9bcmenVILj//sv1zLNaPyYcOzUho2lIJBMh/iakJ9ygCo/hEF9cpGb61SCMEDxbbyBoVQxrt+bWKu5KGw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", + "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-destructuring": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.17.7.tgz", - "integrity": "sha512-XVh0r5yq9sLR4vZ6eVZe8FKfIcSgaTBxVBRSYokRj2qksf6QerYnTxz9/GTuKTH/n/HwLP7t6gtlybHetJ/6hQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", + "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-dotall-regex": { @@ -14704,12 +14731,12 @@ } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.16.7.tgz", - "integrity": "sha512-03DvpbRfvWIXyK0/6QiR1KMTWeT6OcQ7tbhjrXyFS02kjuX/mu5Bvnh5SDSWHxyawit2g5aWhKwI86EE7GUnTw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", + "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -14723,12 +14750,12 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.16.7.tgz", - "integrity": "sha512-/QZm9W92Ptpw7sjI9Nx1mbcsWz33+l8kuMIQnDwgQBG5s3fAfQvkRjQ7NqXhtNcKOnPkdICmUHyCaWW06HCsqg==", + "version": "7.18.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", + "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-function-name": { @@ -14743,12 +14770,12 @@ } }, "@babel/plugin-transform-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.16.7.tgz", - "integrity": "sha512-6tH8RTpTWI0s2sV6uq3e/C9wPo4PTqqZps4uF0kzQ9/xPLFQtipynvmT1g/dOfEJ+0EQsHhkQ/zyRId8J2b8zQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", + "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-member-expression-literals": { @@ -14761,67 +14788,68 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.16.7.tgz", - "integrity": "sha512-KaaEtgBL7FKYwjJ/teH63oAmE3lP34N3kshz8mm4VMAw7U3PxjVwwUmxEFksbgsNUaO3wId9R2AVQYSEGRa2+g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", + "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.17.9.tgz", - "integrity": "sha512-2TBFd/r2I6VlYn0YRTz2JdazS+FoUuQ2rIFHoAxtyP/0G3D82SBLaRq9rnUkpqlLg03Byfl/+M32mpxjO6KaPw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz", + "integrity": "sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-simple-access": "^7.17.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.17.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.17.8.tgz", - "integrity": "sha512-39reIkMTUVagzgA5x88zDYXPCMT6lcaRKs1+S9K6NKBPErbgO/w/kP8GlNQTC87b412ZTlmNgr3k2JrWgHH+Bw==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz", + "integrity": "sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-identifier": "^7.16.7", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.16.7.tgz", - "integrity": "sha512-EMh7uolsC8O4xhudF2F6wedbSHm1HHZ0C6aJ7K67zcDNidMzVcxWdGr+htW9n21klm+bOn+Rx4CBsAntZd3rEQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", + "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.10.tgz", - "integrity": "sha512-v54O6yLaJySCs6mGzaVOUw9T967GnH38T6CQSAtnzdNPwu84l2qAjssKzo/WSO8Yi7NF+7ekm5cVbF/5qiIgNA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", + "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.0" + "@babel/helper-create-regexp-features-plugin": "^7.17.12", + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-new-target": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.16.7.tgz", - "integrity": "sha512-xiLDzWNMfKoGOpc6t3U+etCE2yRnn3SM09BXqWPIZOBpL2gvVrBWUKnsJx0K/ADi5F5YC5f8APFfWrz25TdlGg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", + "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-object-super": { @@ -14835,12 +14863,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.16.7.tgz", - "integrity": "sha512-AT3MufQ7zZEhU2hwOA11axBnExW0Lszu4RL/tAlUJBuNoRak+wehQW8h6KcXOcgjY42fHtDxswuMhMjFEuv/aw==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", + "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-property-literals": { @@ -14894,21 +14922,22 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.17.9.tgz", - "integrity": "sha512-Lc2TfbxR1HOyn/c6b4Y/b6NHoTb67n/IoWLxTu4kC7h4KQnWlhCq2S8Tx0t2SVvv5Uu87Hs+6JEJ5kt2tYGylQ==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", + "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", "dev": true, "requires": { + "@babel/helper-plugin-utils": "^7.17.12", "regenerator-transform": "^0.15.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.16.7.tgz", - "integrity": "sha512-KQzzDnZ9hWQBjwi5lpY5v9shmm6IVG0U9pB18zvMu2i4H90xpT4gmqwPYsn8rObiadYe2M0gmgsiOIF5A/2rtg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", + "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-shorthand-properties": { @@ -14921,12 +14950,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.16.7.tgz", - "integrity": "sha512-+pjJpgAngb53L0iaA5gU/1MLXJIfXcYepLgXB3esVRf4fqmj8f2cxM3/FKaHsZms08hFQJkFccEWuIpm429TXg==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", + "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" } }, @@ -14940,21 +14969,21 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.16.7.tgz", - "integrity": "sha512-VwbkDDUeenlIjmfNeDX/V0aWrQH2QiVyJtwymVQSzItFDTpxfyJh3EVaQiS0rIN/CqbLGr0VcGmuwyTdZtdIsA==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz", + "integrity": "sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.16.7.tgz", - "integrity": "sha512-p2rOixCKRJzpg9JB4gjnG4gjWkWa89ZoYUnl9snJ1cWIcTH/hvxZqfO+WjG6T8DRBpctEol5jw1O5rA8gkCokQ==", + "version": "7.17.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", + "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.17.12" } }, "@babel/plugin-transform-unicode-escapes": { @@ -14977,37 +15006,38 @@ } }, "@babel/preset-env": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", - "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.0.tgz", + "integrity": "sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA==", "dev": true, "requires": { "@babel/compat-data": "^7.17.10", "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-async-generator-functions": "^7.16.8", - "@babel/plugin-proposal-class-properties": "^7.16.7", - "@babel/plugin-proposal-class-static-block": "^7.17.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-async-generator-functions": "^7.17.12", + "@babel/plugin-proposal-class-properties": "^7.17.12", + "@babel/plugin-proposal-class-static-block": "^7.18.0", "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.16.7", - "@babel/plugin-proposal-json-strings": "^7.16.7", - "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.17.12", + "@babel/plugin-proposal-json-strings": "^7.17.12", + "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.17.3", + "@babel/plugin-proposal-object-rest-spread": "^7.18.0", "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.16.7", - "@babel/plugin-proposal-private-methods": "^7.16.11", - "@babel/plugin-proposal-private-property-in-object": "^7.16.7", - "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.17.12", + "@babel/plugin-proposal-private-methods": "^7.17.12", + "@babel/plugin-proposal-private-property-in-object": "^7.17.12", + "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.17.12", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -15017,40 +15047,40 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.16.7", - "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-arrow-functions": "^7.17.12", + "@babel/plugin-transform-async-to-generator": "^7.17.12", "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.16.7", - "@babel/plugin-transform-classes": "^7.16.7", - "@babel/plugin-transform-computed-properties": "^7.16.7", - "@babel/plugin-transform-destructuring": "^7.17.7", + "@babel/plugin-transform-block-scoping": "^7.17.12", + "@babel/plugin-transform-classes": "^7.17.12", + "@babel/plugin-transform-computed-properties": "^7.17.12", + "@babel/plugin-transform-destructuring": "^7.18.0", "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.17.12", "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.16.7", - "@babel/plugin-transform-modules-commonjs": "^7.17.9", - "@babel/plugin-transform-modules-systemjs": "^7.17.8", - "@babel/plugin-transform-modules-umd": "^7.16.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", - "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.0", + "@babel/plugin-transform-modules-systemjs": "^7.18.0", + "@babel/plugin-transform-modules-umd": "^7.18.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", + "@babel/plugin-transform-new-target": "^7.17.12", "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.17.12", "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.17.9", - "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.18.0", + "@babel/plugin-transform-reserved-words": "^7.17.12", "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.16.7", - "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.17.12", + "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.17.10", + "@babel/types": "^7.18.0", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", diff --git a/package.json b/package.json index c525f207..2ab6d8d2 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ }, "devDependencies": { "@babel/core": "^7.18.0", - "@babel/preset-env": "^7.17.10", + "@babel/preset-env": "^7.18.0", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", From fc6c7b8dc69a1eab4da70d7a61431f3ecf944c38 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 21 May 2022 17:33:01 +0530 Subject: [PATCH 017/717] Add recommended ways to install node and node version --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index e4704ab3..b35e5975 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,8 @@ A tarball of pre-compiled version of the app is provided with each [release](htt You can serve the application with a webserver of your choosing by simply copying `dist/` directory to the webroot. ### Building from source +> We recommend using a version manager as versions change very quickly. You will likely need to switch +between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Also recommended nodejs version is 16.15.0 LTS. Execute the following commands to compile the app from its source code: From 3bd4eda789eb16870b0e7f578144e3e7cd753b03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:40:24 +0530 Subject: [PATCH 018/717] Bump actions/upload-artifact from 3.0.0 to 3.1.0 (#578) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 11116945..e5102a3a 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -15,7 +15,7 @@ jobs: - name: Build app run: npm ci && npm run build - name: Upload artifact - uses: actions/upload-artifact@v3.0.0 + uses: actions/upload-artifact@v3.1.0 with: name: previewbuild path: dist @@ -27,7 +27,7 @@ jobs: var fs = require('fs'); fs.writeFileSync('${{github.workspace}}/pr.json', JSON.stringify(context.payload.pull_request)); - name: Upload PR Info - uses: actions/upload-artifact@v3.0.0 + uses: actions/upload-artifact@v3.1.0 with: name: pr.json path: pr.json From 489f178c7c452ffd986026b152066af1d16bfda4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:43:21 +0530 Subject: [PATCH 019/717] Bump katex from 0.15.3 to 0.15.6 (#577) Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.15.3 to 0.15.6. - [Release notes](https://github.com/KaTeX/KaTeX/releases) - [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md) - [Commits](https://github.com/KaTeX/KaTeX/compare/v0.15.3...v0.15.6) --- updated-dependencies: - dependency-name: katex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index dd60aaf2..95f71a35 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "flux": "^4.0.3", "formik": "^2.2.9", "html-react-parser": "^1.4.12", - "katex": "^0.15.3", + "katex": "^0.15.6", "linkifyjs": "^2.1.9", "matrix-js-sdk": "^17.2.0", "micromark": "^3.0.10", @@ -8410,9 +8410,9 @@ } }, "node_modules/katex": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.3.tgz", - "integrity": "sha512-Al6V7RJsmjklT9QItyHWGaQCt+NYTle1bZwB1e9MR/tLoIT1MXaHy9UpfGSB7eaqDgjjqqRxQOaQGrALCrEyBQ==", + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", + "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -20387,9 +20387,9 @@ } }, "katex": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.3.tgz", - "integrity": "sha512-Al6V7RJsmjklT9QItyHWGaQCt+NYTle1bZwB1e9MR/tLoIT1MXaHy9UpfGSB7eaqDgjjqqRxQOaQGrALCrEyBQ==", + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", + "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", "requires": { "commander": "^8.0.0" } diff --git a/package.json b/package.json index 2ab6d8d2..b15e6c10 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "flux": "^4.0.3", "formik": "^2.2.9", "html-react-parser": "^1.4.12", - "katex": "^0.15.3", + "katex": "^0.15.6", "linkifyjs": "^2.1.9", "matrix-js-sdk": "^17.2.0", "micromark": "^3.0.10", From e48d216d79d50f13dbe38dad6fc5c67b59e57528 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:45:33 +0530 Subject: [PATCH 020/717] Bump sass from 1.51.0 to 1.52.1 (#572) Bumps [sass](https://github.com/sass/dart-sass) from 1.51.0 to 1.52.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.51.0...1.52.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95f71a35..c7d4fe01 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", - "sass": "^1.51.0", + "sass": "^1.52.1", "sass-loader": "^12.6.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", @@ -11943,9 +11943,9 @@ } }, "node_modules/sass": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz", - "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==", + "version": "1.52.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", + "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -22988,9 +22988,9 @@ } }, "sass": { - "version": "1.51.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz", - "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==", + "version": "1.52.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", + "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index b15e6c10..cfa6dbcb 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", - "sass": "^1.51.0", + "sass": "^1.52.1", "sass-loader": "^12.6.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", From 00956f5bba6787931af8e882674a9fe8be5c4bf2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:46:35 +0530 Subject: [PATCH 021/717] Bump eslint from 8.15.0 to 8.16.0 (#574) Bumps [eslint](https://github.com/eslint/eslint) from 8.15.0 to 8.16.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.15.0...v8.16.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index c7d4fe01..0f406751 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "eslint": "^8.15.0", + "eslint": "^8.16.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", @@ -1789,15 +1789,15 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", - "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.2", - "globals": "^13.9.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -5637,12 +5637,12 @@ } }, "node_modules/eslint": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", - "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.2.3", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -5660,7 +5660,7 @@ "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -6047,9 +6047,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -15194,15 +15194,15 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.3.tgz", - "integrity": "sha512-uGo44hIwoLGNyduRpjdEpovcbMdd+Nv7amtmJxnKmI8xj6yd5LncmSwDa5NgX/41lIFJtkjD6YdVfgEzPfJ5UA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", + "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", "dev": true, "requires": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^9.3.2", - "globals": "^13.9.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -18290,12 +18290,12 @@ "dev": true }, "eslint": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.15.0.tgz", - "integrity": "sha512-GG5USZ1jhCu8HJkzGgeK8/+RGnHaNYZGrGDzUtigK3BsGESW/rs2az23XqE0WVwDxy1VRvvjSSGu5nB0Bu+6SA==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", + "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.2.3", + "@eslint/eslintrc": "^1.3.0", "@humanwhocodes/config-array": "^0.9.2", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -18313,7 +18313,7 @@ "file-entry-cache": "^6.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", - "globals": "^13.6.0", + "globals": "^13.15.0", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -18383,9 +18383,9 @@ } }, "globals": { - "version": "13.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.0.tgz", - "integrity": "sha512-uS8X6lSKN2JumVoXrbUz+uG4BYG+eiawqm3qFcT7ammfbUHeCBoJMlHcec/S3krSk73/AE/f0szYFmgAA3kYZg==", + "version": "13.15.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", + "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", "dev": true, "requires": { "type-fest": "^0.20.2" diff --git a/package.json b/package.json index cfa6dbcb..8a95b443 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", - "eslint": "^8.15.0", + "eslint": "^8.16.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", From df718e4498fe8bea49e57e0acbe233ca46dc42f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:47:49 +0530 Subject: [PATCH 022/717] Bump eslint-plugin-react from 7.29.4 to 7.30.0 (#575) Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.29.4 to 7.30.0. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.29.4...v7.30.0) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 441 +++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 276 insertions(+), 167 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f406751..7f1fa4bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react": "^7.30.0", "eslint-plugin-react-hooks": "^4.5.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", @@ -3148,14 +3148,14 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" }, @@ -3193,14 +3193,15 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -5096,15 +5097,19 @@ } }, "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "dependencies": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/del": { @@ -5544,31 +5549,34 @@ } }, "node_modules/es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "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-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "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" }, "engines": { "node": ">= 0.4" @@ -5583,6 +5591,15 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -5850,25 +5867,25 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", + "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "engines": { "node": ">=4" @@ -6839,12 +6856,39 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/fwd-stream": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", @@ -7085,9 +7129,9 @@ } }, "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -7102,10 +7146,22 @@ "node": ">=4" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" }, @@ -7975,9 +8031,9 @@ } }, "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true, "engines": { "node": ">= 0.4" @@ -7996,9 +8052,9 @@ } }, "node_modules/is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "dependencies": { "has-tostringtag": "^1.0.0" @@ -8090,10 +8146,13 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8165,12 +8224,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "node_modules/is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9937,9 +9996,9 @@ } }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", + "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -10019,13 +10078,13 @@ } }, "node_modules/object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dev": true, "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -11504,13 +11563,14 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" }, "engines": { "node": ">= 0.4" @@ -12561,18 +12621,18 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" }, "funding": { @@ -12580,26 +12640,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -13192,14 +13254,14 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" }, "funding": { @@ -16342,14 +16404,14 @@ "dev": true }, "array-includes": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.4.tgz", - "integrity": "sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", "get-intrinsic": "^1.1.1", "is-string": "^1.0.7" } @@ -16372,14 +16434,15 @@ } }, "array.prototype.flatmap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.5.tgz", - "integrity": "sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", + "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", "dev": true, "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "arrify": { @@ -17856,12 +17919,13 @@ "dev": true }, "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "object-keys": "^1.0.12" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, "del": { @@ -18215,31 +18279,34 @@ } }, "es-abstract": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.1.tgz", - "integrity": "sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", "dev": true, "requires": { "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-symbols": "^1.0.2", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.1", + "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.1", + "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", - "is-weakref": "^1.0.1", - "object-inspect": "^1.11.0", + "is-weakref": "^1.0.2", + "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-module-lexer": { @@ -18248,6 +18315,15 @@ "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -18543,25 +18619,25 @@ } }, "eslint-plugin-react": { - "version": "7.29.4", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.29.4.tgz", - "integrity": "sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==", + "version": "7.30.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", + "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", "dev": true, "requires": { - "array-includes": "^3.1.4", - "array.prototype.flatmap": "^1.2.5", + "array-includes": "^3.1.5", + "array.prototype.flatmap": "^1.3.0", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.5", "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.0", + "object.hasown": "^1.1.1", "object.values": "^1.1.5", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.6" + "string.prototype.matchall": "^4.0.7" }, "dependencies": { "doctrine": { @@ -19228,12 +19304,30 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "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": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, "fwd-stream": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", @@ -19435,9 +19529,9 @@ } }, "has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", "dev": true }, "has-flag": { @@ -19446,10 +19540,19 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, "has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" }, "has-tostringtag": { "version": "1.0.0", @@ -20061,9 +20164,9 @@ } }, "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", "dev": true }, "is-number": { @@ -20073,9 +20176,9 @@ "dev": true }, "is-number-object": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.6.tgz", - "integrity": "sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", "dev": true, "requires": { "has-tostringtag": "^1.0.0" @@ -20137,10 +20240,13 @@ } }, "is-shared-array-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz", - "integrity": "sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } }, "is-stream": { "version": "2.0.1", @@ -20185,12 +20291,12 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-weakref": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.1.tgz", - "integrity": "sha512-b2jKc2pQZjaeFYWEf7ScFj+Be1I+PXmlu572Q8coTXZ+LD/QQZ7ShPMst8h16riVgyXTQwUsFEl74mDvc/3MHQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2" } }, "is-wsl": { @@ -21498,9 +21604,9 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==" + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", + "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==" }, "object-is": { "version": "1.1.5", @@ -21553,13 +21659,13 @@ } }, "object.hasown": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.0.tgz", - "integrity": "sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", + "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "object.values": { @@ -22644,13 +22750,14 @@ } }, "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" } }, "regexpp": { @@ -23472,39 +23579,41 @@ } }, "string.prototype.matchall": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.6.tgz", - "integrity": "sha512-6WgDX8HmQqvEd7J+G6VtAahhsQIssiZ8zl7zKh1VDMFyL3hRTJP4FTNA3RbIp2TOQ9AYNDcc7e3fH0Qbup+DBg==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", + "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", "es-abstract": "^1.19.1", "get-intrinsic": "^1.1.1", - "has-symbols": "^1.0.2", + "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.3.1", + "regexp.prototype.flags": "^1.4.1", "side-channel": "^1.0.4" } }, "string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3" + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" } }, "strip-ansi": { @@ -23934,14 +24043,14 @@ "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" }, "unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", "dev": true, "requires": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", "which-boxed-primitive": "^1.0.2" } }, diff --git a/package.json b/package.json index 8a95b443..2211b67a 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.29.4", + "eslint-plugin-react": "^7.30.0", "eslint-plugin-react-hooks": "^4.5.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", From 427ea9baab78dec19329e3d360848db2ef6e0b41 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:51:19 +0530 Subject: [PATCH 023/717] Bump sass-loader from 12.6.0 to 13.0.0 (#576) Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 12.6.0 to 13.0.0. - [Release notes](https://github.com/webpack-contrib/sass-loader/releases) - [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/sass-loader/compare/v12.6.0...v13.0.0) --- updated-dependencies: - dependency-name: sass-loader dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7f1fa4bf..34ad4949 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", "sass": "^1.52.1", - "sass-loader": "^12.6.0", + "sass-loader": "^13.0.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", "url": "^0.11.0", @@ -12020,16 +12020,16 @@ } }, "node_modules/sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.0.tgz", + "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==", "dev": true, "dependencies": { "klona": "^2.0.4", "neo-async": "^2.6.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -23106,9 +23106,9 @@ } }, "sass-loader": { - "version": "12.6.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", - "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", + "version": "13.0.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.0.tgz", + "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==", "dev": true, "requires": { "klona": "^2.0.4", diff --git a/package.json b/package.json index 2211b67a..d160ffac 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", "sass": "^1.52.1", - "sass-loader": "^12.6.0", + "sass-loader": "^13.0.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", "url": "^0.11.0", From 895b2c4f1985888c8b2cf8d057654757bff9fe7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 19:53:37 +0530 Subject: [PATCH 024/717] Bump copy-webpack-plugin from 10.2.4 to 11.0.0 (#571) Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 10.2.4 to 11.0.0. - [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v10.2.4...v11.0.0) --- updated-dependencies: - dependency-name: copy-webpack-plugin dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 158 ++++++++++++++++++++-------------------------- package.json | 2 +- 2 files changed, 70 insertions(+), 90 deletions(-) diff --git a/package-lock.json b/package-lock.json index 34ad4949..1778ebc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,7 @@ "browserify-fs": "^1.0.0", "buffer": "^6.0.3", "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^10.2.4", + "copy-webpack-plugin": "^11.0.0", "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", @@ -4419,20 +4419,20 @@ "dev": true }, "node_modules/copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "dependencies": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" }, "engines": { - "node": ">= 12.20.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -4470,38 +4470,6 @@ "ajv": "^8.8.2" } }, - "node_modules/copy-webpack-plugin/node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/copy-webpack-plugin/node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -4527,18 +4495,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/copy-webpack-plugin/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -6357,9 +6313,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -6369,7 +6325,7 @@ "micromatch": "^4.0.4" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" } }, "node_modules/fast-glob/node_modules/glob-parent": { @@ -7085,6 +7041,25 @@ "node": ">=4" } }, + "node_modules/globby": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz", + "integrity": "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==", + "dev": true, + "dependencies": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -12412,6 +12387,18 @@ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, + "node_modules/slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/sockjs": { "version": "0.3.21", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", @@ -17432,14 +17419,14 @@ "dev": true }, "copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", + "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", "dev": true, "requires": { - "fast-glob": "^3.2.7", + "fast-glob": "^3.2.11", "glob-parent": "^6.0.1", - "globby": "^12.0.2", + "globby": "^13.1.1", "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" @@ -17466,26 +17453,6 @@ "fast-deep-equal": "^3.1.3" } }, - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, - "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "requires": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", @@ -17503,12 +17470,6 @@ "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true } } }, @@ -18909,9 +18870,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -19495,6 +19456,19 @@ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, + "globby": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz", + "integrity": "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==", + "dev": true, + "requires": { + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.11", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^4.0.0" + } + }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -23413,6 +23387,12 @@ } } }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, "sockjs": { "version": "0.3.21", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", diff --git a/package.json b/package.json index d160ffac..d828c495 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "browserify-fs": "^1.0.0", "buffer": "^6.0.3", "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^10.2.4", + "copy-webpack-plugin": "^11.0.0", "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^3.4.1", From fde7d4a25a66feb311ad87e82185fe3f8b663206 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 May 2022 20:06:17 +0530 Subject: [PATCH 025/717] Bump css-minimizer-webpack-plugin from 3.4.1 to 4.0.0 (#573) Bumps [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) from 3.4.1 to 4.0.0. - [Release notes](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/compare/v3.4.1...v4.0.0) --- updated-dependencies: - dependency-name: css-minimizer-webpack-plugin dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 713 +++++++++++++++++++++------------------------- package.json | 2 +- 2 files changed, 320 insertions(+), 395 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1778ebc1..f1145511 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,7 +54,7 @@ "copy-webpack-plugin": "^11.0.0", "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^3.4.1", + "css-minimizer-webpack-plugin": "^4.0.0", "eslint": "^8.16.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", @@ -4039,15 +4039,6 @@ "node": ">= 10.0" } }, - "node_modules/clean-css/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/clean-webpack-plugin": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", @@ -4629,15 +4620,12 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", "dev": true, - "dependencies": { - "timsort": "^0.3.0" - }, "engines": { - "node": ">= 10" + "node": "^10 || ^12 || >=14" }, "peerDependencies": { "postcss": "^8.0.9" @@ -4685,20 +4673,20 @@ } }, "node_modules/css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==", "dev": true, "dependencies": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", + "cssnano": "^5.1.8", + "jest-worker": "^27.5.1", + "postcss": "^8.4.13", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -4775,15 +4763,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-select": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", @@ -4813,15 +4792,6 @@ "node": ">=8.0.0" } }, - "node_modules/css-tree/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/css-what": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", @@ -4847,12 +4817,12 @@ } }, "node_modules/cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.9.tgz", + "integrity": "sha512-hctQHIIeDrfMjq0bQhoVmRVaSeNNOGxkvkKVOcKpJzLr09wlRrZWH4GaYudp0aszpW8wJeaO5/yBmID9n7DNCg==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.1.12", + "cssnano-preset-default": "^5.2.9", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -4868,40 +4838,40 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", - "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", + "version": "5.2.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.9.tgz", + "integrity": "sha512-/4qcQcAfFEg+gnXE5NxKmYJ9JcT+8S5SDuJCLYMDN8sM/ymZ+lgLXq5+ohx/7V2brUCkgW2OaoCzOdAN0zvhGw==", "dev": true, "dependencies": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.0.2", - "postcss-calc": "^8.2.0", - "postcss-colormin": "^5.2.5", - "postcss-convert-values": "^5.0.4", - "postcss-discard-comments": "^5.0.3", - "postcss-discard-duplicates": "^5.0.3", - "postcss-discard-empty": "^5.0.3", - "postcss-discard-overridden": "^5.0.4", - "postcss-merge-longhand": "^5.0.6", - "postcss-merge-rules": "^5.0.6", - "postcss-minify-font-values": "^5.0.4", - "postcss-minify-gradients": "^5.0.6", - "postcss-minify-params": "^5.0.5", - "postcss-minify-selectors": "^5.1.3", - "postcss-normalize-charset": "^5.0.3", - "postcss-normalize-display-values": "^5.0.3", - "postcss-normalize-positions": "^5.0.4", - "postcss-normalize-repeat-style": "^5.0.4", - "postcss-normalize-string": "^5.0.4", - "postcss-normalize-timing-functions": "^5.0.3", - "postcss-normalize-unicode": "^5.0.4", - "postcss-normalize-url": "^5.0.5", - "postcss-normalize-whitespace": "^5.0.4", - "postcss-ordered-values": "^5.0.5", - "postcss-reduce-initial": "^5.0.3", - "postcss-reduce-transforms": "^5.0.4", - "postcss-svgo": "^5.0.4", - "postcss-unique-selectors": "^5.0.4" + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.1", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.5", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -4911,9 +4881,9 @@ } }, "node_modules/cssnano-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", - "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -8727,9 +8697,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true, "engines": { "node": ">=10" @@ -9794,9 +9764,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==", + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -10544,20 +10514,26 @@ } }, "node_modules/postcss": { - "version": "8.4.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], "dependencies": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, "engines": { "node": "^10 || ^12 || >=14" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" } }, "node_modules/postcss-calc": { @@ -10574,9 +10550,9 @@ } }, "node_modules/postcss-colormin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", - "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -10592,11 +10568,12 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", - "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.1.tgz", + "integrity": "sha512-UjcYfl3wJJdcabGKk8lgetPvhi1Et7VDc3sYr9EyhNBeB00YD4vHgPBp+oMVoG/dDWCc6ASbmzPNV6jADTwh8Q==", "dev": true, "dependencies": { + "browserslist": "^4.20.3", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10607,9 +10584,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", - "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -10619,9 +10596,9 @@ } }, "node_modules/postcss-discard-duplicates": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", - "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -10631,9 +10608,9 @@ } }, "node_modules/postcss-discard-empty": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", - "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -10643,9 +10620,9 @@ } }, "node_modules/postcss-discard-overridden": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", - "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -10655,13 +10632,13 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", - "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", + "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.0.3" + "stylehacks": "^5.1.0" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -10671,14 +10648,14 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", - "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", "dev": true, "dependencies": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" }, "engines": { @@ -10689,9 +10666,9 @@ } }, "node_modules/postcss-minify-font-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", - "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10704,13 +10681,13 @@ } }, "node_modules/postcss-minify-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", - "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dev": true, "dependencies": { "colord": "^2.9.1", - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10721,13 +10698,13 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", - "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", "dev": true, "dependencies": { "browserslist": "^4.16.6", - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10738,9 +10715,9 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", - "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" @@ -10812,9 +10789,9 @@ } }, "node_modules/postcss-normalize-charset": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", - "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -10824,9 +10801,9 @@ } }, "node_modules/postcss-normalize-display-values": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", - "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10839,9 +10816,9 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", - "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10854,9 +10831,9 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", - "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10869,9 +10846,9 @@ } }, "node_modules/postcss-normalize-string": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", - "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10884,9 +10861,9 @@ } }, "node_modules/postcss-normalize-timing-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", - "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10899,9 +10876,9 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", - "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -10915,9 +10892,9 @@ } }, "node_modules/postcss-normalize-url": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", - "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", "dev": true, "dependencies": { "normalize-url": "^6.0.1", @@ -10931,9 +10908,9 @@ } }, "node_modules/postcss-normalize-whitespace": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", - "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -10946,12 +10923,12 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", - "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", "dev": true, "dependencies": { - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -10962,9 +10939,9 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", - "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -10978,9 +10955,9 @@ } }, "node_modules/postcss-reduce-transforms": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", - "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -11006,9 +10983,9 @@ } }, "node_modules/postcss-svgo": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", - "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", @@ -11022,9 +10999,9 @@ } }, "node_modules/postcss-unique-selectors": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", - "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" @@ -12410,6 +12387,15 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -12428,15 +12414,6 @@ "source-map": "^0.6.0" } }, - "node_modules/source-map-support/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/spdy": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", @@ -12729,9 +12706,9 @@ } }, "node_modules/stylehacks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", - "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -12954,15 +12931,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/terser-webpack-plugin/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -13005,12 +12973,6 @@ "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", "dev": true }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -17092,14 +17054,6 @@ "dev": true, "requires": { "source-map": "~0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "clean-webpack-plugin": { @@ -17591,13 +17545,11 @@ } }, "css-declaration-sorter": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", - "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", + "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", "dev": true, - "requires": { - "timsort": "^0.3.0" - } + "requires": {} }, "css-loader": { "version": "6.7.1", @@ -17627,14 +17579,14 @@ } }, "css-minimizer-webpack-plugin": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-3.4.1.tgz", - "integrity": "sha512-1u6D71zeIfgngN2XNRJefc/hY7Ybsxd74Jm4qngIXyUEk7fss3VUzuHxLAq/R8NAba4QU9OUSaMZlbpRc7bM4Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz", + "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==", "dev": true, "requires": { - "cssnano": "^5.0.6", - "jest-worker": "^27.0.2", - "postcss": "^8.3.5", + "cssnano": "^5.1.8", + "jest-worker": "^27.5.1", + "postcss": "^8.4.13", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" @@ -17678,12 +17630,6 @@ "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -17708,14 +17654,6 @@ "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "css-what": { @@ -17731,57 +17669,57 @@ "dev": true }, "cssnano": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.17.tgz", - "integrity": "sha512-fmjLP7k8kL18xSspeXTzRhaFtRI7DL9b8IcXR80JgtnWBpvAzHT7sCR/6qdn0tnxIaINUN6OEQu83wF57Gs3Xw==", + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.9.tgz", + "integrity": "sha512-hctQHIIeDrfMjq0bQhoVmRVaSeNNOGxkvkKVOcKpJzLr09wlRrZWH4GaYudp0aszpW8wJeaO5/yBmID9n7DNCg==", "dev": true, "requires": { - "cssnano-preset-default": "^5.1.12", + "cssnano-preset-default": "^5.2.9", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.1.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.12.tgz", - "integrity": "sha512-rO/JZYyjW1QNkWBxMGV28DW7d98UDLaF759frhli58QFehZ+D/LSmwQ2z/ylBAe2hUlsIWTq6NYGfQPq65EF9w==", + "version": "5.2.9", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.9.tgz", + "integrity": "sha512-/4qcQcAfFEg+gnXE5NxKmYJ9JcT+8S5SDuJCLYMDN8sM/ymZ+lgLXq5+ohx/7V2brUCkgW2OaoCzOdAN0zvhGw==", "dev": true, "requires": { - "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^3.0.2", - "postcss-calc": "^8.2.0", - "postcss-colormin": "^5.2.5", - "postcss-convert-values": "^5.0.4", - "postcss-discard-comments": "^5.0.3", - "postcss-discard-duplicates": "^5.0.3", - "postcss-discard-empty": "^5.0.3", - "postcss-discard-overridden": "^5.0.4", - "postcss-merge-longhand": "^5.0.6", - "postcss-merge-rules": "^5.0.6", - "postcss-minify-font-values": "^5.0.4", - "postcss-minify-gradients": "^5.0.6", - "postcss-minify-params": "^5.0.5", - "postcss-minify-selectors": "^5.1.3", - "postcss-normalize-charset": "^5.0.3", - "postcss-normalize-display-values": "^5.0.3", - "postcss-normalize-positions": "^5.0.4", - "postcss-normalize-repeat-style": "^5.0.4", - "postcss-normalize-string": "^5.0.4", - "postcss-normalize-timing-functions": "^5.0.3", - "postcss-normalize-unicode": "^5.0.4", - "postcss-normalize-url": "^5.0.5", - "postcss-normalize-whitespace": "^5.0.4", - "postcss-ordered-values": "^5.0.5", - "postcss-reduce-initial": "^5.0.3", - "postcss-reduce-transforms": "^5.0.4", - "postcss-svgo": "^5.0.4", - "postcss-unique-selectors": "^5.0.4" + "css-declaration-sorter": "^6.2.2", + "cssnano-utils": "^3.1.0", + "postcss-calc": "^8.2.3", + "postcss-colormin": "^5.3.0", + "postcss-convert-values": "^5.1.1", + "postcss-discard-comments": "^5.1.1", + "postcss-discard-duplicates": "^5.1.0", + "postcss-discard-empty": "^5.1.1", + "postcss-discard-overridden": "^5.1.0", + "postcss-merge-longhand": "^5.1.5", + "postcss-merge-rules": "^5.1.1", + "postcss-minify-font-values": "^5.1.0", + "postcss-minify-gradients": "^5.1.1", + "postcss-minify-params": "^5.1.3", + "postcss-minify-selectors": "^5.2.0", + "postcss-normalize-charset": "^5.1.0", + "postcss-normalize-display-values": "^5.1.0", + "postcss-normalize-positions": "^5.1.0", + "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-string": "^5.1.0", + "postcss-normalize-timing-functions": "^5.1.0", + "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-url": "^5.1.0", + "postcss-normalize-whitespace": "^5.1.1", + "postcss-ordered-values": "^5.1.1", + "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-transforms": "^5.1.0", + "postcss-svgo": "^5.1.0", + "postcss-unique-selectors": "^5.1.1" } }, "cssnano-utils": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.2.tgz", - "integrity": "sha512-KhprijuQv2sP4kT92sSQwhlK3SJTbDIsxcfIEySB0O+3m9esFOai7dP9bMx5enHAh2MwarVIcnwiWoOm01RIbQ==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", + "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", "dev": true, "requires": {} }, @@ -20723,9 +20661,9 @@ } }, "lilconfig": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.4.tgz", - "integrity": "sha512-bfTIN7lEsiooCocSISTWXkiWJkRqtL9wYtYy+8EK3Y41qh3mpwPU0ycTOgjdY9ErwXCc8QyrQp82bdL0Xkm9yA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", + "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", "dev": true }, "line-height": { @@ -21441,9 +21379,9 @@ } }, "nanoid": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz", - "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==" + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, "napi-build-utils": { "version": "1.0.2", @@ -22023,11 +21961,11 @@ "dev": true }, "postcss": { - "version": "8.4.8", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.8.tgz", - "integrity": "sha512-2tXEqGxrjvAO6U+CJzDL2Fk2kPHTv1jQsYkSoMeOis2SsYaXRO2COxTdQp99cYvif9JTXaAk9lYGc3VhJt7JPQ==", + "version": "8.4.14", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", + "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", "requires": { - "nanoid": "^3.3.1", + "nanoid": "^3.3.4", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" } @@ -22043,9 +21981,9 @@ } }, "postcss-colormin": { - "version": "5.2.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.5.tgz", - "integrity": "sha512-+X30aDaGYq81mFqwyPpnYInsZQnNpdxMX0ajlY7AExCexEFkPVV+KrO7kXwayqEWL2xwEbNQ4nUO0ZsRWGnevg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", + "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -22055,99 +21993,100 @@ } }, "postcss-convert-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.0.4.tgz", - "integrity": "sha512-bugzSAyjIexdObovsPZu/sBCTHccImJxLyFgeV0MmNBm/Lw5h5XnjfML6gzEmJ3A6nyfCW7hb1JXzcsA4Zfbdw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.1.tgz", + "integrity": "sha512-UjcYfl3wJJdcabGKk8lgetPvhi1Et7VDc3sYr9EyhNBeB00YD4vHgPBp+oMVoG/dDWCc6ASbmzPNV6jADTwh8Q==", "dev": true, "requires": { + "browserslist": "^4.20.3", "postcss-value-parser": "^4.2.0" } }, "postcss-discard-comments": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.0.3.tgz", - "integrity": "sha512-6W5BemziRoqIdAKT+1QjM4bNcJAQ7z7zk073730NHg4cUXh3/rQHHj7pmYxUB9aGhuRhBiUf0pXvIHkRwhQP0Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", + "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", "dev": true, "requires": {} }, "postcss-discard-duplicates": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.0.3.tgz", - "integrity": "sha512-vPtm1Mf+kp7iAENTG7jI1MN1lk+fBqL5y+qxyi4v3H+lzsXEdfS3dwUZD45KVhgzDEgduur8ycB4hMegyMTeRw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", + "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", "dev": true, "requires": {} }, "postcss-discard-empty": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.0.3.tgz", - "integrity": "sha512-xGJugpaXKakwKI7sSdZjUuN4V3zSzb2Y0LOlmTajFbNinEjTfVs9PFW2lmKBaC/E64WwYppfqLD03P8l9BuueA==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", + "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", "dev": true, "requires": {} }, "postcss-discard-overridden": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.4.tgz", - "integrity": "sha512-3j9QH0Qh1KkdxwiZOW82cId7zdwXVQv/gRXYDnwx5pBtR1sTkU4cXRK9lp5dSdiM0r0OICO/L8J6sV1/7m0kHg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", + "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", "dev": true, "requires": {} }, "postcss-merge-longhand": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.0.6.tgz", - "integrity": "sha512-rkmoPwQO6ymJSmWsX6l2hHeEBQa7C4kJb9jyi5fZB1sE8nSCv7sqchoYPixRwX/yvLoZP2y6FA5kcjiByeJqDg==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", + "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.0.3" + "stylehacks": "^5.1.0" } }, "postcss-merge-rules": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.6.tgz", - "integrity": "sha512-nzJWJ9yXWp8AOEpn/HFAW72WKVGD2bsLiAmgw4hDchSij27bt6TF+sIK0cJUBAYT3SGcjtGGsOR89bwkkMuMgQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", + "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" } }, "postcss-minify-font-values": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.4.tgz", - "integrity": "sha512-RN6q3tyuEesvyCYYFCRGJ41J1XFvgV+dvYGHr0CeHv8F00yILlN8Slf4t8XW4IghlfZYCeyRrANO6HpJ948ieA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", + "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.6.tgz", - "integrity": "sha512-E/dT6oVxB9nLGUTiY/rG5dX9taugv9cbLNTFad3dKxOO+BQg25Q/xo2z2ddG+ZB1CbkZYaVwx5blY8VC7R/43A==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", + "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", "dev": true, "requires": { "colord": "^2.9.1", - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.5.tgz", - "integrity": "sha512-YBNuq3Rz5LfLFNHb9wrvm6t859b8qIqfXsWeK7wROm3jSKNpO1Y5e8cOyBv6Acji15TgSrAwb3JkVNCqNyLvBg==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", + "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", "dev": true, "requires": { "browserslist": "^4.16.6", - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.3.tgz", - "integrity": "sha512-9RJfTiQEKA/kZhMaEXND893nBqmYQ8qYa/G+uPdVnXF6D/FzpfI6kwBtWEcHx5FqDbA79O9n6fQJfrIj6M8jvQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", + "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" @@ -22190,61 +22129,61 @@ } }, "postcss-normalize-charset": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.0.3.tgz", - "integrity": "sha512-iKEplDBco9EfH7sx4ut7R2r/dwTnUqyfACf62Unc9UiyFuI7uUqZZtY+u+qp7g8Qszl/U28HIfcsI3pEABWFfA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", + "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", "dev": true, "requires": {} }, "postcss-normalize-display-values": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.3.tgz", - "integrity": "sha512-FIV5FY/qs4Ja32jiDb5mVj5iWBlS3N8tFcw2yg98+8MkRgyhtnBgSC0lxU+16AMHbjX5fbSJgw5AXLMolonuRQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", + "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.4.tgz", - "integrity": "sha512-qynirjBX0Lc73ROomZE3lzzmXXTu48/QiEzKgMeqh28+MfuHLsuqC9po4kj84igZqqFGovz8F8hf44hA3dPYmQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", + "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.4.tgz", - "integrity": "sha512-Innt+wctD7YpfeDR7r5Ik6krdyppyAg2HBRpX88fo5AYzC1Ut/l3xaxACG0KsbX49cO2n5EB13clPwuYVt8cMA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", + "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.4.tgz", - "integrity": "sha512-Dfk42l0+A1CDnVpgE606ENvdmksttLynEqTQf5FL3XGQOyqxjbo25+pglCUvziicTxjtI2NLUR6KkxyUWEVubQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", + "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.3.tgz", - "integrity": "sha512-QRfjvFh11moN4PYnJ7hia4uJXeFotyK3t2jjg8lM9mswleGsNw2Lm3I5wO+l4k1FzK96EFwEVn8X8Ojrp2gP4g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", + "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.4.tgz", - "integrity": "sha512-W79Regn+a+eXTzB+oV/8XJ33s3pDyFTND2yDuUCo0Xa3QSy1HtNIfRVPXNubHxjhlqmMFADr3FSCHT84ITW3ig==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", + "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -22252,9 +22191,9 @@ } }, "postcss-normalize-url": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.0.5.tgz", - "integrity": "sha512-Ws3tX+PcekYlXh+ycAt0wyzqGthkvVtZ9SZLutMVvHARxcpu4o7vvXcNoiNKyjKuWecnjS6HDI3fjBuDr5MQxQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", + "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", "dev": true, "requires": { "normalize-url": "^6.0.1", @@ -22262,28 +22201,28 @@ } }, "postcss-normalize-whitespace": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.4.tgz", - "integrity": "sha512-wsnuHolYZjMwWZJoTC9jeI2AcjA67v4UuidDrPN9RnX8KIZfE+r2Nd6XZRwHVwUiHmRvKQtxiqo64K+h8/imaw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", + "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.5.tgz", - "integrity": "sha512-mfY7lXpq+8bDEHfP+muqibDPhZ5eP9zgBEF9XRvoQgXcQe2Db3G1wcvjbnfjXG6wYsl+0UIjikqq4ym1V2jGMQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", + "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", "dev": true, "requires": { - "cssnano-utils": "^3.0.2", + "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } }, "postcss-reduce-initial": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.0.3.tgz", - "integrity": "sha512-c88TkSnQ/Dnwgb4OZbKPOBbCaauwEjbECP5uAuFPOzQ+XdjNjRH7SG0dteXrpp1LlIFEKK76iUGgmw2V0xeieA==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", + "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -22291,9 +22230,9 @@ } }, "postcss-reduce-transforms": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.4.tgz", - "integrity": "sha512-VIJB9SFSaL8B/B7AXb7KHL6/GNNbbCHslgdzS9UDfBZYIA2nx8NLY7iD/BXFSO/1sRUILzBTfHCoW5inP37C5g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", + "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" @@ -22310,9 +22249,9 @@ } }, "postcss-svgo": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.0.4.tgz", - "integrity": "sha512-yDKHvULbnZtIrRqhZoA+rxreWpee28JSRH/gy9727u0UCgtpv1M/9WEWY3xySlFa0zQJcqf6oCBJPR5NwkmYpg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", + "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", @@ -22320,9 +22259,9 @@ } }, "postcss-unique-selectors": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.0.4.tgz", - "integrity": "sha512-5ampwoSDJCxDPoANBIlMgoBcYUHnhaiuLYJR5pj1DLnYQvMRVyFuTA5C3Bvt+aHtiqWpJkD/lXT50Vo1D0ZsAQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", + "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" @@ -23404,6 +23343,12 @@ "websocket-driver": "^0.7.4" } }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -23417,14 +23362,6 @@ "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - } } }, "spdy": { @@ -23647,9 +23584,9 @@ } }, "stylehacks": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.0.3.tgz", - "integrity": "sha512-ENcUdpf4yO0E1rubu8rkxI+JGQk4CgjchynZ4bDBJDfqdy+uhTRSWb8/F3Jtu+Bw5MW45Po3/aQGeIyyxgQtxg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", + "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -23805,12 +23742,6 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true } } }, @@ -23841,12 +23772,6 @@ "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", "dev": true }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, "tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", diff --git a/package.json b/package.json index d828c495..d3076435 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "copy-webpack-plugin": "^11.0.0", "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^3.4.1", + "css-minimizer-webpack-plugin": "^4.0.0", "eslint": "^8.16.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", From 9963f3f988b21c40722ee36c2930de2210acedbe Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Tue, 24 May 2022 20:07:11 +0530 Subject: [PATCH 026/717] Set minimum and maximum engine versions (#580) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d3076435..599b5e11 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "Yet another matrix client", "main": "index.js", "engines": { - "npm": ">=6.14.11", - "node": ">=14.6.0" + "npm": ">=6.14.8 <8.5.5", + "node": ">=14.15.0 <17.9.0" }, "scripts": { "start": "webpack serve --config ./webpack.dev.js --open", From 95b814b751394b742978365af385f4008b61539a Mon Sep 17 00:00:00 2001 From: Matt Corallo <649246+TheBlueMatt@users.noreply.github.com> Date: Thu, 26 May 2022 07:47:41 -0700 Subject: [PATCH 027/717] Reduce third-party build script dependencies and reduce GITHUB_TOKEN perms in CI (#541) * Reduce dependence on third-party build scripts in release pipeline This removes one third-party build script from the release pipeline for the release tar.gz, though one is still used in the now-separate netlify deploy. * Reduce GITHUB_TOKEN perms in actions when using 3rd party scripts This avoids allowing third parties to arbitrarily overwrite the repository. * Replace PGP signing action with the bash script from the same The PGP signing action ultimately just calls gpg with arguments set in https://github.com/actionhippie/gpgsign/blob/v1/overlay/usr/local/bin/entrypoint so its rather trivial to simply take the required arguments and put them directly in CI. This is substantially safer than the PGP signing action used as the action currently downloads, unverified and un-pinned, a docker image in order to access PGP. --- .github/workflows/deploy-pull-request.yml | 3 ++ .github/workflows/netlify-dev.yml | 3 +- .github/workflows/prod-deploy.yml | 54 +++++++++++++++-------- 3 files changed, 41 insertions(+), 19 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 84098f24..77801b1e 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -6,6 +6,9 @@ on: - completed jobs: get-build-and-deploy: + permissions: + contents: read + pull-requests: write runs-on: ubuntu-latest if: > ${{ github.event.workflow_run.conclusion == 'success' }} diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 2c36f79f..bd9d163c 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -9,7 +9,8 @@ jobs: deploy-to-netlify: name: 'Deploy' runs-on: ubuntu-latest - + permissions: + contents: read steps: - name: Checkout repository uses: actions/checkout@v3.0.2 diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 0f790ff4..127a2f56 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -5,9 +5,43 @@ on: types: [published] jobs: + create-release: + name: 'Create release tar' + runs-on: ubuntu-latest + steps: + - name: Check out the repo + uses: actions/checkout@v3.0.2 + - name: Build + run: | + npm ci + npm run build + - name: Get version from tag + id: vars + run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} + - name: Create tar.gz + run: tar -czvf cinny-${{ steps.vars.outputs.tag }}.tar.gz dist + - name: Sign tar.gz + run: | + echo '${{ secrets.GNUPG_KEY }}' | gpg --batch --import + # Sadly a few lines in the private key match a few lines in the public key, + # As a result just --export --armor gives us a few lines replaced with *** + # making it useless for importing the signing key. Instead, we dump it as + # non-armored and hex-encode it so that its printable. + echo "PGP Signing key, in raw PGP format in hex. Import with cat ... | xxd -r -p - | gpg --import" + gpg --export | xxd -p + echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz + - name: Upload tagged release + uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5 + with: + files: | + cinny-${{ steps.vars.outputs.tag }}.tar.gz + cinny-${{ steps.vars.outputs.tag }}.tar.gz.asc + deploy-to-netlify: name: 'Deploy to Netlify' runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout repository uses: actions/checkout@v3.0.2 @@ -20,28 +54,12 @@ jobs: BUILD_DIRECTORY: "dist" NETLIFY_DEPLOY_MESSAGE: "Prod deploy v${{ github.ref }}" NETLIFY_DEPLOY_TO_PROD: true - - name: Get version from tag - id: vars - run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} - - name: Create tar.gz - run: tar -czvf cinny-${{ steps.vars.outputs.tag }}.tar.gz dist - - name: Sign tar.gz - uses: actionhippie/gpgsign@4e28208b142cae93e1582401dcda1cf79e4f72c0 - with: - private_key: ${{ secrets.GNUPG_KEY }} - passphrase: ${{ secrets.GNUPG_PASSPHRASE }} - detach_sign: true - files: cinny-${{ steps.vars.outputs.tag }}.tar.gz - - name: Upload tagged release - uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5 - with: - files: | - cinny-${{ steps.vars.outputs.tag }}.tar.gz - cinny-${{ steps.vars.outputs.tag }}.tar.gz.asc push_to_dockerhub: name: Push Docker image to Docker Hub runs-on: ubuntu-latest + permissions: + contents: read steps: - name: Checkout repository uses: actions/checkout@v3.0.2 From 2ca67bb61a086af8931f4a2bf50b254ad0e0b766 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 26 May 2022 20:20:28 +0530 Subject: [PATCH 028/717] Consistent job naming --- .github/workflows/prod-deploy.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 127a2f56..c4903568 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -5,11 +5,11 @@ on: types: [published] jobs: - create-release: + create-release-tar: name: 'Create release tar' runs-on: ubuntu-latest steps: - - name: Check out the repo + - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Build run: | @@ -55,7 +55,7 @@ jobs: NETLIFY_DEPLOY_MESSAGE: "Prod deploy v${{ github.ref }}" NETLIFY_DEPLOY_TO_PROD: true - push_to_dockerhub: + push-to-dockerhub: name: Push Docker image to Docker Hub runs-on: ubuntu-latest permissions: From 38b604ad41e8a7c28554df924e5965657fecea7b Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Fri, 27 May 2022 13:09:36 +0530 Subject: [PATCH 029/717] Add PGP public key and fix engine versions in package.json (#583) * nodejs 17.9.0 also works * Add github sponser link * Add Public PGP key of signed tarball * Update README.md * Add download badge also. * Add docker pulls --- .github/FUNDING.yml | 3 +- README.md | 84 ++++++++++++++++++++++++++++++++++++--------- package.json | 4 +-- 3 files changed, 72 insertions(+), 19 deletions(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 2189f7f4..e24e8dcf 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,3 @@ +github: ajbura +liberapay: ajbura open_collective: cinny -liberapay: ajbura \ No newline at end of file diff --git a/README.md b/README.md index b35e5975..94a6e56b 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,27 @@ -# Cinny +

+ + Cinny +

+

+ + GitHub all releases + + GitHub all releases + + + + + + +

-[![Star](https://img.shields.io/github/stars/ajbura/cinny)](https://github.com/ajbura/cinny/tree/dev) -[![Chat](https://img.shields.io/badge/chat-on%20matrix-orange)](https://matrix.to/#/#cinny:matrix.org) -[![Twitter](https://img.shields.io/twitter/url?url=https://twitter.com/@cinnyapp)](https://twitter.com/@cinnyapp) -[![Support](https://img.shields.io/badge/sponsor-open%20collective-blue.svg)](https://opencollective.com/cinny) +**Cinny** is a Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have a client that is easy on end user +and feels a modern chat application. -## Table of Contents - -- [About](#about) -- [Getting Started](https://cinny.in) - [Contributing](./CONTRIBUTING.md) - [Roadmap](https://github.com/ajbura/cinny/projects/11) -## About - -Cinny is a [Matrix](https://matrix.org) client focusing primarily on simple, elegant and secure interface. - -![preview](https://github.com/cinnyapp/cinny-site/blob/main/assets/preview-light.png) - ## Building and Running ### Running pre-compiled @@ -25,6 +29,54 @@ Cinny is a [Matrix](https://matrix.org) client focusing primarily on simple, ele A tarball of pre-compiled version of the app is provided with each [release](https://github.com/ajbura/cinny/releases). You can serve the application with a webserver of your choosing by simply copying `dist/` directory to the webroot. +
+PGP Public Key to verify pre-compiled tarball + +``` +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +UeGsouhyuITLwEhScounZDqop+Dx +=Zg+6 +-----END PGP PUBLIC KEY BLOCK----- +``` +
+ ### Building from source > We recommend using a version manager as versions change very quickly. You will likely need to switch between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Also recommended nodejs version is 16.15.0 LTS. @@ -38,7 +90,7 @@ npm run build # Compiles the app into the dist/ directory You can then copy the files to a webserver's webroot of your choice. -To serve a development version of the app locally for testing, you may also use the command `npm start`. +To serve a development version of the app locally for testing, you need to use the command `npm start`. ### Running with Docker diff --git a/package.json b/package.json index 599b5e11..72d65bc8 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "Yet another matrix client", "main": "index.js", "engines": { - "npm": ">=6.14.8 <8.5.5", - "node": ">=14.15.0 <17.9.0" + "npm": ">=6.14.8 <=8.5.5", + "node": ">=14.15.0 <=17.9.0" }, "scripts": { "start": "webpack serve --config ./webpack.dev.js --open", From fd680a93e0818103511814050a3fcaf45bd7f8d5 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 27 May 2022 14:09:53 +0530 Subject: [PATCH 030/717] Add alt text to sheilds --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 94a6e56b..101de850 100644 --- a/README.md +++ b/README.md @@ -5,15 +5,15 @@

- GitHub all releases + GitHub release downloads - GitHub all releases + DockerHub downloads - + Follow on Mastodon - + Follow on Twitter - + Sponsor Cinny

**Cinny** is a Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have a client that is easy on end user From fa6c8650006e00fff5ca66c0d1a6d96d9b162b9d Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sat, 28 May 2022 18:29:15 +0530 Subject: [PATCH 031/717] Update typo in string (#586) --- src/app/molecules/room-notification/RoomNotification.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/molecules/room-notification/RoomNotification.jsx b/src/app/molecules/room-notification/RoomNotification.jsx index 0a3619f1..1c088e5f 100644 --- a/src/app/molecules/room-notification/RoomNotification.jsx +++ b/src/app/molecules/room-notification/RoomNotification.jsx @@ -20,7 +20,7 @@ const items = [{ type: cons.notifs.DEFAULT, }, { iconSrc: BellRingIC, - text: 'All message', + text: 'All messages', type: cons.notifs.ALL_MESSAGES, }, { iconSrc: BellPingIC, From d3431a5d53ff0bf765edd412fd88154786a8219b Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sun, 29 May 2022 09:36:46 +0530 Subject: [PATCH 032/717] Fix emoji autocomplete in some cases (#565) --- src/app/organisms/emoji-board/recent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/emoji-board/recent.js b/src/app/organisms/emoji-board/recent.js index d175f26c..dff67fb0 100644 --- a/src/app/organisms/emoji-board/recent.js +++ b/src/app/organisms/emoji-board/recent.js @@ -4,7 +4,7 @@ import { emojis } from './emoji'; const eventType = 'io.element.recent_emoji'; function getRecentEmojisRaw() { - return initMatrix.matrixClient.getAccountData(eventType).getContent().recent_emoji ?? []; + return initMatrix.matrixClient.getAccountData(eventType)?.getContent().recent_emoji ?? []; } export function getRecentEmojis(limit) { From 7165bd91cd7c451fd6490282302e4efbd7f862cc Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sun, 29 May 2022 09:47:30 +0530 Subject: [PATCH 033/717] Don't show verify button if CS is not enable --- src/app/organisms/settings/DeviceManage.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/organisms/settings/DeviceManage.jsx b/src/app/organisms/settings/DeviceManage.jsx index dad5b96d..062ec021 100644 --- a/src/app/organisms/settings/DeviceManage.jsx +++ b/src/app/organisms/settings/DeviceManage.jsx @@ -155,6 +155,7 @@ function DeviceManage() { const lastIP = device.last_seen_ip; const lastTS = device.last_seen_ts; const isCurrentDevice = mx.deviceId === deviceId; + const canVerify = isVerified === false && (isMeVerified || isCurrentDevice); return ( : ( <> - {((isMeVerified && isVerified === false) || (isCurrentDevice && isVerified === false)) && } + {(isCSEnabled && canVerify) && } handleRename(device)} src={PencilIC} tooltip="Rename" /> handleRemove(device)} src={BinIC} tooltip="Remove session" /> From d0fd654bf7e02c5952449927222a4fe0197dd9a2 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 29 May 2022 10:15:31 +0530 Subject: [PATCH 034/717] Add support for building docker image for linux/arm64 (#494) * Update docker-pr.yml * setup docker build for linux/arm64 * Update prod-deploy.yml * Apply PR suggestion --- .github/workflows/prod-deploy.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index c4903568..39ef611e 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -63,6 +63,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3.0.2 + - name: Set up QEMU + uses: docker/setup-qemu-action@v1.2.0 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1.6.0 - name: Login to Docker Hub uses: docker/login-action@v2.0.0 with: @@ -77,6 +81,7 @@ jobs: uses: docker/build-push-action@v3.0.0 with: context: . + platforms: linux/amd64,linux/arm64 push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From f05037c7d6b7635b32f529b97dfaeb566cd9e838 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 29 May 2022 10:48:20 +0530 Subject: [PATCH 035/717] v2.0.4 (#590) --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index f1145511..fdabc93b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.0.3", + "version": "2.0.4", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.0.3", + "version": "2.0.4", "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.10", diff --git a/package.json b/package.json index 72d65bc8..c2ab24ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.0.3", + "version": "2.0.4", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index b6021125..49d32a84 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.0.3', + version: '2.0.4', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 5fd7d64d214aabc9769f926900ff60ecc523dca8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Jun 2022 21:24:43 +0530 Subject: [PATCH 036/717] Bump docker/setup-qemu-action from 1.2.0 to 2.0.0 (#596) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 1.2.0 to 2.0.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v1.2.0...v2.0.0) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 39ef611e..919944e1 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -64,7 +64,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Set up QEMU - uses: docker/setup-qemu-action@v1.2.0 + uses: docker/setup-qemu-action@v2.0.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1.6.0 - name: Login to Docker Hub From e998438135af1a5a67c9132dbaad9ae03ad1e86a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Jun 2022 21:28:18 +0530 Subject: [PATCH 037/717] Bump docker/setup-buildx-action from 1.6.0 to 2.0.0 (#595) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1.6.0 to 2.0.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v1.6.0...v2.0.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 919944e1..12778546 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -66,7 +66,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1.6.0 + uses: docker/setup-buildx-action@v2.0.0 - name: Login to Docker Hub uses: docker/login-action@v2.0.0 with: From 63ab96b71b7044890522729234af2417045bd874 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Jun 2022 21:30:58 +0530 Subject: [PATCH 038/717] Bump html-react-parser from 1.4.12 to 1.4.14 (#598) Bumps [html-react-parser](https://github.com/remarkablemark/html-react-parser) from 1.4.12 to 1.4.14. - [Release notes](https://github.com/remarkablemark/html-react-parser/releases) - [Changelog](https://github.com/remarkablemark/html-react-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/remarkablemark/html-react-parser/compare/v1.4.12...v1.4.14) --- updated-dependencies: - dependency-name: html-react-parser dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index fdabc93b..e41c861a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "file-saver": "^2.0.5", "flux": "^4.0.3", "formik": "^2.2.9", - "html-react-parser": "^1.4.12", + "html-react-parser": "^1.4.14", "katex": "^0.15.6", "linkifyjs": "^2.1.9", "matrix-js-sdk": "^17.2.0", @@ -79,8 +79,8 @@ "webpack-merge": "^5.7.3" }, "engines": { - "node": ">=14.6.0", - "npm": ">=6.14.11" + "node": ">=14.15.0 <=17.9.0", + "npm": ">=6.14.8 <=8.5.5" } }, "node_modules/@ampproject/remapping": { @@ -7335,14 +7335,14 @@ } }, "node_modules/html-react-parser": { - "version": "1.4.12", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.12.tgz", - "integrity": "sha512-nqYQzr4uXh67G9ejAG7djupTHmQvSTgjY83zbXLRfKHJ0F06751jXx6WKSFARDdXxCngo2/7H4Rwtfeowql4gQ==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.14.tgz", + "integrity": "sha512-pxhNWGie8Y+DGDpSh8cTa0k3g8PsDcwlfolA+XxYo1AGDeB6e2rdlyv4ptU9bOTiZ2i3fID+6kyqs86MN0FYZQ==", "dependencies": { "domhandler": "4.3.1", "html-dom-parser": "1.2.0", "react-property": "2.0.0", - "style-to-js": "1.1.0" + "style-to-js": "1.1.1" }, "peerDependencies": { "react": "0.14 || 15 || 16 || 17 || 18" @@ -12690,9 +12690,9 @@ } }, "node_modules/style-to-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.0.tgz", - "integrity": "sha512-1OqefPDxGrlMwcbfpsTVRyzwdhr4W0uxYQzeA2F1CBc8WG04udg2+ybRnvh3XYL4TdHQrCahLtax2jc8xaE6rA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.1.tgz", + "integrity": "sha512-RJ18Z9t2B02sYhZtfWKQq5uplVctgvjTfLWT7+Eb1zjUjIrWzX5SdlkwLGQozrqarTmEzJJ/YmdNJCUNI47elg==", "dependencies": { "style-to-object": "0.3.0" } @@ -19638,14 +19638,14 @@ } }, "html-react-parser": { - "version": "1.4.12", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.12.tgz", - "integrity": "sha512-nqYQzr4uXh67G9ejAG7djupTHmQvSTgjY83zbXLRfKHJ0F06751jXx6WKSFARDdXxCngo2/7H4Rwtfeowql4gQ==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.14.tgz", + "integrity": "sha512-pxhNWGie8Y+DGDpSh8cTa0k3g8PsDcwlfolA+XxYo1AGDeB6e2rdlyv4ptU9bOTiZ2i3fID+6kyqs86MN0FYZQ==", "requires": { "domhandler": "4.3.1", "html-dom-parser": "1.2.0", "react-property": "2.0.0", - "style-to-js": "1.1.0" + "style-to-js": "1.1.1" } }, "html-webpack-plugin": { @@ -23568,9 +23568,9 @@ "requires": {} }, "style-to-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.0.tgz", - "integrity": "sha512-1OqefPDxGrlMwcbfpsTVRyzwdhr4W0uxYQzeA2F1CBc8WG04udg2+ybRnvh3XYL4TdHQrCahLtax2jc8xaE6rA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.1.tgz", + "integrity": "sha512-RJ18Z9t2B02sYhZtfWKQq5uplVctgvjTfLWT7+Eb1zjUjIrWzX5SdlkwLGQozrqarTmEzJJ/YmdNJCUNI47elg==", "requires": { "style-to-object": "0.3.0" } diff --git a/package.json b/package.json index c2ab24ce..5b87b7e8 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "file-saver": "^2.0.5", "flux": "^4.0.3", "formik": "^2.2.9", - "html-react-parser": "^1.4.12", + "html-react-parser": "^1.4.14", "katex": "^0.15.6", "linkifyjs": "^2.1.9", "matrix-js-sdk": "^17.2.0", From e8587f99c92534754159e4a25518512b8a094c08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Jun 2022 21:32:06 +0530 Subject: [PATCH 039/717] Bump sass from 1.52.1 to 1.52.2 (#599) Bumps [sass](https://github.com/sass/dart-sass) from 1.52.1 to 1.52.2. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.52.1...1.52.2) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index e41c861a..0b01c62c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", - "sass": "^1.52.1", + "sass": "^1.52.2", "sass-loader": "^13.0.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", @@ -11955,9 +11955,9 @@ } }, "node_modules/sass": { - "version": "1.52.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", - "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==", + "version": "1.52.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.2.tgz", + "integrity": "sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -23008,9 +23008,9 @@ } }, "sass": { - "version": "1.52.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.1.tgz", - "integrity": "sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==", + "version": "1.52.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.2.tgz", + "integrity": "sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 5b87b7e8..e56a0bfd 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", - "sass": "^1.52.1", + "sass": "^1.52.2", "sass-loader": "^13.0.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", From 299d9766227aabc7e241de11bc0456ead1869c16 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 4 Jun 2022 21:33:39 +0530 Subject: [PATCH 040/717] Bump webpack-dev-server from 4.9.0 to 4.9.1 (#600) Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.9.0 to 4.9.1. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.0...v4.9.1) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 63 ++++++++++++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b01c62c..cd59fe1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -75,7 +75,7 @@ "util": "^0.12.4", "webpack": "^5.72.1", "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.9.0", + "webpack-dev-server": "^4.9.1", "webpack-merge": "^5.7.3" }, "engines": { @@ -7412,9 +7412,9 @@ } }, "node_modules/http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", "dev": true }, "node_modules/http-proxy": { @@ -12377,16 +12377,25 @@ } }, "node_modules/sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "dependencies": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" } }, + "node_modules/sockjs/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13646,9 +13655,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.0.tgz", - "integrity": "sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz", + "integrity": "sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -13675,7 +13684,7 @@ "schema-utils": "^4.0.0", "selfsigned": "^2.0.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" @@ -19692,9 +19701,9 @@ } }, "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", + "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", "dev": true }, "http-proxy": { @@ -23333,14 +23342,22 @@ "dev": true }, "sockjs": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.21.tgz", - "integrity": "sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw==", + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { "faye-websocket": "^0.11.3", - "uuid": "^3.4.0", + "uuid": "^8.3.2", "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + } } }, "source-map": { @@ -24302,9 +24319,9 @@ } }, "webpack-dev-server": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.0.tgz", - "integrity": "sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw==", + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz", + "integrity": "sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -24331,7 +24348,7 @@ "schema-utils": "^4.0.0", "selfsigned": "^2.0.1", "serve-index": "^1.9.1", - "sockjs": "^0.3.21", + "sockjs": "^0.3.24", "spdy": "^4.0.2", "webpack-dev-middleware": "^5.3.1", "ws": "^8.4.2" diff --git a/package.json b/package.json index e56a0bfd..7cab591d 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "util": "^0.12.4", "webpack": "^5.72.1", "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.9.0", + "webpack-dev-server": "^4.9.1", "webpack-merge": "^5.7.3" } } From c410d4e9f5823259821c0b0cf352f2f9b5911ccc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 09:51:10 +0530 Subject: [PATCH 041/717] Bump eslint from 8.16.0 to 8.17.0 (#602) Bumps [eslint](https://github.com/eslint/eslint) from 8.16.0 to 8.17.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.16.0...v8.17.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index cd59fe1e..eb3413d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.16.0", + "eslint": "^8.17.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", @@ -5580,9 +5580,9 @@ } }, "node_modules/eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -18274,9 +18274,9 @@ "dev": true }, "eslint": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.16.0.tgz", - "integrity": "sha512-MBndsoXY/PeVTDJeWsYj7kLZ5hQpJOfMYLsF6LicLHQWbRDG19lK5jOix4DPl8yY4SUFcE3txy86OzFLWT+yoA==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", + "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", diff --git a/package.json b/package.json index 7cab591d..66edbc9c 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.16.0", + "eslint": "^8.17.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", From 315b5a10484d10ec2ec8e6088cc3a24190186b05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 09:52:17 +0530 Subject: [PATCH 042/717] Bump webpack from 5.72.1 to 5.73.0 (#601) Bumps [webpack](https://github.com/webpack/webpack) from 5.72.1 to 5.73.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.72.1...v5.73.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index eb3413d0..f6e9fbcb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -73,7 +73,7 @@ "style-loader": "^3.3.1", "url": "^0.11.0", "util": "^0.12.4", - "webpack": "^5.72.1", + "webpack": "^5.73.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.9.1", "webpack-merge": "^5.7.3" @@ -13480,9 +13480,9 @@ } }, "node_modules/webpack": { - "version": "5.72.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", - "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", + "version": "5.73.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", + "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -24185,9 +24185,9 @@ } }, "webpack": { - "version": "5.72.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", - "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", + "version": "5.73.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", + "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", diff --git a/package.json b/package.json index 66edbc9c..50f16cb5 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,7 @@ "style-loader": "^3.3.1", "url": "^0.11.0", "util": "^0.12.4", - "webpack": "^5.72.1", + "webpack": "^5.73.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.9.1", "webpack-merge": "^5.7.3" From af6e6bfc67490ede624975efa9e4d4536a1c2559 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 09:53:30 +0530 Subject: [PATCH 043/717] Bump @babel/core from 7.18.0 to 7.18.2 (#592) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.0 to 7.18.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.2/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 138 ++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 67 insertions(+), 73 deletions(-) diff --git a/package-lock.json b/package-lock.json index f6e9fbcb..bfa0b656 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.0", + "@babel/core": "^7.18.2", "@babel/preset-env": "^7.18.0", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", @@ -117,21 +117,21 @@ } }, "node_modules/@babel/core": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.0.tgz", - "integrity": "sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.0", - "@babel/helper-compilation-targets": "^7.17.10", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.0", + "@babel/helpers": "^7.18.2", "@babel/parser": "^7.18.0", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -147,12 +147,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", - "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.0", + "@babel/types": "^7.18.2", "@jridgewell/gen-mapping": "^0.3.0", "jsesc": "^2.5.1" }, @@ -186,9 +186,9 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.10", @@ -260,13 +260,10 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", "dev": true, - "dependencies": { - "@babel/types": "^7.16.7" - }, "engines": { "node": ">=6.9.0" } @@ -472,14 +469,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", - "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", "dev": true, "dependencies": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" @@ -1746,19 +1743,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", - "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.0", - "@babel/helper-environment-visitor": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", "@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.18.0", - "@babel/types": "^7.18.0", + "@babel/types": "^7.18.2", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1767,9 +1764,9 @@ } }, "node_modules/@babel/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", - "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", @@ -14052,21 +14049,21 @@ "dev": true }, "@babel/core": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.0.tgz", - "integrity": "sha512-Xyw74OlJwDijToNi0+6BBI5mLLR5+5R3bcSH80LXzjzEGEUlvNzujEE71BaD/ApEZHAvFI/Mlmp4M5lIkdeeWw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.0", - "@babel/helper-compilation-targets": "^7.17.10", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.0", + "@babel/helpers": "^7.18.2", "@babel/parser": "^7.18.0", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14075,12 +14072,12 @@ } }, "@babel/generator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.0.tgz", - "integrity": "sha512-81YO9gGx6voPXlvYdZBliFXAZU8vZ9AZ6z+CjlmcnaeOcYSFbMTpdeDUO9xD9dh/68Vq03I8ZspfUTPfitcDHg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", + "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", "dev": true, "requires": { - "@babel/types": "^7.18.0", + "@babel/types": "^7.18.2", "@jridgewell/gen-mapping": "^0.3.0", "jsesc": "^2.5.1" } @@ -14105,9 +14102,9 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.10.tgz", - "integrity": "sha512-gh3RxjWbauw/dFiU/7whjd0qN9K6nPJMqe6+Er7rOavFh0CQUSwhAE3IcTho2rywPJFxej6TUUHDkWcYI6gGqQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", + "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", "dev": true, "requires": { "@babel/compat-data": "^7.17.10", @@ -14158,13 +14155,10 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz", - "integrity": "sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==", - "dev": true, - "requires": { - "@babel/types": "^7.16.7" - } + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", + "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "dev": true }, "@babel/helper-explode-assignable-expression": { "version": "7.16.7", @@ -14319,14 +14313,14 @@ } }, "@babel/helpers": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.0.tgz", - "integrity": "sha512-AE+HMYhmlMIbho9nbvicHyxFwhrO+xhKB6AhRxzl8w46Yj0VXTZjEsAoBVC7rB2I0jzX+yWyVybnO08qkfx6kg==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", + "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", "dev": true, "requires": { "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2" } }, "@babel/highlight": { @@ -15180,27 +15174,27 @@ } }, "@babel/traverse": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.0.tgz", - "integrity": "sha512-oNOO4vaoIQoGjDQ84LgtF/IAlxlyqL4TUuoQ7xLkQETFaHkY1F7yazhB4Kt3VcZGL0ZF/jhrEpnXqUb0M7V3sw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", + "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.0", - "@babel/helper-environment-visitor": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-environment-visitor": "^7.18.2", "@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.18.0", - "@babel/types": "^7.18.0", + "@babel/types": "^7.18.2", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.0.tgz", - "integrity": "sha512-vhAmLPAiC8j9K2GnsnLPCIH5wCrPpYIVBCWRBFDCB7Y/BXLqi/O+1RSTTM2bsmg6U/551+FCf9PNPxjABmxHTw==", + "version": "7.18.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", + "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", diff --git a/package.json b/package.json index 50f16cb5..3f84bcee 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.0", + "@babel/core": "^7.18.2", "@babel/preset-env": "^7.18.0", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", From ba39724813dd3a8c6c05abebd0abf4bb72bf5d94 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 10:14:37 +0530 Subject: [PATCH 044/717] Bump @babel/preset-env from 7.18.0 to 7.18.2 (#594) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.0 to 7.18.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.2/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 78 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfa0b656..0a952b2a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ }, "devDependencies": { "@babel/core": "^7.18.2", - "@babel/preset-env": "^7.18.0", + "@babel/preset-env": "^7.18.2", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", @@ -400,12 +400,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" }, "engines": { "node": ">=6.9.0" @@ -1236,14 +1236,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz", - "integrity": "sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", "dev": true, "dependencies": { "@babel/helper-module-transforms": "^7.18.0", "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-simple-access": "^7.18.2", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1508,9 +1508,9 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz", - "integrity": "sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.17.12" @@ -1569,13 +1569,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.0.tgz", - "integrity": "sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", @@ -1620,12 +1620,12 @@ "@babel/plugin-transform-dotall-regex": "^7.16.7", "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.17.12", + "@babel/plugin-transform-for-of": "^7.18.1", "@babel/plugin-transform-function-name": "^7.16.7", "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", "@babel/plugin-transform-modules-systemjs": "^7.18.0", "@babel/plugin-transform-modules-umd": "^7.18.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", @@ -1638,12 +1638,12 @@ "@babel/plugin-transform-shorthand-properties": "^7.16.7", "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.17.12", + "@babel/plugin-transform-template-literals": "^7.18.2", "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.0", + "@babel/types": "^7.18.2", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", @@ -14262,12 +14262,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz", - "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", + "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -14813,14 +14813,14 @@ } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.0.tgz", - "integrity": "sha512-cCeR0VZWtfxWS4YueAK2qtHtBPJRSaJcMlbS8jhSIm/A3E2Kpro4W1Dn4cqJtp59dtWfXjQwK7SPKF8ghs7rlw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", + "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", "dev": true, "requires": { "@babel/helper-module-transforms": "^7.18.0", "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.17.7", + "@babel/helper-simple-access": "^7.18.2", "babel-plugin-dynamic-import-node": "^2.3.3" } }, @@ -14983,9 +14983,9 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.17.12.tgz", - "integrity": "sha512-kAKJ7DX1dSRa2s7WN1xUAuaQmkTpN+uig4wCKWivVXIObqGbVTUlSavHyfI2iZvz89GFAMGm9p2DBJ4Y1Tp0hw==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", + "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.17.12" @@ -15020,13 +15020,13 @@ } }, "@babel/preset-env": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.0.tgz", - "integrity": "sha512-cP74OMs7ECLPeG1reiCQ/D/ypyOxgfm8uR6HRYV23vTJ7Lu1nbgj9DQDo/vH59gnn7GOAwtTDPPYV4aXzsMKHA==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", + "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", "dev": true, "requires": { "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-compilation-targets": "^7.18.2", "@babel/helper-plugin-utils": "^7.17.12", "@babel/helper-validator-option": "^7.16.7", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", @@ -15071,12 +15071,12 @@ "@babel/plugin-transform-dotall-regex": "^7.16.7", "@babel/plugin-transform-duplicate-keys": "^7.17.12", "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.17.12", + "@babel/plugin-transform-for-of": "^7.18.1", "@babel/plugin-transform-function-name": "^7.16.7", "@babel/plugin-transform-literals": "^7.17.12", "@babel/plugin-transform-member-expression-literals": "^7.16.7", "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.0", + "@babel/plugin-transform-modules-commonjs": "^7.18.2", "@babel/plugin-transform-modules-systemjs": "^7.18.0", "@babel/plugin-transform-modules-umd": "^7.18.0", "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", @@ -15089,12 +15089,12 @@ "@babel/plugin-transform-shorthand-properties": "^7.16.7", "@babel/plugin-transform-spread": "^7.17.12", "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.17.12", + "@babel/plugin-transform-template-literals": "^7.18.2", "@babel/plugin-transform-typeof-symbol": "^7.17.12", "@babel/plugin-transform-unicode-escapes": "^7.16.7", "@babel/plugin-transform-unicode-regex": "^7.16.7", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.0", + "@babel/types": "^7.18.2", "babel-plugin-polyfill-corejs2": "^0.3.0", "babel-plugin-polyfill-corejs3": "^0.5.0", "babel-plugin-polyfill-regenerator": "^0.3.0", diff --git a/package.json b/package.json index 3f84bcee..9bd341a7 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ }, "devDependencies": { "@babel/core": "^7.18.2", - "@babel/preset-env": "^7.18.0", + "@babel/preset-env": "^7.18.2", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", From 0d121447446db8a281d066637be49db5e22d4918 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 5 Jun 2022 10:32:15 +0530 Subject: [PATCH 045/717] Bump matrix-js-sdk from 17.2.0 to 18.0.0 (#591) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 17.2.0 to 18.0.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v17.2.0...v18.0.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0a952b2a..74aa7270 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "html-react-parser": "^1.4.14", "katex": "^0.15.6", "linkifyjs": "^2.1.9", - "matrix-js-sdk": "^17.2.0", + "matrix-js-sdk": "^18.0.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", @@ -8895,9 +8895,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "17.2.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz", - "integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.0.0.tgz", + "integrity": "sha512-P7PI2nQs7BfjkEATgVtQK3ix1DqIYBiDsVo9nSwJcG2vqq+Mf2PnnuPtU6/ZQBoUNhMbFCd8XCaxsPnE6XqnEA==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -20826,9 +20826,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "17.2.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-17.2.0.tgz", - "integrity": "sha512-/IrgHCSVUZNVcKoPO20OF9Xog9X79a1ckmR7FwF5lSTNdmC7eQvU0XcFYCi5IXo57du+im69lEw8dLbPngZhoQ==", + "version": "18.0.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.0.0.tgz", + "integrity": "sha512-P7PI2nQs7BfjkEATgVtQK3ix1DqIYBiDsVo9nSwJcG2vqq+Mf2PnnuPtU6/ZQBoUNhMbFCd8XCaxsPnE6XqnEA==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index 9bd341a7..6393b748 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "html-react-parser": "^1.4.14", "katex": "^0.15.6", "linkifyjs": "^2.1.9", - "matrix-js-sdk": "^17.2.0", + "matrix-js-sdk": "^18.0.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", From 371e66a6dfc53a1ec1bc8d31ce134f530e0f5ac2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 15:08:55 +0530 Subject: [PATCH 046/717] Bump @fontsource/inter from 4.5.10 to 4.5.11 (#619) Bumps [@fontsource/inter](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/inter) from 4.5.10 to 4.5.11. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/inter) --- updated-dependencies: - dependency-name: "@fontsource/inter" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 74aa7270..842a9dfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.0.4", "license": "MIT", "dependencies": { - "@fontsource/inter": "^4.5.10", + "@fontsource/inter": "^4.5.11", "@fontsource/roboto": "^4.5.7", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", "@tippyjs/react": "^4.2.6", @@ -1821,9 +1821,9 @@ } }, "node_modules/@fontsource/inter": { - "version": "4.5.10", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.10.tgz", - "integrity": "sha512-YOt2/K8yo25MVBjrTImHxVimmyZEt0GcrWp2w7O29sdFX9SJqbGlOqjFJ1wI5yBbP6AmTeimyPE0UC/jjFRoIA==" + "version": "4.5.11", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.11.tgz", + "integrity": "sha512-toizzQkfXL8YJcG/f8j3EYXYGQe4OxiDEItThSigvHU+cYNDw8HPp3wLYQX745hddsnHqOGCM4exitFSBOU8+w==" }, "node_modules/@fontsource/roboto": { "version": "4.5.7", @@ -15236,9 +15236,9 @@ } }, "@fontsource/inter": { - "version": "4.5.10", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.10.tgz", - "integrity": "sha512-YOt2/K8yo25MVBjrTImHxVimmyZEt0GcrWp2w7O29sdFX9SJqbGlOqjFJ1wI5yBbP6AmTeimyPE0UC/jjFRoIA==" + "version": "4.5.11", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.11.tgz", + "integrity": "sha512-toizzQkfXL8YJcG/f8j3EYXYGQe4OxiDEItThSigvHU+cYNDw8HPp3wLYQX745hddsnHqOGCM4exitFSBOU8+w==" }, "@fontsource/roboto": { "version": "4.5.7", diff --git a/package.json b/package.json index 6393b748..a2b99c69 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "author": "Ajay Bura", "license": "MIT", "dependencies": { - "@fontsource/inter": "^4.5.10", + "@fontsource/inter": "^4.5.11", "@fontsource/roboto": "^4.5.7", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", "@tippyjs/react": "^4.2.6", From eef2d451b7a1332fa41d360aaa6dfbc29072beb3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 15:09:32 +0530 Subject: [PATCH 047/717] Bump webpack-dev-server from 4.9.1 to 4.9.2 (#617) Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.9.1 to 4.9.2. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.1...v4.9.2) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 +++++++++------- package.json | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 842a9dfa..7eedd84c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -75,7 +75,7 @@ "util": "^0.12.4", "webpack": "^5.73.0", "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.9.1", + "webpack-dev-server": "^4.9.2", "webpack-merge": "^5.7.3" }, "engines": { @@ -13652,15 +13652,16 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz", - "integrity": "sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", + "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", @@ -24313,15 +24314,16 @@ } }, "webpack-dev-server": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.1.tgz", - "integrity": "sha512-CTMfu2UMdR/4OOZVHRpdy84pNopOuigVIsRbGX3LVDMWNP8EUgC5mUBMErbwBlHTEX99ejZJpVqrir6EXAEajA==", + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", + "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", "@types/connect-history-api-fallback": "^1.3.5", "@types/express": "^4.17.13", "@types/serve-index": "^1.9.1", + "@types/serve-static": "^1.13.10", "@types/sockjs": "^0.3.33", "@types/ws": "^8.5.1", "ansi-html-community": "^0.0.8", diff --git a/package.json b/package.json index a2b99c69..89da1f6c 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "util": "^0.12.4", "webpack": "^5.73.0", "webpack-cli": "^4.9.2", - "webpack-dev-server": "^4.9.1", + "webpack-dev-server": "^4.9.2", "webpack-merge": "^5.7.3" } } From 8b96e0ab982a6a45c15f9541355c06ae64a7d6ee Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 14 Jun 2022 19:55:48 +0530 Subject: [PATCH 048/717] Fix nodejs version in actions (#627) * Update prod-deploy.yml * Update netlify-dev.yml * Update build-pull-request.yml * Update build-pull-request.yml * Update netlify-dev.yml * Update prod-deploy.yml Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 4 ++++ .github/workflows/netlify-dev.yml | 4 ++++ .github/workflows/prod-deploy.yml | 8 ++++++++ 3 files changed, 16 insertions(+) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index e5102a3a..e57acd9e 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,6 +12,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3.0.2 + - name: Setup node + uses: actions/setup-node@v3.3.0 + with: + node-version: 17.9.0 - name: Build app run: npm ci && npm run build - name: Upload artifact diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index bd9d163c..a1646954 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -14,6 +14,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3.0.2 + - name: Setup node + uses: actions/setup-node@v3.3.0 + with: + node-version: 17.9.0 - name: Build and deploy to Netlify uses: jsmrcaga/action-netlify-deploy@fb6a5f936a4b06a8f7793e69fc5a022ffe39807a with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 12778546..4d05c68a 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -11,6 +11,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3.0.2 + - name: Setup node + uses: actions/setup-node@v3.3.0 + with: + node-version: 17.9.0 - name: Build run: | npm ci @@ -45,6 +49,10 @@ jobs: steps: - name: Checkout repository uses: actions/checkout@v3.0.2 + - name: Setup node + uses: actions/setup-node@v3.3.0 + with: + node-version: 17.9.0 - name: Build and deploy to Netlify uses: jsmrcaga/action-netlify-deploy@fb6a5f936a4b06a8f7793e69fc5a022ffe39807a with: From a3f5b9248494ff79ef3fbb16a917134ecaacece1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 19:59:42 +0530 Subject: [PATCH 049/717] Bump @babel/core from 7.18.2 to 7.18.5 (#625) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.2 to 7.18.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.5/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 58 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7eedd84c..bdf6aab2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.2", + "@babel/core": "^7.18.5", "@babel/preset-env": "^7.18.2", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", @@ -117,9 +117,9 @@ } }, "node_modules/@babel/core": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", - "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", @@ -128,10 +128,10 @@ "@babel/helper-compilation-targets": "^7.18.2", "@babel/helper-module-transforms": "^7.18.0", "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.0", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -497,9 +497,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1743,9 +1743,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", - "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.16.7", @@ -1754,8 +1754,8 @@ "@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.18.0", - "@babel/types": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -14050,9 +14050,9 @@ "dev": true }, "@babel/core": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", - "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", + "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", @@ -14061,10 +14061,10 @@ "@babel/helper-compilation-targets": "^7.18.2", "@babel/helper-module-transforms": "^7.18.0", "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.0", + "@babel/parser": "^7.18.5", "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2", + "@babel/traverse": "^7.18.5", + "@babel/types": "^7.18.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14336,9 +14336,9 @@ } }, "@babel/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", + "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -15175,9 +15175,9 @@ } }, "@babel/traverse": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz", - "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==", + "version": "7.18.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", + "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", "dev": true, "requires": { "@babel/code-frame": "^7.16.7", @@ -15186,8 +15186,8 @@ "@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.18.0", - "@babel/types": "^7.18.2", + "@babel/parser": "^7.18.5", + "@babel/types": "^7.18.4", "debug": "^4.1.0", "globals": "^11.1.0" } diff --git a/package.json b/package.json index 89da1f6c..69d6120c 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.2", + "@babel/core": "^7.18.5", "@babel/preset-env": "^7.18.2", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", From d9e1fb620b5a9561f4a3de4833c8808738830658 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 20:12:27 +0530 Subject: [PATCH 050/717] Bump matrix-js-sdk from 18.0.0 to 18.1.0 (#624) * Bump matrix-js-sdk from 18.0.0 to 18.1.0 Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 18.0.0 to 18.1.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v18.0.0...v18.1.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Replace with stable function Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- src/app/molecules/room-aliases/RoomAliases.jsx | 2 +- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index bdf6aab2..e7915fe0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "html-react-parser": "^1.4.14", "katex": "^0.15.6", "linkifyjs": "^2.1.9", - "matrix-js-sdk": "^18.0.0", + "matrix-js-sdk": "^18.1.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", @@ -8895,9 +8895,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.0.0.tgz", - "integrity": "sha512-P7PI2nQs7BfjkEATgVtQK3ix1DqIYBiDsVo9nSwJcG2vqq+Mf2PnnuPtU6/ZQBoUNhMbFCd8XCaxsPnE6XqnEA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.1.0.tgz", + "integrity": "sha512-O5D36paIsY7a2M2mOo7KKU7v1Mb3PVkmYKupXYcXd9gB/Ki1K4mds+vSDEhgkKyKwk6MK1AV/vgvp0xJCsttvg==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -20827,9 +20827,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "18.0.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.0.0.tgz", - "integrity": "sha512-P7PI2nQs7BfjkEATgVtQK3ix1DqIYBiDsVo9nSwJcG2vqq+Mf2PnnuPtU6/ZQBoUNhMbFCd8XCaxsPnE6XqnEA==", + "version": "18.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.1.0.tgz", + "integrity": "sha512-O5D36paIsY7a2M2mOo7KKU7v1Mb3PVkmYKupXYcXd9gB/Ki1K4mds+vSDEhgkKyKwk6MK1AV/vgvp0xJCsttvg==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index 69d6120c..7099bf86 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "html-react-parser": "^1.4.14", "katex": "^0.15.6", "linkifyjs": "^2.1.9", - "matrix-js-sdk": "^18.0.0", + "matrix-js-sdk": "^18.1.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", diff --git a/src/app/molecules/room-aliases/RoomAliases.jsx b/src/app/molecules/room-aliases/RoomAliases.jsx index 4fa2b3ae..201c523a 100644 --- a/src/app/molecules/room-aliases/RoomAliases.jsx +++ b/src/app/molecules/room-aliases/RoomAliases.jsx @@ -118,7 +118,7 @@ function RoomAliases({ roomId }) { const loadLocalAliases = async () => { let local = []; try { - const result = await mx.unstableGetLocalAliases(roomId); + const result = await mx.getLocalAliases(roomId); local = result.aliases.filter((alias) => !aliases.published.includes(alias)); } catch { local = []; From 58c3eee153db943313064605a650db56cd7eaaf5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 20:15:14 +0530 Subject: [PATCH 051/717] Bump sass from 1.52.2 to 1.52.3 (#623) Bumps [sass](https://github.com/sass/dart-sass) from 1.52.2 to 1.52.3. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.52.2...1.52.3) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index e7915fe0..e1e78cd1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", - "sass": "^1.52.2", + "sass": "^1.52.3", "sass-loader": "^13.0.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", @@ -11952,9 +11952,9 @@ } }, "node_modules/sass": { - "version": "1.52.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.2.tgz", - "integrity": "sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ==", + "version": "1.52.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz", + "integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -23012,9 +23012,9 @@ } }, "sass": { - "version": "1.52.2", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.2.tgz", - "integrity": "sha512-mfHB2VSeFS7sZlPv9YohB9GB7yWIgQNTGniQwfQ04EoQN0wsQEv7SwpCwy/x48Af+Z3vDeFXz+iuXM3HK/phZQ==", + "version": "1.52.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz", + "integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 7099bf86..777550f7 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", - "sass": "^1.52.2", + "sass": "^1.52.3", "sass-loader": "^13.0.0", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", From 217f29f068f6513c6547f292bb71f8da0bbe8b1b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 20:18:38 +0530 Subject: [PATCH 052/717] Bump webpack-cli from 4.9.2 to 4.10.0 (#622) Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.9.2 to 4.10.0. - [Release notes](https://github.com/webpack/webpack-cli/releases) - [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.9.2...webpack-cli@4.10.0) --- updated-dependencies: - dependency-name: webpack-cli dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 70 +++++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index e1e78cd1..43d73f0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,7 +74,7 @@ "url": "^0.11.0", "util": "^0.12.4", "webpack": "^5.73.0", - "webpack-cli": "^4.9.2", + "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.9.2", "webpack-merge": "^5.7.3" }, @@ -2854,9 +2854,9 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", "dev": true, "peerDependencies": { "webpack": "4.x.x || 5.x.x", @@ -2864,9 +2864,9 @@ } }, "node_modules/@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", "dev": true, "dependencies": { "envinfo": "^7.7.3" @@ -2876,9 +2876,9 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", "dev": true, "peerDependencies": { "webpack-cli": "4.x.x" @@ -13524,18 +13524,18 @@ } }, "node_modules/webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", "colorette": "^2.0.14", "commander": "^7.0.0", - "execa": "^5.0.0", + "cross-spawn": "^7.0.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^2.2.0", @@ -13548,6 +13548,10 @@ "engines": { "node": ">=10.13.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, "peerDependencies": { "webpack": "4.x.x || 5.x.x" }, @@ -16123,25 +16127,25 @@ } }, "@webpack-cli/configtest": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz", - "integrity": "sha512-1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", + "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", "dev": true, "requires": {} }, "@webpack-cli/info": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz", - "integrity": "sha512-PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", + "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", "dev": true, "requires": { "envinfo": "^7.7.3" } }, "@webpack-cli/serve": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz", - "integrity": "sha512-gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", + "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", "dev": true, "requires": {} }, @@ -24232,18 +24236,18 @@ } }, "webpack-cli": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz", - "integrity": "sha512-m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==", + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", + "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", "dev": true, "requires": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.1.1", - "@webpack-cli/info": "^1.4.1", - "@webpack-cli/serve": "^1.6.1", + "@webpack-cli/configtest": "^1.2.0", + "@webpack-cli/info": "^1.5.0", + "@webpack-cli/serve": "^1.7.0", "colorette": "^2.0.14", "commander": "^7.0.0", - "execa": "^5.0.0", + "cross-spawn": "^7.0.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", "interpret": "^2.2.0", diff --git a/package.json b/package.json index 777550f7..d409d0ea 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "url": "^0.11.0", "util": "^0.12.4", "webpack": "^5.73.0", - "webpack-cli": "^4.9.2", + "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.9.2", "webpack-merge": "^5.7.3" } From 2d3634d6bfe28e203ca5d3731fff1fddbdde3edf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jun 2022 20:19:46 +0530 Subject: [PATCH 053/717] Bump jsmrcaga/action-netlify-deploy from 1.7.2 to 1.8.0 (#618) Bumps [jsmrcaga/action-netlify-deploy](https://github.com/jsmrcaga/action-netlify-deploy) from 1.7.2 to 1.8.0. - [Release notes](https://github.com/jsmrcaga/action-netlify-deploy/releases) - [Commits](https://github.com/jsmrcaga/action-netlify-deploy/compare/fb6a5f936a4b06a8f7793e69fc5a022ffe39807a...53de32e559b0b3833615b9788c7a090cd2fddb03) --- updated-dependencies: - dependency-name: jsmrcaga/action-netlify-deploy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index a1646954..8def7fa0 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -19,7 +19,7 @@ jobs: with: node-version: 17.9.0 - name: Build and deploy to Netlify - uses: jsmrcaga/action-netlify-deploy@fb6a5f936a4b06a8f7793e69fc5a022ffe39807a + uses: jsmrcaga/action-netlify-deploy@53de32e559b0b3833615b9788c7a090cd2fddb03 with: install_command: "npm ci" NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 4d05c68a..d6a3e0c7 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -54,7 +54,7 @@ jobs: with: node-version: 17.9.0 - name: Build and deploy to Netlify - uses: jsmrcaga/action-netlify-deploy@fb6a5f936a4b06a8f7793e69fc5a022ffe39807a + uses: jsmrcaga/action-netlify-deploy@53de32e559b0b3833615b9788c7a090cd2fddb03 with: install_command: "npm ci" NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} From 8c1c3cd634db1f331e069a7a05dfe87e8fc681a5 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 15 Jun 2022 12:07:14 +0530 Subject: [PATCH 054/717] Fix mozilla homerserver domain (#199) (#629) --- config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index e7f9eea3..c647dbb4 100644 --- a/config.json +++ b/config.json @@ -6,7 +6,7 @@ "halogen.city", "kde.org", "matrix.org", - "chat.mozilla.org" + "mozilla.org" ], "allowCustomHomeservers": true -} \ No newline at end of file +} From 57ab10a87c7ba4f4df0e9a6268cf95e66ef95180 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 17:28:44 +0530 Subject: [PATCH 055/717] Bump eslint from 8.17.0 to 8.18.0 (#638) Bumps [eslint](https://github.com/eslint/eslint) from 8.17.0 to 8.18.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.17.0...v8.18.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 43d73f0c..4129948b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.17.0", + "eslint": "^8.18.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", @@ -5577,9 +5577,9 @@ } }, "node_modules/eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -18273,9 +18273,9 @@ "dev": true }, "eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz", - "integrity": "sha512-gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", + "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", diff --git a/package.json b/package.json index d409d0ea..9deb3630 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.17.0", + "eslint": "^8.18.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", From a142ade9239ba19b7a2b8ca2da78016c4f810fdf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 17:30:23 +0530 Subject: [PATCH 056/717] Bump mini-css-extract-plugin from 2.6.0 to 2.6.1 (#640) Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.6.0 to 2.6.1. - [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases) - [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.6.0...v2.6.1) --- updated-dependencies: - dependency-name: mini-css-extract-plugin dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4129948b..c87625d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -65,7 +65,7 @@ "favicons-webpack-plugin": "^5.0.2", "html-loader": "^3.1.0", "html-webpack-plugin": "^5.3.1", - "mini-css-extract-plugin": "^2.6.0", + "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", "sass": "^1.52.3", "sass-loader": "^13.0.0", @@ -9627,9 +9627,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" @@ -21284,9 +21284,9 @@ } }, "mini-css-extract-plugin": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", - "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", + "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", "dev": true, "requires": { "schema-utils": "^4.0.0" diff --git a/package.json b/package.json index 9deb3630..1ea9188b 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "favicons-webpack-plugin": "^5.0.2", "html-loader": "^3.1.0", "html-webpack-plugin": "^5.3.1", - "mini-css-extract-plugin": "^2.6.0", + "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", "sass": "^1.52.3", "sass-loader": "^13.0.0", From 118dcd8fa043977d314778ce41ee23907cc5f0d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 17:31:58 +0530 Subject: [PATCH 057/717] Bump eslint-plugin-react-hooks from 4.5.0 to 4.6.0 (#642) Bumps [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/facebook/react/releases) - [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md) - [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks) --- updated-dependencies: - dependency-name: eslint-plugin-react-hooks dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c87625d2..4300eaac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-react": "^7.30.0", - "eslint-plugin-react-hooks": "^4.5.0", + "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", "html-loader": "^3.1.0", @@ -5818,9 +5818,9 @@ } }, "node_modules/eslint-plugin-react-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz", - "integrity": "sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, "engines": { "node": ">=10" @@ -18569,9 +18569,9 @@ } }, "eslint-plugin-react-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.5.0.tgz", - "integrity": "sha512-8k1gRt7D7h03kd+SAAlzXkQwWK22BnK6GKZG+FJA6BAGy22CFvl8kCIXKpVux0cCxMWDQUPqSok0LKaZ0aOcCw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", "dev": true, "requires": {} }, diff --git a/package.json b/package.json index 1ea9188b..b189e804 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-react": "^7.30.0", - "eslint-plugin-react-hooks": "^4.5.0", + "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", "html-loader": "^3.1.0", From 4c7820ceacf3c12a9febc2f426b0e5f23ea39b0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 17:33:58 +0530 Subject: [PATCH 058/717] Bump html-react-parser from 1.4.14 to 2.0.0 (#641) Bumps [html-react-parser](https://github.com/remarkablemark/html-react-parser) from 1.4.14 to 2.0.0. - [Release notes](https://github.com/remarkablemark/html-react-parser/releases) - [Changelog](https://github.com/remarkablemark/html-react-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/remarkablemark/html-react-parser/compare/v1.4.14...v2.0.0) --- updated-dependencies: - dependency-name: html-react-parser dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4300eaac..8f77a6bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "file-saver": "^2.0.5", "flux": "^4.0.3", "formik": "^2.2.9", - "html-react-parser": "^1.4.14", + "html-react-parser": "^2.0.0", "katex": "^0.15.6", "linkifyjs": "^2.1.9", "matrix-js-sdk": "^18.1.0", @@ -7247,9 +7247,9 @@ } }, "node_modules/html-dom-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-1.2.0.tgz", - "integrity": "sha512-2HIpFMvvffsXHFUFjso0M9LqM+1Lm22BF+Df2ba+7QHJXjk63pWChEnI6YG27eaWqUdfnh5/Vy+OXrNTtepRsg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-2.0.0.tgz", + "integrity": "sha512-PwVjg12yfWunpH2WjwjaYNKcZyKKm20kclTfMQohiRzfgYiXX0dR7nXIIKnHneghMDvB0rKFZLEAe11ykOfpcg==", "dependencies": { "domhandler": "4.3.1", "htmlparser2": "7.2.0" @@ -7332,12 +7332,12 @@ } }, "node_modules/html-react-parser": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.14.tgz", - "integrity": "sha512-pxhNWGie8Y+DGDpSh8cTa0k3g8PsDcwlfolA+XxYo1AGDeB6e2rdlyv4ptU9bOTiZ2i3fID+6kyqs86MN0FYZQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-2.0.0.tgz", + "integrity": "sha512-AI1lhybWGi8w4QkGtEIS3iSGAjeFGaonxl/+CzqzCeNT3g3z/yx2NKsA93trnv2BLjhe+juGLmLeTSUkyYWk9Q==", "dependencies": { "domhandler": "4.3.1", - "html-dom-parser": "1.2.0", + "html-dom-parser": "2.0.0", "react-property": "2.0.0", "style-to-js": "1.1.1" }, @@ -19588,9 +19588,9 @@ } }, "html-dom-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-1.2.0.tgz", - "integrity": "sha512-2HIpFMvvffsXHFUFjso0M9LqM+1Lm22BF+Df2ba+7QHJXjk63pWChEnI6YG27eaWqUdfnh5/Vy+OXrNTtepRsg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-2.0.0.tgz", + "integrity": "sha512-PwVjg12yfWunpH2WjwjaYNKcZyKKm20kclTfMQohiRzfgYiXX0dR7nXIIKnHneghMDvB0rKFZLEAe11ykOfpcg==", "requires": { "domhandler": "4.3.1", "htmlparser2": "7.2.0" @@ -19646,12 +19646,12 @@ } }, "html-react-parser": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-1.4.14.tgz", - "integrity": "sha512-pxhNWGie8Y+DGDpSh8cTa0k3g8PsDcwlfolA+XxYo1AGDeB6e2rdlyv4ptU9bOTiZ2i3fID+6kyqs86MN0FYZQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-2.0.0.tgz", + "integrity": "sha512-AI1lhybWGi8w4QkGtEIS3iSGAjeFGaonxl/+CzqzCeNT3g3z/yx2NKsA93trnv2BLjhe+juGLmLeTSUkyYWk9Q==", "requires": { "domhandler": "4.3.1", - "html-dom-parser": "1.2.0", + "html-dom-parser": "2.0.0", "react-property": "2.0.0", "style-to-js": "1.1.1" } diff --git a/package.json b/package.json index b189e804..abdf2f59 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "file-saver": "^2.0.5", "flux": "^4.0.3", "formik": "^2.2.9", - "html-react-parser": "^1.4.14", + "html-react-parser": "^2.0.0", "katex": "^0.15.6", "linkifyjs": "^2.1.9", "matrix-js-sdk": "^18.1.0", From 1cba4d3fa756ba15267d3aa6dcb23c423b1071c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Jun 2022 17:39:36 +0530 Subject: [PATCH 059/717] Bump html-loader from 3.1.0 to 3.1.2 (#643) Bumps [html-loader](https://github.com/webpack-contrib/html-loader) from 3.1.0 to 3.1.2. - [Release notes](https://github.com/webpack-contrib/html-loader/releases) - [Changelog](https://github.com/webpack-contrib/html-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/html-loader/compare/v3.1.0...v3.1.2) --- updated-dependencies: - dependency-name: html-loader dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8f77a6bd..390ac9d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", - "html-loader": "^3.1.0", + "html-loader": "^3.1.2", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", @@ -7291,9 +7291,9 @@ "dev": true }, "node_modules/html-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.0.tgz", - "integrity": "sha512-ycMYFRiCF7YANcLDNP72kh3Po5pTcH+bROzdDwh00iVOAY/BwvpuZ1BKPziQ35Dk9D+UD84VGX1Lu/H4HpO4fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.2.tgz", + "integrity": "sha512-9WQlLiAV5N9fCna4MUmBW/ifaUbuFZ2r7IZmtXzhyfyi4zgPEjXsmsYCKs+yT873MzRj+f1WMjuAiPNA7C6Tcw==", "dev": true, "dependencies": { "html-minifier-terser": "^6.0.2", @@ -19621,9 +19621,9 @@ "dev": true }, "html-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.0.tgz", - "integrity": "sha512-ycMYFRiCF7YANcLDNP72kh3Po5pTcH+bROzdDwh00iVOAY/BwvpuZ1BKPziQ35Dk9D+UD84VGX1Lu/H4HpO4fw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.2.tgz", + "integrity": "sha512-9WQlLiAV5N9fCna4MUmBW/ifaUbuFZ2r7IZmtXzhyfyi4zgPEjXsmsYCKs+yT873MzRj+f1WMjuAiPNA7C6Tcw==", "dev": true, "requires": { "html-minifier-terser": "^6.0.2", diff --git a/package.json b/package.json index abdf2f59..c5f7e5e6 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", - "html-loader": "^3.1.0", + "html-loader": "^3.1.2", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", From 56bc8c28903b433125f5958b5863919b04bad2e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:27:20 +0530 Subject: [PATCH 060/717] Bump nginx from 1.21.6-alpine to 1.23.0-alpine (#649) Bumps nginx from 1.21.6-alpine to 1.23.0-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 5712068f..a1066da1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN npm run build ## App -FROM nginx:1.21.6-alpine +FROM nginx:1.23.0-alpine COPY --from=builder /src/dist /app From f5386398826f6ca3519d0bb295d7437d73a85a26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:27:40 +0530 Subject: [PATCH 061/717] Bump eslint-plugin-react from 7.30.0 to 7.30.1 (#650) Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.30.0 to 7.30.1. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.30.0...v7.30.1) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 390ac9d9..c9d656e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.30.0", + "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", @@ -5790,9 +5790,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", - "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -18526,9 +18526,9 @@ } }, "eslint-plugin-react": { - "version": "7.30.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz", - "integrity": "sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==", + "version": "7.30.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", + "integrity": "sha512-NbEvI9jtqO46yJA3wcRF9Mo0lF9T/jhdHqhCHXiXtD+Zcb98812wvokjWpU7Q4QH5edo6dmqrukxVvWWXHlsUg==", "dev": true, "requires": { "array-includes": "^3.1.5", diff --git a/package.json b/package.json index c5f7e5e6..952ee8ad 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.4.1", - "eslint-plugin-react": "^7.30.0", + "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", From db92b9f5ffa37978a29d7b6cdf281d86f994f471 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:28:24 +0530 Subject: [PATCH 062/717] Bump sass-loader from 13.0.0 to 13.0.2 (#651) Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 13.0.0 to 13.0.2. - [Release notes](https://github.com/webpack-contrib/sass-loader/releases) - [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/sass-loader/compare/v13.0.0...v13.0.2) --- updated-dependencies: - dependency-name: sass-loader dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c9d656e3..d2e869db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", "sass": "^1.52.3", - "sass-loader": "^13.0.0", + "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", "url": "^0.11.0", @@ -11969,9 +11969,9 @@ } }, "node_modules/sass-loader": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.0.tgz", - "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", "dev": true, "dependencies": { "klona": "^2.0.4", @@ -23027,9 +23027,9 @@ } }, "sass-loader": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.0.tgz", - "integrity": "sha512-IHCFecI+rbPvXE2zO/mqdVFe8MU7ElGrwga9hh2H65Ru4iaBJAMRteum1c4Gsxi9Cq1FOtTEDd6+/AEYuQDM4Q==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", + "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", "dev": true, "requires": { "klona": "^2.0.4", diff --git a/package.json b/package.json index 952ee8ad..f11801cb 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", "sass": "^1.52.3", - "sass-loader": "^13.0.0", + "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", "url": "^0.11.0", From 2292f63fb68d39dfd1bd6627870986b90072572f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:52:31 +0530 Subject: [PATCH 063/717] Bump eslint-plugin-jsx-a11y from 6.5.1 to 6.6.0 (#652) Bumps [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) from 6.5.1 to 6.6.0. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.5.1...v6.6.0) --- updated-dependencies: - dependency-name: eslint-plugin-jsx-a11y dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 94 ++++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 49 insertions(+), 47 deletions(-) diff --git a/package-lock.json b/package-lock.json index d2e869db..30929296 100644 --- a/package-lock.json +++ b/package-lock.json @@ -58,7 +58,7 @@ "eslint": "^8.18.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-jsx-a11y": "^6.6.0", "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", @@ -1694,9 +1694,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -3318,12 +3318,12 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "node_modules/axe-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.0.tgz", - "integrity": "sha512-btWy2rze3NnxSSxb7LtNhPYYFrRoFBfjiGzmSc/5Hu47wApO2KNXjP/w7Nv2Uz/Fyr/pfEiwOkcXhDxu0jz5FA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", + "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=12" } }, "node_modules/axobject-query": { @@ -4902,9 +4902,9 @@ } }, "node_modules/damerau-levenshtein": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", - "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, "node_modules/dashdash": { @@ -5764,23 +5764,24 @@ "dev": true }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", + "integrity": "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==", "dev": true, "dependencies": { - "@babel/runtime": "^7.16.3", + "@babel/runtime": "^7.18.3", "aria-query": "^4.2.2", - "array-includes": "^3.1.4", + "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", + "axe-core": "^4.4.2", "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", + "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", + "jsx-ast-utils": "^3.3.1", "language-tags": "^1.0.5", - "minimatch": "^3.0.4" + "minimatch": "^3.1.2", + "semver": "^6.3.0" }, "engines": { "node": ">=4.0" @@ -8398,12 +8399,12 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz", + "integrity": "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==", "dev": true, "dependencies": { - "array-includes": "^3.1.3", + "array-includes": "^3.1.5", "object.assign": "^4.1.2" }, "engines": { @@ -15135,9 +15136,9 @@ } }, "@babel/runtime": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz", - "integrity": "sha512-9E9FJowqAsytyOY6LG+1KuueckRL+aQW+mKvXRXnuFGyRAyepJPmEo9vgMfXUA6O9u3IeEdv9MAkppFcaQwogQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", + "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -16497,9 +16498,9 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axe-core": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.0.tgz", - "integrity": "sha512-btWy2rze3NnxSSxb7LtNhPYYFrRoFBfjiGzmSc/5Hu47wApO2KNXjP/w7Nv2Uz/Fyr/pfEiwOkcXhDxu0jz5FA==", + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", + "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==", "dev": true }, "axobject-query": { @@ -17741,9 +17742,9 @@ } }, "damerau-levenshtein": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", - "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, "dashdash": { @@ -18506,23 +18507,24 @@ } }, "eslint-plugin-jsx-a11y": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz", - "integrity": "sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==", + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", + "integrity": "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==", "dev": true, "requires": { - "@babel/runtime": "^7.16.3", + "@babel/runtime": "^7.18.3", "aria-query": "^4.2.2", - "array-includes": "^3.1.4", + "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.3.5", + "axe-core": "^4.4.2", "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.7", + "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.2.1", + "jsx-ast-utils": "^3.3.1", "language-tags": "^1.0.5", - "minimatch": "^3.0.4" + "minimatch": "^3.1.2", + "semver": "^6.3.0" } }, "eslint-plugin-react": { @@ -20403,12 +20405,12 @@ } }, "jsx-ast-utils": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz", - "integrity": "sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz", + "integrity": "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==", "dev": true, "requires": { - "array-includes": "^3.1.3", + "array-includes": "^3.1.5", "object.assign": "^4.1.2" } }, diff --git a/package.json b/package.json index f11801cb..e0dbea6d 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "eslint": "^8.18.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.4.1", + "eslint-plugin-jsx-a11y": "^6.6.0", "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", From a9c5765be5d45b1aeb5eb1292bec4618e1763dc0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:53:23 +0530 Subject: [PATCH 064/717] Bump sass from 1.52.3 to 1.53.0 (#655) Bumps [sass](https://github.com/sass/dart-sass) from 1.52.3 to 1.53.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.52.3...1.53.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 30929296..a6295ccb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -67,7 +67,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", - "sass": "^1.52.3", + "sass": "^1.53.0", "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", @@ -11953,9 +11953,9 @@ } }, "node_modules/sass": { - "version": "1.52.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz", - "integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", + "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -23018,9 +23018,9 @@ } }, "sass": { - "version": "1.52.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.52.3.tgz", - "integrity": "sha512-LNNPJ9lafx+j1ArtA7GyEJm9eawXN8KlA1+5dF6IZyoONg1Tyo/g+muOsENWJH/2Q1FHbbV4UwliU0cXMa/VIA==", + "version": "1.53.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", + "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index e0dbea6d..b409961d 100644 --- a/package.json +++ b/package.json @@ -73,7 +73,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", - "sass": "^1.52.3", + "sass": "^1.53.0", "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", From 7bd7518963dfc0756b34ecde1563cc8a657e87d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 15:54:07 +0530 Subject: [PATCH 065/717] Bump @babel/core from 7.18.5 to 7.18.6 (#653) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.5 to 7.18.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 422 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 212 insertions(+), 212 deletions(-) diff --git a/package-lock.json b/package-lock.json index a6295ccb..7cd34a3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.5", + "@babel/core": "^7.18.6", "@babel/preset-env": "^7.18.2", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", @@ -96,42 +96,42 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "dependencies": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", - "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", + "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.5", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.5", - "@babel/types": "^7.18.4", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -147,12 +147,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.6.tgz", + "integrity": "sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.2", + "@babel/types": "^7.18.6", "@jridgewell/gen-mapping": "^0.3.0", "jsesc": "^2.5.1" }, @@ -186,13 +186,13 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" }, @@ -260,9 +260,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", - "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", "dev": true, "engines": { "node": ">=6.9.0" @@ -281,25 +281,25 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -318,31 +318,31 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", + "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -400,12 +400,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "dev": true, "dependencies": { - "@babel/types": "^7.18.2" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -424,30 +424,30 @@ } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -469,26 +469,26 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", "dev": true, "dependencies": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" }, @@ -497,9 +497,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", - "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1729,33 +1729,33 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", - "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", + "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", "dev": true, "dependencies": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-environment-visitor": "^7.18.2", - "@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.18.5", - "@babel/types": "^7.18.4", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1764,12 +1764,12 @@ } }, "node_modules/@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.6.tgz", + "integrity": "sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA==", "dev": true, "dependencies": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, "engines": { @@ -5570,7 +5570,7 @@ "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { "node": ">=0.8.0" @@ -7083,7 +7083,7 @@ "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, "engines": { "node": ">=4" @@ -14040,36 +14040,36 @@ } }, "@babel/code-frame": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", - "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "@babel/highlight": "^7.16.7" + "@babel/highlight": "^7.18.6" } }, "@babel/compat-data": { - "version": "7.17.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz", - "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", + "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", "dev": true }, "@babel/core": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz", - "integrity": "sha512-MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", + "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helpers": "^7.18.2", - "@babel/parser": "^7.18.5", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.5", - "@babel/types": "^7.18.4", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helpers": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14078,12 +14078,12 @@ } }, "@babel/generator": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz", - "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.6.tgz", + "integrity": "sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw==", "dev": true, "requires": { - "@babel/types": "^7.18.2", + "@babel/types": "^7.18.6", "@jridgewell/gen-mapping": "^0.3.0", "jsesc": "^2.5.1" } @@ -14108,13 +14108,13 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz", - "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-validator-option": "^7.16.7", + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" } @@ -14161,9 +14161,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz", - "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", "dev": true }, "@babel/helper-explode-assignable-expression": { @@ -14176,22 +14176,22 @@ } }, "@babel/helper-function-name": { - "version": "7.17.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz", - "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/types": "^7.17.0" + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helper-hoist-variables": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz", - "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-member-expression-to-functions": { @@ -14204,28 +14204,28 @@ } }, "@babel/helper-module-imports": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", - "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-transforms": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz", - "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", + "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-simple-access": "^7.17.7", - "@babel/helper-split-export-declaration": "^7.16.7", - "@babel/helper-validator-identifier": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.0", - "@babel/types": "^7.18.0" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helper-optimise-call-expression": { @@ -14268,12 +14268,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz", - "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "dev": true, "requires": { - "@babel/types": "^7.18.2" + "@babel/types": "^7.18.6" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -14286,24 +14286,24 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz", - "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-validator-identifier": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true }, "@babel/helper-validator-option": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", - "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", "dev": true }, "@babel/helper-wrap-function": { @@ -14319,31 +14319,31 @@ } }, "@babel/helpers": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz", - "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", "dev": true, "requires": { - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.18.2", - "@babel/types": "^7.18.2" + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/highlight": { - "version": "7.16.10", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", - "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } }, "@babel/parser": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz", - "integrity": "sha512-YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", + "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -15169,41 +15169,41 @@ } }, "@babel/template": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", - "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/parser": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/traverse": { - "version": "7.18.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz", - "integrity": "sha512-aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", + "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", "dev": true, "requires": { - "@babel/code-frame": "^7.16.7", - "@babel/generator": "^7.18.2", - "@babel/helper-environment-visitor": "^7.18.2", - "@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.18.5", - "@babel/types": "^7.18.4", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz", - "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.6.tgz", + "integrity": "sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA==", "dev": true, "requires": { - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } }, @@ -18270,7 +18270,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true }, "eslint": { @@ -19459,7 +19459,7 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true }, "has-property-descriptors": { diff --git a/package.json b/package.json index b409961d..a077c5c7 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.5", + "@babel/core": "^7.18.6", "@babel/preset-env": "^7.18.2", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", From 1d12a906d479b00836510c4977277b78bd9cce70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 20:31:52 +0530 Subject: [PATCH 066/717] Bump @babel/preset-env from 7.18.2 to 7.18.6 (#654) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.2 to 7.18.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 1469 +++++++++++++++++++++++---------------------- package.json | 2 +- 2 files changed, 739 insertions(+), 732 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7cd34a3a..973528c3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ }, "devDependencies": { "@babel/core": "^7.18.6", - "@babel/preset-env": "^7.18.2", + "@babel/preset-env": "^7.18.6", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", @@ -161,25 +161,25 @@ } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", + "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", "dev": true, "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -204,18 +204,18 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", + "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -225,13 +225,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", + "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" }, "engines": { "node": ">=6.9.0" @@ -269,12 +269,12 @@ } }, "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -306,12 +306,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", + "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", "dev": true, "dependencies": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -349,51 +349,55 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, "dependencies": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", + "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-wrap-function": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", + "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -412,12 +416,12 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", + "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", "dev": true, "dependencies": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -454,15 +458,15 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", + "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -509,12 +513,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -524,14 +528,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", + "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -541,13 +545,14 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", + "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -558,13 +563,13 @@ } }, "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", - "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -574,13 +579,13 @@ } }, "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, "engines": { @@ -591,12 +596,12 @@ } }, "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" }, "engines": { @@ -607,12 +612,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", + "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -623,12 +628,12 @@ } }, "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" }, "engines": { @@ -639,12 +644,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", + "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -655,12 +660,12 @@ } }, "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" }, "engines": { @@ -671,12 +676,12 @@ } }, "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" }, "engines": { @@ -687,16 +692,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", - "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", + "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/compat-data": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.17.12" + "@babel/plugin-transform-parameters": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -706,12 +711,12 @@ } }, "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" }, "engines": { @@ -722,13 +727,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", + "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -739,13 +744,13 @@ } }, "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -755,14 +760,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -773,13 +778,13 @@ } }, "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=4" @@ -852,12 +857,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", - "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -996,12 +1001,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1011,14 +1016,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1028,12 +1033,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1043,12 +1048,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz", - "integrity": "sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", + "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1058,18 +1063,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz", - "integrity": "sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz", + "integrity": "sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, "engines": { @@ -1080,12 +1085,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", + "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1095,12 +1100,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", + "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1110,13 +1115,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1126,12 +1131,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", + "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1141,13 +1146,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1157,12 +1162,12 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz", + "integrity": "sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1172,14 +1177,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", + "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1189,12 +1194,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", + "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1204,12 +1209,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1219,13 +1224,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1236,14 +1241,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1254,15 +1259,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz", - "integrity": "sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", + "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", "dev": true, "dependencies": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" }, "engines": { @@ -1273,13 +1278,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1289,13 +1294,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", + "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1305,12 +1310,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", - "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1320,13 +1325,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1336,12 +1341,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz", + "integrity": "sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1351,12 +1356,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1431,12 +1436,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "regenerator-transform": "^0.15.0" }, "engines": { @@ -1447,12 +1452,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1462,12 +1467,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1477,13 +1482,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", + "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1493,12 +1498,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1508,12 +1513,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", - "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", + "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1523,12 +1528,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", + "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1538,12 +1543,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", + "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1553,13 +1558,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1569,38 +1574,38 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", - "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", + "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-async-generator-functions": "^7.17.12", - "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-proposal-class-static-block": "^7.18.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.17.12", - "@babel/plugin-proposal-json-strings": "^7.17.12", - "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.18.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-private-methods": "^7.17.12", - "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/compat-data": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-async-generator-functions": "^7.18.6", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.6", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-import-assertions": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1610,43 +1615,43 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.17.12", - "@babel/plugin-transform-async-to-generator": "^7.17.12", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.17.12", - "@babel/plugin-transform-classes": "^7.17.12", - "@babel/plugin-transform-computed-properties": "^7.17.12", - "@babel/plugin-transform-destructuring": "^7.18.0", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.17.12", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.18.1", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.17.12", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.2", - "@babel/plugin-transform-modules-systemjs": "^7.18.0", - "@babel/plugin-transform-modules-umd": "^7.18.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", - "@babel/plugin-transform-new-target": "^7.17.12", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.17.12", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.18.0", - "@babel/plugin-transform-reserved-words": "^7.17.12", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.17.12", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.18.2", - "@babel/plugin-transform-typeof-symbol": "^7.17.12", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.6", + "@babel/plugin-transform-classes": "^7.18.6", + "@babel/plugin-transform-computed-properties": "^7.18.6", + "@babel/plugin-transform-destructuring": "^7.18.6", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.6", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.6", + "@babel/plugin-transform-function-name": "^7.18.6", + "@babel/plugin-transform-literals": "^7.18.6", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.6", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.6", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.6", + "@babel/plugin-transform-typeof-symbol": "^7.18.6", + "@babel/plugin-transform-unicode-escapes": "^7.18.6", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.2", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", + "@babel/types": "^7.18.6", + "babel-plugin-polyfill-corejs2": "^0.3.1", + "babel-plugin-polyfill-corejs3": "^0.5.2", + "babel-plugin-polyfill-regenerator": "^0.3.1", "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, @@ -11542,9 +11547,9 @@ } }, "node_modules/regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", "dev": true, "dependencies": { "regenerate": "^1.4.2", @@ -11579,7 +11584,7 @@ "node_modules/regjsparser/node_modules/jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true, "bin": { "jsesc": "bin/jsesc" @@ -14089,22 +14094,22 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", - "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz", - "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", + "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", "dev": true, "requires": { - "@babel/helper-explode-assignable-expression": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helper-compilation-targets": { @@ -14120,28 +14125,28 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz", - "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", + "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-member-expression-to-functions": "^7.17.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz", - "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", + "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "regexpu-core": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" } }, "@babel/helper-define-polyfill-provider": { @@ -14167,12 +14172,12 @@ "dev": true }, "@babel/helper-explode-assignable-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz", - "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-function-name": { @@ -14195,12 +14200,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.17.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz", - "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", + "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", "dev": true, "requires": { - "@babel/types": "^7.17.0" + "@babel/types": "^7.18.6" } }, "@babel/helper-module-imports": { @@ -14229,42 +14234,43 @@ } }, "@babel/helper-optimise-call-expression": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz", - "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, "requires": { - "@babel/types": "^7.16.7" + "@babel/types": "^7.18.6" } }, "@babel/helper-plugin-utils": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz", - "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz", - "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", + "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-wrap-function": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-wrap-function": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helper-replace-supers": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.16.7.tgz", - "integrity": "sha512-y9vsWilTNaVnVh6xiJfABzsNpgDPKev9HnAgz6Gb1p6UUwf9NepdlsV7VXGCftJM+jqD5f7JIEubcpLjZj5dBw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", + "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-member-expression-to-functions": "^7.16.7", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/traverse": "^7.16.7", - "@babel/types": "^7.16.7" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helper-simple-access": { @@ -14277,12 +14283,12 @@ } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.16.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz", - "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", + "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", "dev": true, "requires": { - "@babel/types": "^7.16.0" + "@babel/types": "^7.18.6" } }, "@babel/helper-split-export-declaration": { @@ -14307,15 +14313,15 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.16.8", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz", - "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", + "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.16.7", - "@babel/template": "^7.16.7", - "@babel/traverse": "^7.16.8", - "@babel/types": "^7.16.8" + "@babel/helper-function-name": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/helpers": { @@ -14347,181 +14353,182 @@ "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz", - "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz", - "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", + "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", - "@babel/plugin-proposal-optional-chaining": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.6" } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz", - "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", + "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz", - "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-class-static-block": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz", - "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz", - "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz", - "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", + "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz", - "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz", - "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", + "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz", - "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz", - "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz", - "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", + "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.17.10", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/compat-data": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.17.12" + "@babel/plugin-transform-parameters": "^7.18.6" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz", - "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz", - "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", + "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz", - "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "requires": { - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-proposal-private-property-in-object": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz", - "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-create-class-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz", - "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-async-generators": { @@ -14570,12 +14577,12 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz", - "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", + "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-json-strings": { @@ -14669,235 +14676,235 @@ } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz", - "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz", - "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", + "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", "dev": true, "requires": { - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-remap-async-to-generator": "^7.16.8" + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-remap-async-to-generator": "^7.18.6" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz", - "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz", - "integrity": "sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", + "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-classes": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz", - "integrity": "sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz", + "integrity": "sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-environment-visitor": "^7.16.7", - "@babel/helper-function-name": "^7.17.9", - "@babel/helper-optimise-call-expression": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-replace-supers": "^7.16.7", - "@babel/helper-split-export-declaration": "^7.16.7", + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz", - "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", + "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz", - "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", + "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz", - "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz", - "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", + "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz", - "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", "dev": true, "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-for-of": { - "version": "7.18.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz", - "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz", + "integrity": "sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-function-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz", - "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", + "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.16.7", - "@babel/helper-function-name": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-literals": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz", - "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", + "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz", - "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz", - "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz", - "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-simple-access": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz", - "integrity": "sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", + "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", "dev": true, "requires": { - "@babel/helper-hoist-variables": "^7.16.7", - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-identifier": "^7.16.7", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-umd": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz", - "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.0", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz", - "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", + "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.17.12", - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-new-target": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz", - "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-object-super": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz", - "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7", - "@babel/helper-replace-supers": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" } }, "@babel/plugin-transform-parameters": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz", - "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz", + "integrity": "sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-property-literals": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz", - "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-display-name": { @@ -14942,122 +14949,122 @@ } }, "@babel/plugin-transform-regenerator": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz", - "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", + "@babel/helper-plugin-utils": "^7.18.6", "regenerator-transform": "^0.15.0" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz", - "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz", - "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-spread": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz", - "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", + "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-skip-transparent-expression-wrappers": "^7.16.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz", - "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz", - "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", + "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz", - "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", + "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz", - "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", + "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz", - "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/preset-env": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz", - "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", + "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", "dev": true, "requires": { - "@babel/compat-data": "^7.17.10", - "@babel/helper-compilation-targets": "^7.18.2", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-async-generator-functions": "^7.17.12", - "@babel/plugin-proposal-class-properties": "^7.17.12", - "@babel/plugin-proposal-class-static-block": "^7.18.0", - "@babel/plugin-proposal-dynamic-import": "^7.16.7", - "@babel/plugin-proposal-export-namespace-from": "^7.17.12", - "@babel/plugin-proposal-json-strings": "^7.17.12", - "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12", - "@babel/plugin-proposal-numeric-separator": "^7.16.7", - "@babel/plugin-proposal-object-rest-spread": "^7.18.0", - "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", - "@babel/plugin-proposal-optional-chaining": "^7.17.12", - "@babel/plugin-proposal-private-methods": "^7.17.12", - "@babel/plugin-proposal-private-property-in-object": "^7.17.12", - "@babel/plugin-proposal-unicode-property-regex": "^7.17.12", + "@babel/compat-data": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-async-generator-functions": "^7.18.6", + "@babel/plugin-proposal-class-properties": "^7.18.6", + "@babel/plugin-proposal-class-static-block": "^7.18.6", + "@babel/plugin-proposal-dynamic-import": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.6", + "@babel/plugin-proposal-json-strings": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", + "@babel/plugin-proposal-numeric-separator": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.6", + "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-private-methods": "^7.18.6", + "@babel/plugin-proposal-private-property-in-object": "^7.18.6", + "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.17.12", + "@babel/plugin-syntax-import-assertions": "^7.18.6", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -15067,43 +15074,43 @@ "@babel/plugin-syntax-optional-chaining": "^7.8.3", "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.17.12", - "@babel/plugin-transform-async-to-generator": "^7.17.12", - "@babel/plugin-transform-block-scoped-functions": "^7.16.7", - "@babel/plugin-transform-block-scoping": "^7.17.12", - "@babel/plugin-transform-classes": "^7.17.12", - "@babel/plugin-transform-computed-properties": "^7.17.12", - "@babel/plugin-transform-destructuring": "^7.18.0", - "@babel/plugin-transform-dotall-regex": "^7.16.7", - "@babel/plugin-transform-duplicate-keys": "^7.17.12", - "@babel/plugin-transform-exponentiation-operator": "^7.16.7", - "@babel/plugin-transform-for-of": "^7.18.1", - "@babel/plugin-transform-function-name": "^7.16.7", - "@babel/plugin-transform-literals": "^7.17.12", - "@babel/plugin-transform-member-expression-literals": "^7.16.7", - "@babel/plugin-transform-modules-amd": "^7.18.0", - "@babel/plugin-transform-modules-commonjs": "^7.18.2", - "@babel/plugin-transform-modules-systemjs": "^7.18.0", - "@babel/plugin-transform-modules-umd": "^7.18.0", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12", - "@babel/plugin-transform-new-target": "^7.17.12", - "@babel/plugin-transform-object-super": "^7.16.7", - "@babel/plugin-transform-parameters": "^7.17.12", - "@babel/plugin-transform-property-literals": "^7.16.7", - "@babel/plugin-transform-regenerator": "^7.18.0", - "@babel/plugin-transform-reserved-words": "^7.17.12", - "@babel/plugin-transform-shorthand-properties": "^7.16.7", - "@babel/plugin-transform-spread": "^7.17.12", - "@babel/plugin-transform-sticky-regex": "^7.16.7", - "@babel/plugin-transform-template-literals": "^7.18.2", - "@babel/plugin-transform-typeof-symbol": "^7.17.12", - "@babel/plugin-transform-unicode-escapes": "^7.16.7", - "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/plugin-transform-arrow-functions": "^7.18.6", + "@babel/plugin-transform-async-to-generator": "^7.18.6", + "@babel/plugin-transform-block-scoped-functions": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.6", + "@babel/plugin-transform-classes": "^7.18.6", + "@babel/plugin-transform-computed-properties": "^7.18.6", + "@babel/plugin-transform-destructuring": "^7.18.6", + "@babel/plugin-transform-dotall-regex": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.6", + "@babel/plugin-transform-exponentiation-operator": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.6", + "@babel/plugin-transform-function-name": "^7.18.6", + "@babel/plugin-transform-literals": "^7.18.6", + "@babel/plugin-transform-member-expression-literals": "^7.18.6", + "@babel/plugin-transform-modules-amd": "^7.18.6", + "@babel/plugin-transform-modules-commonjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.6", + "@babel/plugin-transform-modules-umd": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-new-target": "^7.18.6", + "@babel/plugin-transform-object-super": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.6", + "@babel/plugin-transform-property-literals": "^7.18.6", + "@babel/plugin-transform-regenerator": "^7.18.6", + "@babel/plugin-transform-reserved-words": "^7.18.6", + "@babel/plugin-transform-shorthand-properties": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.6", + "@babel/plugin-transform-sticky-regex": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.6", + "@babel/plugin-transform-typeof-symbol": "^7.18.6", + "@babel/plugin-transform-unicode-escapes": "^7.18.6", + "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.2", - "babel-plugin-polyfill-corejs2": "^0.3.0", - "babel-plugin-polyfill-corejs3": "^0.5.0", - "babel-plugin-polyfill-regenerator": "^0.3.0", + "@babel/types": "^7.18.6", + "babel-plugin-polyfill-corejs2": "^0.3.1", + "babel-plugin-polyfill-corejs3": "^0.5.2", + "babel-plugin-polyfill-regenerator": "^0.3.1", "core-js-compat": "^3.22.1", "semver": "^6.3.0" } @@ -22690,9 +22697,9 @@ "dev": true }, "regexpu-core": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz", - "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", "dev": true, "requires": { "regenerate": "^1.4.2", @@ -22721,7 +22728,7 @@ "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", "dev": true } } diff --git a/package.json b/package.json index a077c5c7..2dda7601 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ }, "devDependencies": { "@babel/core": "^7.18.6", - "@babel/preset-env": "^7.18.2", + "@babel/preset-env": "^7.18.6", "@babel/preset-react": "^7.17.12", "assert": "^2.0.0", "babel-loader": "^8.2.5", From 0ca1df24edab9a35493954fe91cd38b125033b84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Jun 2022 20:39:44 +0530 Subject: [PATCH 067/717] Bump @babel/preset-react from 7.17.12 to 7.18.6 (#656) Bumps [@babel/preset-react](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-react) from 7.17.12 to 7.18.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.6/packages/babel-preset-react) --- updated-dependencies: - dependency-name: "@babel/preset-react" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 138 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 70 insertions(+), 70 deletions(-) diff --git a/package-lock.json b/package-lock.json index 973528c3..b81d4ad0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "devDependencies": { "@babel/core": "^7.18.6", "@babel/preset-env": "^7.18.6", - "@babel/preset-react": "^7.17.12", + "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", "babel-loader": "^8.2.5", "browserify-fs": "^1.0.0", @@ -884,12 +884,12 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1371,12 +1371,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1386,16 +1386,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", - "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", + "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-jsx": "^7.17.12", - "@babel/types": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1405,12 +1405,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1420,13 +1420,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -1679,17 +1679,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", - "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.17.12", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" }, "engines": { "node": ">=6.9.0" @@ -14595,12 +14595,12 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz", - "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -14908,44 +14908,44 @@ } }, "@babel/plugin-transform-react-display-name": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", - "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", + "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz", - "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", + "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-module-imports": "^7.16.7", - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/plugin-syntax-jsx": "^7.17.12", - "@babel/types": "^7.17.12" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.18.6" } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", - "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.7" + "@babel/plugin-transform-react-jsx": "^7.18.6" } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", - "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", + "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.7", - "@babel/helper-plugin-utils": "^7.16.7" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-regenerator": { @@ -15129,17 +15129,17 @@ } }, "@babel/preset-react": { - "version": "7.17.12", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz", - "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", + "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.17.12", - "@babel/helper-validator-option": "^7.16.7", - "@babel/plugin-transform-react-display-name": "^7.16.7", - "@babel/plugin-transform-react-jsx": "^7.17.12", - "@babel/plugin-transform-react-jsx-development": "^7.16.7", - "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "@babel/plugin-transform-react-display-name": "^7.18.6", + "@babel/plugin-transform-react-jsx": "^7.18.6", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-pure-annotations": "^7.18.6" } }, "@babel/runtime": { diff --git a/package.json b/package.json index 2dda7601..10c6c109 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "devDependencies": { "@babel/core": "^7.18.6", "@babel/preset-env": "^7.18.6", - "@babel/preset-react": "^7.17.12", + "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", "babel-loader": "^8.2.5", "browserify-fs": "^1.0.0", From 06a4e0c93be98244989aac08fcbf7806e448d239 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Wed, 29 Jun 2022 14:49:43 +0200 Subject: [PATCH 068/717] Add emoji name fallback (#658) --- src/app/organisms/emoji-board/emoji.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/organisms/emoji-board/emoji.js b/src/app/organisms/emoji-board/emoji.js index 4f76f7c6..3cbd0b88 100644 --- a/src/app/organisms/emoji-board/emoji.js +++ b/src/app/organisms/emoji-board/emoji.js @@ -1,5 +1,6 @@ import emojisData from 'emojibase-data/en/compact.json'; -import shortcodes from 'emojibase-data/en/shortcodes/joypixels.json'; +import joypixels from 'emojibase-data/en/shortcodes/joypixels.json'; +import emojibase from 'emojibase-data/en/shortcodes/emojibase.json'; const emojiGroups = [{ name: 'Smileys & people', @@ -52,7 +53,7 @@ function addToGroup(emoji) { const emojis = []; emojisData.forEach((emoji) => { - const myShortCodes = shortcodes[emoji.hexcode]; + const myShortCodes = joypixels[emoji.hexcode] || emojibase[emoji.hexcode]; if (!myShortCodes) return; const em = { ...emoji, From a6f21b6606846a92df8d539d0500f87a5664939f Mon Sep 17 00:00:00 2001 From: Chuang Zhu Date: Mon, 4 Jul 2022 22:20:11 +0800 Subject: [PATCH 069/717] Fix parsing encoded matrix.to URL (#660) From https://spec.matrix.org/v1.3/appendices/#matrixto-navigation: The components of the matrix.to URI ( and ) are to be percent-encoded as per RFC 3986. Historically, clients have not produced URIs which are fully encoded. Clients should try to interpret these cases to the best of their ability. For example, an unencoded room alias should still work within the client if possible --- src/util/sanitize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/util/sanitize.js b/src/util/sanitize.js index 3b230523..5351a1a0 100644 --- a/src/util/sanitize.js +++ b/src/util/sanitize.js @@ -44,7 +44,7 @@ function transformSpanTag(tagName, attribs) { } function transformATag(tagName, attribs) { - const userLink = attribs.href.match(/^https?:\/\/matrix.to\/#\/(@.+:.+)/); + const userLink = decodeURIComponent(attribs.href).match(/^https?:\/\/matrix.to\/#\/(@.+:.+)/); if (userLink !== null) { // convert user link to pill const userId = userLink[1]; From 68da1d0551d814d2f48c2da8ce46a8e107ff4a64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Jul 2022 10:06:53 +0530 Subject: [PATCH 070/717] Bump eslint from 8.18.0 to 8.19.0 (#663) Bumps [eslint](https://github.com/eslint/eslint) from 8.18.0 to 8.19.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.18.0...v8.19.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b81d4ad0..b164cee1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -55,7 +55,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.18.0", + "eslint": "^8.19.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.0", @@ -5582,9 +5582,9 @@ } }, "node_modules/eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", - "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", + "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -18281,9 +18281,9 @@ "dev": true }, "eslint": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", - "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", + "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", diff --git a/package.json b/package.json index 10c6c109..8000b113 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.18.0", + "eslint": "^8.19.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.0", From 7decbb6eefb8034ad2bf8b463fb8bd45b78a70f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Jul 2022 10:08:25 +0530 Subject: [PATCH 071/717] Bump webpack-dev-server from 4.9.2 to 4.9.3 (#662) Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.9.2 to 4.9.3. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.9.2...v4.9.3) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 34 +++++++++++++++++++--------------- package.json | 2 +- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index b164cee1..f08c4d3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -75,7 +75,7 @@ "util": "^0.12.4", "webpack": "^5.73.0", "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.9.2", + "webpack-dev-server": "^4.9.3", "webpack-merge": "^5.7.3" }, "engines": { @@ -4333,9 +4333,9 @@ "dev": true }, "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, "engines": { "node": ">=0.8" @@ -13662,9 +13662,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", - "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", + "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -13679,7 +13679,7 @@ "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", + "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", @@ -13703,6 +13703,10 @@ "engines": { "node": ">= 12.13.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, "peerDependencies": { "webpack": "^4.37.0 || ^5.0.0" }, @@ -17334,9 +17338,9 @@ "dev": true }, "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", + "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true }, "console-control-strings": { @@ -24327,9 +24331,9 @@ } }, "webpack-dev-server": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.2.tgz", - "integrity": "sha512-H95Ns95dP24ZsEzO6G9iT+PNw4Q7ltll1GfJHV4fKphuHWgKFzGHWi4alTlTnpk1SPPk41X+l2RB7rLfIhnB9Q==", + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.3.tgz", + "integrity": "sha512-3qp/eoboZG5/6QgiZ3llN8TUzkSpYg1Ko9khWX1h40MIEUNS2mDoIa8aXsPfskER+GbTvs/IJZ1QTBBhhuetSw==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -24344,7 +24348,7 @@ "chokidar": "^3.5.3", "colorette": "^2.0.10", "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", + "connect-history-api-fallback": "^2.0.0", "default-gateway": "^6.0.3", "express": "^4.17.3", "graceful-fs": "^4.2.6", diff --git a/package.json b/package.json index 8000b113..b92bdf39 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ "util": "^0.12.4", "webpack": "^5.73.0", "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.9.2", + "webpack-dev-server": "^4.9.3", "webpack-merge": "^5.7.3" } } From 47e6527b0e3a280cb5529d8a1921d184c4ef284e Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Fri, 8 Jul 2022 20:24:35 +0530 Subject: [PATCH 072/717] Don't enable e2ee from profileViewer for bridge users (#666) --- src/app/organisms/invite-user/InviteUser.jsx | 14 +------------- src/app/organisms/profile-viewer/ProfileViewer.jsx | 4 ++-- src/util/matrixUtil.js | 13 +++++++++++++ 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/app/organisms/invite-user/InviteUser.jsx b/src/app/organisms/invite-user/InviteUser.jsx index d0a8d9e1..75195102 100644 --- a/src/app/organisms/invite-user/InviteUser.jsx +++ b/src/app/organisms/invite-user/InviteUser.jsx @@ -6,7 +6,7 @@ import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; import * as roomActions from '../../../client/action/room'; import { selectRoom } from '../../../client/action/navigation'; -import { hasDMWith } from '../../../util/matrixUtil'; +import { hasDMWith, hasDevices } from '../../../util/matrixUtil'; import Text from '../../atoms/text/Text'; import Button from '../../atoms/button/Button'; @@ -103,18 +103,6 @@ function InviteUser({ updateIsSearching(false); } - async function hasDevices(userId) { - try { - const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]); - return Object.values(usersDeviceMap).every((userDevices) => - Object.keys(userDevices).length > 0, - ); - } catch (e) { - console.error("Error determining if it's possible to encrypt to all users: ", e); - return false; - } - } - async function createDM(userId) { if (mx.getUserId() === userId) return; const dmRoomId = hasDMWith(userId); diff --git a/src/app/organisms/profile-viewer/ProfileViewer.jsx b/src/app/organisms/profile-viewer/ProfileViewer.jsx index d74629f2..26e39682 100644 --- a/src/app/organisms/profile-viewer/ProfileViewer.jsx +++ b/src/app/organisms/profile-viewer/ProfileViewer.jsx @@ -11,7 +11,7 @@ import { selectRoom, openReusableContextMenu } from '../../../client/action/navi import * as roomActions from '../../../client/action/room'; import { - getUsername, getUsernameOfRoomMember, getPowerLabel, hasDMWith + getUsername, getUsernameOfRoomMember, getPowerLabel, hasDMWith, hasDevices } from '../../../util/matrixUtil'; import { getEventCords } from '../../../util/common'; import colorMXID from '../../../util/colorMXID'; @@ -201,7 +201,7 @@ function ProfileFooter({ roomId, userId, onRequestClose }) { // Create new DM try { setIsCreatingDM(true); - await roomActions.createDM(userId); + await roomActions.createDM(userId, await hasDevices(userId)); } catch { if (isMountedRef.current === false) return; setIsCreatingDM(false); diff --git a/src/util/matrixUtil.js b/src/util/matrixUtil.js index 16be1175..fb97d850 100644 --- a/src/util/matrixUtil.js +++ b/src/util/matrixUtil.js @@ -199,3 +199,16 @@ export function getSSKeyInfo(key) { return undefined; } } + +export async function hasDevices(userId) { + const mx = initMatrix.matrixClient; + try { + const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]); + return Object.values(usersDeviceMap).every((userDevices) => + Object.keys(userDevices).length > 0, + ); + } catch (e) { + console.error("Error determining if it's possible to encrypt to all users: ", e); + return false; + } +} \ No newline at end of file From ca2627d3cf98e62759bd972b3fd3bc6970b7b365 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Fri, 8 Jul 2022 20:29:07 +0530 Subject: [PATCH 073/717] Bump linkifyjs 2.1.9 to 4.0.0-beta.5 (#665) --- package-lock.json | 45 ++++++++++++++++++++---------------------- package.json | 3 ++- src/util/twemojify.jsx | 2 +- 3 files changed, 24 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index f08c4d3e..7bb70f62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,8 @@ "formik": "^2.2.9", "html-react-parser": "^2.0.0", "katex": "^0.15.6", - "linkifyjs": "^2.1.9", + "linkify-html": "^4.0.0-beta.5", + "linkifyjs": "^4.0.0-beta.5", "matrix-js-sdk": "^18.1.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", @@ -8290,12 +8291,6 @@ "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==", "dev": true }, - "node_modules/jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", - "peer": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8719,16 +8714,19 @@ "node": ">= 4.0.0" } }, - "node_modules/linkifyjs": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-2.1.9.tgz", - "integrity": "sha512-74ivurkK6WHvHFozVaGtQWV38FzBwSTGNmJolEgFp7QgR2bl6ArUWlvT4GcHKbPe1z3nWYi+VUdDZk16zDOVug==", + "node_modules/linkify-html": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0-beta.5.tgz", + "integrity": "sha512-7upWBgItubM1yQhO1MozvSzl2bCWModOgcc1Wd7kPpndlbR1JxmqH/N0UzmdvX6g0PX0ftnCQdYV4RZHLP9D5g==", "peerDependencies": { - "jquery": ">= 1.11.0", - "react": ">= 0.14.0", - "react-dom": ">= 0.14.0" + "linkifyjs": "^4.0.0-beta.1" } }, + "node_modules/linkifyjs": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0-beta.5.tgz", + "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" + }, "node_modules/load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", @@ -20325,12 +20323,6 @@ "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==", "dev": true }, - "jquery": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", - "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", - "peer": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -20695,12 +20687,17 @@ "computed-style": "~0.1.3" } }, - "linkifyjs": { - "version": "2.1.9", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-2.1.9.tgz", - "integrity": "sha512-74ivurkK6WHvHFozVaGtQWV38FzBwSTGNmJolEgFp7QgR2bl6ArUWlvT4GcHKbPe1z3nWYi+VUdDZk16zDOVug==", + "linkify-html": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0-beta.5.tgz", + "integrity": "sha512-7upWBgItubM1yQhO1MozvSzl2bCWModOgcc1Wd7kPpndlbR1JxmqH/N0UzmdvX6g0PX0ftnCQdYV4RZHLP9D5g==", "requires": {} }, + "linkifyjs": { + "version": "4.0.0-beta.5", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0-beta.5.tgz", + "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" + }, "load-bmfont": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", diff --git a/package.json b/package.json index b92bdf39..ad1d799f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "formik": "^2.2.9", "html-react-parser": "^2.0.0", "katex": "^0.15.6", - "linkifyjs": "^2.1.9", + "linkify-html": "^4.0.0-beta.5", + "linkifyjs": "^4.0.0-beta.5", "matrix-js-sdk": "^18.1.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", diff --git a/src/util/twemojify.jsx b/src/util/twemojify.jsx index aed8b09d..0a4fede7 100644 --- a/src/util/twemojify.jsx +++ b/src/util/twemojify.jsx @@ -1,7 +1,7 @@ /* eslint-disable import/prefer-default-export */ import React, { lazy, Suspense } from 'react'; -import linkifyHtml from 'linkifyjs/html'; +import linkifyHtml from 'linkify-html'; import parse from 'html-react-parser'; import twemoji from 'twemoji'; import { sanitizeText } from './sanitize'; From c9df0be874c70537511a9f9d358871cf23fdebef Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Fri, 8 Jul 2022 21:07:14 +0530 Subject: [PATCH 074/717] Fix captcha loop issue in registration form (#664) --- src/app/templates/auth/Auth.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/app/templates/auth/Auth.jsx b/src/app/templates/auth/Auth.jsx index 1f76476d..f7998fe3 100644 --- a/src/app/templates/auth/Auth.jsx +++ b/src/app/templates/auth/Auth.jsx @@ -97,7 +97,7 @@ function Homeserver({ onChange }) { if (!hsList?.length > 0 || selectedHs < 0 || selectedHs >= hsList?.length) { throw new Error(); } - setHs({ selected: hsList[selectedHs], list: hsList, allowCustom: allowCustom }); + setHs({ selected: hsList[selectedHs], list: hsList, allowCustom }); } catch { setHs({ selected: 'matrix.org', list: ['matrix.org'], allowCustom: true }); } @@ -114,8 +114,14 @@ function Homeserver({ onChange }) { return ( <>
- + ( @@ -319,6 +325,7 @@ function Register({ registerInfo, loginFlow, baseUrl }) { if (!isAvail) { actions.setErrors({ username: 'Username is already taken' }); actions.setSubmitting(false); + return; } if (isEmail && values.email.length > 0) { const result = await auth.verifyEmail(baseUrl, values.email, clientSecret, 1); From 3dda4d65404bbea97f60c0eec2b08340095318ef Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 9 Jul 2022 10:35:17 +0530 Subject: [PATCH 075/717] Add toggle to show password in auth page (#73) --- public/res/ic/outlined/eye-blind.svg | 4 ++++ public/res/ic/outlined/eye.svg | 15 +++------------ src/app/templates/auth/Auth.jsx | 20 +++++++++++++++++--- src/app/templates/auth/Auth.scss | 17 ++++++++++++++++- 4 files changed, 40 insertions(+), 16 deletions(-) create mode 100644 public/res/ic/outlined/eye-blind.svg diff --git a/public/res/ic/outlined/eye-blind.svg b/public/res/ic/outlined/eye-blind.svg new file mode 100644 index 00000000..fbc8e2ae --- /dev/null +++ b/public/res/ic/outlined/eye-blind.svg @@ -0,0 +1,4 @@ + + + + diff --git a/public/res/ic/outlined/eye.svg b/public/res/ic/outlined/eye.svg index fb31e4f4..1ce868bf 100644 --- a/public/res/ic/outlined/eye.svg +++ b/public/res/ic/outlined/eye.svg @@ -1,13 +1,4 @@ - - - - - - - - - - + + + diff --git a/src/app/templates/auth/Auth.jsx b/src/app/templates/auth/Auth.jsx index f7998fe3..0c27c00c 100644 --- a/src/app/templates/auth/Auth.jsx +++ b/src/app/templates/auth/Auth.jsx @@ -21,6 +21,8 @@ import Avatar from '../../atoms/avatar/Avatar'; import ContextMenu, { MenuItem, MenuHeader } from '../../atoms/context-menu/ContextMenu'; import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg'; +import EyeIC from '../../../../public/res/ic/outlined/eye.svg'; +import EyeBlindIC from '../../../../public/res/ic/outlined/eye-blind.svg'; import CinnySvg from '../../../../public/res/svg/cinny.svg'; import SSOButtons from '../../molecules/sso-buttons/SSOButtons'; @@ -162,6 +164,7 @@ Homeserver.propTypes = { function Login({ loginFlow, baseUrl }) { const [typeIndex, setTypeIndex] = useState(0); + const [passVisible, setPassVisible] = useState(false); const loginTypes = ['Username', 'Email']; const isPassword = loginFlow?.filter((flow) => flow.type === 'm.login.password')[0]; const ssoProviders = loginFlow?.filter((flow) => flow.type === 'm.login.sso')[0]; @@ -242,7 +245,10 @@ function Login({ loginFlow, baseUrl }) { {errors.username && {errors.username}} {typeIndex === 1 && } {errors.email && {errors.email}} - +
+ + setPassVisible(!passVisible)} src={passVisible ? EyeIC : EyeBlindIC} size="extra-small" /> +
{errors.password && {errors.password}} {errors.other && {errors.other}}
@@ -275,6 +281,8 @@ let sid; let clientSecret; function Register({ registerInfo, loginFlow, baseUrl }) { const [process, setProcess] = useState({}); + const [passVisible, setPassVisible] = useState(false); + const [cPassVisible, setCPassVisible] = useState(false); const formRef = useRef(); const ssoProviders = loginFlow?.filter((flow) => flow.type === 'm.login.sso')[0]; @@ -444,9 +452,15 @@ function Register({ registerInfo, loginFlow, baseUrl }) {
{errors.username && {errors.username}} - +
+ + setPassVisible(!passVisible)} src={passVisible ? EyeIC : EyeBlindIC} size="extra-small" /> +
{errors.password && {errors.password}} - +
+ + setCPassVisible(!cPassVisible)} src={cPassVisible ? EyeIC : EyeBlindIC} size="extra-small" /> +
{errors.confirmPassword && {errors.confirmPassword}} {isEmail && } {errors.email && {errors.email}} diff --git a/src/app/templates/auth/Auth.scss b/src/app/templates/auth/Auth.scss index 8249e163..956a2700 100644 --- a/src/app/templates/auth/Auth.scss +++ b/src/app/templates/auth/Auth.scss @@ -97,7 +97,8 @@ } .auth-form { - & > .input-container { + & > .input-container, + &__pass-eye-wrapper { margin: var(--sp-tight) 0 var(--sp-ultra-tight); } @@ -107,6 +108,20 @@ margin-top: calc(var(--sp-extra-loose) + var(--sp-tight)); } + &__pass-eye-wrapper { + position: relative; + & .ic-btn { + position: absolute; + @include dir.prop(right, 6px, unset); + @include dir.prop(left, unset, 6px ); + bottom: 6px; + border-radius: 4px; + } + & input { + @include dir.side(padding, var(--sp-normal), 46px); + } + } + &__btns { padding-top: var(--sp-loose); margin-bottom: var(--sp-extra-loose); From 4427b3b2915cb9214e690c64843e569026e8f650 Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 9 Jul 2022 13:58:57 +0530 Subject: [PATCH 076/717] Accept mxid on login (#187) --- config.json | 3 +- src/app/templates/auth/Auth.jsx | 52 ++++++++++++++++++--------------- src/util/matrixUtil.js | 9 +++--- 3 files changed, 33 insertions(+), 31 deletions(-) diff --git a/config.json b/config.json index c647dbb4..2aa67ddc 100644 --- a/config.json +++ b/config.json @@ -1,7 +1,6 @@ { - "defaultHomeserver": 4, + "defaultHomeserver": 3, "homeserverList": [ - "converser.eu", "envs.net", "halogen.city", "kde.org", diff --git a/src/app/templates/auth/Auth.jsx b/src/app/templates/auth/Auth.jsx index 0c27c00c..7c211736 100644 --- a/src/app/templates/auth/Auth.jsx +++ b/src/app/templates/auth/Auth.jsx @@ -56,11 +56,8 @@ function Homeserver({ onChange }) { const setupHsConfig = async (servername) => { setProcess({ isLoading: true, message: 'Looking for homeserver...' }); let baseUrl = null; - try { - baseUrl = await getBaseUrl(servername); - } catch (e) { - baseUrl = e.message; - } + baseUrl = await getBaseUrl(servername); + if (searchingHs !== servername) return; setProcess({ isLoading: true, message: `Connecting to ${baseUrl}...` }); const tempClient = auth.createTemporaryClient(baseUrl); @@ -175,31 +172,38 @@ function Login({ loginFlow, baseUrl }) { const validator = (values) => { const errors = {}; - if (typeIndex === 0 && values.username.length > 0 && values.username.indexOf(':') > -1) { - errors.username = 'Username must contain local-part only'; - } if (typeIndex === 1 && values.email.length > 0 && !isValidInput(values.email, EMAIL_REGEX)) { errors.email = BAD_EMAIL_ERROR; } return errors; }; - const submitter = (values, actions) => auth.login( - baseUrl, - typeIndex === 0 ? normalizeUsername(values.username) : undefined, - typeIndex === 1 ? values.email : undefined, - values.password, - ).then(() => { - actions.setSubmitting(true); - window.location.reload(); - }).catch((error) => { - let msg = error.message; - if (msg === 'Unknown message') msg = 'Please check your credentials'; - actions.setErrors({ - password: msg === 'Invalid password' ? msg : undefined, - other: msg !== 'Invalid password' ? msg : undefined, + const submitter = async (values, actions) => { + let userBaseUrl = baseUrl; + let { username } = values; + const mxIdMatch = username.match(/^@(.+):(.+\..+)$/); + if (typeIndex === 0 && mxIdMatch) { + [, username, userBaseUrl] = mxIdMatch; + userBaseUrl = await getBaseUrl(userBaseUrl); + } + + return auth.login( + userBaseUrl, + typeIndex === 0 ? normalizeUsername(username) : undefined, + typeIndex === 1 ? values.email : undefined, + values.password, + ).then(() => { + actions.setSubmitting(true); + window.location.reload(); + }).catch((error) => { + let msg = error.message; + if (msg === 'Unknown message') msg = 'Please check your credentials'; + actions.setErrors({ + password: msg === 'Invalid password' ? msg : undefined, + other: msg !== 'Invalid password' ? msg : undefined, + }); + actions.setSubmitting(false); }); - actions.setSubmitting(false); - }); + }; return ( <> diff --git a/src/util/matrixUtil.js b/src/util/matrixUtil.js index fb97d850..ef016eda 100644 --- a/src/util/matrixUtil.js +++ b/src/util/matrixUtil.js @@ -20,7 +20,7 @@ export async function getBaseUrl(servername) { if (baseUrl === undefined) throw new Error(); return baseUrl; } catch (e) { - throw new Error(`${protocol}${servername}`); + return `${protocol}${servername}`; } } @@ -204,11 +204,10 @@ export async function hasDevices(userId) { const mx = initMatrix.matrixClient; try { const usersDeviceMap = await mx.downloadKeys([userId, mx.getUserId()]); - return Object.values(usersDeviceMap).every((userDevices) => - Object.keys(userDevices).length > 0, - ); + return Object.values(usersDeviceMap) + .every((userDevices) => (Object.keys(userDevices).length > 0)); } catch (e) { console.error("Error determining if it's possible to encrypt to all users: ", e); return false; } -} \ No newline at end of file +} From 009966a5c7151a7e1941fee76341330e40afd91f Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 9 Jul 2022 16:32:42 +0530 Subject: [PATCH 077/717] Fix wrong power level in room permission --- src/app/molecules/room-permissions/RoomPermissions.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/molecules/room-permissions/RoomPermissions.jsx b/src/app/molecules/room-permissions/RoomPermissions.jsx index 989a9396..da8720cd 100644 --- a/src/app/molecules/room-permissions/RoomPermissions.jsx +++ b/src/app/molecules/room-permissions/RoomPermissions.jsx @@ -237,12 +237,12 @@ function RoomPermissions({ roomId }) { ? permissions[permInfo.parent]?.[permKey] : permissions[permKey]; - if (!permValue) permValue = permInfo.default; + if (permValue === undefined) permValue = permInfo.default; if (typeof permValue === 'number') { powerLevel = permValue; } else if (permKey === 'notifications') { - powerLevel = permValue.room || 50; + powerLevel = permValue.room ?? 50; } return ( Date: Sat, 9 Jul 2022 18:08:35 +0530 Subject: [PATCH 078/717] Follow system theme by default --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- src/app/organisms/settings/Settings.jsx | 34 ++++++++++--------- src/client/state/settings.js | 45 ++++++++++++++----------- src/index.jsx | 2 +- 4 files changed, 46 insertions(+), 37 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a8a04e76..1292f1d2 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,4 +1,4 @@ - + ### Description diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index 82b948ad..b0f45f41 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -57,23 +57,25 @@ function AppearanceSection() { )} content={Use light or dark mode based on the system settings.} /> - {!settings.useSystemTheme && ( - settings.setTheme(index)} - /> - )} - /> + { + if (settings.useSystemTheme) toggleSystemTheme(); + settings.setTheme(index); + updateState({}); + }} + /> )} + />
Room messages diff --git a/src/client/state/settings.js b/src/client/state/settings.js index 0f476ef8..32f55fcc 100644 --- a/src/client/state/settings.js +++ b/src/client/state/settings.js @@ -48,31 +48,43 @@ class Settings extends EventEmitter { return this.themes[this.themeIndex]; } - setTheme(themeIndex) { - const appBody = document.getElementById('appBody'); - - appBody.classList.remove('system-theme'); + _clearTheme() { + document.body.classList.remove('system-theme'); this.themes.forEach((themeName) => { if (themeName === '') return; - appBody.classList.remove(themeName); + document.body.classList.remove(themeName); }); - // If use system theme is enabled - // we will override current theme choice with system theme + } + + applyTheme() { + this._clearTheme(); if (this.useSystemTheme) { - appBody.classList.add('system-theme'); - } else if (this.themes[themeIndex] !== '') { - appBody.classList.add(this.themes[themeIndex]); + document.body.classList.add('system-theme'); + } else if (this.themes[this.themeIndex]) { + document.body.classList.add(this.themes[this.themeIndex]); } - setSettings('themeIndex', themeIndex); + } + + setTheme(themeIndex) { this.themeIndex = themeIndex; + setSettings('themeIndex', this.themeIndex); + this.applyTheme(); + } + + toggleUseSystemTheme() { + this.useSystemTheme = !this.useSystemTheme; + setSettings('useSystemTheme', this.useSystemTheme); + this.applyTheme(); + + this.emit(cons.events.settings.SYSTEM_THEME_TOGGLED, this.useSystemTheme); } getUseSystemTheme() { if (typeof this.useSystemTheme === 'boolean') return this.useSystemTheme; const settings = getSettings(); - if (settings === null) return false; - if (typeof settings.useSystemTheme === 'undefined') return false; + if (settings === null) return true; + if (typeof settings.useSystemTheme === 'undefined') return true; return settings.useSystemTheme; } @@ -138,12 +150,7 @@ class Settings extends EventEmitter { setter(action) { const actions = { [cons.actions.settings.TOGGLE_SYSTEM_THEME]: () => { - this.useSystemTheme = !this.useSystemTheme; - - setSettings('useSystemTheme', this.useSystemTheme); - this.setTheme(this.themeIndex); - - this.emit(cons.events.settings.SYSTEM_THEME_TOGGLED, this.useSystemTheme); + this.toggleUseSystemTheme(); }, [cons.actions.settings.TOGGLE_MARKDOWN]: () => { this.isMarkdown = !this.isMarkdown; diff --git a/src/index.jsx b/src/index.jsx index 69fff62f..55f8656b 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -7,7 +7,7 @@ import settings from './client/state/settings'; import App from './app/pages/App'; -settings.setTheme(settings.getThemeIndex()); +settings.applyTheme(); ReactDom.render( , From 1979646b4b370060f897c8dc737f443b7f993a75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 16 Jul 2022 17:11:48 +0530 Subject: [PATCH 079/717] Bump actions/setup-node from 3.3.0 to 3.4.1 (#687) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.3.0 to 3.4.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.3.0...v3.4.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index e57acd9e..cbf8a4f5 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.3.0 + uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 - name: Build app diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 8def7fa0..89d526b6 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.3.0 + uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 - name: Build and deploy to Netlify diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index d6a3e0c7..ee80ea85 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.3.0 + uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 - name: Build @@ -50,7 +50,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.3.0 + uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 - name: Build and deploy to Netlify From e6f395c6439712edb22eaaffb0b76f42ecac6772 Mon Sep 17 00:00:00 2001 From: James Date: Mon, 18 Jul 2022 17:33:11 +0100 Subject: [PATCH 080/717] Add support to play .mov files (#672) * update allowed mimetypes * fix .mov files failing to play in Chromium * add check for before passing to FileReader * add missing semi-colon --- src/app/molecules/media/Media.jsx | 10 +++++++++- src/client/state/RoomsInput.js | 7 ++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index 6fc38517..341dcb03 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -12,15 +12,19 @@ import DownloadSVG from '../../../../public/res/ic/outlined/download.svg'; import ExternalSVG from '../../../../public/res/ic/outlined/external.svg'; import PlaySVG from '../../../../public/res/ic/outlined/play.svg'; -// https://github.com/matrix-org/matrix-react-sdk/blob/a9e28db33058d1893d964ec96cd247ecc3d92fc3/src/utils/blobs.ts#L73 +// https://github.com/matrix-org/matrix-react-sdk/blob/cd15e08fc285da42134817cce50de8011809cd53/src/utils/blobs.ts#L73 const ALLOWED_BLOB_MIMETYPES = [ 'image/jpeg', 'image/gif', 'image/png', + 'image/apng', + 'image/webp', + 'image/avif', 'video/mp4', 'video/webm', 'video/ogg', + 'video/quicktime', 'audio/mp4', 'audio/webm', @@ -38,6 +42,10 @@ function getBlobSafeMimeType(mimetype) { if (!ALLOWED_BLOB_MIMETYPES.includes(mimetype)) { return 'application/octet-stream'; } + // Required for Chromium browsers + if (mimetype === 'video/quicktime') { + return 'video/mp4'; + } return mimetype; } diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index 4bbd3d88..882c7bc0 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -46,7 +46,12 @@ function loadVideo(videoFile) { reader.onerror = (e) => { reject(e); }; - reader.readAsDataURL(videoFile); + if (videoFile.type === 'video/quicktime') { + const quicktimeVideoFile = new File([videoFile], videoFile.name, { type: 'video/mp4' }); + reader.readAsDataURL(quicktimeVideoFile); + } else { + reader.readAsDataURL(videoFile); + } }); } function getVideoThumbnail(video, width, height, mimeType) { From 1211ca277b7fe1fde956176729ca1a349b317556 Mon Sep 17 00:00:00 2001 From: Dean Bassett Date: Mon, 18 Jul 2022 09:36:51 -0700 Subject: [PATCH 081/717] Support mark as read by ESC while in room input (#669) fixes #cinnyapp/cinny/668 --- src/client/event/hotkeys.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/client/event/hotkeys.js b/src/client/event/hotkeys.js index c1b2af1d..22170653 100644 --- a/src/client/event/hotkeys.js +++ b/src/client/event/hotkeys.js @@ -51,9 +51,6 @@ function listenKeyboard(event) { if (!event.ctrlKey && !event.altKey && !event.metaKey) { if (navigation.isRawModalVisible) return; - if (['input', 'textarea'].includes(document.activeElement.tagName.toLowerCase())) { - return; - } if (event.code === 'Escape') { if (navigation.isRoomSettings) { @@ -66,6 +63,10 @@ function listenKeyboard(event) { } } + if (['input', 'textarea'].includes(document.activeElement.tagName.toLowerCase())) { + return; + } + // focus the text field on most keypresses if (shouldFocusMessageField(event.code)) { // press any key to focus and type in message field From a46138c8b9f949547dc168ed996fc8630c0beb26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 17:51:13 +0530 Subject: [PATCH 082/717] Bump @babel/preset-env from 7.18.6 to 7.18.9 (#692) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.6 to 7.18.9. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 690 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 346 insertions(+), 346 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7bb70f62..afd0dbf2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ }, "devDependencies": { "@babel/core": "^7.18.6", - "@babel/preset-env": "^7.18.6", + "@babel/preset-env": "^7.18.9", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", "babel-loader": "^8.2.5", @@ -109,9 +109,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -148,13 +148,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.6.tgz", - "integrity": "sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", + "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.18.9", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, "engines": { @@ -187,12 +187,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.6", + "@babel/compat-data": "^7.18.8", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" @@ -261,9 +261,9 @@ } }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true, "engines": { "node": ">=6.9.0" @@ -282,13 +282,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "dev": true, "dependencies": { "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -307,12 +307,12 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -331,19 +331,19 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", - "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -362,9 +362,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -389,16 +389,16 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -417,12 +417,12 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", - "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -502,9 +502,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", + "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -529,14 +529,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", - "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -613,12 +613,12 @@ } }, "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", - "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" }, "engines": { @@ -645,12 +645,12 @@ } }, "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", - "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" }, "engines": { @@ -693,16 +693,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", - "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", + "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.6" + "@babel/plugin-transform-parameters": "^7.18.8" }, "engines": { "node": ">=6.9.0" @@ -728,13 +728,13 @@ } }, "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", - "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" }, "engines": { @@ -1049,12 +1049,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", - "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", + "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1064,17 +1064,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz", - "integrity": "sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", + "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, @@ -1086,12 +1086,12 @@ } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", - "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1101,12 +1101,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", - "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", + "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1132,12 +1132,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", - "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1163,9 +1163,9 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz", - "integrity": "sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" @@ -1178,14 +1178,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", - "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1195,12 +1195,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", - "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1260,14 +1260,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", - "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", + "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1342,9 +1342,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz", - "integrity": "sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" @@ -1483,13 +1483,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", - "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", + "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1514,12 +1514,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", - "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1529,12 +1529,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", - "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1575,29 +1575,29 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz", + "integrity": "sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", "@babel/plugin-proposal-async-generator-functions": "^7.18.6", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.18.6", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", @@ -1619,37 +1619,37 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.6", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", + "@babel/types": "^7.18.9", "babel-plugin-polyfill-corejs2": "^0.3.1", "babel-plugin-polyfill-corejs3": "^0.5.2", "babel-plugin-polyfill-regenerator": "^0.3.1", @@ -1749,19 +1749,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", - "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", + "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/parser": "^7.18.9", + "@babel/types": "^7.18.9", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1770,9 +1770,9 @@ } }, "node_modules/@babel/types": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.6.tgz", - "integrity": "sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", + "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", @@ -2351,12 +2351,12 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.0", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" }, @@ -2374,9 +2374,9 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true, "engines": { "node": ">=6.0.0" @@ -14056,9 +14056,9 @@ } }, "@babel/compat-data": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.6.tgz", - "integrity": "sha512-tzulrgDT0QD6U7BJ4TKVk2SDDg7wlP39P9yAx1RfLy7vP/7rsDRlWVfbWxElslu56+r7QOhB2NSDsabYYruoZQ==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", "dev": true }, "@babel/core": { @@ -14085,13 +14085,13 @@ } }, "@babel/generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.6.tgz", - "integrity": "sha512-AIwwoOS8axIC5MZbhNHRLKi3D+DMpvDf9XUcu3pIVAfOHFT45f4AoDAltRbHIQomCipkCZxrNkfpOEHhJz/VKw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", + "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", "dev": true, "requires": { - "@babel/types": "^7.18.6", - "@jridgewell/gen-mapping": "^0.3.0", + "@babel/types": "^7.18.9", + "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } }, @@ -14115,12 +14115,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", - "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", + "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.6", + "@babel/compat-data": "^7.18.8", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" @@ -14168,9 +14168,9 @@ } }, "@babel/helper-environment-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", - "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", "dev": true }, "@babel/helper-explode-assignable-expression": { @@ -14183,13 +14183,13 @@ } }, "@babel/helper-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", - "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", + "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", "dev": true, "requires": { "@babel/template": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" } }, "@babel/helper-hoist-variables": { @@ -14202,12 +14202,12 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", - "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", + "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" } }, "@babel/helper-module-imports": { @@ -14220,19 +14220,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.6.tgz", - "integrity": "sha512-L//phhB4al5uucwzlimruukHB3jRd5JGClwRMD/ROrVjXfLqovYnvQrK/JK36WYyVwGGO7OD3kMyVTjx+WVPhw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", + "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-optimise-call-expression": { @@ -14245,9 +14245,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", - "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", + "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -14263,16 +14263,16 @@ } }, "@babel/helper-replace-supers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", - "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", + "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-simple-access": { @@ -14285,12 +14285,12 @@ } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", - "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", + "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" } }, "@babel/helper-split-export-declaration": { @@ -14349,9 +14349,9 @@ } }, "@babel/parser": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.6.tgz", - "integrity": "sha512-uQVSa9jJUe/G/304lXspfWVpKpK4euFLgGiMQFOCpM/bgcAdeoHwi/OQz23O9GK2osz26ZiXRRV9aV+Yl1O8tw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", + "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -14364,14 +14364,14 @@ } }, "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", - "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", + "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", + "@babel/plugin-proposal-optional-chaining": "^7.18.9" } }, "@babel/plugin-proposal-async-generator-functions": { @@ -14418,12 +14418,12 @@ } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", - "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", + "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, @@ -14438,12 +14438,12 @@ } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", - "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", + "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, @@ -14468,16 +14468,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", - "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", + "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.6" + "@babel/plugin-transform-parameters": "^7.18.8" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -14491,13 +14491,13 @@ } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", - "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", + "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, @@ -14707,46 +14707,46 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", - "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", + "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-classes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.6.tgz", - "integrity": "sha512-XTg8XW/mKpzAF3actL554Jl/dOYoJtv3l8fxaEczpgz84IeeVf+T1u2CSvPHuZbt0w3JkIx4rdn/MRQI7mo0HQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", + "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", - "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", + "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", - "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", + "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-dotall-regex": { @@ -14760,12 +14760,12 @@ } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", - "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", + "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -14779,32 +14779,32 @@ } }, "@babel/plugin-transform-for-of": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.6.tgz", - "integrity": "sha512-WAjoMf4wIiSsy88KmG7tgj2nFdEK7E46tArVtcgED7Bkj6Fg/tG5SbvNIOKxbFS2VFgNh6+iaPswBeQZm4ox8w==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" } }, "@babel/plugin-transform-function-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", - "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", + "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", - "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", + "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-member-expression-literals": { @@ -14840,14 +14840,14 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", - "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", + "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } @@ -14892,9 +14892,9 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.6.tgz", - "integrity": "sha512-FjdqgMv37yVl/gwvzkcB+wfjRI8HQmc5EgOG9iGNvUY1ok+TjsoaMP7IqCDZBhkFcM5f3OPVMs6Dmp03C5k4/A==", + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.6" @@ -14979,13 +14979,13 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", - "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", + "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, "@babel/plugin-transform-sticky-regex": { @@ -14998,21 +14998,21 @@ } }, "@babel/plugin-transform-template-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", - "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", + "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", - "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", + "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-escapes": { @@ -15035,29 +15035,29 @@ } }, "@babel/preset-env": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.6.tgz", - "integrity": "sha512-WrthhuIIYKrEFAwttYzgRNQ5hULGmwTj+D6l7Zdfsv5M7IWV/OZbUfbeL++Qrzx1nVJwWROIFhCHRYQV4xbPNw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz", + "integrity": "sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/compat-data": "^7.18.8", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.6", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", "@babel/plugin-proposal-async-generator-functions": "^7.18.6", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.6", + "@babel/plugin-proposal-export-namespace-from": "^7.18.9", "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.6", + "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.6", + "@babel/plugin-proposal-object-rest-spread": "^7.18.9", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", "@babel/plugin-proposal-private-property-in-object": "^7.18.6", "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", @@ -15079,37 +15079,37 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.6", - "@babel/plugin-transform-classes": "^7.18.6", - "@babel/plugin-transform-computed-properties": "^7.18.6", - "@babel/plugin-transform-destructuring": "^7.18.6", + "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-computed-properties": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.9", "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.6", + "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.6", - "@babel/plugin-transform-function-name": "^7.18.6", - "@babel/plugin-transform-literals": "^7.18.6", + "@babel/plugin-transform-for-of": "^7.18.8", + "@babel/plugin-transform-function-name": "^7.18.9", + "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.6", + "@babel/plugin-transform-modules-systemjs": "^7.18.9", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.6", + "@babel/plugin-transform-parameters": "^7.18.8", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.6", + "@babel/plugin-transform-spread": "^7.18.9", "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.6", - "@babel/plugin-transform-typeof-symbol": "^7.18.6", + "@babel/plugin-transform-template-literals": "^7.18.9", + "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.6", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.6", + "@babel/types": "^7.18.9", "babel-plugin-polyfill-corejs2": "^0.3.1", "babel-plugin-polyfill-corejs3": "^0.5.2", "babel-plugin-polyfill-regenerator": "^0.3.1", @@ -15189,27 +15189,27 @@ } }, "@babel/traverse": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.6.tgz", - "integrity": "sha512-zS/OKyqmD7lslOtFqbscH6gMLFYOfG1YPqCKfAW5KrTeolKqvB8UelR49Fpr6y93kYkW2Ik00mT1LOGiAGvizw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", + "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/parser": "^7.18.9", + "@babel/types": "^7.18.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.6.tgz", - "integrity": "sha512-NdBNzPDwed30fZdDQtVR7ZgaO4UKjuaQFH9VArS+HMnurlOY0JWN+4ROlu/iapMFwjRQU4pOG4StZfDmulEwGA==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", + "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.18.6", @@ -15659,12 +15659,12 @@ } }, "@jridgewell/gen-mapping": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz", - "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.0", + "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", "@jridgewell/trace-mapping": "^0.3.9" } @@ -15676,9 +15676,9 @@ "dev": true }, "@jridgewell/set-array": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz", - "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, "@jridgewell/sourcemap-codec": { diff --git a/package.json b/package.json index ad1d799f..984b76c1 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "devDependencies": { "@babel/core": "^7.18.6", - "@babel/preset-env": "^7.18.6", + "@babel/preset-env": "^7.18.9", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", "babel-loader": "^8.2.5", From b6428197ac4297e25ffa744095a5a3043af68d63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 17:52:17 +0530 Subject: [PATCH 083/717] Bump eslint from 8.19.0 to 8.20.0 (#691) Bumps [eslint](https://github.com/eslint/eslint) from 8.19.0 to 8.20.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.19.0...v8.20.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index afd0dbf2..1f2c2c9b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.19.0", + "eslint": "^8.20.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.0", @@ -5583,9 +5583,9 @@ } }, "node_modules/eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -18283,9 +18283,9 @@ "dev": true }, "eslint": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.19.0.tgz", - "integrity": "sha512-SXOPj3x9VKvPe81TjjUJCYlV4oJjQw68Uek+AM0X4p+33dj2HY5bpTZOgnQHcG2eAm1mtCU9uNMnJi7exU/kYw==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", + "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", diff --git a/package.json b/package.json index 984b76c1..516159ea 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.19.0", + "eslint": "^8.20.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.0", From 88b79eb3a55fd082c366711fd6dc3441929d6a37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Jul 2022 17:56:48 +0530 Subject: [PATCH 084/717] Bump @babel/core from 7.18.6 to 7.18.9 (#690) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.6 to 7.18.9. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.9/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 62 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f2c2c9b..c561be2e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.18.9", "@babel/preset-env": "^7.18.9", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", @@ -118,21 +118,21 @@ } }, "node_modules/@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -474,14 +474,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", "dev": true, "dependencies": { "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -14062,21 +14062,21 @@ "dev": true }, "@babel/core": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.6.tgz", - "integrity": "sha512-cQbWBpxcbbs/IUredIPkHiAGULLV8iwgNRMFzvbhEXISp4f3rUUXE5+TIw6KwUWUR3DwyI6gmBRnmAtYaWehwQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", + "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.6", - "@babel/helper-compilation-targets": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helpers": "^7.18.6", - "@babel/parser": "^7.18.6", + "@babel/generator": "^7.18.9", + "@babel/helper-compilation-targets": "^7.18.9", + "@babel/helper-module-transforms": "^7.18.9", + "@babel/helpers": "^7.18.9", + "@babel/parser": "^7.18.9", "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6", + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14327,14 +14327,14 @@ } }, "@babel/helpers": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", - "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", + "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", "dev": true, "requires": { "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/highlight": { diff --git a/package.json b/package.json index 516159ea..0b42f30e 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.6", + "@babel/core": "^7.18.9", "@babel/preset-env": "^7.18.9", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", From bdb8bdf76c31bb60102453fa4c7c2cff57672fb8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Jul 2022 13:18:12 +0530 Subject: [PATCH 085/717] Bump cross-fetch from 3.1.4 to 3.1.5 (#512) Bumps [cross-fetch](https://github.com/lquixada/cross-fetch) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/lquixada/cross-fetch/releases) - [Commits](https://github.com/lquixada/cross-fetch/compare/v3.1.4...v3.1.5) --- updated-dependencies: - dependency-name: cross-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 80 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 66 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index c561be2e..5795aba4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4579,11 +4579,11 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "dependencies": { - "node-fetch": "2.6.1" + "node-fetch": "2.6.7" } }, "node_modules/cross-spawn": { @@ -9837,11 +9837,22 @@ "dev": true }, "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/node-forge": { @@ -13083,6 +13094,11 @@ "node": ">=0.8" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "node_modules/tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -13480,6 +13496,11 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, "node_modules/webpack": { "version": "5.73.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", @@ -13848,6 +13869,15 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -17525,11 +17555,11 @@ } }, "cross-fetch": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", - "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", "requires": { - "node-fetch": "2.6.1" + "node-fetch": "2.6.7" } }, "cross-spawn": { @@ -21459,9 +21489,12 @@ "dev": true }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "node-forge": { "version": "1.3.1", @@ -23873,6 +23906,11 @@ "punycode": "^2.1.1" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "tsconfig-paths": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", @@ -24193,6 +24231,11 @@ "minimalistic-assert": "^1.0.0" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, "webpack": { "version": "5.73.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", @@ -24444,6 +24487,15 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", From 78e12d5beeaad3b0f1b0f84846ec16bbf19df355 Mon Sep 17 00:00:00 2001 From: Ava Pek <1592386+exodrifter@users.noreply.github.com> Date: Mon, 25 Jul 2022 01:11:56 -0500 Subject: [PATCH 086/717] Add mark as read button to space options (#667) This allows users to mark all rooms in a space as read, matching similar features found in other popular chat applications. We opted to place the mark as read button at the top of the list instead of next to the add user button like in room options since we felt this will be the most-used button in the list. Fixes #645. Co-authored-by: Maple Co-authored-by: Maple --- src/app/molecules/space-options/SpaceOptions.jsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/molecules/space-options/SpaceOptions.jsx b/src/app/molecules/space-options/SpaceOptions.jsx index e6b78d4c..56fdfd3f 100644 --- a/src/app/molecules/space-options/SpaceOptions.jsx +++ b/src/app/molecules/space-options/SpaceOptions.jsx @@ -5,6 +5,7 @@ import { twemojify } from '../../../util/twemojify'; import initMatrix from '../../../client/initMatrix'; import { openSpaceSettings, openSpaceManage, openInviteUser } from '../../../client/action/navigation'; +import { markAsRead } from '../../../client/action/notifications'; import { leave } from '../../../client/action/room'; import { createSpaceShortcut, @@ -17,6 +18,7 @@ import { MenuHeader, MenuItem } from '../../atoms/context-menu/ContextMenu'; import CategoryIC from '../../../../public/res/ic/outlined/category.svg'; import CategoryFilledIC from '../../../../public/res/ic/filled/category.svg'; +import TickMarkIC from '../../../../public/res/ic/outlined/tick-mark.svg'; import AddUserIC from '../../../../public/res/ic/outlined/add-user.svg'; import SettingsIC from '../../../../public/res/ic/outlined/settings.svg'; import HashSearchIC from '../../../../public/res/ic/outlined/hash-search.svg'; @@ -28,11 +30,21 @@ import { confirmDialog } from '../confirm-dialog/ConfirmDialog'; function SpaceOptions({ roomId, afterOptionSelect }) { const mx = initMatrix.matrixClient; + const { roomList } = initMatrix; const room = mx.getRoom(roomId); const canInvite = room?.canInvite(mx.getUserId()); const isPinned = initMatrix.accountData.spaceShortcut.has(roomId); const isCategorized = initMatrix.accountData.categorizedSpaces.has(roomId); + const handleMarkAsRead = () => { + const spaceChildren = roomList.getCategorizedSpaces([roomId]); + spaceChildren?.forEach((childIds, spaceId) => { + childIds?.forEach((childId) => { + markAsRead(childId); + }) + }); + afterOptionSelect(); + }; const handleInviteClick = () => { openInviteUser(roomId); afterOptionSelect(); @@ -71,6 +83,7 @@ function SpaceOptions({ roomId, afterOptionSelect }) { return (
{twemojify(`Options for ${initMatrix.matrixClient.getRoom(roomId)?.name}`)} + Mark as read Date: Wed, 27 Jul 2022 14:03:41 +0530 Subject: [PATCH 087/717] Bump nginx from 1.23.0-alpine to 1.23.1-alpine (#694) Bumps nginx from 1.23.0-alpine to 1.23.1-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a1066da1..ea1b96f2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN npm run build ## App -FROM nginx:1.23.0-alpine +FROM nginx:1.23.1-alpine COPY --from=builder /src/dist /app From 48793f3a9501c83ce1d9f87fc46090ac82a9f264 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Jul 2022 14:04:59 +0530 Subject: [PATCH 088/717] Bump docker/build-push-action from 3.0.0 to 3.1.0 (#695) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 4daf0aae..5e4f2fc5 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Build Docker image - uses: docker/build-push-action@v3.0.0 + uses: docker/build-push-action@v3.1.0 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index ee80ea85..857f9363 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -86,7 +86,7 @@ jobs: with: images: ajbura/cinny - name: Build and push Docker image - uses: docker/build-push-action@v3.0.0 + uses: docker/build-push-action@v3.1.0 with: context: . platforms: linux/amd64,linux/arm64 From 9ba003b16d67a23c053e8f0dfa38fb12afa4caf5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:12:15 +0530 Subject: [PATCH 089/717] Bump @babel/preset-env from 7.18.9 to 7.18.10 (#707) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.9 to 7.18.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.10/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 429 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 239 insertions(+), 192 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5795aba4..24233246 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ }, "devDependencies": { "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", + "@babel/preset-env": "^7.18.10", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", "babel-loader": "^8.2.5", @@ -148,12 +148,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", - "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", "dev": true, "dependencies": { - "@babel/types": "^7.18.9", + "@babel/types": "^7.18.10", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -242,15 +242,13 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -371,15 +369,15 @@ } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", - "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-wrap-function": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -440,6 +438,15 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", @@ -459,15 +466,15 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", - "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", + "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/helper-function-name": "^7.18.9", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" @@ -502,9 +509,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -546,14 +553,14 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "dev": true, "dependencies": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, "engines": { @@ -1544,12 +1551,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", - "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -1575,9 +1582,9 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz", - "integrity": "sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "dev": true, "dependencies": { "@babel/compat-data": "^7.18.8", @@ -1586,7 +1593,7 @@ "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -1646,13 +1653,13 @@ "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.9", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "core-js-compat": "^3.22.1", "semver": "^6.3.0" }, @@ -1735,33 +1742,33 @@ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" }, "node_modules/@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", - "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", + "@babel/generator": "^7.18.10", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.9", - "@babel/types": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1770,11 +1777,12 @@ } }, "node_modules/@babel/types": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", - "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "dev": true, "dependencies": { + "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" }, @@ -3367,13 +3375,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", "semver": "^6.1.1" }, "peerDependencies": { @@ -3381,12 +3389,12 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/helper-define-polyfill-provider": "^0.3.2", "core-js-compat": "^3.21.0" }, "peerDependencies": { @@ -3394,12 +3402,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3755,9 +3763,9 @@ ] }, "node_modules/browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "funding": [ { @@ -3770,11 +3778,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" }, "bin": { "browserslist": "cli.js" @@ -3911,9 +3918,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001335", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz", - "integrity": "sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==", + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", "dev": true, "funding": [ { @@ -4497,12 +4504,12 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.4.tgz", - "integrity": "sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", + "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", "dev": true, "dependencies": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.3", "semver": "7.0.0" }, "funding": { @@ -5351,9 +5358,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.129", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz", - "integrity": "sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ==", + "version": "1.4.206", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", + "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", "dev": true }, "node_modules/elliptic": { @@ -8801,7 +8808,7 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "node_modules/lodash.defaultsdeep": { @@ -9865,9 +9872,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "node_modules/normalize-path": { @@ -13305,6 +13312,32 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -14115,12 +14148,12 @@ } }, "@babel/generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.9.tgz", - "integrity": "sha512-wt5Naw6lJrL1/SGkipMiFxJjtyczUWTP38deiP1PO60HsBjDeKk08CGC3S8iVuvf0FmTdgKwU1KIXzSKL1G0Ug==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.10.tgz", + "integrity": "sha512-0+sW7e3HjQbiHbj1NeU/vN8ornohYlacAfZIaXhdoGweQqgcNy69COVciYYqEXJ/v+9OBA7Frxm4CVAuNqKeNA==", "dev": true, "requires": { - "@babel/types": "^7.18.9", + "@babel/types": "^7.18.10", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" } @@ -14182,15 +14215,13 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", - "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", + "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", "dev": true, "requires": { - "@babel/helper-compilation-targets": "^7.13.0", - "@babel/helper-module-imports": "^7.12.13", - "@babel/helper-plugin-utils": "^7.13.0", - "@babel/traverse": "^7.13.0", + "@babel/helper-compilation-targets": "^7.17.7", + "@babel/helper-plugin-utils": "^7.16.7", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", "resolve": "^1.14.2", @@ -14281,15 +14312,15 @@ "dev": true }, "@babel/helper-remap-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", - "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", + "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-wrap-function": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-wrap-function": "^7.18.9", + "@babel/types": "^7.18.9" } }, "@babel/helper-replace-supers": { @@ -14332,6 +14363,12 @@ "@babel/types": "^7.18.6" } }, + "@babel/helper-string-parser": { + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", + "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "dev": true + }, "@babel/helper-validator-identifier": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", @@ -14345,15 +14382,15 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", - "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", + "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/helper-function-name": "^7.18.9", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/helpers": { @@ -14379,9 +14416,9 @@ } }, "@babel/parser": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.9.tgz", - "integrity": "sha512-9uJveS9eY9DJ0t64YbIBZICtJy8a5QrDEVdiLCG97fVLpDTpGX7t8mMSb6OWw6Lrnjqj4O8zwjELX3dhoMgiBg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.10.tgz", + "integrity": "sha512-TYk3OA0HKL6qNryUayb5UUEhM/rkOQozIBEA5ITXh5DWrSp0TlUQXMyZmnWxG/DizSWBeeQ0Zbc5z8UGaaqoeg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -14405,14 +14442,14 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.6.tgz", - "integrity": "sha512-WAz4R9bvozx4qwf74M+sfqPMKfSqwM0phxPTR6iJIi8robgzXwkEgmeJG1gEKhm6sDqT/U9aV3lfcqybIpev8w==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", + "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", "dev": true, "requires": { - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } }, @@ -15046,12 +15083,12 @@ } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", - "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", + "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.18.9" } }, "@babel/plugin-transform-unicode-regex": { @@ -15065,9 +15102,9 @@ } }, "@babel/preset-env": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.9.tgz", - "integrity": "sha512-75pt/q95cMIHWssYtyfjVlvI+QEZQThQbKvR9xH+F/Agtw/s4Wfc2V9Bwd/P39VtixB7oWxGdH4GteTTwYJWMg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", + "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", "dev": true, "requires": { "@babel/compat-data": "^7.18.8", @@ -15076,7 +15113,7 @@ "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.6", + "@babel/plugin-proposal-async-generator-functions": "^7.18.10", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -15136,13 +15173,13 @@ "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.6", + "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.9", - "babel-plugin-polyfill-corejs2": "^0.3.1", - "babel-plugin-polyfill-corejs3": "^0.5.2", - "babel-plugin-polyfill-regenerator": "^0.3.1", + "@babel/types": "^7.18.10", + "babel-plugin-polyfill-corejs2": "^0.3.2", + "babel-plugin-polyfill-corejs3": "^0.5.3", + "babel-plugin-polyfill-regenerator": "^0.4.0", "core-js-compat": "^3.22.1", "semver": "^6.3.0" } @@ -15208,40 +15245,41 @@ } }, "@babel/template": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", - "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", + "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10" } }, "@babel/traverse": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.9.tgz", - "integrity": "sha512-LcPAnujXGwBgv3/WHv01pHtb2tihcyW1XuL9wd7jqh1Z8AQkTd+QVjMrMijrln0T7ED3UXLIy36P9Ao7W75rYg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.10.tgz", + "integrity": "sha512-J7ycxg0/K9XCtLyHf0cz2DqDihonJeIo+z+HEdRe9YuT8TY4A66i+Ab2/xZCEW7Ro60bPCBBfqqboHSamoV3+g==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", + "@babel/generator": "^7.18.10", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.18.9", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.9", - "@babel/types": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/types": "^7.18.10", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.9.tgz", - "integrity": "sha512-WwMLAg2MvJmt/rKEVQBBhIVffMmnilX4oe0sRe7iPOHIGsqpruFHHdrfj4O1CMMtgMtCU4oPafZjDPCRgO57Wg==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.10.tgz", + "integrity": "sha512-MJvnbEiiNkpjo+LknnmRrqbY1GPUUggjv+wQVjetM/AONoupqRALB7I6jGqNUAZsKcRIEu2J6FRFvsczljjsaQ==", "dev": true, "requires": { + "@babel/helper-string-parser": "^7.18.10", "@babel/helper-validator-identifier": "^7.18.6", "to-fast-properties": "^2.0.0" } @@ -16570,33 +16608,33 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", - "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", + "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/compat-data": "^7.17.7", + "@babel/helper-define-polyfill-provider": "^0.3.2", "semver": "^6.1.1" } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", - "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", + "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1", + "@babel/helper-define-polyfill-provider": "^0.3.2", "core-js-compat": "^3.21.0" } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", - "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", + "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.1" + "@babel/helper-define-polyfill-provider": "^0.3.2" } }, "babel-polyfill": { @@ -16902,16 +16940,15 @@ } }, "browserslist": { - "version": "4.20.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz", - "integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==", + "version": "4.21.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", + "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001332", - "electron-to-chromium": "^1.4.118", - "escalade": "^3.1.1", - "node-releases": "^2.0.3", - "picocolors": "^1.0.0" + "caniuse-lite": "^1.0.30001370", + "electron-to-chromium": "^1.4.202", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.5" } }, "bs58": { @@ -17016,9 +17053,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001335", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz", - "integrity": "sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==", + "version": "1.0.30001373", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", + "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", "dev": true }, "caseless": { @@ -17481,12 +17518,12 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.22.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.4.tgz", - "integrity": "sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", + "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", "dev": true, "requires": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.3", "semver": "7.0.0" }, "dependencies": { @@ -18128,9 +18165,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.129", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz", - "integrity": "sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ==", + "version": "1.4.206", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", + "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", "dev": true }, "elliptic": { @@ -20792,7 +20829,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.defaultsdeep": { @@ -21503,9 +21540,9 @@ "dev": true }, "node-releases": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.4.tgz", - "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", "dev": true }, "normalize-path": { @@ -24067,6 +24104,16 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, + "update-browserslist-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", + "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "dev": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index 0b42f30e..eb5681a7 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ }, "devDependencies": { "@babel/core": "^7.18.9", - "@babel/preset-env": "^7.18.9", + "@babel/preset-env": "^7.18.10", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", "babel-loader": "^8.2.5", From abfe263750511fecdc73a0aa5b942790b980e499 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:18:22 +0530 Subject: [PATCH 090/717] Bump @babel/core from 7.18.9 to 7.18.10 (#705) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.9 to 7.18.10. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.18.10/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 34 +++++++++++++++++----------------- package.json | 2 +- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/package-lock.json b/package-lock.json index 24233246..2dd619ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.9", + "@babel/core": "^7.18.10", "@babel/preset-env": "^7.18.10", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", @@ -118,21 +118,21 @@ } }, "node_modules/@babel/core": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", - "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", + "@babel/generator": "^7.18.10", "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-module-transforms": "^7.18.9", "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.9", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -14125,21 +14125,21 @@ "dev": true }, "@babel/core": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.9.tgz", - "integrity": "sha512-1LIb1eL8APMy91/IMW+31ckrfBM4yCoLaVzoDhZUKSM4cu1L1nIidyxkCgzPAgrC5WEz36IPEr/eSeSF9pIn+g==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.10.tgz", + "integrity": "sha512-JQM6k6ENcBFKVtWvLavlvi/mPcpYZ3+R+2EySDEMSMbp7Mn4FexlbbJVrx2R7Ijhr01T8gyqrOaABWIOgxeUyw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.9", + "@babel/generator": "^7.18.10", "@babel/helper-compilation-targets": "^7.18.9", "@babel/helper-module-transforms": "^7.18.9", "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.9", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9", + "@babel/parser": "^7.18.10", + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.18.10", + "@babel/types": "^7.18.10", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", diff --git a/package.json b/package.json index eb5681a7..91430246 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "twemoji": "^14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.9", + "@babel/core": "^7.18.10", "@babel/preset-env": "^7.18.10", "@babel/preset-react": "^7.18.6", "assert": "^2.0.0", From 48f34053ab64ad7d63d11b315fd0743ac5a5c50c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:21:10 +0530 Subject: [PATCH 091/717] Bump eslint from 8.20.0 to 8.21.0 (#704) Bumps [eslint](https://github.com/eslint/eslint) from 8.20.0 to 8.21.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.20.0...v8.21.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 254 ++++++++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 224 insertions(+), 32 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2dd619ee..d988e2d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,7 +56,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.20.0", + "eslint": "^8.21.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.0", @@ -1845,9 +1845,9 @@ "integrity": "sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -1858,6 +1858,16 @@ "node": ">=10.10.0" } }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -2947,9 +2957,9 @@ } }, "node_modules/acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -3177,6 +3187,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", @@ -5590,13 +5609,14 @@ } }, "node_modules/eslint": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", - "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -5606,14 +5626,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -6000,6 +6023,22 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/globals": { "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", @@ -6015,6 +6054,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6024,6 +6083,54 @@ "node": ">=8" } }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6037,17 +6144,20 @@ } }, "node_modules/espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, "dependencies": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" }, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esquery": { @@ -7046,6 +7156,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", @@ -15329,9 +15445,9 @@ "integrity": "sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==" }, "@humanwhocodes/config-array": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz", - "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -15339,6 +15455,12 @@ "minimatch": "^3.0.4" } }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, "@humanwhocodes/object-schema": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", @@ -16267,9 +16389,9 @@ } }, "acorn": { - "version": "8.7.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", - "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", + "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, "acorn-jsx": { @@ -16451,6 +16573,12 @@ "is-string": "^1.0.7" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", @@ -18350,13 +18478,14 @@ "dev": true }, "eslint": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.20.0.tgz", - "integrity": "sha512-d4ixhz5SKCa1D6SCPrivP7yYVi7nyD6A4vs6HIAul9ujBzcEmZVM3/0NN/yu5nKhmO1wjp5xQ46iRfmDGlOviA==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.21.0.tgz", + "integrity": "sha512-/XJ1+Qurf1T9G2M5IHrsjp+xrGT73RZf23xA1z5wB1ZzzEAWSZKvRwhWxTFp1rvkvCfwcvAUNAP31bhKTTGfDA==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.0", - "@humanwhocodes/config-array": "^0.9.2", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -18366,14 +18495,17 @@ "eslint-scope": "^7.1.1", "eslint-utils": "^3.0.0", "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.2", + "espree": "^9.3.3", "esquery": "^1.4.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", @@ -18442,6 +18574,16 @@ "estraverse": "^5.2.0" } }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, "globals": { "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", @@ -18451,12 +18593,56 @@ "type-fest": "^0.20.2" } }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -18695,12 +18881,12 @@ "dev": true }, "espree": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", - "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.3.tgz", + "integrity": "sha512-ORs1Rt/uQTqUKjDdGCyrtYxbazf5umATSf/K4qxjmZHORR6HJk+2s/2Pqe+Kk49HHINC/xNIrGfgh8sZcll0ng==", "dev": true, "requires": { - "acorn": "^8.7.1", + "acorn": "^8.8.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^3.3.0" } @@ -19498,6 +19684,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "handle-thing": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", diff --git a/package.json b/package.json index 91430246..8317b1da 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "crypto-browserify": "^3.12.0", "css-loader": "^6.7.1", "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.20.0", + "eslint": "^8.21.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsx-a11y": "^6.6.0", From 6e418337cc1237ce806a612957304a5d7af18261 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:23:17 +0530 Subject: [PATCH 092/717] Bump eslint-plugin-jsx-a11y from 6.6.0 to 6.6.1 (#699) Bumps [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y) from 6.6.0 to 6.6.1. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/main/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/compare/v6.6.0...v6.6.1) --- updated-dependencies: - dependency-name: eslint-plugin-jsx-a11y dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 64 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index d988e2d6..a98456e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "eslint": "^8.21.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.0", + "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", @@ -1707,9 +1707,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -3351,12 +3351,12 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "node_modules/axe-core": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", - "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", "dev": true, "engines": { - "node": ">=12" + "node": ">=4" } }, "node_modules/axobject-query": { @@ -5800,21 +5800,21 @@ "dev": true }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", - "integrity": "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", "dev": true, "dependencies": { - "@babel/runtime": "^7.18.3", + "@babel/runtime": "^7.18.9", "aria-query": "^4.2.2", "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.2", + "axe-core": "^4.4.3", "axobject-query": "^2.2.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.3.1", + "jsx-ast-utils": "^3.3.2", "language-tags": "^1.0.5", "minimatch": "^3.1.2", "semver": "^6.3.0" @@ -8522,9 +8522,9 @@ } }, "node_modules/jsx-ast-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz", - "integrity": "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", + "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -15328,9 +15328,9 @@ } }, "@babel/runtime": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.6.tgz", - "integrity": "sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", + "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -16703,9 +16703,9 @@ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, "axe-core": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.2.tgz", - "integrity": "sha512-LVAaGp/wkkgYJcjmHsoKx4juT1aQvJyPcW09MLCjVTh3V2cc6PnyempiLMNH5iMdfIX/zdbjUx2KDjMLCTdPeA==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", + "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", "dev": true }, "axobject-query": { @@ -18769,21 +18769,21 @@ } }, "eslint-plugin-jsx-a11y": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.0.tgz", - "integrity": "sha512-kTeLuIzpNhXL2CwLlc8AHI0aFRwWHcg483yepO9VQiHzM9bZwJdzTkzBszbuPrbgGmq2rlX/FaT2fJQsjUSHsw==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", + "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", "dev": true, "requires": { - "@babel/runtime": "^7.18.3", + "@babel/runtime": "^7.18.9", "aria-query": "^4.2.2", "array-includes": "^3.1.5", "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.2", + "axe-core": "^4.4.3", "axobject-query": "^2.2.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "has": "^1.0.3", - "jsx-ast-utils": "^3.3.1", + "jsx-ast-utils": "^3.3.2", "language-tags": "^1.0.5", "minimatch": "^3.1.2", "semver": "^6.3.0" @@ -20667,9 +20667,9 @@ } }, "jsx-ast-utils": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.1.tgz", - "integrity": "sha512-pxrjmNpeRw5wwVeWyEAk7QJu2GnBO3uzPFmHCKJJFPKK2Cy0cWL23krGtLdnMmbIi6/FjlrQpPyfQI19ByPOhQ==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", + "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", "dev": true, "requires": { "array-includes": "^3.1.5", diff --git a/package.json b/package.json index 8317b1da..b9b8a69b 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "eslint": "^8.21.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.0", + "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.30.1", "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", From 21e6049c1687bf66d8376cd0158e158871d9eca5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:25:02 +0530 Subject: [PATCH 093/717] Bump sanitize-html from 2.7.0 to 2.7.1 (#698) Bumps [sanitize-html](https://github.com/apostrophecms/sanitize-html) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/apostrophecms/sanitize-html/releases) - [Changelog](https://github.com/apostrophecms/sanitize-html/blob/main/CHANGELOG.md) - [Commits](https://github.com/apostrophecms/sanitize-html/compare/2.7.0...2.7.1) --- updated-dependencies: - dependency-name: sanitize-html dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a98456e1..da4c21d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -39,7 +39,7 @@ "react-dom": "^17.0.2", "react-google-recaptcha": "^2.1.0", "react-modal": "^3.15.1", - "sanitize-html": "^2.7.0", + "sanitize-html": "^2.7.1", "tippy.js": "^6.3.7", "twemoji": "^14.0.2" }, @@ -12050,9 +12050,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sanitize-html": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.0.tgz", - "integrity": "sha512-jfQelabOn5voO7FAfnQF7v+jsA6z9zC/O4ec0z3E35XPEtHYJT/OdUziVWlKW4irCr2kXaQAyXTXDHWAibg1tA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.1.tgz", + "integrity": "sha512-oOpe8l4J8CaBk++2haoN5yNI5beekjuHv3JRPKUx/7h40Rdr85pemn4NkvUB3TcBP7yjat574sPlcMAyv4UQig==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", @@ -23258,9 +23258,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sanitize-html": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.0.tgz", - "integrity": "sha512-jfQelabOn5voO7FAfnQF7v+jsA6z9zC/O4ec0z3E35XPEtHYJT/OdUziVWlKW4irCr2kXaQAyXTXDHWAibg1tA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.1.tgz", + "integrity": "sha512-oOpe8l4J8CaBk++2haoN5yNI5beekjuHv3JRPKUx/7h40Rdr85pemn4NkvUB3TcBP7yjat574sPlcMAyv4UQig==", "requires": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", diff --git a/package.json b/package.json index b9b8a69b..1e6fc69e 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "react-dom": "^17.0.2", "react-google-recaptcha": "^2.1.0", "react-modal": "^3.15.1", - "sanitize-html": "^2.7.0", + "sanitize-html": "^2.7.1", "tippy.js": "^6.3.7", "twemoji": "^14.0.2" }, From c78a39af501754fdd82fcfdd68b5fef5cd897c58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:27:07 +0530 Subject: [PATCH 094/717] Bump webpack from 5.73.0 to 5.74.0 (#696) Bumps [webpack](https://github.com/webpack/webpack) from 5.73.0 to 5.74.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.73.0...v5.74.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 50 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index da4c21d7..c091e59b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -74,7 +74,7 @@ "style-loader": "^3.3.1", "url": "^0.11.0", "util": "^0.12.4", - "webpack": "^5.73.0", + "webpack": "^5.74.0", "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.9.3", "webpack-merge": "^5.7.3" @@ -5459,9 +5459,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -13624,9 +13624,9 @@ } }, "node_modules/watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "dependencies": { "glob-to-regexp": "^0.4.1", @@ -13651,9 +13651,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "node_modules/webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -13661,11 +13661,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -13678,7 +13678,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "bin": { @@ -18361,9 +18361,9 @@ } }, "enhanced-resolve": { - "version": "5.9.3", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz", - "integrity": "sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==", + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -24452,9 +24452,9 @@ } }, "watchpack": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.3.1.tgz", - "integrity": "sha512-x0t0JuydIo8qCNctdDrn1OzH/qDzk2+rdCOC3YzumZ42fiMqmQ7T3xQurykYMhYfHaPHTp4ZxAx2NfUo1K6QaA==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -24476,9 +24476,9 @@ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" }, "webpack": { - "version": "5.73.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.73.0.tgz", - "integrity": "sha512-svjudQRPPa0YiOYa2lM/Gacw0r6PvxptHj4FuEKQ2kX05ZLkjbVc5MnPs6its5j7IZljnIqSVo/OsY2X0IpHGA==", + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", @@ -24486,11 +24486,11 @@ "@webassemblyjs/ast": "1.11.1", "@webassemblyjs/wasm-edit": "1.11.1", "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.4.1", + "acorn": "^8.7.1", "acorn-import-assertions": "^1.7.6", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.9.3", + "enhanced-resolve": "^5.10.0", "es-module-lexer": "^0.9.0", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -24503,7 +24503,7 @@ "schema-utils": "^3.1.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.3.1", + "watchpack": "^2.4.0", "webpack-sources": "^3.2.3" }, "dependencies": { diff --git a/package.json b/package.json index 1e6fc69e..3fddccf4 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "style-loader": "^3.3.1", "url": "^0.11.0", "util": "^0.12.4", - "webpack": "^5.73.0", + "webpack": "^5.74.0", "webpack-cli": "^4.10.0", "webpack-dev-server": "^4.9.3", "webpack-merge": "^5.7.3" From febb28e9c424bfd7f0a4146bab08eb26bf43bf75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:28:54 +0530 Subject: [PATCH 095/717] Bump katex from 0.15.6 to 0.16.0 (#616) * Bump katex from 0.15.6 to 0.16.0 Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.15.6 to 0.16.0. - [Release notes](https://github.com/KaTeX/KaTeX/releases) - [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md) - [Commits](https://github.com/KaTeX/KaTeX/compare/v0.15.6...v0.16.0) --- updated-dependencies: - dependency-name: katex dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Remove copy-tex.css as it no longer required Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- src/app/atoms/math/Math.jsx | 1 - 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index c091e59b..51ea8f2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,7 @@ "flux": "^4.0.3", "formik": "^2.2.9", "html-react-parser": "^2.0.0", - "katex": "^0.15.6", + "katex": "^0.16.0", "linkify-html": "^4.0.0-beta.5", "linkifyjs": "^4.0.0-beta.5", "matrix-js-sdk": "^18.1.0", @@ -8535,9 +8535,9 @@ } }, "node_modules/katex": { - "version": "0.15.6", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", - "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz", + "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -20677,9 +20677,9 @@ } }, "katex": { - "version": "0.15.6", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", - "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.0.tgz", + "integrity": "sha512-wPRB4iUPysfH97wTgG5/tRLYxmKVq6Q4jRAWRVOUxXB1dsiv4cvcNjqabHkrOvJHM1Bpk3WrgmllSO1vIvP24w==", "requires": { "commander": "^8.0.0" } diff --git a/package.json b/package.json index 3fddccf4..988a3b6c 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "flux": "^4.0.3", "formik": "^2.2.9", "html-react-parser": "^2.0.0", - "katex": "^0.15.6", + "katex": "^0.16.0", "linkify-html": "^4.0.0-beta.5", "linkifyjs": "^4.0.0-beta.5", "matrix-js-sdk": "^18.1.0", diff --git a/src/app/atoms/math/Math.jsx b/src/app/atoms/math/Math.jsx index dcfd0212..87f85899 100644 --- a/src/app/atoms/math/Math.jsx +++ b/src/app/atoms/math/Math.jsx @@ -5,7 +5,6 @@ import katex from 'katex'; import 'katex/dist/katex.min.css'; import 'katex/dist/contrib/copy-tex'; -import 'katex/dist/contrib/copy-tex.css'; const Math = React.memo(({ content, throwOnError, errorColor, displayMode, From a478fc4805ac6e613ad9b02c6389f2706f66c7df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:33:54 +0530 Subject: [PATCH 096/717] Bump sass from 1.53.0 to 1.54.1 (#712) Bumps [sass](https://github.com/sass/dart-sass) from 1.53.0 to 1.54.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.53.0...1.54.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51ea8f2b..4a5aefff 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", - "sass": "^1.53.0", + "sass": "^1.54.1", "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", @@ -12090,9 +12090,9 @@ } }, "node_modules/sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.1.tgz", + "integrity": "sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -23288,9 +23288,9 @@ } }, "sass": { - "version": "1.53.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.53.0.tgz", - "integrity": "sha512-zb/oMirbKhUgRQ0/GFz8TSAwRq2IlR29vOUJZOx0l8sV+CkHUfHa4u5nqrG+1VceZp7Jfj59SVW9ogdhTvJDcQ==", + "version": "1.54.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.1.tgz", + "integrity": "sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 988a3b6c..cb79b782 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", - "sass": "^1.53.0", + "sass": "^1.54.1", "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", From fa4c95a9b6249f6cc54f5fbd89f58290f0a23c7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:36:36 +0530 Subject: [PATCH 097/717] Bump html-loader from 3.1.2 to 4.1.0 (#677) Bumps [html-loader](https://github.com/webpack-contrib/html-loader) from 3.1.2 to 4.1.0. - [Release notes](https://github.com/webpack-contrib/html-loader/releases) - [Changelog](https://github.com/webpack-contrib/html-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/html-loader/compare/v3.1.2...v4.1.0) --- updated-dependencies: - dependency-name: html-loader dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 65 ++++++++++++++++++++++++++++++++++++++--------- package.json | 2 +- 2 files changed, 54 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4a5aefff..252c459c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", - "html-loader": "^3.1.2", + "html-loader": "^4.1.0", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", @@ -7421,16 +7421,16 @@ "dev": true }, "node_modules/html-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.2.tgz", - "integrity": "sha512-9WQlLiAV5N9fCna4MUmBW/ifaUbuFZ2r7IZmtXzhyfyi4zgPEjXsmsYCKs+yT873MzRj+f1WMjuAiPNA7C6Tcw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.1.0.tgz", + "integrity": "sha512-QDDNmLgn96NWtTPx/VXRerFXH0hn7cm4bruqsZ333GCb+rqiqGurcxtP/M52wcui1/iLiu0l5ms/McE7/Ik6aQ==", "dev": true, "dependencies": { - "html-minifier-terser": "^6.0.2", - "parse5": "^6.0.1" + "html-minifier-terser": "^6.1.0", + "parse5": "^7.0.0" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 14.15.0" }, "funding": { "type": "opencollective", @@ -7440,6 +7440,30 @@ "webpack": "^5.0.0" } }, + "node_modules/html-loader/node_modules/entities": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", + "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/html-loader/node_modules/parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "dependencies": { + "entities": "^4.3.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -19891,13 +19915,30 @@ "dev": true }, "html-loader": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-3.1.2.tgz", - "integrity": "sha512-9WQlLiAV5N9fCna4MUmBW/ifaUbuFZ2r7IZmtXzhyfyi4zgPEjXsmsYCKs+yT873MzRj+f1WMjuAiPNA7C6Tcw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.1.0.tgz", + "integrity": "sha512-QDDNmLgn96NWtTPx/VXRerFXH0hn7cm4bruqsZ333GCb+rqiqGurcxtP/M52wcui1/iLiu0l5ms/McE7/Ik6aQ==", "dev": true, "requires": { - "html-minifier-terser": "^6.0.2", - "parse5": "^6.0.1" + "html-minifier-terser": "^6.1.0", + "parse5": "^7.0.0" + }, + "dependencies": { + "entities": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", + "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", + "dev": true + }, + "parse5": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", + "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", + "dev": true, + "requires": { + "entities": "^4.3.0" + } + } } }, "html-minifier-terser": { diff --git a/package.json b/package.json index cb79b782..918c9f04 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "eslint-plugin-react-hooks": "^4.6.0", "favicons": "^6.2.2", "favicons-webpack-plugin": "^5.0.2", - "html-loader": "^3.1.2", + "html-loader": "^4.1.0", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", From f8b8a35152dc4542cabe3a0f7f8d18399af6ec84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 19:52:50 +0530 Subject: [PATCH 098/717] Bump html-react-parser from 2.0.0 to 3.0.1 (#675) Bumps [html-react-parser](https://github.com/remarkablemark/html-react-parser) from 2.0.0 to 3.0.1. - [Release notes](https://github.com/remarkablemark/html-react-parser/releases) - [Changelog](https://github.com/remarkablemark/html-react-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/remarkablemark/html-react-parser/compare/v2.0.0...v3.0.1) --- updated-dependencies: - dependency-name: html-react-parser dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 186 ++++++++++++++++++++++++++++++++++------------ package.json | 2 +- 2 files changed, 140 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 252c459c..29a0520f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "file-saver": "^2.0.5", "flux": "^4.0.3", "formik": "^2.2.9", - "html-react-parser": "^2.0.0", + "html-react-parser": "^3.0.1", "katex": "^0.16.0", "linkify-html": "^4.0.0-beta.5", "linkifyjs": "^4.0.0-beta.5", @@ -5314,9 +5314,9 @@ "dev": true }, "node_modules/domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "funding": [ { "type": "github", @@ -7377,18 +7377,58 @@ } }, "node_modules/html-dom-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-2.0.0.tgz", - "integrity": "sha512-PwVjg12yfWunpH2WjwjaYNKcZyKKm20kclTfMQohiRzfgYiXX0dR7nXIIKnHneghMDvB0rKFZLEAe11ykOfpcg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.0.1.tgz", + "integrity": "sha512-BtPGWyE2XGbqQFdZE+0/YMVppz319jvvkNGcMwLRmt1Mw0tLHzZOMs1TqbxtcCdVSZwS5pEOXasaD7HHD5iwkQ==", "dependencies": { - "domhandler": "4.3.1", - "htmlparser2": "7.2.0" + "domhandler": "5.0.3", + "htmlparser2": "8.0.1" + } + }, + "node_modules/html-dom-parser/node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/html-dom-parser/node_modules/domutils": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/html-dom-parser/node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", + "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", "engines": { "node": ">=0.12" }, @@ -7397,9 +7437,9 @@ } }, "node_modules/html-dom-parser/node_modules/htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -7408,10 +7448,10 @@ } ], "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "node_modules/html-entities": { @@ -7486,12 +7526,12 @@ } }, "node_modules/html-react-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-2.0.0.tgz", - "integrity": "sha512-AI1lhybWGi8w4QkGtEIS3iSGAjeFGaonxl/+CzqzCeNT3g3z/yx2NKsA93trnv2BLjhe+juGLmLeTSUkyYWk9Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-3.0.1.tgz", + "integrity": "sha512-TsCwwmpqN8F2JA0EqWK/8U/cN07BfZU7agH3FY5G+RQqLs6HT2z2RNlFZI+Jp8e/nIXIsgYDvt8vqu8Dv9lr6w==", "dependencies": { - "domhandler": "4.3.1", - "html-dom-parser": "2.0.0", + "domhandler": "5.0.3", + "html-dom-parser": "3.0.1", "react-property": "2.0.0", "style-to-js": "1.1.1" }, @@ -7499,6 +7539,20 @@ "react": "0.14 || 15 || 16 || 17 || 18" } }, + "node_modules/html-react-parser/node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, "node_modules/html-webpack-plugin": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", @@ -18269,9 +18323,9 @@ "dev": true }, "domelementtype": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", - "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domhandler": { "version": "4.3.1", @@ -19882,28 +19936,56 @@ } }, "html-dom-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-2.0.0.tgz", - "integrity": "sha512-PwVjg12yfWunpH2WjwjaYNKcZyKKm20kclTfMQohiRzfgYiXX0dR7nXIIKnHneghMDvB0rKFZLEAe11ykOfpcg==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.0.1.tgz", + "integrity": "sha512-BtPGWyE2XGbqQFdZE+0/YMVppz319jvvkNGcMwLRmt1Mw0tLHzZOMs1TqbxtcCdVSZwS5pEOXasaD7HHD5iwkQ==", "requires": { - "domhandler": "4.3.1", - "htmlparser2": "7.2.0" + "domhandler": "5.0.3", + "htmlparser2": "8.0.1" }, "dependencies": { - "entities": { + "dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "requires": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + } + }, + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + }, + "domutils": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==" + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "requires": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" + } + }, + "entities": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", + "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" }, "htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } } } @@ -19957,14 +20039,24 @@ } }, "html-react-parser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-2.0.0.tgz", - "integrity": "sha512-AI1lhybWGi8w4QkGtEIS3iSGAjeFGaonxl/+CzqzCeNT3g3z/yx2NKsA93trnv2BLjhe+juGLmLeTSUkyYWk9Q==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-3.0.1.tgz", + "integrity": "sha512-TsCwwmpqN8F2JA0EqWK/8U/cN07BfZU7agH3FY5G+RQqLs6HT2z2RNlFZI+Jp8e/nIXIsgYDvt8vqu8Dv9lr6w==", "requires": { - "domhandler": "4.3.1", - "html-dom-parser": "2.0.0", + "domhandler": "5.0.3", + "html-dom-parser": "3.0.1", "react-property": "2.0.0", "style-to-js": "1.1.1" + }, + "dependencies": { + "domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "requires": { + "domelementtype": "^2.3.0" + } + } } }, "html-webpack-plugin": { diff --git a/package.json b/package.json index 918c9f04..698da860 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "file-saver": "^2.0.5", "flux": "^4.0.3", "formik": "^2.2.9", - "html-react-parser": "^2.0.0", + "html-react-parser": "^3.0.1", "katex": "^0.16.0", "linkify-html": "^4.0.0-beta.5", "linkifyjs": "^4.0.0-beta.5", From 1d90f7588b0f1be90b13584ee91e8b079bd9793b Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Wed, 3 Aug 2022 16:29:56 +0200 Subject: [PATCH 099/717] Allow removing the room name (#702) --- src/app/molecules/room-profile/RoomProfile.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/molecules/room-profile/RoomProfile.jsx b/src/app/molecules/room-profile/RoomProfile.jsx index 96e84076..21811984 100644 --- a/src/app/molecules/room-profile/RoomProfile.jsx +++ b/src/app/molecules/room-profile/RoomProfile.jsx @@ -132,7 +132,7 @@ function RoomProfile({ roomId }) { const renderEditNameAndTopic = () => ( - {canChangeName && } + {canChangeName && } {canChangeTopic && } {(!canChangeName || !canChangeTopic) && {`You have permission to change ${room.isSpaceRoom() ? 'space' : 'room'} ${canChangeName ? 'name' : 'topic'} only.`}} { status.type === cons.status.IN_FLIGHT && {status.msg}} From 5e527e434a3b2af531d581563b9e744b189a7786 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Fri, 5 Aug 2022 15:42:25 +0200 Subject: [PATCH 100/717] Fix shortcuts on non QWERTY keyboards (#715) * Use key instead of keyCode or code * Use key for Escape --- src/app/molecules/message/Message.jsx | 6 +++--- src/app/organisms/room/RoomViewCmdBar.jsx | 4 ++-- src/app/organisms/room/RoomViewInput.jsx | 6 ++---- src/client/event/hotkeys.js | 6 +++--- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 6950cb48..c1370ec3 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -162,8 +162,8 @@ const MessageReplyWrapper = React.memo(({ roomTimeline, eventId }) => { }, []); const focusReply = (ev) => { - if (!ev.keyCode || ev.keyCode === 32 || ev.keyCode === 13) { - if (ev.keyCode) ev.preventDefault(); + if (!ev.key || ev.key === ' ' || ev.key === 'Enter') { + if (ev.key) ev.preventDefault(); if (reply?.event === null) return; if (reply?.event.isRedacted()) return; roomTimeline.loadEventTimeline(eventId); @@ -277,7 +277,7 @@ function MessageEdit({ body, onSave, onCancel }) { }, []); const handleKeyDown = (e) => { - if (e.keyCode === 13 && e.shiftKey === false) { + if (e.key === 'Enter' && e.shiftKey === false) { e.preventDefault(); onSave(editInputRef.current.value); } diff --git a/src/app/organisms/room/RoomViewCmdBar.jsx b/src/app/organisms/room/RoomViewCmdBar.jsx index 5bbc0aae..9c47024d 100644 --- a/src/app/organisms/room/RoomViewCmdBar.jsx +++ b/src/app/organisms/room/RoomViewCmdBar.jsx @@ -256,11 +256,11 @@ function RoomViewCmdBar({ roomId, roomTimeline, viewEvent }) { function listenKeyboard(event) { const { activeElement } = document; const lastCmdItem = document.activeElement.parentNode.lastElementChild; - if (event.keyCode === 27) { + if (event.key === 'Escape') { if (activeElement.className !== 'cmd-item') return; viewEvent.emit('focus_msg_input'); } - if (event.keyCode === 9) { + if (event.key === 'Tab') { if (lastCmdItem.className !== 'cmd-item') return; if (lastCmdItem !== activeElement) return; if (event.shiftKey) return; diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index 37e02989..704dd9af 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -128,9 +128,7 @@ function RoomViewInput({ } function firedCmd(cmdData) { const msg = textAreaRef.current.value; - textAreaRef.current.value = replaceCmdWith( - msg, cmdCursorPos, typeof cmdData?.replace !== 'undefined' ? cmdData.replace : '', - ); + textAreaRef.current.value = replaceCmdWith(msg, cmdCursorPos, typeof cmdData?.replace !== 'undefined' ? cmdData.replace : ''); deactivateCmd(); } @@ -254,7 +252,7 @@ function RoomViewInput({ }; const handleKeyDown = (e) => { - if (e.keyCode === 13 && e.shiftKey === false) { + if (e.key === 'Enter' && e.shiftKey === false) { e.preventDefault(); sendMessage(); } diff --git a/src/client/event/hotkeys.js b/src/client/event/hotkeys.js index 22170653..e59ce3d7 100644 --- a/src/client/event/hotkeys.js +++ b/src/client/event/hotkeys.js @@ -31,14 +31,14 @@ function listenKeyboard(event) { // Ctrl/Cmd + if (event.ctrlKey || event.metaKey) { // open search modal - if (event.code === 'KeyK') { + if (event.key === 'k') { event.preventDefault(); if (navigation.isRawModalVisible) return; openSearch(); } // focus message field on paste - if (event.code === 'KeyV') { + if (event.key === 'v') { if (navigation.isRawModalVisible) return; const msgTextarea = document.getElementById('message-textarea'); const { activeElement } = document; @@ -52,7 +52,7 @@ function listenKeyboard(event) { if (!event.ctrlKey && !event.altKey && !event.metaKey) { if (navigation.isRawModalVisible) return; - if (event.code === 'Escape') { + if (event.key === 'Escape') { if (navigation.isRoomSettings) { toggleRoomSettings(); return; From edace3221384fa1d254d3d92d444177eb1813227 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 6 Aug 2022 09:04:23 +0530 Subject: [PATCH 101/717] Custom emoji & Sticker support (#686) * Remove comments * Show custom emoji first in suggestions * Show global image packs in emoji picker * Display emoji and sticker in room settings * Fix some pack not visible in emojiboard * WIP * Add/delete/rename images to exisitng packs * Change pack avatar, name & attribution * Add checkbox to make pack global * Bug fix * Create or delete pack * Add personal emoji in settings * Show global pack selector in settings * Show space emoji in emojiboard * Send custom emoji reaction as mxc * Render stickers as stickers * Fix sticker jump bug * Fix reaction width * Fix stretched custom emoji * Fix sending space emoji in message * Remove unnessesary comments * Send user pills * Fix pill generating regex * Add support for sending stickers --- public/res/ic/outlined/sticker.svg | 4 + src/app/atoms/button/Button.scss | 8 +- src/app/molecules/image-pack/ImagePack.jsx | 469 ++++++++++++++++++ src/app/molecules/image-pack/ImagePack.scss | 47 ++ .../molecules/image-pack/ImagePackItem.jsx | 76 +++ .../molecules/image-pack/ImagePackItem.scss | 43 ++ .../molecules/image-pack/ImagePackProfile.jsx | 125 +++++ .../image-pack/ImagePackProfile.scss | 37 ++ .../molecules/image-pack/ImagePackUpload.jsx | 73 +++ .../molecules/image-pack/ImagePackUpload.scss | 43 ++ .../image-pack/ImagePackUsageSelector.jsx | 41 ++ .../molecules/image-upload/ImageUpload.jsx | 14 +- src/app/molecules/media/Media.jsx | 46 +- src/app/molecules/media/Media.scss | 9 + src/app/molecules/message/Message.jsx | 54 +- src/app/molecules/message/Message.scss | 1 - src/app/molecules/room-emojis/RoomEmojis.jsx | 130 +++++ src/app/molecules/room-emojis/RoomEmojis.scss | 29 ++ src/app/organisms/emoji-board/EmojiBoard.jsx | 42 +- src/app/organisms/emoji-board/EmojiBoard.scss | 2 + src/app/organisms/emoji-board/custom-emoji.js | 286 +++++++---- src/app/organisms/room/RoomSettings.jsx | 14 +- src/app/organisms/room/RoomViewCmdBar.jsx | 14 +- src/app/organisms/room/RoomViewInput.jsx | 61 ++- src/app/organisms/settings/Settings.jsx | 17 + src/app/organisms/settings/Settings.scss | 3 +- .../space-settings/SpaceSettings.jsx | 8 + .../organisms/sticker-board/StickerBoard.jsx | 88 ++++ .../organisms/sticker-board/StickerBoard.scss | 60 +++ src/client/action/roomTimeline.js | 19 +- src/client/initMatrix.js | 2 +- src/client/state/RoomsInput.js | 60 +-- src/util/common.js | 59 +++ 33 files changed, 1781 insertions(+), 203 deletions(-) create mode 100644 public/res/ic/outlined/sticker.svg create mode 100644 src/app/molecules/image-pack/ImagePack.jsx create mode 100644 src/app/molecules/image-pack/ImagePack.scss create mode 100644 src/app/molecules/image-pack/ImagePackItem.jsx create mode 100644 src/app/molecules/image-pack/ImagePackItem.scss create mode 100644 src/app/molecules/image-pack/ImagePackProfile.jsx create mode 100644 src/app/molecules/image-pack/ImagePackProfile.scss create mode 100644 src/app/molecules/image-pack/ImagePackUpload.jsx create mode 100644 src/app/molecules/image-pack/ImagePackUpload.scss create mode 100644 src/app/molecules/image-pack/ImagePackUsageSelector.jsx create mode 100644 src/app/molecules/room-emojis/RoomEmojis.jsx create mode 100644 src/app/molecules/room-emojis/RoomEmojis.scss create mode 100644 src/app/organisms/sticker-board/StickerBoard.jsx create mode 100644 src/app/organisms/sticker-board/StickerBoard.scss diff --git a/public/res/ic/outlined/sticker.svg b/public/res/ic/outlined/sticker.svg new file mode 100644 index 00000000..bc486e5e --- /dev/null +++ b/public/res/ic/outlined/sticker.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/app/atoms/button/Button.scss b/src/app/atoms/button/Button.scss index 7b12195c..e1a01bb0 100644 --- a/src/app/atoms/button/Button.scss +++ b/src/app/atoms/button/Button.scss @@ -26,10 +26,10 @@ &--icon { @include dir.side(padding, var(--sp-tight), var(--sp-loose)); - .ic-raw { - @include dir.side(margin, 0, var(--sp-extra-tight)); - flex-shrink: 0; - } + } + .ic-raw { + @include dir.side(margin, 0, var(--sp-extra-tight)); + flex-shrink: 0; } } diff --git a/src/app/molecules/image-pack/ImagePack.jsx b/src/app/molecules/image-pack/ImagePack.jsx new file mode 100644 index 00000000..725291d1 --- /dev/null +++ b/src/app/molecules/image-pack/ImagePack.jsx @@ -0,0 +1,469 @@ +import React, { + useState, useMemo, useReducer, useEffect, +} from 'react'; +import PropTypes from 'prop-types'; +import './ImagePack.scss'; + +import initMatrix from '../../../client/initMatrix'; +import { openReusableDialog } from '../../../client/action/navigation'; +import { suffixRename } from '../../../util/common'; + +import Button from '../../atoms/button/Button'; +import Text from '../../atoms/text/Text'; +import Input from '../../atoms/input/Input'; +import Checkbox from '../../atoms/button/Checkbox'; +import { MenuHeader } from '../../atoms/context-menu/ContextMenu'; + +import { ImagePack as ImagePackBuilder } from '../../organisms/emoji-board/custom-emoji'; +import { confirmDialog } from '../confirm-dialog/ConfirmDialog'; +import ImagePackProfile from './ImagePackProfile'; +import ImagePackItem from './ImagePackItem'; +import ImagePackUpload from './ImagePackUpload'; + +const renameImagePackItem = (shortcode) => new Promise((resolve) => { + let isCompleted = false; + + openReusableDialog( + Rename, + (requestClose) => ( +
+ { + e.preventDefault(); + const sc = e.target.shortcode.value; + if (sc.trim() === '') return; + isCompleted = true; + resolve(sc.trim()); + requestClose(); + }} + > + +
+ + +
+ ), + () => { + if (!isCompleted) resolve(null); + }, + ); +}); + +function getUsage(usage) { + if (usage.includes('emoticon') && usage.includes('sticker')) return 'both'; + if (usage.includes('emoticon')) return 'emoticon'; + if (usage.includes('sticker')) return 'sticker'; + + return 'both'; +} + +function isGlobalPack(roomId, stateKey) { + const mx = initMatrix.matrixClient; + const globalContent = mx.getAccountData('im.ponies.emote_rooms')?.getContent(); + if (typeof globalContent !== 'object') return false; + + const { rooms } = globalContent; + if (typeof rooms !== 'object') return false; + + return rooms[roomId]?.[stateKey] !== undefined; +} + +function useRoomImagePack(roomId, stateKey) { + const mx = initMatrix.matrixClient; + const room = mx.getRoom(roomId); + + const packEvent = room.currentState.getStateEvents('im.ponies.room_emotes', stateKey); + const pack = useMemo(() => ( + ImagePackBuilder.parsePack(packEvent.getId(), packEvent.getContent()) + ), [room, stateKey]); + + const sendPackContent = (content) => { + mx.sendStateEvent(roomId, 'im.ponies.room_emotes', content, stateKey); + }; + + return { + pack, + sendPackContent, + }; +} + +function useUserImagePack() { + const mx = initMatrix.matrixClient; + const packEvent = mx.getAccountData('im.ponies.user_emotes'); + const pack = useMemo(() => ( + ImagePackBuilder.parsePack(mx.getUserId(), packEvent?.getContent() ?? { + pack: { display_name: 'Personal' }, + images: {}, + }) + ), []); + + const sendPackContent = (content) => { + mx.setAccountData('im.ponies.user_emotes', content); + }; + + return { + pack, + sendPackContent, + }; +} + +function useImagePackHandles(pack, sendPackContent) { + const [, forceUpdate] = useReducer((count) => count + 1, 0); + + const getNewKey = (key) => { + if (typeof key !== 'string') return undefined; + let newKey = key?.replace(/\s/g, '-'); + if (pack.getImages().get(newKey)) { + newKey = suffixRename( + newKey, + (suffixedKey) => pack.getImages().get(suffixedKey), + ); + } + return newKey; + }; + + const handleAvatarChange = (url) => { + pack.setAvatarUrl(url); + sendPackContent(pack.getContent()); + forceUpdate(); + }; + const handleEditProfile = (name, attribution) => { + pack.setDisplayName(name); + pack.setAttribution(attribution); + sendPackContent(pack.getContent()); + forceUpdate(); + }; + const handleUsageChange = (newUsage) => { + const usage = []; + if (newUsage === 'emoticon' || newUsage === 'both') usage.push('emoticon'); + if (newUsage === 'sticker' || newUsage === 'both') usage.push('sticker'); + pack.setUsage(usage); + pack.getImages().forEach((img) => pack.setImageUsage(img.shortcode, undefined)); + + sendPackContent(pack.getContent()); + forceUpdate(); + }; + + const handleRenameItem = async (key) => { + const newKey = getNewKey(await renameImagePackItem(key)); + + if (!newKey || newKey === key) return; + pack.updateImageKey(key, newKey); + + sendPackContent(pack.getContent()); + forceUpdate(); + }; + const handleDeleteItem = async (key) => { + const isConfirmed = await confirmDialog( + 'Delete', + `Are you sure that you want to delete "${key}"?`, + 'Delete', + 'danger', + ); + if (!isConfirmed) return; + pack.removeImage(key); + + sendPackContent(pack.getContent()); + forceUpdate(); + }; + const handleUsageItem = (key, newUsage) => { + const usage = []; + if (newUsage === 'emoticon' || newUsage === 'both') usage.push('emoticon'); + if (newUsage === 'sticker' || newUsage === 'both') usage.push('sticker'); + pack.setImageUsage(key, usage); + + sendPackContent(pack.getContent()); + forceUpdate(); + }; + const handleAddItem = (key, url) => { + const newKey = getNewKey(key); + if (!newKey || !url) return; + + pack.addImage(newKey, { + url, + }); + + sendPackContent(pack.getContent()); + forceUpdate(); + }; + + return { + handleAvatarChange, + handleEditProfile, + handleUsageChange, + handleRenameItem, + handleDeleteItem, + handleUsageItem, + handleAddItem, + }; +} + +function addGlobalImagePack(mx, roomId, stateKey) { + const content = mx.getAccountData('im.ponies.emote_rooms')?.getContent() ?? {}; + if (!content.rooms) content.rooms = {}; + if (!content.rooms[roomId]) content.rooms[roomId] = {}; + content.rooms[roomId][stateKey] = {}; + return mx.setAccountData('im.ponies.emote_rooms', content); +} +function removeGlobalImagePack(mx, roomId, stateKey) { + const content = mx.getAccountData('im.ponies.emote_rooms')?.getContent() ?? {}; + if (!content.rooms) return Promise.resolve(); + if (!content.rooms[roomId]) return Promise.resolve(); + delete content.rooms[roomId][stateKey]; + if (Object.keys(content.rooms[roomId]).length === 0) { + delete content.rooms[roomId]; + } + return mx.setAccountData('im.ponies.emote_rooms', content); +} + +function ImagePack({ roomId, stateKey, handlePackDelete }) { + const mx = initMatrix.matrixClient; + const room = mx.getRoom(roomId); + const [viewMore, setViewMore] = useState(false); + const [isGlobal, setIsGlobal] = useState(isGlobalPack(roomId, stateKey)); + + const { pack, sendPackContent } = useRoomImagePack(roomId, stateKey); + + const { + handleAvatarChange, + handleEditProfile, + handleUsageChange, + handleRenameItem, + handleDeleteItem, + handleUsageItem, + handleAddItem, + } = useImagePackHandles(pack, sendPackContent); + + const handleGlobalChange = (isG) => { + setIsGlobal(isG); + if (isG) addGlobalImagePack(mx, roomId, stateKey); + else removeGlobalImagePack(mx, roomId, stateKey); + }; + + const myPowerlevel = room.getMember(mx.getUserId())?.powerLevel || 0; + const canChange = room.currentState.hasSufficientPowerLevelFor('state_default', myPowerlevel); + + const handleDeletePack = async () => { + const isConfirmed = await confirmDialog( + 'Delete Pack', + `Are you sure that you want to delete "${pack.displayName}"?`, + 'Delete', + 'danger', + ); + if (!isConfirmed) return; + handlePackDelete(stateKey); + }; + + const images = [...pack.images].slice(0, viewMore ? pack.images.size : 2); + + return ( +
+ + { canChange && ( + + )} + { images.length === 0 ? null : ( +
+
+ Image + Shortcode + Usage +
+ {images.map(([shortcode, image]) => ( + + ))} +
+ )} + {(pack.images.size > 2 || handlePackDelete) && ( +
+ {pack.images.size > 2 && ( + + )} + { handlePackDelete && } +
+ )} +
+ +
+ Use globally + Add this pack to your account to use in all rooms. +
+
+
+ ); +} + +ImagePack.defaultProps = { + handlePackDelete: null, +}; +ImagePack.propTypes = { + roomId: PropTypes.string.isRequired, + stateKey: PropTypes.string.isRequired, + handlePackDelete: PropTypes.func, +}; + +function ImagePackUser() { + const mx = initMatrix.matrixClient; + const [viewMore, setViewMore] = useState(false); + + const { pack, sendPackContent } = useUserImagePack(); + + const { + handleAvatarChange, + handleEditProfile, + handleUsageChange, + handleRenameItem, + handleDeleteItem, + handleUsageItem, + handleAddItem, + } = useImagePackHandles(pack, sendPackContent); + + const images = [...pack.images].slice(0, viewMore ? pack.images.size : 2); + + return ( +
+ + + { images.length === 0 ? null : ( +
+
+ Image + Shortcode + Usage +
+ {images.map(([shortcode, image]) => ( + + ))} +
+ )} + {(pack.images.size > 2) && ( +
+ +
+ )} +
+ ); +} + +function useGlobalImagePack() { + const [, forceUpdate] = useReducer((count) => count + 1, 0); + const mx = initMatrix.matrixClient; + + const roomIdToStateKeys = new Map(); + const globalContent = mx.getAccountData('im.ponies.emote_rooms')?.getContent() ?? { rooms: {} }; + const { rooms } = globalContent; + + Object.keys(rooms).forEach((roomId) => { + if (typeof rooms[roomId] !== 'object') return; + const room = mx.getRoom(roomId); + const stateKeys = Object.keys(rooms[roomId]); + if (!room || stateKeys.length === 0) return; + roomIdToStateKeys.set(roomId, stateKeys); + }); + + useEffect(() => { + const handleEvent = (event) => { + if (event.getType() === 'im.ponies.emote_rooms') forceUpdate(); + }; + mx.addListener('accountData', handleEvent); + return () => { + mx.removeListener('accountData', handleEvent); + }; + }, []); + + return roomIdToStateKeys; +} + +function ImagePackGlobal() { + const mx = initMatrix.matrixClient; + const roomIdToStateKeys = useGlobalImagePack(); + + const handleChange = (roomId, stateKey) => { + removeGlobalImagePack(mx, roomId, stateKey); + }; + + return ( +
+ Global packs +
+ { + roomIdToStateKeys.size > 0 + ? [...roomIdToStateKeys].map(([roomId, stateKeys]) => { + const room = mx.getRoom(roomId); + return ( + stateKeys.map((stateKey) => { + const data = room.currentState.getStateEvents('im.ponies.room_emotes', stateKey); + const pack = ImagePackBuilder.parsePack(data?.getId(), data?.getContent()); + if (!pack) return null; + return ( +
+ handleChange(roomId, stateKey)} isActive /> +
+ {pack.displayName ?? 'Unknown'} + {room.name} +
+
+ ); + }) + ); + }) + :
No global packs
+ } +
+
+ ); +} + +export default ImagePack; + +export { ImagePackUser, ImagePackGlobal }; diff --git a/src/app/molecules/image-pack/ImagePack.scss b/src/app/molecules/image-pack/ImagePack.scss new file mode 100644 index 00000000..91d6a185 --- /dev/null +++ b/src/app/molecules/image-pack/ImagePack.scss @@ -0,0 +1,47 @@ +@use '../../partials/flex'; + +.image-pack { + &-item { + border-top: 1px solid var(--bg-surface-border); + } + + &__header { + padding: var(--sp-extra-tight) var(--sp-normal); + display: flex; + align-items: center; + gap: var(--sp-normal); + + & > *:nth-child(2) { + @extend .cp-fx__item-one; + } + } + + &__footer { + padding: var(--sp-normal); + display: flex; + justify-content: space-between; + gap: var(--sp-tight); + } + + &__global { + padding: var(--sp-normal); + padding-top: var(--sp-tight); + display: flex; + align-items: center; + gap: var(--sp-normal); + } +} + +.image-pack-global { + &__empty { + text-align: center; + padding: var(--sp-extra-loose) var(--sp-normal); + } + & .image-pack__global { + padding: 0 var(--sp-normal); + padding-bottom: var(--sp-normal); + &:first-child { + padding-top: var(--sp-normal); + } + } +} diff --git a/src/app/molecules/image-pack/ImagePackItem.jsx b/src/app/molecules/image-pack/ImagePackItem.jsx new file mode 100644 index 00000000..27436793 --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackItem.jsx @@ -0,0 +1,76 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import './ImagePackItem.scss'; + +import { openReusableContextMenu } from '../../../client/action/navigation'; +import { getEventCords } from '../../../util/common'; + +import Avatar from '../../atoms/avatar/Avatar'; +import Text from '../../atoms/text/Text'; +import Button from '../../atoms/button/Button'; +import RawIcon from '../../atoms/system-icons/RawIcon'; +import IconButton from '../../atoms/button/IconButton'; +import ImagePackUsageSelector from './ImagePackUsageSelector'; + +import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg'; +import PencilIC from '../../../../public/res/ic/outlined/pencil.svg'; +import BinIC from '../../../../public/res/ic/outlined/bin.svg'; + +function ImagePackItem({ + url, shortcode, usage, onUsageChange, onDelete, onRename, +}) { + const handleUsageSelect = (event) => { + openReusableContextMenu( + 'bottom', + getEventCords(event, '.btn-surface'), + (closeMenu) => ( + { + onUsageChange(shortcode, newUsage); + closeMenu(); + }} + /> + ), + ); + }; + + return ( +
+ +
+ {shortcode} +
+
+
+ {onRename && onRename(shortcode)} />} + {onDelete && onDelete(shortcode)} />} +
+ +
+
+ ); +} + +ImagePackItem.defaultProps = { + onUsageChange: null, + onDelete: null, + onRename: null, +}; +ImagePackItem.propTypes = { + url: PropTypes.string.isRequired, + shortcode: PropTypes.string.isRequired, + usage: PropTypes.oneOf(['emoticon', 'sticker', 'both']).isRequired, + onUsageChange: PropTypes.func, + onDelete: PropTypes.func, + onRename: PropTypes.func, +}; + +export default ImagePackItem; diff --git a/src/app/molecules/image-pack/ImagePackItem.scss b/src/app/molecules/image-pack/ImagePackItem.scss new file mode 100644 index 00000000..ab1be3a7 --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackItem.scss @@ -0,0 +1,43 @@ +@use '../../partials/flex'; +@use '../../partials/dir'; + +.image-pack-item { + margin: 0 var(--sp-normal); + padding: var(--sp-tight) 0; + display: flex; + align-items: center; + gap: var(--sp-normal); + + & .avatar-container img { + object-fit: contain; + border-radius: 0; + } + + &__content { + @extend .cp-fx__item-one; + } + + &__usage { + display: flex; + gap: var(--sp-ultra-tight); + & button { + padding: 6px; + } + & > button.btn-surface { + padding: 6px var(--sp-tight); + min-width: 0; + @include dir.side(margin, var(--sp-ultra-tight), 0); + } + } + + &__btn { + display: none; + } + &:hover, + &:focus-within { + .image-pack-item__btn { + display: flex; + gap: var(--sp-ultra-tight); + } + } +} \ No newline at end of file diff --git a/src/app/molecules/image-pack/ImagePackProfile.jsx b/src/app/molecules/image-pack/ImagePackProfile.jsx new file mode 100644 index 00000000..b639936d --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackProfile.jsx @@ -0,0 +1,125 @@ +import React, { useState } from 'react'; +import PropTypes from 'prop-types'; +import './ImagePackProfile.scss'; + +import { openReusableContextMenu } from '../../../client/action/navigation'; +import { getEventCords } from '../../../util/common'; + +import Text from '../../atoms/text/Text'; +import Avatar from '../../atoms/avatar/Avatar'; +import Button from '../../atoms/button/Button'; +import IconButton from '../../atoms/button/IconButton'; +import Input from '../../atoms/input/Input'; +import ImageUpload from '../image-upload/ImageUpload'; +import ImagePackUsageSelector from './ImagePackUsageSelector'; + +import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg'; +import PencilIC from '../../../../public/res/ic/outlined/pencil.svg'; + +function ImagePackProfile({ + avatarUrl, displayName, attribution, usage, + onUsageChange, onAvatarChange, onEditProfile, +}) { + const [isEdit, setIsEdit] = useState(false); + + const handleSubmit = (e) => { + e.preventDefault(); + + const { nameInput, attributionInput } = e.target; + const name = nameInput.value.trim() || undefined; + const att = attributionInput.value.trim() || undefined; + + onEditProfile(name, att); + setIsEdit(false); + }; + + const handleUsageSelect = (event) => { + openReusableContextMenu( + 'bottom', + getEventCords(event, '.btn-surface'), + (closeMenu) => ( + { + onUsageChange(newUsage); + closeMenu(); + }} + /> + ), + ); + }; + + return ( +
+ { + onAvatarChange + ? ( + onAvatarChange(undefined)} + /> + ) + : + } +
+ { + isEdit + ? ( +
+ + +
+ + +
+
+ ) : ( + <> +
+ {displayName} + {onEditProfile && setIsEdit(true)} src={PencilIC} tooltip="Edit" />} +
+ {attribution && {attribution}} + + ) + } +
+
+ Pack usage + +
+
+ ); +} + +ImagePackProfile.defaultProps = { + avatarUrl: null, + attribution: null, + onUsageChange: null, + onAvatarChange: null, + onEditProfile: null, +}; +ImagePackProfile.propTypes = { + avatarUrl: PropTypes.string, + displayName: PropTypes.string.isRequired, + attribution: PropTypes.string, + usage: PropTypes.oneOf(['emoticon', 'sticker', 'both']).isRequired, + onUsageChange: PropTypes.func, + onAvatarChange: PropTypes.func, + onEditProfile: PropTypes.func, +}; + +export default ImagePackProfile; diff --git a/src/app/molecules/image-pack/ImagePackProfile.scss b/src/app/molecules/image-pack/ImagePackProfile.scss new file mode 100644 index 00000000..d21212fb --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackProfile.scss @@ -0,0 +1,37 @@ +@use '../../partials/flex'; + +.image-pack-profile { + padding: var(--sp-normal); + display: flex; + align-items: flex-start; + gap: var(--sp-tight); + + &__content { + @extend .cp-fx__item-one; + + & > div:first-child { + display: flex; + align-items: center; + gap: var(--sp-extra-tight); + + & .ic-btn { + padding: var(--sp-ultra-tight); + } + } + & > form { + display: flex; + flex-direction: column; + gap: var(--sp-extra-tight); + & > div:last-child { + margin: var(--sp-extra-tight) 0; + display: flex; + gap: var(--sp-tight); + } + } + } + &__usage { + & > *:first-child { + margin-bottom: var(--sp-ultra-tight); + } + } +} \ No newline at end of file diff --git a/src/app/molecules/image-pack/ImagePackUpload.jsx b/src/app/molecules/image-pack/ImagePackUpload.jsx new file mode 100644 index 00000000..9358856d --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackUpload.jsx @@ -0,0 +1,73 @@ +import React, { useState, useRef } from 'react'; +import PropTypes from 'prop-types'; +import './ImagePackUpload.scss'; + +import initMatrix from '../../../client/initMatrix'; +import { scaleDownImage } from '../../../util/common'; + +import Text from '../../atoms/text/Text'; +import Button from '../../atoms/button/Button'; +import Input from '../../atoms/input/Input'; +import IconButton from '../../atoms/button/IconButton'; +import CirclePlusIC from '../../../../public/res/ic/outlined/circle-plus.svg'; + +function ImagePackUpload({ onUpload }) { + const mx = initMatrix.matrixClient; + const inputRef = useRef(null); + const shortcodeRef = useRef(null); + const [imgFile, setImgFile] = useState(null); + const [progress, setProgress] = useState(false); + + const handleSubmit = async (evt) => { + evt.preventDefault(); + if (!imgFile) return; + const { shortcodeInput } = evt.target; + const shortcode = shortcodeInput.value.trim(); + if (shortcode === '') return; + + setProgress(true); + const image = await scaleDownImage(imgFile, 512, 512); + const url = await mx.uploadContent(image, { + onlyContentUri: true, + }); + + onUpload(shortcode, url); + setProgress(false); + setImgFile(null); + shortcodeRef.current.value = ''; + }; + + const handleFileChange = (evt) => { + const img = evt.target.files[0]; + if (!img) return; + setImgFile(img); + shortcodeRef.current.focus(); + }; + const handleRemove = () => { + setImgFile(null); + inputRef.current.value = null; + }; + + return ( +
+ + { + imgFile + ? ( +
+ + {imgFile.name} +
+ ) + : + } + + +
+ ); +} +ImagePackUpload.propTypes = { + onUpload: PropTypes.func.isRequired, +}; + +export default ImagePackUpload; diff --git a/src/app/molecules/image-pack/ImagePackUpload.scss b/src/app/molecules/image-pack/ImagePackUpload.scss new file mode 100644 index 00000000..75b57ed2 --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackUpload.scss @@ -0,0 +1,43 @@ +@use '../../partials/dir'; +@use '../../partials/text'; + +.image-pack-upload { + padding: var(--sp-normal); + padding-top: 0; + display: flex; + gap: var(--sp-tight); + + & > .input-container { + flex-grow: 1; + input { + padding: 9px var(--sp-normal); + } + } + &__file { + display: inline-flex; + align-items: center; + background: var(--bg-surface-low); + border-radius: var(--bo-radius); + box-shadow: var(--bs-surface-border); + + & button { + --parent-height: 40px; + width: var(--parent-height); + height: 100%; + display: flex; + justify-content: center; + align-items: center; + } + + & .ic-raw { + background-color: var(--bg-caution); + transform: rotate(45deg); + } + + & .text { + @extend .cp-txt__ellipsis; + @include dir.side(margin, var(--sp-ultra-tight), var(--sp-normal)); + max-width: 86px; + } + } +} \ No newline at end of file diff --git a/src/app/molecules/image-pack/ImagePackUsageSelector.jsx b/src/app/molecules/image-pack/ImagePackUsageSelector.jsx new file mode 100644 index 00000000..279b3816 --- /dev/null +++ b/src/app/molecules/image-pack/ImagePackUsageSelector.jsx @@ -0,0 +1,41 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { MenuHeader, MenuItem } from '../../atoms/context-menu/ContextMenu'; +import CheckIC from '../../../../public/res/ic/outlined/check.svg'; + +function ImagePackUsageSelector({ usage, onSelect }) { + return ( +
+ Usage + onSelect('emoticon')} + > + Emoji + + onSelect('sticker')} + > + Sticker + + onSelect('both')} + > + Both + +
+ ); +} + +ImagePackUsageSelector.propTypes = { + usage: PropTypes.oneOf(['emoticon', 'sticker', 'both']).isRequired, + onSelect: PropTypes.func.isRequired, +}; + +export default ImagePackUsageSelector; diff --git a/src/app/molecules/image-upload/ImageUpload.jsx b/src/app/molecules/image-upload/ImageUpload.jsx index 69564aa5..137d23bf 100644 --- a/src/app/molecules/image-upload/ImageUpload.jsx +++ b/src/app/molecules/image-upload/ImageUpload.jsx @@ -7,9 +7,13 @@ import initMatrix from '../../../client/initMatrix'; import Text from '../../atoms/text/Text'; import Avatar from '../../atoms/avatar/Avatar'; import Spinner from '../../atoms/spinner/Spinner'; +import RawIcon from '../../atoms/system-icons/RawIcon'; + +import PlusIC from '../../../../public/res/ic/outlined/plus.svg'; function ImageUpload({ text, bgColor, imageSrc, onUpload, onRequestRemove, + size, }) { const [uploadPromise, setUploadPromise] = useState(null); const uploadImageRef = useRef(null); @@ -50,10 +54,14 @@ function ImageUpload({ imageSrc={imageSrc} text={text} bgColor={bgColor} - size="large" + size={size} />
- {uploadPromise === null && Upload} + {uploadPromise === null && ( + size === 'large' + ? Upload + : + )} {uploadPromise !== null && }
@@ -75,6 +83,7 @@ ImageUpload.defaultProps = { text: null, bgColor: 'transparent', imageSrc: null, + size: 'large', }; ImageUpload.propTypes = { @@ -83,6 +92,7 @@ ImageUpload.propTypes = { imageSrc: PropTypes.string, onUpload: PropTypes.func.isRequired, onRequestRemove: PropTypes.func.isRequired, + size: PropTypes.oneOf(['large', 'normal']), }; export default ImageUpload; diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index 341dcb03..c4b4a171 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -69,9 +69,8 @@ async function getUrl(link, type, decryptData) { } } -function getNativeHeight(width, height) { - const MEDIA_MAX_WIDTH = 296; - const scale = MEDIA_MAX_WIDTH / width; +function getNativeHeight(width, height, maxWidth = 296) { + const scale = maxWidth / width; return scale * height; } @@ -196,6 +195,45 @@ Image.propTypes = { type: PropTypes.string, }; +function Sticker({ + name, height, width, link, file, type, +}) { + const [url, setUrl] = useState(null); + + useEffect(() => { + let unmounted = false; + async function fetchUrl() { + const myUrl = await getUrl(link, type, file); + if (unmounted) return; + setUrl(myUrl); + } + fetchUrl(); + return () => { + unmounted = true; + }; + }, []); + + return ( +
+ { url !== null && {name}} +
+ ); +} +Sticker.defaultProps = { + file: null, + type: '', +}; +Sticker.propTypes = { + name: PropTypes.string.isRequired, + width: null, + height: null, + width: PropTypes.number, + height: PropTypes.number, + link: PropTypes.string.isRequired, + file: PropTypes.shape({}), + type: PropTypes.string, +}; + function Audio({ name, link, type, file, }) { @@ -315,5 +353,5 @@ Video.propTypes = { }; export { - File, Image, Audio, Video, + File, Image, Sticker, Audio, Video, }; diff --git a/src/app/molecules/media/Media.scss b/src/app/molecules/media/Media.scss index 7b9d6f7c..16cf8f7e 100644 --- a/src/app/molecules/media/Media.scss +++ b/src/app/molecules/media/Media.scss @@ -42,6 +42,15 @@ background-size: cover; } +.sticker-container { + display: inline-flex; + max-width: 128px; + width: 100%; + & img { + width: 100% !important; + } +} + .image-container { & img { max-width: unset !important; diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index c1370ec3..49337bdc 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -5,7 +5,6 @@ import React, { import PropTypes from 'prop-types'; import './Message.scss'; -import { getShortcodeToCustomEmoji } from '../../organisms/emoji-board/custom-emoji'; import { twemojify } from '../../../util/twemojify'; import initMatrix from '../../../client/initMatrix'; @@ -322,7 +321,7 @@ function getMyEmojiEvent(emojiKey, eventId, roomTimeline) { return rEvent; } -function toggleEmoji(roomId, eventId, emojiKey, roomTimeline) { +function toggleEmoji(roomId, eventId, emojiKey, shortcode, roomTimeline) { const myAlreadyReactEvent = getMyEmojiEvent(emojiKey, eventId, roomTimeline); if (myAlreadyReactEvent) { const rId = myAlreadyReactEvent.getId(); @@ -330,17 +329,17 @@ function toggleEmoji(roomId, eventId, emojiKey, roomTimeline) { redactEvent(roomId, rId); return; } - sendReaction(roomId, eventId, emojiKey); + sendReaction(roomId, eventId, emojiKey, shortcode); } function pickEmoji(e, roomId, eventId, roomTimeline) { openEmojiBoard(getEventCords(e), (emoji) => { - toggleEmoji(roomId, eventId, emoji.unicode, roomTimeline); + toggleEmoji(roomId, eventId, emoji.mxc ?? emoji.unicode, emoji.shortcodes[0], roomTimeline); e.target.click(); }); } -function genReactionMsg(userIds, reaction) { +function genReactionMsg(userIds, reaction, shortcode) { return ( <> {userIds.map((userId, index) => ( @@ -354,24 +353,22 @@ function genReactionMsg(userIds, reaction) { ))} {' reacted with '} - {twemojify(reaction, { className: 'react-emoji' })} + {twemojify(shortcode ? `:${shortcode}:` : reaction, { className: 'react-emoji' })} ); } function MessageReaction({ - shortcodeToEmoji, reaction, count, users, isActive, onClick, + reaction, shortcode, count, users, isActive, onClick, }) { - const customEmojiMatch = reaction.match(/^:(\S+):$/); let customEmojiUrl = null; - if (customEmojiMatch) { - const customEmoji = shortcodeToEmoji.get(customEmojiMatch[1]); - customEmojiUrl = initMatrix.matrixClient.mxcUrlToHttp(customEmoji?.mxc); + if (reaction.match(/^mxc:\/\/\S+$/)) { + customEmojiUrl = initMatrix.matrixClient.mxcUrlToHttp(reaction); } return ( {users.length > 0 ? genReactionMsg(users, reaction) : 'Unable to load who has reacted'}} + content={{users.length > 0 ? genReactionMsg(users, reaction, shortcode) : 'Unable to load who has reacted'}} > + +
+ )} + { + usablePacks.length > 0 + ? usablePacks.reverse().map((mEvent) => ( + + )) : ( +
+ No emoji or sticker pack. +
+ ) + } +
+ ); +} + +RoomEmojis.propTypes = { + roomId: PropTypes.string.isRequired, +}; + +export default RoomEmojis; diff --git a/src/app/molecules/room-emojis/RoomEmojis.scss b/src/app/molecules/room-emojis/RoomEmojis.scss new file mode 100644 index 00000000..7ba2b494 --- /dev/null +++ b/src/app/molecules/room-emojis/RoomEmojis.scss @@ -0,0 +1,29 @@ +.room-emojis { + .image-pack, + .room-emojis__add-pack, + .room-emojis__empty { + margin: var(--sp-normal) 0; + background-color: var(--bg-surface); + border-radius: var(--bo-radius); + box-shadow: var(--bs-surface-border); + overflow: hidden; + + & > .context-menu__header:first-child { + margin-top: 2px; + } + } + &__add-pack { + & form { + margin: var(--sp-normal); + display: flex; + gap: var(--sp-normal); + & .input-container { + flex-grow: 1; + } + } + } + &__empty { + padding: var(--sp-extra-loose) var(--sp-normal); + text-align: center; + } +} \ No newline at end of file diff --git a/src/app/organisms/emoji-board/EmojiBoard.jsx b/src/app/organisms/emoji-board/EmojiBoard.jsx index 864a0bf6..b97cab0a 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.jsx +++ b/src/app/organisms/emoji-board/EmojiBoard.jsx @@ -70,7 +70,7 @@ const EmojiGroup = React.memo(({ name, groupEmojis }) => { unicode={`:${emoji.shortcode}:`} shortcodes={emoji.shortcode} src={initMatrix.matrixClient.mxcUrlToHttp(emoji.mxc)} - data-mx-emoticon + data-mx-emoticon={emoji.mxc} /> ) } @@ -141,10 +141,13 @@ function EmojiBoard({ onSelect, searchRef }) { function getEmojiDataFromTarget(target) { const unicode = target.getAttribute('unicode'); const hexcode = target.getAttribute('hexcode'); + const mxc = target.getAttribute('data-mx-emoticon'); let shortcodes = target.getAttribute('shortcodes'); if (typeof shortcodes === 'undefined') shortcodes = undefined; else shortcodes = shortcodes.split(','); - return { unicode, hexcode, shortcodes }; + return { + unicode, hexcode, shortcodes, mxc, + }; } function selectEmoji(e) { @@ -202,21 +205,23 @@ function EmojiBoard({ onSelect, searchRef }) { setAvailableEmojis([]); return; } - // Retrieve the packs for the new room - // Remove packs that aren't marked as emoji packs - // Remove packs without emojis - const packs = getRelevantPacks( - initMatrix.matrixClient.getRoom(selectedRoomId), - ) - .filter((pack) => pack.usage.indexOf('emoticon') !== -1) - .filter((pack) => pack.getEmojis().length !== 0); - // Set an index for each pack so that we know where to jump when the user uses the nav - for (let i = 0; i < packs.length; i += 1) { - packs[i].packIndex = i; + const mx = initMatrix.matrixClient; + const room = mx.getRoom(selectedRoomId); + const parentIds = initMatrix.roomList.getAllParentSpaces(room.roomId); + const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); + if (room) { + const packs = getRelevantPacks( + room.client, + [room, ...parentRooms], + ).filter((pack) => pack.getEmojis().length !== 0); + + // Set an index for each pack so that we know where to jump when the user uses the nav + for (let i = 0; i < packs.length; i += 1) { + packs[i].packIndex = i; + } + setAvailableEmojis(packs); } - - setAvailableEmojis(packs); }; const onOpen = () => { @@ -260,7 +265,7 @@ function EmojiBoard({ onSelect, searchRef }) { { availableEmojis.map((pack) => ( { availableEmojis.map((pack) => { - const src = initMatrix.matrixClient.mxcUrlToHttp(pack.avatar ?? pack.images[0].mxc); + const src = initMatrix.matrixClient + .mxcUrlToHttp(pack.avatarUrl ?? pack.getEmojis()[0].mxc); return ( openGroup(recentOffset + pack.packIndex)} src={src} key={pack.packIndex} - tooltip={pack.displayName} + tooltip={pack.displayName ?? 'Unknown'} tooltipPlacement="right" isImage /> diff --git a/src/app/organisms/emoji-board/EmojiBoard.scss b/src/app/organisms/emoji-board/EmojiBoard.scss index 73f3ab3b..6883e18e 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.scss +++ b/src/app/organisms/emoji-board/EmojiBoard.scss @@ -84,6 +84,7 @@ .emoji { width: 32px; height: 32px; + object-fit: contain; } } & > p:last-child { @@ -123,6 +124,7 @@ & .emoji { width: 38px; height: 38px; + object-fit: contain; padding: var(--emoji-padding); cursor: pointer; &:hover { diff --git a/src/app/organisms/emoji-board/custom-emoji.js b/src/app/organisms/emoji-board/custom-emoji.js index 4147c130..1298e6ae 100644 --- a/src/app/organisms/emoji-board/custom-emoji.js +++ b/src/app/organisms/emoji-board/custom-emoji.js @@ -1,135 +1,224 @@ import { emojis } from './emoji'; -// Custom emoji are stored in one of three places: -// - User emojis, which are stored in account data -// - Room emojis, which are stored in state events in a room -// - Emoji packs, which are rooms of emojis referenced in the account data or in a room's -// cannonical space -// -// Emojis and packs referenced from within a user's account data should be available -// globally, while emojis and packs in rooms and spaces should only be available within -// those spaces and rooms +// https://github.com/Sorunome/matrix-doc/blob/soru/emotes/proposals/2545-emotes.md class ImagePack { - // Convert a raw image pack into a more maliable format - // - // Takes an image pack as per MSC 2545 (e.g. as in the Matrix spec), and converts it to a - // format used here, while filling in defaults. - // - // The room argument is the room the pack exists in, which is used as a fallback for - // missing properties - // - // Returns `null` if the rawPack is not a properly formatted image pack, although there - // is still a fair amount of tolerance for malformed packs. - static parsePack(rawPack, room) { - if (typeof rawPack.images === 'undefined') { + static parsePack(eventId, packContent) { + if (!eventId || typeof packContent?.images !== 'object') { return null; } - const pack = rawPack.pack ?? {}; + return new ImagePack(eventId, packContent); + } - const displayName = pack.display_name ?? (room ? room.name : undefined); - const avatar = pack.avatar_url ?? (room ? room.getMxcAvatarUrl() : undefined); - const usage = pack.usage ?? ['emoticon', 'sticker']; - const { attribution } = pack; - const images = Object.entries(rawPack.images).flatMap((e) => { - const data = e[1]; - const shortcode = e[0]; + constructor(eventId, content) { + this.id = eventId; + this.content = JSON.parse(JSON.stringify(content)); + + this.applyPack(content); + this.applyImages(content); + } + + applyPack(content) { + const pack = content.pack ?? {}; + + this.displayName = pack.display_name; + this.avatarUrl = pack.avatar_url; + this.usage = pack.usage ?? ['emoticon', 'sticker']; + this.attribution = pack.attribution; + } + + applyImages(content) { + this.images = new Map(); + this.emoticons = []; + this.stickers = []; + + Object.entries(content.images).forEach(([shortcode, data]) => { const mxc = data.url; const body = data.body ?? shortcode; + const usage = data.usage ?? this.usage; const { info } = data; - const usage_ = data.usage ?? usage; - if (mxc) { - return [{ - shortcode, mxc, body, info, usage: usage_, - }]; + if (!mxc) return; + const image = { + shortcode, mxc, body, usage, info, + }; + + this.images.set(shortcode, image); + if (usage.includes('emoticon')) { + this.emoticons.push(image); + } + if (usage.includes('sticker')) { + this.stickers.push(image); } - return []; }); - - return new ImagePack(displayName, avatar, usage, attribution, images); } - constructor(displayName, avatar, usage, attribution, images) { - this.displayName = displayName; - this.avatar = avatar; - this.usage = usage; - this.attribution = attribution; - this.images = images; + getImages() { + return this.images; } - // Produce a list of emoji in this image pack getEmojis() { - return this.images.filter((i) => i.usage.indexOf('emoticon') !== -1); + return this.emoticons; } - // Produce a list of stickers in this image pack getStickers() { - return this.images.filter((i) => i.usage.indexOf('sticker') !== -1); + return this.stickers; + } + + getContent() { + return this.content; + } + + _updatePackProperty(property, value) { + if (this.content.pack === undefined) { + this.content.pack = {}; + } + this.content.pack[property] = value; + this.applyPack(this.content); + } + + setAvatarUrl(avatarUrl) { + this._updatePackProperty('avatar_url', avatarUrl); + } + + setDisplayName(displayName) { + this._updatePackProperty('display_name', displayName); + } + + setAttribution(attribution) { + this._updatePackProperty('attribution', attribution); + } + + setUsage(usage) { + this._updatePackProperty('usage', usage); + } + + addImage(key, imgContent) { + this.content.images = { + [key]: imgContent, + ...this.content.images, + }; + this.applyImages(this.content); + } + + removeImage(key) { + if (this.content.images[key] === undefined) return; + delete this.content.images[key]; + this.applyImages(this.content); + } + + updateImageKey(key, newKey) { + if (this.content.images[key] === undefined) return; + const copyImages = {}; + Object.keys(this.content.images).forEach((imgKey) => { + copyImages[imgKey === key ? newKey : imgKey] = this.content.images[imgKey]; + }); + this.content.images = copyImages; + this.applyImages(this.content); + } + + _updateImageProperty(key, property, value) { + if (this.content.images[key] === undefined) return; + this.content.images[key][property] = value; + this.applyImages(this.content); + } + + setImageUrl(key, url) { + this._updateImageProperty(key, 'url', url); + } + + setImageBody(key, body) { + this._updateImageProperty(key, 'body', body); + } + + setImageInfo(key, info) { + this._updateImageProperty(key, 'info', info); + } + + setImageUsage(key, usage) { + this._updateImageProperty(key, 'usage', usage); } } -// Retrieve a list of user emojis -// -// Result is an ImagePack, or null if the user hasn't set up or has deleted their personal -// image pack. -// -// Accepts a reference to a matrix client as the only argument +function getGlobalImagePacks(mx) { + const globalContent = mx.getAccountData('im.ponies.emote_rooms')?.getContent(); + if (typeof globalContent !== 'object') return []; + + const { rooms } = globalContent; + if (typeof rooms !== 'object') return []; + + const roomIds = Object.keys(rooms); + + const packs = roomIds.flatMap((roomId) => { + if (typeof rooms[roomId] !== 'object') return []; + const room = mx.getRoom(roomId); + if (!room) return []; + const stateKeys = Object.keys(rooms[roomId]); + + return stateKeys.map((stateKey) => { + const data = room.currentState.getStateEvents('im.ponies.room_emotes', stateKey); + const pack = ImagePack.parsePack(data?.getId(), data?.getContent()); + if (pack) { + pack.displayName ??= room.name; + pack.avatarUrl ??= room.getMxcAvatarUrl(); + } + return pack; + }).filter((pack) => pack !== null); + }); + + return packs; +} + function getUserImagePack(mx) { const accountDataEmoji = mx.getAccountData('im.ponies.user_emotes'); if (!accountDataEmoji) { return null; } - const userImagePack = ImagePack.parsePack(accountDataEmoji.event.content); - if (userImagePack) userImagePack.displayName ??= 'Your Emoji'; + const userImagePack = ImagePack.parsePack(mx.getUserId(), accountDataEmoji.event.content); + userImagePack.displayName ??= 'Personal Emoji'; return userImagePack; } -// Produces a list of all of the emoji packs in a room -// -// Returns a list of `ImagePack`s. This does not include packs in spaces that contain -// this room. -function getPacksInRoom(room) { - const packs = room.currentState.getStateEvents('im.ponies.room_emotes'); +function getRoomImagePacks(room) { + const dataEvents = room.currentState.getStateEvents('im.ponies.room_emotes'); - return packs - .map((p) => ImagePack.parsePack(p.event.content, room)) - .filter((p) => p !== null); + return dataEvents + .map((data) => { + const pack = ImagePack.parsePack(data?.getId(), data?.getContent()); + if (pack) { + pack.displayName ??= room.name; + pack.avatarUrl ??= room.getMxcAvatarUrl(); + } + return pack; + }) + .filter((pack) => pack !== null); } -// Produce a list of all image packs which should be shown for a given room -// -// This includes packs in that room, the user's personal images, and will eventually -// include the user's enabled global image packs and space-level packs. -// -// This differs from getPacksInRoom, as the former only returns packs that are directly in -// a room, whereas this function returns all packs which should be shown to the user while -// they are in this room. -// -// Packs will be returned in the order that shortcode conflicts should be resolved, with -// higher priority packs coming first. -function getRelevantPacks(room) { +/** + * @param {MatrixClient} mx Provide if you want to include user personal/global pack + * @param {Room[]} rooms Provide rooms if you want to include rooms pack + * @returns {ImagePack[]} packs + */ +function getRelevantPacks(mx, rooms) { + const userPack = mx ? getUserImagePack(mx) : []; + const globalPacks = mx ? getGlobalImagePacks(mx) : []; + const globalPackIds = new Set(globalPacks.map((pack) => pack.id)); + const roomsPack = rooms?.flatMap(getRoomImagePacks) ?? []; + return [].concat( - getUserImagePack(room.client) ?? [], - getPacksInRoom(room), + userPack ?? [], + globalPacks, + roomsPack.filter((pack) => !globalPackIds.has(pack.id)), ); } -// Returns all user+room emojis and all standard unicode emojis -// -// Accepts a reference to a matrix client as the only argument -// -// Result is a map from shortcode to the corresponding emoji. If two emoji share a -// shortcode, only one will be presented, with priority given to custom emoji. -// -// Will eventually be expanded to include all emojis revelant to a room and the user -function getShortcodeToEmoji(room) { +function getShortcodeToEmoji(mx, rooms) { const allEmoji = new Map(); emojis.forEach((emoji) => { - if (emoji.shortcodes.constructor.name === 'Array') { + if (Array.isArray(emoji.shortcodes)) { emoji.shortcodes.forEach((shortcode) => { allEmoji.set(shortcode, emoji); }); @@ -138,7 +227,7 @@ function getShortcodeToEmoji(room) { } }); - getRelevantPacks(room).reverse() + getRelevantPacks(mx, rooms) .flatMap((pack) => pack.getEmojis()) .forEach((emoji) => { allEmoji.set(emoji.shortcode, emoji); @@ -150,7 +239,7 @@ function getShortcodeToEmoji(room) { function getShortcodeToCustomEmoji(room) { const allEmoji = new Map(); - getRelevantPacks(room).reverse() + getRelevantPacks(room.client, [room]) .flatMap((pack) => pack.getEmojis()) .forEach((emoji) => { allEmoji.set(emoji.shortcode, emoji); @@ -159,27 +248,20 @@ function getShortcodeToCustomEmoji(room) { return allEmoji; } -// Produces a special list of emoji specifically for auto-completion -// -// This list contains each emoji once, with all emoji being deduplicated by shortcode. -// However, the order of the standard emoji will have been preserved, and alternate -// shortcodes for the standard emoji will not be considered. -// -// Standard emoji are guaranteed to be earlier in the list than custom emoji -function getEmojiForCompletion(room) { +function getEmojiForCompletion(mx, rooms) { const allEmoji = new Map(); - getRelevantPacks(room).reverse() + getRelevantPacks(mx, rooms) .flatMap((pack) => pack.getEmojis()) .forEach((emoji) => { allEmoji.set(emoji.shortcode, emoji); }); - return emojis.filter((e) => !allEmoji.has(e.shortcode)) - .concat(Array.from(allEmoji.values())); + return Array.from(allEmoji.values()).concat(emojis.filter((e) => !allEmoji.has(e.shortcode))); } export { - getUserImagePack, + ImagePack, + getUserImagePack, getGlobalImagePacks, getRoomImagePacks, getShortcodeToEmoji, getShortcodeToCustomEmoji, getRelevantPacks, getEmojiForCompletion, }; diff --git a/src/app/organisms/room/RoomSettings.jsx b/src/app/organisms/room/RoomSettings.jsx index 50c5e512..63277347 100644 --- a/src/app/organisms/room/RoomSettings.jsx +++ b/src/app/organisms/room/RoomSettings.jsx @@ -25,9 +25,11 @@ import RoomHistoryVisibility from '../../molecules/room-history-visibility/RoomH import RoomEncryption from '../../molecules/room-encryption/RoomEncryption'; import RoomPermissions from '../../molecules/room-permissions/RoomPermissions'; import RoomMembers from '../../molecules/room-members/RoomMembers'; +import RoomEmojis from '../../molecules/room-emojis/RoomEmojis'; import UserIC from '../../../../public/res/ic/outlined/user.svg'; import SettingsIC from '../../../../public/res/ic/outlined/settings.svg'; +import EmojiIC from '../../../../public/res/ic/outlined/emoji.svg'; import SearchIC from '../../../../public/res/ic/outlined/search.svg'; import ShieldUserIC from '../../../../public/res/ic/outlined/shield-user.svg'; import LockIC from '../../../../public/res/ic/outlined/lock.svg'; @@ -42,6 +44,7 @@ const tabText = { GENERAL: 'General', SEARCH: 'Search', MEMBERS: 'Members', + EMOJIS: 'Emojis', PERMISSIONS: 'Permissions', SECURITY: 'Security', }; @@ -58,6 +61,10 @@ const tabItems = [{ iconSrc: UserIC, text: tabText.MEMBERS, disabled: false, +}, { + iconSrc: EmojiIC, + text: tabText.EMOJIS, + disabled: false, }, { iconSrc: ShieldUserIC, text: tabText.PERMISSIONS, @@ -197,6 +204,7 @@ function RoomSettings({ roomId }) { {selectedTab.text === tabText.GENERAL && } {selectedTab.text === tabText.SEARCH && } {selectedTab.text === tabText.MEMBERS && } + {selectedTab.text === tabText.EMOJIS && } {selectedTab.text === tabText.PERMISSIONS && } {selectedTab.text === tabText.SECURITY && }
@@ -210,7 +218,5 @@ RoomSettings.propTypes = { roomId: PropTypes.string.isRequired, }; -export { - RoomSettings as default, - tabText, -}; +export default RoomSettings; +export { tabText }; diff --git a/src/app/organisms/room/RoomViewCmdBar.jsx b/src/app/organisms/room/RoomViewCmdBar.jsx index 9c47024d..68919aac 100644 --- a/src/app/organisms/room/RoomViewCmdBar.jsx +++ b/src/app/organisms/room/RoomViewCmdBar.jsx @@ -21,7 +21,7 @@ import AsyncSearch from '../../../util/AsyncSearch'; import Text from '../../atoms/text/Text'; import ScrollView from '../../atoms/scroll/ScrollView'; import FollowingMembers from '../../molecules/following-members/FollowingMembers'; -import { addRecentEmoji } from '../emoji-board/recent'; +import { addRecentEmoji, getRecentEmojis } from '../emoji-board/recent'; const commands = [{ name: 'markdown', @@ -213,9 +213,15 @@ function RoomViewCmdBar({ roomId, roomTimeline, viewEvent }) { setCmd({ prefix, suggestions: commands }); }, ':': () => { - const emojis = getEmojiForCompletion(mx.getRoom(roomId)); + const parentIds = initMatrix.roomList.getAllParentSpaces(roomId); + const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); + const emojis = getEmojiForCompletion(mx, [mx.getRoom(roomId), ...parentRooms]); + const recentEmoji = getRecentEmojis(20); asyncSearch.setup(emojis, { keys: ['shortcode'], isContain: true, limit: 20 }); - setCmd({ prefix, suggestions: emojis.slice(26, 46) }); + setCmd({ + prefix, + suggestions: recentEmoji.length > 0 ? recentEmoji : emojis.slice(26, 46), + }); }, '@': () => { const members = mx.getRoom(roomId).getJoinedMembers().map((member) => ({ @@ -247,7 +253,7 @@ function RoomViewCmdBar({ roomId, roomTimeline, viewEvent }) { } if (myCmd.prefix === '@') { viewEvent.emit('cmd_fired', { - replace: myCmd.result.name, + replace: `@${myCmd.result.userId}`, }); } deactivateCmd(); diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index 704dd9af..4a7b2bf7 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -8,7 +8,7 @@ import TextareaAutosize from 'react-autosize-textarea'; import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; import settings from '../../../client/state/settings'; -import { openEmojiBoard } from '../../../client/action/navigation'; +import { openEmojiBoard, openReusableContextMenu } from '../../../client/action/navigation'; import navigation from '../../../client/state/navigation'; import { bytesToSize, getEventCords } from '../../../util/common'; import { getUsername } from '../../../util/matrixUtil'; @@ -20,9 +20,12 @@ import IconButton from '../../atoms/button/IconButton'; import ScrollView from '../../atoms/scroll/ScrollView'; import { MessageReply } from '../../molecules/message/Message'; +import StickerBoard from '../sticker-board/StickerBoard'; + import CirclePlusIC from '../../../../public/res/ic/outlined/circle-plus.svg'; import EmojiIC from '../../../../public/res/ic/outlined/emoji.svg'; import SendIC from '../../../../public/res/ic/outlined/send.svg'; +import StickerIC from '../../../../public/res/ic/outlined/sticker.svg'; import ShieldIC from '../../../../public/res/ic/outlined/shield.svg'; import VLCIC from '../../../../public/res/ic/outlined/vlc.svg'; import VolumeFullIC from '../../../../public/res/ic/outlined/volume-full.svg'; @@ -128,7 +131,11 @@ function RoomViewInput({ } function firedCmd(cmdData) { const msg = textAreaRef.current.value; - textAreaRef.current.value = replaceCmdWith(msg, cmdCursorPos, typeof cmdData?.replace !== 'undefined' ? cmdData.replace : ''); + textAreaRef.current.value = replaceCmdWith( + msg, + cmdCursorPos, + typeof cmdData?.replace !== 'undefined' ? cmdData.replace : '', + ); deactivateCmd(); } @@ -199,6 +206,33 @@ function RoomViewInput({ if (replyTo !== null) setReplyTo(null); }; + const handleSendSticker = async (data) => { + const { mxc: url, body, httpUrl } = data; + const info = {}; + + const img = new Image(); + img.src = httpUrl; + + try { + const res = await fetch(httpUrl); + const blob = await res.blob(); + info.w = img.width; + info.h = img.height; + info.mimetype = blob.type; + info.size = blob.size; + info.thumbnail_info = { ...info }; + info.thumbnail_url = url; + } catch { + // send sticker without info + } + + mx.sendEvent(roomId, 'm.sticker', { + body, + url, + info, + }); + }; + function processTyping(msg) { const isEmptyMsg = msg === ''; @@ -338,6 +372,29 @@ function RoomViewInput({ {isMarkdown && }
+ { + openReusableContextMenu( + 'top', + (() => { + const cords = getEventCords(e); + cords.y -= 20; + return cords; + })(), + (closeMenu) => ( + { + handleSendSticker(data); + closeMenu(); + }} + /> + ), + ); + }} + tooltip="Sticker" + src={StickerIC} + /> { const cords = getEventCords(e); diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index b0f45f41..b50c9926 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -24,6 +24,7 @@ import PopupWindow from '../../molecules/popup-window/PopupWindow'; import SettingTile from '../../molecules/setting-tile/SettingTile'; import ImportE2ERoomKeys from '../../molecules/import-export-e2e-room-keys/ImportE2ERoomKeys'; import ExportE2ERoomKeys from '../../molecules/import-export-e2e-room-keys/ExportE2ERoomKeys'; +import { ImagePackUser, ImagePackGlobal } from '../../molecules/image-pack/ImagePack'; import ProfileEditor from '../profile-editor/ProfileEditor'; import CrossSigning from './CrossSigning'; @@ -31,6 +32,7 @@ import KeyBackup from './KeyBackup'; import DeviceManage from './DeviceManage'; import SunIC from '../../../../public/res/ic/outlined/sun.svg'; +import EmojiIC from '../../../../public/res/ic/outlined/emoji.svg'; import LockIC from '../../../../public/res/ic/outlined/lock.svg'; import BellIC from '../../../../public/res/ic/outlined/bell.svg'; import InfoIC from '../../../../public/res/ic/outlined/info.svg'; @@ -169,6 +171,15 @@ function NotificationsSection() { ); } +function EmojiSection() { + return ( + <> +
+
+ + ); +} + function SecuritySection() { return (
@@ -250,6 +261,7 @@ function AboutSection() { export const tabText = { APPEARANCE: 'Appearance', NOTIFICATIONS: 'Notifications', + EMOJI: 'Emoji', SECURITY: 'Security', ABOUT: 'About', }; @@ -263,6 +275,11 @@ const tabItems = [{ iconSrc: BellIC, disabled: false, render: () => , +}, { + text: tabText.EMOJI, + iconSrc: EmojiIC, + disabled: false, + render: () => , }, { text: tabText.SECURITY, iconSrc: LockIC, diff --git a/src/app/organisms/settings/Settings.scss b/src/app/organisms/settings/Settings.scss index dac53d7a..d77e634a 100644 --- a/src/app/organisms/settings/Settings.scss +++ b/src/app/organisms/settings/Settings.scss @@ -40,7 +40,8 @@ .settings-notifications, .settings-security__card, .settings-security .device-manage, -.settings-about__card { +.settings-about__card, +.settings-emoji__card { @extend .settings-window__card; } diff --git a/src/app/organisms/space-settings/SpaceSettings.jsx b/src/app/organisms/space-settings/SpaceSettings.jsx index 43735993..2c9d6d46 100644 --- a/src/app/organisms/space-settings/SpaceSettings.jsx +++ b/src/app/organisms/space-settings/SpaceSettings.jsx @@ -25,6 +25,7 @@ import RoomVisibility from '../../molecules/room-visibility/RoomVisibility'; import RoomAliases from '../../molecules/room-aliases/RoomAliases'; import RoomPermissions from '../../molecules/room-permissions/RoomPermissions'; import RoomMembers from '../../molecules/room-members/RoomMembers'; +import RoomEmojis from '../../molecules/room-emojis/RoomEmojis'; import UserIC from '../../../../public/res/ic/outlined/user.svg'; import CrossIC from '../../../../public/res/ic/outlined/cross.svg'; @@ -35,6 +36,7 @@ import PinIC from '../../../../public/res/ic/outlined/pin.svg'; import PinFilledIC from '../../../../public/res/ic/filled/pin.svg'; import CategoryIC from '../../../../public/res/ic/outlined/category.svg'; import CategoryFilledIC from '../../../../public/res/ic/filled/category.svg'; +import EmojiIC from '../../../../public/res/ic/outlined/emoji.svg'; import { confirmDialog } from '../../molecules/confirm-dialog/ConfirmDialog'; import { useForceUpdate } from '../../hooks/useForceUpdate'; @@ -42,6 +44,7 @@ import { useForceUpdate } from '../../hooks/useForceUpdate'; const tabText = { GENERAL: 'General', MEMBERS: 'Members', + EMOJIS: 'Emojis', PERMISSIONS: 'Permissions', }; @@ -53,6 +56,10 @@ const tabItems = [{ iconSrc: UserIC, text: tabText.MEMBERS, disabled: false, +}, { + iconSrc: EmojiIC, + text: tabText.EMOJIS, + disabled: false, }, { iconSrc: ShieldUserIC, text: tabText.PERMISSIONS, @@ -178,6 +185,7 @@ function SpaceSettings() {
{selectedTab.text === tabText.GENERAL && } {selectedTab.text === tabText.MEMBERS && } + {selectedTab.text === tabText.EMOJIS && } {selectedTab.text === tabText.PERMISSIONS && }
diff --git a/src/app/organisms/sticker-board/StickerBoard.jsx b/src/app/organisms/sticker-board/StickerBoard.jsx new file mode 100644 index 00000000..53b75635 --- /dev/null +++ b/src/app/organisms/sticker-board/StickerBoard.jsx @@ -0,0 +1,88 @@ +/* eslint-disable jsx-a11y/click-events-have-key-events */ +/* eslint-disable jsx-a11y/no-static-element-interactions */ +import React from 'react'; +import PropTypes from 'prop-types'; +import './StickerBoard.scss'; + +import initMatrix from '../../../client/initMatrix'; +import { getRelevantPacks } from '../emoji-board/custom-emoji'; + +import Text from '../../atoms/text/Text'; +import ScrollView from '../../atoms/scroll/ScrollView'; + +function StickerBoard({ roomId, onSelect }) { + const mx = initMatrix.matrixClient; + const room = mx.getRoom(roomId); + + const parentIds = initMatrix.roomList.getAllParentSpaces(room.roomId); + const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); + + const packs = getRelevantPacks( + mx, + [room, ...parentRooms], + ).filter((pack) => pack.getStickers().length !== 0); + + function isTargetNotSticker(target) { + return target.classList.contains('sticker-board__sticker') === false; + } + function getStickerData(target) { + const mxc = target.getAttribute('data-mx-sticker'); + const body = target.getAttribute('title'); + const httpUrl = target.getAttribute('src'); + return { mxc, body, httpUrl }; + } + const handleOnSelect = (e) => { + if (isTargetNotSticker(e.target)) return; + + const stickerData = getStickerData(e.target); + onSelect(stickerData); + }; + + const renderPack = (pack) => ( +
+ {pack.displayName ?? 'Unknown'} +
+ {pack.getStickers().map((sticker) => ( + {sticker.shortcode} + ))} +
+
+ ); + + return ( +
+
+ +
+ { + packs.length > 0 + ? packs.map(renderPack) + : ( +
+ There is no sticker pack. +
+ ) + } +
+
+
+
+
+ ); +} +StickerBoard.propTypes = { + roomId: PropTypes.string.isRequired, + onSelect: PropTypes.func.isRequired, +}; + +export default StickerBoard; diff --git a/src/app/organisms/sticker-board/StickerBoard.scss b/src/app/organisms/sticker-board/StickerBoard.scss new file mode 100644 index 00000000..be8ad35a --- /dev/null +++ b/src/app/organisms/sticker-board/StickerBoard.scss @@ -0,0 +1,60 @@ +@use '../../partials/dir'; + +.sticker-board { + --sticker-board-height: 390px; + --sticker-board-width: 286px; + display: flex; + height: var(--sticker-board-height); + + &__container { + flex-grow: 1; + min-width: 0; + width: var(--sticker-board-width); + display: flex; + } + + &__content { + min-height: 100%; + } + + &__pack { + margin-bottom: var(--sp-normal); + position: relative; + + &-header { + position: sticky; + top: 0; + z-index: 99; + background-color: var(--bg-surface); + + @include dir.side(margin, var(--sp-extra-tight), 0); + padding: var(--sp-extra-tight) var(--sp-ultra-tight); + text-transform: uppercase; + box-shadow: 0 -4px 0 0 var(--bg-surface); + border-bottom: 1px solid var(--bg-surface-border); + } + &-items { + margin: var(--sp-tight); + @include dir.side(margin, var(--sp-normal), var(--sp-extra-tight)); + display: flex; + flex-wrap: wrap; + gap: var(--sp-normal) var(--sp-tight); + + img { + width: 76px; + height: 76px; + object-fit: contain; + cursor: pointer; + } + } + } + + &__empty { + width: 100%; + height: var(--sticker-board-height); + display: flex; + justify-content: center; + align-items: center; + text-align: center; + } +} \ No newline at end of file diff --git a/src/client/action/roomTimeline.js b/src/client/action/roomTimeline.js index 8297bf03..41c62d4f 100644 --- a/src/client/action/roomTimeline.js +++ b/src/client/action/roomTimeline.js @@ -11,17 +11,18 @@ async function redactEvent(roomId, eventId, reason) { } } -async function sendReaction(roomId, toEventId, reaction) { +async function sendReaction(roomId, toEventId, reaction, shortcode) { const mx = initMatrix.matrixClient; - + const content = { + 'm.relates_to': { + event_id: toEventId, + key: reaction, + rel_type: 'm.annotation', + }, + }; + if (typeof shortcode === 'string') content.shortcode = shortcode; try { - await mx.sendEvent(roomId, 'm.reaction', { - 'm.relates_to': { - event_id: toEventId, - key: reaction, - rel_type: 'm.annotation', - }, - }); + await mx.sendEvent(roomId, 'm.reaction', content); } catch (e) { throw new Error(e); } diff --git a/src/client/initMatrix.js b/src/client/initMatrix.js index aec2f3da..2118be56 100644 --- a/src/client/initMatrix.js +++ b/src/client/initMatrix.js @@ -67,7 +67,7 @@ class InitMatrix extends EventEmitter { if (prevState === null) { this.roomList = new RoomList(this.matrixClient); this.accountData = new AccountData(this.roomList); - this.roomsInput = new RoomsInput(this.matrixClient); + this.roomsInput = new RoomsInput(this.matrixClient, this.roomList); this.notifications = new Notifications(this.roomList); this.emit('init_loading_finished'); } diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index 882c7bc0..2377c8d0 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -5,21 +5,10 @@ import encrypt from 'browser-encrypt-attachment'; import { math } from 'micromark-extension-math'; import { getShortcodeToEmoji } from '../../app/organisms/emoji-board/custom-emoji'; import { mathExtensionHtml, spoilerExtension, spoilerExtensionHtml } from '../../util/markdown'; +import { getImageDimension } from '../../util/common'; import cons from './cons'; import settings from './settings'; -function getImageDimension(file) { - return new Promise((resolve) => { - const img = new Image(); - img.onload = async () => { - resolve({ - w: img.width, - h: img.height, - }); - }; - img.src = URL.createObjectURL(file); - }); -} function loadVideo(videoFile) { return new Promise((resolve, reject) => { const video = document.createElement('video'); @@ -120,14 +109,13 @@ function bindReplyToContent(roomId, reply, content) { return newContent; } -// Apply formatting to a plain text message -// -// This includes inserting any custom emoji that might be relevant, and (only if the -// user has enabled it in their settings) formatting the message using markdown. -function formatAndEmojifyText(room, text) { - const allEmoji = getShortcodeToEmoji(room); +function formatAndEmojifyText(mx, roomList, roomId, text) { + const room = mx.getRoom(roomId); + const { userIdsToDisplayNames } = room.currentState; + const parentIds = roomList.getAllParentSpaces(roomId); + const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); + const allEmoji = getShortcodeToEmoji(mx, [room, ...parentRooms]); - // Start by applying markdown formatting (if relevant) let formattedText; if (settings.isMarkdown) { formattedText = getFormattedBody(text); @@ -135,17 +123,25 @@ function formatAndEmojifyText(room, text) { formattedText = text; } - // Check to see if there are any :shortcode-style-tags: in the message - Array.from(formattedText.matchAll(/\B:([\w-]+):\B/g)) - // Then filter to only the ones corresponding to a valid emoji - .filter((match) => allEmoji.has(match[1])) - // Reversing the array ensures that indices are preserved as we start replacing + const MXID_REGEX = /\B@\S+:\S+\.\S+[^.,:;?!\s]/g; + Array.from(formattedText.matchAll(MXID_REGEX)) + .filter((mxidMatch) => userIdsToDisplayNames[mxidMatch[0]]) .reverse() - // Replace each :shortcode: with an tag + .forEach((mxidMatch) => { + const tag = `${userIdsToDisplayNames[mxidMatch[0]]}`; + + formattedText = formattedText.substr(0, mxidMatch.index) + + tag + + formattedText.substr(mxidMatch.index + mxidMatch[0].length); + }); + + const SHORTCODE_REGEX = /\B:([\w-]+):\B/g; + Array.from(formattedText.matchAll(SHORTCODE_REGEX)) + .filter((shortcodeMatch) => allEmoji.has(shortcodeMatch[1])) + .reverse() /* Reversing the array ensures that indices are preserved as we start replacing */ .forEach((shortcodeMatch) => { const emoji = allEmoji.get(shortcodeMatch[1]); - // Render the tag that will replace the shortcode let tag; if (emoji.mxc) { tag = `=15" + } + }, "node_modules/react-dnd": { "version": "15.1.2", "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-15.1.2.tgz", @@ -16495,15 +16515,14 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "requires": { - "ajv": "^8.0.0" - }, + "requires": {}, "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "version": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, + "optional": true, + "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16515,7 +16534,9 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true + "dev": true, + "optional": true, + "peer": true } } }, @@ -16950,6 +16971,11 @@ } } }, + "blurhash": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-1.1.5.tgz", + "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" + }, "bmp-js": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", @@ -22933,6 +22959,12 @@ "prop-types": "^15.5.6" } }, + "react-blurhash": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.1.3.tgz", + "integrity": "sha512-Q9lqbXg92NU6/2DoIl/cBM8YWL+Z4X66OiG4aT9ozOgjBwx104LHFCH5stf6aF+s0Q9Wf310Ul+dG+VXJltmPg==", + "requires": {} + }, "react-dnd": { "version": "15.1.2", "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-15.1.2.tgz", diff --git a/package.json b/package.json index 698da860..9a633d3b 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", + "blurhash": "^1.1.5", "browser-encrypt-attachment": "^0.3.0", "dateformat": "^5.0.3", "emojibase-data": "^7.0.1", @@ -40,6 +41,7 @@ "prop-types": "^15.8.1", "react": "^17.0.2", "react-autosize-textarea": "^7.1.0", + "react-blurhash": "^0.1.3", "react-dnd": "^15.1.2", "react-dnd-html5-backend": "^15.1.3", "react-dom": "^17.0.2", diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index c4b4a171..5f081b91 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -4,6 +4,7 @@ import './Media.scss'; import encrypt from 'browser-encrypt-attachment'; +import { BlurhashCanvas } from 'react-blurhash'; import Text from '../../atoms/text/Text'; import IconButton from '../../atoms/button/IconButton'; import Spinner from '../../atoms/spinner/Spinner'; @@ -154,7 +155,7 @@ File.propTypes = { }; function Image({ - name, width, height, link, file, type, + name, width, height, link, file, type, blurhash, }) { const [url, setUrl] = useState(null); @@ -175,6 +176,7 @@ function Image({
+ { blurhash && } { url !== null && {name}}
@@ -185,6 +187,7 @@ Image.defaultProps = { width: null, height: null, type: '', + blurhash: '', }; Image.propTypes = { name: PropTypes.string.isRequired, @@ -193,6 +196,7 @@ Image.propTypes = { link: PropTypes.string.isRequired, file: PropTypes.shape({}), type: PropTypes.string, + blurhash: PropTypes.string, }; function Sticker({ @@ -278,8 +282,8 @@ Audio.propTypes = { }; function Video({ - name, link, thumbnail, - width, height, file, type, thumbnailFile, thumbnailType, + name, link, thumbnail, thumbnailFile, thumbnailType, + width, height, file, type, blurhash, }) { const [isLoading, setIsLoading] = useState(false); const [url, setUrl] = useState(null); @@ -315,10 +319,14 @@ function Video({
+ { url === null && blurhash && } + { url === null && thumbUrl !== null && ( + /* eslint-disable-next-line jsx-a11y/alt-text */ + + )} { url === null && isLoading && } { url === null && !isLoading && } { url !== null && ( @@ -336,20 +344,22 @@ Video.defaultProps = { height: null, file: null, thumbnail: null, - type: '', thumbnailType: null, thumbnailFile: null, + type: '', + blurhash: null, }; Video.propTypes = { name: PropTypes.string.isRequired, link: PropTypes.string.isRequired, thumbnail: PropTypes.string, + thumbnailFile: PropTypes.shape({}), + thumbnailType: PropTypes.string, width: PropTypes.number, height: PropTypes.number, file: PropTypes.shape({}), type: PropTypes.string, - thumbnailFile: PropTypes.shape({}), - thumbnailType: PropTypes.string, + blurhash: PropTypes.string, }; export { diff --git a/src/app/molecules/media/Media.scss b/src/app/molecules/media/Media.scss index 16cf8f7e..b26b232a 100644 --- a/src/app/molecules/media/Media.scss +++ b/src/app/molecules/media/Media.scss @@ -33,6 +33,8 @@ font-size: 0; line-height: 0; + position: relative; + display: flex; justify-content: center; align-items: center; @@ -42,6 +44,19 @@ background-size: cover; } +.image-container, +.video-container { + & img, + & canvas { + position: absolute; + max-width: unset !important; + width: 100% !important; + height: 100%; + border-radius: 0 !important; + margin: 0 !important; + } +} + .sticker-container { display: inline-flex; max-width: 128px; @@ -51,25 +66,17 @@ } } -.image-container { - & img { - max-width: unset !important; - width: 100% !important; - border-radius: 0 !important; - margin: 0 !important; - } -} - .video-container { & .ic-btn-surface { background-color: var(--bg-surface-low); + position: absolute; } video { - width: 100% + width: 100%; } } .audio-container { audio { - width: 100% + width: 100%; } -} \ No newline at end of file +} diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 49337bdc..e94e5a46 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -610,6 +610,8 @@ function genMediaContent(mE) { let msgType = mE.getContent()?.msgtype; if (mE.getType() === 'm.sticker') msgType = 'm.sticker'; + const blurhash = mContent?.info?.['xyz.amorgan.blurhash']; + switch (msgType) { case 'm.file': return ( @@ -629,6 +631,7 @@ function genMediaContent(mE) { link={mx.mxcUrlToHttp(mediaMXC)} file={isEncryptedFile ? mContent.file : null} type={mContent.info?.mimetype} + blurhash={blurhash} /> ); case 'm.sticker': @@ -666,6 +669,7 @@ function genMediaContent(mE) { height={typeof mContent.info?.h === 'number' ? mContent.info?.h : null} file={isEncryptedFile ? mContent.file : null} type={mContent.info?.mimetype} + blurhash={blurhash} /> ); default: diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index 2377c8d0..81425542 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -3,12 +3,34 @@ import { micromark } from 'micromark'; import { gfm, gfmHtml } from 'micromark-extension-gfm'; import encrypt from 'browser-encrypt-attachment'; import { math } from 'micromark-extension-math'; +import { encode } from 'blurhash'; import { getShortcodeToEmoji } from '../../app/organisms/emoji-board/custom-emoji'; import { mathExtensionHtml, spoilerExtension, spoilerExtensionHtml } from '../../util/markdown'; import { getImageDimension } from '../../util/common'; import cons from './cons'; import settings from './settings'; +const blurhashField = 'xyz.amorgan.blurhash'; + +function encodeBlurhash(img) { + const canvas = document.createElement('canvas'); + canvas.width = 100; + canvas.height = 100; + const context = canvas.getContext('2d'); + context.drawImage(img, 0, 0, canvas.width, canvas.height); + const data = context.getImageData(0, 0, canvas.width, canvas.height); + return encode(data.data, data.width, data.height, 4, 4); +} + +function loadImage(url) { + return new Promise((resolve, reject) => { + const img = new Image(); + img.onload = () => resolve(img); + img.onerror = (err) => reject(err); + img.src = url; + }); +} + function loadVideo(videoFile) { return new Promise((resolve, reject) => { const video = document.createElement('video'); @@ -300,10 +322,11 @@ class RoomsInput extends EventEmitter { let uploadData = null; if (fileType === 'image') { - const imgDimension = await getImageDimension(file); + const img = await loadImage(URL.createObjectURL(file)); - info.w = imgDimension.w; - info.h = imgDimension.h; + info.w = img.width; + info.h = img.height; + info[blurhashField] = encodeBlurhash(img); content.msgtype = 'm.image'; content.body = file.name || 'Image'; @@ -313,8 +336,11 @@ class RoomsInput extends EventEmitter { try { const video = await loadVideo(file); + info.w = video.videoWidth; info.h = video.videoHeight; + info[blurhashField] = encodeBlurhash(video); + const thumbnailData = await getVideoThumbnail(video, video.videoWidth, video.videoHeight, 'image/jpeg'); const thumbnailUploadData = await this.uploadFile(roomId, thumbnailData.thumbnail); info.thumbnail_info = thumbnailData.info; From 21726b63f8f42f94587e5766d21ccc656f73ff3c Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sat, 6 Aug 2022 06:05:56 +0200 Subject: [PATCH 103/717] Show full timestamp on hover (#714) * Show full timestamp on hover * Not always display time * Always show full timestamp in search --- src/app/atoms/time/Time.jsx | 44 ++++++++++++++++++++ src/app/molecules/message/Message.jsx | 25 ++++++++--- src/app/molecules/message/TimelineChange.jsx | 9 ++-- src/app/molecules/room-search/RoomSearch.jsx | 3 +- src/app/organisms/room/RoomViewContent.jsx | 9 ++-- 5 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 src/app/atoms/time/Time.jsx diff --git a/src/app/atoms/time/Time.jsx b/src/app/atoms/time/Time.jsx new file mode 100644 index 00000000..750b958f --- /dev/null +++ b/src/app/atoms/time/Time.jsx @@ -0,0 +1,44 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import dateFormat from 'dateformat'; +import { isInSameDay } from '../../../util/common'; + +function Time({ timestamp, fullTime }) { + const date = new Date(timestamp); + + const formattedFullTime = dateFormat(date, 'dd mmmm yyyy, hh:MM TT'); + let formattedDate = formattedFullTime; + + if (!fullTime) { + const compareDate = new Date(); + const isToday = isInSameDay(date, compareDate); + compareDate.setDate(compareDate.getDate() - 1); + const isYesterday = isInSameDay(date, compareDate); + + formattedDate = dateFormat(date, isToday || isYesterday ? 'hh:MM TT' : 'dd/mm/yyyy'); + if (isYesterday) { + formattedDate = `Yesterday, ${formattedDate}`; + } + } + + return ( + + ); +} + +Time.defaultProps = { + fullTime: false, +}; + +Time.propTypes = { + timestamp: PropTypes.number.isRequired, + fullTime: PropTypes.bool, +}; + +export default Time; diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index e94e5a46..2f32bafa 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -24,6 +24,7 @@ import Tooltip from '../../atoms/tooltip/Tooltip'; import Input from '../../atoms/input/Input'; import Avatar from '../../atoms/avatar/Avatar'; import IconButton from '../../atoms/button/IconButton'; +import Time from '../../atoms/time/Time'; import ContextMenu, { MenuHeader, MenuItem, MenuBorder } from '../../atoms/context-menu/ContextMenu'; import * as Media from '../media/Media'; @@ -67,7 +68,7 @@ const MessageAvatar = React.memo(({ )); const MessageHeader = React.memo(({ - userId, username, time, + userId, username, timestamp, fullTime, }) => (
{twemojify(userId)}
- {time} + +
)); +MessageHeader.defaultProps = { + fullTime: false, +}; MessageHeader.propTypes = { userId: PropTypes.string.isRequired, username: PropTypes.string.isRequired, - time: PropTypes.string.isRequired, + timestamp: PropTypes.number.isRequired, + fullTime: PropTypes.bool, }; function MessageReply({ name, color, body }) { @@ -690,7 +697,7 @@ function getEditedBody(editedMEvent) { } function Message({ - mEvent, isBodyOnly, roomTimeline, focus, time, + mEvent, isBodyOnly, roomTimeline, focus, fullTime, }) { const [isEditing, setIsEditing] = useState(false); const roomId = mEvent.getRoomId(); @@ -751,7 +758,12 @@ function Message({ }
{!isBodyOnly && ( - + )} {roomTimeline && isReply && (
- {time} + +
); @@ -68,7 +71,7 @@ TimelineChange.propTypes = { PropTypes.string, PropTypes.node, ]).isRequired, - time: PropTypes.string.isRequired, + timestamp: PropTypes.number.isRequired, onClick: PropTypes.func, }; diff --git a/src/app/molecules/room-search/RoomSearch.jsx b/src/app/molecules/room-search/RoomSearch.jsx index f6bdf242..bd1cdfe9 100644 --- a/src/app/molecules/room-search/RoomSearch.jsx +++ b/src/app/molecules/room-search/RoomSearch.jsx @@ -120,14 +120,13 @@ function RoomSearch({ roomId }) { const renderTimeline = (timeline) => (
{ timeline.map((mEvent) => { - const time = dateFormat(mEvent.getDate(), 'dd/mm/yyyy - hh:MM TT'); const id = mEvent.getId(); return ( diff --git a/src/app/organisms/room/RoomViewContent.jsx b/src/app/organisms/room/RoomViewContent.jsx index ab1dfbab..52199648 100644 --- a/src/app/organisms/room/RoomViewContent.jsx +++ b/src/app/organisms/room/RoomViewContent.jsx @@ -125,10 +125,7 @@ function renderEvent(roomTimeline, mEvent, prevMEvent, isFocus = false) { && prevMEvent.getType() !== 'm.room.create' && diffMinutes(mEvent.getDate(), prevMEvent.getDate()) <= MAX_MSG_DIFF_MINUTES ); - const mDate = mEvent.getDate(); - const isToday = isInSameDay(mDate, new Date()); - - const time = dateFormat(mDate, isToday ? 'hh:MM TT' : 'dd/mm/yyyy'); + const timestamp = mEvent.getTs(); if (mEvent.getType() === 'm.room.member') { const timelineChange = parseTimelineChange(mEvent); @@ -138,7 +135,7 @@ function renderEvent(roomTimeline, mEvent, prevMEvent, isFocus = false) { key={mEvent.getId()} variant={timelineChange.variant} content={timelineChange.content} - time={time} + timestamp={timestamp} /> ); } @@ -149,7 +146,7 @@ function renderEvent(roomTimeline, mEvent, prevMEvent, isFocus = false) { isBodyOnly={isBodyOnly} roomTimeline={roomTimeline} focus={isFocus} - time={time} + fullTime={false} /> ); } From 120e8de9d10e7f3944529bad49c632a695000c5c Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 6 Aug 2022 12:21:20 +0530 Subject: [PATCH 104/717] Remove unused import --- src/app/molecules/room-search/RoomSearch.jsx | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/app/molecules/room-search/RoomSearch.jsx b/src/app/molecules/room-search/RoomSearch.jsx index bd1cdfe9..2612aed1 100644 --- a/src/app/molecules/room-search/RoomSearch.jsx +++ b/src/app/molecules/room-search/RoomSearch.jsx @@ -2,8 +2,6 @@ import React, { useState, useEffect } from 'react'; import PropTypes from 'prop-types'; import './RoomSearch.scss'; -import dateFormat from 'dateformat'; - import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; import { selectRoom } from '../../../client/action/navigation'; From adb584623e0d69832ffa8745138a24fb3c096c22 Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 6 Aug 2022 12:40:24 +0530 Subject: [PATCH 105/717] Support RTL text in messages (#717) --- src/app/molecules/message/Message.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 2f32bafa..6e3def43 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -246,7 +246,7 @@ const MessageBody = React.memo(({ return (
-
+
{ msgType === 'm.emote' && ( <> {'* '} From c6812b5b116966e51ce677094acac86b5bb22618 Mon Sep 17 00:00:00 2001 From: Ajay Bura Date: Sat, 6 Aug 2022 12:50:23 +0530 Subject: [PATCH 106/717] Reset read receipt on sending sticker --- src/app/organisms/room/RoomViewInput.jsx | 25 +------------------- src/client/state/RoomsInput.js | 29 +++++++++++++++++++++++- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index 4a7b2bf7..63870131 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -207,30 +207,7 @@ function RoomViewInput({ }; const handleSendSticker = async (data) => { - const { mxc: url, body, httpUrl } = data; - const info = {}; - - const img = new Image(); - img.src = httpUrl; - - try { - const res = await fetch(httpUrl); - const blob = await res.blob(); - info.w = img.width; - info.h = img.height; - info.mimetype = blob.type; - info.size = blob.size; - info.thumbnail_info = { ...info }; - info.thumbnail_url = url; - } catch { - // send sticker without info - } - - mx.sendEvent(roomId, 'm.sticker', { - body, - url, - info, - }); + roomsInput.sendSticker(roomId, data); }; function processTyping(msg) { diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index 81425542..b9215c85 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -6,7 +6,6 @@ import { math } from 'micromark-extension-math'; import { encode } from 'blurhash'; import { getShortcodeToEmoji } from '../../app/organisms/emoji-board/custom-emoji'; import { mathExtensionHtml, spoilerExtension, spoilerExtensionHtml } from '../../util/markdown'; -import { getImageDimension } from '../../util/common'; import cons from './cons'; import settings from './settings'; @@ -312,6 +311,34 @@ class RoomsInput extends EventEmitter { this.emit(cons.events.roomsInput.MESSAGE_SENT, roomId); } + async sendSticker(roomId, data) { + const { mxc: url, body, httpUrl } = data; + const info = {}; + + const img = new Image(); + img.src = httpUrl; + + try { + const res = await fetch(httpUrl); + const blob = await res.blob(); + info.w = img.width; + info.h = img.height; + info.mimetype = blob.type; + info.size = blob.size; + info.thumbnail_info = { ...info }; + info.thumbnail_url = url; + } catch { + // send sticker without info + } + + this.matrixClient.sendEvent(roomId, 'm.sticker', { + body, + url, + info, + }); + this.emit(cons.events.roomsInput.MESSAGE_SENT, roomId); + } + async sendFile(roomId, file) { const fileType = file.type.slice(0, file.type.indexOf('/')); const info = { From 91871077516cd571a5a4f5b24877f489f5c5ff3d Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 7 Aug 2022 14:28:49 +0530 Subject: [PATCH 107/717] Stop sending mxid in body for pills --- src/client/state/RoomsInput.js | 81 ++++++++++++++++++++++------------ 1 file changed, 53 insertions(+), 28 deletions(-) diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index b9215c85..6b085fb3 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -10,6 +10,8 @@ import cons from './cons'; import settings from './settings'; const blurhashField = 'xyz.amorgan.blurhash'; +const MXID_REGEX = /\B@\S+:\S+\.\S+[^.,:;?!\s]/g; +const SHORTCODE_REGEX = /\B:([\w-]+):\B/g; function encodeBlurhash(img) { const canvas = document.createElement('canvas'); @@ -130,10 +132,25 @@ function bindReplyToContent(roomId, reply, content) { return newContent; } -function formatAndEmojifyText(mx, roomList, roomId, text) { - const room = mx.getRoom(roomId); +function findAndReplace(text, regex, filter, replace) { + let copyText = text; + Array.from(copyText.matchAll(regex)) + .filter(filter) + .reverse() /* to replace backward to forward */ + .forEach((match) => { + const matchText = match[0]; + const tag = replace(match); + + copyText = copyText.substr(0, match.index) + + tag + + copyText.substr(match.index + matchText.length); + }); + return copyText; +} + +function formatAndEmojifyText(mx, roomList, room, text) { const { userIdsToDisplayNames } = room.currentState; - const parentIds = roomList.getAllParentSpaces(roomId); + const parentIds = roomList.getAllParentSpaces(room.roomId); const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); const allEmoji = getShortcodeToEmoji(mx, [room, ...parentRooms]); @@ -144,24 +161,20 @@ function formatAndEmojifyText(mx, roomList, roomId, text) { formattedText = text; } - const MXID_REGEX = /\B@\S+:\S+\.\S+[^.,:;?!\s]/g; - Array.from(formattedText.matchAll(MXID_REGEX)) - .filter((mxidMatch) => userIdsToDisplayNames[mxidMatch[0]]) - .reverse() - .forEach((mxidMatch) => { - const tag = `${userIdsToDisplayNames[mxidMatch[0]]}`; - - formattedText = formattedText.substr(0, mxidMatch.index) - + tag - + formattedText.substr(mxidMatch.index + mxidMatch[0].length); - }); - - const SHORTCODE_REGEX = /\B:([\w-]+):\B/g; - Array.from(formattedText.matchAll(SHORTCODE_REGEX)) - .filter((shortcodeMatch) => allEmoji.has(shortcodeMatch[1])) - .reverse() /* Reversing the array ensures that indices are preserved as we start replacing */ - .forEach((shortcodeMatch) => { - const emoji = allEmoji.get(shortcodeMatch[1]); + formattedText = findAndReplace( + formattedText, + MXID_REGEX, + (match) => userIdsToDisplayNames[match[0]], + (match) => ( + `@${userIdsToDisplayNames[match[0]]}` + ), + ); + formattedText = findAndReplace( + formattedText, + SHORTCODE_REGEX, + (match) => allEmoji.has(match[1]), + (match) => { + const emoji = allEmoji.get(match[1]); let tag; if (emoji.mxc) { @@ -175,11 +188,9 @@ function formatAndEmojifyText(mx, roomList, roomId, text) { } else { tag = emoji.unicode; } - - formattedText = formattedText.substr(0, shortcodeMatch.index) - + tag - + formattedText.substr(shortcodeMatch.index + shortcodeMatch[0].length); - }); + return tag; + }, + ); return formattedText; } @@ -274,6 +285,7 @@ class RoomsInput extends EventEmitter { } async sendInput(roomId) { + const room = this.matrixClient.getRoom(roomId); const input = this.getInput(roomId); input.isSending = true; this.roomIdToInput.set(roomId, input); @@ -292,9 +304,15 @@ class RoomsInput extends EventEmitter { const formattedBody = formatAndEmojifyText( this.matrixClient, this.roomList, - roomId, + room, input.message, ); + content.body = findAndReplace( + content.body, + MXID_REGEX, + (match) => room.currentState.userIdsToDisplayNames[match[0]], + (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, + ); if (formattedBody !== input.message) { // Formatting was applied, and we need to switch to custom HTML content.format = 'org.matrix.custom.html'; @@ -446,6 +464,7 @@ class RoomsInput extends EventEmitter { } async sendEditedMessage(roomId, mEvent, editedBody) { + const room = this.matrixClient.getRoom(roomId); const isReply = typeof mEvent.getWireContent()['m.relates_to']?.['m.in_reply_to'] !== 'undefined'; const content = { @@ -465,9 +484,15 @@ class RoomsInput extends EventEmitter { const formattedBody = formatAndEmojifyText( this.matrixClient, this.roomList, - roomId, + room, editedBody, ); + content.body = findAndReplace( + content.body, + MXID_REGEX, + (match) => room.currentState.userIdsToDisplayNames[match[0]], + (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, + ); if (formattedBody !== editedBody) { content.formatted_body = ` * ${formattedBody}`; content.format = 'org.matrix.custom.html'; From 96b22eb55714e29f939589813361f8b28e487b0d Mon Sep 17 00:00:00 2001 From: anyone00 <41706133+anyone00@users.noreply.github.com> Date: Sun, 7 Aug 2022 12:11:56 +0300 Subject: [PATCH 108/717] Support RTL text in the input fields (#720) * Support RTL text in the room input field set the correct direction for text according to the language written in * Make all input RTLable Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- src/app/atoms/input/Input.jsx | 2 ++ src/app/organisms/room/RoomViewInput.jsx | 1 + 2 files changed, 3 insertions(+) diff --git a/src/app/atoms/input/Input.jsx b/src/app/atoms/input/Input.jsx index d9f79eb0..96c94967 100644 --- a/src/app/atoms/input/Input.jsx +++ b/src/app/atoms/input/Input.jsx @@ -16,6 +16,7 @@ function Input({ { resizable ? ( ) : ( Date: Sun, 7 Aug 2022 14:51:56 +0530 Subject: [PATCH 109/717] Bump matrix-js-sdk from 18.1.0 to 19.2.0 (#711) * Bump matrix-js-sdk from 18.1.0 to 19.2.0 Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 18.1.0 to 19.2.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v18.1.0...v19.2.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Remove session store Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 56 ++++++++++++++++++---------------------- package.json | 2 +- src/client/initMatrix.js | 1 - 3 files changed, 26 insertions(+), 33 deletions(-) diff --git a/package-lock.json b/package-lock.json index abc3d330..8094108e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "katex": "^0.16.0", "linkify-html": "^4.0.0-beta.5", "linkifyjs": "^4.0.0-beta.5", - "matrix-js-sdk": "^18.1.0", + "matrix-js-sdk": "^19.2.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", @@ -3469,12 +3469,9 @@ "dev": true }, "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, "node_modules/base64-js": { "version": "1.5.1", @@ -3821,11 +3818,11 @@ } }, "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "dependencies": { - "base-x": "^3.0.2" + "base-x": "^4.0.0" } }, "node_modules/buffer": { @@ -9111,18 +9108,18 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.1.0.tgz", - "integrity": "sha512-O5D36paIsY7a2M2mOo7KKU7v1Mb3PVkmYKupXYcXd9gB/Ki1K4mds+vSDEhgkKyKwk6MK1AV/vgvp0xJCsttvg==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.2.0.tgz", + "integrity": "sha512-alvTasCTCo/XXSIkKEj8xKe1NMsyiVDDVIQdU9ZHI1aePq+DrAcx8CqB7L/dgjk842v+63Eke1f/jZuFWvjn4w==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", "browser-request": "^0.3.3", - "bs58": "^4.0.1", + "bs58": "^5.0.0", "content-type": "^1.0.4", "loglevel": "^1.7.1", "matrix-events-sdk": "^0.0.1-beta.7", - "p-retry": "^4.5.0", + "p-retry": "4", "qs": "^6.9.6", "request": "^2.88.2", "unhomoglyph": "^1.0.6" @@ -16897,12 +16894,9 @@ "dev": true }, "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, "base64-js": { "version": "1.5.1", @@ -17184,11 +17178,11 @@ } }, "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", "requires": { - "base-x": "^3.0.2" + "base-x": "^4.0.0" } }, "buffer": { @@ -21259,18 +21253,18 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "18.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-18.1.0.tgz", - "integrity": "sha512-O5D36paIsY7a2M2mOo7KKU7v1Mb3PVkmYKupXYcXd9gB/Ki1K4mds+vSDEhgkKyKwk6MK1AV/vgvp0xJCsttvg==", + "version": "19.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.2.0.tgz", + "integrity": "sha512-alvTasCTCo/XXSIkKEj8xKe1NMsyiVDDVIQdU9ZHI1aePq+DrAcx8CqB7L/dgjk842v+63Eke1f/jZuFWvjn4w==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", "browser-request": "^0.3.3", - "bs58": "^4.0.1", + "bs58": "^5.0.0", "content-type": "^1.0.4", "loglevel": "^1.7.1", "matrix-events-sdk": "^0.0.1-beta.7", - "p-retry": "^4.5.0", + "p-retry": "4", "qs": "^6.9.6", "request": "^2.88.2", "unhomoglyph": "^1.0.6" diff --git a/package.json b/package.json index 9a633d3b..cb84111e 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "katex": "^0.16.0", "linkify-html": "^4.0.0-beta.5", "linkifyjs": "^4.0.0-beta.5", - "matrix-js-sdk": "^18.1.0", + "matrix-js-sdk": "^19.2.0", "micromark": "^3.0.10", "micromark-extension-gfm": "^2.0.1", "micromark-extension-math": "^2.0.2", diff --git a/src/client/initMatrix.js b/src/client/initMatrix.js index 2118be56..936334ce 100644 --- a/src/client/initMatrix.js +++ b/src/client/initMatrix.js @@ -33,7 +33,6 @@ class InitMatrix extends EventEmitter { accessToken: secret.accessToken, userId: secret.userId, store: indexedDBStore, - sessionStore: new sdk.WebStorageSessionStore(global.localStorage), cryptoStore: new sdk.IndexedDBCryptoStore(global.indexedDB, 'crypto-store'), deviceId: secret.deviceId, timelineSupport: true, From d23fc228d7dc1fe97abb8913c303e62b6c8d38e8 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 7 Aug 2022 19:04:38 +0530 Subject: [PATCH 110/717] Release v2.1.0 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8094108e..0b4ac3cc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.0.4", + "version": "2.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.0.4", + "version": "2.1.0", "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.11", diff --git a/package.json b/package.json index cb84111e..cf13846d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.0.4", + "version": "2.1.0", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 49d32a84..c63ec3e7 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.0.4', + version: '2.1.0', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 542ac4f4e128cc7fafb882d942d2e763eb8695b2 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 7 Aug 2022 20:01:31 +0530 Subject: [PATCH 111/717] Update olm --- olm.wasm | Bin 158683 -> 159054 bytes package-lock.json | 31 +++++++++++++------------------ package.json | 2 +- 3 files changed, 14 insertions(+), 19 deletions(-) mode change 100644 => 100755 olm.wasm diff --git a/olm.wasm b/olm.wasm old mode 100644 new mode 100755 index 3e308efc4f1d2f1f5c84e2aa21103ed7aad16217..eb0f50ad4de15cbd0cf9a399d2967ad868fdee24 GIT binary patch delta 36278 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 diff --git a/package-lock.json b/package-lock.json index 0b4ac3cc..3b298dd0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@fontsource/inter": "^4.5.11", "@fontsource/roboto": "^4.5.7", - "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", + "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", "blurhash": "^1.1.5", @@ -2425,9 +2425,9 @@ "dev": true }, "node_modules/@matrix-org/olm": { - "version": "3.2.8", - "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", - "integrity": "sha512-yCJzEYY2aG1z+7nxKYZC4DFYwQO/5iG019qgotJhauYJRhEG9gLrKTvXO6lRHS8TjnZzsZFZyO/hQUlI4Dryig==", + "version": "3.2.12", + "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", + "integrity": "sha512-muHkYUAXyRDg88YVFlmFY35vgLPovK2YPkuEtBfgnmBcxJvLpV9UMcMMxNkf8opjMV1k/NJ4niFQMzwd4UQOiA==", "license": "Apache-2.0" }, "node_modules/@nodelib/fs.scandir": { @@ -3016,8 +3016,6 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, - "optional": true, - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -3033,9 +3031,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/ajv-keywords": { "version": "3.5.2", @@ -15989,8 +15985,8 @@ "dev": true }, "@matrix-org/olm": { - "version": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", - "integrity": "sha512-yCJzEYY2aG1z+7nxKYZC4DFYwQO/5iG019qgotJhauYJRhEG9gLrKTvXO6lRHS8TjnZzsZFZyO/hQUlI4Dryig==" + "version": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", + "integrity": "sha512-muHkYUAXyRDg88YVFlmFY35vgLPovK2YPkuEtBfgnmBcxJvLpV9UMcMMxNkf8opjMV1k/NJ4niFQMzwd4UQOiA==" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -16512,14 +16508,15 @@ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, - "requires": {}, + "requires": { + "ajv": "^8.0.0" + }, "dependencies": { "ajv": { - "version": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, - "optional": true, - "peer": true, "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -16531,9 +16528,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, - "optional": true, - "peer": true + "dev": true } } }, diff --git a/package.json b/package.json index cf13846d..4ce2b922 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "dependencies": { "@fontsource/inter": "^4.5.11", "@fontsource/roboto": "^4.5.7", - "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.8.tgz", + "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", "blurhash": "^1.1.5", From 728c5434bb6cd87f5823c3f1ca8804f702bd0a3b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 7 Aug 2022 20:14:47 +0530 Subject: [PATCH 112/717] Fix blurhash visible under transparent img (#721) --- src/app/molecules/media/Media.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index 5f081b91..b272ea11 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -158,6 +158,7 @@ function Image({ name, width, height, link, file, type, blurhash, }) { const [url, setUrl] = useState(null); + const [blur, setBlur] = useState(true); useEffect(() => { let unmounted = false; @@ -176,8 +177,8 @@ function Image({

- { blurhash && } - { url !== null && {name}} + { blurhash && blur && } + { url !== null && setBlur(false)} src={url || link} alt={name} />}
); From 20e1df43d02d0089f7fe46dbd6e4bf84d8d6e2a3 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 7 Aug 2022 20:21:16 +0530 Subject: [PATCH 113/717] Release v2.1.1 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b298dd0..f808e3f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.1.0", + "version": "2.1.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.1.0", + "version": "2.1.1", "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.11", diff --git a/package.json b/package.json index 4ce2b922..1b7ac1ac 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.1.0", + "version": "2.1.1", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index c63ec3e7..1d962836 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.1.0', + version: '2.1.1', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 9f99320fdad1a89387057dcd6ddb9b995a65d3dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 09:30:34 +0530 Subject: [PATCH 114/717] Bump docker/build-push-action from 3.1.0 to 3.1.1 (#725) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 5e4f2fc5..1e7a71f3 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -15,7 +15,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Build Docker image - uses: docker/build-push-action@v3.1.0 + uses: docker/build-push-action@v3.1.1 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 857f9363..7147c759 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -86,7 +86,7 @@ jobs: with: images: ajbura/cinny - name: Build and push Docker image - uses: docker/build-push-action@v3.1.0 + uses: docker/build-push-action@v3.1.1 with: context: . platforms: linux/amd64,linux/arm64 From ce1e263d5730e768929bc75e6376df2e42daccca Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 13:33:54 +0530 Subject: [PATCH 115/717] Only scale image bigger than 512px (#731) --- src/app/molecules/image-pack/ImagePackUpload.jsx | 2 ++ src/util/common.js | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/app/molecules/image-pack/ImagePackUpload.jsx b/src/app/molecules/image-pack/ImagePackUpload.jsx index 9358856d..0b7c23b7 100644 --- a/src/app/molecules/image-pack/ImagePackUpload.jsx +++ b/src/app/molecules/image-pack/ImagePackUpload.jsx @@ -41,11 +41,13 @@ function ImagePackUpload({ onUpload }) { const img = evt.target.files[0]; if (!img) return; setImgFile(img); + shortcodeRef.current.value = img.name.slice(0, img.name.indexOf('.')); shortcodeRef.current.focus(); }; const handleRemove = () => { setImgFile(null); inputRef.current.value = null; + shortcodeRef.current.value = ''; }; return ( diff --git a/src/util/common.js b/src/util/common.js index 57891a9d..83fd20fe 100644 --- a/src/util/common.js +++ b/src/util/common.js @@ -166,6 +166,9 @@ export function scaleDownImage(imageFile, width, height) { img.onload = () => { let newWidth = img.width; let newHeight = img.height; + if (newHeight <= height && newWidth <= width) { + resolve(imageFile); + } if (newHeight > height) { newWidth = Math.floor(newWidth * (height / newHeight)); From 1692098d5d8254eb9241527f23673762586e72e9 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 13:41:07 +0530 Subject: [PATCH 116/717] Fix logout not working when server offline --- src/client/action/logout.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/client/action/logout.js b/src/client/action/logout.js index 3c7b8486..c4047bb7 100644 --- a/src/client/action/logout.js +++ b/src/client/action/logout.js @@ -1,13 +1,16 @@ import initMatrix from '../initMatrix'; -function logout() { +async function logout() { const mx = initMatrix.matrixClient; mx.stopClient(); - mx.logout().then(() => { - mx.clearStores(); - window.localStorage.clear(); - window.location.reload(); - }); + try { + await mx.logout(); + } catch { + // ignore if failed to logout + } + mx.clearStores(); + window.localStorage.clear(); + window.location.reload(); } export default logout; From 3c1cc59d599bb5dcb2adf327d059601ada5bb5e4 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 14:28:39 +0530 Subject: [PATCH 117/717] Escape html with markdown off (#732) --- src/app/molecules/message/Message.jsx | 8 +++- src/client/state/RoomsInput.js | 63 +++++++++++++-------------- src/util/sanitize.js | 10 ++--- 3 files changed, 42 insertions(+), 39 deletions(-) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 6e3def43..e4b68834 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -206,7 +206,13 @@ const MessageBody = React.memo(({ let content = null; if (isCustomHTML) { try { - content = twemojify(sanitizeCustomHtml(body), undefined, true, false, true); + content = twemojify( + sanitizeCustomHtml(initMatrix.matrixClient, body), + undefined, + true, + false, + true, + ); } catch { console.error('Malformed custom html: ', body); content = twemojify(body, undefined); diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index 6b085fb3..e1d3acf9 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -6,6 +6,7 @@ import { math } from 'micromark-extension-math'; import { encode } from 'blurhash'; import { getShortcodeToEmoji } from '../../app/organisms/emoji-board/custom-emoji'; import { mathExtensionHtml, spoilerExtension, spoilerExtensionHtml } from '../../util/markdown'; +import { sanitizeText } from '../../util/sanitize'; import cons from './cons'; import settings from './settings'; @@ -148,29 +149,25 @@ function findAndReplace(text, regex, filter, replace) { return copyText; } -function formatAndEmojifyText(mx, roomList, room, text) { +function formatUserPill(room, text) { const { userIdsToDisplayNames } = room.currentState; - const parentIds = roomList.getAllParentSpaces(room.roomId); - const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); - const allEmoji = getShortcodeToEmoji(mx, [room, ...parentRooms]); - - let formattedText; - if (settings.isMarkdown) { - formattedText = getFormattedBody(text); - } else { - formattedText = text; - } - - formattedText = findAndReplace( - formattedText, + return findAndReplace( + text, MXID_REGEX, (match) => userIdsToDisplayNames[match[0]], (match) => ( `@${userIdsToDisplayNames[match[0]]}` ), ); - formattedText = findAndReplace( - formattedText, +} + +function formatEmoji(mx, room, roomList, text) { + const parentIds = roomList.getAllParentSpaces(room.roomId); + const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); + const allEmoji = getShortcodeToEmoji(mx, [room, ...parentRooms]); + + return findAndReplace( + text, SHORTCODE_REGEX, (match) => allEmoji.has(match[1]), (match) => { @@ -191,8 +188,6 @@ function formatAndEmojifyText(mx, roomList, room, text) { return tag; }, ); - - return formattedText; } class RoomsInput extends EventEmitter { @@ -295,25 +290,27 @@ class RoomsInput extends EventEmitter { } if (this.getMessage(roomId).trim() !== '') { + const rawMessage = input.message; let content = { - body: input.message, + body: rawMessage, msgtype: 'm.text', }; // Apply formatting if relevant - const formattedBody = formatAndEmojifyText( - this.matrixClient, - this.roomList, - room, - input.message, - ); + let formattedBody = settings.isMarkdown + ? getFormattedBody(rawMessage) + : sanitizeText(rawMessage); + + formattedBody = formatUserPill(room, formattedBody); + formattedBody = formatEmoji(this.matrixClient, room, this.roomList, formattedBody); + content.body = findAndReplace( content.body, MXID_REGEX, (match) => room.currentState.userIdsToDisplayNames[match[0]], (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, ); - if (formattedBody !== input.message) { + if (formattedBody !== sanitizeText(rawMessage)) { // Formatting was applied, and we need to switch to custom HTML content.format = 'org.matrix.custom.html'; content.formatted_body = formattedBody; @@ -481,19 +478,19 @@ class RoomsInput extends EventEmitter { }; // Apply formatting if relevant - const formattedBody = formatAndEmojifyText( - this.matrixClient, - this.roomList, - room, - editedBody, - ); + let formattedBody = settings.isMarkdown + ? getFormattedBody(editedBody) + : sanitizeText(editedBody); + formattedBody = formatUserPill(room, formattedBody); + formattedBody = formatEmoji(this.matrixClient, room, this.roomList, formattedBody); + content.body = findAndReplace( content.body, MXID_REGEX, (match) => room.currentState.userIdsToDisplayNames[match[0]], (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, ); - if (formattedBody !== editedBody) { + if (formattedBody !== sanitizeText(editedBody)) { content.formatted_body = ` * ${formattedBody}`; content.format = 'org.matrix.custom.html'; content['m.new_content'].formatted_body = formattedBody; diff --git a/src/util/sanitize.js b/src/util/sanitize.js index 5351a1a0..ade47ffc 100644 --- a/src/util/sanitize.js +++ b/src/util/sanitize.js @@ -1,7 +1,7 @@ import sanitizeHtml from 'sanitize-html'; -import initMatrix from '../client/initMatrix'; const MAX_TAG_NESTING = 100; +let mx = null; const permittedHtmlTags = [ 'font', 'del', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', @@ -54,7 +54,7 @@ function transformATag(tagName, attribs) { 'data-mx-pill': userId, }, }; - if (userId === initMatrix.matrixClient.getUserId()) { + if (userId === mx?.getUserId()) { pill.attribs['data-mx-ping'] = undefined; } return pill; @@ -76,17 +76,17 @@ function transformATag(tagName, attribs) { function transformImgTag(tagName, attribs) { const { src } = attribs; - const mx = initMatrix.matrixClient; return { tagName, attribs: { ...attribs, - src: src.startsWith('mxc://') ? mx.mxcUrlToHttp(src) : src, + src: src.startsWith('mxc://') ? mx?.mxcUrlToHttp(src) : src, }, }; } -export function sanitizeCustomHtml(body) { +export function sanitizeCustomHtml(matrixClient, body) { + mx = matrixClient; return sanitizeHtml(body, { allowedTags: permittedHtmlTags, allowedAttributes: permittedTagToAttributes, From 1da3d252e8f4ed7e1a6573f87e6275ead403b1c1 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 16:13:53 +0530 Subject: [PATCH 118/717] Add navigation bar to sticker board --- src/app/organisms/emoji-board/EmojiBoard.jsx | 104 +++++++++--------- src/app/organisms/emoji-board/EmojiBoard.scss | 9 +- .../organisms/sticker-board/StickerBoard.jsx | 31 +++++- .../organisms/sticker-board/StickerBoard.scss | 16 +++ 4 files changed, 103 insertions(+), 57 deletions(-) diff --git a/src/app/organisms/emoji-board/EmojiBoard.jsx b/src/app/organisms/emoji-board/EmojiBoard.jsx index b97cab0a..d9762323 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.jsx +++ b/src/app/organisms/emoji-board/EmojiBoard.jsx @@ -252,6 +252,58 @@ function EmojiBoard({ onSelect, searchRef }) { return (
+ +
+ {recentEmojis.length > 0 && ( + openGroup(0)} + src={RecentClockIC} + tooltip="Recent" + tooltipPlacement="left" + /> + )} +
+ { + availableEmojis.map((pack) => { + const src = initMatrix.matrixClient + .mxcUrlToHttp(pack.avatarUrl ?? pack.getEmojis()[0].mxc); + return ( + openGroup(recentOffset + pack.packIndex)} + src={src} + key={pack.packIndex} + tooltip={pack.displayName ?? 'Unknown'} + tooltipPlacement="left" + isImage + /> + ); + }) + } +
+
+ { + [ + [0, EmojiIC, 'Smilies'], + [1, DogIC, 'Animals'], + [2, CupIC, 'Food'], + [3, BallIC, 'Activities'], + [4, PhotoIC, 'Travel'], + [5, BulbIC, 'Objects'], + [6, PeaceIC, 'Symbols'], + [7, FlagIC, 'Flags'], + ].map(([indx, ico, name]) => ( + openGroup(recentOffset + availableEmojis.length + indx)} + key={indx} + src={ico} + tooltip={name} + tooltipPlacement="left" + /> + )) + } +
+
+
@@ -285,58 +337,6 @@ function EmojiBoard({ onSelect, searchRef }) { :slight_smile:
- -
- {recentEmojis.length > 0 && ( - openGroup(0)} - src={RecentClockIC} - tooltip="Recent" - tooltipPlacement="right" - /> - )} -
- { - availableEmojis.map((pack) => { - const src = initMatrix.matrixClient - .mxcUrlToHttp(pack.avatarUrl ?? pack.getEmojis()[0].mxc); - return ( - openGroup(recentOffset + pack.packIndex)} - src={src} - key={pack.packIndex} - tooltip={pack.displayName ?? 'Unknown'} - tooltipPlacement="right" - isImage - /> - ); - }) - } -
-
- { - [ - [0, EmojiIC, 'Smilies'], - [1, DogIC, 'Animals'], - [2, CupIC, 'Food'], - [3, BallIC, 'Activities'], - [4, PhotoIC, 'Travel'], - [5, BulbIC, 'Objects'], - [6, PeaceIC, 'Symbols'], - [7, FlagIC, 'Flags'], - ].map(([indx, ico, name]) => ( - openGroup(recentOffset + availableEmojis.length + indx)} - key={indx} - src={ico} - tooltip={name} - tooltipPlacement="right" - /> - )) - } -
-
-
); } diff --git a/src/app/organisms/emoji-board/EmojiBoard.scss b/src/app/organisms/emoji-board/EmojiBoard.scss index 6883e18e..7bdaa066 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.scss +++ b/src/app/organisms/emoji-board/EmojiBoard.scss @@ -26,7 +26,7 @@ min-height: 100%; padding: 4px 6px; background-color: var(--bg-surface-low); - @include dir.side(border, 1px solid var(--bg-surface-border), none); + @include dir.side(border, none, 1px solid var(--bg-surface-border)); position: relative; @@ -122,8 +122,11 @@ @include dir.side(margin, var(--left-margin), var(--right-margin)); } & .emoji { - width: 38px; - height: 38px; + max-width: 38px; + max-height: 38px; + width: 100%; + height: 100%; + overflow: hidden; object-fit: contain; padding: var(--emoji-padding); cursor: pointer; diff --git a/src/app/organisms/sticker-board/StickerBoard.jsx b/src/app/organisms/sticker-board/StickerBoard.jsx index 53b75635..91e25918 100644 --- a/src/app/organisms/sticker-board/StickerBoard.jsx +++ b/src/app/organisms/sticker-board/StickerBoard.jsx @@ -1,6 +1,6 @@ /* eslint-disable jsx-a11y/click-events-have-key-events */ /* eslint-disable jsx-a11y/no-static-element-interactions */ -import React from 'react'; +import React, { useRef } from 'react'; import PropTypes from 'prop-types'; import './StickerBoard.scss'; @@ -9,10 +9,12 @@ import { getRelevantPacks } from '../emoji-board/custom-emoji'; import Text from '../../atoms/text/Text'; import ScrollView from '../../atoms/scroll/ScrollView'; +import IconButton from '../../atoms/button/IconButton'; function StickerBoard({ roomId, onSelect }) { const mx = initMatrix.matrixClient; const room = mx.getRoom(roomId); + const scrollRef = useRef(null); const parentIds = initMatrix.roomList.getAllParentSpaces(room.roomId); const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); @@ -38,6 +40,11 @@ function StickerBoard({ roomId, onSelect }) { onSelect(stickerData); }; + const openGroup = (groupIndex) => { + const scrollContent = scrollRef.current.firstElementChild; + scrollContent.children[groupIndex].scrollIntoView(); + }; + const renderPack = (pack) => (
{pack.displayName ?? 'Unknown'} @@ -50,6 +57,7 @@ function StickerBoard({ roomId, onSelect }) { alt={sticker.shortcode} title={sticker.body ?? sticker.shortcode} data-mx-sticker={sticker.mxc} + loading="lazy" /> ))}
@@ -58,8 +66,27 @@ function StickerBoard({ roomId, onSelect }) { return (
+ {packs.length > 0 && ( + +
+ {packs.map((pack, index) => { + const src = mx.mxcUrlToHttp(pack.avatarUrl ?? pack.getStickers()[0].mxc); + return ( + openGroup(index)} + src={src} + tooltip={pack.displayName || 'Unknown'} + tooltipPlacement="left" + isImage + /> + ); + })} +
+
+ )}
- +
.scrollbar { + width: initial; + height: var(--sticker-board-height); + } + + &__sidebar { + display: flex; + flex-direction: column; + min-height: 100%; + padding: 4px 6px; + + background-color: var(--bg-surface-low); + @include dir.side(border, none, 1px solid var(--bg-surface-border)); + } &__container { flex-grow: 1; From 59fd34a4b4a7ec1c2628d18db5fa622f495c13be Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 16:24:22 +0530 Subject: [PATCH 119/717] Replace space by underscore in emoji shortcodes --- src/app/molecules/image-pack/ImagePack.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/molecules/image-pack/ImagePack.jsx b/src/app/molecules/image-pack/ImagePack.jsx index 725291d1..f88886c1 100644 --- a/src/app/molecules/image-pack/ImagePack.jsx +++ b/src/app/molecules/image-pack/ImagePack.jsx @@ -118,7 +118,7 @@ function useImagePackHandles(pack, sendPackContent) { const getNewKey = (key) => { if (typeof key !== 'string') return undefined; - let newKey = key?.replace(/\s/g, '-'); + let newKey = key?.replace(/\s/g, '_'); if (pack.getImages().get(newKey)) { newKey = suffixRename( newKey, From 0cf5aac591028ccb5ed760bd25853e7ad7dd023c Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 16:31:02 +0530 Subject: [PATCH 120/717] Fix emoji board style --- src/app/organisms/emoji-board/EmojiBoard.scss | 1 - src/app/organisms/sticker-board/StickerBoard.scss | 2 -- 2 files changed, 3 deletions(-) diff --git a/src/app/organisms/emoji-board/EmojiBoard.scss b/src/app/organisms/emoji-board/EmojiBoard.scss index 7bdaa066..7f2e2384 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.scss +++ b/src/app/organisms/emoji-board/EmojiBoard.scss @@ -25,7 +25,6 @@ min-height: 100%; padding: 4px 6px; - background-color: var(--bg-surface-low); @include dir.side(border, none, 1px solid var(--bg-surface-border)); position: relative; diff --git a/src/app/organisms/sticker-board/StickerBoard.scss b/src/app/organisms/sticker-board/StickerBoard.scss index 524ceeae..b4e55130 100644 --- a/src/app/organisms/sticker-board/StickerBoard.scss +++ b/src/app/organisms/sticker-board/StickerBoard.scss @@ -17,8 +17,6 @@ flex-direction: column; min-height: 100%; padding: 4px 6px; - - background-color: var(--bg-surface-low); @include dir.side(border, none, 1px solid var(--bg-surface-border)); } From 258afec39134e33319a68c7839fe2248c6b58465 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 17:20:55 +0530 Subject: [PATCH 121/717] Only render mxc images in markdown --- src/util/sanitize.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/util/sanitize.js b/src/util/sanitize.js index ade47ffc..0f88c62b 100644 --- a/src/util/sanitize.js +++ b/src/util/sanitize.js @@ -76,11 +76,22 @@ function transformATag(tagName, attribs) { function transformImgTag(tagName, attribs) { const { src } = attribs; + if (src.startsWith('mxc://') === false) { + return { + tagName: 'a', + attribs: { + href: src, + rel: 'noopener', + target: '_blank', + }, + text: attribs.alt || src, + }; + } return { tagName, attribs: { ...attribs, - src: src.startsWith('mxc://') ? mx?.mxcUrlToHttp(src) : src, + src: mx?.mxcUrlToHttp(src), }, }; } From 820d08017a98bc314982cd3f30c2e73f28f25c2f Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 18:41:09 +0530 Subject: [PATCH 122/717] Fix image not loading without h/w data (#738) --- src/app/molecules/media/Media.jsx | 35 ++++++++++++++++-------------- src/app/molecules/media/Media.scss | 25 +++++++++++---------- 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index b272ea11..5ef25ecb 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -178,7 +178,7 @@ function Image({
{ blurhash && blur && } - { url !== null && setBlur(false)} src={url || link} alt={name} />} + { url !== null && setBlur(false)} src={url || link} alt={name} />}
); @@ -227,11 +227,11 @@ function Sticker({ Sticker.defaultProps = { file: null, type: '', + width: null, + height: null, }; Sticker.propTypes = { name: PropTypes.string.isRequired, - width: null, - height: null, width: PropTypes.number, height: PropTypes.number, link: PropTypes.string.isRequired, @@ -289,6 +289,7 @@ function Video({ const [isLoading, setIsLoading] = useState(false); const [url, setUrl] = useState(null); const [thumbUrl, setThumbUrl] = useState(null); + const [blur, setBlur] = useState(true); useEffect(() => { let unmounted = false; @@ -303,16 +304,16 @@ function Video({ }; }, []); - async function loadVideo() { + const loadVideo = async () => { const myUrl = await getUrl(link, type, file); setUrl(myUrl); setIsLoading(false); - } + }; - function handlePlayVideo() { + const handlePlayVideo = () => { setIsLoading(true); loadVideo(); - } + }; return (
@@ -323,15 +324,17 @@ function Video({ }} className="video-container" > - { url === null && blurhash && } - { url === null && thumbUrl !== null && ( - /* eslint-disable-next-line jsx-a11y/alt-text */ - - )} - { url === null && isLoading && } - { url === null && !isLoading && } - { url !== null && ( - /* eslint-disable-next-line jsx-a11y/media-has-caption */ + { url === null ? ( + <> + { blurhash && blur && } + { thumbUrl !== null && ( + setBlur(false)} alt={name} /> + )} + {isLoading && } + {!isLoading && } + + ) : ( + /* eslint-disable-next-line jsx-a11y/media-has-caption */ diff --git a/src/app/molecules/media/Media.scss b/src/app/molecules/media/Media.scss index b26b232a..7c73305a 100644 --- a/src/app/molecules/media/Media.scss +++ b/src/app/molecules/media/Media.scss @@ -27,14 +27,21 @@ white-space: initial; } +.sticker-container { + display: inline-flex; + max-width: 128px; + width: 100%; + & img { + width: 100% !important; + } +} + .image-container, .video-container, .audio-container { font-size: 0; line-height: 0; - position: relative; - display: flex; justify-content: center; align-items: center; @@ -48,7 +55,6 @@ .video-container { & img, & canvas { - position: absolute; max-width: unset !important; width: 100% !important; height: 100%; @@ -57,18 +63,13 @@ } } -.sticker-container { - display: inline-flex; - max-width: 128px; - width: 100%; - & img { - width: 100% !important; - } -} - .video-container { + position: relative; & .ic-btn-surface { background-color: var(--bg-surface-low); + } + & .ic-btn-surface, + & .donut-spinner { position: absolute; } video { From 74a20a0e14f56ebfeda49ad19256bd64395ecb5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 18:43:31 +0530 Subject: [PATCH 123/717] Bump sass from 1.54.1 to 1.54.3 (#728) Bumps [sass](https://github.com/sass/dart-sass) from 1.54.1 to 1.54.3. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.1...1.54.3) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index f808e3f9..0b0890d9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,7 +70,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", - "sass": "^1.54.1", + "sass": "^1.54.3", "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", @@ -12181,9 +12181,9 @@ } }, "node_modules/sass": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.1.tgz", - "integrity": "sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA==", + "version": "1.54.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.3.tgz", + "integrity": "sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -23442,9 +23442,9 @@ } }, "sass": { - "version": "1.54.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.1.tgz", - "integrity": "sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA==", + "version": "1.54.3", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.3.tgz", + "integrity": "sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 1b7ac1ac..d7e18dbb 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", "path-browserify": "^1.0.1", - "sass": "^1.54.1", + "sass": "^1.54.3", "sass-loader": "^13.0.2", "stream-browserify": "^3.0.0", "style-loader": "^3.3.1", From 5de6a1bea646f0c1bb33228a39988f1293ad3f87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 18:44:00 +0530 Subject: [PATCH 124/717] Bump @fontsource/roboto from 4.5.7 to 4.5.8 (#727) Bumps [@fontsource/roboto](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/roboto) from 4.5.7 to 4.5.8. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/roboto) --- updated-dependencies: - dependency-name: "@fontsource/roboto" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0b0890d9..8c147398 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.11", - "@fontsource/roboto": "^4.5.7", + "@fontsource/roboto": "^4.5.8", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", @@ -1842,9 +1842,9 @@ "integrity": "sha512-toizzQkfXL8YJcG/f8j3EYXYGQe4OxiDEItThSigvHU+cYNDw8HPp3wLYQX745hddsnHqOGCM4exitFSBOU8+w==" }, "node_modules/@fontsource/roboto": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.7.tgz", - "integrity": "sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==" + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.8.tgz", + "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "node_modules/@humanwhocodes/config-array": { "version": "0.10.4", @@ -15531,9 +15531,9 @@ "integrity": "sha512-toizzQkfXL8YJcG/f8j3EYXYGQe4OxiDEItThSigvHU+cYNDw8HPp3wLYQX745hddsnHqOGCM4exitFSBOU8+w==" }, "@fontsource/roboto": { - "version": "4.5.7", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.7.tgz", - "integrity": "sha512-m57UMER23Mk6Drg9OjtHW1Y+0KPGyZfE5XJoPTOsLARLar6013kJj4X2HICt+iFLJqIgTahA/QAvSn9lwF1EEw==" + "version": "4.5.8", + "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.8.tgz", + "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "@humanwhocodes/config-array": { "version": "0.10.4", diff --git a/package.json b/package.json index d7e18dbb..4afecc42 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.11", - "@fontsource/roboto": "^4.5.7", + "@fontsource/roboto": "^4.5.8", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@tippyjs/react": "^4.2.6", "babel-polyfill": "^6.26.0", From c4e36a1f9745173cd41b5368dbef888f06dddf38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 18:46:19 +0530 Subject: [PATCH 125/717] Bump @fontsource/inter from 4.5.11 to 4.5.12 (#726) Bumps [@fontsource/inter](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/inter) from 4.5.11 to 4.5.12. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/inter) --- updated-dependencies: - dependency-name: "@fontsource/inter" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c147398..925cfaf5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.1.1", "license": "MIT", "dependencies": { - "@fontsource/inter": "^4.5.11", + "@fontsource/inter": "^4.5.12", "@fontsource/roboto": "^4.5.8", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@tippyjs/react": "^4.2.6", @@ -1837,9 +1837,9 @@ } }, "node_modules/@fontsource/inter": { - "version": "4.5.11", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.11.tgz", - "integrity": "sha512-toizzQkfXL8YJcG/f8j3EYXYGQe4OxiDEItThSigvHU+cYNDw8HPp3wLYQX745hddsnHqOGCM4exitFSBOU8+w==" + "version": "4.5.12", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.12.tgz", + "integrity": "sha512-bGKk4/8tube/nCk8hav0ZDBVbzJzc7m0Vt4xF5p15IN4YImwGdtKG38Oq5bU8xHNS+VfvbFFCepgQNj7Pr/Lvg==" }, "node_modules/@fontsource/roboto": { "version": "4.5.8", @@ -15526,9 +15526,9 @@ } }, "@fontsource/inter": { - "version": "4.5.11", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.11.tgz", - "integrity": "sha512-toizzQkfXL8YJcG/f8j3EYXYGQe4OxiDEItThSigvHU+cYNDw8HPp3wLYQX745hddsnHqOGCM4exitFSBOU8+w==" + "version": "4.5.12", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.12.tgz", + "integrity": "sha512-bGKk4/8tube/nCk8hav0ZDBVbzJzc7m0Vt4xF5p15IN4YImwGdtKG38Oq5bU8xHNS+VfvbFFCepgQNj7Pr/Lvg==" }, "@fontsource/roboto": { "version": "4.5.8", diff --git a/package.json b/package.json index 4afecc42..023c60e9 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "author": "Ajay Bura", "license": "MIT", "dependencies": { - "@fontsource/inter": "^4.5.11", + "@fontsource/inter": "^4.5.12", "@fontsource/roboto": "^4.5.8", "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", "@tippyjs/react": "^4.2.6", From 214d49f1d973814a2a9f29378232aae7027832b6 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 11 Aug 2022 19:10:12 +0530 Subject: [PATCH 126/717] Release v2.1.2 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 925cfaf5..08eda3c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.1.1", + "version": "2.1.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.1.1", + "version": "2.1.2", "license": "MIT", "dependencies": { "@fontsource/inter": "^4.5.12", diff --git a/package.json b/package.json index 023c60e9..b9d9cd70 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.1.1", + "version": "2.1.2", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 1d962836..0dc01d49 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.1.1', + version: '2.1.2', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From af6995580179275f8969a6fec4f8ccc37bcc2a17 Mon Sep 17 00:00:00 2001 From: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> Date: Fri, 12 Aug 2022 11:33:56 +0100 Subject: [PATCH 127/717] Fix grammar of read receipt text (#744) 'other' should be plural in this context. --- src/app/organisms/room/common.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/room/common.jsx b/src/app/organisms/room/common.jsx index 12b9f2ba..28974a85 100644 --- a/src/app/organisms/room/common.jsx +++ b/src/app/organisms/room/common.jsx @@ -164,7 +164,7 @@ function getUsersActionJsx(roomId, userIds, actionStr) { const othersCount = userIds.length - MAX_VISIBLE_COUNT; // eslint-disable-next-line react/jsx-one-expression-per-line - return <>{u1Jsx}, {u2Jsx}, {u3Jsx} and {othersCount} other are {actionStr}; + return <>{u1Jsx}, {u2Jsx}, {u3Jsx} and {othersCount} others are {actionStr}; } function parseTimelineChange(mEvent) { From a417980a81c1b0ec97a0891e11b5b893c9dcce55 Mon Sep 17 00:00:00 2001 From: James Date: Sun, 14 Aug 2022 12:01:17 +0100 Subject: [PATCH 128/717] Improve MIME type handling on File Upload and in Message Component (#688) * move allowed MIME types to own util file * add check for safe MIME type before choosing how to upload * check for allowed blob type to decide what component to load * re-add check for safe mimetype * fix bracket positioning --- src/app/molecules/media/Media.jsx | 37 +-------------------------- src/app/molecules/message/Message.jsx | 8 +++++- src/client/state/RoomsInput.js | 3 ++- src/util/mimetypes.js | 37 +++++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 38 deletions(-) create mode 100644 src/util/mimetypes.js diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index 5ef25ecb..d7ba3854 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -13,42 +13,7 @@ import DownloadSVG from '../../../../public/res/ic/outlined/download.svg'; import ExternalSVG from '../../../../public/res/ic/outlined/external.svg'; import PlaySVG from '../../../../public/res/ic/outlined/play.svg'; -// https://github.com/matrix-org/matrix-react-sdk/blob/cd15e08fc285da42134817cce50de8011809cd53/src/utils/blobs.ts#L73 -const ALLOWED_BLOB_MIMETYPES = [ - 'image/jpeg', - 'image/gif', - 'image/png', - 'image/apng', - 'image/webp', - 'image/avif', - - 'video/mp4', - 'video/webm', - 'video/ogg', - 'video/quicktime', - - 'audio/mp4', - 'audio/webm', - 'audio/aac', - 'audio/mpeg', - 'audio/ogg', - 'audio/wave', - 'audio/wav', - 'audio/x-wav', - 'audio/x-pn-wav', - 'audio/flac', - 'audio/x-flac', -]; -function getBlobSafeMimeType(mimetype) { - if (!ALLOWED_BLOB_MIMETYPES.includes(mimetype)) { - return 'application/octet-stream'; - } - // Required for Chromium browsers - if (mimetype === 'video/quicktime') { - return 'video/mp4'; - } - return mimetype; -} +import { getBlobSafeMimeType } from '../../../util/mimetypes'; async function getDecryptedBlob(response, type, decryptData) { const arrayBuffer = await response.arrayBuffer(); diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index e4b68834..1e5a006e 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -37,6 +37,7 @@ import CmdIC from '../../../../public/res/ic/outlined/cmd.svg'; import BinIC from '../../../../public/res/ic/outlined/bin.svg'; import { confirmDialog } from '../confirm-dialog/ConfirmDialog'; +import { getBlobSafeMimeType } from '../../../util/mimetypes'; function PlaceholderMessage() { return ( @@ -621,7 +622,12 @@ function genMediaContent(mE) { if (typeof mediaMXC === 'undefined' || mediaMXC === '') return Malformed event; let msgType = mE.getContent()?.msgtype; - if (mE.getType() === 'm.sticker') msgType = 'm.sticker'; + const safeMimetype = getBlobSafeMimeType(mContent.info?.mimetype); + if (mE.getType() === 'm.sticker') { + msgType = 'm.sticker'; + } else if (safeMimetype === 'application/octet-stream') { + msgType = 'm.file'; + } const blurhash = mContent?.info?.['xyz.amorgan.blurhash']; diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index e1d3acf9..9b662880 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -6,6 +6,7 @@ import { math } from 'micromark-extension-math'; import { encode } from 'blurhash'; import { getShortcodeToEmoji } from '../../app/organisms/emoji-board/custom-emoji'; import { mathExtensionHtml, spoilerExtension, spoilerExtensionHtml } from '../../util/markdown'; +import { getBlobSafeMimeType } from '../../util/mimetypes'; import { sanitizeText } from '../../util/sanitize'; import cons from './cons'; import settings from './settings'; @@ -355,7 +356,7 @@ class RoomsInput extends EventEmitter { } async sendFile(roomId, file) { - const fileType = file.type.slice(0, file.type.indexOf('/')); + const fileType = getBlobSafeMimeType(file.type).slice(0, file.type.indexOf('/')); const info = { mimetype: file.type, size: file.size, diff --git a/src/util/mimetypes.js b/src/util/mimetypes.js new file mode 100644 index 00000000..121ae069 --- /dev/null +++ b/src/util/mimetypes.js @@ -0,0 +1,37 @@ +// https://github.com/matrix-org/matrix-react-sdk/blob/cd15e08fc285da42134817cce50de8011809cd53/src/utils/blobs.ts +export const ALLOWED_BLOB_MIMETYPES = [ + 'image/jpeg', + 'image/gif', + 'image/png', + 'image/apng', + 'image/webp', + 'image/avif', + + 'video/mp4', + 'video/webm', + 'video/ogg', + 'video/quicktime', + + 'audio/mp4', + 'audio/webm', + 'audio/aac', + 'audio/mpeg', + 'audio/ogg', + 'audio/wave', + 'audio/wav', + 'audio/x-wav', + 'audio/x-pn-wav', + 'audio/flac', + 'audio/x-flac', +]; + +export function getBlobSafeMimeType(mimetype) { + if (!ALLOWED_BLOB_MIMETYPES.includes(mimetype)) { + return 'application/octet-stream'; + } + // Required for Chromium browsers + if (mimetype === 'video/quicktime') { + return 'video/mp4'; + } + return mimetype; +} From 4cd8f4a94cad5bc5e8fe8c456c87eefbcf692a84 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 19 Aug 2022 12:15:22 +0530 Subject: [PATCH 129/717] Open image in lightbox (#767) * Add lightbox * Fix vertical media height (#467) * Update dialog animation * Fix overlay opacity * Fix dialog animation * Update open in new tab icon --- public/res/ic/outlined/external.svg | 14 ++--- src/app/atoms/modal/RawModal.jsx | 1 - src/app/atoms/modal/RawModal.scss | 51 ++++++++++--------- .../image-lightbox/ImageLightbox.jsx | 47 +++++++++++++++++ .../image-lightbox/ImageLightbox.scss | 50 ++++++++++++++++++ src/app/molecules/media/Media.jsx | 42 ++++++++++++--- src/app/molecules/media/Media.scss | 7 +++ src/index.scss | 5 +- 8 files changed, 173 insertions(+), 44 deletions(-) create mode 100644 src/app/molecules/image-lightbox/ImageLightbox.jsx create mode 100644 src/app/molecules/image-lightbox/ImageLightbox.scss diff --git a/public/res/ic/outlined/external.svg b/public/res/ic/outlined/external.svg index 92b007cc..adade1bd 100644 --- a/public/res/ic/outlined/external.svg +++ b/public/res/ic/outlined/external.svg @@ -1,12 +1,4 @@ - - - - - - - - - - + + + diff --git a/src/app/atoms/modal/RawModal.jsx b/src/app/atoms/modal/RawModal.jsx index 306d7d1b..450be0e0 100644 --- a/src/app/atoms/modal/RawModal.jsx +++ b/src/app/atoms/modal/RawModal.jsx @@ -42,7 +42,6 @@ function RawModal({ shouldCloseOnEsc={closeFromOutside} shouldCloseOnOverlayClick={closeFromOutside} shouldReturnFocusAfterClose={false} - closeTimeoutMS={300} > {children} diff --git a/src/app/atoms/modal/RawModal.scss b/src/app/atoms/modal/RawModal.scss index 72a64d76..80458752 100644 --- a/src/app/atoms/modal/RawModal.scss +++ b/src/app/atoms/modal/RawModal.scss @@ -1,27 +1,3 @@ -.ReactModal__Overlay { - opacity: 0; - transition: opacity 200ms var(--fluid-slide-up); -} -.ReactModal__Overlay--after-open{ - opacity: 1; -} -.ReactModal__Overlay--before-close{ - opacity: 0; -} - -.ReactModal__Content { - transform: translateY(100%); - transition: transform 200ms var(--fluid-slide-up); -} - -.ReactModal__Content--after-open{ - transform: translateY(0); -} - -.ReactModal__Content--before-close{ - transform: translateY(100%); -} - .raw-modal { --small-modal-width: 525px; --medium-modal-width: 712px; @@ -60,4 +36,31 @@ height: 100%; background-color: var(--bg-overlay); } +} + +.ReactModal__Overlay { + animation: raw-modal--overlay 150ms; +} + +.ReactModal__Content { + animation: raw-modal--content 150ms; +} + +@keyframes raw-modal--content { + 0% { + transform: translateY(100px); + opacity: .5; + } + 100% { + transform: translateY(0); + opacity: 1; + } +} +@keyframes raw-modal--overlay { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } } \ No newline at end of file diff --git a/src/app/molecules/image-lightbox/ImageLightbox.jsx b/src/app/molecules/image-lightbox/ImageLightbox.jsx new file mode 100644 index 00000000..c1c45db8 --- /dev/null +++ b/src/app/molecules/image-lightbox/ImageLightbox.jsx @@ -0,0 +1,47 @@ +import React from 'react'; +import PropTypes from 'prop-types'; +import './ImageLightbox.scss'; +import FileSaver from 'file-saver'; + +import Text from '../../atoms/text/Text'; +import RawModal from '../../atoms/modal/RawModal'; +import IconButton from '../../atoms/button/IconButton'; + +import DownloadSVG from '../../../../public/res/ic/outlined/download.svg'; +import ExternalSVG from '../../../../public/res/ic/outlined/external.svg'; + +function ImageLightbox({ + url, alt, isOpen, onRequestClose, +}) { + const handleDownload = () => { + FileSaver.saveAs(url, alt); + }; + + return ( + +
+ {alt} + window.open(url)} size="small" src={ExternalSVG} /> + +
+
+ {alt} +
+ + ); +} + +ImageLightbox.propTypes = { + url: PropTypes.string.isRequired, + alt: PropTypes.string.isRequired, + isOpen: PropTypes.bool.isRequired, + onRequestClose: PropTypes.func.isRequired, +}; + +export default ImageLightbox; diff --git a/src/app/molecules/image-lightbox/ImageLightbox.scss b/src/app/molecules/image-lightbox/ImageLightbox.scss new file mode 100644 index 00000000..5a900b98 --- /dev/null +++ b/src/app/molecules/image-lightbox/ImageLightbox.scss @@ -0,0 +1,50 @@ +@use '../../partials/flex'; +@use '../../partials/text'; + +.image-lightbox__modal { + box-shadow: none; + width: unset; + gap: var(--sp-normal); + + border-radius: 0; + pointer-events: none; + + & .text { + color: white; + } + & .ic-raw { + background-color: white; + } +} + +.image-lightbox__overlay { + background-color: var(--bg-overlay-low); +} + + +.image-lightbox__header > *, +.image-lightbox__content > * { + pointer-events: all; +} +.image-lightbox__header { + display: flex; + align-items: center; + + & > .text { + @extend .cp-fx__item-one; + @extend .cp-txt__ellipsis; + } +} +.image-lightbox__content { + display: flex; + justify-content: center; + max-height: 90vh; + + & img { + background-color: black; + object-fit: contain; + max-width: 100%; + max-height: 100%; + border-radius: var(--bo-radius); + } +} \ No newline at end of file diff --git a/src/app/molecules/media/Media.jsx b/src/app/molecules/media/Media.jsx index d7ba3854..e2b61775 100644 --- a/src/app/molecules/media/Media.jsx +++ b/src/app/molecules/media/Media.jsx @@ -8,6 +8,7 @@ import { BlurhashCanvas } from 'react-blurhash'; import Text from '../../atoms/text/Text'; import IconButton from '../../atoms/button/IconButton'; import Spinner from '../../atoms/spinner/Spinner'; +import ImageLightbox from '../image-lightbox/ImageLightbox'; import DownloadSVG from '../../../../public/res/ic/outlined/download.svg'; import ExternalSVG from '../../../../public/res/ic/outlined/external.svg'; @@ -124,6 +125,7 @@ function Image({ }) { const [url, setUrl] = useState(null); const [blur, setBlur] = useState(true); + const [lightbox, setLightbox] = useState(false); useEffect(() => { let unmounted = false; @@ -138,14 +140,42 @@ function Image({ }; }, []); + const toggleLightbox = () => { + if (!url) return; + setLightbox(!lightbox); + }; + return ( -
- -
- { blurhash && blur && } - { url !== null && setBlur(false)} src={url || link} alt={name} />} + <> +
+
+ { blurhash && blur && } + { url !== null && ( + setBlur(false)} + src={url || link} + alt={name} + /> + )} +
-
+ {url && ( + + )} + ); } Image.defaultProps = { diff --git a/src/app/molecules/media/Media.scss b/src/app/molecules/media/Media.scss index 7c73305a..8d98c428 100644 --- a/src/app/molecules/media/Media.scss +++ b/src/app/molecules/media/Media.scss @@ -62,6 +62,13 @@ margin: 0 !important; } } +.image-container { + max-height: 460px; + img { + cursor: pointer; + object-fit: cover; + } +} .video-container { position: relative; diff --git a/src/index.scss b/src/index.scss index 3a4707ca..39d0612b 100644 --- a/src/index.scss +++ b/src/index.scss @@ -105,7 +105,7 @@ /* shadow and overlay */ --bg-overlay: rgba(0, 0, 0, 20%); - --bg-overlay-low: rgba(0, 0, 0, 85%); + --bg-overlay-low: rgba(0, 0, 0, 50%); --bs-popup: 0 0 16px rgba(0, 0, 0, 10%); @@ -264,7 +264,8 @@ } /* shadow and overlay */ - --bg-overlay: rgba(0, 0, 0, 50%); + --bg-overlay: rgba(0, 0, 0, 60%); + --bg-overlay-low: rgba(0, 0, 0, 80%); --bs-popup: 0 0 16px rgba(0, 0, 0, 25%); From 2f2680be3ccf90171dfcaec4f0aefed6ab45059f Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 19 Aug 2022 13:57:24 +0530 Subject: [PATCH 130/717] Fix minor css bugs --- src/app/molecules/image-lightbox/ImageLightbox.scss | 2 +- src/app/organisms/room/RoomViewInput.scss | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/molecules/image-lightbox/ImageLightbox.scss b/src/app/molecules/image-lightbox/ImageLightbox.scss index 5a900b98..05520c86 100644 --- a/src/app/molecules/image-lightbox/ImageLightbox.scss +++ b/src/app/molecules/image-lightbox/ImageLightbox.scss @@ -41,7 +41,7 @@ max-height: 90vh; & img { - background-color: black; + background-color: var(--bg-surface-low); object-fit: contain; max-width: 100%; max-height: 100%; diff --git a/src/app/organisms/room/RoomViewInput.scss b/src/app/organisms/room/RoomViewInput.scss index 598c5274..9fb7c4de 100644 --- a/src/app/organisms/room/RoomViewInput.scss +++ b/src/app/organisms/room/RoomViewInput.scss @@ -70,6 +70,7 @@ &__preview > img { max-height: 40px; border-radius: var(--bo-radius); + max-width: 150px; } &__icon { padding: var(--sp-extra-tight); From 6f7934badc2f2e25ed681fea3523d6a0244dca1b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 19 Aug 2022 15:19:12 +0530 Subject: [PATCH 131/717] Fix more css bugs --- src/app/atoms/modal/RawModal.scss | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/atoms/modal/RawModal.scss b/src/app/atoms/modal/RawModal.scss index 80458752..d612a4bc 100644 --- a/src/app/atoms/modal/RawModal.scss +++ b/src/app/atoms/modal/RawModal.scss @@ -3,7 +3,7 @@ --medium-modal-width: 712px; --large-modal-width: 1024px; - + position: relative; width: 100%; max-height: 100%; border-radius: var(--bo-radius); @@ -63,4 +63,4 @@ 100% { opacity: 1; } -} \ No newline at end of file +} From 1deef51df0c92d4c8394cb6d4c76aaf2ea473f32 Mon Sep 17 00:00:00 2001 From: jameskitt616 <52933658+jameskitt616@users.noreply.github.com> Date: Sat, 20 Aug 2022 15:26:37 +0200 Subject: [PATCH 132/717] Add cancel edit-message on Escape Key press (#765) --- src/app/molecules/message/Message.jsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 1e5a006e..42344d75 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -290,6 +290,11 @@ function MessageEdit({ body, onSave, onCancel }) { }, []); const handleKeyDown = (e) => { + if (e.key === 'Escape') { + e.preventDefault(); + onCancel(); + } + if (e.key === 'Enter' && e.shiftKey === false) { e.preventDefault(); onSave(editInputRef.current.value); From 7e28aa1474ffc7a074e7d6e784d1dfcb22743c66 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 20 Aug 2022 20:51:37 +0530 Subject: [PATCH 133/717] Update sidebar on room/space switch (#768) * Select last room on space/tab change (#353) * Update sidbar on room select from search (#374) * Select last room on space/tab change (#353) * Update sidbar on room select from search (#374) * Fix wrong space gets selected with some rooms * Fix auto select room in categorized space * Fix room remain selected on leave * Fix leaved room appear in category & search * Remove globally exposed vars * Hide pin spaces from home * Fix selecting dm always open dm tab * Order category by AtoZ (#769) Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- .../molecules/space-options/SpaceOptions.jsx | 4 +- src/app/organisms/join-alias/JoinAlias.jsx | 4 +- .../organisms/navigation/DrawerBreadcrumb.jsx | 7 +- src/app/organisms/navigation/Home.jsx | 6 +- src/client/event/roomList.js | 13 + src/client/initMatrix.js | 7 + src/client/state/RoomList.js | 2 +- src/client/state/navigation.js | 260 +++++++++++++++--- 8 files changed, 261 insertions(+), 42 deletions(-) diff --git a/src/app/molecules/space-options/SpaceOptions.jsx b/src/app/molecules/space-options/SpaceOptions.jsx index 56fdfd3f..0c166c6a 100644 --- a/src/app/molecules/space-options/SpaceOptions.jsx +++ b/src/app/molecules/space-options/SpaceOptions.jsx @@ -38,10 +38,10 @@ function SpaceOptions({ roomId, afterOptionSelect }) { const handleMarkAsRead = () => { const spaceChildren = roomList.getCategorizedSpaces([roomId]); - spaceChildren?.forEach((childIds, spaceId) => { + spaceChildren?.forEach((childIds) => { childIds?.forEach((childId) => { markAsRead(childId); - }) + }); }); afterOptionSelect(); }; diff --git a/src/app/organisms/join-alias/JoinAlias.jsx b/src/app/organisms/join-alias/JoinAlias.jsx index 9e7f6df1..bb90bf35 100644 --- a/src/app/organisms/join-alias/JoinAlias.jsx +++ b/src/app/organisms/join-alias/JoinAlias.jsx @@ -6,7 +6,7 @@ import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; import navigation from '../../../client/state/navigation'; import { join } from '../../../client/action/room'; -import { selectRoom, selectSpace } from '../../../client/action/navigation'; +import { selectRoom, selectTab } from '../../../client/action/navigation'; import Text from '../../atoms/text/Text'; import IconButton from '../../atoms/button/IconButton'; @@ -32,7 +32,7 @@ function JoinAliasContent({ term, requestClose }) { const openRoom = (roomId) => { const room = mx.getRoom(roomId); if (!room) return; - if (room.isSpaceRoom()) selectSpace(roomId); + if (room.isSpaceRoom()) selectTab(roomId); else selectRoom(roomId); requestClose(); }; diff --git a/src/app/organisms/navigation/DrawerBreadcrumb.jsx b/src/app/organisms/navigation/DrawerBreadcrumb.jsx index ca9ab6a0..be5b345b 100644 --- a/src/app/organisms/navigation/DrawerBreadcrumb.jsx +++ b/src/app/organisms/navigation/DrawerBreadcrumb.jsx @@ -6,7 +6,7 @@ import { twemojify } from '../../../util/twemojify'; import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; -import { selectSpace } from '../../../client/action/navigation'; +import { selectTab, selectSpace } from '../../../client/action/navigation'; import navigation from '../../../client/state/navigation'; import { abbreviateNumber } from '../../../util/common'; @@ -107,7 +107,10 @@ function DrawerBreadcrumb({ spaceId }) { { index !== 0 && } + )} + content={Default notification settings for all direct message.} + /> + onSelect(evt, ENC_DM)} iconSrc={ChevronBottomIC}> + {typeToLabel[rulesToType[ENC_DM]]} + + )} + content={Default notification settings for all encrypted direct message.} + /> + onSelect(evt, ROOM)} iconSrc={ChevronBottomIC}> + {typeToLabel[rulesToType[ROOM]]} + + )} + content={Default notification settings for all room message.} + /> + onSelect(evt, ENC_ROOM)} iconSrc={ChevronBottomIC}> + {typeToLabel[rulesToType[ENC_ROOM]]} + + )} + content={Default notification settings for all encrypted room message.} + /> +
+ ); +} + +export default GlobalNotification; diff --git a/src/app/molecules/global-notification/KeywordNotification.jsx b/src/app/molecules/global-notification/KeywordNotification.jsx new file mode 100644 index 00000000..c44ffc46 --- /dev/null +++ b/src/app/molecules/global-notification/KeywordNotification.jsx @@ -0,0 +1,239 @@ +import React from 'react'; +import './KeywordNotification.scss'; + +import initMatrix from '../../../client/initMatrix'; +import { openReusableContextMenu } from '../../../client/action/navigation'; +import { getEventCords } from '../../../util/common'; + +import Text from '../../atoms/text/Text'; +import Chip from '../../atoms/chip/Chip'; +import Input from '../../atoms/input/Input'; +import Button from '../../atoms/button/Button'; +import { MenuHeader } from '../../atoms/context-menu/ContextMenu'; +import SettingTile from '../setting-tile/SettingTile'; + +import NotificationSelector from './NotificationSelector'; + +import ChevronBottomIC from '../../../../public/res/ic/outlined/chevron-bottom.svg'; +import CrossIC from '../../../../public/res/ic/outlined/cross.svg'; + +import { useAccountData } from '../../hooks/useAccountData'; +import { + notifType, typeToLabel, getActionType, getTypeActions, +} from './GlobalNotification'; + +const DISPLAY_NAME = '.m.rule.contains_display_name'; +const ROOM_PING = '.m.rule.roomnotif'; +const USERNAME = '.m.rule.contains_user_name'; +const KEYWORD = 'keyword'; + +function useKeywordNotif() { + const mx = initMatrix.matrixClient; + const pushRules = useAccountData('m.push_rules'); + const override = pushRules?.global?.override ?? []; + const content = pushRules?.global?.content ?? []; + + const rulesToType = { + [DISPLAY_NAME]: notifType.NOISY, + [ROOM_PING]: notifType.NOISY, + [USERNAME]: notifType.NOISY, + }; + + const setRule = (rule, type) => { + const evtContent = pushRules ?? {}; + if (!evtContent.global) evtContent.global = {}; + if (!evtContent.global.override) evtContent.global.override = []; + if (!evtContent.global.content) evtContent.global.content = []; + const or = evtContent.global.override; + const ct = evtContent.global.content; + + if (rule === DISPLAY_NAME || rule === ROOM_PING) { + let orRule = or.find((r) => r?.rule_id === rule); + if (!orRule) { + orRule = { + conditions: [], + actions: [], + rule_id: rule, + default: true, + enabled: true, + }; + or.push(orRule); + } + if (rule === DISPLAY_NAME) { + orRule.conditions = [{ kind: 'contains_display_name' }]; + orRule.actions = getTypeActions(type, true); + } else { + orRule.conditions = [ + { kind: 'event_match', key: 'content.body', pattern: '@room' }, + { kind: 'sender_notification_permission', key: 'room' }, + ]; + orRule.actions = getTypeActions(type, true); + } + } else if (rule === USERNAME) { + let usernameRule = ct.find((r) => r?.rule_id === rule); + if (!usernameRule) { + const userId = mx.getUserId(); + const username = userId.match(/^@?(\S+):(\S+)$/)?.[1] ?? userId; + usernameRule = { + actions: [], + default: true, + enabled: true, + pattern: username, + rule_id: rule, + }; + ct.push(usernameRule); + } + usernameRule.actions = getTypeActions(type, true); + } else { + const keyRules = ct.filter((r) => r.rule_id !== USERNAME); + keyRules.forEach((r) => { + // eslint-disable-next-line no-param-reassign + r.actions = getTypeActions(type, true); + }); + } + + mx.setAccountData('m.push_rules', evtContent); + }; + + const addKeyword = (keyword) => { + if (content.find((r) => r.rule_id === keyword)) return; + content.push({ + rule_id: keyword, + pattern: keyword, + enabled: true, + default: false, + actions: getTypeActions(rulesToType[KEYWORD] ?? notifType.NOISY, true), + }); + mx.setAccountData('m.push_rules', pushRules); + }; + const removeKeyword = (rule) => { + pushRules.global.content = content.filter((r) => r.rule_id !== rule.rule_id); + mx.setAccountData('m.push_rules', pushRules); + }; + + const dsRule = override.find((rule) => rule.rule_id === DISPLAY_NAME); + const roomRule = override.find((rule) => rule.rule_id === ROOM_PING); + const usernameRule = content.find((rule) => rule.rule_id === USERNAME); + const keywordRule = content.find((rule) => rule.rule_id !== USERNAME); + + if (dsRule) rulesToType[DISPLAY_NAME] = getActionType(dsRule); + if (roomRule) rulesToType[ROOM_PING] = getActionType(roomRule); + if (usernameRule) rulesToType[USERNAME] = getActionType(usernameRule); + if (keywordRule) rulesToType[KEYWORD] = getActionType(keywordRule); + + return { + rulesToType, + pushRules, + setRule, + addKeyword, + removeKeyword, + }; +} + +function GlobalNotification() { + const { + rulesToType, + pushRules, + setRule, + addKeyword, + removeKeyword, + } = useKeywordNotif(); + + const keywordRules = pushRules?.global?.content.filter((r) => r.rule_id !== USERNAME) ?? []; + + const onSelect = (evt, rule) => { + openReusableContextMenu( + 'bottom', + getEventCords(evt, '.btn-surface'), + (requestClose) => ( + { + if (rulesToType[rule] !== value) setRule(rule, value); + requestClose(); + }} + /> + ), + ); + }; + + const handleSubmit = (evt) => { + evt.preventDefault(); + const { keywordInput } = evt.target.elements; + const value = keywordInput.value.trim(); + if (value === '') return; + addKeyword(value); + keywordInput.value = ''; + }; + + return ( +
+ Mentions & keywords + onSelect(evt, DISPLAY_NAME)} iconSrc={ChevronBottomIC}> + { typeToLabel[rulesToType[DISPLAY_NAME]] } + + )} + content={Default notification settings for all message containing your display name.} + /> + onSelect(evt, USERNAME)} iconSrc={ChevronBottomIC}> + { typeToLabel[rulesToType[USERNAME]] } + + )} + content={Default notification settings for all message containing your username.} + /> + onSelect(evt, ROOM_PING)} iconSrc={ChevronBottomIC}> + {typeToLabel[rulesToType[ROOM_PING]]} + + )} + content={Default notification settings for all messages containing @room.} + /> + { rulesToType[KEYWORD] && ( + onSelect(evt, KEYWORD)} iconSrc={ChevronBottomIC}> + {typeToLabel[rulesToType[KEYWORD]]} + + )} + content={Default notification settings for all message containing keywords.} + /> + )} + + Get notification when a message contains keyword. +
+ + +
+ {keywordRules.length > 0 && ( +
+ {keywordRules.map((rule) => ( + removeKeyword(rule)} + /> + ))} +
+ )} +
+ )} + /> +
+ ); +} + +export default GlobalNotification; diff --git a/src/app/molecules/global-notification/KeywordNotification.scss b/src/app/molecules/global-notification/KeywordNotification.scss new file mode 100644 index 00000000..a5870020 --- /dev/null +++ b/src/app/molecules/global-notification/KeywordNotification.scss @@ -0,0 +1,16 @@ +.keyword-notification { + &__keyword { + & form, + & > div:last-child { + display: flex; + gap: var(--sp-tight); + } + + & form { + margin: var(--sp-ultra-tight) 0 var(--sp-normal); + .input-container { + flex-grow: 1; + } + } + } +} \ No newline at end of file diff --git a/src/app/molecules/global-notification/NotificationSelector.jsx b/src/app/molecules/global-notification/NotificationSelector.jsx new file mode 100644 index 00000000..b2a8f4ec --- /dev/null +++ b/src/app/molecules/global-notification/NotificationSelector.jsx @@ -0,0 +1,26 @@ +import React from 'react'; +import PropTypes from 'prop-types'; + +import { MenuHeader, MenuItem } from '../../atoms/context-menu/ContextMenu'; + +import CheckIC from '../../../../public/res/ic/outlined/check.svg'; + +function NotificationSelector({ + value, onSelect, +}) { + return ( +
+ Notification + onSelect('off')}>Off + onSelect('on')}>On + onSelect('noisy')}>Noisy +
+ ); +} + +NotificationSelector.propTypes = { + value: PropTypes.oneOf(['off', 'on', 'noisy']).isRequired, + onSelect: PropTypes.func.isRequired, +}; + +export default NotificationSelector; diff --git a/src/app/organisms/navigation/Drawer.jsx b/src/app/organisms/navigation/Drawer.jsx index a8b7f1f4..fb75ee5b 100644 --- a/src/app/organisms/navigation/Drawer.jsx +++ b/src/app/organisms/navigation/Drawer.jsx @@ -56,7 +56,9 @@ function Drawer() { useEffect(() => { requestAnimationFrame(() => { - scrollRef.current.scrollTop = 0; + if (scrollRef.current) { + scrollRef.current.scrollTop = 0; + } }); }, [selectedTab]); diff --git a/src/app/organisms/search/Search.jsx b/src/app/organisms/search/Search.jsx index d40d8615..64c898bf 100644 --- a/src/app/organisms/search/Search.jsx +++ b/src/app/organisms/search/Search.jsx @@ -168,7 +168,7 @@ function Search() { } }; - const notifs = initMatrix.notifications; + const noti = initMatrix.notifications; const renderRoomSelector = (item) => { let imageSrc = null; let iconSrc = null; @@ -178,9 +178,6 @@ function Search() { iconSrc = joinRuleToIconSrc(item.room.getJoinRule(), item.type === 'space'); } - const isUnread = notifs.hasNoti(item.roomId); - const noti = notifs.getNoti(item.roomId); - return ( 0} + isUnread={noti.hasNoti(item.roomId)} + notificationCount={noti.getTotalNoti(item.roomId)} + isAlert={noti.getHighlightNoti(item.roomId) > 0} onClick={() => openItem(item.roomId, item.type)} /> ); @@ -207,7 +204,7 @@ function Search() { size="small" >
-
{ e.preventDefault(); openFirstResult()}}> + { e.preventDefault(); openFirstResult(); }}> - Notification & Sound - Show desktop notification when new messages arrive.} - /> - { toggleNotificationSounds(); updateState({}); }} - /> - )} - content={Play sound when new messages arrive.} - /> -
+ <> +
+ Notification & Sound + Show desktop notification when new messages arrive.} + /> + { toggleNotificationSounds(); updateState({}); }} + /> + )} + content={Play sound when new messages arrive.} + /> +
+ + + ); } diff --git a/src/app/organisms/settings/Settings.scss b/src/app/organisms/settings/Settings.scss index d77e634a..aa455700 100644 --- a/src/app/organisms/settings/Settings.scss +++ b/src/app/organisms/settings/Settings.scss @@ -38,6 +38,8 @@ } .settings-appearance__card, .settings-notifications, +.global-notification, +.keyword-notification, .settings-security__card, .settings-security .device-manage, .settings-about__card, diff --git a/src/client/initMatrix.js b/src/client/initMatrix.js index e219a777..fccfe514 100644 --- a/src/client/initMatrix.js +++ b/src/client/initMatrix.js @@ -67,7 +67,7 @@ class InitMatrix extends EventEmitter { }, PREPARED: (prevState) => { console.log('PREPARED state'); - console.log('previous state: ', prevState); + console.log('Previous state: ', prevState); // TODO: remove global.initMatrix at end global.initMatrix = this; if (prevState === null) { @@ -76,6 +76,9 @@ class InitMatrix extends EventEmitter { this.roomsInput = new RoomsInput(this.matrixClient, this.roomList); this.notifications = new Notifications(this.roomList); this.emit('init_loading_finished'); + this.notifications._initNoti(); + } else { + this.notifications._initNoti(); } }, RECONNECTING: () => { diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index f0f7a8c2..c3ec90cf 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -5,6 +5,11 @@ import { selectRoom } from '../action/navigation'; import cons from './cons'; import navigation from './navigation'; import settings from './settings'; +import { setFavicon } from '../../util/common'; + +import LogoSVG from '../../../public/res/svg/cinny.svg'; +import LogoUnreadSVG from '../../../public/res/svg/cinny-unread.svg'; +import LogoHighlightSVG from '../../../public/res/svg/cinny-highlight.svg'; function isNotifEvent(mEvent) { const eType = mEvent.getType(); @@ -37,17 +42,16 @@ class Notifications extends EventEmitter { this.roomIdToNoti = new Map(); - this._initNoti(); + // this._initNoti(); this._listenEvents(); // Ask for permission by default after loading window.Notification?.requestPermission(); - - // TODO: - window.notifications = this; } - _initNoti() { + async _initNoti() { + this.roomIdToNoti = new Map(); + const addNoti = (roomId) => { const room = this.matrixClient.getRoom(roomId); if (this.getNotiType(room.roomId) === cons.notifs.MUTE) return; @@ -59,6 +63,7 @@ class Notifications extends EventEmitter { }; [...this.roomList.rooms].forEach(addNoti); [...this.roomList.directs].forEach(addNoti); + this._updateFavicon(); } doesRoomHaveUnread(room) { @@ -104,7 +109,8 @@ class Notifications extends EventEmitter { } getTotalNoti(roomId) { - const { total } = this.getNoti(roomId); + const { total, highlight } = this.getNoti(roomId); + if (highlight > total) return highlight; return total; } @@ -129,6 +135,24 @@ class Notifications extends EventEmitter { } } + async _updateFavicon() { + let unread = false; + let highlight = false; + [...this.roomIdToNoti.values()].find((noti) => { + if (!unread) { + unread = noti.total > 0 || noti.highlight > 0; + } + highlight = noti.highlight > 0; + if (unread && highlight) return true; + return false; + }); + if (!unread) { + setFavicon(LogoSVG); + return; + } + setFavicon(highlight ? LogoHighlightSVG : LogoUnreadSVG); + } + _setNoti(roomId, total, highlight) { const addNoti = (id, t, h, fromId) => { const prevTotal = this.roomIdToNoti.get(id)?.total ?? null; @@ -155,6 +179,7 @@ class Notifications extends EventEmitter { allParentSpaces.forEach((spaceId) => { addNoti(spaceId, addT, addH, roomId); }); + this._updateFavicon(); } _deleteNoti(roomId, total, highlight) { @@ -187,6 +212,7 @@ class Notifications extends EventEmitter { allParentSpaces.forEach((spaceId) => { removeNoti(spaceId, total, highlight, roomId); }); + this._updateFavicon(); } async _displayPopupNoti(mEvent, room) { diff --git a/src/util/common.js b/src/util/common.js index 83fd20fe..c2a17cbf 100644 --- a/src/util/common.js +++ b/src/util/common.js @@ -115,6 +115,19 @@ export function avatarInitials(text) { return [...text][0]; } +export function cssVar(name) { + return getComputedStyle(document.body).getPropertyValue(name); +} + +export function setFavicon(url) { + const oldFav = document.querySelector('[rel=icon]'); + oldFav.parentElement.removeChild(oldFav); + const fav = document.createElement('link'); + fav.rel = 'icon'; + fav.href = url; + document.head.appendChild(fav); +} + export function copyToClipboard(text) { if (navigator.clipboard) { navigator.clipboard.writeText(text); From bdc10fb7296bd44f33bb59e61f0c2b7adfd03520 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 4 Sep 2022 13:33:41 +0530 Subject: [PATCH 159/717] Fix multiple favicon changing request --- src/client/state/Notifications.js | 19 +++++++++++++++---- src/util/common.js | 7 +------ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index c3ec90cf..90f9b4ad 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -37,6 +37,8 @@ class Notifications extends EventEmitter { constructor(roomList) { super(); + this.initialized = false; + this.favicon = LogoSVG; this.matrixClient = roomList.matrixClient; this.roomList = roomList; @@ -50,6 +52,7 @@ class Notifications extends EventEmitter { } async _initNoti() { + this.initialized = false; this.roomIdToNoti = new Map(); const addNoti = (roomId) => { @@ -63,6 +66,8 @@ class Notifications extends EventEmitter { }; [...this.roomList.rooms].forEach(addNoti); [...this.roomList.directs].forEach(addNoti); + + this.initialized = true; this._updateFavicon(); } @@ -136,6 +141,7 @@ class Notifications extends EventEmitter { } async _updateFavicon() { + if (!this.initialized) return; let unread = false; let highlight = false; [...this.roomIdToNoti.values()].find((noti) => { @@ -146,11 +152,16 @@ class Notifications extends EventEmitter { if (unread && highlight) return true; return false; }); - if (!unread) { - setFavicon(LogoSVG); - return; + let newFavicon = LogoSVG; + if (unread && !highlight) { + newFavicon = LogoUnreadSVG; } - setFavicon(highlight ? LogoHighlightSVG : LogoUnreadSVG); + if (unread && highlight) { + newFavicon = LogoHighlightSVG; + } + if (newFavicon === this.favicon) return; + this.favicon = newFavicon; + setFavicon(this.favicon); } _setNoti(roomId, total, highlight) { diff --git a/src/util/common.js b/src/util/common.js index c2a17cbf..87b0b7eb 100644 --- a/src/util/common.js +++ b/src/util/common.js @@ -120,12 +120,7 @@ export function cssVar(name) { } export function setFavicon(url) { - const oldFav = document.querySelector('[rel=icon]'); - oldFav.parentElement.removeChild(oldFav); - const fav = document.createElement('link'); - fav.rel = 'icon'; - fav.href = url; - document.head.appendChild(fav); + document.querySelector('[rel=icon]').href = url; } export function copyToClipboard(text) { From 678e0dc6accae03399e89d35d81cb193ca3f772a Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sun, 4 Sep 2022 15:45:07 +0200 Subject: [PATCH 160/717] Allow mimetypes with suffix in safe check (#808) --- src/util/mimetypes.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/util/mimetypes.js b/src/util/mimetypes.js index 121ae069..7a94e0c8 100644 --- a/src/util/mimetypes.js +++ b/src/util/mimetypes.js @@ -26,12 +26,13 @@ export const ALLOWED_BLOB_MIMETYPES = [ ]; export function getBlobSafeMimeType(mimetype) { - if (!ALLOWED_BLOB_MIMETYPES.includes(mimetype)) { + const [type] = mimetype.split(';'); + if (!ALLOWED_BLOB_MIMETYPES.includes(type)) { return 'application/octet-stream'; } // Required for Chromium browsers - if (mimetype === 'video/quicktime') { + if (type === 'video/quicktime') { return 'video/mp4'; } - return mimetype; + return type; } From e6661d3b0d355ae1ff35879b1fc22fc3b6dffae9 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 4 Sep 2022 19:23:02 +0530 Subject: [PATCH 161/717] Remove favicons-webpack-plugin (#811) * Remove favicons-webpack-plugin * Copy android/* icons to dist * Add favicon ico --- package-lock.json | 3419 +---------------- package.json | 2 - public/favicon.ico | Bin 0 -> 33310 bytes public/index.html | 22 + public/manifest.json | 59 + public/res/android/android-chrome-144x144.png | Bin 0 -> 4499 bytes public/res/android/android-chrome-192x192.png | Bin 0 -> 6264 bytes public/res/android/android-chrome-256x256.png | Bin 0 -> 8384 bytes public/res/android/android-chrome-36x36.png | Bin 0 -> 1073 bytes public/res/android/android-chrome-384x384.png | Bin 0 -> 13069 bytes public/res/android/android-chrome-48x48.png | Bin 0 -> 1487 bytes public/res/android/android-chrome-512x512.png | Bin 0 -> 17829 bytes public/res/android/android-chrome-72x72.png | Bin 0 -> 2216 bytes public/res/android/android-chrome-96x96.png | Bin 0 -> 2991 bytes public/res/apple/apple-touch-icon-114x114.png | Bin 0 -> 4902 bytes public/res/apple/apple-touch-icon-120x120.png | Bin 0 -> 5100 bytes public/res/apple/apple-touch-icon-144x144.png | Bin 0 -> 6075 bytes public/res/apple/apple-touch-icon-152x152.png | Bin 0 -> 6665 bytes public/res/apple/apple-touch-icon-167x167.png | Bin 0 -> 7325 bytes public/res/apple/apple-touch-icon-180x180.png | Bin 0 -> 7889 bytes public/res/apple/apple-touch-icon-57x57.png | Bin 0 -> 2347 bytes public/res/apple/apple-touch-icon-60x60.png | Bin 0 -> 2482 bytes public/res/apple/apple-touch-icon-72x72.png | Bin 0 -> 2951 bytes public/res/apple/apple-touch-icon-76x76.png | Bin 0 -> 3124 bytes src/util/common.js | 4 +- webpack.common.js | 18 +- 26 files changed, 106 insertions(+), 3418 deletions(-) create mode 100644 public/favicon.ico create mode 100644 public/manifest.json create mode 100644 public/res/android/android-chrome-144x144.png create mode 100644 public/res/android/android-chrome-192x192.png create mode 100644 public/res/android/android-chrome-256x256.png create mode 100644 public/res/android/android-chrome-36x36.png create mode 100644 public/res/android/android-chrome-384x384.png create mode 100644 public/res/android/android-chrome-48x48.png create mode 100644 public/res/android/android-chrome-512x512.png create mode 100644 public/res/android/android-chrome-72x72.png create mode 100644 public/res/android/android-chrome-96x96.png create mode 100644 public/res/apple/apple-touch-icon-114x114.png create mode 100644 public/res/apple/apple-touch-icon-120x120.png create mode 100644 public/res/apple/apple-touch-icon-144x144.png create mode 100644 public/res/apple/apple-touch-icon-152x152.png create mode 100644 public/res/apple/apple-touch-icon-167x167.png create mode 100644 public/res/apple/apple-touch-icon-180x180.png create mode 100644 public/res/apple/apple-touch-icon-57x57.png create mode 100644 public/res/apple/apple-touch-icon-60x60.png create mode 100644 public/res/apple/apple-touch-icon-72x72.png create mode 100644 public/res/apple/apple-touch-icon-76x76.png diff --git a/package-lock.json b/package-lock.json index 46015fd3..db8a73be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,8 +59,6 @@ "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.31.1", "eslint-plugin-react-hooks": "^4.6.0", - "favicons": "^6.2.2", - "favicons-webpack-plugin": "^5.0.2", "html-loader": "^4.1.0", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", @@ -1887,500 +1885,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@jimp/bmp": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", - "integrity": "sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "bmp-js": "^0.1.0" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/core": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.1.tgz", - "integrity": "sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - } - }, - "node_modules/@jimp/core/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/@jimp/core/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/@jimp/custom": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.1.tgz", - "integrity": "sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.16.1" - } - }, - "node_modules/@jimp/gif": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.1.tgz", - "integrity": "sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "gifwrap": "^0.9.2", - "omggif": "^1.0.9" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/jpeg": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.1.tgz", - "integrity": "sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "jpeg-js": "0.4.2" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-blit": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz", - "integrity": "sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-blur": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz", - "integrity": "sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-circle": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz", - "integrity": "sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-color": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.1.tgz", - "integrity": "sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "tinycolor2": "^1.4.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-contain": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz", - "integrity": "sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5", - "@jimp/plugin-scale": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-cover": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz", - "integrity": "sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-crop": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5", - "@jimp/plugin-scale": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-crop": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz", - "integrity": "sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-displace": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz", - "integrity": "sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-dither": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz", - "integrity": "sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-fisheye": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz", - "integrity": "sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-flip": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz", - "integrity": "sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-rotate": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-gaussian": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz", - "integrity": "sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-invert": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz", - "integrity": "sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-mask": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz", - "integrity": "sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-normalize": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz", - "integrity": "sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-print": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.1.tgz", - "integrity": "sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "load-bmfont": "^1.4.0" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-resize": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz", - "integrity": "sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-rotate": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz", - "integrity": "sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blit": ">=0.3.5", - "@jimp/plugin-crop": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-scale": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz", - "integrity": "sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-shadow": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz", - "integrity": "sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-blur": ">=0.3.5", - "@jimp/plugin-resize": ">=0.3.5" - } - }, - "node_modules/@jimp/plugin-threshold": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz", - "integrity": "sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5", - "@jimp/plugin-color": ">=0.8.0", - "@jimp/plugin-resize": ">=0.8.0" - } - }, - "node_modules/@jimp/plugins": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.1.tgz", - "integrity": "sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/plugin-blit": "^0.16.1", - "@jimp/plugin-blur": "^0.16.1", - "@jimp/plugin-circle": "^0.16.1", - "@jimp/plugin-color": "^0.16.1", - "@jimp/plugin-contain": "^0.16.1", - "@jimp/plugin-cover": "^0.16.1", - "@jimp/plugin-crop": "^0.16.1", - "@jimp/plugin-displace": "^0.16.1", - "@jimp/plugin-dither": "^0.16.1", - "@jimp/plugin-fisheye": "^0.16.1", - "@jimp/plugin-flip": "^0.16.1", - "@jimp/plugin-gaussian": "^0.16.1", - "@jimp/plugin-invert": "^0.16.1", - "@jimp/plugin-mask": "^0.16.1", - "@jimp/plugin-normalize": "^0.16.1", - "@jimp/plugin-print": "^0.16.1", - "@jimp/plugin-resize": "^0.16.1", - "@jimp/plugin-rotate": "^0.16.1", - "@jimp/plugin-scale": "^0.16.1", - "@jimp/plugin-shadow": "^0.16.1", - "@jimp/plugin-threshold": "^0.16.1", - "timm": "^1.6.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/png": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.1.tgz", - "integrity": "sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "pngjs": "^3.3.3" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/tiff": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.1.tgz", - "integrity": "sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "utif": "^2.0.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.1.tgz", - "integrity": "sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.16.1", - "@jimp/gif": "^0.16.1", - "@jimp/jpeg": "^0.16.1", - "@jimp/png": "^0.16.1", - "@jimp/tiff": "^0.16.1", - "timm": "^1.6.1" - }, - "peerDependencies": { - "@jimp/custom": ">=0.3.5" - } - }, - "node_modules/@jimp/utils": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.1.tgz", - "integrity": "sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "regenerator-runtime": "^0.13.3" - } - }, - "node_modules/@jimp/utils/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", @@ -2620,15 +2124,6 @@ "@types/range-parser": "*" } }, - "node_modules/@types/favicons": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/favicons/-/favicons-5.5.0.tgz", - "integrity": "sha512-s76OlRaBfqtGu2ZBobnZv2NETfqsQUVfKKlOkKNGo4ArBsqiblodKsnQ3j29hCCgmpQacEfLxealV96za+tzVQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", @@ -2682,7 +2177,7 @@ "version": "16.11.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "devOptional": true + "dev": true }, "node_modules/@types/prop-types": { "version": "15.7.5", @@ -3105,12 +2600,6 @@ "node": ">=4" } }, - "node_modules/any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", - "dev": true - }, "node_modules/anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -3124,52 +2613,6 @@ "node": ">= 8" } }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/are-we-there-yet/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/are-we-there-yet/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/are-we-there-yet/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3267,15 +2710,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -3338,15 +2772,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "node_modules/author-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, "node_modules/autosize": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", @@ -3537,15 +2962,6 @@ "node": "*" } }, - "node_modules/bignumber.js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz", - "integrity": "sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3587,12 +3003,6 @@ "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-1.1.5.tgz", "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" }, - "node_modules/bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", - "dev": true - }, "node_modules/bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", @@ -3870,37 +3280,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -4085,24 +3464,6 @@ "webpack": ">=4.0.0 <6.0.0" } }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -4117,72 +3478,6 @@ "node": ">=6" } }, - "node_modules/clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "node_modules/cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - } - }, - "node_modules/cloneable-readable/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/cloneable-readable/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/cloneable-readable/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -4198,16 +3493,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "node_modules/color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, "node_modules/colord": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", @@ -4220,15 +3505,6 @@ "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -4370,12 +3646,6 @@ "node": ">=0.8" } }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -4982,27 +4252,6 @@ } } }, - "node_modules/decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "dependencies": { - "mimic-response": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -5147,12 +4396,6 @@ "node": ">=0.4.0" } }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "node_modules/depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -5178,18 +4421,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true, - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -5287,12 +4518,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -5389,16 +4614,6 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/emojibase": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/emojibase/-/emojibase-6.0.2.tgz", - "integrity": "sha512-2h2eblOm86tj+lsJLgLYmEni13H74KNNu1NI1ZgMOX9ByWuvjFZLhETEUH1edpcd8srAlzhfJSD892UbpxfwsA==", - "peer": true, - "funding": { - "type": "ko-fi", - "url": "https://ko-fi.com/milesjohnson" - } - }, "node_modules/emojibase-data": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/emojibase-data/-/emojibase-data-7.0.1.tgz", @@ -5429,15 +4644,6 @@ "node": ">= 0.8" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, "node_modules/enhanced-resolve": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", @@ -5558,12 +4764,6 @@ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, - "node_modules/es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -6256,21 +5456,6 @@ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" }, - "node_modules/exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=", - "dev": true - }, - "node_modules/expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/express": { "version": "4.17.3", "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", @@ -6437,52 +5622,6 @@ "reusify": "^1.0.4" } }, - "node_modules/favicons": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/favicons/-/favicons-6.2.2.tgz", - "integrity": "sha512-qhvFqbhlXA/JYIDYuxTrE4uT9rcpTCrWvF3UG0GxBoLl/XgFBBTrZkQvASrkMebSwDCJ9kKGypRWIbvoRZLBsw==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "colors": "^1.4.0", - "image-size": "^0.8.3", - "jimp": "^0.16.1", - "jsontoxml": "^1.0.1", - "lodash.defaultsdeep": "^4.6.1", - "require-directory": "^2.1.1", - "sharp": "^0.28.2", - "through2": "^4.0.2", - "tinycolor2": "^1.4.2", - "to-ico": "^1.1.5", - "vinyl": "^2.2.1", - "xml2js": "^0.4.23" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/favicons-webpack-plugin": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/favicons-webpack-plugin/-/favicons-webpack-plugin-5.0.2.tgz", - "integrity": "sha512-D/A+Ze0x57+YZBU69hK/lR3NI636qQnKduWyQm0THGl1y3jt16whPHHsi8yjsuXvetv84Eh/I/yYJbAMC2iQxg==", - "dev": true, - "dependencies": { - "@types/favicons": "5.5.0", - "find-root": "^1.1.0", - "parse-author": "^2.0.0", - "parse5": "^6.0.1" - }, - "engines": { - "node": ">=10.13.0" - }, - "optionalDependencies": { - "html-webpack-plugin": ">=5.0.0" - }, - "peerDependencies": { - "favicons": ">= 6.2.0", - "webpack": "^5.0.0" - } - }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -6539,15 +5678,6 @@ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, - "node_modules/file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -6683,12 +5813,6 @@ "node": ">=8" } }, - "node_modules/find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, "node_modules/find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -6825,12 +5949,6 @@ "node": ">= 0.6" } }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -6943,43 +6061,6 @@ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", "dev": true }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -7002,19 +6083,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -7039,22 +6107,6 @@ "assert-plus": "^1.0.0" } }, - "node_modules/gifwrap": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", - "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", - "dev": true, - "dependencies": { - "image-q": "^1.1.1", - "omggif": "^1.0.10" - } - }, - "node_modules/github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true - }, "node_modules/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -7093,16 +6145,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "node_modules/global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "dependencies": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -7236,12 +6278,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, "node_modules/hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -7722,30 +6758,6 @@ "node": ">= 4" } }, - "node_modules/image-q": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", - "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=", - "dev": true, - "engines": { - "node": ">=0.9.0" - } - }, - "node_modules/image-size": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", - "integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==", - "dev": true, - "dependencies": { - "queue": "6.0.1" - }, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", @@ -7888,12 +6900,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "node_modules/inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", @@ -8059,24 +7065,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -8407,31 +7395,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jimp": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.1.tgz", - "integrity": "sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.7.2", - "@jimp/custom": "^0.16.1", - "@jimp/plugins": "^0.16.1", - "@jimp/types": "^0.16.1", - "regenerator-runtime": "^0.13.3" - } - }, - "node_modules/jimp/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - }, - "node_modules/jpeg-js": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", - "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==", - "dev": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8516,15 +7479,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsontoxml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", - "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, "node_modules/jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -8860,31 +7814,6 @@ "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0-beta.5.tgz", "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" }, - "node_modules/load-bmfont": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", - "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", - "dev": true, - "dependencies": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - } - }, - "node_modules/load-bmfont/node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -8937,12 +7866,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "node_modules/lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -9192,27 +8115,6 @@ "node": ">=6" } }, - "node_modules/mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "dependencies": { - "dom-walk": "^0.1.0" - } - }, "node_modules/mini-css-extract-plugin": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", @@ -9315,12 +8217,6 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "node_modules/mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -9351,12 +8247,6 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true - }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -9388,30 +8278,6 @@ "tslib": "^2.0.3" } }, - "node_modules/node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "dependencies": { - "semver": "^5.4.1" - } - }, - "node_modules/node-abi/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true - }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -9479,18 +8345,6 @@ "node": ">=8" } }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "node_modules/nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", @@ -9503,15 +8357,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -9652,12 +8497,6 @@ "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=", "dev": true }, - "node_modules/omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", - "dev": true - }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -9806,12 +8645,6 @@ "node": ">=6" } }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -9847,69 +8680,11 @@ "safe-buffer": "^5.1.1" } }, - "node_modules/parse-author": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "integrity": "sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=", - "dev": true, - "dependencies": { - "author-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", - "dev": true - }, - "node_modules/parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", - "dev": true - }, - "node_modules/parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", - "dev": true, - "dependencies": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" - } - }, - "node_modules/parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", - "dev": true - }, - "node_modules/parse-png": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-1.1.2.tgz", - "integrity": "sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I=", - "dev": true, - "dependencies": { - "pngjs": "^3.2.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" }, - "node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -10010,12 +8785,6 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, - "node_modules/phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", - "dev": true - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -10063,27 +8832,6 @@ "node": ">=0.10.0" } }, - "node_modules/pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "dev": true, - "dependencies": { - "pngjs": "^3.0.0" - }, - "bin": { - "pixelmatch": "bin/pixelmatch" - } - }, - "node_modules/pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/postcss": { "version": "8.4.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", @@ -10590,33 +9338,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "node_modules/prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "dev": true, - "dependencies": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - }, - "bin": { - "prebuild-install": "bin.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -10636,15 +9357,6 @@ "renderkid": "^3.0.0" } }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -10713,16 +9425,6 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -10755,15 +9457,6 @@ "node": ">=0.4.x" } }, - "node_modules/queue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.1.tgz", - "integrity": "sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.3" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -10836,30 +9529,6 @@ "node": ">= 0.8" } }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -11007,15 +9676,6 @@ "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" }, - "node_modules/read-chunk": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz", - "integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -11176,12 +9836,6 @@ "node": ">= 0.10" } }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", @@ -11195,15 +9849,6 @@ "strip-ansi": "^6.0.1" } }, - "node_modules/replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -11243,15 +9888,6 @@ "node": ">=0.6" } }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -11267,99 +9903,6 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "node_modules/resize-img": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-1.1.2.tgz", - "integrity": "sha1-+tZQ+vPvLFPqYxErwnLZXp2SVQ4=", - "dev": true, - "dependencies": { - "bmp-js": "0.0.1", - "file-type": "^3.8.0", - "get-stream": "^2.0.0", - "jimp": "^0.2.21", - "jpeg-js": "^0.1.1", - "parse-png": "^1.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resize-img/node_modules/bmp-js": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.1.tgz", - "integrity": "sha1-WtAUcJnROp84qnuZrx1ueGZu038=", - "dev": true - }, - "node_modules/resize-img/node_modules/file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resize-img/node_modules/jimp": { - "version": "0.2.28", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.2.28.tgz", - "integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=", - "dev": true, - "dependencies": { - "bignumber.js": "^2.1.0", - "bmp-js": "0.0.3", - "es6-promise": "^3.0.2", - "exif-parser": "^0.1.9", - "file-type": "^3.1.0", - "jpeg-js": "^0.2.0", - "load-bmfont": "^1.2.3", - "mime": "^1.3.4", - "mkdirp": "0.5.1", - "pixelmatch": "^4.0.0", - "pngjs": "^3.0.0", - "read-chunk": "^1.0.1", - "request": "^2.65.0", - "stream-to-buffer": "^0.1.0", - "tinycolor2": "^1.1.2", - "url-regex": "^3.0.0" - } - }, - "node_modules/resize-img/node_modules/jimp/node_modules/bmp-js": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.3.tgz", - "integrity": "sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=", - "dev": true - }, - "node_modules/resize-img/node_modules/jimp/node_modules/jpeg-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.2.0.tgz", - "integrity": "sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=", - "dev": true - }, - "node_modules/resize-img/node_modules/jpeg-js": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz", - "integrity": "sha1-E1uZLAV1yYXPoPSUoyJ+0jhYPs4=", - "dev": true - }, - "node_modules/resize-img/node_modules/minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "node_modules/resize-img/node_modules/mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", - "dev": true, - "dependencies": { - "minimist": "0.0.8" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -11578,12 +10121,6 @@ } } }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, "node_modules/scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", @@ -11767,12 +10304,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -11809,44 +10340,6 @@ "node": ">=8" } }, - "node_modules/sharp": { - "version": "0.28.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", - "integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "color": "^3.1.3", - "detect-libc": "^1.0.3", - "node-addon-api": "^3.2.0", - "prebuild-install": "^6.1.2", - "semver": "^7.3.5", - "simple-get": "^3.1.0", - "tar-fs": "^2.1.1", - "tunnel-agent": "^0.6.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://opencollective.com/libvips" - } - }, - "node_modules/sharp/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11887,52 +10380,6 @@ "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", "dev": true }, - "node_modules/simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "dependencies": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, "node_modules/slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -12071,27 +10518,6 @@ "readable-stream": "^3.5.0" } }, - "node_modules/stream-to": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz", - "integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/stream-to-buffer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz", - "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=", - "dev": true, - "dependencies": { - "stream-to": "~0.2.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -12127,41 +10553,6 @@ "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=", "dev": true }, - "node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/string.prototype.matchall": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", @@ -12362,75 +10753,6 @@ "node": ">=6" } }, - "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - } - }, - "node_modules/tar-fs/node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/tar-stream/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/terser": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", @@ -12530,41 +10852,17 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "node_modules/through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "dependencies": { - "readable-stream": "3" - } - }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "node_modules/timm": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", - "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", - "dev": true - }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, - "node_modules/tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -12582,34 +10880,6 @@ "node": ">=4" } }, - "node_modules/to-ico": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/to-ico/-/to-ico-1.1.5.tgz", - "integrity": "sha512-5kIh7m7bkIlqIESEZkL8gAMMzucXKfPe3hX2FoDY5HEAfD9OJU+Qh9b6Enp74w0qRcxVT5ejss66PHKqc3AVkg==", - "dev": true, - "dependencies": { - "arrify": "^1.0.1", - "buffer-alloc": "^1.1.0", - "image-size": "^0.5.0", - "parse-png": "^1.0.0", - "resize-img": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-ico/node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -12898,42 +11168,12 @@ "querystring": "0.2.0" } }, - "node_modules/url-regex": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", - "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", - "dev": true, - "dependencies": { - "ip-regex": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/url-regex/node_modules/ip-regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", - "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", "dev": true }, - "node_modules/utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", - "dev": true, - "dependencies": { - "pako": "^1.0.5" - } - }, "node_modules/util": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", @@ -13000,23 +11240,6 @@ "extsprintf": "^1.2.0" } }, - "node_modules/vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - }, - "engines": { - "node": ">= 0.10" - } - }, "node_modules/warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -13480,15 +11703,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -13531,55 +11745,6 @@ } } }, - "node_modules/xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "dependencies": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/xhr/node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", - "dev": true - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/xtend": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", @@ -14875,387 +13040,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "@jimp/bmp": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/bmp/-/bmp-0.16.1.tgz", - "integrity": "sha512-iwyNYQeBawrdg/f24x3pQ5rEx+/GwjZcCXd3Kgc+ZUd+Ivia7sIqBsOnDaMZdKCBPlfW364ekexnlOqyVa0NWg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "bmp-js": "^0.1.0" - } - }, - "@jimp/core": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/core/-/core-0.16.1.tgz", - "integrity": "sha512-la7kQia31V6kQ4q1kI/uLimu8FXx7imWVajDGtwUG8fzePLWDFJyZl0fdIXVCL1JW2nBcRHidUot6jvlRDi2+g==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "any-base": "^1.1.0", - "buffer": "^5.2.0", - "exif-parser": "^0.1.12", - "file-type": "^9.0.0", - "load-bmfont": "^1.3.1", - "mkdirp": "^0.5.1", - "phin": "^2.9.1", - "pixelmatch": "^4.0.2", - "tinycolor2": "^1.4.1" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - } - } - }, - "@jimp/custom": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/custom/-/custom-0.16.1.tgz", - "integrity": "sha512-DNUAHNSiUI/j9hmbatD6WN/EBIyeq4AO0frl5ETtt51VN1SvE4t4v83ZA/V6ikxEf3hxLju4tQ5Pc3zmZkN/3A==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/core": "^0.16.1" - } - }, - "@jimp/gif": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/gif/-/gif-0.16.1.tgz", - "integrity": "sha512-r/1+GzIW1D5zrP4tNrfW+3y4vqD935WBXSc8X/wm23QTY9aJO9Lw6PEdzpYCEY+SOklIFKaJYUAq/Nvgm/9ryw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "gifwrap": "^0.9.2", - "omggif": "^1.0.9" - } - }, - "@jimp/jpeg": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/jpeg/-/jpeg-0.16.1.tgz", - "integrity": "sha512-8352zrdlCCLFdZ/J+JjBslDvml+fS3Z8gttdml0We759PnnZGqrnPRhkOEOJbNUlE+dD4ckLeIe6NPxlS/7U+w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "jpeg-js": "0.4.2" - } - }, - "@jimp/plugin-blit": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blit/-/plugin-blit-0.16.1.tgz", - "integrity": "sha512-fKFNARm32RoLSokJ8WZXHHH2CGzz6ire2n1Jh6u+XQLhk9TweT1DcLHIXwQMh8oR12KgjbgsMGvrMVlVknmOAg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-blur": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-blur/-/plugin-blur-0.16.1.tgz", - "integrity": "sha512-1WhuLGGj9MypFKRcPvmW45ht7nXkOKu+lg3n2VBzIB7r4kKNVchuI59bXaCYQumOLEqVK7JdB4glaDAbCQCLyw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-circle": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-circle/-/plugin-circle-0.16.1.tgz", - "integrity": "sha512-JK7yi1CIU7/XL8hdahjcbGA3V7c+F+Iw+mhMQhLEi7Q0tCnZ69YJBTamMiNg3fWPVfMuvWJJKOBRVpwNTuaZRg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-color": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-color/-/plugin-color-0.16.1.tgz", - "integrity": "sha512-9yQttBAO5SEFj7S6nJK54f+1BnuBG4c28q+iyzm1JjtnehjqMg6Ljw4gCSDCvoCQ3jBSYHN66pmwTV74SU1B7A==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "tinycolor2": "^1.4.1" - } - }, - "@jimp/plugin-contain": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-contain/-/plugin-contain-0.16.1.tgz", - "integrity": "sha512-44F3dUIjBDHN+Ym/vEfg+jtjMjAqd2uw9nssN67/n4FdpuZUVs7E7wadKY1RRNuJO+WgcD5aDQcsvurXMETQTg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-cover": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-cover/-/plugin-cover-0.16.1.tgz", - "integrity": "sha512-YztWCIldBAVo0zxcQXR+a/uk3/TtYnpKU2CanOPJ7baIuDlWPsG+YE4xTsswZZc12H9Kl7CiziEbDtvF9kwA/Q==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-crop": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-crop/-/plugin-crop-0.16.1.tgz", - "integrity": "sha512-UQdva9oQzCVadkyo3T5Tv2CUZbf0klm2cD4cWMlASuTOYgaGaFHhT9st+kmfvXjKL8q3STkBu/zUPV6PbuV3ew==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-displace": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-displace/-/plugin-displace-0.16.1.tgz", - "integrity": "sha512-iVAWuz2+G6Heu8gVZksUz+4hQYpR4R0R/RtBzpWEl8ItBe7O6QjORAkhxzg+WdYLL2A/Yd4ekTpvK0/qW8hTVw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-dither": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-dither/-/plugin-dither-0.16.1.tgz", - "integrity": "sha512-tADKVd+HDC9EhJRUDwMvzBXPz4GLoU6s5P7xkVq46tskExYSptgj5713J5Thj3NMgH9Rsqu22jNg1H/7tr3V9Q==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-fisheye": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-fisheye/-/plugin-fisheye-0.16.1.tgz", - "integrity": "sha512-BWHnc5hVobviTyIRHhIy9VxI1ACf4CeSuCfURB6JZm87YuyvgQh5aX5UDKtOz/3haMHXBLP61ZBxlNpMD8CG4A==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-flip": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-flip/-/plugin-flip-0.16.1.tgz", - "integrity": "sha512-KdxTf0zErfZ8DyHkImDTnQBuHby+a5YFdoKI/G3GpBl3qxLBvC+PWkS2F/iN3H7wszP7/TKxTEvWL927pypT0w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-gaussian": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-gaussian/-/plugin-gaussian-0.16.1.tgz", - "integrity": "sha512-u9n4wjskh3N1mSqketbL6tVcLU2S5TEaFPR40K6TDv4phPLZALi1Of7reUmYpVm8mBDHt1I6kGhuCJiWvzfGyg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-invert": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-invert/-/plugin-invert-0.16.1.tgz", - "integrity": "sha512-2DKuyVXANH8WDpW9NG+PYFbehzJfweZszFYyxcaewaPLN0GxvxVLOGOPP1NuUTcHkOdMFbE0nHDuB7f+sYF/2w==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-mask": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-mask/-/plugin-mask-0.16.1.tgz", - "integrity": "sha512-snfiqHlVuj4bSFS0v96vo2PpqCDMe4JB+O++sMo5jF5mvGcGL6AIeLo8cYqPNpdO6BZpBJ8MY5El0Veckhr39Q==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-normalize": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-normalize/-/plugin-normalize-0.16.1.tgz", - "integrity": "sha512-dOQfIOvGLKDKXPU8xXWzaUeB0nvkosHw6Xg1WhS1Z5Q0PazByhaxOQkSKgUryNN/H+X7UdbDvlyh/yHf3ITRaw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-print": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-print/-/plugin-print-0.16.1.tgz", - "integrity": "sha512-ceWgYN40jbN4cWRxixym+csyVymvrryuKBQ+zoIvN5iE6OyS+2d7Mn4zlNgumSczb9GGyZZESIgVcBDA1ezq0Q==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "load-bmfont": "^1.4.0" - } - }, - "@jimp/plugin-resize": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-resize/-/plugin-resize-0.16.1.tgz", - "integrity": "sha512-u4JBLdRI7dargC04p2Ha24kofQBk3vhaf0q8FwSYgnCRwxfvh2RxvhJZk9H7Q91JZp6wgjz/SjvEAYjGCEgAwQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-rotate": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-rotate/-/plugin-rotate-0.16.1.tgz", - "integrity": "sha512-ZUU415gDQ0VjYutmVgAYYxC9Og9ixu2jAGMCU54mSMfuIlmohYfwARQmI7h4QB84M76c9hVLdONWjuo+rip/zg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-scale": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-scale/-/plugin-scale-0.16.1.tgz", - "integrity": "sha512-jM2QlgThIDIc4rcyughD5O7sOYezxdafg/2Xtd1csfK3z6fba3asxDwthqPZAgitrLgiKBDp6XfzC07Y/CefUw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-shadow": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-shadow/-/plugin-shadow-0.16.1.tgz", - "integrity": "sha512-MeD2Is17oKzXLnsphAa1sDstTu6nxscugxAEk3ji0GV1FohCvpHBcec0nAq6/czg4WzqfDts+fcPfC79qWmqrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugin-threshold": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugin-threshold/-/plugin-threshold-0.16.1.tgz", - "integrity": "sha512-iGW8U/wiCSR0+6syrPioVGoSzQFt4Z91SsCRbgNKTAk7D+XQv6OI78jvvYg4o0c2FOlwGhqz147HZV5utoSLxA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1" - } - }, - "@jimp/plugins": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/plugins/-/plugins-0.16.1.tgz", - "integrity": "sha512-c+lCqa25b+4q6mJZSetlxhMoYuiltyS+ValLzdwK/47+aYsq+kcJNl+TuxIEKf59yr9+5rkbpsPkZHLF/V7FFA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/plugin-blit": "^0.16.1", - "@jimp/plugin-blur": "^0.16.1", - "@jimp/plugin-circle": "^0.16.1", - "@jimp/plugin-color": "^0.16.1", - "@jimp/plugin-contain": "^0.16.1", - "@jimp/plugin-cover": "^0.16.1", - "@jimp/plugin-crop": "^0.16.1", - "@jimp/plugin-displace": "^0.16.1", - "@jimp/plugin-dither": "^0.16.1", - "@jimp/plugin-fisheye": "^0.16.1", - "@jimp/plugin-flip": "^0.16.1", - "@jimp/plugin-gaussian": "^0.16.1", - "@jimp/plugin-invert": "^0.16.1", - "@jimp/plugin-mask": "^0.16.1", - "@jimp/plugin-normalize": "^0.16.1", - "@jimp/plugin-print": "^0.16.1", - "@jimp/plugin-resize": "^0.16.1", - "@jimp/plugin-rotate": "^0.16.1", - "@jimp/plugin-scale": "^0.16.1", - "@jimp/plugin-shadow": "^0.16.1", - "@jimp/plugin-threshold": "^0.16.1", - "timm": "^1.6.1" - } - }, - "@jimp/png": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/png/-/png-0.16.1.tgz", - "integrity": "sha512-iyWoCxEBTW0OUWWn6SveD4LePW89kO7ZOy5sCfYeDM/oTPLpR8iMIGvZpZUz1b8kvzFr27vPst4E5rJhGjwsdw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/utils": "^0.16.1", - "pngjs": "^3.3.3" - } - }, - "@jimp/tiff": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/tiff/-/tiff-0.16.1.tgz", - "integrity": "sha512-3K3+xpJS79RmSkAvFMgqY5dhSB+/sxhwTFA9f4AVHUK0oKW+u6r52Z1L0tMXHnpbAdR9EJ+xaAl2D4x19XShkQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "utif": "^2.0.1" - } - }, - "@jimp/types": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/types/-/types-0.16.1.tgz", - "integrity": "sha512-g1w/+NfWqiVW4CaXSJyD28JQqZtm2eyKMWPhBBDCJN9nLCN12/Az0WFF3JUAktzdsEC2KRN2AqB1a2oMZBNgSQ==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/bmp": "^0.16.1", - "@jimp/gif": "^0.16.1", - "@jimp/jpeg": "^0.16.1", - "@jimp/png": "^0.16.1", - "@jimp/tiff": "^0.16.1", - "timm": "^1.6.1" - } - }, - "@jimp/utils": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@jimp/utils/-/utils-0.16.1.tgz", - "integrity": "sha512-8fULQjB0x4LzUSiSYG6ZtQl355sZjxbv8r9PPAuYHzS9sGiSHJQavNqK/nKnpDsVkU88/vRGcE7t3nMU0dEnVw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "regenerator-runtime": "^0.13.3" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - } - } - }, "@jridgewell/gen-mapping": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", @@ -15460,15 +13244,6 @@ "@types/range-parser": "*" } }, - "@types/favicons": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@types/favicons/-/favicons-5.5.0.tgz", - "integrity": "sha512-s76OlRaBfqtGu2ZBobnZv2NETfqsQUVfKKlOkKNGo4ArBsqiblodKsnQ3j29hCCgmpQacEfLxealV96za+tzVQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", @@ -15522,7 +13297,7 @@ "version": "16.11.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", - "devOptional": true + "dev": true }, "@types/prop-types": { "version": "15.7.5", @@ -15748,8 +13523,7 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true, - "requires": {} + "dev": true }, "@webpack-cli/info": { "version": "1.5.0", @@ -15764,8 +13538,7 @@ "version": "1.7.0", "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true, - "requires": {} + "dev": true }, "@xtuc/ieee754": { "version": "1.2.0", @@ -15816,8 +13589,7 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "requires": {} + "dev": true }, "ajv": { "version": "6.12.6", @@ -15863,8 +13635,7 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "requires": {} + "dev": true }, "another-json": { "version": "0.2.0", @@ -15892,12 +13663,6 @@ "color-convert": "^1.9.0" } }, - "any-base": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", - "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==", - "dev": true - }, "anymatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", @@ -15908,54 +13673,6 @@ "picomatch": "^2.0.4" } }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "are-we-there-yet": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz", - "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==", - "dev": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, "argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -16026,12 +13743,6 @@ "es-shim-unscopables": "^1.0.0" } }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -16093,12 +13804,6 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "author-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/author-regex/-/author-regex-1.0.0.tgz", - "integrity": "sha1-0IiFvmubv5Q5/gh8dihyRfCoFFA=", - "dev": true - }, "autosize": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", @@ -16246,12 +13951,6 @@ "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", "dev": true }, - "bignumber.js": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.4.0.tgz", - "integrity": "sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=", - "dev": true - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -16292,12 +13991,6 @@ "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-1.1.5.tgz", "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" }, - "bmp-js": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz", - "integrity": "sha1-4Fpj95amwf8l9Hcex62twUjAcjM=", - "dev": true - }, "bn.js": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", @@ -16517,34 +14210,6 @@ "ieee754": "^1.2.1" } }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-equal": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz", - "integrity": "sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=", - "dev": true - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -16683,18 +14348,6 @@ "del": "^4.1.1" } }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", - "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", - "dev": true - }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -16706,71 +14359,6 @@ "shallow-clone": "^3.0.0" } }, - "clone-stats": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", - "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", - "dev": true - }, - "cloneable-readable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz", - "integrity": "sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "process-nextick-args": "^2.0.0", - "readable-stream": "^2.3.5" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dev": true, - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -16786,16 +14374,6 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "color-string": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.6.0.tgz", - "integrity": "sha512-c/hGS+kRWJutUBEngKKmk4iH3sD59MBkoxVapS/0wgpCz2u7XsNloxknyvBhzwEs1IbV36D9PwqLPJ2DTu3vMA==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, "colord": { "version": "2.9.2", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", @@ -16808,12 +14386,6 @@ "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", "dev": true }, - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -16941,12 +14513,6 @@ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true - }, "content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -17166,8 +14732,7 @@ "version": "6.2.2", "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", - "dev": true, - "requires": {} + "dev": true }, "css-loader": { "version": "6.7.1", @@ -17338,8 +14903,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "requires": {} + "dev": true }, "csso": { "version": "4.2.0", @@ -17383,21 +14947,6 @@ "ms": "2.1.2" } }, - "decompress-response": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", - "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", - "dev": true, - "requires": { - "mimic-response": "^2.0.0" - } - }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, "deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -17510,12 +15059,6 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true - }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -17538,12 +15081,6 @@ "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", "dev": true }, - "detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", - "dev": true - }, "detect-node": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", @@ -17631,12 +15168,6 @@ "entities": "^2.0.0" } }, - "dom-walk": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", - "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==", - "dev": true - }, "domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -17720,17 +15251,10 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "emojibase": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/emojibase/-/emojibase-6.0.2.tgz", - "integrity": "sha512-2h2eblOm86tj+lsJLgLYmEni13H74KNNu1NI1ZgMOX9ByWuvjFZLhETEUH1edpcd8srAlzhfJSD892UbpxfwsA==", - "peer": true - }, "emojibase-data": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/emojibase-data/-/emojibase-data-7.0.1.tgz", - "integrity": "sha512-BLZpOdwyFpZ7lzBWyDtnxmKVm/SJMYgAfp1if3o6n1TVUMSXAf0nikONXl90LZuJ/m3XWPBkkubgCet2BsCGGQ==", - "requires": {} + "integrity": "sha512-BLZpOdwyFpZ7lzBWyDtnxmKVm/SJMYgAfp1if3o6n1TVUMSXAf0nikONXl90LZuJ/m3XWPBkkubgCet2BsCGGQ==" }, "emojis-list": { "version": "3.0.0", @@ -17744,15 +15268,6 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "requires": { - "once": "^1.4.0" - } - }, "enhanced-resolve": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", @@ -17846,12 +15361,6 @@ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, - "es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -18229,8 +15738,7 @@ "version": "4.6.0", "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true, - "requires": {} + "dev": true }, "eslint-scope": { "version": "5.1.1", @@ -18372,18 +15880,6 @@ "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" }, - "exif-parser": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/exif-parser/-/exif-parser-0.1.12.tgz", - "integrity": "sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=", - "dev": true - }, - "expand-template": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", - "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", - "dev": true - }, "express": { "version": "4.17.3", "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", @@ -18522,40 +16018,6 @@ "reusify": "^1.0.4" } }, - "favicons": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/favicons/-/favicons-6.2.2.tgz", - "integrity": "sha512-qhvFqbhlXA/JYIDYuxTrE4uT9rcpTCrWvF3UG0GxBoLl/XgFBBTrZkQvASrkMebSwDCJ9kKGypRWIbvoRZLBsw==", - "dev": true, - "requires": { - "clone": "^2.1.2", - "colors": "^1.4.0", - "image-size": "^0.8.3", - "jimp": "^0.16.1", - "jsontoxml": "^1.0.1", - "lodash.defaultsdeep": "^4.6.1", - "require-directory": "^2.1.1", - "sharp": "^0.28.2", - "through2": "^4.0.2", - "tinycolor2": "^1.4.2", - "to-ico": "^1.1.5", - "vinyl": "^2.2.1", - "xml2js": "^0.4.23" - } - }, - "favicons-webpack-plugin": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/favicons-webpack-plugin/-/favicons-webpack-plugin-5.0.2.tgz", - "integrity": "sha512-D/A+Ze0x57+YZBU69hK/lR3NI636qQnKduWyQm0THGl1y3jt16whPHHsi8yjsuXvetv84Eh/I/yYJbAMC2iQxg==", - "dev": true, - "requires": { - "@types/favicons": "5.5.0", - "find-root": "^1.1.0", - "html-webpack-plugin": ">=5.0.0", - "parse-author": "^2.0.0", - "parse5": "^6.0.1" - } - }, "faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -18606,12 +16068,6 @@ "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" }, - "file-type": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-9.0.0.tgz", - "integrity": "sha512-Qe/5NJrgIOlwijpq3B7BEpzPFcgzggOTagZmkXQY4LA6bsXKTUstK7Wp12lEJ/mLKTpvIZxmIuRcLYWT6ov9lw==", - "dev": true - }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -18718,12 +16174,6 @@ } } }, - "find-root": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz", - "integrity": "sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==", - "dev": true - }, "find-up": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", @@ -18818,12 +16268,6 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -18921,39 +16365,6 @@ } } }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -18970,16 +16381,6 @@ "has-symbols": "^1.0.1" } }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" - } - }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -18998,22 +16399,6 @@ "assert-plus": "^1.0.0" } }, - "gifwrap": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/gifwrap/-/gifwrap-0.9.2.tgz", - "integrity": "sha512-fcIswrPaiCDAyO8xnWvHSZdWChjKXUanKKpAiWWJ/UTkEi/aYKn5+90e7DE820zbEaVR9CE2y4z9bzhQijZ0BA==", - "dev": true, - "requires": { - "image-q": "^1.1.1", - "omggif": "^1.0.10" - } - }, - "github-from-package": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", - "dev": true - }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", @@ -19043,16 +16428,6 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, - "global": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", - "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", - "dev": true, - "requires": { - "min-document": "^2.19.0", - "process": "^0.11.10" - } - }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -19146,12 +16521,6 @@ "has-symbols": "^1.0.2" } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true - }, "hash-base": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", @@ -19476,8 +16845,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "requires": {} + "dev": true }, "idb-wrapper": { "version": "1.7.2", @@ -19497,21 +16865,6 @@ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", "dev": true }, - "image-q": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/image-q/-/image-q-1.1.1.tgz", - "integrity": "sha1-/IQJlmRGC5DKhi2TALa/u7+/gFY=", - "dev": true - }, - "image-size": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.8.3.tgz", - "integrity": "sha512-SMtq1AJ+aqHB45c3FsB4ERK0UCiA2d3H1uq8s+8T0Pf8A3W4teyBQyaFaktH6xvZqh+npwlKU7i4fJo0r7TYTg==", - "dev": true, - "requires": { - "queue": "6.0.1" - } - }, "immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", @@ -19620,12 +16973,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, "inline-style-parser": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", @@ -19734,21 +17081,6 @@ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "requires": { - "number-is-nan": "^1.0.0" - } - }, - "is-function": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", - "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==", - "dev": true - }, "is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -19979,33 +17311,6 @@ } } }, - "jimp": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.16.1.tgz", - "integrity": "sha512-+EKVxbR36Td7Hfd23wKGIeEyHbxShZDX6L8uJkgVW3ESA9GiTEPK08tG1XI2r/0w5Ch0HyJF5kPqF9K7EmGjaw==", - "dev": true, - "requires": { - "@babel/runtime": "^7.7.2", - "@jimp/custom": "^0.16.1", - "@jimp/plugins": "^0.16.1", - "@jimp/types": "^0.16.1", - "regenerator-runtime": "^0.13.3" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", - "dev": true - } - } - }, - "jpeg-js": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz", - "integrity": "sha512-+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -20073,12 +17378,6 @@ "universalify": "^0.1.2" } }, - "jsontoxml": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/jsontoxml/-/jsontoxml-1.0.1.tgz", - "integrity": "sha512-dtKGq0K8EWQBRqcAaePSgKR4Hyjfsz/LkurHSV3Cxk4H+h2fWDeaN2jzABz+ZmOJylgXS7FGeWmbZ6jgYUMdJQ==", - "dev": true - }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", @@ -20368,38 +17667,13 @@ "linkify-html": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0-beta.5.tgz", - "integrity": "sha512-7upWBgItubM1yQhO1MozvSzl2bCWModOgcc1Wd7kPpndlbR1JxmqH/N0UzmdvX6g0PX0ftnCQdYV4RZHLP9D5g==", - "requires": {} + "integrity": "sha512-7upWBgItubM1yQhO1MozvSzl2bCWModOgcc1Wd7kPpndlbR1JxmqH/N0UzmdvX6g0PX0ftnCQdYV4RZHLP9D5g==" }, "linkifyjs": { "version": "4.0.0-beta.5", "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0-beta.5.tgz", "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" }, - "load-bmfont": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/load-bmfont/-/load-bmfont-1.4.1.tgz", - "integrity": "sha512-8UyQoYmdRDy81Brz6aLAUhfZLwr5zV0L3taTQ4hju7m6biuwiWiJXjPhBJxbUQJA8PrkvJ/7Enqmwk2sM14soA==", - "dev": true, - "requires": { - "buffer-equal": "0.0.1", - "mime": "^1.3.4", - "parse-bmfont-ascii": "^1.0.3", - "parse-bmfont-binary": "^1.0.5", - "parse-bmfont-xml": "^1.1.4", - "phin": "^2.9.1", - "xhr": "^2.0.1", - "xtend": "^4.0.0" - }, - "dependencies": { - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - } - } - }, "loader-runner": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", @@ -20443,12 +17717,6 @@ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, - "lodash.defaultsdeep": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz", - "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", - "dev": true - }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -20645,21 +17913,6 @@ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, - "mimic-response": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", - "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", - "dev": true - }, - "min-document": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", - "dev": true, - "requires": { - "dom-walk": "^0.1.0" - } - }, "mini-css-extract-plugin": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", @@ -20737,12 +17990,6 @@ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", "dev": true }, - "mkdirp-classic": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", - "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", - "dev": true - }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -20764,12 +18011,6 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, - "napi-build-utils": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", - "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", - "dev": true - }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -20798,29 +18039,6 @@ "tslib": "^2.0.3" } }, - "node-abi": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz", - "integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==", - "dev": true, - "requires": { - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "node-addon-api": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", - "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true - }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -20862,18 +18080,6 @@ "path-key": "^3.0.0" } }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, "nth-check": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", @@ -20883,12 +18089,6 @@ "boolbase": "^1.0.0" } }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", @@ -20987,12 +18187,6 @@ "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=", "dev": true }, - "omggif": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/omggif/-/omggif-1.0.10.tgz", - "integrity": "sha512-LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==", - "dev": true - }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -21101,12 +18295,6 @@ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, "param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -21139,63 +18327,11 @@ "safe-buffer": "^5.1.1" } }, - "parse-author": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/parse-author/-/parse-author-2.0.0.tgz", - "integrity": "sha1-00YL8d3Q367tQtp1QkLmX7aEqB8=", - "dev": true, - "requires": { - "author-regex": "^1.0.0" - } - }, - "parse-bmfont-ascii": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz", - "integrity": "sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=", - "dev": true - }, - "parse-bmfont-binary": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz", - "integrity": "sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=", - "dev": true - }, - "parse-bmfont-xml": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz", - "integrity": "sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==", - "dev": true, - "requires": { - "xml-parse-from-string": "^1.0.0", - "xml2js": "^0.4.5" - } - }, - "parse-headers": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.4.tgz", - "integrity": "sha512-psZ9iZoCNFLrgRjZ1d8mn0h9WRqJwFxM9q3x7iUjN/YT2OksthDJ5TiPCu2F38kS4zutqfW+YdVVkBZZx3/1aw==", - "dev": true - }, - "parse-png": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/parse-png/-/parse-png-1.1.2.tgz", - "integrity": "sha1-9cKtfHmTSQmGAgooTBmu5FlxH/I=", - "dev": true, - "requires": { - "pngjs": "^3.2.0" - } - }, "parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" }, - "parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, "parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -21278,12 +18414,6 @@ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, - "phin": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/phin/-/phin-2.9.3.tgz", - "integrity": "sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==", - "dev": true - }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -21316,21 +18446,6 @@ "pinkie": "^2.0.0" } }, - "pixelmatch": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-4.0.2.tgz", - "integrity": "sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=", - "dev": true, - "requires": { - "pngjs": "^3.0.0" - } - }, - "pngjs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz", - "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==", - "dev": true - }, "postcss": { "version": "8.4.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", @@ -21377,29 +18492,25 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", - "dev": true, - "requires": {} + "dev": true }, "postcss-discard-duplicates": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-discard-empty": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "requires": {} + "dev": true }, "postcss-discard-overridden": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-merge-longhand": { "version": "5.1.5", @@ -21467,8 +18578,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "requires": {} + "dev": true }, "postcss-modules-local-by-default": { "version": "4.0.0", @@ -21503,8 +18613,7 @@ "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "requires": {} + "dev": true }, "postcss-normalize-display-values": { "version": "5.1.0", @@ -21644,27 +18753,6 @@ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "prebuild-install": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-6.1.4.tgz", - "integrity": "sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ==", - "dev": true, - "requires": { - "detect-libc": "^1.0.3", - "expand-template": "^2.0.3", - "github-from-package": "0.0.0", - "minimist": "^1.2.3", - "mkdirp-classic": "^0.5.3", - "napi-build-utils": "^1.0.1", - "node-abi": "^2.21.0", - "npmlog": "^4.0.1", - "pump": "^3.0.0", - "rc": "^1.2.7", - "simple-get": "^3.0.3", - "tar-fs": "^2.0.0", - "tunnel-agent": "^0.6.0" - } - }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -21681,12 +18769,6 @@ "renderkid": "^3.0.0" } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, "process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -21754,16 +18836,6 @@ } } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -21783,15 +18855,6 @@ "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", "dev": true }, - "queue": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.1.tgz", - "integrity": "sha512-AJBQabRCCNr9ANq8v77RJEv73DPbn55cdTb+Giq4X0AVnNVZvMHlYp7XlQiN+1npCZj1DuSmaA2hYVUUDgxFDg==", - "dev": true, - "requires": { - "inherits": "~2.0.3" - } - }, "queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -21843,26 +18906,6 @@ } } }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true - } - } - }, "react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -21894,8 +18937,7 @@ "react-blurhash": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.1.3.tgz", - "integrity": "sha512-Q9lqbXg92NU6/2DoIl/cBM8YWL+Z4X66OiG4aT9ozOgjBwx104LHFCH5stf6aF+s0Q9Wf310Ul+dG+VXJltmPg==", - "requires": {} + "integrity": "sha512-Q9lqbXg92NU6/2DoIl/cBM8YWL+Z4X66OiG4aT9ozOgjBwx104LHFCH5stf6aF+s0Q9Wf310Ul+dG+VXJltmPg==" }, "react-dnd": { "version": "15.1.2", @@ -21967,12 +19009,6 @@ "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" }, - "read-chunk": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-1.0.1.tgz", - "integrity": "sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=", - "dev": true - }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", @@ -22099,12 +19135,6 @@ "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", "dev": true }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, "renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", @@ -22118,12 +19148,6 @@ "strip-ansi": "^6.0.1" } }, - "replace-ext": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz", - "integrity": "sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==", - "dev": true - }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -22158,12 +19182,6 @@ } } }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -22176,93 +19194,6 @@ "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", "dev": true }, - "resize-img": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/resize-img/-/resize-img-1.1.2.tgz", - "integrity": "sha1-+tZQ+vPvLFPqYxErwnLZXp2SVQ4=", - "dev": true, - "requires": { - "bmp-js": "0.0.1", - "file-type": "^3.8.0", - "get-stream": "^2.0.0", - "jimp": "^0.2.21", - "jpeg-js": "^0.1.1", - "parse-png": "^1.1.1" - }, - "dependencies": { - "bmp-js": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.1.tgz", - "integrity": "sha1-WtAUcJnROp84qnuZrx1ueGZu038=", - "dev": true - }, - "file-type": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", - "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", - "dev": true - }, - "jimp": { - "version": "0.2.28", - "resolved": "https://registry.npmjs.org/jimp/-/jimp-0.2.28.tgz", - "integrity": "sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=", - "dev": true, - "requires": { - "bignumber.js": "^2.1.0", - "bmp-js": "0.0.3", - "es6-promise": "^3.0.2", - "exif-parser": "^0.1.9", - "file-type": "^3.1.0", - "jpeg-js": "^0.2.0", - "load-bmfont": "^1.2.3", - "mime": "^1.3.4", - "mkdirp": "0.5.1", - "pixelmatch": "^4.0.0", - "pngjs": "^3.0.0", - "read-chunk": "^1.0.1", - "request": "^2.65.0", - "stream-to-buffer": "^0.1.0", - "tinycolor2": "^1.1.2", - "url-regex": "^3.0.0" - }, - "dependencies": { - "bmp-js": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.0.3.tgz", - "integrity": "sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=", - "dev": true - }, - "jpeg-js": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.2.0.tgz", - "integrity": "sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=", - "dev": true - } - } - }, - "jpeg-js": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz", - "integrity": "sha1-E1uZLAV1yYXPoPSUoyJ+0jhYPs4=", - "dev": true - }, - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "requires": { - "minimist": "0.0.8" - } - } - } - }, "resolve": { "version": "1.22.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", @@ -22397,12 +19328,6 @@ "neo-async": "^2.6.2" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, "scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", @@ -22567,12 +19492,6 @@ "send": "0.17.2" } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -22603,33 +19522,6 @@ "kind-of": "^6.0.2" } }, - "sharp": { - "version": "0.28.3", - "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.28.3.tgz", - "integrity": "sha512-21GEP45Rmr7q2qcmdnjDkNP04Ooh5v0laGS5FDpojOO84D1DJwUijLiSq8XNNM6e8aGXYtoYRh3sVNdm8NodMA==", - "dev": true, - "requires": { - "color": "^3.1.3", - "detect-libc": "^1.0.3", - "node-addon-api": "^3.2.0", - "prebuild-install": "^6.1.2", - "semver": "^7.3.5", - "simple-get": "^3.1.0", - "tar-fs": "^2.1.1", - "tunnel-agent": "^0.6.0" - }, - "dependencies": { - "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, "shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -22661,40 +19553,6 @@ "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", "dev": true }, - "simple-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", - "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", - "dev": true - }, - "simple-get": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", - "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", - "dev": true, - "requires": { - "decompress-response": "^4.2.0", - "once": "^1.3.1", - "simple-concat": "^1.0.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "requires": { - "is-arrayish": "^0.3.1" - }, - "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - } - } - }, "slash": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", @@ -22806,21 +19664,6 @@ "readable-stream": "^3.5.0" } }, - "stream-to": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/stream-to/-/stream-to-0.2.2.tgz", - "integrity": "sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=", - "dev": true - }, - "stream-to-buffer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz", - "integrity": "sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=", - "dev": true, - "requires": { - "stream-to": "~0.2.0" - } - }, "string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -22844,34 +19687,6 @@ "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=", "dev": true }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - } - } - }, "string.prototype.matchall": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", @@ -22941,8 +19756,7 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "dev": true, - "requires": {} + "dev": true }, "style-to-js": { "version": "1.1.1", @@ -23014,62 +19828,6 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", - "dev": true, - "requires": { - "chownr": "^1.1.1", - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^2.1.4" - }, - "dependencies": { - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - } - } - }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "dependencies": { - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - } - } - }, "terser": { "version": "5.10.0", "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", @@ -23128,38 +19886,17 @@ "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, - "through2": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", - "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", - "dev": true, - "requires": { - "readable-stream": "3" - } - }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true }, - "timm": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/timm/-/timm-1.7.1.tgz", - "integrity": "sha512-IjZc9KIotudix8bMaBW6QvMuq64BrJWFs1+4V0lXwWGQZwH+LnX87doAYhem4caOEusRP9/g6jVDQmZ8XOk1nw==", - "dev": true - }, "tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, - "tinycolor2": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/tinycolor2/-/tinycolor2-1.4.2.tgz", - "integrity": "sha512-vJhccZPs965sV/L2sU4oRQVAos0pQXwsvTLkWYdqJ+a8Q5kPFzJTuOFwy7UniPli44NKQGAglksjvOcpo95aZA==", - "dev": true - }, "tippy.js": { "version": "6.3.7", "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", @@ -23174,27 +19911,6 @@ "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, - "to-ico": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/to-ico/-/to-ico-1.1.5.tgz", - "integrity": "sha512-5kIh7m7bkIlqIESEZkL8gAMMzucXKfPe3hX2FoDY5HEAfD9OJU+Qh9b6Enp74w0qRcxVT5ejss66PHKqc3AVkg==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "buffer-alloc": "^1.1.0", - "image-size": "^0.5.0", - "parse-png": "^1.0.0", - "resize-img": "^1.1.0" - }, - "dependencies": { - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true - } - } - }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -23416,32 +20132,6 @@ } } }, - "url-regex": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/url-regex/-/url-regex-3.2.0.tgz", - "integrity": "sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=", - "dev": true, - "requires": { - "ip-regex": "^1.0.1" - }, - "dependencies": { - "ip-regex": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-1.0.3.tgz", - "integrity": "sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=", - "dev": true - } - } - }, - "utif": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/utif/-/utif-2.0.1.tgz", - "integrity": "sha512-Z/S1fNKCicQTf375lIP9G8Sa1H/phcysstNrrSdZKj1f9g58J4NMgb5IgiEZN9/nLMPDwF0W7hdOe9Qq2IYoLg==", - "dev": true, - "requires": { - "pako": "^1.0.5" - } - }, "util": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", @@ -23495,20 +20185,6 @@ "extsprintf": "^1.2.0" } }, - "vinyl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz", - "integrity": "sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==", - "dev": true, - "requires": { - "clone": "^2.1.1", - "clone-buffer": "^1.0.0", - "clone-stats": "^1.0.0", - "cloneable-readable": "^1.0.0", - "remove-trailing-separator": "^1.0.1", - "replace-ext": "^1.0.0" - } - }, "warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -23577,8 +20253,7 @@ "version": "1.8.0", "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "requires": {} + "dev": true }, "schema-utils": { "version": "3.1.1", @@ -23837,15 +20512,6 @@ "is-typed-array": "^1.1.7" } }, - "wide-align": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", - "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", - "dev": true, - "requires": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "wildcard": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", @@ -23868,49 +20534,6 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", - "dev": true, - "requires": {} - }, - "xhr": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", - "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", - "dev": true, - "requires": { - "global": "~4.4.0", - "is-function": "^1.0.1", - "parse-headers": "^2.0.0", - "xtend": "^4.0.0" - }, - "dependencies": { - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - } - } - }, - "xml-parse-from-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz", - "integrity": "sha1-qQKekp09vN7RafPG4oI42VpdWig=", - "dev": true - }, - "xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "requires": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - } - }, - "xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true }, "xtend": { diff --git a/package.json b/package.json index 2ec2a79c..5f3485e6 100644 --- a/package.json +++ b/package.json @@ -65,8 +65,6 @@ "eslint-plugin-jsx-a11y": "^6.6.1", "eslint-plugin-react": "^7.31.1", "eslint-plugin-react-hooks": "^4.6.0", - "favicons": "^6.2.2", - "favicons-webpack-plugin": "^5.0.2", "html-loader": "^4.1.0", "html-webpack-plugin": "^5.3.1", "mini-css-extract-plugin": "^2.6.1", diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..916713065b069f0e59a63d520178ea8101818913 GIT binary patch literal 33310 zcmds=39uDKmWD41Zh#;vi?Te&jSgf)fe5#7iEs_K7-bc0ca0fVQQL(<(1~z#P}xOo zffki;3)exq8(Txi1sUl<9R+3_z%4`&ci_Dz@8N_@)vbGhJ`v|--mH`7 zoII6#o~&0Wv?{bIbnIAASXb!Xx=2=oYpw6#Dh^e;-mP z{JBS=aPrCiZ-rYY~UjHYwh?%PzZ^Hf`E0QrzRAupr%Lj~h3Ry!A~@O{Srt zf&Au^Pd+J%ug!1u*a{C{53=_kFkrwokvDGJwyg*%ZqXce*kLwbm`@{R!5*^J%sF%B zAg<`kEeiN;(B+IX&an9j;Xz1Q3^v_opMBQNm@xx#FB6#s{Py75Yp?b4OP1vm=)rrD z&FgpFbyqWV=+NSqUw-LjR2hur@xlu)*nH?~sB*r)F{)hUq5s3!3P&* zdoRCVuV#^7_VjFW=9y;}*RNk6$euQBnpwPfvAOQL>&&gU-da5R=%dlWqupbVJ-j-} zyHHvKc2HP6<&;y34?XmddFrXB%-wh2ZQ8bN>!tHdNZfmW3cdQQ=d-C3`n}cXVd)9I zI5PZqZtD+vTWCj}^z94pCSegfDcuW2h|UeA^;hjIXg{*cY-ETo5_yKMdfu%4gm@Gr zbAamAEZ&P`H-NsKBik?igu0r7x)ZPeQBWwT&q)bAML$Zimgt?Vkqx(i#Fh3(JsT

2R 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 j*?{u}e9Z0;a@O`|A?J>z-vJ + + + + + + + + + + + + + + + + + + + + + +

diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 00000000..21ae4f0d --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,59 @@ +{ + "name": "Cinny", + "short_name": "Cinny", + "description": "Yet another matrix client", + "dir": "auto", + "lang": "en-US", + "display": "standalone", + "orientation": "portrait", + "start_url": "/", + "background_color": "#fff", + "theme_color": "#fff", + "icons": [ + { + "src": "android-chrome-36x36.png", + "sizes": "36x36", + "type": "image/png" + }, + { + "src": "android-chrome-48x48.png", + "sizes": "48x48", + "type": "image/png" + }, + { + "src": "android-chrome-72x72.png", + "sizes": "72x72", + "type": "image/png" + }, + { + "src": "android-chrome-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, + { + "src": "android-chrome-144x144.png", + "sizes": "144x144", + "type": "image/png" + }, + { + "src": "android-chrome-192x192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "android-chrome-256x256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "android-chrome-384x384.png", + "sizes": "384x384", + "type": "image/png" + }, + { + "src": "android-chrome-512x512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/public/res/android/android-chrome-144x144.png b/public/res/android/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..8c8c2668b3259748889da147c356e654e3606e58 GIT binary patch literal 4499 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 literal 0 HcmV?d00001 diff --git a/public/res/android/android-chrome-256x256.png b/public/res/android/android-chrome-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..57378b413191cabc6c5f86714ffdff47a60ad16c GIT binary patch literal 8384 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 z zA$U@>ln8_OA=bXvAt>S~!o(70L4*qvmvYftUq;&s{dgL1dhONhYKT09c2}5dUbvT% z!yLTPj%_ztja{Oo+f*l-{cfk;ejSk#Nr-t8$P`xPCTLnRBimM*_R6SIMcauDl`+a> z?sola9($h1m{Qv7wY1ldl?jmw;1xULl9Xphf)rC2Ot2~0h8Jq}-z#=X@QNMAY?pt7 zOo^Zx@uIq;83_is|K85aeq(c_E~pNN&5S6$sBXQq4-Fi+_460a&v>VXCQ1aeScSQ) zYWz2@DJOYB_k<|3fY|;@GFEm12&($<3QzgvtlwMt**fr_3D;B}YbumIvO@hIlr1g9 literal 0 HcmV?d00001 diff --git a/public/res/android/android-chrome-36x36.png b/public/res/android/android-chrome-36x36.png new file mode 100644 index 0000000000000000000000000000000000000000..507c443941225e2c73003d85eeac2fba6cc78285 GIT binary patch literal 1073 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 KSv3!_dhkEtONq1q literal 0 HcmV?d00001 diff --git a/public/res/android/android-chrome-48x48.png b/public/res/android/android-chrome-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..489cfd32175ddeaba504eee8aba83de8bb97811a GIT binary patch literal 1487 zcmV;=1u*)FP)un^=@nsT7@BBf`Cv<9e@_OyQ)-xr9+FYzi~ z#4~sT*?2^odeq_+zQF*F5I>+YuFXft)lIQj%+{@2O`0@G zR|*OWtXZ?hfB^%%^2#fwOqpW$?%i&A>ZzxU7%@V2cDDNZdN*#|kcJ%mCB#TPFAcM2 z&sJDis5=sggj*7cgj>Qew15A8@pxQERaI5W%gdFQmpgm*tS*eh@Hl>h-%7*g&70-q zf3L>b?n$N=gyszmzQVZ!iDnl^Bp~U)Rik& zbRxi^5HCu@m@#9F9XnQcjT$w|s8OSIbo%sZYuBz-QBmQ-g$p_g!_afjJts3W)Aj4u zb>gKEPfNr2@#FPYNlA%St5#`fXwaFKmKH~j9MOfRLp&)BIXO9cW97<~ii?Xyh*+adELlix%mL%a<=(x^$_C4GML`%$YNlmX^xN z$^VVB$>5ZD28lQdknLcnW#1#zHK~YhWl9Ccb zhYr$>uNI8H0yt1+~Q8|A6xIXY#T#^!V+gdb9dGEdVR99DvLS<#8h&AE^?P6~G z9&4psyLQdu#fv4ANxjkB-0aYyLn8J*&S)2Nw_==-vUBH7t5>hq8x<858XFr$=omh5 zhq$}7;0r83zc0W1Qf_Xp7hZTlPrUQaJ5HTCB_d6D1Lxc!?&mJy3}ztMwQHA=BS#uH zZk%+SIB~+e@4hRUOo~7f^RY(*!oos95a^D1^XB>PyYEEg z_xRX7#C7fP(w9O(K!dOAT0nGWQYJwJL1Gt9bOsAAhuC#||4eZglhJ zO?i2FGBPsU(%RZ;)~s0$9z3X*j^TCuQx^i=mx1M2feh{X_wR4=40}Hub2%X?%kN*ozB#>3^cO!d3`W4xRu2002ovPDHLkV1hnv;Qasq literal 0 HcmV?d00001 diff --git a/public/res/android/android-chrome-512x512.png b/public/res/android/android-chrome-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..d312b532c57b74fa511e6045500d9a83bb5deec4 GIT binary patch literal 17829 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 literal 0 HcmV?d00001 diff --git a/public/res/apple/apple-touch-icon-114x114.png b/public/res/apple/apple-touch-icon-114x114.png new file mode 100644 index 0000000000000000000000000000000000000000..418f883395b22e4d4368fe4ca0769d76c98eec5c GIT binary patch literal 4902 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℞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

@dAFv$W*lSH4*UY=@f4kiK%3hgn5lQ&UsC z!lEy_zM-KyWYgXGLslg5FQre`H(=oW?&-8QZ`AYh@+go~v{q*!cfs-3*4A26AD<8B z!!9l?NO++6w2OK_J<*{pw`>Yg6cQ3r$%dX3xT>XfM~fp>vaPMn(tmA6TL4;tH~F-< zcnnxe%-y^8{U9433>O!dO3i}@Y-FTc;jlXikoL^r@+L&>jO)_Ul8-sSHsub@k$S_T zcvJ#{mUb|0X~`Y1$rt_l=2W{WEj_(hf@n~Dm@JU9M<97JUaZ>kG?vn?{vfPGhN6J9cK)oI7(&loed)?>5C}*n5Z}_GS^1X2bcWq65|wb;vg(ir(BAm? zI4X6}wWz+H2V3LVi^P}~Nr+k)WutLh>+5aV%F|&SP_Q9RPR>tbWA}(_8ygPoF^raC z_PUQ`tYd)9%R#ua`+ugfZofk`lINpY&$ssWGJ0Uh4!_2#V`5`(^e+vU_4f7Y;HcL{ z&z*Z*Rdtq(ou@g!x26NFb_Sl5QU3Ydi3zKRtuSK!{%I-@31imn{bgG`TPpp}udiiS zn|EbK9%g3BJ9JS)^c%35ojkz@ai3cjCa*YpcDLA|Z+L9PBEhA~8LSE#$8Pn1Wv~XZ z*A_)9Um-HYB$Z*HZ(@QiHoMWECSlm~{(Za66u>DAQ4fua%|Hk&*I^2=(k{xNW9Dgv zh;b>Wt}PoKpMKKBK4s|hXBgQ~Q*pu(C|03!StCe11F*8Bl$1eN0<7L9V%sSpA)!jy zWAueC$tHaBG9Jc)!>ro#C%ne0w5j_TF}JXw3>nIr!V_=$w7mIP)t^pc14;_+e3%tC ze`5b{w&;;V zb}_xRg-5pbhTSQ`C#9v276afoIy=kTwH^W(7h_^!kp%29<*Z)Z*<4QKQ%rzudpgaw z$5K%+zOV--RR(6}c~h8pX4yAar-e;SOjM<%4O< z7BSC9URd`5%;5zf<%5}Z;#jyE14vOel|Ld5wg+zektbF4lK5f`iVK?v{mv1)U#HEk zUX4dqz#xdo>P4K?JPnvGg6w^!8D*1dvDW_U5(#c1C?41HY?o>slTlgzVmw)O6~mbU?2KDcef#8UrjymS3yC+9awn5plk4T z5GGZJsQCPRVO3RCDzelqa!$u6Es{vRze%4@ojH@yva=)|Nna1$%dg})GyU&CIhyX+ z1>)cu>iq661yDg!8U}-TkdYA!0JG9|s+n=6wX-u8EQb;7mGUG1whS1gk7mv3|IE!h zx{~|D@>Eg?`R&?#u;cNtb$UAg_THRuqL7AFK`wPN z&V{I=>?~J8zI<$l{()cZ0O>mn@{r!Z*lfC~!f?jmQQ1T-<<`gH;f(rv z6(H^fA&n4*fJ53hFVIV!IkV8OJnaa0bdE_`Ss8|UUR6JFutG;Tde|eG+;0DtB&be3 z4uCuU)Q_4(@Q=Or7KV`w<~acZR9ZM}jpoLU8)H#1Nr}7)cc=Fjl^q=&*&u`){D1g} z!^q+Sf~Ss5IAopZ4V^-ie8gTbR1RxlalG%5?4uN6O_>5aXe`jD-2We8sEaThcIZmH z0i@mzX$4@H`iDFv4PtxP3Ol)Xj{!gN(yjfzZ1X*h)GDfZJI?o{MnS{C5zWfi*Xil$ zIyyQ>wlHjnyR5=8Cb?=EFo`j_zp`p&!Hu1|a^*@_itqr80u5o?@@l!s|A(K?UcBf! zJ~=hDFf(Hp6&)Q5lT66(pC{~oh;tUW4CHlmbg*%7M0eWH{u-|ZkS!ctR>f0_!WQ0h zMF!45BGV%f3@1*UfQ+Sjz!OFT(I;mMQIM{K?yow!x`r^+!>y{S2awW0ee)EG-xClG z#47OHv$8TG&~0O*8riIDSVdKJohZD|kff&r`z8$%>47=?^3R9IMC|X#`OIiF2Cd2z c`23@95(&yCI&J)hQ@lesU1Q9P3wBZe15=6F-T(jq literal 0 HcmV?d00001 diff --git a/public/res/apple/apple-touch-icon-144x144.png b/public/res/apple/apple-touch-icon-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..b6a731eba6e00ff3a70fd3d660c9ec3857200284 GIT binary patch literal 6075 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 Wvb$fUaT12|$F$WkYR^<{!u}66`NA&% literal 0 HcmV?d00001 diff --git a/public/res/apple/apple-touch-icon-152x152.png b/public/res/apple/apple-touch-icon-152x152.png new file mode 100644 index 0000000000000000000000000000000000000000..968ae2f01e93c14da064c885111549a06f4c4a9a GIT binary patch literal 6665 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 dUG@*xy6@Y=+Ev%5@DIr$R3fsi|j(#L{=oT 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 YmO1|=A>%K6?RZW_K~ug|&cyeB0DR9&6#xJL literal 0 HcmV?d00001 diff --git a/public/res/apple/apple-touch-icon-180x180.png b/public/res/apple/apple-touch-icon-180x180.png new file mode 100644 index 0000000000000000000000000000000000000000..a651cd1c8b2d26a4af969c22b43f7076f6f9bf2c GIT binary patch literal 7889 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 REPwz2002ovPDHLkV1hplh-Lr) literal 0 HcmV?d00001 diff --git a/public/res/apple/apple-touch-icon-60x60.png b/public/res/apple/apple-touch-icon-60x60.png new file mode 100644 index 0000000000000000000000000000000000000000..47fafb07aacb8c427095194e8c4cee18e2268e5a GIT binary patch literal 2482 zcmV;j2~GBiP)_A_ONl| zMr=i8m86uEmX>nj#0jokxq_4uE5RyEOiWN+T`j7stNHTFF9{D1CnY6C#>B)3R!Li0RaIVIdTL|(^x5$75Mkxe>rsM5T&K1IMU6VH`%>= zH=3rAm6gTj&6`;+m1R0}=8QBL4C2wFNBmzYDJh}6yqv78ED{qFSq_yY8X6iRDJe-_ zxNt%63>Y09B`GP1ii!%ElanJ{TwGWRl_luu=|R&pX)>7v&zQWtJYhDQ6G?`C*-n1v`TAUQc%-nemt=S^*Gtw>Bvlq^8u z3C^53BlGg|1kb4p7cPi%=g#pY3iGtIv|un81kbrchYn$}SeQ>?9)rQaqeqW;-i?lq zVlWt(PhpOtq9RI4O8EbxxVV^-k`m@pnIWYlJv|*;@$&Lw-@bi>hldjw7|8nd>zSIG zqOY%y=H_OuU%$@9ix;V`uEw4+GBTv5X@VIlGfGQKxpnIntL5(QPG)8%Nl8hpUAvaK z6h*<)(-TimPlAJkNl8h;WHRyDXP;p*nXretx;jx-RwkpOq6AiJ(yg#cPEN*Rv9KCD zcI@Ey-+w1OJRDV3S&EGtH}dhvA0vd|+O=!gLuY5F*tc&V(-f@k-@nh5D_2;J@bGZT z%gb56emzU^`0-=P%F1YMZADQO($mxV_Sj7D_;{Lg&w)=jE4Q zW;w23zs|IQfdT&h`)@XE*ub=7$Bq#nAJ5jUTXA=HXWIDqI2|1wG&eU>QBgr|ZY~y! zh2)6B)l!4|tmT`g)<7&1P0guh-+@ z;ejn#EEeM97|#jmEPW7G)<$uy&Ze$=;#p2;NT!D;q2_pyYIe>tt2NWW3gDUr@_HN)RB=9 zmg}vz-s0T3bLjPYY@xWgn1X@=>}_~>7?ovkb#>+IufHZaIT;}YwlF$6%7Ft1a1>Ri z(=j$S#$tBu+Qr$kXW6uA6Snl@k3Z7U(SaklxVWIYxw+BT*T+IUJUlpl{5T(d^btY` zY)MMVH{X1Nqqw=bq5Amv$h&v%3Z6jIG;(rs@b&e@9{&9EPZ}E=ag=rI)=Aah-(S?! z)G(KahX+TG9_5oyKEa+YU%reZ>GgV{>h*f&djI|RId$q3K0ZF!TSY|$j`Z4Vuc2() zwoNieW@aWnK0Y|YojZ4Mr0v_cOC=;EL^wG)F{`Mk2uJDc?8H%=oSX;=2@#5`t1H{L zZFL2ygb*YoBrr|E%GcMIu&^*@oj!e3|2fq{X{I(qadot>T7%O8LI zfg=P21P~b+DVU)!M@B{lvwC}b`SjCIu@{rcgd=?Q)mKso!7PP2G)+U(G-h4Ac#%t& zE@5j^Q&ZH|)?#n5v9ZL�ch4m?tYMix*#fky!^09N_lt+t`xPXk=hu0DE$FcIM>C zlgy_u&*sgW$;!%N)`JHRh>nh?tE&rJ`R=>#u(#8vPqS&$CgxLkg2co`_U_#)nbFeH zLR?%Nqobp&R(E$dMMXu})BgSY`S8OJc@l*MFHrLva_=p z8ymx3f`fx)c6K%kQCNVBiwmWtrDDsLEzGK_s$$2E9hl8#R^q?^{^QuOW7x~9uf9rA zQ4!A0&MZXXDZISAC@U+&-`}5EEiEmCgoJSE(j}Jbi!Z)lWMl+;*s^5{moHz&+uK|4 z6l>D0cnWuScjDvYWkp2=ZEbA=tA`ICQczGpLqh}ayz>q&E-ozQ>eZ`!{`u$FLvV1g zG#ZU!-MV!wW=*;ki_qzGA|W9`+`D&A{`J>if*FmCjeP(8_Xr`_x^*jS*RJJBdV70` zj*ezvU;ta&zkfdk1qH(0-JPXalWxTlyzs&c#Kpx4KR-Wy`|UR-CMK9RIy#EcXe2v3 zn}LA=UVr^{TwPt6H90xS2OoSuU0ofvl9MM-^6Rg^($mv}mzNirnVIC~=3+~+v9bL8^Us8ahO%5jTCqYU zB_*V#rE%lN4ICjTC`cYTa)jvUXu%4ptb(R#XqrY@S(!Y3{J1b0jYui6B}Gw)h=}0u z;lpy*u3dsvQn7)ks3;K?6-8@nEBX2P6c!fB+S*z%K0eM$I5{~H6ci-m;^IU?LIN8$ zY`{uj11dJ;>+4HuYAUIzsbY9|n99mZSzli-nwy*X=bwLMS67$l>+9p;!-q`M>2!E_ wc;MsXBlUW{(ChUC1_sKIkPxBM=>&H0KRpG-3*k<+?f?J)07*qoM6N<$g5_W982|tP literal 0 HcmV?d00001 diff --git a/public/res/apple/apple-touch-icon-72x72.png b/public/res/apple/apple-touch-icon-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5b13c4f30392f082696c2eab12cc127fdc7b02 GIT binary patch literal 2951 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 Date: Sun, 4 Sep 2022 19:51:58 +0530 Subject: [PATCH 162/717] Pin all deps for greatest reliability/predictability (#812) --- .npmrc | 4 +- package-lock.json | 4814 ++++++++++++++++++++++++--------------------- package.json | 124 +- 3 files changed, 2618 insertions(+), 2324 deletions(-) diff --git a/.npmrc b/.npmrc index e9ee3cb4..c2b764b2 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,3 @@ -legacy-peer-deps=true \ No newline at end of file +legacy-peer-deps=true +save-exact = true +@matrix-org:registry=https://gitlab.matrix.org/api/v4/projects/27/packages/npm/ \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index db8a73be..6ffd934e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,70 +9,70 @@ "version": "2.1.3", "license": "MIT", "dependencies": { - "@fontsource/inter": "^4.5.12", - "@fontsource/roboto": "^4.5.8", - "@khanacademy/simple-markdown": "^0.8.3", - "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", - "@tippyjs/react": "^4.2.6", - "babel-polyfill": "^6.26.0", - "blurhash": "^1.1.5", - "browser-encrypt-attachment": "^0.3.0", - "dateformat": "^5.0.3", - "emojibase-data": "^7.0.1", - "file-saver": "^2.0.5", - "flux": "^4.0.3", - "formik": "^2.2.9", - "html-react-parser": "^3.0.4", - "katex": "^0.16.2", - "linkify-html": "^4.0.0-beta.5", - "linkifyjs": "^4.0.0-beta.5", - "matrix-js-sdk": "^19.4.0", - "prop-types": "^15.8.1", - "react": "^17.0.2", - "react-autosize-textarea": "^7.1.0", - "react-blurhash": "^0.1.3", - "react-dnd": "^15.1.2", - "react-dnd-html5-backend": "^15.1.3", - "react-dom": "^17.0.2", - "react-google-recaptcha": "^2.1.0", - "react-modal": "^3.15.1", - "sanitize-html": "^2.7.1", - "tippy.js": "^6.3.7", - "twemoji": "^14.0.2" + "@fontsource/inter": "4.5.12", + "@fontsource/roboto": "4.5.8", + "@khanacademy/simple-markdown": "0.8.3", + "@matrix-org/olm": "3.2.12", + "@tippyjs/react": "4.2.6", + "babel-polyfill": "6.26.0", + "blurhash": "1.1.5", + "browser-encrypt-attachment": "0.3.0", + "dateformat": "5.0.3", + "emojibase-data": "7.0.1", + "file-saver": "2.0.5", + "flux": "4.0.3", + "formik": "2.2.9", + "html-react-parser": "3.0.4", + "katex": "0.16.2", + "linkify-html": "4.0.0-beta.5", + "linkifyjs": "4.0.0-beta.5", + "matrix-js-sdk": "19.4.0", + "prop-types": "15.8.1", + "react": "17.0.2", + "react-autosize-textarea": "7.1.0", + "react-blurhash": "0.1.3", + "react-dnd": "15.1.2", + "react-dnd-html5-backend": "15.1.3", + "react-dom": "17.0.2", + "react-google-recaptcha": "2.1.0", + "react-modal": "3.15.1", + "sanitize-html": "2.7.1", + "tippy.js": "6.3.7", + "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.13", - "@babel/preset-env": "^7.18.10", - "@babel/preset-react": "^7.18.6", - "assert": "^2.0.0", - "babel-loader": "^8.2.5", - "browserify-fs": "^1.0.0", - "buffer": "^6.0.3", - "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^11.0.0", - "crypto-browserify": "^3.12.0", - "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.23.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-react": "^7.31.1", - "eslint-plugin-react-hooks": "^4.6.0", - "html-loader": "^4.1.0", - "html-webpack-plugin": "^5.3.1", - "mini-css-extract-plugin": "^2.6.1", - "path-browserify": "^1.0.1", - "sass": "^1.54.5", - "sass-loader": "^13.0.2", - "stream-browserify": "^3.0.0", - "style-loader": "^3.3.1", - "url": "^0.11.0", - "util": "^0.12.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.1", - "webpack-merge": "^5.7.3" + "@babel/core": "7.18.13", + "@babel/preset-env": "7.18.10", + "@babel/preset-react": "7.18.6", + "assert": "2.0.0", + "babel-loader": "8.2.5", + "browserify-fs": "1.0.0", + "buffer": "6.0.3", + "clean-webpack-plugin": "4.0.0", + "copy-webpack-plugin": "11.0.0", + "crypto-browserify": "3.12.0", + "css-loader": "6.7.1", + "css-minimizer-webpack-plugin": "4.0.0", + "eslint": "8.23.0", + "eslint-config-airbnb": "19.0.4", + "eslint-plugin-import": "2.26.0", + "eslint-plugin-jsx-a11y": "6.6.1", + "eslint-plugin-react": "7.31.1", + "eslint-plugin-react-hooks": "4.6.0", + "html-loader": "4.1.0", + "html-webpack-plugin": "5.3.1", + "mini-css-extract-plugin": "2.6.1", + "path-browserify": "1.0.1", + "sass": "1.54.5", + "sass-loader": "13.0.2", + "stream-browserify": "3.0.0", + "style-loader": "3.3.1", + "url": "0.11.0", + "util": "0.12.4", + "webpack": "5.74.0", + "webpack-cli": "4.10.0", + "webpack-dev-server": "4.10.1", + "webpack-merge": "5.7.3" }, "engines": { "node": ">=14.15.0", @@ -80,12 +80,13 @@ } }, "node_modules/@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, "dependencies": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" }, "engines": { "node": ">=6.0.0" @@ -104,9 +105,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", + "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -156,6 +157,20 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@babel/helper-annotate-as-pure": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", @@ -169,13 +184,13 @@ } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", - "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, "dependencies": { "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" }, "engines": { "node": ">=6.9.0" @@ -200,17 +215,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", + "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { @@ -461,14 +476,14 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", - "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", + "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.18.9", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", + "@babel/traverse": "^7.18.11", "@babel/types": "^7.18.10" }, "engines": { @@ -1103,9 +1118,9 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", + "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.9" @@ -1389,16 +1404,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", - "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", + "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.10" }, "engines": { "node": ">=6.9.0" @@ -1713,12 +1728,12 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", + "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", "dev": true, "dependencies": { - "core-js-pure": "^3.16.0", + "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" }, "engines": { @@ -1786,9 +1801,9 @@ } }, "node_modules/@discoveryjs/json-ext": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", - "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -1886,23 +1901,22 @@ "dev": true }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true, "engines": { "node": ">=6.0.0" @@ -1917,16 +1931,40 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", @@ -1946,16 +1984,15 @@ } }, "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, "node_modules/@matrix-org/olm": { "version": "3.2.12", "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", - "integrity": "sha512-muHkYUAXyRDg88YVFlmFY35vgLPovK2YPkuEtBfgnmBcxJvLpV9UMcMMxNkf8opjMV1k/NJ4niFQMzwd4UQOiA==", - "license": "Apache-2.0" + "integrity": "sha1-C848hvnTakmE08PgffHD+0xnm9k=" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -1993,9 +2030,9 @@ } }, "node_modules/@popperjs/core": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz", - "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==", + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -2076,9 +2113,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2086,9 +2123,9 @@ } }, "node_modules/@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "dependencies": { "@types/eslint": "*", @@ -2114,9 +2151,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.30", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", + "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", "dev": true, "dependencies": { "@types/node": "*", @@ -2135,48 +2172,48 @@ } }, "node_modules/@types/html-minifier-terser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.0.0.tgz", - "integrity": "sha512-NZwaaynfs1oIoLAV1vg18e7QMVDvw+6SQrdJc8w3BwUaoroVSf6EBj/Sk4PBWGxsq0dzhA2drbsuMC1/6C6KgQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", "dev": true }, "node_modules/@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "dev": true, "dependencies": { "@types/node": "*" } }, "node_modules/@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, "node_modules/@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "version": "18.7.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", + "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", "dev": true }, "node_modules/@types/prop-types": { @@ -2197,9 +2234,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", - "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", + "version": "18.0.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz", + "integrity": "sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2207,9 +2244,9 @@ } }, "node_modules/@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "node_modules/@types/scheduler": { "version": "0.16.2", @@ -2226,12 +2263,12 @@ } }, "node_modules/@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dev": true, "dependencies": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, @@ -2450,7 +2487,7 @@ "node_modules/abstract-leveldown": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", + "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", "dev": true, "dependencies": { "xtend": "~3.0.0" @@ -2459,7 +2496,7 @@ "node_modules/abstract-leveldown/node_modules/xtend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", "dev": true, "engines": { "node": ">=0.4" @@ -2490,6 +2527,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -2532,9 +2578,9 @@ } }, "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -2565,7 +2611,7 @@ "node_modules/another-json": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz", - "integrity": "sha1-tfQBnJc7bdXGUGotk0acttMq7tw=" + "integrity": "sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg==" }, "node_modules/ansi-html-community": { "version": "0.0.8", @@ -2658,32 +2704,36 @@ } }, "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, "node_modules/array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -2713,12 +2763,12 @@ "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dependencies": { "safer-buffer": "~2.1.0" } @@ -2756,7 +2806,7 @@ "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", "engines": { "node": ">=0.8" } @@ -2764,13 +2814,13 @@ "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/autosize": { "version": "4.0.4", @@ -2792,7 +2842,7 @@ "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", "engines": { "node": "*" } @@ -2887,7 +2937,7 @@ "node_modules/babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", "dependencies": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", @@ -2897,7 +2947,7 @@ "node_modules/babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", "dependencies": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -2942,13 +2992,13 @@ "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dependencies": { "tweetnacl": "^0.14.3" } @@ -2974,7 +3024,7 @@ "node_modules/bl": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=", + "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", "dev": true, "dependencies": { "readable-stream": "~1.0.26" @@ -2983,7 +3033,7 @@ "node_modules/bl/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -2995,7 +3045,7 @@ "node_modules/bl/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "node_modules/blurhash": { @@ -3004,30 +3054,33 @@ "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" }, "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, "node_modules/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "dev": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "engines": { - "node": ">= 0.8" + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" } }, "node_modules/body-parser/node_modules/bytes": { @@ -3051,14 +3104,17 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/body-parser/node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -3067,21 +3123,21 @@ } }, "node_modules/bonjour-service": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz", - "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dev": true, "dependencies": { "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.4" + "multicast-dns": "^7.2.5" } }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "node_modules/brace-expansion": { @@ -3109,18 +3165,18 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, "node_modules/browser-encrypt-attachment": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/browser-encrypt-attachment/-/browser-encrypt-attachment-0.3.0.tgz", - "integrity": "sha1-IFqUyq3w3H6BQTlBgS9lW9GQ/xw=" + "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" }, "node_modules/browser-request": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", - "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=", + "integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==", "engines": [ "node" ] @@ -3165,7 +3221,7 @@ "node_modules/browserify-fs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha1-8HWqinKdTRcW0GZiDjhvzBMRqW8=", + "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", "dev": true, "dependencies": { "level-filesystem": "^1.0.1", @@ -3289,13 +3345,13 @@ "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, "node_modules/bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true, "engines": { "node": ">= 0.8" @@ -3332,6 +3388,12 @@ "tslib": "^2.0.3" } }, + "node_modules/camel-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -3345,9 +3407,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001388", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz", + "integrity": "sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==", "dev": true, "funding": [ { @@ -3363,7 +3425,7 @@ "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "node_modules/chalk": { "version": "2.4.2", @@ -3438,9 +3500,9 @@ } }, "node_modules/clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -3464,6 +3526,15 @@ "webpack": ">=4.0.0 <6.0.0" } }, + "node_modules/clone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -3478,6 +3549,18 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3490,19 +3573,19 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "node_modules/colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, "node_modules/colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, "node_modules/combined-stream": { @@ -3527,7 +3610,7 @@ "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "node_modules/compressible": { @@ -3572,18 +3655,18 @@ "node_modules/compression/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/computed-style": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", - "integrity": "sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ=" + "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==" }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-stream": { @@ -3604,7 +3687,7 @@ "node_modules/concat-stream/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/concat-stream/node_modules/readable-stream": { @@ -3696,9 +3779,9 @@ } }, "node_modules/cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true, "engines": { "node": ">= 0.6" @@ -3707,7 +3790,7 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "node_modules/copy-webpack-plugin": { @@ -3735,9 +3818,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -3791,13 +3874,13 @@ "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", + "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", "dev": true, "dependencies": { "browserslist": "^4.21.3", @@ -3818,9 +3901,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.0.tgz", - "integrity": "sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz", + "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==", "dev": true, "hasInstallScript": true, "funding": { @@ -3831,7 +3914,7 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "node_modules/create-ecdh": { "version": "4.0.4", @@ -3921,9 +4004,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", - "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", "dev": true, "engines": { "node": "^10 || ^12 || >=14" @@ -3959,9 +4042,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4012,9 +4095,9 @@ } }, "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -4065,21 +4148,73 @@ } }, "node_modules/css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "dependencies": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" }, "funding": { "url": "https://github.com/sponsors/fb55" } }, + "node_modules/css-select/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/css-select/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/css-select/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/css-tree": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", @@ -4094,9 +4229,9 @@ } }, "node_modules/css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true, "engines": { "node": ">= 6" @@ -4118,12 +4253,12 @@ } }, "node_modules/cssnano": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.9.tgz", - "integrity": "sha512-hctQHIIeDrfMjq0bQhoVmRVaSeNNOGxkvkKVOcKpJzLr09wlRrZWH4GaYudp0aszpW8wJeaO5/yBmID9n7DNCg==", + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", + "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.9", + "cssnano-preset-default": "^5.2.12", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -4139,36 +4274,36 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.9.tgz", - "integrity": "sha512-/4qcQcAfFEg+gnXE5NxKmYJ9JcT+8S5SDuJCLYMDN8sM/ymZ+lgLXq5+ohx/7V2brUCkgW2OaoCzOdAN0zvhGw==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", "dev": true, "dependencies": { - "css-declaration-sorter": "^6.2.2", + "css-declaration-sorter": "^6.3.0", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.1", - "postcss-discard-comments": "^5.1.1", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.5", - "postcss-merge-rules": "^5.1.1", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.0", + "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.0", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.1", + "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.0", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", @@ -4219,7 +4354,7 @@ "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "dependencies": { "assert-plus": "^1.0.0" }, @@ -4236,9 +4371,9 @@ } }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -4281,7 +4416,7 @@ "node_modules/deferred-leveldown": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", + "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", "dev": true, "dependencies": { "abstract-leveldown": "~0.12.1" @@ -4330,22 +4465,10 @@ "node": ">=6" } }, - "node_modules/del/node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/del/node_modules/globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "dependencies": { "array-union": "^1.0.1", @@ -4361,48 +4484,27 @@ "node_modules/del/node_modules/globby/node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "engines": { "node": ">=0.4.0" } }, "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/des.js": { @@ -4416,10 +4518,14 @@ } }, "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } }, "node_modules/detect-node": { "version": "2.1.0", @@ -4469,13 +4575,13 @@ "node_modules/dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, "node_modules/dns-packet": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dev": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -4506,13 +4612,13 @@ } }, "node_modules/dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" }, "funding": { "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" @@ -4530,11 +4636,11 @@ ] }, "node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "dependencies": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" }, "engines": { "node": ">= 4" @@ -4544,13 +4650,13 @@ } }, "node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -4566,10 +4672,16 @@ "tslib": "^2.0.3" } }, + "node_modules/dot-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -4578,13 +4690,13 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", + "version": "1.4.241", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.241.tgz", + "integrity": "sha512-e7Wsh4ilaioBZ5bMm6+F4V5c11dh56/5Jwz7Hl5Tu1J7cnB+Pqx5qIF2iC7HPpfyQMqGSvvLP5bBAIDd2gAtGw==", "dev": true }, "node_modules/elliptic": { @@ -4638,7 +4750,7 @@ "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "engines": { "node": ">= 0.8" @@ -4658,9 +4770,12 @@ } }, "node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "engines": { + "node": ">=0.12" + }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -4690,16 +4805,16 @@ } }, "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "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-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", @@ -4711,9 +4826,9 @@ "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", @@ -4761,7 +4876,7 @@ "node_modules/es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", "dev": true }, "node_modules/escalade": { @@ -4776,7 +4891,7 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "node_modules/escape-string-regexp": { @@ -4865,7 +4980,7 @@ "eslint-plugin-react-hooks": "^4.3.0" } }, - "node_modules/eslint-config-airbnb/node_modules/eslint-config-airbnb-base": { + "node_modules/eslint-config-airbnb-base": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", @@ -4904,16 +5019,20 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "dependencies": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "engines": { "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } } }, "node_modules/eslint-module-utils/node_modules/debug": { @@ -4976,7 +5095,7 @@ "node_modules/eslint-plugin-import/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/eslint-plugin-jsx-a11y": { @@ -5059,38 +5178,33 @@ } }, "node_modules/eslint-plugin-react/node_modules/resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-scope/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, "node_modules/eslint-utils": { @@ -5144,6 +5258,15 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/eslint/node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5190,39 +5313,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/eslint/node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -5263,45 +5357,6 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -5385,7 +5440,7 @@ "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "engines": { "node": ">= 0.6" @@ -5439,56 +5494,45 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/execa/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" }, "node_modules/express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -5500,7 +5544,7 @@ "node_modules/express/node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "node_modules/express/node_modules/debug": { @@ -5515,14 +5559,17 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/express/node_modules/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, "engines": { "node": ">=0.6" }, @@ -5558,7 +5605,7 @@ "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", "engines": [ "node >=0.6.0" ] @@ -5604,14 +5651,17 @@ "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } }, "node_modules/fastq": { "version": "1.13.0", @@ -5643,11 +5693,11 @@ } }, "node_modules/fbjs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.1.tgz", - "integrity": "sha512-8+vkGyT4lNDRKHQNPp0yh/6E7FfkLg89XqQbOYnvntRh+8RiSD43yrh9E5ejp1muCizTL4nDVG+y8W4e+LROHg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", "dependencies": { - "cross-fetch": "^3.0.4", + "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", @@ -5691,17 +5741,17 @@ } }, "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "engines": { @@ -5720,7 +5770,7 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/find-cache-dir": { @@ -5740,91 +5790,22 @@ "url": "https://github.com/avajs/find-cache-dir?sponsor=1" } }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "locate-path": "^5.0.0", + "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true, - "dependencies": { - "locate-path": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/flat-cache": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", @@ -5838,10 +5819,25 @@ "node": "^10.12.0 || >=12.0.0" } }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "node_modules/flux": { @@ -5857,9 +5853,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", "dev": true, "funding": [ { @@ -5876,16 +5872,25 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", "dev": true }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", "engines": { "node": "*" } @@ -5926,11 +5931,6 @@ "react": ">=16.8.0" } }, - "node_modules/formik/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -5943,7 +5943,7 @@ "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "engines": { "node": ">= 0.6" @@ -5965,7 +5965,7 @@ "node_modules/fs-extra/node_modules/jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -5979,7 +5979,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { @@ -6022,7 +6022,7 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, "node_modules/functions-have-names": { @@ -6037,7 +6037,7 @@ "node_modules/fwd-stream": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha1-7Sgcq+1G/uz5Ie4y3ExQs3KsfPo=", + "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", "dev": true, "dependencies": { "readable-stream": "~1.0.26-4" @@ -6046,7 +6046,7 @@ "node_modules/fwd-stream/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -6058,7 +6058,7 @@ "node_modules/fwd-stream/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "node_modules/gensync": { @@ -6071,18 +6071,30 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -6102,21 +6114,21 @@ "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "dependencies": { "assert-plus": "^1.0.0" } }, "node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "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" }, @@ -6155,9 +6167,9 @@ } }, "node_modules/globby": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz", - "integrity": "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", @@ -6174,9 +6186,9 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "node_modules/grapheme-splitter": { "version": "1.0.4", @@ -6193,7 +6205,7 @@ "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", "engines": { "node": ">=4" } @@ -6334,7 +6346,7 @@ "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "dependencies": { "hash.js": "^1.0.3", @@ -6353,7 +6365,7 @@ "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -6365,7 +6377,7 @@ "node_modules/hpack.js/node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/hpack.js/node_modules/readable-stream": { @@ -6401,79 +6413,10 @@ "htmlparser2": "8.0.1" } }, - "node_modules/html-dom-parser/node_modules/dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/html-dom-parser/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/html-dom-parser/node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dependencies": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/html-dom-parser/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/html-dom-parser/node_modules/htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, "node_modules/html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "node_modules/html-loader": { @@ -6496,30 +6439,6 @@ "webpack": "^5.0.0" } }, - "node_modules/html-loader/node_modules/entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "dev": true, - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/html-loader/node_modules/parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", - "dev": true, - "dependencies": { - "entities": "^4.3.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, "node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -6555,30 +6474,16 @@ "react": "0.14 || 15 || 16 || 17 || 18" } }, - "node_modules/html-react-parser/node_modules/domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dependencies": { - "domelementtype": "^2.3.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ==", "dev": true, "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", + "@types/html-minifier-terser": "^5.0.0", + "html-minifier-terser": "^5.0.1", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", "tapable": "^2.0.0" }, "engines": { @@ -6592,10 +6497,75 @@ "webpack": "^5.20.0" } }, + "node_modules/html-webpack-plugin/node_modules/clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/html-webpack-plugin/node_modules/terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, "node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", { @@ -6604,38 +6574,38 @@ } ], "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "node_modules/http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "dependencies": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" }, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "node_modules/http-proxy": { @@ -6653,9 +6623,9 @@ } }, "node_modules/http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "dependencies": { "@types/http-proxy": "^1.17.8", @@ -6679,7 +6649,7 @@ "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -6759,9 +6729,9 @@ } }, "node_modules/immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", "dev": true }, "node_modules/import-fresh": { @@ -6781,9 +6751,9 @@ } }, "node_modules/import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { "pkg-dir": "^4.2.0", @@ -6794,85 +6764,15 @@ }, "engines": { "node": ">=8" - } - }, - "node_modules/import-local/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/import-local/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" @@ -6881,13 +6781,13 @@ "node_modules/indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -6929,18 +6829,18 @@ } }, "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">= 10" } }, "node_modules/is": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", + "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", "dev": true, "engines": { "node": "*" @@ -7015,9 +6915,9 @@ } }, "node_modules/is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -7059,7 +6959,7 @@ "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7147,7 +7047,7 @@ "node_modules/is-object": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=", + "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==", "dev": true }, "node_modules/is-path-cwd": { @@ -7196,13 +7096,9 @@ } }, "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "engines": { "node": ">=0.10.0" } @@ -7278,15 +7174,15 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0" }, "engines": { @@ -7299,7 +7195,7 @@ "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "node_modules/is-weakref": { "version": "1.0.2", @@ -7328,25 +7224,25 @@ "node_modules/isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "node_modules/isbuffer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha1-OMFG2d9Si4v5sHAcPUPPEt8/w5s=", + "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", "dev": true }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "node_modules/isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -7355,7 +7251,7 @@ "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "node_modules/jest-worker": { "version": "27.5.1", @@ -7415,7 +7311,7 @@ "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "node_modules/jsesc": { "version": "2.5.2", @@ -7436,9 +7332,9 @@ "dev": true }, "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -7448,13 +7344,13 @@ "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "node_modules/json5": { "version": "2.2.1", @@ -7480,27 +7376,27 @@ } }, "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "engines": [ - "node >=0.6.0" - ], + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" + }, + "engines": { + "node": ">=0.6.0" } }, "node_modules/jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "dependencies": { "array-includes": "^3.1.5", - "object.assign": "^4.1.2" + "object.assign": "^4.1.3" }, "engines": { "node": ">=4.0" @@ -7540,15 +7436,15 @@ } }, "node_modules/language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "node_modules/language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "dependencies": { "language-subtag-registry": "~0.3.2" @@ -7557,7 +7453,7 @@ "node_modules/level-blobs": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha1-mrm5e7mfHtv594o0M+Ie1WOGva8=", + "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", "dev": true, "dependencies": { "level-peek": "1.0.6", @@ -7568,7 +7464,7 @@ "node_modules/level-blobs/node_modules/readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -7580,13 +7476,13 @@ "node_modules/level-blobs/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "node_modules/level-filesystem": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha1-oArKmRnEpN+v3KaoEI0iWq3/Y7M=", + "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", "dev": true, "dependencies": { "concat-stream": "^1.4.4", @@ -7603,13 +7499,13 @@ "node_modules/level-fix-range": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha1-vxW5Fa422EcMgh6IPd95zRZCCCg=", + "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", "dev": true }, "node_modules/level-hooks": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha1-G5rmGSKTDzMF0aYfxNg8gQLA3ZM=", + "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", "dev": true, "dependencies": { "string-range": "~1.2" @@ -7618,7 +7514,7 @@ "node_modules/level-js": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", + "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", "dev": true, "dependencies": { "abstract-leveldown": "~0.12.0", @@ -7632,13 +7528,13 @@ "node_modules/level-js/node_modules/object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", "dev": true }, "node_modules/level-js/node_modules/xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dev": true, "dependencies": { "object-keys": "~0.4.0" @@ -7650,7 +7546,7 @@ "node_modules/level-peek": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha1-vsUccqgu5GTTNkNMfIdsP8vM538=", + "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", "dev": true, "dependencies": { "level-fix-range": "~1.0.2" @@ -7659,7 +7555,7 @@ "node_modules/level-sublevel": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha1-dEwSxy0ucr543eO5tc2E1iGRQTo=", + "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", "dev": true, "dependencies": { "level-fix-range": "2.0", @@ -7668,19 +7564,10 @@ "xtend": "~2.0.4" } }, - "node_modules/level-sublevel/node_modules/clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU=", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/level-sublevel/node_modules/level-fix-range": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha1-xBfWIVlEIVGhnZojZ4aPFyTC1Ug=", + "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", "dev": true, "dependencies": { "clone": "~0.1.9" @@ -7689,7 +7576,7 @@ "node_modules/level-sublevel/node_modules/object-keys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", "deprecated": "Please update to the latest object-keys", "dev": true, "dependencies": { @@ -7701,7 +7588,7 @@ "node_modules/level-sublevel/node_modules/xtend": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha1-XqZXptukRwacLlnFihE4ywxebO4=", + "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", "dev": true, "dependencies": { "is-object": "~0.1.2", @@ -7714,7 +7601,7 @@ "node_modules/levelup": { "version": "0.18.6", "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha1-5qAcsIlhbI7MApHCqb0/DETj5es=", + "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", "dev": true, "dependencies": { "bl": "~0.8.1", @@ -7729,13 +7616,13 @@ "node_modules/levelup/node_modules/prr": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", "dev": true }, "node_modules/levelup/node_modules/readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -7747,7 +7634,7 @@ "node_modules/levelup/node_modules/semver": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", "dev": true, "bin": { "semver": "bin/semver" @@ -7756,13 +7643,13 @@ "node_modules/levelup/node_modules/string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "node_modules/levelup/node_modules/xtend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", "dev": true, "engines": { "node": ">=0.4" @@ -7782,9 +7669,9 @@ } }, "node_modules/lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "dev": true, "engines": { "node": ">=10" @@ -7793,7 +7680,7 @@ "node_modules/line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", - "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=", + "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==", "dependencies": { "computed-style": "~0.1.3" }, @@ -7815,9 +7702,9 @@ "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" }, "node_modules/loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true, "engines": { "node": ">=6.11.5" @@ -7838,16 +7725,18 @@ } }, "node_modules/locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { @@ -7869,7 +7758,7 @@ "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "node_modules/lodash.merge": { @@ -7881,13 +7770,13 @@ "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", + "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", "engines": { "node": ">= 0.6.0" }, @@ -7916,6 +7805,12 @@ "tslib": "^2.0.3" } }, + "node_modules/lower-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7931,7 +7826,7 @@ "node_modules/ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", "dev": true }, "node_modules/make-dir": { @@ -7995,19 +7890,19 @@ "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", + "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", "dev": true, "dependencies": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" }, "engines": { "node": ">= 4.0.0" @@ -8016,7 +7911,7 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, "node_modules/merge-stream": { @@ -8037,20 +7932,20 @@ "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "dependencies": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "engines": { "node": ">=8.6" @@ -8135,9 +8030,9 @@ } }, "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -8196,7 +8091,7 @@ "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, "node_modules/minimatch": { @@ -8224,9 +8119,9 @@ "dev": true }, "node_modules/multicast-dns": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "dependencies": { "dns-packet": "^5.2.2", @@ -8250,7 +8145,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "node_modules/negotiator": { @@ -8278,6 +8173,12 @@ "tslib": "^2.0.3" } }, + "node_modules/no-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -8346,9 +8247,9 @@ } }, "node_modules/nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "dependencies": { "boolbase": "^1.0.0" @@ -8368,15 +8269,15 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", - "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8407,14 +8308,14 @@ } }, "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, "engines": { @@ -8494,13 +8395,13 @@ "node_modules/octal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=", + "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", "dev": true }, "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "dependencies": { "ee-first": "1.1.1" @@ -8521,7 +8422,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -8592,44 +8493,35 @@ } }, "node_modules/p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "p-limit": "^1.1.0" + "p-limit": "^3.0.2" }, "engines": { - "node": ">=4" - } - }, - "node_modules/p-locate/node_modules/p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "dependencies": { - "p-try": "^1.0.0" + "node": ">=10" }, - "engines": { - "node": ">=4" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-locate/node_modules/p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dependencies": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" }, "engines": { @@ -8655,6 +8547,12 @@ "tslib": "^2.0.3" } }, + "node_modules/param-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8683,7 +8581,19 @@ "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" + }, + "node_modules/parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "dependencies": { + "entities": "^4.4.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } }, "node_modules/parseurl": { "version": "1.3.3", @@ -8704,6 +8614,12 @@ "tslib": "^2.0.3" } }, + "node_modules/pascal-case/node_modules/tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + }, "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -8711,18 +8627,18 @@ "dev": true }, "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8731,7 +8647,7 @@ "node_modules/path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "node_modules/path-key": { @@ -8752,7 +8668,7 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "node_modules/path-type": { @@ -8783,7 +8699,7 @@ "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -8791,9 +8707,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -8814,7 +8730,7 @@ "node_modules/pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -8823,7 +8739,7 @@ "node_modules/pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "dependencies": { "pinkie": "^2.0.0" @@ -8832,10 +8748,74 @@ "node": ">=0.10.0" } }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "funding": [ { "type": "opencollective", @@ -8887,9 +8867,9 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.1.tgz", - "integrity": "sha512-UjcYfl3wJJdcabGKk8lgetPvhi1Et7VDc3sYr9EyhNBeB00YD4vHgPBp+oMVoG/dDWCc6ASbmzPNV6jADTwh8Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", "dev": true, "dependencies": { "browserslist": "^4.20.3", @@ -8903,9 +8883,9 @@ } }, "node_modules/postcss-discard-comments": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", - "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "dev": true, "engines": { "node": "^10 || ^12 || >=14.0" @@ -8951,9 +8931,9 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", - "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", @@ -8967,9 +8947,9 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", - "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", "dev": true, "dependencies": { "browserslist": "^4.16.6", @@ -9034,9 +9014,9 @@ } }, "node_modules/postcss-minify-selectors": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", - "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dev": true, "dependencies": { "postcss-selector-parser": "^6.0.5" @@ -9135,9 +9115,9 @@ } }, "node_modules/postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -9150,9 +9130,9 @@ } }, "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0" @@ -9242,9 +9222,9 @@ } }, "node_modules/postcss-ordered-values": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", - "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dev": true, "dependencies": { "cssnano-utils": "^3.1.0", @@ -9289,9 +9269,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -9348,13 +9328,13 @@ } }, "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", "dev": true, "dependencies": { "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "renderkid": "^2.0.4" } }, "node_modules/process-nextick-args": { @@ -9394,16 +9374,25 @@ "node": ">= 0.10" } }, + "node_modules/proxy-addr/node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "node_modules/public-encrypt": { "version": "4.0.3", @@ -9434,9 +9423,9 @@ } }, "node_modules/qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "dependencies": { "side-channel": "^1.0.4" }, @@ -9450,7 +9439,7 @@ "node_modules/querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", "dev": true, "engines": { @@ -9506,13 +9495,13 @@ } }, "node_modules/raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "dependencies": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -9715,9 +9704,9 @@ } }, "node_modules/redux": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz", - "integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", + "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", "dependencies": { "@babel/runtime": "^7.9.2" } @@ -9743,7 +9732,7 @@ "node_modules/regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==" }, "node_modules/regenerator-transform": { "version": "0.15.0", @@ -9830,23 +9819,115 @@ "node_modules/relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true, "engines": { "node": ">= 0.10" } }, "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "dev": true, "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" + "strip-ansi": "^3.0.1" + } + }, + "node_modules/renderkid/node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/renderkid/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/renderkid/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/renderkid/node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" } }, "node_modules/request": { @@ -9881,9 +9962,9 @@ } }, "node_modules/request/node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", "engines": { "node": ">=0.6" } @@ -9900,16 +9981,16 @@ "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "node_modules/resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -9969,18 +10050,15 @@ } }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ripemd160": { @@ -10047,6 +10125,54 @@ "node": ">=0.10.0" } }, + "node_modules/sanitize-html/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/sanitize-html/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/sanitize-html/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -10058,12 +10184,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sanitize-html/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "engines": { - "node": ">=0.10.0" + "node_modules/sanitize-html/node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" } }, "node_modules/sass": { @@ -10151,7 +10287,7 @@ "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "node_modules/selfsigned": { @@ -10176,24 +10312,24 @@ } }, "node_modules/send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "dependencies": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "engines": { "node": ">= 0.8.0" @@ -10211,7 +10347,7 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/send/node_modules/ms": { @@ -10232,7 +10368,7 @@ "node_modules/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "dependencies": { "accepts": "~1.3.4", @@ -10256,10 +10392,19 @@ "ms": "2.0.0" } }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-index/node_modules/http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "dependencies": { "depd": "~1.1.2", @@ -10274,13 +10419,13 @@ "node_modules/serve-index/node_modules/inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "node_modules/serve-index/node_modules/setprototypeof": { @@ -10289,16 +10434,25 @@ "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true }, + "node_modules/serve-index/node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" }, "engines": { "node": ">= 0.8.0" @@ -10307,7 +10461,7 @@ "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "node_modules/setprototypeof": { "version": "1.2.0", @@ -10375,9 +10529,9 @@ } }, "node_modules/signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/slash": { @@ -10430,9 +10584,9 @@ } }, "node_modules/source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "dependencies": { "buffer-from": "^1.0.0", @@ -10470,9 +10624,9 @@ } }, "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -10497,15 +10651,16 @@ "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", "dev": true }, "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "engines": { - "node": ">= 0.6" + "node": ">= 0.8" } }, "node_modules/stream-browserify": { @@ -10550,7 +10705,7 @@ "node_modules/string-range": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=", + "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", "dev": true }, "node_modules/string.prototype.matchall": { @@ -10615,7 +10770,7 @@ "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, "engines": { "node": ">=4" @@ -10754,13 +10909,14 @@ } }, "node_modules/terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "bin": { @@ -10768,28 +10924,19 @@ }, "engines": { "node": ">=10" - }, - "peerDependencies": { - "acorn": "^8.5.0" - }, - "peerDependenciesMeta": { - "acorn": { - "optional": true - } } }, "node_modules/terser-webpack-plugin": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz", - "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "dependencies": { - "jest-worker": "^27.0.6", - "p-limit": "^3.1.0", + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "engines": { "node": ">= 10.13.0" @@ -10837,19 +10984,10 @@ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, - "node_modules/terser/node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "node_modules/thunky": { @@ -10874,7 +11012,7 @@ "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true, "engines": { "node": ">=4" @@ -10916,7 +11054,7 @@ "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tsconfig-paths": { "version": "3.14.1", @@ -10943,15 +11081,14 @@ } }, "node_modules/tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "dependencies": { "safe-buffer": "^5.0.1" }, @@ -10962,7 +11099,7 @@ "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "node_modules/twemoji": { "version": "14.0.2", @@ -11020,13 +11157,13 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/typedarray-to-buffer": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha1-m7i6DoQfs/TPH+fCRenz+opf6Zw=", + "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", "dev": true }, "node_modules/ua-parser-js": { @@ -11118,16 +11255,16 @@ "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "engines": { "node": ">= 0.8" } }, "node_modules/update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", "dev": true, "funding": [ { @@ -11161,7 +11298,7 @@ "node_modules/url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", "dev": true, "dependencies": { "punycode": "1.3.2", @@ -11171,7 +11308,7 @@ "node_modules/url/node_modules/punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true }, "node_modules/util": { @@ -11191,19 +11328,19 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "engines": { "node": ">= 0.4.0" @@ -11221,7 +11358,7 @@ "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "engines": { "node": ">= 0.8" @@ -11230,7 +11367,7 @@ "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "engines": [ "node >=0.6.0" ], @@ -11273,7 +11410,7 @@ "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { "version": "5.74.0", @@ -11379,13 +11516,13 @@ } }, "node_modules/webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, "dependencies": { "colorette": "^2.0.10", - "memfs": "^3.4.1", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" @@ -11402,9 +11539,9 @@ } }, "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -11510,9 +11647,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -11537,21 +11674,27 @@ "ajv": "^8.8.2" } }, - "node_modules/webpack-dev-server/node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -11572,9 +11715,9 @@ } }, "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -11593,13 +11736,26 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", "dev": true, - "peerDependencies": { - "acorn": "^8" + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" } }, "node_modules/webpack/node_modules/schema-utils": { @@ -11646,7 +11802,7 @@ "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dependencies": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -11684,17 +11840,17 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" + "is-typed-array": "^1.1.9" }, "engines": { "node": ">= 0.4" @@ -11721,13 +11877,13 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "dev": true, "engines": { "node": ">=10.0.0" @@ -11748,7 +11904,7 @@ "node_modules/xtend": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", "dev": true, "engines": { "node": ">=0.4" @@ -11784,12 +11940,13 @@ }, "dependencies": { "@ampproject/remapping": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz", - "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", "dev": true, "requires": { - "@jridgewell/trace-mapping": "^0.3.0" + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" } }, "@babel/code-frame": { @@ -11802,9 +11959,9 @@ } }, "@babel/compat-data": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", - "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", + "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", "dev": true }, "@babel/core": { @@ -11839,6 +11996,19 @@ "@babel/types": "^7.18.13", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, "@babel/helper-annotate-as-pure": { @@ -11851,13 +12021,13 @@ } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", - "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", + "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", "dev": true, "requires": { "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.9" } }, "@babel/helper-compilation-targets": { @@ -11873,17 +12043,17 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", - "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", + "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.6", - "@babel/helper-function-name": "^7.18.6", - "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.18.9", + "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6" } }, @@ -12065,14 +12235,14 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz", - "integrity": "sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==", + "version": "7.18.11", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", + "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", "dev": true, "requires": { "@babel/helper-function-name": "^7.18.9", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.10", + "@babel/traverse": "^7.18.11", "@babel/types": "^7.18.10" } }, @@ -12491,9 +12661,9 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.9.tgz", - "integrity": "sha512-p5VCYNddPLkZTq4XymQIaIfZNJwT9YsjkPOhkVEqt6QIpQFZVM9IltqqYpOEkJoN1DPznmxUDyZ5CTZs/ZCuHA==", + "version": "7.18.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", + "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.18.9" @@ -12669,16 +12839,16 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz", - "integrity": "sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==", + "version": "7.18.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", + "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.9", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.6" + "@babel/types": "^7.18.10" } }, "@babel/plugin-transform-react-jsx-development": { @@ -12910,12 +13080,12 @@ } }, "@babel/runtime-corejs3": { - "version": "7.15.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.15.4.tgz", - "integrity": "sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==", + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", + "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", "dev": true, "requires": { - "core-js-pure": "^3.16.0", + "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" }, "dependencies": { @@ -12968,9 +13138,9 @@ } }, "@discoveryjs/json-ext": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.5.tgz", - "integrity": "sha512-6nFkfkmSeV/rqSaS4oWHgmpnYw194f6hmWF5is6b0J1naJZoiD0NTc9AiUwPHvWsowkjuHErCZT1wa0jg+BLIA==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true }, "@eslint/eslintrc": { @@ -13041,20 +13211,19 @@ "dev": true }, "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "dev": true, "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, "@jridgewell/resolve-uri": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz", - "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", "dev": true }, "@jridgewell/set-array": { @@ -13063,16 +13232,39 @@ "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", "dev": true }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } + } + }, "@jridgewell/sourcemap-codec": { - "version": "1.4.11", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz", - "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==", + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz", - "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==", + "version": "0.3.15", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", + "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", "dev": true, "requires": { "@jridgewell/resolve-uri": "^3.0.3", @@ -13088,14 +13280,15 @@ } }, "@leichtgewicht/ip-codec": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.3.tgz", - "integrity": "sha512-nkalE/f1RvRGChwBnEIoBfSEYOXnCRdleKuv6+lePbMDrMZXeDQnqak5XDOeBgrPPyPfAdcCu/B5z+v3VhplGg==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, "@matrix-org/olm": { - "version": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", - "integrity": "sha512-muHkYUAXyRDg88YVFlmFY35vgLPovK2YPkuEtBfgnmBcxJvLpV9UMcMMxNkf8opjMV1k/NJ4niFQMzwd4UQOiA==" + "version": "3.2.12", + "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", + "integrity": "sha1-C848hvnTakmE08PgffHD+0xnm9k=" }, "@nodelib/fs.scandir": { "version": "2.1.5", @@ -13124,9 +13317,9 @@ } }, "@popperjs/core": { - "version": "2.10.2", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.10.2.tgz", - "integrity": "sha512-IXf3XA7+XyN7CP9gGh/XB0UxVMlvARGEgGXLubFICsUMGz6Q+DU+i4gGlpOxTjKvXjkJDJC8YdqdKkDj9qZHEQ==" + "version": "2.11.6", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", + "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" }, "@react-dnd/asap": { "version": "4.0.1", @@ -13196,9 +13389,9 @@ } }, "@types/eslint": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.1.tgz", - "integrity": "sha512-GE44+DNEyxxh2Kc6ro/VkIj+9ma0pO0bwv9+uHSyBrikYOHr8zYcdPvnBOp1aw8s+CjRvuSx7CyWqRrNFQ59mA==", + "version": "8.4.6", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", + "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", "dev": true, "requires": { "@types/estree": "*", @@ -13206,9 +13399,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", - "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "requires": { "@types/eslint": "*", @@ -13234,9 +13427,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.28", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz", - "integrity": "sha512-P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==", + "version": "4.17.30", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", + "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", "dev": true, "requires": { "@types/node": "*", @@ -13255,48 +13448,48 @@ } }, "@types/html-minifier-terser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.0.0.tgz", - "integrity": "sha512-NZwaaynfs1oIoLAV1vg18e7QMVDvw+6SQrdJc8w3BwUaoroVSf6EBj/Sk4PBWGxsq0dzhA2drbsuMC1/6C6KgQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", + "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", "dev": true }, "@types/http-proxy": { - "version": "1.17.8", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.8.tgz", - "integrity": "sha512-5kPLG5BKpWYkw/LVOGWpiq3nEVqxiN32rTgI53Sk12/xHFQ2rG3ehI9IO+O3W2QoKeyB92dJkoka8SUm6BX1pA==", + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "dev": true, "requires": { "@types/node": "*" } }, "@types/json-schema": { - "version": "7.0.9", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", - "integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==", + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", + "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", "dev": true }, "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", + "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, "@types/node": { - "version": "16.11.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.6.tgz", - "integrity": "sha512-ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==", + "version": "18.7.14", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", + "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", "dev": true }, "@types/prop-types": { @@ -13317,9 +13510,9 @@ "dev": true }, "@types/react": { - "version": "18.0.15", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.15.tgz", - "integrity": "sha512-iz3BtLuIYH1uWdsv6wXYdhozhqj20oD4/Hk2DNXIn1kFsmp9x8d9QB6FnPhfkbhd2PgEONt9Q1x/ebkwjfFLow==", + "version": "18.0.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz", + "integrity": "sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -13327,9 +13520,9 @@ } }, "@types/retry": { - "version": "0.12.1", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.1.tgz", - "integrity": "sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==" + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, "@types/scheduler": { "version": "0.16.2", @@ -13346,12 +13539,12 @@ } }, "@types/serve-static": { - "version": "1.13.10", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", - "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", "dev": true, "requires": { - "@types/mime": "^1", + "@types/mime": "*", "@types/node": "*" } }, @@ -13555,7 +13748,7 @@ "abstract-leveldown": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", + "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", "dev": true, "requires": { "xtend": "~3.0.0" @@ -13564,7 +13757,7 @@ "xtend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", "dev": true } } @@ -13585,6 +13778,12 @@ "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", "dev": true }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true + }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -13612,9 +13811,9 @@ }, "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -13640,7 +13839,7 @@ "another-json": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz", - "integrity": "sha1-tfQBnJc7bdXGUGotk0acttMq7tw=" + "integrity": "sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg==" }, "ansi-html-community": { "version": "0.0.8", @@ -13709,26 +13908,30 @@ } }, "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } }, "array-uniq": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true }, "array.prototype.flat": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz", - "integrity": "sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.19.0" + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { @@ -13746,12 +13949,12 @@ "asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "requires": { "safer-buffer": "~2.1.0" } @@ -13791,18 +13994,18 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "autosize": { "version": "4.0.4", @@ -13818,7 +14021,7 @@ "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" }, "aws4": { "version": "1.11.0", @@ -13891,7 +14094,7 @@ "babel-polyfill": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", "requires": { "babel-runtime": "^6.26.0", "core-js": "^2.5.0", @@ -13901,7 +14104,7 @@ "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", "requires": { "core-js": "^2.4.0", "regenerator-runtime": "^0.11.0" @@ -13934,13 +14137,13 @@ "batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, "bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "requires": { "tweetnacl": "^0.14.3" } @@ -13960,7 +14163,7 @@ "bl": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=", + "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", "dev": true, "requires": { "readable-stream": "~1.0.26" @@ -13969,7 +14172,7 @@ "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -13981,7 +14184,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true } } @@ -13992,27 +14195,29 @@ "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" }, "bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, "body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==", + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "dev": true, "requires": { "bytes": "3.1.2", "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.8.1", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.9.7", - "raw-body": "2.4.3", - "type-is": "~1.6.18" + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" }, "dependencies": { "bytes": { @@ -14033,33 +14238,36 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } } } }, "bonjour-service": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.11.tgz", - "integrity": "sha512-drMprzr2rDTCtgEE3VgdA9uUFaUHF+jXduwYSThHJnKMYM+FhI9Z3ph+TX3xy0LtgYHae6CHYPJ/2UnK8nQHcA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", + "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", "dev": true, "requires": { "array-flatten": "^2.1.2", "dns-equal": "^1.0.0", "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.4" + "multicast-dns": "^7.2.5" } }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, "brace-expansion": { @@ -14084,18 +14292,18 @@ "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, "browser-encrypt-attachment": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/browser-encrypt-attachment/-/browser-encrypt-attachment-0.3.0.tgz", - "integrity": "sha1-IFqUyq3w3H6BQTlBgS9lW9GQ/xw=" + "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" }, "browser-request": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", - "integrity": "sha1-ns5bWsqJopkyJC4Yv5M975h2zBc=" + "integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==" }, "browserify-aes": { "version": "1.2.0", @@ -14137,7 +14345,7 @@ "browserify-fs": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha1-8HWqinKdTRcW0GZiDjhvzBMRqW8=", + "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", "dev": true, "requires": { "level-filesystem": "^1.0.1", @@ -14219,13 +14427,13 @@ "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, "bytes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", "dev": true }, "call-bind": { @@ -14251,6 +14459,14 @@ "requires": { "pascal-case": "^3.1.2", "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "caniuse-api": { @@ -14266,15 +14482,15 @@ } }, "caniuse-lite": { - "version": "1.0.30001373", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001373.tgz", - "integrity": "sha512-pJYArGHrPp3TUqQzFYRmP/lwJlj8RCbVe3Gd3eJQkAV8SAC6b19XS9BjMvRdvaS8RMkaTN8ZhoHP6S1y8zzwEQ==", + "version": "1.0.30001388", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz", + "integrity": "sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==", "dev": true }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, "chalk": { "version": "2.4.2", @@ -14331,9 +14547,9 @@ } }, "clean-css": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.4.tgz", - "integrity": "sha512-nKseG8wCzEuji/4yrgM/5cthL9oTDc5UOQyFMvW/Q53oP6gLH690o1NbuTh6Y18nujr7BxlsFuS7gXLnLzKJGg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -14348,6 +14564,12 @@ "del": "^4.1.1" } }, + "clone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", + "dev": true + }, "clone-deep": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", @@ -14357,6 +14579,17 @@ "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", "shallow-clone": "^3.0.0" + }, + "dependencies": { + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + } } }, "color-convert": { @@ -14371,19 +14604,19 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, "colord": { - "version": "2.9.2", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.2.tgz", - "integrity": "sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==", + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", "dev": true }, "colorette": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz", - "integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, "combined-stream": { @@ -14402,7 +14635,7 @@ "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, "compressible": { @@ -14441,7 +14674,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -14449,12 +14682,12 @@ "computed-style": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", - "integrity": "sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ=" + "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==" }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "concat-stream": { @@ -14472,7 +14705,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "readable-stream": { @@ -14545,15 +14778,15 @@ } }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true }, "cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true }, "copy-webpack-plugin": { @@ -14571,9 +14804,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -14617,9 +14850,9 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.24.1.tgz", - "integrity": "sha512-XhdNAGeRnTpp8xbD+sR/HFDK9CbeeeqXT6TuofXh3urqEevzkWmLRgrVoykodsw8okqo2pu1BOmuCKrHx63zdw==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", + "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", "dev": true, "requires": { "browserslist": "^4.21.3", @@ -14635,15 +14868,15 @@ } }, "core-js-pure": { - "version": "3.19.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.19.0.tgz", - "integrity": "sha512-UEQk8AxyCYvNAs6baNoPqDADv7BX0AmBLGxVsrAifPPx/C8EAzV4Q+2ZUJqVzfI2TQQEZITnwUkWcHpgc/IubQ==", + "version": "3.25.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz", + "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==", "dev": true }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" }, "create-ecdh": { "version": "4.0.4", @@ -14729,9 +14962,9 @@ } }, "css-declaration-sorter": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.2.2.tgz", - "integrity": "sha512-Ufadglr88ZLsrvS11gjeu/40Lw74D9Am/Jpr3LlYm5Q4ZP5KdlUhG+6u2EjyXeZcxmZ2h1ebCKngDjolpeLHpg==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", + "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", "dev": true }, "css-loader": { @@ -14751,9 +14984,9 @@ }, "dependencies": { "semver": { - "version": "7.3.5", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", - "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -14776,9 +15009,9 @@ }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -14817,16 +15050,55 @@ } }, "css-select": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.1.3.tgz", - "integrity": "sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "requires": { "boolbase": "^1.0.0", - "css-what": "^5.0.0", - "domhandler": "^4.2.0", - "domutils": "^2.6.0", - "nth-check": "^2.0.0" + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" + }, + "dependencies": { + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + } } }, "css-tree": { @@ -14840,9 +15112,9 @@ } }, "css-what": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", - "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true }, "cssesc": { @@ -14852,47 +15124,47 @@ "dev": true }, "cssnano": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.9.tgz", - "integrity": "sha512-hctQHIIeDrfMjq0bQhoVmRVaSeNNOGxkvkKVOcKpJzLr09wlRrZWH4GaYudp0aszpW8wJeaO5/yBmID9n7DNCg==", + "version": "5.1.13", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", + "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", "dev": true, "requires": { - "cssnano-preset-default": "^5.2.9", + "cssnano-preset-default": "^5.2.12", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.2.9", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.9.tgz", - "integrity": "sha512-/4qcQcAfFEg+gnXE5NxKmYJ9JcT+8S5SDuJCLYMDN8sM/ymZ+lgLXq5+ohx/7V2brUCkgW2OaoCzOdAN0zvhGw==", + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", + "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", "dev": true, "requires": { - "css-declaration-sorter": "^6.2.2", + "css-declaration-sorter": "^6.3.0", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.1", - "postcss-discard-comments": "^5.1.1", + "postcss-convert-values": "^5.1.2", + "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.5", - "postcss-merge-rules": "^5.1.1", + "postcss-merge-longhand": "^5.1.6", + "postcss-merge-rules": "^5.1.2", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.3", - "postcss-minify-selectors": "^5.2.0", + "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.0", - "postcss-normalize-repeat-style": "^5.1.0", + "postcss-normalize-positions": "^5.1.1", + "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", "postcss-normalize-unicode": "^5.1.0", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.1", + "postcss-ordered-values": "^5.1.3", "postcss-reduce-initial": "^5.1.0", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", @@ -14928,7 +15200,7 @@ "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", "requires": { "assert-plus": "^1.0.0" } @@ -14939,9 +15211,9 @@ "integrity": "sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==" }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" @@ -14970,7 +15242,7 @@ "deferred-leveldown": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", + "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", "dev": true, "requires": { "abstract-leveldown": "~0.12.1" @@ -15007,19 +15279,10 @@ "rimraf": "^2.6.3" }, "dependencies": { - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, "globby": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, "requires": { "array-union": "^1.0.1", @@ -15032,37 +15295,22 @@ "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true } } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } } } }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, "des.js": { @@ -15076,9 +15324,9 @@ } }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "detect-node": { @@ -15128,13 +15376,13 @@ "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", "dev": true }, "dns-packet": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz", - "integrity": "sha512-spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==", + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dev": true, "requires": { "@leichtgewicht/ip-codec": "^2.0.1" @@ -15159,13 +15407,13 @@ } }, "dom-serializer": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.3.2.tgz", - "integrity": "sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" } }, "domelementtype": { @@ -15174,21 +15422,21 @@ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" }, "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", "requires": { - "domelementtype": "^2.2.0" + "domelementtype": "^2.3.0" } }, "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", + "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.1" } }, "dot-case": { @@ -15199,12 +15447,20 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", "requires": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" @@ -15213,13 +15469,13 @@ "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true }, "electron-to-chromium": { - "version": "1.4.206", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.206.tgz", - "integrity": "sha512-h+Fadt1gIaQ06JaIiyqPsBjJ08fV5Q7md+V8bUvQW/9OvXfL2LRICTz2EcnnCP7QzrFTS6/27MRV6Bl9Yn97zA==", + "version": "1.4.241", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.241.tgz", + "integrity": "sha512-e7Wsh4ilaioBZ5bMm6+F4V5c11dh56/5Jwz7Hl5Tu1J7cnB+Pqx5qIF2iC7HPpfyQMqGSvvLP5bBAIDd2gAtGw==", "dev": true }, "elliptic": { @@ -15265,7 +15521,7 @@ "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true }, "enhanced-resolve": { @@ -15279,9 +15535,9 @@ } }, "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", + "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" }, "envinfo": { "version": "7.8.1", @@ -15299,16 +15555,16 @@ } }, "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", + "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", "dev": true, "requires": { "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-intrinsic": "^1.1.2", "get-symbol-description": "^1.0.0", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", @@ -15320,9 +15576,9 @@ "is-shared-array-buffer": "^1.0.2", "is-string": "^1.0.7", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", + "object-inspect": "^1.12.2", "object-keys": "^1.1.1", - "object.assign": "^4.1.2", + "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", @@ -15358,7 +15614,7 @@ "es6-object-assign": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", + "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", "dev": true }, "escalade": { @@ -15370,7 +15626,7 @@ "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "dev": true }, "escape-string-regexp": { @@ -15435,6 +15691,12 @@ "color-convert": "^2.0.1" } }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -15466,30 +15728,10 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, "globals": { - "version": "13.15.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", - "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", "dev": true, "requires": { "type-fest": "^0.20.2" @@ -15515,30 +15757,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -15565,20 +15783,18 @@ "eslint-config-airbnb-base": "^15.0.0", "object.assign": "^4.1.2", "object.entries": "^1.1.5" - }, - "dependencies": { - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - } - } + } + }, + "eslint-config-airbnb-base": { + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", + "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", + "dev": true, + "requires": { + "confusing-browser-globals": "^1.0.10", + "object.assign": "^4.1.2", + "object.entries": "^1.1.5", + "semver": "^6.3.0" } }, "eslint-import-resolver-node": { @@ -15603,13 +15819,12 @@ } }, "eslint-module-utils": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz", - "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==", + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", "dev": true, "requires": { - "debug": "^3.2.7", - "find-up": "^2.1.0" + "debug": "^3.2.7" }, "dependencies": { "debug": { @@ -15665,7 +15880,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -15723,13 +15938,14 @@ } }, "resolve": { - "version": "2.0.0-next.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz", - "integrity": "sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==", + "version": "2.0.0-next.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", + "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } @@ -15741,21 +15957,13 @@ "dev": true }, "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", "dev": true, "requires": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "dependencies": { - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - } + "estraverse": "^5.2.0" } }, "eslint-utils": { @@ -15825,7 +16033,7 @@ "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true }, "eventemitter3": { @@ -15865,54 +16073,47 @@ "onetime": "^5.1.2", "signal-exit": "^3.0.3", "strip-final-newline": "^2.0.0" - }, - "dependencies": { - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - } } }, "exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" + "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" }, "express": { - "version": "4.17.3", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz", - "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.19.2", + "body-parser": "1.20.0", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.4.2", + "cookie": "0.5.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "~1.1.2", + "depd": "2.0.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "~1.1.2", + "finalhandler": "1.2.0", "fresh": "0.5.2", + "http-errors": "2.0.0", "merge-descriptors": "1.0.1", "methods": "~1.1.2", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.9.7", + "qs": "6.10.3", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.17.2", - "serve-static": "1.14.2", + "send": "0.18.0", + "serve-static": "1.15.0", "setprototypeof": "1.2.0", - "statuses": "~1.5.0", + "statuses": "2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -15921,7 +16122,7 @@ "array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, "debug": { @@ -15936,14 +16137,17 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", - "dev": true + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } }, "safe-buffer": { "version": "5.2.1", @@ -15961,7 +16165,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" }, "fast-deep-equal": { "version": "3.1.3", @@ -16000,13 +16204,13 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true }, "fastq": { @@ -16036,11 +16240,11 @@ } }, "fbjs": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.1.tgz", - "integrity": "sha512-8+vkGyT4lNDRKHQNPp0yh/6E7FfkLg89XqQbOYnvntRh+8RiSD43yrh9E5ejp1muCizTL4nDVG+y8W4e+LROHg==", + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", + "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", "requires": { - "cross-fetch": "^3.0.4", + "cross-fetch": "^3.1.5", "fbjs-css-vars": "^1.0.0", "loose-envify": "^1.0.0", "object-assign": "^4.1.0", @@ -16078,17 +16282,17 @@ } }, "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "requires": { "debug": "2.6.9", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "parseurl": "~1.3.3", - "statuses": "~1.5.0", + "statuses": "2.0.1", "unpipe": "~1.0.0" }, "dependencies": { @@ -16104,7 +16308,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -16118,69 +16322,16 @@ "commondir": "^1.0.1", "make-dir": "^3.0.2", "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } } }, "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "requires": { - "locate-path": "^2.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" } }, "flat-cache": { @@ -16191,12 +16342,23 @@ "requires": { "flatted": "^3.1.0", "rimraf": "^3.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } } }, "flatted": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz", - "integrity": "sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, "flux": { @@ -16209,21 +16371,30 @@ } }, "follow-redirects": { - "version": "1.14.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz", - "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==", + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", "dev": true }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, "foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", "dev": true }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" }, "form-data": { "version": "2.3.3", @@ -16247,13 +16418,6 @@ "react-fast-compare": "^2.0.1", "tiny-warning": "^1.0.2", "tslib": "^1.10.0" - }, - "dependencies": { - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - } } }, "forwarded": { @@ -16265,7 +16429,7 @@ "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true }, "fs-extra": { @@ -16281,7 +16445,7 @@ "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "requires": { "graceful-fs": "^4.1.6" } @@ -16297,7 +16461,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "fsevents": { @@ -16327,7 +16491,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", "dev": true }, "functions-have-names": { @@ -16339,7 +16503,7 @@ "fwd-stream": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha1-7Sgcq+1G/uz5Ie4y3ExQs3KsfPo=", + "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", "dev": true, "requires": { "readable-stream": "~1.0.26-4" @@ -16348,7 +16512,7 @@ "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -16360,7 +16524,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true } } @@ -16372,15 +16536,21 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-symbols": "^1.0.3" } }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, "get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -16394,21 +16564,21 @@ "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", "requires": { "assert-plus": "^1.0.0" } }, "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { "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" } @@ -16435,9 +16605,9 @@ "dev": true }, "globby": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz", - "integrity": "sha512-XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==", + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", + "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", "dev": true, "requires": { "dir-glob": "^3.0.1", @@ -16448,9 +16618,9 @@ } }, "graceful-fs": { - "version": "4.2.9", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", - "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==" + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" }, "grapheme-splitter": { "version": "1.0.4", @@ -16467,7 +16637,7 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" }, "har-validator": { "version": "5.1.5", @@ -16559,7 +16729,7 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "requires": { "hash.js": "^1.0.3", @@ -16578,7 +16748,7 @@ "hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -16590,7 +16760,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "readable-stream": { @@ -16626,58 +16796,12 @@ "requires": { "domhandler": "5.0.3", "htmlparser2": "8.0.1" - }, - "dependencies": { - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==" - }, - "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - } } }, "html-entities": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.2.tgz", - "integrity": "sha512-c3Ab/url5ksaT0WyleslpBEthOzWhrjQbg75y7XUsfSzi3Dgzt0l8w5e7DylRn15MTlMMD58dTfzddNS2kcAjQ==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, "html-loader": { @@ -16688,23 +16812,6 @@ "requires": { "html-minifier-terser": "^6.1.0", "parse5": "^7.0.0" - }, - "dependencies": { - "entities": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.3.1.tgz", - "integrity": "sha512-o4q/dYJlmyjP2zfnaWDUC6A3BQFmVTX+tZPezK7k0GLSU9QYCauscf5Y+qcEPzKL+EixVouYDgLQK5H9GrLpkg==", - "dev": true - }, - "parse5": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.0.0.tgz", - "integrity": "sha512-y/t8IXSPWTuRZqXc0ajH/UwDj4mnqLEbSttNbThcFhGrZuOyoyvNBO85PBp2jQa55wY9d07PBNjsK8ZP3K5U6g==", - "dev": true, - "requires": { - "entities": "^4.3.0" - } - } } }, "html-minifier-terser": { @@ -16731,65 +16838,106 @@ "html-dom-parser": "3.1.2", "react-property": "2.0.0", "style-to-js": "1.1.1" + } + }, + "html-webpack-plugin": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz", + "integrity": "sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ==", + "dev": true, + "requires": { + "@types/html-minifier-terser": "^5.0.0", + "html-minifier-terser": "^5.0.1", + "lodash": "^4.17.20", + "pretty-error": "^2.1.1", + "tapable": "^2.0.0" }, "dependencies": { - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "clean-css": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", + "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", + "dev": true, "requires": { - "domelementtype": "^2.3.0" + "source-map": "~0.6.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "html-minifier-terser": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", + "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", + "dev": true, + "requires": { + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" + } + }, + "terser": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", + "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } } } } }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - } - }, "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", + "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "entities": "^4.3.0" } }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true }, "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "requires": { - "depd": "~1.1.2", + "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", + "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "http-parser-js": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.6.tgz", - "integrity": "sha512-vDlkRPDJn93swjcjqMSaGSPABbIarsr1TLAui/gLDXzV5VsJNdXNzMYDyNBLQkjWQCJ1uizu8T2oDMhmGt0PRA==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", "dev": true }, "http-proxy": { @@ -16804,9 +16952,9 @@ } }, "http-proxy-middleware": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.4.tgz", - "integrity": "sha512-m/4FxX17SUvz4lJ5WPXOHDUuCwIqXLfLHs1s0uZ3oYjhoXlx9csYxaOa0ElDEJ+h8Q4iJ1s+lTMbiCa4EXIJqg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", "dev": true, "requires": { "@types/http-proxy": "^1.17.8", @@ -16819,7 +16967,7 @@ "http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -16866,9 +17014,9 @@ "dev": true }, "immutable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", - "integrity": "sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", "dev": true }, "import-fresh": { @@ -16882,85 +17030,31 @@ } }, "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } } }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true }, "indexof": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "requires": { "once": "^1.3.0", @@ -16996,15 +17090,15 @@ "dev": true }, "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", "dev": true }, "is": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", + "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", "dev": true }, "is-arguments": { @@ -17052,9 +17146,9 @@ "dev": true }, "is-core-module": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", - "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "dev": true, "requires": { "has": "^1.0.3" @@ -17078,7 +17172,7 @@ "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true }, "is-generator-function": { @@ -17133,7 +17227,7 @@ "is-object": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha1-AO+8CIFsM8/ErIJR0TLhDcZQmNc=", + "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==", "dev": true }, "is-path-cwd": { @@ -17167,13 +17261,9 @@ "dev": true }, "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" }, "is-regex": { "version": "1.1.4", @@ -17219,22 +17309,22 @@ } }, "is-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.8.tgz", - "integrity": "sha512-HqH41TNZq2fgtGT8WHVFVJhBVGuY3AnP3Q36K8JKXUxSxRgk/d+7NjmwG2vo2mYmXK8UYZKu0qH8bVP5gEisjA==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", + "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, "is-weakref": { "version": "1.0.2", @@ -17257,31 +17347,31 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", "dev": true }, "isbuffer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha1-OMFG2d9Si4v5sHAcPUPPEt8/w5s=", + "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", "dev": true }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, "jest-worker": { "version": "27.5.1", @@ -17328,7 +17418,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, "jsesc": { "version": "2.5.2", @@ -17343,9 +17433,9 @@ "dev": true }, "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" }, "json-schema-traverse": { "version": "0.4.1", @@ -17355,13 +17445,13 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, "json5": { "version": "2.2.1", @@ -17379,24 +17469,24 @@ } }, "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", + "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", - "json-schema": "0.2.3", + "json-schema": "0.4.0", "verror": "1.10.0" } }, "jsx-ast-utils": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz", - "integrity": "sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", + "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", "dev": true, "requires": { "array-includes": "^3.1.5", - "object.assign": "^4.1.2" + "object.assign": "^4.1.3" } }, "katex": { @@ -17420,15 +17510,15 @@ "dev": true }, "language-subtag-registry": { - "version": "0.3.21", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz", - "integrity": "sha512-L0IqwlIXjilBVVYKFT37X9Ih11Um5NEl9cbJIuU/SwP/zEEAbBPOnEeeuxVMf45ydWQRDQN3Nqc96OgbH1K+Pg==", + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", "dev": true }, "language-tags": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha1-0yHbxNowuovzAk4ED6XBRmH5GTo=", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", "dev": true, "requires": { "language-subtag-registry": "~0.3.2" @@ -17437,7 +17527,7 @@ "level-blobs": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha1-mrm5e7mfHtv594o0M+Ie1WOGva8=", + "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", "dev": true, "requires": { "level-peek": "1.0.6", @@ -17448,7 +17538,7 @@ "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -17460,7 +17550,7 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true } } @@ -17468,7 +17558,7 @@ "level-filesystem": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha1-oArKmRnEpN+v3KaoEI0iWq3/Y7M=", + "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", "dev": true, "requires": { "concat-stream": "^1.4.4", @@ -17485,13 +17575,13 @@ "level-fix-range": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha1-vxW5Fa422EcMgh6IPd95zRZCCCg=", + "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", "dev": true }, "level-hooks": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha1-G5rmGSKTDzMF0aYfxNg8gQLA3ZM=", + "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", "dev": true, "requires": { "string-range": "~1.2" @@ -17500,7 +17590,7 @@ "level-js": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", + "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", "dev": true, "requires": { "abstract-leveldown": "~0.12.0", @@ -17514,13 +17604,13 @@ "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", "dev": true }, "xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", "dev": true, "requires": { "object-keys": "~0.4.0" @@ -17531,7 +17621,7 @@ "level-peek": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha1-vsUccqgu5GTTNkNMfIdsP8vM538=", + "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", "dev": true, "requires": { "level-fix-range": "~1.0.2" @@ -17540,7 +17630,7 @@ "level-sublevel": { "version": "5.2.3", "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha1-dEwSxy0ucr543eO5tc2E1iGRQTo=", + "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", "dev": true, "requires": { "level-fix-range": "2.0", @@ -17549,16 +17639,10 @@ "xtend": "~2.0.4" }, "dependencies": { - "clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha1-YT+2hjmyaklKxTJT4Vsaa9iK2oU=", - "dev": true - }, "level-fix-range": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha1-xBfWIVlEIVGhnZojZ4aPFyTC1Ug=", + "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", "dev": true, "requires": { "clone": "~0.1.9" @@ -17567,7 +17651,7 @@ "object-keys": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha1-zd7AKZiwkb5CvxA1rjLknxy26mc=", + "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", "dev": true, "requires": { "foreach": "~2.0.1", @@ -17578,7 +17662,7 @@ "xtend": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha1-XqZXptukRwacLlnFihE4ywxebO4=", + "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", "dev": true, "requires": { "is-object": "~0.1.2", @@ -17590,7 +17674,7 @@ "levelup": { "version": "0.18.6", "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha1-5qAcsIlhbI7MApHCqb0/DETj5es=", + "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", "dev": true, "requires": { "bl": "~0.8.1", @@ -17605,13 +17689,13 @@ "prr": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", "dev": true }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, "requires": { "core-util-is": "~1.0.0", @@ -17623,19 +17707,19 @@ "semver": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha1-uYSPJdbPNjMwc+ye+IVtQvEjPlI=", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", "dev": true }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", "dev": true }, "xtend": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", "dev": true } } @@ -17651,15 +17735,15 @@ } }, "lilconfig": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.5.tgz", - "integrity": "sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "dev": true }, "line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", - "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=", + "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==", "requires": { "computed-style": "~0.1.3" } @@ -17675,9 +17759,9 @@ "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" }, "loader-runner": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.2.0.tgz", - "integrity": "sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, "loader-utils": { @@ -17692,13 +17776,12 @@ } }, "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "requires": { - "p-locate": "^2.0.0", - "path-exists": "^3.0.0" + "p-locate": "^5.0.0" } }, "lodash": { @@ -17720,7 +17803,7 @@ "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, "lodash.merge": { @@ -17732,13 +17815,13 @@ "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "dev": true }, "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", + "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" }, "loose-envify": { "version": "1.4.0", @@ -17755,6 +17838,14 @@ "dev": true, "requires": { "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "lru-cache": { @@ -17769,7 +17860,7 @@ "ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha1-81ypHEk/e3PaDgdJUwTxezH4fuU=", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", "dev": true }, "make-dir": { @@ -17824,22 +17915,22 @@ "media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true }, "memfs": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.1.tgz", - "integrity": "sha512-1c9VPVvW5P7I85c35zAdEr1TD5+F11IToIHIlrVIcflfnzPkJa0ZoYEoEdYDP8KgPFoSZ/opDrUsAoZWym3mtw==", + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", + "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", "dev": true, "requires": { - "fs-monkey": "1.0.3" + "fs-monkey": "^1.0.3" } }, "merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", "dev": true }, "merge-stream": { @@ -17857,17 +17948,17 @@ "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true }, "micromatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", - "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "braces": "^3.0.1", - "picomatch": "^2.2.3" + "braces": "^3.0.2", + "picomatch": "^2.3.1" } }, "miller-rabin": { @@ -17923,9 +18014,9 @@ }, "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -17972,7 +18063,7 @@ "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, "minimatch": { @@ -17997,9 +18088,9 @@ "dev": true }, "multicast-dns": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.4.tgz", - "integrity": "sha512-XkCYOU+rr2Ft3LI6w4ye51M3VK31qJXFIxu0XLw169PtKG0Zx47OrXeVW/GCYOfpC9s1yyyf1S+L8/4LY0J9Zw==", + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "requires": { "dns-packet": "^5.2.2", @@ -18014,7 +18105,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "negotiator": { @@ -18037,6 +18128,14 @@ "requires": { "lower-case": "^2.0.2", "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "node-fetch": { @@ -18081,9 +18180,9 @@ } }, "nth-check": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.0.1.tgz", - "integrity": "sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { "boolbase": "^1.0.0" @@ -18097,12 +18196,12 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" }, "object-inspect": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.1.tgz", - "integrity": "sha512-Y/jF6vnvEtOPGiKD1+q+X0CiUYRQtEHp89MLLUJ7TUivtH8Ugn2+3A7Rynqk7BRsAoqeOQWnFnjpDrKSxDgIGA==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "object-is": { "version": "1.1.5", @@ -18121,14 +18220,14 @@ "dev": true }, "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", "object-keys": "^1.1.1" } }, @@ -18184,13 +18283,13 @@ "octal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha1-Y+cWKmjvvrniE1iNWOmJ0eXEUws=", + "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", "dev": true }, "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "requires": { "ee-first": "1.1.1" @@ -18205,7 +18304,7 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "requires": { "wrappy": "1" @@ -18255,37 +18354,26 @@ } }, "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "requires": { - "p-limit": "^1.1.0" - }, - "dependencies": { - "p-limit": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", - "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", - "dev": true, - "requires": { - "p-try": "^1.0.0" - } - }, - "p-try": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", - "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", - "dev": true - } + "p-limit": "^3.0.2" } }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, "p-retry": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.1.tgz", - "integrity": "sha512-e2xXGNhZOZ0lfgR9kL34iGlU8N/KO0xZnQxVEwdeOvpqNDQfdnxIYizvWtK8RglUa3bGqI8g0R/BdfzLMxRkiA==", + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "requires": { - "@types/retry": "^0.12.0", + "@types/retry": "0.12.0", "retry": "^0.13.1" } }, @@ -18303,6 +18391,14 @@ "requires": { "dot-case": "^3.0.4", "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "parent-module": { @@ -18330,7 +18426,16 @@ "parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha1-8r0iH2zJcKk42IVWq8WJyqqiveE=" + "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" + }, + "parse5": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", + "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "dev": true, + "requires": { + "entities": "^4.4.0" + } }, "parseurl": { "version": "1.3.3", @@ -18346,6 +18451,14 @@ "requires": { "no-case": "^3.0.4", "tslib": "^2.0.3" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "dev": true + } } }, "path-browserify": { @@ -18355,21 +18468,21 @@ "dev": true }, "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true }, "path-is-inside": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", "dev": true }, "path-key": { @@ -18387,7 +18500,7 @@ "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", "dev": true }, "path-type": { @@ -18412,7 +18525,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0", @@ -18420,9 +18533,9 @@ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pify": { @@ -18434,22 +18547,70 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, "requires": { "pinkie": "^2.0.0" } }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + } + } + }, "postcss": { - "version": "8.4.14", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz", - "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==", + "version": "8.4.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", + "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -18479,9 +18640,9 @@ } }, "postcss-convert-values": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.1.tgz", - "integrity": "sha512-UjcYfl3wJJdcabGKk8lgetPvhi1Et7VDc3sYr9EyhNBeB00YD4vHgPBp+oMVoG/dDWCc6ASbmzPNV6jADTwh8Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", + "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", "dev": true, "requires": { "browserslist": "^4.20.3", @@ -18489,9 +18650,9 @@ } }, "postcss-discard-comments": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.1.tgz", - "integrity": "sha512-5JscyFmvkUxz/5/+TB3QTTT9Gi9jHkcn8dcmmuN68JQcv3aQg4y88yEHHhwFB52l/NkaJ43O0dbksGMAo49nfQ==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", + "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", "dev": true }, "postcss-discard-duplicates": { @@ -18513,9 +18674,9 @@ "dev": true }, "postcss-merge-longhand": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.5.tgz", - "integrity": "sha512-NOG1grw9wIO+60arKa2YYsrbgvP6tp+jqc7+ZD5/MalIw234ooH2C6KlR6FEn4yle7GqZoBxSK1mLBE9KPur6w==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", + "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", @@ -18523,9 +18684,9 @@ } }, "postcss-merge-rules": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.1.tgz", - "integrity": "sha512-8wv8q2cXjEuCcgpIB1Xx1pIy8/rhMPIQqYKNzEdyx37m6gpq83mQQdCxgIkFgliyEnKvdwJf/C61vN4tQDq4Ww==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", + "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -18566,9 +18727,9 @@ } }, "postcss-minify-selectors": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.0.tgz", - "integrity": "sha512-vYxvHkW+iULstA+ctVNx0VoRAR4THQQRkG77o0oa4/mBS0OzGvvzLIvHDv/nNEM0crzN2WIyFU5X7wZhaUK3RA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", + "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.5" @@ -18625,18 +18786,18 @@ } }, "postcss-normalize-positions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.0.tgz", - "integrity": "sha512-8gmItgA4H5xiUxgN/3TVvXRoJxkAWLW6f/KKhdsH03atg0cB8ilXnrB5PpSshwVu/dD2ZsRFQcR1OEmSBDAgcQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", + "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.0.tgz", - "integrity": "sha512-IR3uBjc+7mcWGL6CtniKNQ4Rr5fTxwkaDHwMBDGGs1x9IVRkYIT/M4NelZWkAOBdV6v3Z9S46zqaKGlyzHSchw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", + "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0" @@ -18690,9 +18851,9 @@ } }, "postcss-ordered-values": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.1.tgz", - "integrity": "sha512-7lxgXF0NaoMIgyihL/2boNAEZKiW0+HkMhdKMTD93CjW8TdCy2hSdj8lsAo+uwm7EDG16Da2Jdmtqpedl0cMfw==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", + "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", "dev": true, "requires": { "cssnano-utils": "^3.1.0", @@ -18719,9 +18880,9 @@ } }, "postcss-selector-parser": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.9.tgz", - "integrity": "sha512-UO3SgnZOVTwu4kyLR22UQ1xZh086RyNZppb7lLAKBFK8a32ttG5i87Y/P3+2bRSjZNyJ1B7hfFNo273tKe9YxQ==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -18760,13 +18921,13 @@ "dev": true }, "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", "dev": true, "requires": { "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "renderkid": "^2.0.4" } }, "process-nextick-args": { @@ -18801,18 +18962,26 @@ "requires": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } } }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, "public-encrypt": { "version": "4.0.3", @@ -18842,9 +19011,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.10.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz", - "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } @@ -18852,7 +19021,7 @@ "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", "dev": true }, "queue-microtask": { @@ -18887,13 +19056,13 @@ "dev": true }, "raw-body": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz", - "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==", + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", "dev": true, "requires": { "bytes": "3.1.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "iconv-lite": "0.4.24", "unpipe": "1.0.0" }, @@ -19039,9 +19208,9 @@ } }, "redux": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.1.2.tgz", - "integrity": "sha512-SH8PglcebESbd/shgf6mii6EIoRM0zrQyjcuQ+ojmfxjTtE0z9Y8pa62iA/OJ58qjP6j27uyW4kUF4jl/jd6sw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", + "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", "requires": { "@babel/runtime": "^7.9.2" } @@ -19064,7 +19233,7 @@ "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==" }, "regenerator-transform": { "version": "0.15.0", @@ -19132,20 +19301,86 @@ "relateurl": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", "dev": true }, "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", + "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", "dev": true, "requires": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } } }, "request": { @@ -19176,9 +19411,9 @@ }, "dependencies": { "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", + "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" } } }, @@ -19191,16 +19426,16 @@ "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", "dev": true }, "resolve": { - "version": "1.22.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", - "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "is-core-module": "^2.8.1", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -19240,9 +19475,9 @@ "dev": true }, "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { "glob": "^7.1.3" @@ -19295,15 +19530,54 @@ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, "escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } } } }, @@ -19351,7 +19625,7 @@ "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true }, "selfsigned": { @@ -19370,24 +19644,24 @@ "dev": true }, "send": { - "version": "0.17.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.2.tgz", - "integrity": "sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", + "depd": "2.0.0", + "destroy": "1.2.0", "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.8.1", + "http-errors": "2.0.0", "mime": "1.6.0", "ms": "2.1.3", - "on-finished": "~2.3.0", + "on-finished": "2.4.1", "range-parser": "~1.2.1", - "statuses": "~1.5.0" + "statuses": "2.0.1" }, "dependencies": { "debug": { @@ -19402,7 +19676,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true } } @@ -19427,7 +19701,7 @@ "serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "requires": { "accepts": "~1.3.4", @@ -19448,10 +19722,16 @@ "ms": "2.0.0" } }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, "http-errors": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "requires": { "depd": "~1.1.2", @@ -19463,13 +19743,13 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, "setprototypeof": { @@ -19477,25 +19757,31 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true } } }, "serve-static": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.2.tgz", - "integrity": "sha512-+TMNA9AFxUEGuC0z2mevogSnn9MXKb4fa7ngeRMJaaGv8vTwnIEkKi+QGvPt33HSnf8pRS+WGM0EbMtCJLKMBQ==", + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "requires": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.17.2" + "send": "0.18.0" } }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, "setprototypeof": { "version": "1.2.0", @@ -19548,9 +19834,9 @@ } }, "signal-exit": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.5.tgz", - "integrity": "sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "slash": { @@ -19590,9 +19876,9 @@ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" }, "source-map-support": { - "version": "0.5.20", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz", - "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==", + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { "buffer-from": "^1.0.0", @@ -19627,9 +19913,9 @@ } }, "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -19649,9 +19935,9 @@ "dev": true }, "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true }, "stream-browserify": { @@ -19684,7 +19970,7 @@ "string-range": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha1-qJPtNH5yKZvIO++78qaSqNI51d0=", + "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", "dev": true }, "string.prototype.matchall": { @@ -19737,7 +20023,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-final-newline": { @@ -19829,13 +20115,14 @@ "dev": true }, "terser": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz", - "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==", + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", + "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", "dev": true, "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", "commander": "^2.20.0", - "source-map": "~0.7.2", "source-map-support": "~0.5.20" }, "dependencies": { @@ -19844,27 +20131,20 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true - }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true } } }, "terser-webpack-plugin": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz", - "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", "dev": true, "requires": { - "jest-worker": "^27.0.6", - "p-limit": "^3.1.0", + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1", - "terser": "^5.7.2" + "terser": "^5.14.1" }, "dependencies": { "schema-utils": { @@ -19883,7 +20163,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "thunky": { @@ -19908,7 +20188,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", "dev": true }, "to-regex-range": { @@ -19938,7 +20218,7 @@ "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "tsconfig-paths": { "version": "3.14.1", @@ -19964,15 +20244,14 @@ } }, "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", "requires": { "safe-buffer": "^5.0.1" } @@ -19980,7 +20259,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, "twemoji": { "version": "14.0.2", @@ -20026,13 +20305,13 @@ "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "typedarray-to-buffer": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha1-m7i6DoQfs/TPH+fCRenz+opf6Zw=", + "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", "dev": true }, "ua-parser-js": { @@ -20093,13 +20372,13 @@ "unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true }, "update-browserslist-db": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.5.tgz", - "integrity": "sha512-dteFFpCyvuDdr9S/ff1ISkKt/9YZxKjI9WlRR99c180GaztJtRa/fn18FdxGVKVsnPY7/a/FDN68mcvUmP4U7Q==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", + "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", "dev": true, "requires": { "escalade": "^3.1.1", @@ -20117,7 +20396,7 @@ "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", "dev": true, "requires": { "punycode": "1.3.2", @@ -20127,7 +20406,7 @@ "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", "dev": true } } @@ -20149,19 +20428,19 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "utila": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", "dev": true }, "utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, "uuid": { @@ -20172,13 +20451,13 @@ "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", @@ -20215,7 +20494,7 @@ "webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "webpack": { "version": "5.74.0", @@ -20249,10 +20528,20 @@ "webpack-sources": "^3.2.3" }, "dependencies": { - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "schema-utils": { @@ -20297,22 +20586,22 @@ } }, "webpack-dev-middleware": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", - "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", + "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", "dev": true, "requires": { "colorette": "^2.0.10", - "memfs": "^3.4.1", + "memfs": "^3.4.3", "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" }, "dependencies": { "ajv": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.10.0.tgz", - "integrity": "sha512-bzqAEZOjkrUMl2afH8dknrq5KEk2SrwdBROR+vH1EKVQTqaUbJVPdc/gEdggTMM0Se+s+Ja4ju4TlNcStKl2Hw==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -20388,9 +20677,9 @@ }, "dependencies": { "ajv": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", - "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -20408,18 +20697,21 @@ "fast-deep-equal": "^3.1.3" } }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true - }, "json-schema-traverse": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, "schema-utils": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", @@ -20435,9 +20727,9 @@ } }, "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", + "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", "dev": true, "requires": { "clone-deep": "^4.0.1", @@ -20470,7 +20762,7 @@ "whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "requires": { "tr46": "~0.0.3", "webidl-conversions": "^3.0.0" @@ -20499,17 +20791,17 @@ } }, "which-typed-array": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.7.tgz", - "integrity": "sha512-vjxaB4nfDqwKI0ws7wZpxIlde1XrLX5uB0ZjpfshgmapJMD7jJWhZI+yToJTqaFByF0eNBcYxbjmCzoRP7CfEw==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", + "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.18.5", - "foreach": "^2.0.5", + "es-abstract": "^1.20.0", + "for-each": "^0.3.3", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.7" + "is-typed-array": "^1.1.9" } }, "wildcard": { @@ -20527,19 +20819,19 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "ws": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", - "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", + "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", "dev": true }, "xtend": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha1-7vax8ZjByN6vrYsXZaBNrUoBxak=", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", "dev": true }, "yallist": { diff --git a/package.json b/package.json index 5f3485e6..cd9967e5 100644 --- a/package.json +++ b/package.json @@ -15,69 +15,69 @@ "author": "Ajay Bura", "license": "MIT", "dependencies": { - "@fontsource/inter": "^4.5.12", - "@fontsource/roboto": "^4.5.8", - "@khanacademy/simple-markdown": "^0.8.3", - "@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", - "@tippyjs/react": "^4.2.6", - "babel-polyfill": "^6.26.0", - "blurhash": "^1.1.5", - "browser-encrypt-attachment": "^0.3.0", - "dateformat": "^5.0.3", - "emojibase-data": "^7.0.1", - "file-saver": "^2.0.5", - "flux": "^4.0.3", - "formik": "^2.2.9", - "html-react-parser": "^3.0.4", - "katex": "^0.16.2", - "linkify-html": "^4.0.0-beta.5", - "linkifyjs": "^4.0.0-beta.5", - "matrix-js-sdk": "^19.4.0", - "prop-types": "^15.8.1", - "react": "^17.0.2", - "react-autosize-textarea": "^7.1.0", - "react-blurhash": "^0.1.3", - "react-dnd": "^15.1.2", - "react-dnd-html5-backend": "^15.1.3", - "react-dom": "^17.0.2", - "react-google-recaptcha": "^2.1.0", - "react-modal": "^3.15.1", - "sanitize-html": "^2.7.1", - "tippy.js": "^6.3.7", - "twemoji": "^14.0.2" + "@fontsource/inter": "4.5.12", + "@fontsource/roboto": "4.5.8", + "@khanacademy/simple-markdown": "0.8.3", + "@matrix-org/olm": "3.2.12", + "@tippyjs/react": "4.2.6", + "babel-polyfill": "6.26.0", + "blurhash": "1.1.5", + "browser-encrypt-attachment": "0.3.0", + "dateformat": "5.0.3", + "emojibase-data": "7.0.1", + "file-saver": "2.0.5", + "flux": "4.0.3", + "formik": "2.2.9", + "html-react-parser": "3.0.4", + "katex": "0.16.2", + "linkify-html": "4.0.0-beta.5", + "linkifyjs": "4.0.0-beta.5", + "matrix-js-sdk": "19.4.0", + "prop-types": "15.8.1", + "react": "17.0.2", + "react-autosize-textarea": "7.1.0", + "react-blurhash": "0.1.3", + "react-dnd": "15.1.2", + "react-dnd-html5-backend": "15.1.3", + "react-dom": "17.0.2", + "react-google-recaptcha": "2.1.0", + "react-modal": "3.15.1", + "sanitize-html": "2.7.1", + "tippy.js": "6.3.7", + "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "^7.18.13", - "@babel/preset-env": "^7.18.10", - "@babel/preset-react": "^7.18.6", - "assert": "^2.0.0", - "babel-loader": "^8.2.5", - "browserify-fs": "^1.0.0", - "buffer": "^6.0.3", - "clean-webpack-plugin": "^4.0.0", - "copy-webpack-plugin": "^11.0.0", - "crypto-browserify": "^3.12.0", - "css-loader": "^6.7.1", - "css-minimizer-webpack-plugin": "^4.0.0", - "eslint": "^8.23.0", - "eslint-config-airbnb": "^19.0.4", - "eslint-plugin-import": "^2.26.0", - "eslint-plugin-jsx-a11y": "^6.6.1", - "eslint-plugin-react": "^7.31.1", - "eslint-plugin-react-hooks": "^4.6.0", - "html-loader": "^4.1.0", - "html-webpack-plugin": "^5.3.1", - "mini-css-extract-plugin": "^2.6.1", - "path-browserify": "^1.0.1", - "sass": "^1.54.5", - "sass-loader": "^13.0.2", - "stream-browserify": "^3.0.0", - "style-loader": "^3.3.1", - "url": "^0.11.0", - "util": "^0.12.4", - "webpack": "^5.74.0", - "webpack-cli": "^4.10.0", - "webpack-dev-server": "^4.10.1", - "webpack-merge": "^5.7.3" + "@babel/core": "7.18.13", + "@babel/preset-env": "7.18.10", + "@babel/preset-react": "7.18.6", + "assert": "2.0.0", + "babel-loader": "8.2.5", + "browserify-fs": "1.0.0", + "buffer": "6.0.3", + "clean-webpack-plugin": "4.0.0", + "copy-webpack-plugin": "11.0.0", + "crypto-browserify": "3.12.0", + "css-loader": "6.7.1", + "css-minimizer-webpack-plugin": "4.0.0", + "eslint": "8.23.0", + "eslint-config-airbnb": "19.0.4", + "eslint-plugin-import": "2.26.0", + "eslint-plugin-jsx-a11y": "6.6.1", + "eslint-plugin-react": "7.31.1", + "eslint-plugin-react-hooks": "4.6.0", + "html-loader": "4.1.0", + "html-webpack-plugin": "5.3.1", + "mini-css-extract-plugin": "2.6.1", + "path-browserify": "1.0.1", + "sass": "1.54.5", + "sass-loader": "13.0.2", + "stream-browserify": "3.0.0", + "style-loader": "3.3.1", + "url": "0.11.0", + "util": "0.12.4", + "webpack": "5.74.0", + "webpack-cli": "4.10.0", + "webpack-dev-server": "4.10.1", + "webpack-merge": "5.7.3" } } From 8583ab19f06465bb01ccaf533fc81a9c48b6a92f Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 5 Sep 2022 08:30:45 +0530 Subject: [PATCH 163/717] Manage ignored users (#814) * Add options to display/ignore usersId's * Update string * Hide search icon in encrypted rooms (#763) * Fix styles --- src/app/hooks/useAccountData.js | 4 +- .../GlobalNotification.jsx | 2 +- .../global-notification/IgnoreUserList.jsx | 64 +++++++++++++++++++ .../global-notification/IgnoreUserList.scss | 17 +++++ .../KeywordNotification.jsx | 2 +- .../KeywordNotification.scss | 3 +- src/app/organisms/room/RoomViewHeader.jsx | 9 +-- src/app/organisms/settings/Settings.jsx | 2 + src/app/organisms/settings/Settings.scss | 1 + 9 files changed, 95 insertions(+), 9 deletions(-) create mode 100644 src/app/molecules/global-notification/IgnoreUserList.jsx create mode 100644 src/app/molecules/global-notification/IgnoreUserList.scss diff --git a/src/app/hooks/useAccountData.js b/src/app/hooks/useAccountData.js index 01c973e7..ed654d97 100644 --- a/src/app/hooks/useAccountData.js +++ b/src/app/hooks/useAccountData.js @@ -5,12 +5,12 @@ import initMatrix from '../../client/initMatrix'; export function useAccountData(eventType) { const mx = initMatrix.matrixClient; - const [event, setEvent] = useState(mx.getAccountData(eventType)?.getContent()); + const [event, setEvent] = useState(mx.getAccountData(eventType)); useEffect(() => { const handleChange = (mEvent) => { if (mEvent.getType() !== eventType) return; - setEvent(mEvent.getContent()); + setEvent(mEvent); }; mx.on('accountData', handleChange); return () => { diff --git a/src/app/molecules/global-notification/GlobalNotification.jsx b/src/app/molecules/global-notification/GlobalNotification.jsx index a28687eb..865582ce 100644 --- a/src/app/molecules/global-notification/GlobalNotification.jsx +++ b/src/app/molecules/global-notification/GlobalNotification.jsx @@ -53,7 +53,7 @@ export function getTypeActions(type, highlightValue = false) { function useGlobalNotif() { const mx = initMatrix.matrixClient; - const pushRules = useAccountData('m.push_rules'); + const pushRules = useAccountData('m.push_rules')?.getContent(); const underride = pushRules?.global?.underride ?? []; const rulesToType = { [DM]: notifType.ON, diff --git a/src/app/molecules/global-notification/IgnoreUserList.jsx b/src/app/molecules/global-notification/IgnoreUserList.jsx new file mode 100644 index 00000000..87ee6272 --- /dev/null +++ b/src/app/molecules/global-notification/IgnoreUserList.jsx @@ -0,0 +1,64 @@ +import React from 'react'; +import './IgnoreUserList.scss'; + +import initMatrix from '../../../client/initMatrix'; +import * as roomActions from '../../../client/action/room'; + +import Text from '../../atoms/text/Text'; +import Chip from '../../atoms/chip/Chip'; +import Input from '../../atoms/input/Input'; +import Button from '../../atoms/button/Button'; +import { MenuHeader } from '../../atoms/context-menu/ContextMenu'; +import SettingTile from '../setting-tile/SettingTile'; + +import CrossIC from '../../../../public/res/ic/outlined/cross.svg'; + +import { useAccountData } from '../../hooks/useAccountData'; + +function IgnoreUserList() { + useAccountData('m.ignored_user_list'); + const ignoredUsers = initMatrix.matrixClient.getIgnoredUsers(); + + const handleSubmit = (evt) => { + evt.preventDefault(); + const { ignoreInput } = evt.target.elements; + const value = ignoreInput.value.trim(); + const userIds = value.split(' ').filter((v) => v.match(/^@\S+:\S+$/)); + if (userIds.length === 0) return; + ignoreInput.value = ''; + roomActions.ignore(userIds); + }; + + return ( +

+ Ignored users + + Ignore userId if you do not want to receive their messages or invites. + + + + + {ignoredUsers.length > 0 && ( +
+ {ignoredUsers.map((uId) => ( + roomActions.unignore([uId])} + /> + ))} +
+ )} +
+ )} + /> +
+ ); +} + +export default IgnoreUserList; diff --git a/src/app/molecules/global-notification/IgnoreUserList.scss b/src/app/molecules/global-notification/IgnoreUserList.scss new file mode 100644 index 00000000..92831558 --- /dev/null +++ b/src/app/molecules/global-notification/IgnoreUserList.scss @@ -0,0 +1,17 @@ +.ignore-user-list { + &__users { + & form, + & > div:last-child { + display: flex; + flex-wrap: wrap; + gap: var(--sp-tight); + } + + & form { + margin: var(--sp-extra-tight) 0 var(--sp-normal); + .input-container { + flex-grow: 1; + } + } + } +} \ No newline at end of file diff --git a/src/app/molecules/global-notification/KeywordNotification.jsx b/src/app/molecules/global-notification/KeywordNotification.jsx index c44ffc46..8484d41d 100644 --- a/src/app/molecules/global-notification/KeywordNotification.jsx +++ b/src/app/molecules/global-notification/KeywordNotification.jsx @@ -29,7 +29,7 @@ const KEYWORD = 'keyword'; function useKeywordNotif() { const mx = initMatrix.matrixClient; - const pushRules = useAccountData('m.push_rules'); + const pushRules = useAccountData('m.push_rules')?.getContent(); const override = pushRules?.global?.override ?? []; const content = pushRules?.global?.content ?? []; diff --git a/src/app/molecules/global-notification/KeywordNotification.scss b/src/app/molecules/global-notification/KeywordNotification.scss index a5870020..4d1bfd48 100644 --- a/src/app/molecules/global-notification/KeywordNotification.scss +++ b/src/app/molecules/global-notification/KeywordNotification.scss @@ -3,11 +3,12 @@ & form, & > div:last-child { display: flex; + flex-wrap: wrap; gap: var(--sp-tight); } & form { - margin: var(--sp-ultra-tight) 0 var(--sp-normal); + margin: var(--sp-extra-tight) 0 var(--sp-normal); .input-container { flex-grow: 1; } diff --git a/src/app/organisms/room/RoomViewHeader.jsx b/src/app/organisms/room/RoomViewHeader.jsx index 849ba14b..46a6ba0e 100644 --- a/src/app/organisms/room/RoomViewHeader.jsx +++ b/src/app/organisms/room/RoomViewHeader.jsx @@ -33,9 +33,10 @@ function RoomViewHeader({ roomId }) { const [, forceUpdate] = useForceUpdate(); const mx = initMatrix.matrixClient; const isDM = initMatrix.roomList.directs.has(roomId); - let avatarSrc = mx.getRoom(roomId).getAvatarUrl(mx.baseUrl, 36, 36, 'crop'); - avatarSrc = isDM ? mx.getRoom(roomId).getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 36, 36, 'crop') : avatarSrc; - const roomName = mx.getRoom(roomId).name; + const room = mx.getRoom(roomId); + let avatarSrc = room.getAvatarUrl(mx.baseUrl, 36, 36, 'crop'); + avatarSrc = isDM ? room.getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 36, 36, 'crop') : avatarSrc; + const roomName = room.name; const roomHeaderBtnRef = useRef(null); useEffect(() => { @@ -93,7 +94,7 @@ function RoomViewHeader({ roomId }) { - toggleRoomSettings(tabText.SEARCH)} tooltip="Search" src={SearchIC} /> + {mx.isRoomEncrypted(roomId) === false && toggleRoomSettings(tabText.SEARCH)} tooltip="Search" src={SearchIC} />} toggleRoomSettings(tabText.MEMBERS)} tooltip="Members" src={UserIC} /> + ); } diff --git a/src/app/organisms/settings/Settings.scss b/src/app/organisms/settings/Settings.scss index aa455700..a9ddd475 100644 --- a/src/app/organisms/settings/Settings.scss +++ b/src/app/organisms/settings/Settings.scss @@ -40,6 +40,7 @@ .settings-notifications, .global-notification, .keyword-notification, +.ignore-user-list, .settings-security__card, .settings-security .device-manage, .settings-about__card, From adca914d67bc0c509c2f3e2897dd09120856be15 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Mon, 5 Sep 2022 12:26:44 +0530 Subject: [PATCH 164/717] Copy Olm directly from node modules (fixes #206) (#817) --- .npmrc | 2 +- olm.wasm | Bin 159054 -> 0 bytes webpack.common.js | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) delete mode 100755 olm.wasm diff --git a/.npmrc b/.npmrc index c2b764b2..8833acba 100644 --- a/.npmrc +++ b/.npmrc @@ -1,3 +1,3 @@ legacy-peer-deps=true -save-exact = true +save-exact=true @matrix-org:registry=https://gitlab.matrix.org/api/v4/projects/27/packages/npm/ \ No newline at end of file diff --git a/olm.wasm b/olm.wasm deleted file mode 100755 index eb0f50ad4de15cbd0cf9a399d2967ad868fdee24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 159054 zcmeFa51gIXdDnT)``&+Z@12=D(nuOfW9i&ivOKaSdt^%*MH$=kPGnn&okUGdYP$Yx zHB+}$XOvWuRmUw8X%Z`rLIW5GOQ4|@O^O3m!O(Uow6tyuOBS-=Zdo=Ib`eV!@>%}5 zB^0Mkeyaq^ptDczq~q(5#TVZyh3hZ6ll9^QX)M~Eti>22A~40Q6ge72YBDAlRI0cMhpQg{(9lqIwBlWbFW$Q( z;ipq+KxrdwB-LuGlK2+kq*5KKBsDkY6L`?_&bz8hHzd`Ht5zMqNh2Lf)0(TfX4-Bv z6PKjE>f4QtLrUu#%H~peQ~qG2{nctUxwWbrstq|`8EH0~BmxOnQ__SyF>$Q{fHs-= zYFS)8t))P%`FcX0I=*p7dNB28psQN*zOuTS)Ed-Qe&sLLTJ>M5{gC(Ho;d%6dyD@L z;D4w4v)+G~`!n93av%5pyWRih{gV6B-Y>iV$@|mpPkH|yx6i-V-QmB-ea!na?oWDu z*8K_Z&$&PD{gduF@6WqG=Kc4&KkEHc?vHr?KKD`YpLRds{r9;)?EUw_pJBF+(Z5W_aW~ebeFt;$UWozarZ&*-|9Z#{oCBC_Yb>^{tce*}xYNn01-G1h_kvqWmKNN1C(8@& zRC0R3?MdFV;Jzz)?}Gcz3+V{BK@xzv7ce1?~?Bp?5F1U-rqjEV!3^^4Nm=hd%j(3+}T%`PK#Z_kHqh z3-0gvWcPymUwyK$=sx3<#YOjbee&&#?tk&g6N~Qe_~bhl-QV`fcP_eL^2v8Cx?l9k zsYUk-KKbrN*t4|gUi8WGqI)bkz36`4C+}HwKj)M8F1o+vlkZt{KkJh-i|%K9a(2=E zO`n`wbbrGqPcFKjhHH!Nufw%P_domOsYUlwux-)(By3xBKjD+_TXcU7zAd`H>XTe0 z%`dtaV4O-iw&?x}d|PyX*(VP!Lit0BP=0*T{kTuwy6CRLxkdM5aBh(bcx2K2B^W0V z?^twy5xy*ux`=)5Ug8t ze-73yx=+BmMfZb#Xp?ujZ#BN-|MmaO|L^`E_#g3q-e2*}-~Ork=l$QWCEG95F9sL< zRMO6F$^H4OSv}lxHQRVWQJpMY&1&*BvaWq>U06|Yyhz(npps?wEs5VIvYl76A$@S! zF8ff8A40Yx-+20JmWCZyvrdfLP23*hDoQ_@c}qXew`<1k2<%y0YfO14#@#!9wr zek-A7Xck}Fa<7d(^Zxsi2^doaKFDNOvta=3GyA;ECoY{k_1ZG`3pvMG73 zNTTS9A$p5Y3}Y9D68ky89kLIrF~e1;9%?FF`zhV6#1p}^MMh;0LGTLN7R zDlai4t3jNo1hKnqklMJBa&uocN+*p{Dm^hQhYD=q8hORq4VE_zX_435n72*dq0myf zN?8}LfupLbTDcX~w?4HE`AVo1$eSCH4*=O3w&{bQhAm-2{*!o9%Vh;pd5!sPmsjpf z#z~)shSEd;9U|(G9L9{FEu%ZJ@}qE6jDjR2%0s=I8!6aL-tA$sS9miFmxU)3K93N_ z(WFHCY>$fWmWpK0KR^&4&+XEq$KOkRzh!6um*wZ3T}gII18LmZkIl*_rfd0JKA0 zUpDFsO#>R>c#V2l$wn;EDIqM`jPg;j1nn@STpi_7vueRp!s7~4kCyQ`8Czj=e#eI| zP)ZwsqciEMCwA1N1E^}9_0XB$`C&Y20Lr;So(&gPX3}Yrrt`ZmP-8V!QKd*v0hVqi zog&4EQj7qsp%frfe4F6g7?2?)OJ~yORIo&ia@tBsVaVUG+8lDPa;@xC)i#sPk-CNW zf|+t(R_>HsuqevKkO63j8$~|D`3UKnDj>E}G?5W!49`Yp(ldM)vK?a!G7T2BFis+= zHk1$4P<$X+O~}=)n5x)E>8ce~ogh7CkcLcDi(CyW+^Px;s%l*I5RSBv(gF6bf9g>46{nSL=T0H3***>W{H3H-k&7huUKOKOwwzE4e ztCSQUI@w*)^`vb``V=*uO<&D6D{Un^U}?9+4-?tlSF@nB&Lo$#li59{pJ^vk$?oi+ zC7+1NLw3l%Svw3gErY&0ODvXV+3$X~@~tkOr{RvP*)~GM;m)hsc03KMrLl0}YBou5 z$aKx!24W-}yqeuYq@+f5OfR$pPn0t0BjAYvCTgJ*M8^>NdL>L7fSp08HcbJygOG@- zw<=YdWl}ZhpIxTLb}NJuyLDZ6u(7X@)Oocigi^&ywUCvt-%1)SO1jHJh&!rxC%?6# z?AXf+*VuiSI$X$C{M@@7ig&y91F1? z)#*-#!0%AF=V~TODn^x5Oe9m)Lwa6nqggM+&|~VGv(T zKZU&px#$F`LhA(kJ!uQBfVOau-dI6UR2_8_luagY4MTgh5THX>GZj&_I^AeIK_3@9 z8R($Y!|o2Z>Vx&LS=c4Ndf1BPDtqOTehKM6Lq$vn?0P&QXzB8M%f&Ls8D^o)eB2n|KR->q`urE1 z#HpIUK*iUy+Wf!%?DH@E%g|KOSm16+B1i$A03Eeff`n@+V&Yr$nD3 z{OYIv#^t~B$A9&MKS=76gn#{C{mj4o8Jfn`UQ}a{|f$Vh5zIDKUesl!~as@zl{Ggg?|@18Umjmeo~DWnLiiYb&<)9B2$ZW!3}0dQao)!l>s_Qsc zUB|iVI?llgs}Toy7-$Z0h;>S^$F$FBs8ulSrNS?!eWvh>X)hLjG3}=dznJzy;fHCT zF1#@9O44K6m1HS1rlG7v^*?iKxVAnvvTc3r8ou=)tYI9aUP};;f@Gh$b*ywz2wh~Q zTgOVbj+Jg5D-np?NXf5>l|ED`$|H}RDtskQyhb|3>F70QHPs09PHLRQjq~~H>X++h z@lKpSr--NW)vu%$e(K!0!w8c@eYBouY1MiRlB8$o641oKbt{s4=9f#%+FUn9BvVub zb2l8vq>WldQDpV}{Kw^~2v)tOmi3PpG2tp}ro49(riT!rrp zqdRXO_R{5@Vro!bmhSZoX-viM9`kNnJ5e7+q7%70t`4f};IYdp>cya0y|WWr^QN^` zi&T2$ma4Z1x=_)*td5@ksautHB1$tBLxKKkiC&AoxV6vwi}}Sa6wz1a{vjcotGy7E z@2NaJy_6@*)%;?s_3KHJT=W+}F|mZO;k z99>9A)E$)oh73Rs=w;BzXk_YdUiD}54}9=a<8GMu6+j!46(eq7~poIO|eBxY&Bqn(fT>sN)zJet(o86X;a@cTnZ)`k)5V}Q?gfmQ2_agS8ukONKt$zL&cD& zwNE8;*2Lk_5=d5Jb5?!plg3x6`qC7Aqn1W==LjNW-2?$G+pJcY=^sZC)2I;MB~~*N zYqzbRPkilSg6M(01n>L=x(GT;J!Ov~fMw3qnKDvlj zRzWjCS~<9pN}?`2Op$sV$ZC3WAguDcs`@nQDrwJw&v26j5e;c2RI`e0g<7liBTaa0 z%L+ErzaSCnhgthz#lcqCoK{;j?;`@4V^yI1#(En|TDE%A1H`07qG_q)0-dF{jJEK= zT3rOfG6AsUXLc^B?w8OhOVBqZvn*t{r5M6tJqV_oS`zAm7|5r2RGFth!7$SlmH4Uk zu%-lSD#EgYB082X^2N}x<&T0#WGPWIN(<1_>p@Qo^mGJmK!TBHr4;b2m;z;k1#F>d zum;fwmg0}BFXM>Hpds~Wj%8SJQ&yZ6Q50v{2f>oPB*lsxM5QQlZhet+Dspb1$boVO zSy7Z}s0^Y%SO(<_b1P#IFUnB-@%3dNSJ}s7*@kc=*XW8uVB}84>{fJ9gn=3?0#GIC zRwIMt4x(t}o`^*n@M&YKm0px%#TTR-tUV?|iG$Um0gh!@aYw8;E21dQ zNErk>K#Fm45EVoJhl+)-| zX&)n@ou}usVfBW?OM9KmlKCUghGc%~S*^D4_u{MWnM*`W6cN|%e}+&ahF;$J%q4wn zTvqB=M)hez{x8=p(-i)%q>4Rq`O>9JQs`~sbA;DdrZtJ+o)BWTDKcnZJ5 zxInNg^LKxQpF7D{ncu>13e=Vssg*)R5Q92(NC7npNGYJM0_s*ky(}OOA6HNbKL5M! zVGTId-dM)8Mu)6*wWy}aFq3Z-1g!|Y!2-UN1_2GBOoL1i(AdbdN+1vjn5LN`Fh#($ z&oluIEKDOEA)pa}X{k8^l%B6vH9UV0(*cH^46&LA-^(od$5%2h zea3Qmmc&7*_(2lw6Rb&G?5 z4ydXppwfALRa{kzB&9F=svJ-qlN43^RiVzsr1WuL73y)pJkdpX%6g;GmPK$DL|f0V z$!(Alh@uXusMe*r*TR6rsGZlCfaibbqlxB&ieVOYni=IU_G2oFN%Ozmk6|Knnq~K2 ziZM?<$pTy(c)pAYNe^P$gH$OYSb7=|=}VYNFK61zSt)Z`dfFK2ORSP!&a{`aQs%Vu zM)iI-9O*0bLEliMuPm9EYNW5A#u`_oui%QoqtU$~e96feTmgqm(R5Isj6?4t&rwr7{55s#xj%3TK)_DxQ4df_Pa{v zO(xamD!uPksr9@B!8(*BiVY3ujb6%HFA=I_u(eca_@o@_rKB*AdLXXZ%R}5S%Of~L zS*_PLOi8qQiJCnSjMFTU1h(FbWk3)bWorAb2Hxs@FJ!h)Ok#=DO442;y7Mr!28dc6 zh}BAd4)881`B}mw-ALqTv*4%Nz&bAW+0Uw{p&-HU(_y?}v!$pb$g)IH+RM_l2+k(u zfVM29yTr514^C-`XPKM0R>ZSj;3-*NSMNRWuq2`o1(=#+FRj4t`g*5V8Gxip>Cs|z z)LXVP=~&EU$@`mIpWl$A7b`mZ^+LLwHJE}mn1ZQe!WXwg%sCN5k45KXbWTNQIyy(l z%3|^;9A6y?$@cD0qSeQM7p}zZzeawIiAuu;55hdW9{}|vTo-kS-11T zu}0gjV&tAr7rTG*S+q9)I3%<;JvEblJc-_uOg{_nV;rq2yeF8*7T)7C=__7o<9u`` zec3_`8*Bs7;7x1)khRl<0YaoJ)k-^On&^0ooxemof9!{>i)0Jy`bc)Lh-9UGFgpvE zNnY&yHMDz_rC(>}F@v*8Q88>=nWH6fv>(BebC*dbCc?SZ!VBkK>2vPoKIgt*-jZ|I ziVtv(UBr@eFHzM6=U&owhB)W7dEMLoGuA=x`q;Srw?6hp+ke`STE{(TeJ<4&V5Hf9 z-M0W6xsjvoK5YRu@{USdy9@Z54N6R&%34};lkh1RvbHrx`8(OLCL+eh2_3?t)v4`B zvgJyw*^r;FTr)G zm9=}=?1+SFQ3<0<`G2>cDmyqa=YyU`?ic_r;@oWUCLK& zYd)nBbSsI5Ni%O}4XcvRJUpz4X=N#Q`3$?1>=A1lwUXbj@5P7v;|C20ZBJKB6W^05>j_leWf?fzU8RX5TCgJ;V8<%eBY*}2J?OUQIv!E zzU!zPkG|!js1A$!o}+G3zPtRpwCiiWcOP{Oa25BhM;%uaU=qAfekV6gatV3 ztuLo6ppzT~PFr9{44klYd5V7YsH?}g$Bt4Rmh^FHL-UNZB-6Gz>a=sR`PZI8aw zN8QfWr?ovFoR&eg2Fd`#P63&Su;q>X^-uq>Sj(`AO%!&(*}rDmxaRZ^i`ML54;-dp zkr~CwT4e3|(?1;SCi#s{|7edLRML3*r)sAN5C^u}+1e>j|5SyDPbBYl`Uj<@4fr>9 z`bUMVIsK!E0g^n$Ryh4rVM~6wb;RXg{1EfN{PV+{9vw?8m|wGi<1m&DJ~>VEULC19 zy-dR7ybjc~4x7yGb#BH5ael9(LopC-zrAEayW*qC2@INf&S4Nmn{YJ$%)zJM^ z5?Ck4nPfE^XM$}KobhwoC>o-9Cnc8>}KA$@igbbRvSzC*6&@) zxAE__-B48ua)lNHXEi$z$vY<9@=4A?J5Y?EF*qI}25AY*lJRNE&Ll>qFl8Gi2Au(S ztN7x2$OMNzILng1`s%BrXPJp6I-sG+LX%_>WQ)X7F&w_Yr-?I%JYIcuCnuWOv7+S7 zPmxCxW=@+}Q9j>5%DAATgBx)vN~b%t#!wbk$*bo9wMn_PY(RUDB}#3Gy4rd4J&wk8(NH?EhMGp8yJ%O$yNeb?*t_T~gtjYQ z;<2A8jf>13VVVJs!z*k=&`@0l7xvBS!V|;p7qU8VVcnsV8lO4fu|sPME`S z2ZDeY0fG3`i$Wki^^*{Y?;t)1#79pq0`cv`*9uL1=$O69V_iD2y~)WgJtiL+@Yc?@S_COH8ruQ(Qc^qapt+Nrc&9`d(vzDojQ ztn3MlNs4yg`8G?(VFJ^Tz?h^Qi>x~yS@%ekluDG8MwFCxl$1`Cl<_Dj6H!toqof2R z#RSHh;W~k7hfP$l1SX1(1SX1(1SX1(=!UbTlfXpLk-$XJi2@_hk-%_gurDyyET&_7 zI2frsA}U4fP%t`+hGA?e8U{OxN;363AoqHKX@+rXR{~Qp(TM^>-w@?TBEwB9l1OB@ zr-)A?!}VNz5*cp!;*-ck;gQI+LyNd6D*PoX9AWBI@K4#=5}Iae$-)wbq%RVRqoS2V zx92R4B!ljP@d_FRM*@QLn8p`UEa>p5CdN<%RZAvc}xi#2t=_5JalRk1A})FR@>yoPcN z^u%v`4D@tS2p){U&uWG>h#ZN?JIG$=+(oTRpO6k7tOr`-=ej-My#;0bE32s`C~r*i3JD<{q? zHYu&zx$blhHZsho5|mvqV)lNlSFB$ji=Z(%SRV_2*uW?e&?#vUz!3sEOKl~qxCdJA zg17lApX4^H&LA+DUeZ}$?u$85nnOzPZ{N=DgS#ItoVSZj9d5k&mU0E1m?#;yLy(_`hM`6Xt-~u%HB%RZeG8U|7piMH6&>Zh zo|(|%Io{8y3Qp#OhHHHbsM4`UxiFu}h51Y_%opWC>4GK-7B{6yf%&F2Q83>TO&%ma ztp_7`FGiBd3p*v})63Zo9q3~h0m7_b@#=aAsOBEeGBm)|%sSdf zvt1TQZ20vKYQ{*wYKJZ(ljKZxn_cs@9{yAo zlsWggL5-Z9cFy3LhxNGJ% zMlXatvST6}6u~H~gd&Ph74H(eKO8TV$BWl2QdrUOOUIT_X5t%In;S17TMuOSe53III&Z^5m4&$j zek)-LS&D#O!=#6GoP`|^yK&6zWfgb5O^=~?rPumN5LKec3+p4zp311*f|hv`aYR^@ z)*d)KC|YP(1uf=AT4IkLZqXM*p)fHb6mDkOL)|JZxR1osY7+apJLODwgPeoiuAC#? zOwMd~7m8tSS>vwVia6H2RnGD59ywFp+vK<|vk#5Q_R48=Zlwvj=c85C&N@MH_`|-`<%fdc< z=*`d#ci_|bD}>we3G~je7vDa7T*1aS6&U6fI!0qwGY;`M6A+Ix3Gp}q;vqt#%>#0FXLm1W z_Z&{n6AQ)58TW_J;D_Ah>`)x!K=5*QI1Y0lc{!Vj109H7&bVcKlJt_FtXIGx=Zxh^(m+;u({rj60ruE=z; zI?E#4#q6vb883EcA+lZ!&vurBUnUfsRuud9gxi*~JyrqY-)&(>WE_qdha<+}h;cY# z9F7==BgWxG#^Ko=4lp33O2S>?R(w=kxHIg=H;He5*oAKb-@cIH8^?D?=;G_(yFCPa zZG3yfPJ9h~NH4w$KJmw>ok~`^CLOCjipM42r5Fuyqkw$WM+te(M-lm$k23OcABE&; z35hb$Q11bzwbxt2LA<6tc85cFO{47!hw++H&%z8|(-z%u1h1)y5Z;8>wAapX6z?ji z1s~pwS8aMvn8o*W*umxkCroc!JABZYfpYl3AqZU|i~~-Mw1C2`LZ&ILx?$_IE(g|* z#m=#}$Ge2*^D7@pmWZq7&kwa)UrISj7{{qK`frxE;3wfL8ffljRK{49X)(iz9PrzX zNb$Ck{}5}vetT9oVk_)lJm))Y3c6@Qm~%^?I#o#G>GB`;MdMXMypJYxfW7!gWzL3x z_fk>X`KW8K>~coYAn}q0F<`~fox{mzJ?XEo@0(KAlwGEiqWLUB`5B+gfgWSp{4>JJ zh97B1w>ANPv9L^lX3E_=php~uQ(NxBfdKfW`L~?~gO=6;Yo(k(S&xii-Z{Zlfxw_2cJQCF*)>xIV=KeR0S&AuOb$Y> z_5;Ti;-V;JRJM1MUd3uLJe<`zVZLaB5YF;BR2gluegOxOp^)g#sp?b#Zu82iw*HVt z@YJtSoOW7vuMd9JZGflIF#uT}?%cX9uBl7BkP!YU+*?%F6iH*gmu-=~?pVjZ_z*-^ z8CEw0OQUjxC^01M`YYEcDcct61=M_LZ^@pMse|yf(;ttEXxW~v50>q<60K!>&2^V) z5#Xr<03I~HP@rL3GGM=T8??^roOawA@V#=@l>$tb$iaqE_@NY*X{{7A%2I2b3KI>h z6hir{p2pYusWun0O)jKyOm<@korJJRUCEh5rfl{{&i&CaMq-yN!I&vi6?mHMrE`H< zI|=fpW-T=$vsBS!_o1q|Y7}O_&(TCITb6VoT^E$Snbe@pNJtB^3z>wplbN3Fk_4ew z;<{RMD)S6==4{=%iiMXdm)n>K)QA?EeHoG0&!0ONJKwn4&8(0m=T?wlCnQgM$wR{Jb0|c$tWj)2^x~7~(*fOv?gYd--3H7-J!ZPC zmao-qHK{V=RH56VvK!ECg3?O?dN=e(4uq z`N7fz&NX_?`G519&;IJq|I}~%!cIF$S(*Rg&wc5i{9<7f=OrchC*oPs81^b_X;k38tYZ?Aslu8R$;u|qwe1o-t4IR_jvPvOV7!z zz$t(&DakHv5?heFSi=`24RbbbGvlPqZ69SB+&@>dFY;2^mkcg?(hqq@f zL2qdkG|VW7wL02v)DkU?fZAw@D8#ZU)m-8bOQ!9_lghwdy4d$*N6(QrorEa;!4>MF&?qhZsnA?xO;#op0sSHAUiT^YDHp<>W8T zk*`!y{xb7a2xNK2A{ZNX5VZUyXd1$2+Y^YN1;7wIuPkh<$KoCs( z;pLc(X+OM}V3YRK{tGtP{zIt<3%!QX5pMeQ^%ADUt*`fD#P+`4ixHE3y%!^H z>Fd21v7@i|V#H2lG!I?6kJw1QM%`!oK-S8bC!6jo)LoTU+9sy2?%WO3ol-1=gu`9x zYRLq3r%0W<FHI<#UOx}r)@I(i zJ=6LOT^2Rev>K}RYN)CjV*HG<)TnC6c*2@izlMfl4MDk$x5PDH){wqYLpS|K4c+kD zni^79NexA2H)9Q{W>iBxJl59`=P1-6(P^`(3X#SFL`RDgU|3}p$2uhO^>x;ewsVUP z$*t{>)b}`bNRAGPNx}iQg)KXr39Nfyo8f@lI^T(&ZS40=JbP)rdRhCP?irm-IN-MF zFv0=1-IC*(#Bezo=94lNMv7|pFeDo#dLEk~7!uJ*hXd{wvV;wn&h9iA}6h;eOc0E!4cWd z9yNo=(Wdhzv+``^4QFgjmDz7un;qN5+3k_bQ^xW;VqljArssdI-Ub}1#8iVM zvT}g;SF(L_f7%-r`2L1Bvhn>*pB-KUiyZgxN=uL->af|YR8JV+ZV8y=58WVQC(Ypa z)*vjm1eHD-C=3JVz0y~*eNi$FSX;V#CEOjua@1znI=d@2y!}Ocnl2jAHWj_SC|bs{ zGb?(h**%}MLbqC>TU4kh`)fYCNA6GbDEvvIa6Y}v11JKwtpF$NcNUZg`$+?|wFLB6 zd^RIMFZ2NY)yS%Qj7epCUCHi=#2hi=4#vQn6j%ud3IYchfNDA#)4W-#>5j0gNW)&? z2GmZbFq&x=2-zL;&;0p!gW6P?rh^@DlF91(Mzi|9*^HNun(&WVEl*89a559 zwYAYKh;Oz`TP*pgB_Ffon=H8*kIz&X2;6JU_`Vpp-vVNgnjTx^umAw8L@i-j5B!2&_#Bi_ytYnA6ol!h?g;{Z;r+>p< zWBT4gYW5dWb625zrsse8$8_@J?pPa#BKoD&WxH04`Nr%*c^?W#!(7N!h~#pw(HQP1 z;M}(o?k_)05gRq!-s0<>1w-yFlXPGN+?SoUjmC}5RtH;+`&*3rqsIL)d^ z0#lLN+ao=+VB}5=47V4Q?h5k-ZAfX9%;{J$cNH~oa3#E{ND}S|(-uqTm|dXh=>dTW zLlo=z_`4+v;U={x&BzMxn7OU z_23!>y^;;K(6T8)znbfjlDdAArnw%A40}L4x=E7`Z!UAn19u-(;!p^j922KEhX+gV zzMgJ?$&w?O9LEj23UNBN5*{d1=ix1-cW+F6N0Iu@BK7{FKJH%$YNdtr3Lp)j4MMvB~OVysVGE zHPEDguGh!>ytmq@ql>LkW_oi1er+%T+!O;FEzpU9aSMzUh)x;V@G6qDt03u~e%*z! zf;Pr*1ywxCW5UWv*9zNgAaz8JlD8`WIrc7;+WdGtTqW;R6z5-Kv(L zvBQM%e0Rz7=RLCqn$V|vZQw6P&d(HFkE0(ASN8~nTH!>Q`A2=mithoQN3)^9#&tS) zV~=+Xhx@#vB6|&fs>i2TJEH~4V+AKVkrX=;2%X!E&cQ)DT`+_0k|~Gmdm$4H!#@mz zqSCQrXks~I<)RFG@JdkwHMy(6XS879SRpl?0v~!Vh=&gvwd|0W@y-=ybO+pzcxdd6 zo>q_&tD3FS6Z-y1lkP3nVSOs{c-(kgEe4J&rLb+WEOuT`=#3U-j}^FeB2K(kWd%gh zSL%{MX#Nca{yiF*%9JFO%o-1NGC zQk|Px;O;=_-4LPDrX;eX_8VJo#67mxvWY2;wJ<7O{<6*)`E0T|n82@?$b*qEqa>S* ztz?~97nnOU*Wm(h7hkMDSQr!VC8E&c`)+ss)gV}>IbK32(QK1% zAKypkEBNj(SVjp?jn$d5&yNVgZ3aPdjvguqjp%pg>*TxBAjEt?dKUdNrhK;(za?fU z7&A8CB>e${m*AVmS1=cxIr};~KdzkniQiu295a@7=7&jt(9&1&-D5DyGHb$hR5|Y= ze(TyYXWb#omJ0j^CA!-(s}2w2+qSMC)!mz74tz)OO|AhriaAnU?pE!`Ix9)&_r zIx53(qeKbB7!1+9ab;1hX#r+zUbS{FzCwDaa%!y;Ywf6|pbkc39n5NfprXTVzkoqQ zJ8@+jK0Jc(l+HV?dQJdMJhd!4>RB?9INplQR}-zN>3Nkzt7Gg-=3o3|l6#hb>a5DK z^u!Mfb}|CVxBnc!<=5Dqs9Vf$6ftwlMZ|w9B0`y>504c!UBrEwD;kGErzP|fmIt|8 z3+|l)HG74@P)bz-rpJY4w1aNJz|J_QSA=f@PO-p*;)&P2kOE(QTZ^w^*5JD~dqht! z=d8u9A?zAA#E!RW2C-9c9d@z2H-?>38!{Kx=A_A>)uFl%R-B*$kB0F{HoI;t`7L=(4o#DV+w)bkI$#FWQ>oh`>f-fRcWNb zGA8-2+50sz|BfXF37mwi0KpLhc7z^@Wx!Ug2utobkU5rfBEkgp=ILM2Yez~hRCrel zqs5i=MvE(Scj^;3VUE$_3S$NfMWe+8FDodc#Uzy9j1~h0zl;_G)QlGM(riR4;IcwC z>!>c4FZ{@?^YUR=l1#HMQQ%P0o^?7&XVEeMQ7Hqm3&An9_(j@=(-sz(b#?hz)0|~{ z9^XBF^DO)F_%L5&u$u}TO2%h(Br!${cDoD+w%Kq{2EjI?3j}5z_n-uO=d3eR5%>5V zv+T7KhrJntZ6+BGC6lwxY$zyNu(@j*(+IZNg3uSiHnR-`W}TT@IN)xZWgDH;_xL@t z?4Mh{V6g23;h|*rESu&jwtGu3K*r2w(n?zf?v}d~~Cd(HbJX8=>!2YgT;T?>Lc6kS5 zqFvtNV%85f%^0hWdG-$K(a7vDx(Z_VBX@81w00$#Nazbf%KKcjOP!t65d$Ku`_j24 zXvT&ST@9N@74%LeV;i|R5Go~>ReA?P?aWqf;6P|RM`{N`c^|5OAXInY;Eg>O#4dGl zZi*xvA$=VOLMvb6fl!$mQDLSWs{^;oM37FJYU}?TIB54Pt6H*(4j7jQLh0UECf6}P z-OA+1gsxU{RBf0}S1>y9#0gA+igXUva%xR+wMeU-k}a45+bHLHrs%{7K$C(g2~1%R zlf)dic&$^i)vu8$dc35^l(@O5${si-TQ#n*Q>fS^_AIir=wStiZPxL?jyiIp_V=1# zuxB8_(8XO73@V=^XSTB_32`=Hv!=85s3W_DQ9|rc;`JvOdq*7yM2Vx0CQ5XY1*55) zHAfwLP_2y_RL-Qw#B`|T*~QmryGj)WnS2omkrt0S4mQ~|BpLG0QOCi9j#3qV{Xs{` zRngWYQ?Kt3HRcZ_e)W>b?+&VfogW1EF|YqP~c$0(rG1P2{oP5s7!_mV)8yY4zw zPfO*D{W_(q9lH4fWN6}9i6hVt8RkypJJ%$Qb%G1zy}^;piRT2 zN!@nSs90{6PZSO-tYyyjVUgsAbdX^KEO9XYc^(+{p$8>*3?+Xr*dB^)eb0bN4Kuy0i zgZ7i0;t%b!&dK?m!t9NO&BMlzXTIjv@8m+MdAtC-=0C-61x zn*B+9yf96=$MNyZJw9E+=Oqk$kK*I`UVJAIk5zlW>Whyhw_n_*ldh{ZGdP>jPWRJQ z>qRYMpOfO{{3`>4o!!H7c64Xt)VkaQWaqB?COJdhqjDPEH_K^vXXUiI_sSXV-X~|I zd%v8??wp+M-CWMr?%i@Gy7w@saIQPA&@J7!$f-`nd&&`kX zd*?d%clY53(%(Pde3td`gp~KqZ{YXd`PQ@HAd{X;?D1@*K&`topabgw4N%O@*l-v$NXhNiFeBvNBIHE(-PhCI z5!t)R^dK~dD-WrRcvW_sXt64=D1FePIazRD(k6O3F8aS*XB}?dIAjm<8X{D|odR`V z!b9xbG&KH3GU-({GJ8}i%|utB$7AFZ(K*dGhH~d=g)bruS=hzJ_PQ>zWg%qwbC}l& zD4_G*-Ez)!Zop zg8R>WceC8jc`Tyf{v+QVmHU#%qzdk5eYYd`Gh6|b`?o#K8uvwyzEcIWsL@{ZbN;*ZO_#cmjX46oLWuy+!u=3)K|s^2h7h?hKzP&H&7 zT~d6Gez1iGYgryn)RC&i-OUU^!^>$w`(;oGkS6~XF0uGYLy9#iWBUH@>q}LZ)6cgq z#!6zSEA&F^8~j_LOwqj#C*#abF<$re>%@n3P=6;F{Wp=fU++0BhyhZpeNO9PnLYn} z9NH8D`#Z0s|0Y=SbrgZJ)yIZR^9FYO#R`ZWeQ&9oKtD)x44WP?&4G?VM?`fYtsoV{ zbp<+uu$lYcs5u2rgiQoO3_KEUAut&O$HOFni5NH*wi6hSfw{1a06l{M%!aK5+A(mX zxFm014u%Q76opQ6q*epodj7I!tl61NE{6Jk_s8hv_Pal7zkkGjKWe`}V84IZem`Qr zm+kk%_WP{;Vuh2um+bc$`~9H(e!zZL?e|qw?SA(a`~7YE{j&Z3mi_*w{eH=QU$Ni+ zY`?!@zyHa8zi7Yz(SCp3et*q=U-su-`;S!u*h5#zky+WxfRomP?v#5FqhmO9tlQ)s z>28-pe+%w7&&6Jv-r4%KW3gMK)3#1p2G2-LUk+T0O*540otiK#% zZwy@FtpSaOxn0DI&P>(qa*TOdrQ&jodE@06^Tx|D4Li?{1^9SNkc@UY#)3>e1<5YQ z3`W@Hn866U95WbUmtzJa>~hRtgk6pqjIhfwgAsN)W-!7o#|%c;<(R<;yBsqZVV7eD zBkXd_V1!+c8H}*YF@q6yIc6}zF2@W;*yWhP2)i6J7-5%V1|#fp%wU9Fjv0)w%Q1ry zb~$D+!Y;=QM%d+;!3bTBq24Wut>+_Z1WU1ulsi%`l^0`_4Qq^CyTBq87h^C*p~ax$VvO!6 zmTSBfUAxfeD2geT23h*h)rv7KMro0LIE?8YV6_lned}F}(YNF^zNI($Hm1caXi<}( zyJ%|ZE#9CgF2)E8U7_va!LMFHt(}!E?AQY6Ig#Y0V4v8h z=zU_zmCZHQ{IpOiuCUaqW|+(Y&R{QPBfwMbCizz+KzyWtBl#u;|d5yz5QG1 zVYRkP9aLkzfYUn-Cl;J3w#2z*cnIsNmTFN8ilEM_dFLHKXP}055grM6(0{r0I2Z~y zE?71cgq9%)Q4s(#rsQ0r%D-IjiIwu3;KY-_-(Z}6tA~@eQ*Xql$~PRR-|XQek+~60 z)o(aXUlLB#VQl~-6LanPDSlAQlPFCl)k!JUjG)#?Q-VYzP064b#~mreSmsP6O*A{Q zsfqBm7d|dqMrlHATjNygk1{%p6sx^giuNw}YudZD5%eM|L7&{s+PjnqAlJ9~;U(6< z)C$+Pd0y?^7U!+!uh&3Z;0Kv%`=Yg)sh|}k9y|~wD}0& zHQW4poUF}%Lvgyk&9BGF+Wa>Zr|aANdYr7ye?xIv-{ytUb#2}-LQmbG&9h~>PMY3e zn~wmlYxB~G^dJnQJGX?+UN%an`XWj++=lxp0pVH!fvp0Az-EG#z;*+W9*dApMubj9 zFegedXY8FjLxg1}Lxklc1H-bAfq5A>f03SBqm3&xL*JR=i$XsQJlMV@&u)%UMPFz0o{ZFhTN0^Sszbg~GKR+JV!Z zUz~~Pa05=EMs#$6l@Mk{wPlAPScMKoXEr*=qVp&Ydxxu?ndFfe^LTWgh|Xz1*v{S# z88Yb#;?z=iKV!tM)9f>Ll`K!VCAzXuGRr(W6V2#1%<=5yE)kau-e% z9W-z`3ZN4n&R`?7VMk|5ka}R$5n_j51I#GRf*GY-VtO+n;`D*aPM0v^{}q2W_dN6D zPcL>!3KDZcENM%b++DEQ8`qGAzdloKnEq z4c9p0pz|C2#J6QQX<^3{cJn2%Wzc}HYRjNp{$@O`heY)H;IJ)-j^k^EN#Z*ADz-G* z#@7kkh|_z8BVj8(!|AILdowy+q;o3LS&4KuBAq&E0rs6p=Xj)ZBGNe-=?o>Ej~LY~ z2tEQ{+*`(X9N%UR*T{fxO}q}Q`Bt@N$cJ0(t(aMSllGF#5q#V2F_44!u>3^2X?$Dl zX^MULc>aR8DL_f-)uOcIJo>OaC@^$Q_Gm~Ahc?V;6``xy3T1pjWJrF+QU3x|z93SQ zz+?gE(e5re(_Jb`+uXOxIoRDJ=ke}sa*nX%j&l-=yg0K68qO04T97zxSLhUihI0%- z!#RzN;T%WCaLyoOIIasd(ONZ*tX1Q*b?QY-r_!VORGbNF0%ww%zzNg@&TeV~XNnrc zIYA9#>m13YAHg}#*f-V&_ki)KHn{(b?^p=1T5_d|z*;vxRRk9>@u?zYBw1#ZYwTES zi&_=IxdD7dMc@NnXc5cPA()_0tj+~pE@ChF3>BbQJ^XR0h+XwOH*&jT zb#iF6h+Sb3V6P(e`pQbg;Av`QN^z={r-_R^IfF0q=`_B`yHofgKcB!CIdKvnhUwwX zUVCiY3^ zqbB@@>TfVR5moi?E8uUK0yb59odPypyIujCvR$WuO@Dvm6fhTuZK!Gk)&0fnYhN+% zVhPuV*12P7%i88bU} zha34dR<}Jqb|YDz-|v1cebV+g<$sx%krV*%e)sD|fJ40d-G3|sz}oM=SOnN9+VB2T z5#SBs{q8r401u|@cmKHvuuZbxy;1~*6!=mRXe#iVMSugl``vF9fwlr)E&{^}{B{u- zQQ#{@fX&wZ?$si|2Jn8jT8SjEJG0+?pa^VG;DbeAqXN$qfpG;c6@g6(e5eR)R^Ztp zutk9n7l8={E*F8V3Vfsp@OJWk_lJwXb_IT*2*COM?xRKE76txD5n%Iz11Lp+Ek@3y z7?ZE*mPEel&p!F&xd*yqI?lXWQ{8g`@1Yj8t9iS&sychwSkU#CQC&WZaZ8=Ut&K`z z32xUBZ4x$GKUeiFomPK|L&;TOdG<@PMz_uOc}>yG^b(>I2I6bB24}Kn7MMLk%t`;-C^twrE>}Y>3Jsl zlel9F#q7m#G+!62%m!=xwyaa@r0MOIDueC@VVX14*ek7T-PQ~&H(B77ad$s>A4a=8 zLnN)(E@`UCu9j>2z&t z4Gxb8gMlpCK`b^^dCb_z#+F?d_Awe{0fmcQ$H@|{(lPNAw<2TLFpbHB7T*mG25+pi zhj!->BkC5LZHR{H9myx}ZpQ60YuG#WRPl?Bm$!B@&}?8i)lSAEpjCDFSWd-dDM=?w z9lEG$t5>>S!D^KvIM0tds^%{wQdYWq=sCHfhm>DPXaZ(A6%cmV{@U-q@W~{T%X6At z*5&-(d*M^VL3{L7vZLW3S79|A+$865=FT`LnLFb=!3-Sd6jN`U(@ec_&M@`HInUG^ zwW#NIaUP`w;^+}ooX4a(G@a-2w_vi3Ert)tImu`eXO#jxC$O5N48kvUdVs+vbns z_*l9k4q^g_?(ntoF{{L<{e4syz6w4rDB}};_I9UH$h2IanU5E5cam`Ji=Os&r?GwT zMNfOX)7a0ny!WD~z1?ZmF!-XUz1?ZmG5DgVz1?Zm!nC~iqNlyxY1OmJWF5>_g_*tH zY1Pz!(bHZf{f58jd1aHwau+=0ZZ*sAIMZfM2hV}b48`gc z(S~L0nav5lKqxIrtQ1yk5{u_nwqqfea#=K&VMCr-EE1+gk$UwG<2fza-O1W9Ff79$ zp&0|?IA+xbWbPF)H6!M}l9>AqBW#d1%-oQQWCV7=?SsgExmf{C)?M^UP_vxB*S>G$}zi!9H%rxca>h+ z-5IU?fV;I!yT@=^TT49sSLAC%smX)~yo(lV3Ia#Ws7ftjkG@Kb-vYiNnyQV)TM3W% z@JXU6AL2%%A=z~XOUKqoi%hmyx!Bs_E|o7TQr3q+CK^y`i5*yZ(bcJXA>*|kvqtn4 zOF~piwDi>%0t~|FD}ZD|Y6S&pHeY2Z39Ix)K2%@Nd{Vs-z*#+|Z>u7tFJQz_t73pkA^`D<%U zBtdMfwV|TcWH2i7&l~?@W3Cl&ng!gUq8yH96nvo-MSd16jOKv^iz3Y469&6fPu89| z3s`#VJpmYwS}+=*l^Ni^R$sZPP8YQaDRspKk!@rqTBN-GWRDqFO9+=|&>o3?_lYtWCZ z>7n0OC`m*=Ezyq#ZX^2r9->v0Un&`yx)qMF!+L~_Q@i3{#h5+Fc}7-cZ_zKEW?Hbe zR6O1?mf2-es;oEpt=dpD@(&7NHto(j261RJr`O9&;JGHs?&Woo9)7|H=FnhUGS zv{@yZ)nYgV1T$?`DY*?DXBy#8)gaG1F!Y_<$$VW*Xa; zC01nGERCkk7(ODdF=t{d^=8^kqhgQ6bs6OmjIzv{a5d9r3^C~))|4qbJ<5h@voxAE z+hCbx;{|K!JSDugAl2R0m;;}N9fo z!C9uwc9>7K#;jz3chs7XwT8KL(ozR$tb@tc-)qE&-(O_aAubj@$Ml}L7#G8m{2B+} zSg*j(GK>9ce$S;j{*#;NQW(oHF#(z40szPS48Zljsr1`dO?7>~buqEzD|62ouz$kIQ}lo)vx#5+quwK?>ZaJ@#^AoXd#rp^Gf<%$bkQ% z6<)UY*hI?~AKU%8W>Y~7C?D>ekRJfa^KDo_s(qS83EoH_X1m~)*+S{0Xv__LXN>OY#~S3ZTw9G8FQQ%Qb1p4MORyu+HzMYDM%mU4>c zma+Kd+>ArJ$u}{Bf;C@fhTgz@jT!Z2rqNK_59^R`NG(%{z9Td4vFMwgaVMg0YQ`Oh z%(-PH4G}&*;InA1IN-BfE+6ox0v4*cliYgNLs{?zO6D_^%x5T>FQTM$fDSPSB?3lq zU@;wiV8)V=u<-m0LOm}0EcFTDY`(`thY{LpfX06Jv8}DDV^O#D_JVt=iOz;hC!Ld$ znE}g>#=ZT{u_d8*pq#Bs^K7D}6mVEkUFz(NME+J?Z^@=Q%BEL+Z8_aSZR40K{H-iO zGfDv@YwZ*T09}Kyq5vnuVOEGsK_g34bVD~B6Se2-j1So{anHF1mi4T~yY3nrSqxOj zoby?y6$lkJvMP$AYPe{-c2A&Av4cj4zAiShbZ5)p(xI~S9W94x_vai)=mJ;9b_eV6 zteLaUmiul)xSEkLF)F?qE3RZmnffXjs;zPeS5um?n$+YNLiI&q45iLkE(1@#%x(?QYaO6>Uz>GVH4>2YpYYk*^ z@<}37v!{zfBJm)fbqHDvE^Je!18j793)JKY5iJ-^jx`3ddQgp(2368;wW3^w#jDq- zq5`(Kp7fGO16gZphJBsPgXmfVSxy)a7|6oZ6Sk&cUm;Rr=<6|%B^FRM?xt0vU72%m zYM^Q$-l|5!Dys`sfo@7kYI!KV(Q3ViQ6sXO@=uCl)$=?v7$eWz*dl@lbRJftdP98Do%Xj(>51*5+fRBv5s{Xu)UTfN(HDLOPZR=`lv^l^k6XCdDKJ;WE# z+2eIleH*owQP@La}q^Pv*h2&UF&BPYXWKpYySh>(DKLz*BELxhJ2D%nnO)| z)mmMfe(G{5SqCU6Lt7=ZHEk|m|LJb8ZQ2`ty65Jfrs;QYlIy_QPkDVQ$3!t~D3Q4% zb#Jn~YO(dPifi4l^n=Mwi#W9Q)AdELjSPCNa|nUe0{S7JUe22cqW0JkMAZ#~e6g#B z`q@A86aPvUbTK%P#-y~(ByXP15J;}#@rU{5<+p9`S{EZB7Gu4{ZlCi8`mM-cNLtU2 zCu0}AOo_dOBCfI#Pq(Gxnbmw|iEXZGeq^b;A$MJ0)+fl6MYNaSHtYlEw3pbD;IHQ2@FRr+tk&3Bt1f=Z1H z;AWz(TqgN$sqbctw)7kGv|H14NRB=;Vh0oGAC7rl*2)80-|2ZO-w45u(mA&4RCbv^yc6OfX)vQGqnK8HyE==ijUsunxsPw8qldK7f&s0{ z5*D-&7pr8YPtQv!t)?=<$DLo_Wt%KdmxSv^*y6ey`Nz@)rL1dVYI@xfh^IE;e#^)Y zBRc0!f5NqIvJK~}Y`%Ag1+JxT)Yny|_u@s5gCn^qbVtAlI_2I z=Tk-mK-5Ge^+rySShdsYjv}A6ZYQ6VD5|;rf?Lkt^zbmx<66F~rJVYLq_q%IPQvF$ zPcP-K{%JG1nCVgLyrBkXO`(==e+b6c9vE)vV9h)5V-nEpHzF)*fY^SA$|chZbGl{A zAXt_z7+Z5fzw?gB=9a#Usb-pDxK}E)=`fAr51r+tFE+MRQD?VP7szkE+F)0BL$^^h zWTq(B`C?nu<#(u|d41d2;GuE!Y@RYh@}aYx$j`auk#1$Y_!}7?t&NO~jMo%Ss_FRn z(6}ETM@y=~h*u-^k@40zX;3&m{}uP(@KAdrlCw9R>uv_CcGb}Dp%anlNMVdLocfAw z)!H@_Ne&Lfq4w6nz(g6iiVAISDMJ_sZf`CF4D8#R%77q@mjTNJHuao+=DhLncB;OX zH_pMcSKw(2hM`aLaJGvP5-`p-pFoEp5gggm+n}4D7k8fH_%Tu*Ivh!Hyn!(KZuHe= z78W@g5KRv#?}=d!0nxoafQ!^V1?|`z$P-!;W4#U3;F=QDGo#ljp?)@>E+E(64L+M$ zSq1WtX+jy>iBPfr!`6oBMQ)%nkvI-Dc1hb1pTGDm(kk;H`2KA3Oge{NkW{Dza89X1 zw{I~YP)zCw5ZJJbrJwCOs{efuy6`%T!8%2A|@3XcTLyLZu^ z>-^h5kAQg!&}hTsu=#``sMWX)?u+JfOuOL0V!kX2x zQ7jptV?$xiVHD0kz*X^Rv%zwLBZJ_W&WD!qNfsC+lQB8D^9oIpnjA$#03S=BKL5Z6 zFEy6W=Bv0*pG85B>Y&u9(qf??PnnR@_mt%ppptD?oF${itTYr3G}e~sr$E~4QB}#; z#kWxdP1J;kBS0#=cEV|RxJ|EBR~11p)dt%Qa@?M$!5-|p)Ykh(nTp7(d%vdUd z5ZT%TFRk??WvDDH5g^6B&HQt;CwC3Q3Q%`Iq+S9fOFC$P#%xpeumI>aDows28xWAR9^9L_KpT9cFGa~#xR9V4l3Ec6)9dpIsLWPc> ziB%Et@>_m{G1)hDosI1Cxg~l`7mCB9`B!wl#|7I((Rl8|>=|k+N`Eikf9dCe(`x;o zGMLPbqA-#<>*^W*xwlKYwGKxu@xNh`uU@1L|9tx3u)P~XvQb9MFv08K;HpQLf-Rxi zQw*G>S@T4-!G!9C^qslBtj>|}#q^==0yvnFsVbk_PvzGvV+p1QH%|*lt9q>C)%({M zOy!Y(!&BIVGnK9oXq5ST;L8X)3IJNgCSbq)a_poZR5Xvr%{X#Fb&J!4) z;%Ne~jjyuSj9r5K)1=K;d9%BnyZqz6)80ml@~}~dhp(Z4QH_J~*XqQ-$o=S~AD>_0 zM1N%3U#D2yZHu)7g7Zzvom)#Px z%}xyr^OrU*bvL3c8S=7dw6lwn?{1LtWS+qxJlf(Y4fZTc9~y17vI>J@j^}teTR!wW z6ZNp=`6o4sleR{dqaQO(Jiyu*qsh5MXAB5cUpgqiJ~{n&kGJR) z4QW(kB)vh6^^eYaaYg7Y# zKAvrlpF73p<5Upwj!UJ~rOS5MYfKi`$hZ$8*6t=wQct=L?>!UO$@UN@@g{D92b+nT z$TH%%BMUQ_YLG#s?xMof+_EivlsFPQ%@fnf|Igmr0LWF|oq)MAYqYgDump+tn5Dr#C$V?|9{ zv{4aL4L;GLrWQ5!K}Ab<{-5vf+&eq7v%#Ps|2|6Cx#ym9?s@sWpWk_lx)s|^tSFDz z6Dv{F9?ekf3}QuO#P(OptRtSO*qOwNo`_vm>5WQJk79d>T}G_YVpN&SYlL;z8}(eT zgqElr%_PL=If|kggia*HzEVQ-2^}6yC)7)5E`uEZZ6!L25Iu>GjE*2wA~YwOMTq{g z6Y5Yx5*}b*lnQ-Asnnaq6)G^c;HGXs{+{;O2QIj&xe^gZWQQuQ+h8tPVAM2Aago7X zOix@dFek3pU@q<^Zay$4Zoa`>Y)ssV0GqfIE3>IX{7PIuKqU?+64&qJ1U%xF8LXB; zJ#(X8dZbV}iU{=+njIZZNVMglAtLn95Vd+}h^##{*wf5DY{8i^FZ-|s-2x%@{u07? zh_`U8nRa@#lrSse5e~!)Kw3_3b2Iz8%DsB-?J9Hm;M~l%5(LC^cUPGU|K?`4mRKpz zb5~dS7(KU?STfIZXBYPh@Z4Nt?L5yNU1cuuo158KVi7&h?OkQA_nVv9P+~Pb&uv}h zd3uhNSl`ZbYgd_T0q15O>*91ao?E)gTs$~8v%iaF_Zd9cg!I0%v&?;el;2tAc0bDR zD$mh#duN%8`6$1u%$10g-&y8vKg#baAF1co&N8?DQGRFnC_T4ymbrwF@;l2FJvVoj zx$}?yca{&=b7Ln*uJGL3$!>g}8#>GL_1xVFVt9^paxx3gU7h8!Z{My?^x*91IBpJJ zJem7Fqi8-q7A!~4;`U($VYk_fBP{UQ*I+o_ty>Ugvdo6eX>4Ax^B2z`whR%J(|F5W zmLYc;%TAva9U9H!dT}fMu&9sgL@hWgI+lCIt)@dst*>dG)pQsclUS>%&uW^*cJWzh zyw!AUTGK43bsL~3$Fm@yjq2s$(aE~WTD>e=sSV#-xw>U_| z4^cg7ZI;{mrQG7l?W(QEh<>wbt3=#?Tk+kq);4@^t+l&!1(#XufPeONT>9wSCMeD% zYGzuS<*uZClNj5f+PG+#zHL!$M@1)H$3^z~zQLP9cVr)uLqZfe`A+K!A)ye>M@zMpA*Yxv$;Yj>%tZ!@Fr=os$LwcN8TcQ;Yp zX>E;=kT~C^+PX~`Y*TGVL<_HrjtelWDmCX1v>VVG^ zB1#&qdK((soe&SqnSMJ%-*St3G_UrpftR=%Sd)$#o6wT2NlTIss09G0F9P}&W$^NT zgPQ8a{0PB#2j>m3P@=@ZFy7lPnI8}i(D!D=dwGu>HTj7gH93zQHTj7gH93zQHTj7g zH93zQHTj7gH93zQHTj7gH93zQHTj7gH93zQHTj7gH93zQHTj7gH93zQMShwbP2{}E z(Lr`tHY#()nRgFMs!pvDP~$74V-Ruq%@ew2JYHUxm}cV9rQb%+l^bT z4&(3X(Ge-fdh%=FxCUlG%&H&Uww`jGD0>|HSU>D0X{*Ed3|zqz)2s{4Y-E`YOvX5e zq1U_~;0t3M5L+XDIxt8d7O_46Uc-)AMX3TQ8t~H7Cm^v z)}5bEimvG@y6j1ibuS-0DXNxJ^hpu5?$LZwG~Le!plI1aQ1mjg{tg6O>L`?3zNxIe`0fpUA%faM+{U z9!;X)Xp=H^+R;SVFeaNozH2 zj7A;OyXc)vQtYWalpE6Ue95n3GvrCwvdSGw)|xvs&046-DxE;7a)*+&<_=A>mg=%f zos(7WP_owCp=s9cx~x*m(HCg38CF`>BS(nvi#ep5Q zd2ETX$7l7^=jn8VWfiu_Isvvc)9$m%c}=O~o!4o%N;WC)v&wl**745kG^;MWOiPvX znykVW4VVC1V_A__$|`J;bpmXSW$pD@YmV$>7A0+fCYRF&h;1oV*rL=4ur-!dTN21B zY>{;WY>j0VtCCgNBI^X$8q2y&OEA{zz)67R>q;HICHlKIaf3mXb(N=&EHU{cw18N&e!qh>0a8#1S-%$1E(X(!Je zQ%?fEC8bRCrMkzlFXVQXH2#7vD3y}Y?WfQ9n#xvs+ zgUpNer#6q!@CPgtgPJt_UBLPWFBY_}=cy43PX~?v|GCURcrmD@Ut^>ronR9N{5^M8S&Ox7@mFHyDi>c#J+m8!eM5n4XmhS$^?FNKlR%XIhivc(WKWHV`(4E2 z|Hf}6(jlkTKVb4<0ZnbBpfTlv(3pU#^A8wQP>NlQmjX;8NF(?^WZ8q$qDDYW1oehn zC+l~M{cg73jrP02en;&0G3Ho$!~OQV&wiQ730O)LvCpR%&%6d_hu*>=cJ$5QEvvWe zP^HzR@zxdfDj1+y}(NUweur|+e~oi z0cr4RQ4Vgdt>qA|(eTza%OP~LV$-^9uouR0@fk=gN1Jl6!>m?DUO75EC@n_^IfOzs z`&O&7hqMEW9PH$)vRg!yrDmpSS*2o^YF3xe$0GFj$Fy${pla7w);hF?XK5{4l;gr$kz-4oO`hyQ zwf8_zs7`dThUY=#9%2KH&(77Rzq#-s7AFXWYj_@1cJ`@QV*<<0o^?)N(B5^LZcmzS zPnsSK4T)a>ny;blU_P-g@<}E6gZ_eDh1QFXgZ_fehSrh7!G3{wGUQj-amR(`rAX5! zorYJ~g4@U)F-C_F40#G{xzTaqifkivn1w<@I)%(AYxa;Qx!LS^1w#%Bp0 zXlyLPxQ>8nnZ^=SQDXrGE1=XEIZ>%)_QlhE+flD) zVKCXn8HK|Yoz+DglR+*%MUz3rSL*1MEMr_3-$pcFU_}L$44d?AeEbD2fxtFr1&R_g z_6(W{8eXht^?>so# z!OlM@bCOJ-%a*6=En9})`&@zZ>Uk@aTbP#Oot2$j>n0LeH=JT+k%Rdn?u2WMWUL?Q zFp!3v03%{1s4-G&lDGkJxSkpoIV~||qw2WWc4Bi;$GBLn+QaA?7u!Ls+_|18>e|cN zJw(4ms;aC@(B4KiXCT|gCFDr}y3GlKi}tiPeW4>6*x%5cz(52Wi7nXU>wu`Sm5kXM zTg7&~lA)nghT{E2dOUP{VMbV_aUueG4?6X^WT&&0b1mN`8p8x?K`x7A9V}Al9d+bkuWRLv`2+3oA0-E&LpMWN7*pEE+ z=fJ0+q4$}=KBvR~5&NdVWP^zJe^1z-@3DV^$Nq`W4EDJI;g8sVCa~Y{vA@J)f7vsG z{pEkeeqxCJo_YU#kNuS%`xiem*njaKvH#3q|1yt#T^fqszv7v}{^~zs|Cz!5)gJq6 zJ@&7CX0Xq75P#JB&xGC|2|W65)N!yr_s}seVR%36T>yB2a5W5jM}XW5C0@)Oz@S-7 z4S|up&HN<8-b27C$(GIh1e$YJHmj8bEUh$i9dNFQWitl?t28Z}HHKp{ESvchIP<}> z;aN~k@?|&p599!t)ad)MA$nt!2IrF-qckkHGatu1Q5urrARqH8%5R;Kv%Wq`gK#(Y zksKJz=%nbC>w-C$^i@s^-1PO|%Qb~#zdlNSDJGTbqcoyt{-{0*u;C?dh?4VyiHZ7L zz!QIuIa_cl8r<8tUsP29KMoWTY!?x*EVtDNppuv4-!dh5svE2^Y(rAg{60hO2QNoFqR7X*c2!n928KPN$Y;r;}0>avQ5dU?<+wq##h|h%*u{ zdPh~4cT}}|N0m+_{q4MW6ZmgL8xxM;MIlUMrZgaW9EUgWo*eIV5{||Zi^u>UEI1q2 zMgaD?tCF1`ciGSX=>x5!pmxbq>0H62lUGTiz>ivRk9+t%hSazgN zKNA66zuEV9Z@?^R1M>=rzmw~i+2IDqoqW`t5c1&E$njvNzwHp~ zIN$?}30$y1ic2n<@)mIkGm+VdK7=tlN19?=CL$+rCZ-)?VrVGG*gq8=JASk1xbNUZ$IfQaasM+eI^_6< z+vK@6Wu&PM-r7A$7evdyg^yoHV2;C+N5%xm_UJjF_+ZgP%E!M?@lhwW>h#F21k(+A z#8i1rk35iIxnsD}S*J%#k=N;w-G~4I8a)C@njYCB>148;pAbV+LO|R5PL;oho@}34Xy=C-aa~TCcm(gx>8C=dV zrf}5{N%ID|tsaZR5Vm_cR1j%1r9mbQSEhJQY;Tr1s0tKxC1Gk!G>s!EGGK*i$${X; z?lW~mYFX-)8Xp!aSdZlCXSm`SJDS`qoJ_P0SC9&V-vn~XDj$|*AX$f zyZ-ZIpIWa|HSBz_Wz0l#zH&crAO6@|AAj2iKeqqdoHuX<@73G>e!~~u_N_mCFS#${ z{l9+jsek|A9shI3?Yv)1cUgE)5}d;lXWURr2@L6=OKL7K-`pFH1jW0a9aOmAfsNsz z?)l)%W>WNqMWF|aMD$>_h4!_Nlop0_$Tm+$Xx`5enq}T1Eqlvf!}>gyTMSkzaWH)M z;%e~5#liK9Py4ewD!@73kzdU!k4H+Ht{R1q-Vo|$mQJwxa@F0Gm7S-ji1?PN~T2x8*gU_M(`)g5? z(&F!{MNM9yUXzPWm|AZ@d#5Z2Ba6DX7Bw}wf+XHvi{k8jEyoGsdumbnh%Y5Z0WSrGPG!j^Ff(|qT^ z{rMbk5XAc}U7tnMhbz+;gy-`asVg~^Cx{;%OYI)6bT0^3`qYa#+k?Z;$5LkuS2zcl z%d_g61D7Q{D>rOq0z z%vum$?o+Se49OtgFqV4gaOKbi;T1l0HD`zf@y%nYhYeQ_TM(}HsaJDGT@Y^^OPxJj znY|#qnp8NYH(YCUy2+;xMVaABc>$|`=0ue^Y^LY?EFU)G5Py{#$?WjahgioBsl&s) zK4G#YOh%rj6t&$aOtFM12>q0I1y`GmYBI1xqNP2U2>w%_p>4LhEp)Ms-_!LYpPD4OeQkcZ*NRT0(ZXQlr4lK4F?AOdGBw zga$wRgvb)2;W6H4t+05hXbDA>RVo4Y_=KD#w4?u0PJO^9bXWrB zMNJ&+@(G=mfI(3c3itbjE=%YduGB=sPM=V+gwk-u1cbQmQJ*l=62>SR7V-%*EMbfh zkaj+y+Y-k32dU>1rdz@o+d;dN4J2htC?^!C$~X9g*_JRyxNwS3ILs2p=p6?035Qz3 z7@NSCzVca?FveZ5vrp);gp?^o{+VX-zt@*Op8U7_=w|Z2$0szC|2Ch{O#XNIgl6*J z>JysD|2Ch{O#WMZLNoc_;uD(5f3r_$CjU)7p_%+Q`h;fkf5ay=lg&P#&`dTD`-En) z+3ORU$!3pFXlAk9KB1Y#9`FgxEVj!hG_%77Q4?UG_%+apU})=H%>VK z`E#y;L`5_CKkkcaCjZBLLNob4>JysDf4@&?CjV?R`QPK)GoJjn`RHcyzsn~ylmAwq z&`kcf`GjWj-{KRR$^RCg&`kcDeL^$&Z}JJv>l2!By~igsGt54p(2VOxd_ps>_xprqTtDg)8gVT`+wBvYneqXj(9D#( zd_pr*-tQBdnR2I3Xx2&h`GjVs+~E_Nnetwr(9D$EeL^!+-s2ORnR1&?Xkk}rRa-T2(U-*OxILRk8^Y?C_Fo8ty2@}W=pU^B39`*^%5@DZDXqE_%_=HA@ zAo9;Qlm9K#CMJI$-Hhwod_ps>xB7%;T;JsrnsL3&Cp6>w9-q*R>+L?F8Q1svgl1gt z@CnVhzRxE#<9er0XvX#ZKA{=cyL>`3t{?CT&A8s}6Pj_o$0s!7daqAt#`VKKp%K^O zi_JcvS%7Ww3C#j*qfclSU^n}OW&yUrCo~JN8+}5v02}cM%>wLkPqWPe>@lCvEWjT1 z3C#j*zfTx1z$$T}nfxE|?aAW#!T(W7J#hPcbgc*+BRIo=>VBUvL2G=%1nu_;6ZF_8 zOaPFmoZgm+{cM0@x6f4LxpA4~Ys4SzGu1eDTqe0I@lg9rHGUtLNghvp);?2BT8zsi zrztzce5RVL8J9_Z*C4*nXR1l6ahc@0MQ{2{H90pflf1t{e6P<`lak{y$$^Z{_L*uj zc3dX;pxgKd<*?_!4IIev&0?SkLMA3h%o1W+`3DgZ(@G2z7EIU`BB+O$0x>0GxWAL_ zJc`K^!)yi{!MFp;Vp@pl#ea^AFSX+ddzhd^UYsjYl;$RJ{?AQ~_ z5iy$6YO##$Dz}VUQ$le@qJo?Cfx3o>^W4wSQTP|g@$xC510$2eF=3OE8U^PDSP!rKVo({|^4>AC#s zP@}BY5-?wvh3@GqPu*_R!ZQ<}dX{$J>C7XRZm>Hva&trO$JC?1q68i#ZP1*{hP^H( z;|N3?QO>+y)Ws>(dUkTaxsIpk;QVtv+c}ZlGS2tKoTy@$X;ZmYQg2$)GOo!=OaK$c`yjy9 zQZG#8ffL3X!M=8J3PfSNoi|O#3Q(LFQI|8#^JG$g0}5b)rx~Fk{H$r&twE4uHa4Db zTXuWHd6mo=Tw6Mai*l2Lu^vt~{_=#gY~wHBhz5$#UAD}oW!p2nIo&g?#hdA#;ro(L zdGcw__6$?ken1&$2JDec#reFMSa~&X>+?FF7riJVj=%2)iZkITaM2I>yFRyR2A7-% zTt`(7IoVNQ+stJCKKdvvRgU$c(Hxyo4CUX{iXnMZ*PkG<7T{`iAn4B0NF_tYIPY-ii z@L0)M$FjN))*6$c@~k>X^0uJXJEBx)Z^#myfJe@k+H+Q0dn%0=-XSMfh4p{4fG_x)S)(L??%`G{P6^o<#SaRXqq z`dln`erSyikOauoI7^>dP2*j-*7tCJkLtH9*wGV0K z1pDL-yX6e!GMx^uKqI!lKAZAN4j9EOcL8sqZL)_rjR~M(GAG;X`FiI`I<)!A{QCR> zbKkYC_M~iFgc{-b&P7R%9-Rab7Atl?aRZjZ*p78JlH^D{jsuVPx&hh>Rf=KZaw4gn zVEYiBu(SGY%eg~h9?1;QS12Pi9_Ivt zO^6e_!Z*H`i;_i2XY>r{OGHZ~nR_40RKf&6=_`>so;rmN1+!L#YhURy$AsHr5rshE zEFV{}B_)bO<)XqAI&oq6K=R4_h2i~4uy-N6;WI=F;R5(9H`iUe(CIK|LRT+zTA)nm z3X!XYMuLT$e`4K67y+dOIHg?die)h@8k;y*Jcl2(RZ4v?)52J6@h+Z36GA2~Kpt8c z2pDh_KcAp%2o`j060uXj#u>$%!Z6D{)Zk+mAVM&3PjyS!Z#a;a5>g7Bya0)F?8B}u zU2jhFdPCO1EHh*Rg%HZMXtcS%7LhmzcfPWsmn*HhL^6lv5ogzwb*Xmi9p_~GGa}(A z{&Hs=AbsH>aZ0a_l7Rnp>7)pOy16=C`R-Rfw8@&vSZ3?Am`-#W=>uEmZznNuiaSCU z-~u1Ifqb5ncbGcXjya{=*lpY`#ZyE~$DAdqigltzyuM4abGF?!9W%r3V}L40PgGo~ zhd@N5TW5lttc#B+wmG6G75wl%M?Zz)4S`=J6%AJMbDY3hDk2=M8kRT+*mht?02Ss- zT{HEL;ly3{@%l4rxkTC6Q}9*SOc+5VvO>4T14nf(S30R9m?^=^Y6FTaic9lw9K;e9 zPn8xM*E6a?$VaL*6Bh?cFW}N^YRkmOV5CNa19UAz*MLCr@7u!`tajdutZp7_l*BV2 zq5%5TH8aYWGhS^Lt)E=au3mEdO`<=eBFeCm2#!Pna7#QbC7~BhMVmO9hBAOvD=lxe zvR$RcW7lJ_CQ@7boQrj$2zGx4PT*?^0MlBep&}^(j3>`-DJ;ecV>zRwTr$DkMjq{x zLWmf;BqubGmZ@^4dZaa!pt}4&^2=xeb0(tlYL+U;VhGC)Du=_R*(AGUlz=#s$6`9P zalx2Q)X^g22_q2W=?vci4(KzM<6e6TtTIP^ zPnhv~Y@>O31Ta)VCGA2medY_y8IoC7S8-n6G78n5E?T5#L8MaVG9TO+EJT1<>}G-| z_}~_Tr}*Gjf=eh4$?$#t~qW2Bu??xVgnl#JoPlL@ZE72BeAG$RHyH zQ3PPU;p8bTAI}kdh&G_NE7YwY?w*AWJ*`NT_(oBLwU(w>CA`jYF&tEUZ{$&gWFw^u~G{V<5iO+Fcg-BFnbcZ%0jh!y{e!g&?_6S zOb;Lxr>VWf8i8TqvNBi%mh+^A0Fz#IbLbZ#?5bHlMB!6?h(?f|do&o3@tDtmjK_%# z$aq8=kcqe=YU~u%X-EehYD5QRYCy+YN2^T+v4|`uGX!apj~^E08II-=HWZ-^fkO>I z4~veJFU8Qj1V&{ITcL`wF^rK$))Uvp89K_yh>W3iOS~yNP|g8wPi`0JiUVq5ti=jq6Wxj0$auA(p$VsJHmVJ&3?h5W*&^SfECSFQfPB;P;(fHfnABU} zXgS!|pS|V9zuAdiN|40GQZ?a^;*=F(dQ+?xc%b>-I_s^}lp5gs7#4rf7Idr^ZqR}+ z=Eyk>{Q+9$stP}=2MLC22jXzBW?3Y9lZ!o+7icOkKjcO0Sl+085K^OaoNOgcsIvQI zl!a)LWW3rU|H?VVs9oyHOqPu^tYbcJ6tJBjgkP|z^@aM+Iel`e72=HCTm@AR{1k4b z1n5H8Bory0rQ%fVPxTs?2RQpYGY_0c-1G*7ue>su&!BrsT@`-38!q8dknHOf|? zI$!8}gTbL)3CbK8XeJ;|Kjmt*d~%sWzy)+Eqor@mknkd?5!_sj%(SXBj2Xe% z8~!xj7{S?_iFN0{d}r-ThL1_A@-non`;uX&y_p)2tx269uYJjIvhGWUnsr|?3?2Kj zy<8B@N_yte`4rR38s1Ps)OM@RJA(_+yb=O)MwVIGBuSi)F}hw}?g$y0D`g(dX*+|% z00q`ii{PahI*cu&4j-9VGZv}b%1Pc$8Xe5TPH4lPr6>oiwa_191_{*QnCV(fTh4$A-ppyP1tua;$U_A3g9t>DnFyrG2*C&=z=k1C<6k~3z1XDIL|+t3 zV||2j`u90vf`Ds!6oB%`qwzPl%^RQU25#8cd$@b6lSy68yZJu zG>+3S9!F>CB~o)a2p$C#7LS!Cr}zpcXl-1Ys4`(buuo%9L@6&Rz9SQ46EAAgvN%{q z?*cg=C@-F_H?yT---xD*^Q*qXQXfN>@N6<<^c5h-Z;Pg6sHwwPKT(XGWy#iMq49(C zjiHm~G|Xqj7XWyZhM}?dfm0tv-se^`;k+G&mT9Yc@6uMe(g1~KmtlZ22ePb#7BEFB zdjP*NMbZ?Fq^!iKWsp){?QJJt#9t?kQn!*;d*`$@;*pHTF6ss)sT<{Rf+lUmJOMVf zCi(VIzuE(k4$vOP8Ds5{)TavEEQ9gi?xB+o(=}(tO7WM0A+gRE;1MXQuz|Pql5OPz zfQiOqfJvuQZO9;#x4F1tMc=(nO=KK6d_I^r6r0mbE4i%duAd_c*twW z%rbjRGIvRv5I_W`;}Xx=P1)7*k!9-p0jm6Ar-L3+bqsW;HAH}hH2 ziMj4F@0XX)06&0tqC*9G#~EPXKn8li~Mp3;CAkGh72$ur;$)ykikb zHHoM+8pN|SFUkpYF1|&MW#~eK?D_bWjiJc}&v;eBjIe*@*Xss3WMZU2h@N z^%lZVmKf%X6BoJ@Jy>*xz4@NA0uqV-Ay9fxv>?9M+%h;{WC^tS{25cye*OUWB;Cdq zx$h*Nnnyri=8DDtE1m2|HcYR@lWZEJPCed#l4kWgT>K?Ob`i`#={8)DLvGI^PsTy~ z-=;=__$x)TYd}T(bsxk4veZtVU79zb9b?)zEuKUyuP#I@cj<*f|IU+21*QVxEJ>(> zR(PKrNZt6>N8QOl$y9e75s^`{Q?g<)$E2R)|M_*GY^Y8SM}|D)b=5xE$Q6%7CeYO& z?4PJD>Z+u6@qWo?4;u}K*OL(2NyPV^gmqpU=RG+nSm!mr={uZxDmpB?ylbEc43bX6 zRcWU)X{RUAa{-jm$y% zn)Cq8;r%-ZhDC0x6iKZg)K0G=9&`gig=o$q-DHm?CsKLu*58I)$Z;5`1kK5fuM33|bPJl)~pEFvj|I{9Y#oIun++w&9la2*@QJ&xi>y!?Zizp#foj#2;EgywAiA?G9_q zjaW!|A1aYO!4RdE$~JPEld^x#I)kh<~v@8SetI^a3m(g-T|?jgwW8V#B!$&h@~{S62LzIUgn}6lA%3g9#g@UB#3;n7(ep>7vf==J^zKmNv?2 ztm~|%gX%0qd!;K47NYO0{M@z9Y7Pp#)x}`t9;mNOhLu~#@al&-!mDJQzOrf1n2lS^ zQnbcw0xHY*YQFq~K`fY)w-tJdZ~@3d)?re$zUEWJJ{^5c#iPgTBA0WkPXW1 zMPf{hw)+v1i#ZQ~Vo^&B`;{zYOGJ}?H(Y4}zyjA5EVj&X1cSRKQ3A>Mh=`VGH>dr+Fr>vj;b+)00Jw#q^%?aZLt>) z3&}tfaVi6)dFhyBpyvQtP&swm^LFAw^w5-FQbZfdR%C6A3`IaEIK-?t>`%ak#Yo+N zEkh|XlP@h5t?twjrfC-0QoA^`9xv2n5!Ivy zqgW|g@bomynGgQ)8lRSKn4#t?J`EgJxRM66zz*6sUgyFmJy0OC2 zDI2}w{75|77P3*Ug=~~7+u1(RGPEc83HtR(d?Iacy7p*U#`Ab%RtGQK!|v6k0%zPQ z61k8p(vuhIa605w+R>UO@3(AOQ zTSHGU7gbss2u8La)+`bQa>^Z0h-LC!nYj4h1P%? zBL$IK4pI|@kU@uoysSyU0&QazTn#H4-lmytL}{Z~N&NLPF1=I1sL%TyQW_SiNUR*L zzIuNNzU1_yjf*_hOSbem8|RAf^^v3oAJH(CzMG7ife?&ZfKdVIQ+iQprVm_1Kx1&A z0s+YbMbIWm;>Ttvs&pxVVz097U8D%@BVf=;UhlRc1mrZLCByi#7)^KS)3hw!k2;v5 z$j8FCtZaE|=a-_@aOOE?$XK@ko`p&0NQfqN$NJ1BPpyeQYy#02~u6lVZ4THM7*P>)faT}w#J;=`0 zY5IO0-s8;Lc-QUWz!_SfN(u@O)fR8PJ=7nC#cznRuN?xbTJ*$MW|>Et=#@pm7u`0O zXszI5Rg_jxm(|o}CZ39FQDd`GUC8v>n^YURH6w!`j-kKxS>-Cz6p2<4@u~EIiTQ{% z-vJP@%4bzVp>g*etT#Z+IcaDH^0Yh(unX>@NBsF7g|!}G^~J0SqGVgjo8(8SfyBs8 zjiNW)2q*Zd*EW~KjwtIox4#JkmcV^o`nX%h6+?Y>fn&zx>xj4A&KO_qkVESYz*631 zlr`7h!C;L1EY-wIZUvA@J`X^zGkk|b8Vcp&9oBx~hmc%QF209u@kh5JM5@&?R(1{h z9T_#kGbaRL0qV;o)S(iI_9ZGKe-oEj-&)Zmm3m7jp)Hzz0NNtu31~|eSp#i(D0)*!fp#?G_7sqr5Mk~3Ey#?{)sdMT`!zC?4duyT*(N&CRlOrS9kMl^kTIT(+l8q} zzM7G}vn_@@j5&9X)%9$m>#`X3DQ4GlPp7pa%C5lys{MLEC_ZFh9nx`4Jj;xHtDA*a zsa%lxtbd6hK>E>-wUxYe3*msg$XmCNs^V9y=!BykvpX{=C|Ebh@9Z;r)_Qq_*g|Hp zB?XQ*cF@YoFg|o$nUZM~xw14X%O$$9VPUFDU;<1PXqJ*_qp2WqodbD6{T_rTC7?KF&+Fjtw#II=%;JzE(p>|n<6ohMBJV3s!kvCJxZH{a__T#zJld;Vx zN@B`k#&Qdhk&(9Oho!xGShGy}!>3+XsZv0ma!IRnTq{s+9eg_Anlh*HM#4rdgP5#= zcJm>2A#N59n=??dP$Nx~ImU1ROf1IVS(UKIjCu&6hyLOSfRm7~GEvlT0`1<_KnU&{ zQz8kYnZzoz>zkSiv3kw$pkAP5mWa1gFl8b8)J|bC5#*YkVip7MHn0{f+vM+I@+JQ4 zdTnbFi&6cxL--B7Nm2pEqFnVmVN%Tkv%bqNBaLShl*r_3O&}mMRZ5-A6dx#NOlBfQ zEoMw+x-psQkeLV!?)~MXF`22I7l{caY-ke&hMD=Wc+dt3L8uKO$i3$hf#eY*xlUsG_;gcc;;1p}6jhh@lm# z+p1+yaDr62F?gG-=LX_TEF9!Wp}kciq(*aM3QuixmPgRFkc8 zbtN{T4K!JDF6CO%E+E+xw8WXLz-^FNn}#wISnyzC*yyeilWs7evU|f*h9!MqC?7Go zUHe32DyW*&(^y!F1eT!;Z`iUejOqz9L7?WS4cNblH4OVt)Ra`bhG}skWQshFb<@~2 zBOj8=q}UA>P&;q_P`G$KtJ&il35;xEf@LJDSF*Cy9GA=0L-FoAzj3DyR$#*ALrJe5 z-kJnP=XSKld$+2p3R_&`-9AYFrQfpWcCF#i=^TpNAjV+QBpQybrCNeg z*{|zldmoKYqRE~gER|=r^2Q)141)W$VY1ffG zrLtx{`K1YJBppZ|Q6S?(Evv9mf?Y+t7KPRXwY12_VDTO+Jkpe=!ZyI8)B2a9HdlvQ z$}}_?kSdJEu_9|oWt^R;s*0nV)P8P{q#}cTV@UOmy{gn=JN+OR&!;jC*Nax~C*TQQ zZ;vJfn-L1Iy0T``z<0Ya<@_z%*?13O8SYdkXQ*Qx8|0;?1Cnd$KR1ojmH_S|)Prln zzBDccC4+G<^rp}0N6nte55#jwQ6ui7NgIted6Odn|5Q81KLmkORZ0?r1)`w0bW1CY zt?nFk=aRa)H=(KSbSMlO0O>NH550``$)H-8YRWLM)y zw42SBij$H@9kFpiz7IK)C>S#*A1YAieL|GUo)!J2-X}&m6MG1p_tiinS;2>SVOhmC zN;2))LgCH&GtEk~lvR18Ha(j`SLS_6-%LDs{Vpdg;-fyRDNb-BwQk-grc3B7Qq%iq ztnyj#QR;nCvDSBw&nE9v;!kUI3uq&GlHUy6dhe55i_o(_tOppR-Y4@ET7u5(NfL}? zjcYW|WsS=wUMI%p2{WQg6aHp7w0Q+l$#n=}60J7)$0Um!wpVTNPgN3{k?kmkCKz6b zO(7HrNe{MqN_gmD@J9~MR+ieZKb*jX%{~beHoGROnXr;DVhC09GZPC}jO}cE6q?>kY{Ck$w)8kz1X$gS zSs3VtF>V7HX8X5>b3^megc4vDX5%hO1*9Q}C(<;jN+C-(#v9Vn#poh&ImR52)=Cek z28&rx&|(gNMTxTeyhBt&f}C8~e(>vkk#K1uG=68|)J9hIR`8}S|1jdrdg9D^YN5u& zHH9>VA!z$kFw7EVG}0(K!OqZ1g@(-SlsIA1@x zBsIX1o@$WQbm0vVlLWf#!ORmpV@wmUAYj}y0iFnK1i`?V{7DFE8k3E?4#=qX1EbRs*UyTxq|fAU8Zs$SW8%6692sFbSizr;JHN zp%XGm!kVteD}k&qaAa&^lOtjsBuJ~ta7;&`4X|Y=;tv!#d-5{<>=Gqt!}+Wk+~N;u z6BFJ6!c6=D370A@iP%DTn>SquZ{!aVLLISN6Y7ZF3>V}1nh(%hB`jGLUGi-cU3&XT ziU^YMGgv8ICRE7#2MwK<+WzE(r*ZVF#3K_fA85d2yOG!LhC;82z z&UZ=6ae-^*s=;@uah@cQwumQ7UOyDryuR-2fl;%}z{C3VT3|=c=IqLa>NUDep9oK|FT@OBs~&OU`MHA!#q zoF|Wl9sFanJH@x=!j?C%xhD|v(4+FkW097u4UP@1Iu=Oo(YYDcd*I=ZP~>w&M7hPV zrT@>pv65LV7sklQj*(NYk7_T~&%5ha($3uC?3<$O;!`%^YcmF!|IF4cd9 z7m9FduRGjzxKw3RCM9#G;q@>~w)R@MX|cP20kS4~f;TF+c#thtX;avqy0YQzc^b*q zH70FH=8b8gk5}D|R!|!8SQXDMh4_wsmJU6?gEa*fH-Ez&fa-0(WC|Rt5tV}Ew6we( z?#4>SW~_twhF>y7EW|sUcZ;y8XW;HPm0MJn8ZOp^5DIr!@^3;I?7%79FhhY9q zGOjUcbs!44I3Wf7eZym@5jo6!k#ZMP!+He4%cGv(^>4iKv&EA#u6RdxX43lLx=?2~ZG-yT$k`^vKQBaZeY(=Uc>N0) zU z6K5=o3edMBJKQke>V?0vd&=#?b(=i*lTa&KfD!OIZ=m$N3g2(31WR1<-^*!9Tg2is z7Fgj>vprjJw5HM-f7i(c2Ks1%f0sg0PL|8sZG5p?)?*bRG7sgr1$~^Bye+;Jhf^(E zv8?vs6>E!k;e~0{rexSjZw>U5Rxj72_ELaqCqGvetP0a=v90!E*ShGyZ`) zqdXV>5E}g9o=IN_LKXrBWlq9W7%QR~@6z5eW>N;_M3 zS-l^xXCy>8$J#UdtimBF@oW8>FJPf6gyK#R31MWQQr%?QcD0dV3n$e;h`Ns%(p+81 zTunB>Dn`@vL5=1#T^L_F6o1j?(RIGAjd@^ek(fZ`&K8Sgq9RODG%=TCYK3JEluz@n z?R4&ckWk621O<1lsbqT2hN7qg@~=!`8yaq2;G;HFrutR@2MIPvdhl$#6(&N|3eVJ& z;H1`g_BE9jsvo{Pnp8RpLoyCLGe|w4Bj(Gz~*kQHWD?{RRJaV={56(xY2~8s-S(F^=jDOr9Yfv>ENAZO< z0J|k_T?1q!gE)2r+qKn1enBFyhJm*ZI2s8t0~5< zeBHXNhr)OcQbSTDq7RyhThCUf%OG6sHID!d(J2blP2==92V1}cDI@4`Z?lJ$*99F> zUcl)Pp5-v8>nSki^Mi+#;hvTPP1`y|``q%VvxnBW*n`A(t3y7J7RZ!8-!~%YM5234 zDnjC33%Ynd1x+4^Co^{?jL^R*^7n{a)5Z4MLEpsOX(#wip&j{8by=ghnZ_3 z^0<|0LYWGgxCp{y1R(8#l@qx-zrQ>k3{9`S-iieEv;w%JVxL2_3TTq6(ew{&LAZ)& zOr%c#fF$jt#IEAAaZFVMb{8;bt2LBWibLT?_8u!c%*@hs9K0nXu!}9d24c@%Ovrln zGNI=w%4_$Ew&VxzPFlS;eg!QI?v!ki5qzyyLu|Yy9H8}4!48f>D}Bj}5+s!}f(glTp4Ai%2(Gmhx?mQw(E~aLq7#`UmaqwlNK9KAVD-CC zgOUgFns^cdoECjx<5{NawyXvZ?ZsiguY3eNCJr4#1^RvV zc35Q`sa6EMb|8<0oSL8qB!WcatR-;GbB0bqElcZ+gsRgOU*qd!4E#G*8Ci|d0V}it zk}IzD_4R}E->r)g?vz-S3a{#AUI$H$>!qEK;NYJoxUs6U9&9QA(3PeGpS;hFRm7+@ zK|t+bS!E1LM=+mlNU#}W?QD>Xo@Q8?cDy1^iOV&Vs4K*rENN!7+T-I$Wl0XOmg2SApBJ{s1x5I@Z9yNZgxtm$Q2PEYHh zpb<_G=T-#?XkD%Fcz$S&!s~F=XK;3Nclnw%3mje5p-VXM136?gaCWzF9LW0w1HzjK zzcUHnO!zHH_(sAvsr@%{JQ*jnshrz`0d_BQ&|9EhtH~b?ZPqIVFtACQYu|b36n~rz z+LA?>?4XPHe-Lk?Lu*6R1aL%63fbD1#@jYYV%;Q%j)Z@*zO$(GmeSdkHe?3h=5&e` zKdT2NMH&zNQxhb=l8Ttmk=H)0sADYN$67_~NEAdd?>fv6Vbx50USQiGTD-zpyLOtG zKi{utk}Q-U9I^Asa%Lc*4#c#{`D8j%fWbiyE5@CJmd)uju@AYbDs_ zzm|hLLO>M8a8dl|2RTTI?+B8D7(hRqg9$?=gOq2^XHSjzP54(3E$aNu45WxOOm{67 zUjPfG{W8%xhI{T<^2A4jEY@(Ja1#}VrL#p|4rnwTl2$xH9RAlfyWnD2Jf(D6=t|Gx zcLYwc7HVU>4#7Zjz$2Vd@qV$jUxu7RVD>B7guII%hNo;tJeCs)c+32{-<)=sF7T@l z8BqwDtr{PI9aFFXN-}IwLk==3HfhBY(y&uF_Jt^BX3bZ}ca(7U$wrn3?%S-1xqKxk4uv+QHnhdnX9MY64k3}Knra3aDb3Mz!oDf z4+F_V92^2XB|u*$4};=ggdT7k8A)VK)o_x5KhjcX)ZE3|9v~C;8|0|!#t^lAo(Xm2 z7K_g^r4uw@lL)&}0+8Im*m#|sI`2%WWK`e1faDX2+lBTyQdCSC`Xf3hPiJ}XK+Z05 z<~(D)zCXG~Q&5xz8Po*rmT*kaZYG=x+Kq%$LA!x4g4RSVQdJGaw)A}y0JHH%e=4&; zvL{G3Wo>N|yn=q6F(xv79#qX!Fpe9LrOYtpP& zV;GkC+k%J?ALfhi4m`pz&@x>75kymXXN$G8hJBUPD5kt7r(ZLwu!t4#fIAaJ&gLGluoWN(s| zcd;U+QChw!NRN(zgry8YJY~dphn1E_v6=8BYXJe|-64WAEEP&8mriD`?cn!E3nf~v z=#MV}3|5wjTgseS{6RuB+hB9ZM!mHo@ou-%80{3wlpe8kQ+g~W=oeHFlSk;T11JX7 zW=1iUslQ}~^PHz(n@ z5Z;)CZz8;b&Ur*yqwG!v>c1U!5(RRcKHL!&-xhlA*gvkH-~a9U89oF31V$2j>YM$H zmw9!fVnUF7KLN@91SADGh`WSL8Cc*qXxeSEO17~?lka$@nwFS~tfo6!%VMzu=<0h; z3Z}}6kvciV#8cvm7bBzkG${fx*$9@#nB8884$(aWG;5d606Zi*WNzjP-K1cl%QSIl zp^G)qXCW>z==GryE<>2_gSsN&L?7fbgv>G@JYSQ9_7V3TL_Wl|37C{tU5>gV=|atT zv5}arnOT{UnO4vlv~*@8<8+vYk27R0F)_%NCk<&6#JS;GCLkivuViq~=7t*;VrKV(J>`*fR z+r2L88BWXO%Wfr!5UBXk09(41I}OLx+d(p3*QR8YL@j^L!pA|?P{tQ%f2*KXR2hN0Uj-o0FPEtfT)cgiE5}o z6a~6PW4|VzqoaCUHUT}s zUmz$p+T;B5k04_(KHeBBL^x$&C(}T;K{~y5R)i4h>Z_TJjXgxJUlC@6@S6)l0 zPrZP>j#8fvyXW^PUoU&Q@Ob&tg2yYK7Cf&0-;c-hpDsMEd|L2$@za9G7ys|aWB=2I zN6uV+8Z6gkPYWKGKTUY-lAlLvtG&Wn5?RB9!_+NQY1Oo{#j%yfyNW7yr=-QXT3pfG zt#bO+`-HOICsg!4p-%4;;^cbO(dK0lcPu7*GzD|-{=HNtGS7iAx&GFhxRpi`D#9-nldG4 z&4b#q67uhjE4;t;{&^=wQZyM`xMi1hx2| z?N};q9@7i;rWaTJur8+t17NIUD_WyjX|ssod{aF1J#{gfP@kE;qn16Hv1lW*yDri`(}m7jHfx`0@zC^I4x9QAVQ1^y*XD@VGy^N3aOm1+ zT5(h(eb8-j$Gt;DZfZpe(@(xAmosFS=?hxK>VHQ-b_i4Pdo^eQpNtP`uumH0pCRd57`z&LnJ~>){<{)qA_%XYtMqm)=<<-scYG zT??*xXP-l#JB)Ycy!76s_u0G?U@kag(`gp6DYg*MFw<2#8~Zh zbeveFRVW9zn&lMcp6eDk`tP&pTF=^=QgB0=6mklI2oC3Z7oBMw1;uGVA?BJgEfugp z`%GT_B&?6t+8$y~RaMC%(%L#xh+?igMVIVa=mgy&YN2_$CEP-DxLGWYir-8Y0_<{j zm2vzC*QK~}Ti73OxkXD=Sg^%PWmb0BzAqZ%>+lN;NmJI4)dTS{+QpEKi+Z%#eWPGr zhgoP1k!|PV=08|tJ|_(MyC`kltd`&r!9KBAdup_Mxh*Ckkbz1Cx@wBy7P5YoN5+&el8GAqcE%l1>(;?Yacsndx>N zifZ!@7n70*Eq&4#blYFB%2G}(_q4@#EyezH@twBHaoqg)wRfK2GNky0cVO}G zblDwowhn~n%;IBtws$A<^IB-TUibv|x*Cmh+cZ6o;F@@r-e3&^Y?hu)J;^M+g>07I zLN-fpA)BSQke{Wupr56;pr56;pv}@-$Y$v+6y@Nu2cn2SPH$fWmUN1;9yu++YH$j@^y0v$l91#2oCt`Qk)?ppHDregWOW}*03*}h|VyMX?*(WD=s>3<)!B=y~N%xTzcV!XRSET-Y+`u zoby(^;Ji!EB`!X5>7{3#w`A$XZpHF*FTF6n@Y0pbmY#Ki@?Cn~ij|jMxOAm`pXNPd z#RccaE8V$E&s2VLUFa^n==9Sm$)&|Ez2Jfs7u4R)KkM{!mM^{Z`AaWQ{S9TMap%S7 zIn}lFycHLnx$M#l;`5fQIM=PXXyy4At-N&cMQ5C`^ny!Qu2^yDh3Cf0ms>l}I&Z?H zv(7uiclN9^&x==Hbiq=4TfX$n`1DI^5b+Iir?0r+f{V^yxpc{;Nra%5_ENn+Ye_?6 z&y7#Fs+0aKy?EsX@uf@RmB^go!7H!6de!C8t5*#VzwA}3qQO$ju3NPx zdc_qlyYi~&%BwEF@)fIyue{=#HS1O#|D5MM>m;uAtE{>_4W4!0^W)`bExB}YeBsgs zC%9u>?^V~VUOm?hue$2;`eIgHy9g{pQCr%JUk&2Lr!QH0#+l2`I{TdE=bpFX{O4V8 z;mV7i|ALDzdEv`m{))?2z4BF8Tsbhf`qfvx=IWs}!)vcu_u6Y;_b2n8b^NnWc+P@_ zC!Tc7aoU7?kpG=ZzSI17i%ve}xye^92s7DSOTN(BR&4L+>?%!~JZ0)3)24UN@EK+P0?8lTJcGA7Vil5wm3J9 zKm8YwZ*|_e0^w_T7I`ZDh9piDdBKVmD-BN<#4Ar<2JzO&R3$j~iEA&Z-n8cH?$cKt zQtfIRaC3JAZu7p^Rqs7zOZDADU#YrJesA=ij%8J!+qrF9I!C|$Pj9Nezx%Cj{guyg zm$iS|-SN%;uKxA%kn|@c-FnW{cqXw)Kxs{lAnEawC($UQ+@qIM~@yh^#OOm zNXE_o>i>1GeO-U`_aO}i@T#7T^srR??uPKDlWz__{j)jM$By`XaM_-P?vu+; zt$u#-bKUXFZwtPA+w$u2=YFty&8f59^WN59T^Dz{TZbR4w!HaRcij&jt+u`St?q=G z|LC?qy4>CH*15rF9-UHs{hfbOefbSb-0Qya4)^?3hgCoDs`t8^FFC#X)9-&KIKB9B z_r?8xKKhfT_f~&2bV~Jz>Pgk5AN|DW$gYpMbu+IY&Ey}f{_Oa3s~7#t7ph zd2jF^^X_!(3qK7WeB?*&Be`$8XAL~J+Ol|8H5|CA`n(@aseW^CNA>h~{lrZwN4{ICzUBOv2g|?x zU+#;yu5rhHYqNXrF+Ur9@0Kg7A8mbn^zy47aGkk3+<*M^gVkB@dS9^W?QPZ3_n$F( z=C2-h7aw-KTe4_N^|Req1UD?cp}OPvi>if>y}5eium8ynpTEVu@drch`itM;Uby5- z?thlQ-_5G7b3?x#b&JnA*8SjH$GGob`wzjUCC9i8*Zm~;)ZiDYE1&a=>a*95R-gT; z+g&*6BX04^Ex|7r9p(;?pEJ7jkL;Oif9(N$BcCrrQH{lkN2y8qaAnftGw zE(lJ#nef;lEt^RuMMQ-z-9vxiv_%GbM-gVmOPj6x% zdEzau?~YGb|MI4f1#f)**WIT+_E)37zO%EsWayCUcmCnz>f-#*f~76X-1Bc)J-YCY zOWdnZ`1WYWw&~UT<_%PT`pz?}x7~bw^{?*^+_UHY(7o-{vU~GuUK0HMg-hMW;bYy) z-c_o0KRnYt>)*cThR*rX=;z+uUj4-U%c`9nGu_DNe>J-Fb0@nSk9gkb^#iB42lsy{ zxb5E;yRUulJa@zi?{cp=cc%NvE#IhqW5-v6vyNTqrp9xF1z%a={^^ZxAHDN6-POM< zA3yrxBmbp(-Y?g>uRio{chks6gGKXZxPLn89vHH(c^yb>Uy+Mwd+e zY_;?Lj|PW-{@>hj&;CkqW4HV8OU`sBy!0_Q`CT6v{lZrlSO50WuF+fPf6_hcx%)>y z@siKGFFo86?95H7{(0YztE)F<-3wRzxO&uS=T@I{!M_H7Ic;5a)xOEWi)Wthayu`s zmbbpS`p)kzbKzHes`GxnHQ4jxN!7!?e&y&}e)5nTIsfOQuNm!h-?{WN!T)LfnS1;4 z2db;Td`0!NYu@cPE}icVfA}?SNBMKrs~`N#=8r}1?_0=8uUyQ!% z@K3qVKXSW!%}c)G9{A-=!Fz7{YW2N8Y;*nR9qIn$SCmK^fM@HZI zpYz))xp&_1nd&#3o{dKV7CC+WS;C-W?|I`1j_Wtwo>VLmsuY2DsP96Q%{CBIDE&05=`5)d_edClL zR*xPTbtioLxudWAmu2oP`C|1SZu|cjI`2m+|2T@DPf}VG6)IFDX_+ljT2va+z&E=| zq(Ov4MoT53kjhpfDiIA8NyEs9%xnp%i0bqH-hbf!@Z9HfpL1U4oadH7?)WkI_6DNp zZyWtrmQELk4)TGDb%>Qc$nK1&L$lj-w$pnOZ3v&sUY?smTJ;-odR#vaxK72U!6#(d z_?Ihw*MUy52ZbLrqmeBim{qP4L3J_L9UKGkKOt0YUqZskaeR)~6MU5qq8a@Gq#rPp z_SzBpO@~5rjxvVG_F$;iG8k`Ez@hjDc&e8}uOnkedQsjwMb4B@DOC1<$OVRCN3M4cz3G!w3nCP{DCdfBX z$I?Z#q;eQ8x*MbO#0nHEKBDPe!zej$4=g5r#4E9DeBRbJa+-dbwGOVM$$q=o&a9Vo zJI@g=QW+h|{(FUIxTnXK{1kji@j05uA$$ z_~YNoqR*D1WZ)<__R4~Uh$`0+y(G{oA5pHp1@=x&d~e-bTK`v!h3Qq3It>Da_%@)mwjbzZwao8 zgU~oU44M;zm_BR37C#kkq+^~bVJNRqU_KQo*q*$dCgnzuYMVdbo4y7APTphJ(vIWT;7D{z zrQwXN50qqPK~455x$jp*%d_>kIQur{oElGa#z@jP3THR$cah^mDcVEc;L-nl_#Br5U$JQNWLFbg#97-i5?acg0Mawp7m z^fs)Rvxg=xn8iD7cF-)hM5b|gHk|yF5bie#t%d(_c^^f=_4VKijlSe8bckfexZ|qj zI%a(N1I0h9=27Ctl)g(6a!wjBoM$U|_xfXpEy@Zs54Jw*a7a zu!b)qsPKy$Gbz`CqrWjT{rQ$uM=3I|1CL?iD8_crdq>w?5ZDp(T6)00BlMZ%GpqXmYWK$7MJ4$6KCPKy2WK^oTWet;kIRgf$_ zo3`Bj#}*uZPD%^^L&br6G-}as)VCX;*t&rCN_${Vjv0R|k_!KO5^&TjqYqm5*wB@e zAbPQkD=#b}?UgRbnGg+|m?IcD-Wd_4wfyGrN;>?@fH`To;oghwyiDvKHhw7NWnNln z|1*(UF1$*eBu2R=Tgfcg7s)pdp~EJTt{yeUr5Gc!kjbOz^To)<#gBwLb1=|4Ltge|(9??SR8M&5&0&*Le!x6Ynon+#f!MiYEaCQJO3F2$zw5Jc z#{CuaCtA|n&;eE*xC_gl-yoOnFYrpc3_SP1*RvgXbp0}nUO%UdBz;=ja1tAa4bo$Q z#ogCei0r9nsYz?6!L+g3O&tJl>SUJ(M$YzNyRdH(O)Iiwu5c*>s%i(WS~uKD0=2E`RM(f&-~>bhCCSs!tr_ zv356UOZ9K|J>@hm1xQlj*{!&FW+Q!Z-b@;keQ25GIl4MH6WQTnXj2d2N@8u)(>#LC zq)evuYpqyS=_vRMM=`t1G7K58BcFZ;#a?56VH6TfWuc9sn;iq7kM)=*Q0_ zOfo(~?~fkGvz8n@*fok(&akAgjS=|TAx9t5(kS@(AEXcZqi^DVxaZi@kdk0Z9CsVA zbRee@B23LqiE^IUV0z zKi;bzrDAKt|NLJ!+ASbY`f)5 ziU>x;{4R`$i(~7pAClTSX{->Nk8=$-U?6mXM7uIDs!)?2J%7yZOiiX|1~shz_Gd^Z zsqxAY?Ra})6+POi0?+tIOjng->@rWrC)^h3I!``PWf@K0=*^X0%3#pPk;}imgnfw# zDEuc&`;-*9d6O|dj6F%E3y)LX#17Qudg9;1hb(Z9Gdiy+P-&$;jaQW7XLWRN_54t@ zRND}nP)b+cwBo1R2#z}?P+u~G7>Ux)M}Zu@ahSNy2dggGp-bv2@v=kx!T>_hsJEI!b58gKm!xJ^wv z*7I_{d36|;U;WKHPZ!Yj{nvPK%6Lqammqi7c03-;<37#jaAtEd#d@s5rGhK`Yxi&X zXE+P|=r}sAzlN{&z6{UW-)yy~Gs$kL;MwaWs5$-xcamN~x*dyn*~AEhYMJr5Qzp~n z6EQS(ST{Tm+py0XL&(N5j_W)gSYr zSAj3I{ttD^d-xf)2iHxd(S3Y5{TTUEIOBBA4H(yk?RFZM0da9)GqQ#t?1e^LCU7vynBlJ2=a#ObZYI6F+1 zOjM>|TDT}l_kPGBZ znSgC&EFkHsQBYmk$Hjy7X^gZ!lsA<_d8i_reC`qjXGual#s|N)W^k9heRQJA5{sNV zXpBrbUp0Ru#fSOutBQG8k!C{q^X||X8zU;o`bW3tDzmf2?kE@Bo13k9u& zMui)--&sJ`XLQhCHIrJaI??~k6E81sMeMzuBvEQkLpifjKEd|f`vL{odM+>LiPp9wY@3lc zO4k0O`4FdxV-@Dw*)tR(X4XI=GU3z~q71cl0G3lp(OVw_mXc0>u68sU7 z{4HDHc@DSgwJ_9vBGoF-rJ~DwsPjS=)ZYK1k?Tyj%BBmbHSi|cxMk=ZJ%&^>ej@A8 z9#rlAhii+|`P2|)NatN<-@Y%x`BlRBFD8jL20rF1HQwWMp%=41G7bwaE@2aXyU=}- zMNa1m!EfSl`uALgBvw~4p>ojj-IrONhdg~t2LEWHY~(IB{k1JZ<$m&{ z`W+z9wCbeM=SK~Yl$=KIA8y9tjNi2K0V7j4Gn$Dgviz+< zTUVUNbk8PwadtS1bI8Voap5fNX&#kt)*|uY7ojing}tsEK-(=n7X0)LDpM@@p`ev? z_Tp=SM`4gjH)0=J!s+olZH)BTMs1dYNWr9^%6JNE%Q3{1*%5s7Y7qoU37A@*D*UwN z;oK)qs>Yl*O?XV{x{mDgL`D-&XwVZ)RdSTR2u06@^ksK6FY;YVXI3Y(r_O<-ZT*=l z$NZwf(<8B!f596$57wjphvZIq(~z@jR8f)2>PC0b-{3{${@*InKXIEMqh0X!ZzIu7 zX&5|}i?ew}f@j(}eoS0}WO9yUtl%Ch>-oxBo+eVBd=qyN=&16V@3iQOKb|{n?_5aAa$YQlIx(+O8)uEP=*yN)GF%->7oLt~WBf$md0d4Imq*~vk8}7Y--qKD zb9m|T%dnV5Y=_SV3@w$zIJu3OIrlD?x==|LBZg6<(J)wRd2=1vX%IQ`kwsaZq~RHo z{OFVf`h7N(tbg|4v9mW0|Nct*@8+|c?s{ad5W`Y*FH_g|+q@tz7fpI+`P@ExdZ7^s z->iEu`Wwbgp48CowSRGCi3b!`sdMGksgz)_ofLPyBSlSlq)1qyq3a(R8VZ=sWa3}f z+Cil72)1~h##WmNyinpacE#+*=AsScQ}~U)(kMd-C?RF1jAau1mxc*-qaC@G8m zK8>`X#hiTazN4Lwu9NYlzkJU$Q{1o;!o#X?>N$K2w&j`>`}7FA`dh)rGoRI z;f`mMBgkPvCli&8qnVzCtoij6WH)8=UDv;&uj&!Ao0vl%Zd$;gI|zlhoS+^zgfyH+ z^0kW^>1s{`e9TYN?q|iAYS&D8vmdZsCC)g!@)}7RPa>1BovhmBJY70mNPmwE()17d zIP2?4B5Cey$9gM>HSgp-D^CfYXN~-_%RUM$Bj%O0hCUw?ycDeevWTXT?i= zFJMvc89wWvHx7m_VF$|s=uy&lQXKY*GKag-yitAlwf`6s8*+<8KFlTYf^}r%euR|< zT!)cJF+V5pK}ielacJtUc}kKyVIkS+ayS3dw5-5ihTCqHOO z@eA6qRvWfbs`xcfjfr>T;XLXkNu2lwhZ{3UYs-8*$l8wVD@APA3||`Vm;=4OufVAeQrY0fesqKtc_wdUo+n(VbXYShjm@&DJ0@E?@mgiKTqoT)C(V}O6)BA z{%SL(C|L7}9j~$UTQ&79o`DPFF3@$INtoSb!G#3R*D~oIHnTdJ!rrTJi80UV=kx{q z{Mc~xJQU{PIogOjIg}Iv7g0#hXSk>bV#_sUcE0m6>~{WUPeux1+38+R%uzCyYv;jOHvqnbdp_G4uPTxSQ?|^VCC_ZBjv}|Jst9 zpAi@SwSu;&&Scd?>S5)TiVa#OSSl0F-rlLEog2>~aN0vkloGscDC9oQX>X>gnN|W$ zXGhw<^>MdlJ{x9~PGk2+@iV1{^dQ5J&8&@~n*D!Rx1$G^4Y$IweT{Tw$!M5r*VES0 zzt~iffZsK**%4O;g(MeDjmo0McB&MlJOQ?Ov)STxJ8)c$knD7Tdhi8iCftdtN49*W)CMU1DyCZ3 zYlvMe3nLG0tWn&;nule>zV`MuejU~93FWqvINlSbjx~Y-|>E1FuTK8)M8%!3b>8g#?H}4OH$*VAr>r2U2VIx^}Uc>1u7dqs3ha}1> z`6u&Y`YXH?=0XJ!n)Ha4KbuXmk`v$+uz~it3}-J4&LcZTgT@(NLEH9)tU)CSe#*+! zr8Xal;vD0H1UlqpH?8iML|5}kN>z14g7qJA)%%SfB7wZG@fv+jOyz&h#nR~LOo~yu zL)UIh=0EKJqgp9PCSKkOyXz16%OKDTn|)+*{wbxdIKgc*S3tE&4u6v)k-e#fb|qEy%s&oQ!DIOLNTgd4ry-#)w(Gn%}HfCasER_^FK8Bg-x z&^iAQbS%6_OVxC7^*|z3Z)4=>--xJ5k5Oou$$y@$kc_vJ1hp5b_IH>GB6B0g^j8;pO7 ztzHs%dnk?ujhM#x0VW}^f7X*I4dzUAmgIvbmE5{bp^Q4Yu64sGg^xjs@>?y zeQn+|T1HTJvSJFdigbjTk>%c2%8k@w&trN}P_US!l2u@`A)F~2RN!Z5J0w*M(e0_h z8@*@H@1thS-NzYs`Exexs}VV*w6Z@_(&05=#+=8m=#>YaAiLebtA-;d-pHIuoVx2Bheb zf+tobINUXdW@RVxxsStOxN{}FO8^J!q)ST-d^hZge%sBJxgxVcVT{D~zs z8K@!ur#bSjy0BH#SJPUU@$#ke3P5F6<)-4$Yo$5Yv4a?`3O48`WVlOs(P?UBb zoWkaB|4vKSgplT1VUnE`iQ-AyarWCf#8_nGg0>8gI{KTkQf?wtd@PC&>hiaKGs*aX zDxI37M>Ufx_`dySB-bg&{qd15dOEPuwasW>8P8v`BJvq0$QUY3u~NVQ>Pjx+zNR;8 zx6MQ4-D+}dmZFp}Gp_fxk5pFplF;cElB_wzzaA{ZZ5Ipvr)CJ|dPnm8=9Sc|@qm}D znoIi>r{HI#0dD163UY`sl(q5-ZZG(aV^L{jG=3D6m7lZAH=^lL+d*t-oli$(tcMQweBmxK7wbU2z1h)&T*t)RQbhb~G!l&+n z$2!5a-?o(Gn^Q^0BZsbS&t_{~N>S|A$Nh^HDRjvkwsUnkiHeBrI*&w^Eh$X4X!}0t{T{VaiV>UW?z%1%?A_U zkdlB|`{&YU(f1V7exA=}&VujZCDOLsptC!UQ)!neU6Oa_(&uCFr(zEGU1LYP8#nWv zi3?Gotct@Aw$Ze<$tj#|#874#3Mr zMZ~?=(A2vr(&L#T1=1T#`1cr!#HD=Kn=A?h#jNKO1{3M zzeA_+H8(@i_Edu#{Wc?=iVZ9!VQ2h(7gd|<2G{r7sCIxpQ1d6SKX~O72 z`nKW;O!Ep@Lz1UJuM}WWix1fLN3egYj329#nSE0j@>7p9`J0a@Rb?BQRwdH!s~b_k z9WYE|HZEA}(z3vbSYvC3wzGE3;r>$k=vBpfi+4iaw34M?w56lF1=-VJ4c&b=4B8>l zSerD5x*aytH-l^Z*7*Shw>868PKlCZj^U7cIlP*N@a5Bgz^?HpCEMoH)@y5+n*3M{ zuKUD0pRAy317pyVHk4{+b-}sOmCSdX=ls}CtnKdOPCHIQ;$tAC&ijkz|N7YKll@e% zVF42vHG-~L#-XzOF8Mtl!cYi2Nw#C>{dNiX`VW@A=MKJxspEpM8)+w)uu4$@H!2rq zALBXZ3@hL+;(~PSPzGhxor6;9F`n*bD&TMT(7)jYCU>}?73HKgQx+aJffTZ86$_~S zjcaZtu! zQ(|qIcTs5O#8zEDKzoFPxT@7OnCKql{j$;IURlHT41Pjh@_N2_p*R|aJ6UttUA(cc zVyf-kkX;zbq|elVMvpE!>Sxh}S$XDrHkrJ15$0^UD1u!qK2V@oJZh^FZ` ziKDbAa@JB>n=MK&hn=B`K{7OcuMqWlH_~yXllU@UipwiZ#ns1;Xm!DOy!3sETJ?S; z-Z5v7aFdq57iSShf{b*@0RLm+Kx!k6x%%u+u=4kw!qp7JxHJ{ z*`DyT3x&bIJ23Tmj>{7lpnk;y-txGaW~RTwl|SC3d+Go`$!;Q1HJ-obSLn~MQ^?|8 zv~7zH(j=D<_Yp=+*-ZHTz07B58dA957QBz|BJ;Tq$VcfG_(4auV0|U-x74t&=Fdp- zhYBkQd`mN(mB}gKA2@0;`;QtHBzCaPtBP>t?GGL}+#ka@@Hf*F)*@b{D6dZ+6{?xi zBoibo&*eh3-896gfyqt4Tko<_n-O|S!yCDAU^g6V+*s}eC z-}dG8vWztgVNYlZz36HpK3IyZZ?0JR$CBmBj>030cX%)84KA;l!KhA_(o{au_k2@| zFSew`-ZhwaIG>hg2ukMZQrsb3z~!H|(P48rh}VcKy@#i^m)HUHU z-N_O3%{nyssZvLnJhx*aMU(NcQjA)I+i0#Q5`usBS_4D03nUuc!$qSs`ov*ikxWTPe)8@o{kxtvq^F82i{}aKr%w}Nx9wt zkAK8ts*e~6t9#&_zZ8aj|BR$&U+ODYL+hwQdUnEyJ&3+dzZOZcw3v@1G`4_QFLtJY zQzm?xx)go{|408cL?NHJlB>!Z)BVW`6np*=mOKfCu^g~IaRpZFeoa!JUNhHMlLYMU zE${haNaj;Ul2J|%y~{a8=3?7XrF0$YImJM4D)wadBhvmT6#WG`NJ=oOS1{VH-3DpP z8Psq*idAGKP~`P_Sac@}Z9Ti$@rfg#K4JoCN_SDEY#aATyn-=pdvImM48&Rmu%=V9 zP%HL>xcE2>)BeV61w2*D=LvQ?3iwk|8C163r!3c2KKYY9Mb+5xwcRgiP;M~=`m^lGR%^0CTVb~dygnDXB%^OJwu^t zhpAfNKMK2r85HekVV5~ybJZMW)f<@0xYe{R<|)1HFodG&41vyY$C-_)JfU9&7BPRZ zKhYomn*6XlZaoawj;F$sk?61uA@k{`#BVI-)xI`37xaKjNoHc!Vp)1(WdPl*I;u~a zLDO|CSnH)8Y_L7SmtXx4GS=bv@<)?8J_^&Nx3v^=uZ9b^O5y(T_W~d5M;>cJxmD9& zL03wWtC$v3Nc|SJ)lU}RU(LhbLmf14w<}k2A0+>|y?n$#0-Zl_iY`Xqf!f{IWL$fJ z@+~59;dwL-ck;(U_lW{dugg~{>QZAe$IoAi=us=8TgwKaUEGc1@)ClLa|<7G;}C4e zds5STOPnc5<_}6Qk%@H}n{Ip#@llRU*C7|*XCz|9qEj^TjS=_#mqn?LbNQ=3z^lPf z>S`;ekmC24(&G$010&XH^BG-pK z?Yoh^RnV^;@IsNG+g#|qfsUkn#hoE%C?)VQTlmYL!nQwTyO#8k{cCO7^3IPcR9o2j z=I2zK^M?#ii_!hyD3Y8hL&GiB^Jj*&_-<%QcB*ga=f~@)Js(WEpBM2beWsMAb)Bhv z)`0c&3QQT7MJb6=*tzKzb>_cdK^HsF+%TNwCWzvzx+eSQl8oG82~^;82hkHg;P5t6 z5}P%WUP#zLci|@K!_}(i`b(kMk>1-uT!Y zhN#cUc`A-=8wm`t~FBj6O zSABGP`5_kCwirECM+DvB$+X;SE&H1|nUs7+GSfFX^w+hAJ^nBYv-7MFxa$$#ecH^E zLUb|E{EF{$TT2`ES#s|OBG~7)7}W*Mv}fQWwu`n=`o>~(H^jhp%v5q&JC6KTw!?@& z#G_6}rn3ALegE`>baTGo!}nc$mtP!xE6BydF@~7xzK4{WQsMkij_tS}ELnS*hsVFCUHh(5E-$3J z68-2JS%B`)UYKjmq#l_)G;(JcHE;b)x4br^$n+iS`J7CVdjgqengMAXNMJ^_cKE1Z z59cL|AR;pn-)_Ff?c(b=qc?<2|3e$$IuM zp72T)|HS`em)5#s>E)Sh**+=Ch;`&AzFK2*nKij-@1QN`f3Z53yCjz9$3AFxqqSov zP3w}N*h3fCy<>{FIXjMb|F<7@OJ6YQp{oSFEOo^A*wXZ)^LT=VKo^%vLO)^&&N!~- zA^XFq^UZZgmWI*kEsgw(Rt;GMKZl{S22Gn?!9;`BlSzat7Zu-xprUguv`U8}j73;U zhBb{(aicv(&8XHr%0dQ*(#{LjG`)WXy=%D7Lk&Zrr_@Pjm+4^GrXG5f`4G-(ld-Jv zIoxcPFtz${8rM+AtLrzA=o~i|a54qI1so|v>k$Q6$spw2L;Rbehrn&e5SITKLrxBm zk(4_`cU(k*`Y+}l+Db(|xy=1(CRCR6VSIZVJOmlm7%oS@QoZTG1$o@@=;h}}Pp8;h zQTXtFH~OWgvt5CUF>}pgIKO*Ky@*2WPg&$0{eqJRuhIDh=}h~$7=Q;&DA^uVP0TGX8}BiZ@_8d2?oJjJhUPr!C) z&o&hFMJJ(ML4+6fUO`OMGN{k1r^70nXhg~v)C%R${F`k=X8XCQatkJ%-NK4y|HR~( ziez2nNy~%NNqDdrS=v*$s&o}49(_;8#9a_^G>CjO?P-kQEI1g&+WMXI^p!g%O6Y-i3-v%zzAvpWMxWFGm5n+-WY z_sk4vt<5G{x7>^O&C`X=cTe6Ix`*ay7ICdT9SBQ_A>-buIH<@#=}+m%Ju#lB?SI|%V3x)WYEfOw*{Jf5in_z)X~CNqyqf4ls$%aURWHL% z9J&Oj3F&xyBLH>&8*s1X9zAWYAe$KvNqxdul73=Bsw%Pk>fC2uT+)cq}ES|ZZ~{i&bu`ltfCn?-QcDu(@rPkj1>OzN{)MEB20 zP^OF;Z8ed=xjyEZFRp#o(jfl1=t9I+pW?Z{EKEZ4aNYN2?vF z=uRxnw|_uxMzOdYr9ok%hEiywDP2Be#h13vB6H=1bReb^S66Y2JTK5Mwww5m$TL`( zwt}a+<&l`qbmSTH@r6(=bSUi6z9UOHXssCNYloo4P?KpuvlR%2! zWQTzbHc>)FvC zg`}Gl4nx@p+N?i~i?`a-1-l8{W0DWu8>>YjZtzl2n4`~`kQgvrkv0YhCu#wX}edmNod z>&}m%lATFBNKy}#_5b*h0}m*0i3f!5J2C=8&cxEup{?kxV33fPq1m@K zK`XeA{aJAj`O}1Gv%>{?d21YNTC{@P<_B`0p)pvQoCN8Ahq1$I2OF&33d{fUX@-Xu zBy^o|OXE9zOBzP^o)Ix!Z(jGb1-t*X(q(yj49aX^s*r%2X*ip>eJWLz=?eBfp3pW+ zBoWVajC(A~|DEX*Qd;r*#Rwxj$tyvr?66I=^P#XCIL zp$xN+oaYs(&al*2!JHz$L3DXK&08kW0TxfG;e9I27QR49Hl_44D+n^`*Qn{J6qnsy z2#LNB@@o}_hu;^rLDw3c-qT3fK?kc32sGEBi3l8T#9!QMrBe^JQCXZy%~wjf(5VbK zrDm}yqH=U^&t|A?4J8jb!Jg#0FG<`#$LiZAVY<_8ivN3u)&_jwUW4+`-_*&fo5$0v zg1cm6&_#I@>*+w=OHv51WSx;(WV>qz9KH-eV@EB*%#P7I#~51q-w>J*IF0s{3v_?W zULM^S2eba8JidMkRS#Lr?tIt^x2AD4+2t6HjS6B9<~Pv3{7fD@GR0Ky9BKOrT_Di!HVrG5(T#qWfGFG4{ zMK_$xzs`~k_R`(N>HHJBLx z>>TdEt(}5tU_%T28+jh(?mM}>^H-RtEM^lm&=r|Xr!$QN0-M;jJj_1Flgk6`ReJPl)(N@B7 zja2IUxSNu{i3oCk7f8t6#fk0+y7=TRUY#_icHb`~>v5Of98iPXE-m8GLagS>Ln=SL znAbiyLxsi*Xv(xdw6a`-l@#rQ;casSDrutrU@MoO@{_*2e#yJWwV<*xh9_RHLDjq{ z_PQ{d4jhSMqLx|YtZjgd8&^@>s>hXM9@FD%>b&MoIz?T$i?8!@F#OzDW)ZWT#@58) zbM9F9$jqT#tDQ*ut1(wHybHajODW6vx`2U5;+sFzS_&Arrw5!^&y@h zVSsVht9iJFFeDD%B0bZ;bl0H=BlBG8AN2@4RS9ZdRB+emanvx}22WMfab$!qYnybI z%2xSc&avZk-&!5Prnb;iYoU?XoGEpUG-7wW$3nqgpi9;Yhr$bCea#co?LKp-!%1ZD zfOzlX`&2VMi7$#$B_koCLp4t*Te^vlH8vr=DS3S2xM2F>%E_+4hDLl4W!3Yq!S2jV zW~KUqg4J{R<0YfWZgv~XA0|o99$YU!4fmM6vu_V(ld^)+FZYrrGa@=I*-lK}nf_oI|{+twZp28x1 zDWZeiiDK1hiqbe;rAcnI=*N9Ne${ErJfF?~6$w-R5q~y2shJ}7Wg+xWJT&|z1$`!c1m)WC zE0My~b@2mETsuR?S9AIBRq^yi?;|q0tX`*-KUOdWe7iGG3VD5odtPoj5KBrG2seT1d zxt@)dx-Y!<^J-*>9%Eag7U8hlctq{pMylO5Ji@;M2PvM zGlfjNggL>nq~!SsuQs%kvsVe-_HUu`V|i%rk;gxc;pDVOg(kcUqx+{*Npgq~3-&gl zzvFJOHQJMK$!;7TJk_Q}>00EVw}A4*y(n1FbF73INA4aSq@?i-$|aE$?h}hN zVP&>_rxGb_+dyee&N#Eek{|gZ=q>fE=Aj2SBR;v48V}e}cCRiyG9)bi@Q~(De<u zz{ekOg?^Ge;vgIHneA*U#m+o!uH&0eZ)R!1qsyKiM0c_C#|8P=L}SXmF4!WQFBWXs z)3No|Hl$s4M_k-+nov}Si1c2ByJo^DBAJH?_63iP+F0EZSCWx5hP;O--4+h!F{8aH z{FMxDS)Rslc^MWp;}3-9^%5$xu{ik)`_MiFi?dF1w^qp>)1 zH19byoPJWM-n!x=U_x{7iDM)Hs@Y@NMq^` z9#oev(7pG$|D`t+Fk=x5)ovuywGr%XQWiFc&L{ITt)%cwiyDd_(z=Q=KFs+(T@&)_WyoxWeGekyv1pQs7 z0O#zL2(ZwkTJu;wZ>c6eXdR*XorAPacq;P>>mu8!U*MXxl!W5G^Od)gNaj--Nxu1u ze-1y8@39#6&n-#gNEZ}cf6$vn)9^x&HLVwPVQM$@PO!@pSUnDnR_MjhJ6&fJ|*cMib}8d`91*rOC7La`h#6&VRx`{9O&Be|@4LHAzek+VtynI$qf z=I>$aq&Or3hVlzK%W&#`7HxDt_ttTSaM7KHAlNM&7m)$Px>YraLW)qMU*ejKe4TEq4#n3B?@ zyU0)(gXqtdWH^jb&Furcy~qr^-VE^V3i4DOCd(S%{GlOF;`y${LKt&$7IJs37qFPG z6qu|9m*2s(ZD9irmuT|W?~XyVe;r%)#|ta>g))Ed&DdnJkephsleFbUlm!Z7^>-H* z{KJ9{E04!1{UHd`98YU??D1;PRm>Xwj*csiVuK?CQRs06eLrhy*3@mxvFrq*2DUT3 zJWnzlF@agn97^x>=Cbt%&!9uA6;o9#=$+hQCi6<*gTKdfGy4nJcWExZj($iQjxjLc z1(Ylrg{5DEX!i0<-tJL}AI9-~ovH{T-mQRpxf>K~oY`f^P8_yQMX1SZ?8tRQX7DY{ zv5dv<`{OD5^CzyPGX_5{1faR`10@y6lheHh+Tx(dlz)lRcq4%iyE78K$6O%YwiKm3 zK{WKpA_^SW%?rl;p#kw+ZT@*RKLEr2q zwlBk&N;O`Qy3+yTPT`pMpBU{BY^8TJzJt*uBX+}}5jQ56F{#i4aJqD#pDEq~#Tz4W z#P<#A(j%C|D>GWG-45aS{S=lP1Iy`;DadyQtG0Ox7QdCo2j0Pp+&|o6qpx6B^Me}9 zPEnTMEBbWpHpV+g^7Ddz#`Z{o&iFWsg4iy8=%@jG^gO`!im4!H>>jpS-Gb~+3i#!n zc9^;g{vP&LI#LWeS$;qgMGH1X?GH4l=btD=9pa?eeU@v?i^KQb)A*^!5ja?+L+<7` zNiK=QF?kVX+f1gFXaB%s$w?M*HJQ>z_tW34k=T+e%9HYqXvWNW%(gHdQctGiRN5tc zC>x4fUrL~_zMrh-X3@rsI=UzG2b*qgr=v5{uw_FT+p;x4(4#M9DaNnqmw7)+a<-?q z%%?c@&;>iV8Ts|BrK!Iz(z&R;0$nN2E8jUHsLq8nNB%(E`4D()&L>g(&-7mvqrZRW zbNh&+bVSvYz1#7Tt`t<#q-_Hv`pb_Qm?To~+!knAC(+@xK73=iDn*{y3e}X^G&X%J zUEeE@eS&@7%9=2|Nn%_i${4XshCITXNj9vS?d{%)YGzLbc?{-5E--}!bMW;`B;Ec~ zPMI4(bLge=m|h65=F={DBF1Ei zxcq5cG+K@wchBRaocB~~t2V6trUbRg+pxgO3>Ghn=TDHh_n7`^m? zUYrVUB+nUM@X^nEQFAf|;dHwH|ScW{Y?CF zJxD9+;+@h2Fk$#a4|#aWeC?lDO|OCBvl=+gah|%{WZ_H|(8QX}prrkeC^7LO&Yh>I ziH!pO$e$!(cnP|%@IjxF5O|OgY|4mZ^jjSC`Jz&MXm^@q^GsvzVRpK7y9RQuV!=tv z?I5~5hCGVpgkzpHr0B3PJU6HG?3Q;REUyLU6xkqBJq9{|{zLnhU&%v_c1V6Ej#0KD zc$-;=ddpftzu6C}93%CB(dQ59+I{VR=UnlTSH>4;k+O zXV-T6NsK#zHtQX9A2<3V!8pp$|12u%pueCBHO5O2>7&qJ$q3^SB7-QFHv9 zeHc<2y728~1qe9y1;dMaXxJG)bjuo`8$U0`?TfRp^K=m`{;`t2;?0H*dYJ^TIRV%8 zK4SgQPuS9Ui4JeQ0GZ`x_>cE53dgA+XB;OOgyrJ7(f1(Q-UKR)?kbvzRd=u2kNadl zk?$&e(A?_Htaq93!=sb*qFE@ORuRWsPbN1uqXnNQC7}AS9r0t@kE;?7FwF&V_t%xa8h z|H{nsHbU9G80;0u#}knXXve#h%vPqstJZm_P#le3HxuchfX%3XP8k;}Nr8xzHy%o# zfaWwUXv|>4_J(q*ZI+5}R@tEpGlpLL@c_n8ECUUVAB;|t2LraQrD1wXV0>K>HXpkU z(L9gov9pZ!Qpg?0?~NeWi(tq-S%sF27EoqZ7E7-Mx)WT_oW)7I1<>QokBQ6P!18Beio{@w$@ z&-c-FBPr0>UXRYnH=)MH9n!Ux@b!EJ(0(wAK7zL~hViRO_KaurAIIPot)xcRlfgsg z3ax&ikN3Xc1$%)(obai|pWB{u<1B+ZC z%5z6Rd00LMPuYW|=~ryM_Kx{H-O(U!7o3l5!)p`65Gq|s4J9n`g7bY84?Tnd|Hb0S zA$_d26d;f51o3Z&FSYjAkBv;ehc_<|uIN3WM{X>{w&MG6s&6}rtr}y-HD^rnH6YbF zoUnFDD7AO(gtx~+Ft8*YW72++0_!zU@Od-EuYr)Dg@LgI@x8}UT=PJ)YcV`Ve$f>0{Iua1Nw1HmrE(gvd z`yjo_24$M+NdLrUST6PxIefI>r?)x1<+d2NPCAqB4LdQ_^d9-%+>PSrqF~Dc8D`Bm zK~7qwfzGLuRB_&BJeqr*u%7e6@%cxH%ak(G8%9KL5g%+FI!cax>xKaZIcj$`6+LUj z2|w?1+`Cu@3b|}x{RV#&9Ii*b0e^JTt43vQOMKfpjnXaE5P0PsZtadC{l_aHW{((k zs920o4eHUz?lSywcm%8YcA$Wc3!}H!$J@h;@tRaRZ1Y?O26;i);~9+Ebyhfbz67%F zeSk*S4e+0XIwpU8N)~!7fu=S8kbdjLg0u<i+(GjrG0?p^1{TOZ1OsN>d-la&Fy46)c7314n&O?1uxuZZ zWi;%E8t2x}d(eMXKT%LO#OdstI4@5Eex;gGvz%F|&^(0SPp${+|LQ@d$OYH^S^yb2 ze^Kak2zEVP125Ce>4Z%ylpeN#*XGuEa)^s6`Y`@9#0J;LvcS6w7chdm4S4P`JfvyH zooVUt2KAoBwxRwvWcdTG=UvcRX!3vj|M1l3>3!(Q(F)R5t~bEJurPR9-y;X6u16dHl; z8#jiHZ3S*7pZKSs6q`ylv3pS@kXNrUG)oS5s-7gg8O>Oetwav*3B;#?;qZ8&2*y5B zM9z*RJojlF_vrP(?V&KTU9Atarauv>XE$(Vl{3V|&cY#^(_|gvH#g425zXU!al09# zk%;}wc3pUNno6E z_KCvE0yfH0Itp#K6sgn>EleM90?+3@I22ifTYMDYvwtl$tY&gYLeaEstpobLPlYNb zhsSaUK*FL3UvAWa(~Os@(|t~A(iV(W>JRaHIiqWyWjxPpJ>f&CBPf>7gMDjdshDjP zaywKoo;bZYv-<^kC6p(yz)Z^w0h>_`4c|$;Ge7LD3L(xSWQ6ViVAe{rs0+^ z|7dQ#3G9#gNi}0$fLXmgCk#&V-jj-%yy9;rp9)!j0Is z^mL{mOfq9w?gehlrM7g-JT>rcegXv+u^{UvL@$;8gQ!PU^m4&wjQRB#Vr&lLI2ih6l6%fQ*h4`a~bZ&R-@l+9XUh*Y)G)Ct|Q*k{xa3O!4;z zTRhX9MOHk2hvk2?@H}531Zlm+YpmDNP1O$6?7gsYvjAa>I1KxP#_+PD9b_zh0*^Ne zgVW~w@JhJ_R}crXLs|=-vnFHtH6~8xD@jW{BvIL80kKGGN9n3Bz zAwVBGpB#m3_9Lc5xSR!Vd29H+UBGL&%HjuzdH(`@Wc$?ahRZz>^*wv zW)*Jhbp(ZmBRC7mgyT>FT)DiCn4h1314UUR*0h2#7Pg1w$Fku|w*vY5w;w~Y6;W(S zHSX?cCcQ??I(w1*{VYsxkbo`Ykv*&WckD zufd(et$4d8h)(w|gY~zjF-z$g4sT+(5uq0u-qRT2d{+*tmV2RoI2m46t{`sBV<5cy zE8V=d7j+AqX!OEE*lchaKfP{*OH0G)#rd;v!9f6*wd@7muUlx}Q&rH&Dy0feUy<{K z9vWu$LzM7glC7V@#_wST9T`W)w}g|sCt>xHw;*Pye18?U9utJoA1ToHw-+-)J(NW8n?tosI4#O)2Pdm2j8jd<2Kn7oAVv{l zWcSltqaoxCG{&D53>GaH<2iRRbdm4Dx=WYiX@8Sh8{GT!zJQRrDF(I@%{TmZ^nt+58g7CR92~TMXV@O** zju=;9!1)G@Sa1VN=C~3^ashca(DN22&~0-suJ$>B)w}LNuRPbsYPJ)YcKhJCkW~^97*fF zR?zx!j}(?gAus!3j za0U^k&F`jRCi)VRGBX9XA{6!iQ)4C^t_V^_>r3nY=nN<5j=~CxU?cv^H*I zJUgSss$pHC8F=}6fKT6(` z)=E#@m$v}J)jmRQ%^^B9vmWh_IFi}oI~d)32NM~dl45}=SyEY!F{{pyI)c!DQU>oU z^up~fCMUC81g5?$C2EXL+raBJQ&Hj@>aOD>2SzmDeZfCeYivZ0RS9JGc0C6cL*bKte*Cp_cRhQM@ADj0kVr9|v-!~1RU;@Une3L1v~{9@V~R)jhm zj2J)hE-0Rz2Kg>-Y=|f&e&ZsT(Q}?2lq<$d1wts1dmT50%tEF93J^RY4*@#>E~S`I zp`Jo`X)p}8ZBy~3(PAQ;Z->7*egW}H#lSwm_oJh*?Gu6Jmuw+VhfSOcCC zJ=np)aP)2rqi1g`-Ro=w$GErBP0c6p>Ss&x)=C_1)p1kKMg?eP@@Gu9$50j0&{M?hQGBwpz>^- zvSjUp1848R=AE)A5b6TKyFWmOTr6qpQHR+&M(?}mA+jxUr@Yr|@wuQp9(1n3y=Pj8 zYK#od`yoI(gj5)3xn?T6-~%3d6G!WfT5w|WFZxYt!H>U(;OIFmXqqqup1_|Vmp`AF zrkp^w<$<&}R~fsn2_yf;JJ5MtnYxZmquyRqvadZBbyFyfX!--a67ke>-Env)Ax|2| zw?cMS0shl*hI_Y`!`CmCIA*qoPTL&EPpxK1Lkk(-9R=K8^%yJ772vGP9ZZY2CqC9c z(f#%~IaSFEWk<2ksCm8>7eY$IW7$-K{QGLl#WHDuQec6XFOf?#W9hTy1TYj=yFdo#q z+^Kw&HAH7zBks%NA$Nf%S#Xyhj@opi|9>8!A*CAgU6JaD>fqnJ>(n!R2gGVI zoQSnam{i1Y71V-p^z00%$i0UrjI~F=mO)74dx4x8<#6kC8#;%3p}pTX`Z&@7Jtf-F zPmdp+9E6C;%e|02A&Bz^RG9qg4bt(D!r=K!#P`Sxj5PA2Gsf9)H19DPYd(Z_JCd+6{@#yr9n-)q9A-581{+pCumH_O zM`)7VNS7KmfxEX0Xld=jMUi{(;`!$|wpgA946cRxyW!+boEoE7R)<$UM}c=}fVdah zBCBv97HW2b(i>CKq-lLw{Toov>IDxT+I~oBlk(&d1JVTd@O{ zR}Io7b*~_nQ;ZzE{gd&F3!_Txdr{@6E9CFUfY9Vdy6^r9_;A!2S2=gU{x~=C`1>Br zj&8;7Y6BG1WAu#rzu@~;AIh;Y0!Cxgi2c)Wynl(Ccxm{;k3(z7w8H|ZD2pPVjIZbe zK`oHia7CM(wK#dA5AId5GnF~opoNOk^q;e^BFX}|?4+Q;zlt9JtAkBGm!Lj&9lZUu zlw6g|hnpsM$mSC{$fAFR+9n(WzZzevaA5!gjCaGAu?C3Gtbwm5-$H@0IW?_R!qBH@ zNu)YYh0OaAMyWm+A=ZRf#zyEs@bFo~O(9MAiTBe3Po51Mi8A2O9_u;>@#3-RqZ zaULFrXrXf0w&p2}uM?&@8hIG+o0(8&nLP zk>kp9Dt}u7xSTgKd8-oqHI_kk91sGXHO1h%aTp#p)x-KE2fTY-0$!hcj;pQM@Wv|@ zwCvuEw#vF7+Bkrzmb_50JqA*QUW1abGUQv8!E|gFS``a3ze^wSm(d?6u#+UGRjPsW z_jg9W>xPjD=RmWO$(LEX6HjDCZMJf7<9mbNi-aJ-;083CGcnLDv8Y1zsjtxuaI{rL z2cslBQP@ZfL)X9#G(&Cf7f?UFf|T5k#?EyD)NfZWH2*tAFJC!`m)1Xm;=&HB6%2>g z21duW?*$E;S^>*ME$06~f5G_n@K;9x%ptT#}fN?2|yd1?FK3B-E~D`y$B`hPSR6e}t^CSpv}_sWgo7 z_A(Ligq5-LVa*FKR6W~`X7?*Fs_8T4-4Z|%_4Cl2*orK&DtOW$hHeV6#zV(@7%d=E z59JxbYz}XRkC#NmT_SJ;qjj8M{7B|!f1#=_H!*liA~9SM3_eqNWT1^H8@i0)6~^v? zf5n#wU-3))7FmJXix=UP;vikb#Scpx&d{b)N|+rRgBCs;K&b3Akw`X&x3~XMVZTEB zurZgKrAniWM?X1SFoWcUf~gC>lZbQRRfAEO^@kKy0aBh>Mi0j4RB z!Q%7I_~*}aYB$dd`mDQ2yU7f`{VIrg6Mfh)@(Y}%Ug7~pduOvv9xpz;MLlFUp?e=M z9X;9%=6Bl(E9)<`(lw=qo4a9tXAe~r{)T6i+{xlg1heV~KxyO-zBns@3%asl!#W@? zF87da&rketWE?^|_L9kmN}zM@5A|T>!hPo|@bY;pj2ZbtPM7QBw-GJUT$zEEC2}Zd zmyOn@+SI-836_cVQPHlI_;sd&S7Cj>D0B5;JdFcUa9cR37T<)u%VnTnD<5|%#n23XX6;9Kuu}dJ zDl|>d^g2r@-Ms}?GhV~J(c8##onm+qd5!MW^u?sASbP*$3YUATXv)(NNb;GceJj;L zqedN;FOvW>7Yjm7|KhqVO?dCYg+=c21ovOY-A1CI)xiQQ`#nj%R08Y{>SEY9;vf}2 z9}-me;OeIr!1K#>6s>L|QV*Cp(d`&K9k3X7pQ^+$+hQgTdWEh(>;?-yc0j4)ES~mT zOoI+=!Vu>7`O|7ayvSRNp4T$LML>w$GhBgZexHZlyeZIdd_wCpJ>Z)|D%KeE;nJ?3 zw9aZD8fdV?#plN%^S@-|OFo5LmvE8emHFtac8{b5RfGNgbRek)j9=pis2mxMUZyfq4hn9R+=<3Lg7H9Rqq@x!n83%jQE;f3& zf*IrX`ok2H>x~%qBB7d}VPzZ}xp-d?2Q?VofAMul$qL0yMQn_>dkDSyGY|4l)nd>J zBaE|=MgR9d;JbD#Y+$?%U+w%z2ixwzN#?rQ;y$!n#E0dU2)VKuwBpB2ShK+mgHN6X zOUZn=E~ke31G?xRNq;aMPM{{%zL4a!3Wr)p@#6DWOpN&sN?mV*OBom8i17@`((=QU z$tp_ZpWp@E17w=vjasV@W5VE5{NfWxb*imVE!G3AmF}Yf!}oH%*@=TP3#n!Z7Ya^| z5R>y!_~G9eG>Y!P4No7D4ML?@#pLs3b()xQlAlhbbmQ}ruDD<9E^ssXeZ$o%zP|k2aG7L!v#0J$(a-r z^kh5&gN7YYS8ftgI){PJi4zWA+lwvz!*KtuFv`U_;HkPI=B@LZ7}Y7LQmv{!_LV?*cZwR6T7@< zn`a}c9%~~_fgu?6)Ce~$^eAKch)`8V0Ag zpTl`Cry-;MH%dG(rB@p!Fi%YZW_ixS^X!krrRW;t7y1xn7*GGh4rf3?Oc&HeuHu(@ z>=-xVf+cmmU?u++;;uI#zm7OjT+0pu!D=Y_KohbD4}kSCDPUFNg*A!H`sHLBeXe1Q zCNGrfuBZs)8NY|tE*0?BF$K#QpT-Nre~6=oAh7hWCyhH!!3pUTWMOwau+P5;5%vk# z#L5O2JCiZ*_%hPtbpSsu{6=OixqnPCGsi*#bl0j%GNXNlw5gV-Ij? z@mY*o{~4QtexT2PnouMYLPoVX;Ak~sPi8C#DG5*|@7uT`uMG{J&Z1;vDWmth02Xn} zAoywteE7G9Dp*{`#&wr*SKURN2@t||zr|R=#Gf5(xELOH3{hb}j`;)TbeSl_SrlZr zp|%F_{$&@beAEI`JIC?kGkv%(t4b2Z0Jn2TVl_uJwwrg6^Gltf_{3@4StVgndh#wy6W2BLK#9b6oOrE*8Tnsvbps!hBY%TkV)0~&=331CnFLq! z%AmcRlC>W}ItOC!_!0^!2MJ8Ib=jQgAKL4r63PRjYh(e`jm zYL%pov8t$Ue3jI&66g*(LVWel9r&|Lp_orx1YBy}DIYCYrPGHiy&qT_`5AXAu zgIV(_bk_!IsQe2(a~MC5jA^i36HBLFZ^X1bNBT{x5CtQ>Ndi-6&Ha%y;mp1Pw@hsz zohJ#Scvr&Inoc}{1@o=pFytum>#eXtY2A7TEkI*LkyZ#fMU@ZWL86EOb zbOV0a{0AE<#L-hs9uz*kN69dMI=YAX9qEZcX}N09cNHP?ev~3xY$t3x{20!sb>YnZ zcliCj1$q4J4vwD4Ba;=sAyB=FP;ohs6+Vj|DimJ-ctO1)m>LBKr0}Ox0W|f*F?EvI zaVYdEsK>6t6@MbIF2WVe`bd%iX z5CQFzeAM9vU~$(AC|mFdv#-^`P{4oC*X%=-f7-&)uw?RFR=A>v4RT+eql;Rr@WLGfaK7>vOs6)Gl>9Q3 zkc*_z#c8-c<~OkI^#iHfmGqEj6Oc0lFkf~GqPdM=1)~T0G3amDJ7lyB>Ps1}q!X$vdxuzf~YOO}D7Q5#lPzr=S}+`+9n1}?3%A}`B5;bhVz z89aP}@n8^z4_QZXa>FMQA<>N&7@p;w^ySz*xdfaG*>P{+FzR%S;Z&>^G@na``y6>F zc!wX_^y-M^>3ul9Di60RY-M!H_4sdh9Y$sh!JXn8m`&}d)vARMq1%mT!W3}Pwnj*A zd54qLE##X*mpS;(quM4Pna@nJ+_^?TZu5aqyb`HGKCq>UC8{Y zZMgS@C29E<1ZS*Mh@XlxSf7lAlvkXv>cdlLUYL#kl0B&S^cz@7-^IT?YoVzAF=1N* zh{{)Kh^#*z5p|_Lk}fbUKT17={IL4peVWF^3*J8-gTM$C_#IF}9CHw0aSV~D_eAzJ z0T4N5j1iSJz;VnTxyG|0sMiPX6EDhJb`5*`hDno_GtRgs($TM<@xy@*V1K?1-2bW) zS3So2aH5i`@=M?;#a=4^rGepDu~Qav8F;GllqTv|VsLmS^gru_9K}#-xJ?h^-?0$Y z*Q;Uv@@J6sC;>dTe*{T}r}e;4k3vu!yjV3t&1b*iI+q!6@Y#y*)-t)ruBEtUSct@V zZo(VaCxP=>4cIN+DIm z362&W#p-!)U~Ll<=e4+mheMyx&X^1M?9X3Nb32H$w)K>HibKd*R@@={34-|lgY7>p z;ZfvnV6RJpV&hHp=9D%x8TX^?*Y7ZNH3~DO6;c1b8@zzE=>6CZHGilxwbBlgy${$R zL$-tPiff@f3kQak2|`ps4{g(whXJJ|(sWT8La(f&m%G;DMpZFXzA}L}3}3tV{uzk3 zmn5Fg+rTrdfqF3dIJM$dT9}uNiG|&uGP#iPkYs|ve^cAs5YTFnSFO!KqxB&o@BB zR<4KYB1t-NRsl=T?4hL&nkc9_L4>MuA=5e&)Fz!k!r=z)Wb(ssScM+B8jYnI-^s`t zMUbi*#4A4K_(ggaMXck%a`qe1IlB?ra1)y&5wnt9VAg?K5*;5A~J7&z=lXE`ugS${PvcgT)BJ; zX52F9m7hZ}EOZJ^=NDnO^G3QSa}aw9I?(X*Vkkf5OMDq0ll2O3NPU(#9%em?N^udu zNPAIQzY?gH78&FCRAYqwPq#IhFUwMAVNHq8WdBs+#A#ih?8VM|j+vKSbsDGDia%#OGR@!5cd_mAKliL}wnIky zRN{H%pU9rB*qE-mYC67h4eO)Mg~KIpeUFruN2M!|aec3lxX&58`^x<$rvTRP`>fxy zIXf=ow3CurJR?`H706kzM)IAcsnV*Y>j$M@ADub9PVZaZwc7$bO8dWB=Y$!b<+Mr9 z_1IC!dD6W*dvN#qcjf-u6$2Iru5*bw&N`x-)LWWNHmDcvwG~aj5;s}v9JaT7Ly0k4 z%07p;!bZc*BE2znycsqJ#My2%ORqe0C{S_X__Mk~dFRBFyp^@}&jia-MfPW@?OWim zW%-T%$ZxtH+H2CaZ~n+HdZb`|^xd00?qyr6Le)BSGC%2`?XdPRcz??zE#19LK#}Xr(o5d+#3nr2*T#y!-RYI}UcRX0-4f1{ zJ3DlFcyGP7`)}7%b(N};#y7gsJ~lJAq&(`*fOn$X&aco^O<&l+26@*4Vku`*_UP7LZ&exYzSet-=h z?yvO)53kWvPH#34I~m%N<^De4o%hs{-M=3;Cg4L8TGz;#PaBua zdn@)z`1fo>Yh2rTujCUVxo-{A9V z>FCQ^L(dj}HRo#oF29X)51Y7YdBX#%E7v+bdn&h_j%d=)a5y;r%jSIcf*0o`)-SvF zq@wqW>x#X_VWG|{`L^1ue->IQ9(o>B_TQZ!lkt2fS|hLCTprx_@xa<|;YlGprQPcG zYByvTJu)s7WFYW=)!i9H{I6^~FSA|Aw4F@zW7<-tZDyJS(>^hcDc}WqOiN%I7;&6z z+ORoIsdQ(`9sjYG=?fiO18&M;utMZ6jn`lMs*Js^%HJy&Qy$X2#-%>>N`JxnB-^#E z;<@f7$$L(R)k(Na{y83GA1~OLYFce(^EAf6S=(@S@Ohj060Jk`BW_=c{*(pbMGc&P zI}gu)mZ!;9yKZ^Zd(}lOWjV#HL?HCkwkv#U26mr+#f{c{{Qac+?DYq(t9u?Q2LAlF zrFWUzH^<#0qG$e-dK2PQV6`w)xMb#WqGW*+&kNJ6z ztnnK-X0gvVLnL2^N4D$y-Pm`xh7-SU*UOfkcvRV6xZ~pf8H#X<1D{hGd3!iybTO|?aZY<%}=E#vpG(lTDo=W$~1(Ulvb zAJu+ez3E2bmm%@Z0r%d|NGgUsd^@^!$CF!~pQKfbN@i8D6D@^lfyU5zM9AhP!gYc9iF~z%|wm=y&bEE>aRahS=G~e^Tke!?OuiL z>elkkPn$GsrA{Zk)v{S>`{13n!-_*u9Xd{erU8SxCwbJaq5g?^I`Jch=gx{XWEpv# zU;8!9*vC@wUBN+bdzIJE54#>()DwHu!+hSa+omp>BC}EEXLR|0`&$@hRh`;ywLkf# zt>W>6&%c~mV|(CH^93n;)2Novgdz^Y2T8zpyBG* zbAH$6piQC>pS_E1^XoWJmw4`UO{I{@tk~cP0NO{_fT))=M56)_b%o_0PEB z{eAZ)W=%4WrO%X~3}L)wsw^*gJ(#M!5PKr~U#rI*yGOm*%bS#Q`|mILwCTxE(Sn*) zPY3f^%jKSRhRXk#|DxyO)&Z`fpYh_;A|*er$o&y|nWz`h>|UOt5!8O}^}S;^t4~&> z9gHqJUisie(og;OITo42JF7Fj3MP#{X1EkhnASd<-&Dd@U&#G6Z$V>;(5qC@=Hlg* z8H+zXS@kberLAD?Xz+&5xtoTgSATuHt@HM}@6lhB*{=VLZQRTi-+8@8W?5+WwThK| zmwIpgJ-Aw6iLg*xSgv7n&j{7mHV$s ztZ()4-S1X@mpZYhMq*mQ$K-?LsOs4RujD=~H1sW7_jRORU>~lrc>_X|5syAcoOS*f9N9HXX?E3MSu>T$%n_yWujkEm%o-t4E z_whR4c%Cu5&&HhO0=Bu=%)L_W$_*ASCIa#QAIux_ z%pK-oMit_y1nW^vt=y1m+rE<~^D1l10pk zd2=0b%#Gn1f_7^G?imiO}59|8*RT|91h?Gv@~9t`P*af6R8xlDQNA>p13S989&3|2;Qs zl;5PFxOt1xRyFlq8k$<5mUxSWi)AM}s6AqKs@Ma!hm+zFah#NRMJzsVfdX9>e5I}o z^17+yN2)IBDyN{E$_m(bg>mv#TL{T#n~^PaJzVG>N6yeFP!KJLXXCoyA0|(0WRQwL1Lz+dnD{cq`q#dy9z!@U15sZ8% zIY8cypdm>oV)4t7H~l$LI>KcA>t{e}YByA88sNh9!)T~C48@F7Fki$!kTlfAk^^pV zurm{GeX1p|YEtpKx-RDY;Kc|-E27&z3KhvN3~MnSZpw_%n~Cku#!=CDhQ>)i{{x165$9(k+m^UyPA~dF0~31}J3MPg9u-u|7o~BoyMn zT2B;)ZZ%=kOQ!nbdSh6uCPg-XG=O&(V`!$6Fg{)-PqQSeQ2(zh)P1=DfquDU+d2_= zw`Myj7MOvJUG>DR&<*nQo)K_qhYjYjFd?M`-aOTG{GkV|`?8W6|5^Yk$sopRf-<+~=WQPM=lQw4=;8u9&NA3WA%fgF!k zLFN1!9Fg{;Vyj-_WY=rr&vy={?c$JK!5PCDXT7yQC$LpZf<9>GKBk`vw-bGE9eWcAif)`VE)akAas=j8_sjX>L5{Uuf7aH z3#9P-ei?c|9{Z9yrBBXkFtdTF!o@&uqHjE59#Ey&R0o zYr<)a Date: Mon, 5 Sep 2022 19:26:28 +0530 Subject: [PATCH 165/717] Add lockfile changes action (#818) --- .github/workflows/lockfile.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 .github/workflows/lockfile.yml diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml new file mode 100644 index 00000000..ff7bf6f1 --- /dev/null +++ b/.github/workflows/lockfile.yml @@ -0,0 +1,26 @@ +name: NPM Lockfile Changes + +on: + pull_request: + paths: + - 'package-lock.json' + +jobs: + lockfile_changes: + runs-on: ubuntu-latest + # Permission overwrite is required for Dependabot PRs, see "Common issues" below. + permissions: + contents: read + pull-requests: write + steps: + - name: Checkout + uses: actions/checkout@v3.0.2 + - name: NPM Lockfile Changes + uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 + with: + token: ${{ secrets.GITHUB_TOKEN }} + # Optional inputs, can be deleted safely if you are happy with default values. + collapsibleThreshold: 25 + failOnDowngrade: false + path: package-lock.json + updateComment: true \ No newline at end of file From e1adc6a3bce6900b07ffc242c63bfeb0cced5811 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 5 Sep 2022 19:43:11 +0530 Subject: [PATCH 166/717] Configure Renovate (#819) * Add renovate.json * Add renovate config Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- .github/renovate.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/renovate.json diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 00000000..d74593fb --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:base" + ], + "labels": [ "Dependencies" ], + "packageRules": [ + { + "matchUpdateTypes": [ "lockFileMaintenance" ] + } + ], + "lockFileMaintenance": { "enabled": true }, + "dependencyDashboard": true, + "dependencyDashboardApproval": true +} \ No newline at end of file From 790bf5eac3761d65debe6766801474750b312b84 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 6 Sep 2022 14:22:56 +0530 Subject: [PATCH 167/717] Fix wrong notification count --- src/app/organisms/navigation/DrawerBreadcrumb.jsx | 8 ++++---- src/client/state/Notifications.js | 7 +++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/app/organisms/navigation/DrawerBreadcrumb.jsx b/src/app/organisms/navigation/DrawerBreadcrumb.jsx index be5b345b..face349d 100644 --- a/src/app/organisms/navigation/DrawerBreadcrumb.jsx +++ b/src/app/organisms/navigation/DrawerBreadcrumb.jsx @@ -21,7 +21,7 @@ import ChevronRightIC from '../../../../public/res/ic/outlined/chevron-right.svg function DrawerBreadcrumb({ spaceId }) { const [, forceUpdate] = useState({}); const scrollRef = useRef(null); - const { roomList, notifications } = initMatrix; + const { roomList, notifications, accountData } = initMatrix; const mx = initMatrix.matrixClient; const spacePath = navigation.selectedSpacePath; @@ -49,9 +49,9 @@ function DrawerBreadcrumb({ spaceId }) { }, [spaceId]); function getHomeNotiExcept(childId) { - const orphans = roomList.getOrphans(); - const childIndex = orphans.indexOf(childId); - if (childId !== -1) orphans.splice(childIndex, 1); + const orphans = roomList.getOrphans() + .filter((id) => (id !== childId)) + .filter((id) => !accountData.spaceShortcut.has(id)); let noti = null; diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index 90f9b4ad..309c322a 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -114,8 +114,7 @@ class Notifications extends EventEmitter { } getTotalNoti(roomId) { - const { total, highlight } = this.getNoti(roomId); - if (highlight > total) return highlight; + const { total } = this.getNoti(roomId); return total; } @@ -166,7 +165,7 @@ class Notifications extends EventEmitter { _setNoti(roomId, total, highlight) { const addNoti = (id, t, h, fromId) => { - const prevTotal = this.roomIdToNoti.get(id)?.total ?? null; + const prevTotal = this.roomIdToNoti.has(id) ? this.getT : null; const noti = this.getNoti(id); noti.total += t; @@ -181,7 +180,7 @@ class Notifications extends EventEmitter { }; const noti = this.getNoti(roomId); - const addT = total - noti.total; + const addT = (highlight > total ? highlight : total) - noti.total; const addH = highlight - noti.highlight; if (addT < 0 || addH < 0) return; From 19f674cf5f20f2a2f933107ca728b8cc0cd6bd61 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 6 Sep 2022 14:25:13 +0530 Subject: [PATCH 168/717] Fix unwanted changes --- src/client/state/Notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index 309c322a..d332f1f2 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -165,7 +165,7 @@ class Notifications extends EventEmitter { _setNoti(roomId, total, highlight) { const addNoti = (id, t, h, fromId) => { - const prevTotal = this.roomIdToNoti.has(id) ? this.getT : null; + const prevTotal = this.roomIdToNoti.get(id)?.total ?? null; const noti = this.getNoti(id); noti.total += t; From 2ded7d9b1f4f44b9e5749f554e14fd42a4b9ebb9 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 7 Sep 2022 08:40:10 +0530 Subject: [PATCH 169/717] Fix crash with unknown mime type --- src/util/mimetypes.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/util/mimetypes.js b/src/util/mimetypes.js index 7a94e0c8..bf7efbce 100644 --- a/src/util/mimetypes.js +++ b/src/util/mimetypes.js @@ -26,6 +26,7 @@ export const ALLOWED_BLOB_MIMETYPES = [ ]; export function getBlobSafeMimeType(mimetype) { + if (typeof mimetype !== 'string') return 'application/octet-stream'; const [type] = mimetype.split(';'); if (!ALLOWED_BLOB_MIMETYPES.includes(type)) { return 'application/octet-stream'; From 4a35aa72722d7b2d0182dc65cbea89ab13fa316c Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 7 Sep 2022 13:14:15 +0530 Subject: [PATCH 170/717] Fix crash in manage device --- .../organisms/profile-editor/ProfileEditor.jsx | 6 +++--- src/app/organisms/settings/DeviceManage.jsx | 16 +++++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/app/organisms/profile-editor/ProfileEditor.jsx b/src/app/organisms/profile-editor/ProfileEditor.jsx index 972192ef..5085bfb9 100644 --- a/src/app/organisms/profile-editor/ProfileEditor.jsx +++ b/src/app/organisms/profile-editor/ProfileEditor.jsx @@ -16,11 +16,11 @@ import { confirmDialog } from '../../molecules/confirm-dialog/ConfirmDialog'; import './ProfileEditor.scss'; -// TODO Fix bug that prevents 'Save' button from enabling up until second changed. function ProfileEditor({ userId }) { const [isEditing, setIsEditing] = useState(false); const mx = initMatrix.matrixClient; const user = mx.getUser(mx.getUserId()); + const fallbackUsername = userId.match(/^@?(\S+):(\S+)$/)[1]; const displayNameRef = useRef(null); const [avatarSrc, setAvatarSrc] = useState(user.avatarUrl ? mx.mxcUrlToHttp(user.avatarUrl, 80, 80, 'crop') : null); @@ -96,7 +96,7 @@ function ProfileEditor({ userId }) { const renderInfo = () => (
- {twemojify(username)} + {twemojify(username) ?? fallbackUsername} - - Last activity - - {dateFormat(new Date(lastTS), ' hh:MM TT, dd/mm/yyyy')} - - {lastIP ? ` at ${lastIP}` : ''} - + {lastTS && ( + + Last activity + + {dateFormat(new Date(lastTS), ' hh:MM TT, dd/mm/yyyy')} + + {lastIP ? ` at ${lastIP}` : ''} + + )} {isCurrentDevice && ( {`Session Key: ${initMatrix.matrixClient.getDeviceEd25519Key().match(/.{1,4}/g).join(' ')}`} From b8a8babc88201a5745238e85a9bf79de5f489a29 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 7 Sep 2022 13:24:26 +0530 Subject: [PATCH 171/717] Fix emojiboard icon background --- src/app/organisms/emoji-board/EmojiBoard.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/emoji-board/EmojiBoard.scss b/src/app/organisms/emoji-board/EmojiBoard.scss index 7f2e2384..683026f0 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.scss +++ b/src/app/organisms/emoji-board/EmojiBoard.scss @@ -38,7 +38,7 @@ @extend .cp-fx__column; } &__nav-twemoji { - background: inherit; + background-color: var(--bg-surface); position: sticky; bottom: -70%; z-index: 999; From 831bb83f4edc385538606d9e0af6463c7eec4c75 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 7 Sep 2022 13:46:44 +0530 Subject: [PATCH 172/717] Update and simplify actions (#831) * Replace action with one we use already * Simplify PR actions * fix name --- .github/workflows/build-pull-request.yml | 24 +++---- .github/workflows/deploy-pull-request.yml | 76 +++++++---------------- .github/workflows/netlify-dev.yml | 26 +++++--- .github/workflows/prod-deploy.yml | 51 +++++++-------- 4 files changed, 75 insertions(+), 102 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 1b7e0aa8..c43d007a 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -6,6 +6,7 @@ on: jobs: build-pull-request: + name: 'Build pull request' runs-on: ubuntu-latest env: PR_NUMBER: ${{github.event.number}} @@ -16,23 +17,22 @@ jobs: uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 + cache: 'npm' + - name: Install dependencies + run: npm ci - name: Build app - run: npm ci && npm run build + run: npm run build - name: Upload artifact uses: actions/upload-artifact@v3.1.0 with: - name: previewbuild + name: preview path: dist retention-days: 1 - - name: Get PR info - uses: actions/github-script@v6.2.0 - with: - script: | - var fs = require('fs'); - fs.writeFileSync('${{github.workspace}}/pr.json', JSON.stringify(context.payload.pull_request)); - - name: Upload PR Info + - name: Save pr number + run: echo ${PR_NUMBER} > ./pr.txt + - name: Upload pr number uses: actions/upload-artifact@v3.1.0 with: - name: pr.json - path: pr.json - retention-days: 1 + name: pr + path: ./pr.txt + retention-days: 1 \ No newline at end of file diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 97aba4a3..f5dbacc5 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -1,68 +1,40 @@ -name: Upload Preview Build to Netlify +name: Deploy PR to Netlify on: workflow_run: workflows: ["Build pull request"] - types: - - completed + types: [completed] jobs: - get-build-and-deploy: + deploy-pull-request: + name: 'Deploy pull request' + runs-on: ubuntu-latest permissions: contents: read pull-requests: write - runs-on: ubuntu-latest - if: > - ${{ github.event.workflow_run.conclusion == 'success' }} + if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - # There's a 'download artifact' action but it hasn't been updated for the - # workflow_run action (https://github.com/actions/download-artifact/issues/60) - # so instead we get this mess: + - name: Download pr number + uses: dawidd6/action-download-artifact@7847792dd435a50521b8e3bd3576dae7459d1fa8 + with: + workflow: ${{ github.event.workflow.id }} + run_id: ${{ github.event.workflow_run.id }} + name: pr + - name: Output pr number + id: pr + run: echo "::set-output name=id::$( { - return artifact.name == "previewbuild" - })[0]; - var download = await github.rest.actions.downloadArtifact({ - owner: context.repo.owner, - repo: context.repo.repo, - artifact_id: matchArtifact.id, - archive_format: 'zip', - }); - var fs = require('fs'); - fs.writeFileSync('${{github.workspace}}/previewbuild.zip', Buffer.from(download.data)); - var prInfoArtifact = artifacts.data.artifacts.filter((artifact) => { - return artifact.name == "pr.json" - })[0]; - var download = await github.rest.actions.downloadArtifact({ - owner: context.repo.owner, - repo: context.repo.repo, - artifact_id: prInfoArtifact.id, - archive_format: 'zip', - }); - var fs = require('fs'); - fs.writeFileSync('${{github.workspace}}/pr.json.zip', Buffer.from(download.data)); - - name: Extract Artifacts - run: unzip -d dist previewbuild.zip && rm previewbuild.zip && unzip pr.json.zip && rm pr.json.zip - - name: Read PR Info - id: readctx - uses: actions/github-script@v6.2.0 - with: - script: | - var fs = require('fs'); - var pr = JSON.parse(fs.readFileSync('${{github.workspace}}/pr.json')); - console.log(`::set-output name=prnumber::${pr.number}`); + workflow: ${{ github.event.workflow.id }} + run_id: ${{ github.event.workflow_run.id }} + name: preview + path: dist - name: Deploy to Netlify id: netlify uses: nwtgck/actions-netlify@b7c1504e00c6b8a249d1848cc1b522a4865eed99 with: publish-dir: dist - deploy-message: "Deploy from GitHub Actions" + deploy-message: "Deploy PR ${{ steps.pr.outputs.id }}" + alias: ${{ steps.pr.outputs.id }} # These don't work because we're in workflow_run enable-pull-request-comment: false enable-commit-comment: false @@ -75,7 +47,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - pull-request-number: ${{ steps.readctx.outputs.prnumber }} + pull-request-number: ${{ steps.pr.outputs.id }} description-message: | Preview: ${{ steps.netlify.outputs.deploy-url }} - ⚠️ Exercise caution. Use test accounts. ⚠️ + ⚠️ Exercise caution. Use test accounts. ⚠️ \ No newline at end of file diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 89d526b6..4a068d2e 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -7,10 +7,8 @@ on: jobs: deploy-to-netlify: - name: 'Deploy' + name: 'Deploy to Netlify' runs-on: ubuntu-latest - permissions: - contents: read steps: - name: Checkout repository uses: actions/checkout@v3.0.2 @@ -18,12 +16,22 @@ jobs: uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 - - name: Build and deploy to Netlify - uses: jsmrcaga/action-netlify-deploy@53de32e559b0b3833615b9788c7a090cd2fddb03 + cache: 'npm' + - name: Install dependencies + run: npm ci + - name: Build app + run: npm run build + - name: Deploy to Netlify + uses: nwtgck/actions-netlify@b7c1504e00c6b8a249d1848cc1b522a4865eed99 with: - install_command: "npm ci" + publish-dir: dist + deploy-message: "Dev deploy ${{ github.sha }}" + enable-commit-comment: false + github-token: ${{ secrets.GITHUB_TOKEN }} + production-deploy: true + github-deployment-environment: nightly + github-deployment-description: 'Nightly deployment on each commit to dev branch' + env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE2_ID }} - BUILD_DIRECTORY: "dist" - NETLIFY_DEPLOY_MESSAGE: "Dev deploy v${{ github.ref }}" - NETLIFY_DEPLOY_TO_PROD: true + timeout-minutes: 1 diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 37b51791..3c7a4c35 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -5,8 +5,8 @@ on: types: [published] jobs: - create-release-tar: - name: 'Create release tar' + deploy-and-tarball: + name: 'Netlify deploy and tarball' runs-on: ubuntu-latest steps: - name: Checkout repository @@ -15,10 +15,25 @@ jobs: uses: actions/setup-node@v3.4.1 with: node-version: 17.9.0 - - name: Build - run: | - npm ci - npm run build + cache: 'npm' + - name: Install dependencies + run: npm ci + - name: Build app + run: npm run build + - name: Deploy to Netlify + uses: nwtgck/actions-netlify@b7c1504e00c6b8a249d1848cc1b522a4865eed99 + with: + publish-dir: dist + deploy-message: "Prod deploy ${{ github.ref_name }}" + enable-commit-comment: false + github-token: ${{ secrets.GITHUB_TOKEN }} + production-deploy: true + github-deployment-environment: stable + github-deployment-description: 'Stable deployment on each release' + env: + NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + timeout-minutes: 1 - name: Get version from tag id: vars run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} @@ -41,29 +56,7 @@ jobs: cinny-${{ steps.vars.outputs.tag }}.tar.gz cinny-${{ steps.vars.outputs.tag }}.tar.gz.asc - deploy-to-netlify: - name: 'Deploy to Netlify' - runs-on: ubuntu-latest - permissions: - contents: read - steps: - - name: Checkout repository - uses: actions/checkout@v3.0.2 - - name: Setup node - uses: actions/setup-node@v3.4.1 - with: - node-version: 17.9.0 - - name: Build and deploy to Netlify - uses: jsmrcaga/action-netlify-deploy@53de32e559b0b3833615b9788c7a090cd2fddb03 - with: - install_command: "npm ci" - NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} - BUILD_DIRECTORY: "dist" - NETLIFY_DEPLOY_MESSAGE: "Prod deploy v${{ github.ref }}" - NETLIFY_DEPLOY_TO_PROD: true - - push-to-dockerhub: + publish-image: name: Push Docker image to Docker Hub, ghcr runs-on: ubuntu-latest permissions: From 29ddcfa1f9ca253c50286126ae42d261f1ca29fc Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 11 Sep 2022 08:27:59 +0530 Subject: [PATCH 173/717] Update command strings --- .github/workflows/docker-pr.yml | 2 -- src/app/organisms/profile-editor/ProfileEditor.jsx | 5 ++--- src/app/organisms/room/commands.jsx | 8 ++++---- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 1e7a71f3..922e0c0e 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -9,8 +9,6 @@ on: jobs: docker-build: runs-on: ubuntu-latest - env: - PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository uses: actions/checkout@v3.0.2 diff --git a/src/app/organisms/profile-editor/ProfileEditor.jsx b/src/app/organisms/profile-editor/ProfileEditor.jsx index 5085bfb9..bb7359da 100644 --- a/src/app/organisms/profile-editor/ProfileEditor.jsx +++ b/src/app/organisms/profile-editor/ProfileEditor.jsx @@ -20,7 +20,6 @@ function ProfileEditor({ userId }) { const [isEditing, setIsEditing] = useState(false); const mx = initMatrix.matrixClient; const user = mx.getUser(mx.getUserId()); - const fallbackUsername = userId.match(/^@?(\S+):(\S+)$/)[1]; const displayNameRef = useRef(null); const [avatarSrc, setAvatarSrc] = useState(user.avatarUrl ? mx.mxcUrlToHttp(user.avatarUrl, 80, 80, 'crop') : null); @@ -96,7 +95,7 @@ function ProfileEditor({ userId }) { const renderInfo = () => (
- {twemojify(username) ?? fallbackUsername} + {twemojify(username) ?? userId} { const mx = initMatrix.matrixClient; const rawIds = data.split(' '); @@ -78,7 +78,7 @@ const commands = { }, join: { name: 'join', - description: 'Join room with alias. Example: /join alias1 alias2', + description: 'Join room with address. Example: /join address1 address2', exe: (roomId, data) => { const rawIds = data.split(' '); const roomIds = rawIds.filter((id) => id.match(ROOM_ID_ALIAS_REG)); @@ -159,7 +159,7 @@ const commands = { }, myroomnick: { name: 'myroomnick', - description: 'Change my room nick', + description: 'Change nick in current room.', exe: (roomId, data) => { const nick = data.trim(); if (nick === '') return; @@ -168,7 +168,7 @@ const commands = { }, myroomavatar: { name: 'myroomavatar', - description: 'Change my room avatar. Example /myroomavatar mxc://xyzabc', + description: 'Change profile picture in current room. Example /myroomavatar mxc://xyzabc', exe: (roomId, data) => { if (data.match(MXC_REG)) { roomActions.setMyRoomAvatar(roomId, data); From 5848c02d508db8b75fa1de82a19f9f038d23294e Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 11 Sep 2022 09:19:22 +0530 Subject: [PATCH 174/717] Remove markdown icon from input --- src/app/organisms/room/RoomViewInput.jsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index 0a0a171c..8f2780cd 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -30,7 +30,6 @@ import StickerIC from '../../../../public/res/ic/outlined/sticker.svg'; import ShieldIC from '../../../../public/res/ic/outlined/shield.svg'; import VLCIC from '../../../../public/res/ic/outlined/vlc.svg'; import VolumeFullIC from '../../../../public/res/ic/outlined/volume-full.svg'; -import MarkdownIC from '../../../../public/res/ic/outlined/markdown.svg'; import FileIC from '../../../../public/res/ic/outlined/file.svg'; import CrossIC from '../../../../public/res/ic/outlined/cross.svg'; @@ -44,7 +43,6 @@ function RoomViewInput({ roomId, roomTimeline, viewEvent, }) { const [attachment, setAttachment] = useState(null); - const [isMarkdown, setIsMarkdown] = useState(settings.isMarkdown); const [replyTo, setReplyTo] = useState(null); const textAreaRef = useRef(null); @@ -63,11 +61,9 @@ function RoomViewInput({ } useEffect(() => { - settings.on(cons.events.settings.MARKDOWN_TOGGLED, setIsMarkdown); roomsInput.on(cons.events.roomsInput.ATTACHMENT_SET, setAttachment); viewEvent.on('focus_msg_input', requestFocusInput); return () => { - settings.removeListener(cons.events.settings.MARKDOWN_TOGGLED, setIsMarkdown); roomsInput.removeListener(cons.events.roomsInput.ATTACHMENT_SET, setAttachment); viewEvent.removeListener('focus_msg_input', requestFocusInput); }; @@ -379,7 +375,6 @@ function RoomViewInput({ /> - {isMarkdown && }
Date: Sun, 11 Sep 2022 12:18:32 +0530 Subject: [PATCH 175/717] Add plain text command --- src/app/organisms/room/RoomViewInput.jsx | 13 ++++++++----- src/app/organisms/room/commands.jsx | 13 +++++++++++-- src/client/state/RoomsInput.js | 24 ++++++++++++++---------- 3 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index 8f2780cd..de72e2bb 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -181,7 +181,10 @@ function RoomViewInput({ }; }, [roomId]); - const sendBody = async (body, msgType = 'm.text') => { + const sendBody = async (body, options) => { + const opt = options ?? {}; + if (!opt.msgType) opt.msgType = 'm.text'; + if (typeof opt.autoMarkdown !== 'boolean') opt.autoMarkdown = true; if (roomsInput.isSending(roomId)) return; sendIsTyping(false); @@ -191,7 +194,7 @@ function RoomViewInput({ } textAreaRef.current.disabled = true; textAreaRef.current.style.cursor = 'not-allowed'; - await roomsInput.sendInput(roomId, msgType); + await roomsInput.sendInput(roomId, opt); textAreaRef.current.disabled = false; textAreaRef.current.style.cursor = 'unset'; focusInput(); @@ -209,8 +212,8 @@ function RoomViewInput({ confirmDialog('Invalid Command', `"${cmdName}" is not a valid command.`, 'Alright'); return; } - if (['me', 'shrug'].includes(cmdName)) { - commands[cmdName].exe(roomId, cmdData, (message, msgType) => sendBody(message, msgType)); + if (['me', 'shrug', 'plain'].includes(cmdName)) { + commands[cmdName].exe(roomId, cmdData, sendBody); return; } commands[cmdName].exe(roomId, cmdData); @@ -226,7 +229,7 @@ function RoomViewInput({ return; } if (msgBody === '' && attachment === null) return; - sendBody(msgBody, 'm.text'); + sendBody(msgBody); }; const handleSendSticker = async (data) => { diff --git a/src/app/organisms/room/commands.jsx b/src/app/organisms/room/commands.jsx index cceaf045..463f9d94 100644 --- a/src/app/organisms/room/commands.jsx +++ b/src/app/organisms/room/commands.jsx @@ -38,7 +38,7 @@ const commands = { exe: (roomId, data, onSuccess) => { const body = data.trim(); if (body === '') return; - onSuccess(body, 'm.emote'); + onSuccess(body, { msgType: 'm.emote' }); }, }, shrug: { @@ -46,9 +46,18 @@ const commands = { description: 'Send ¯\\_(ツ)_/¯ as message', exe: (roomId, data, onSuccess) => onSuccess( `¯\\_(ツ)_/¯${data.trim() !== '' ? ` ${data}` : ''}`, - 'm.text', + { msgType: 'm.text' }, ), }, + plain: { + name: 'plain', + description: 'Send plain text message', + exe: (roomId, data, onSuccess) => { + const body = data.trim(); + if (body === '') return; + onSuccess(body, { msgType: 'm.text', autoMarkdown: false }); + }, + }, help: { name: 'help', description: 'View all commands', diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index 4277b2f0..e6778711 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -274,7 +274,8 @@ class RoomsInput extends EventEmitter { return this.roomIdToInput.get(roomId)?.isSending || false; } - async sendInput(roomId, msgType) { + async sendInput(roomId, options) { + const { msgType, autoMarkdown } = options; const room = this.matrixClient.getRoom(roomId); const input = this.getInput(roomId); input.isSending = true; @@ -292,19 +293,22 @@ class RoomsInput extends EventEmitter { }; // Apply formatting if relevant - let formattedBody = settings.isMarkdown + let formattedBody = settings.isMarkdown && autoMarkdown ? getFormattedBody(rawMessage) : sanitizeText(rawMessage); - formattedBody = formatUserPill(room, formattedBody); - formattedBody = formatEmoji(this.matrixClient, room, this.roomList, formattedBody); + if (autoMarkdown) { + formattedBody = formatUserPill(room, formattedBody); + formattedBody = formatEmoji(this.matrixClient, room, this.roomList, formattedBody); + + content.body = findAndReplace( + content.body, + MXID_REGEX, + (match) => room.currentState.userIdsToDisplayNames[match[0]], + (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, + ); + } - content.body = findAndReplace( - content.body, - MXID_REGEX, - (match) => room.currentState.userIdsToDisplayNames[match[0]], - (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, - ); if (formattedBody !== sanitizeText(rawMessage)) { // Formatting was applied, and we need to switch to custom HTML content.format = 'org.matrix.custom.html'; From 0a2cca6e40f2fe5f2798f2fb81835fbcef576924 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sun, 11 Sep 2022 13:14:39 +0200 Subject: [PATCH 176/717] Change UI label (#832) --- src/app/organisms/navigation/DrawerHeader.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/navigation/DrawerHeader.jsx b/src/app/organisms/navigation/DrawerHeader.jsx index ba1882b7..e8782e38 100644 --- a/src/app/organisms/navigation/DrawerHeader.jsx +++ b/src/app/organisms/navigation/DrawerHeader.jsx @@ -57,7 +57,7 @@ export function HomeSpaceOptions({ spaceId, afterOptionSelect }) { iconSrc={HashGlobeIC} onClick={() => { afterOptionSelect(); openPublicRooms(); }} > - Join public room + Explore public rooms )} { !spaceId && ( From a343d9999e1cddbde72ce6570517783e507dcd47 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sun, 11 Sep 2022 15:21:05 +0200 Subject: [PATCH 177/717] Handle messages with invalid body (#833) --- src/app/molecules/message/Message.jsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 7d3ee63b..ab05e0e8 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -737,7 +737,6 @@ function Message({ replyTo(senderId, mEvent.getId(), body); }, [body]); - if (body === undefined) return null; if (msgType === 'm.emote') className.push('message--type-emote'); let isCustomHTML = content.format === 'org.matrix.custom.html'; @@ -752,13 +751,14 @@ function Message({ const editedList = editedTimeline.get(eventId); const editedMEvent = editedList[editedList.length - 1]; [body, isCustomHTML, customHTML] = getEditedBody(editedMEvent); - if (typeof body !== 'string') return null; } if (isReply) { body = parseReply(body)?.body ?? body; } + if (typeof body !== 'string') body = ''; + return (
{ From b0174f3acc1448d32c10e8977e64195b4e5265d1 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sun, 11 Sep 2022 15:21:59 +0200 Subject: [PATCH 178/717] Delete notifications after messages have been read or deleted (#830) * Delete read notifications * Delete notifications for deleted messages * Correctly remove notification --- src/client/state/Notifications.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index d332f1f2..da4521dd 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -43,6 +43,8 @@ class Notifications extends EventEmitter { this.roomList = roomList; this.roomIdToNoti = new Map(); + this.roomIdToPopupNotis = new Map(); + this.eventIdToPopupNoti = new Map(); // this._initNoti(); this._listenEvents(); @@ -258,17 +260,38 @@ class Notifications extends EventEmitter { const noti = new window.Notification(title, { body: mEvent.getContent().body, icon, + tag: mEvent.getId(), silent: settings.isNotificationSounds, }); if (settings.isNotificationSounds) { noti.onshow = () => this._playNotiSound(); } noti.onclick = () => selectRoom(room.roomId, mEvent.getId()); + + this.eventIdToPopupNoti.set(mEvent.getId(), noti); + if (this.roomIdToPopupNotis.has(room.roomId)) { + this.roomIdToPopupNotis.get(room.roomId).push(noti); + } else { + this.roomIdToPopupNotis.set(room.roomId, [noti]); + } } else { this._playNotiSound(); } } + _deletePopupNoti(eventId) { + this.eventIdToPopupNoti.get(eventId)?.close(); + this.eventIdToPopupNoti.delete(eventId); + } + + _deletePopupRoomNotis(roomId) { + this.roomIdToPopupNotis.get(roomId)?.forEach((n) => { + this.eventIdToPopupNoti.delete(n.tag); + n.close(); + }); + this.roomIdToPopupNotis.delete(roomId); + } + _playNotiSound() { if (!this._notiAudio) { this._notiAudio = document.getElementById('notificationSound'); @@ -285,6 +308,8 @@ class Notifications extends EventEmitter { _listenEvents() { this.matrixClient.on('Room.timeline', (mEvent, room) => { + if (mEvent.isRedaction()) this._deletePopupNoti(mEvent.event.redacts); + if (room.isSpaceRoom()) return; if (!isNotifEvent(mEvent)) return; @@ -355,6 +380,8 @@ class Notifications extends EventEmitter { if (readerUserId !== this.matrixClient.getUserId()) return; this.deleteNoti(room.roomId); + + this._deletePopupRoomNotis(room.roomId); } }); From a6c339e13a31e354f8fe1dedbcd69eece33dbb32 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 18:53:03 +0530 Subject: [PATCH 179/717] Bump html-webpack-plugin from 5.3.1 to 5.5.0 (#829) Bumps [html-webpack-plugin](https://github.com/jantimon/html-webpack-plugin) from 5.3.1 to 5.5.0. - [Release notes](https://github.com/jantimon/html-webpack-plugin/releases) - [Changelog](https://github.com/jantimon/html-webpack-plugin/blob/main/CHANGELOG.md) - [Commits](https://github.com/jantimon/html-webpack-plugin/compare/v5.3.1...v5.5.0) --- updated-dependencies: - dependency-name: html-webpack-plugin dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 226 ++++++++-------------------------------------- package.json | 2 +- 2 files changed, 38 insertions(+), 190 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6ffd934e..7cd416cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -60,7 +60,7 @@ "eslint-plugin-react": "7.31.1", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.1.0", - "html-webpack-plugin": "5.3.1", + "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", "sass": "1.54.5", @@ -2172,9 +2172,9 @@ } }, "node_modules/@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, "node_modules/@types/http-proxy": { @@ -6475,15 +6475,15 @@ } }, "node_modules/html-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", "dev": true, "dependencies": { - "@types/html-minifier-terser": "^5.0.0", - "html-minifier-terser": "^5.0.1", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", "tapable": "^2.0.0" }, "engines": { @@ -6497,71 +6497,6 @@ "webpack": "^5.20.0" } }, - "node_modules/html-webpack-plugin/node_modules/clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/html-webpack-plugin/node_modules/terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/htmlparser2": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", @@ -9328,13 +9263,13 @@ } }, "node_modules/pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, "dependencies": { "lodash": "^4.17.20", - "renderkid": "^2.0.4" + "renderkid": "^3.0.0" } }, "node_modules/process-nextick-args": { @@ -9826,25 +9761,16 @@ } }, "node_modules/renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, "dependencies": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" - } - }, - "node_modules/renderkid/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "strip-ansi": "^6.0.1" } }, "node_modules/renderkid/node_modules/dom-serializer": { @@ -9918,18 +9844,6 @@ "entities": "^2.0.0" } }, - "node_modules/renderkid/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -13448,9 +13362,9 @@ } }, "@types/html-minifier-terser": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz", - "integrity": "sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", "dev": true }, "@types/http-proxy": { @@ -16841,67 +16755,16 @@ } }, "html-webpack-plugin": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.3.1.tgz", - "integrity": "sha512-rZsVvPXUYFyME0cuGkyOHfx9hmkFa4pWfxY/mdY38PsBEaVNsRoA+Id+8z6DBDgyv3zaw6XQszdF8HLwfQvcdQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", "dev": true, "requires": { - "@types/html-minifier-terser": "^5.0.0", - "html-minifier-terser": "^5.0.1", - "lodash": "^4.17.20", - "pretty-error": "^2.1.1", + "@types/html-minifier-terser": "^6.0.0", + "html-minifier-terser": "^6.0.2", + "lodash": "^4.17.21", + "pretty-error": "^4.0.0", "tapable": "^2.0.0" - }, - "dependencies": { - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "html-minifier-terser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz", - "integrity": "sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==", - "dev": true, - "requires": { - "camel-case": "^4.1.1", - "clean-css": "^4.2.3", - "commander": "^4.1.1", - "he": "^1.2.0", - "param-case": "^3.0.3", - "relateurl": "^0.2.7", - "terser": "^4.6.3" - } - }, - "terser": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", - "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", - "dev": true, - "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - } } }, "htmlparser2": { @@ -18921,13 +18784,13 @@ "dev": true }, "pretty-error": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", - "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", + "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", "dev": true, "requires": { "lodash": "^4.17.20", - "renderkid": "^2.0.4" + "renderkid": "^3.0.0" } }, "process-nextick-args": { @@ -19305,24 +19168,18 @@ "dev": true }, "renderkid": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.7.tgz", - "integrity": "sha512-oCcFyxaMrKsKcTY59qnCAtmDVSLfPbrv6A3tVbPdFMMrv5jaK10V6m40cKsoPNhAqN6rmHW9sswW4o3ruSrwUQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", + "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", "dev": true, "requires": { "css-select": "^4.1.3", "dom-converter": "^0.2.0", "htmlparser2": "^6.1.0", "lodash": "^4.17.21", - "strip-ansi": "^3.0.1" + "strip-ansi": "^6.0.1" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true - }, "dom-serializer": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", @@ -19371,15 +19228,6 @@ "domutils": "^2.5.2", "entities": "^2.0.0" } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } } } }, diff --git a/package.json b/package.json index cd9967e5..7919511b 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "eslint-plugin-react": "7.31.1", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.1.0", - "html-webpack-plugin": "5.3.1", + "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", "sass": "1.54.5", From 3e2cc8bfae93339efcab603c9786204161928036 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 18:54:24 +0530 Subject: [PATCH 180/717] Bump @babel/preset-env from 7.18.10 to 7.19.0 (#825) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.18.10 to 7.19.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.19.0/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 312 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 158 insertions(+), 156 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7cd416cb..3b33d015 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@babel/core": "7.18.13", - "@babel/preset-env": "7.18.10", + "@babel/preset-env": "7.19.0", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", @@ -105,9 +105,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", + "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -144,12 +144,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.13", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -197,12 +197,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", + "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" @@ -236,9 +236,9 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -290,13 +290,13 @@ } }, "node_modules/@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -339,9 +339,9 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -349,9 +349,9 @@ "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -370,9 +370,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -519,9 +519,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", + "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -563,13 +563,13 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz", + "integrity": "sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" }, @@ -1081,16 +1081,17 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" @@ -1277,14 +1278,14 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", + "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" }, @@ -1312,13 +1313,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz", + "integrity": "sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1500,12 +1501,12 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" }, "engines": { @@ -1592,18 +1593,18 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.0.tgz", + "integrity": "sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-async-generator-functions": "^7.19.0", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -1637,9 +1638,9 @@ "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.13", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1649,9 +1650,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.0", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -1659,14 +1660,14 @@ "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", + "@babel/types": "^7.19.0", "babel-plugin-polyfill-corejs2": "^0.3.2", "babel-plugin-polyfill-corejs3": "^0.5.3", "babel-plugin-polyfill-regenerator": "^0.4.0", @@ -1766,19 +1767,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", + "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", + "@babel/generator": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/parser": "^7.19.0", + "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1787,9 +1788,9 @@ } }, "node_modules/@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.18.10", @@ -11873,9 +11874,9 @@ } }, "@babel/compat-data": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.13.tgz", - "integrity": "sha512-5yUzC5LqyTFp2HLmDoxGQelcdYgSpP9xsnMWBphAscOdFrHSAVbLNzWiy32sVNDqJRDiJK6klfDnAgu6PAGSHw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", + "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", "dev": true }, "@babel/core": { @@ -11902,12 +11903,12 @@ } }, "@babel/generator": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.13.tgz", - "integrity": "sha512-CkPg8ySSPuHTYPJYo7IRALdqyjM9HCbt/3uOBEFbzyGVP6Mn8bwFPB0jX6982JVNBlYzM1nnPkfjuXSOPtQeEQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", + "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", "dev": true, "requires": { - "@babel/types": "^7.18.13", + "@babel/types": "^7.19.0", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -11945,12 +11946,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.9.tgz", - "integrity": "sha512-tzLCyVmqUiFlcFoAPLA/gL9TeYrF61VLNtb+hvkuVaB5SUjW7jcfrglBIX1vUIoT7CLP3bBlIMeyEsIl2eFQNg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", + "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", + "@babel/compat-data": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.20.2", "semver": "^6.3.0" @@ -11972,9 +11973,9 @@ } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", - "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", + "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -12011,13 +12012,13 @@ } }, "@babel/helper-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz", - "integrity": "sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", + "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/types": "^7.19.0" } }, "@babel/helper-hoist-variables": { @@ -12048,9 +12049,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.9.tgz", - "integrity": "sha512-KYNqY0ICwfv19b31XzvmI/mfcylOzbLtowkw+mfvGPAQ3kfCnMLYbED3YecL5tPd8nAYFQFAd6JHp2LxZk/J1g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", + "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -12058,9 +12059,9 @@ "@babel/helper-simple-access": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.18.6", - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/helper-optimise-call-expression": { @@ -12073,9 +12074,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz", - "integrity": "sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", + "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -12183,9 +12184,9 @@ } }, "@babel/parser": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.13.tgz", - "integrity": "sha512-dgXcIfMuQ0kgzLB2b9tRZs7TTFFaGM2AbtA4fJgUUYukzGH4jwsS7hzQHEGs67jdehpm22vkgKwvbU+aEflgwg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", + "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -12209,13 +12210,13 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz", - "integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz", + "integrity": "sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-remap-async-to-generator": "^7.18.9", "@babel/plugin-syntax-async-generators": "^7.8.4" } @@ -12550,16 +12551,17 @@ } }, "@babel/plugin-transform-classes": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz", - "integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", + "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-compilation-targets": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-replace-supers": "^7.18.9", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" @@ -12674,14 +12676,14 @@ } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz", - "integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", + "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-identifier": "^7.18.6", "babel-plugin-dynamic-import-node": "^2.3.3" } @@ -12697,13 +12699,13 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", - "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz", + "integrity": "sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ==", "dev": true, "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-new-target": { @@ -12813,12 +12815,12 @@ } }, "@babel/plugin-transform-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz", - "integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", + "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" } }, @@ -12869,18 +12871,18 @@ } }, "@babel/preset-env": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz", - "integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.0.tgz", + "integrity": "sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.18.10", + "@babel/plugin-proposal-async-generator-functions": "^7.19.0", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -12914,9 +12916,9 @@ "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", "@babel/plugin-transform-block-scoping": "^7.18.9", - "@babel/plugin-transform-classes": "^7.18.9", + "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.9", + "@babel/plugin-transform-destructuring": "^7.18.13", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -12926,9 +12928,9 @@ "@babel/plugin-transform-member-expression-literals": "^7.18.6", "@babel/plugin-transform-modules-amd": "^7.18.6", "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.18.9", + "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.18.6", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.0", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -12936,14 +12938,14 @@ "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.18.9", + "@babel/plugin-transform-spread": "^7.19.0", "@babel/plugin-transform-sticky-regex": "^7.18.6", "@babel/plugin-transform-template-literals": "^7.18.9", "@babel/plugin-transform-typeof-symbol": "^7.18.9", "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.18.10", + "@babel/types": "^7.19.0", "babel-plugin-polyfill-corejs2": "^0.3.2", "babel-plugin-polyfill-corejs3": "^0.5.3", "babel-plugin-polyfill-regenerator": "^0.4.0", @@ -13023,27 +13025,27 @@ } }, "@babel/traverse": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.13.tgz", - "integrity": "sha512-N6kt9X1jRMLPxxxPYWi7tgvJRH/rtoU+dbKAPDM44RFHiMH8igdsaSBgFeskhSl/kLWLDUvIh1RXCrTmg0/zvA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", + "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", + "@babel/generator": "^7.19.0", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/parser": "^7.19.0", + "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.13.tgz", - "integrity": "sha512-ePqfTihzW0W6XAU+aMw2ykilisStJfDnsejDCXRchCcMJ4O0+8DhPXf2YUbZ6wjBlsEmZwLK/sPweWtu8hcJYQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", + "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.18.10", diff --git a/package.json b/package.json index 7919511b..0e2e2c04 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "devDependencies": { "@babel/core": "7.18.13", - "@babel/preset-env": "7.18.10", + "@babel/preset-env": "7.19.0", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", From 2be706fb3f2dd3b44c3e8ee7d80cba5099077625 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 18:57:15 +0530 Subject: [PATCH 181/717] Bump eslint-plugin-react from 7.31.1 to 7.31.8 (#838) Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.1 to 7.31.8. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.1...v7.31.8) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3b33d015..07a9ccf4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-react": "7.31.1", + "eslint-plugin-react": "7.31.8", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.1.0", "html-webpack-plugin": "5.5.0", @@ -5127,9 +5127,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", - "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", + "version": "7.31.8", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", + "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -15823,9 +15823,9 @@ } }, "eslint-plugin-react": { - "version": "7.31.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.1.tgz", - "integrity": "sha512-j4/2xWqt/R7AZzG8CakGHA6Xa/u7iR8Q3xCxY+AUghdT92bnIDOBEefV456OeH0QvBcroVc0eyvrrLSyQGYIfg==", + "version": "7.31.8", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", + "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", "dev": true, "requires": { "array-includes": "^3.1.5", diff --git a/package.json b/package.json index 0e2e2c04..9c8f63b6 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-react": "7.31.1", + "eslint-plugin-react": "7.31.8", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.1.0", "html-webpack-plugin": "5.5.0", From 55c652a02a687341b8c544ca8e2e5a188c3a2488 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 18:58:33 +0530 Subject: [PATCH 182/717] Bump webpack-merge from 5.7.3 to 5.8.0 (#822) Bumps [webpack-merge](https://github.com/survivejs/webpack-merge) from 5.7.3 to 5.8.0. - [Release notes](https://github.com/survivejs/webpack-merge/releases) - [Changelog](https://github.com/survivejs/webpack-merge/blob/develop/CHANGELOG.md) - [Commits](https://github.com/survivejs/webpack-merge/compare/v5.7.3...v5.8.0) --- updated-dependencies: - dependency-name: webpack-merge dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 07a9ccf4..e05d983d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,7 @@ "webpack": "5.74.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.10.1", - "webpack-merge": "5.7.3" + "webpack-merge": "5.8.0" }, "engines": { "node": ">=14.15.0", @@ -11630,9 +11630,9 @@ } }, "node_modules/webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "dependencies": { "clone-deep": "^4.0.1", @@ -20577,9 +20577,9 @@ } }, "webpack-merge": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.7.3.tgz", - "integrity": "sha512-6/JUQv0ELQ1igjGDzHkXbVDRxkfA57Zw7PfiupdLFJYrgFqY5ZP8xxbpp2lU3EPwYx89ht5Z/aDkD40hFCm5AA==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { "clone-deep": "^4.0.1", diff --git a/package.json b/package.json index 9c8f63b6..ee85a50b 100644 --- a/package.json +++ b/package.json @@ -78,6 +78,6 @@ "webpack": "5.74.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.10.1", - "webpack-merge": "5.7.3" + "webpack-merge": "5.8.0" } } From 9fb651a04eeff6547bdd5b965e180ba612e230da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 18:59:16 +0530 Subject: [PATCH 183/717] Bump @babel/core from 7.18.13 to 7.19.0 (#824) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.18.13 to 7.19.0. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.19.0/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 66 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index e05d983d..9050a309 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.18.13", + "@babel/core": "7.19.0", "@babel/preset-env": "7.19.0", "@babel/preset-react": "7.18.6", "assert": "2.0.0", @@ -114,21 +114,21 @@ } }, "node_modules/@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", + "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -491,14 +491,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", "dev": true, "dependencies": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -11880,21 +11880,21 @@ "dev": true }, "@babel/core": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.13.tgz", - "integrity": "sha512-ZisbOvRRusFktksHSG6pjj1CSvkPkcZq/KHD45LAkVP/oiHJkNBZWfpvlLmX8OtHDG8IuzsFlVRWo08w7Qxn0A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", + "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.18.13", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-module-transforms": "^7.18.9", - "@babel/helpers": "^7.18.9", - "@babel/parser": "^7.18.13", + "@babel/generator": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.0", + "@babel/helpers": "^7.19.0", + "@babel/parser": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.13", - "@babel/types": "^7.18.13", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -12162,14 +12162,14 @@ } }, "@babel/helpers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.9.tgz", - "integrity": "sha512-Jf5a+rbrLoR4eNdUmnFu8cN5eNJT6qdTdOg5IHIzq87WwyRw9PwguLFOWYgktN/60IP4fgDUawJvs7PjQIzELQ==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", + "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", "dev": true, "requires": { - "@babel/template": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/template": "^7.18.10", + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/highlight": { diff --git a/package.json b/package.json index ee85a50b..1538d5fe 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.18.13", + "@babel/core": "7.19.0", "@babel/preset-env": "7.19.0", "@babel/preset-react": "7.18.6", "assert": "2.0.0", From efda9991f2e92dfbf9e5fc7ae7aa7dddbc8c0ce6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 11 Sep 2022 18:59:31 +0530 Subject: [PATCH 184/717] Bump sass from 1.54.5 to 1.54.9 (#837) Bumps [sass](https://github.com/sass/dart-sass) from 1.54.5 to 1.54.9. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.5...1.54.9) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9050a309..f08260ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.54.5", + "sass": "1.54.9", "sass-loader": "13.0.2", "stream-browserify": "3.0.0", "style-loader": "3.3.1", @@ -10118,9 +10118,9 @@ } }, "node_modules/sass": { - "version": "1.54.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.5.tgz", - "integrity": "sha512-p7DTOzxkUPa/63FU0R3KApkRHwcVZYC0PLnLm5iyZACyp15qSi32x7zVUhRdABAATmkALqgGrjCJAcWvobmhHw==", + "version": "1.54.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.9.tgz", + "integrity": "sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -19432,9 +19432,9 @@ } }, "sass": { - "version": "1.54.5", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.5.tgz", - "integrity": "sha512-p7DTOzxkUPa/63FU0R3KApkRHwcVZYC0PLnLm5iyZACyp15qSi32x7zVUhRdABAATmkALqgGrjCJAcWvobmhHw==", + "version": "1.54.9", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.9.tgz", + "integrity": "sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 1538d5fe..7c9eb1ee 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.54.5", + "sass": "1.54.9", "sass-loader": "13.0.2", "stream-browserify": "3.0.0", "style-loader": "3.3.1", From 15c1f6dadf2ade072ffd6fb8ad51781953de88d8 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Wed, 14 Sep 2022 11:00:06 +0200 Subject: [PATCH 185/717] Allow rendering messages as plaintext (#805) * Parse room input from user id and emoji * Add more plain outputs * Add reply support * Always include formatted reply * Add room mention parser * Allow single linebreak after codeblock * Remove margin from math display blocks * Escape shrug * Rewrite HTML tag function * Normalize def keys * Fix embedding replies into replies * Don't add margin to file name * Collapse spaces in HTML message body * Don't crash with no plaintext rendering * Add blockquote support * Remove ref support * Fix image html rendering * Remove debug output * Remove duplicate default option value * Add table plain rendering support * Correctly handle paragraph padding when mixed with block content * Simplify links if possible * Make blockquote plain rendering better * Don't error when emojis are matching but not found * Allow plain only messages with newlines * Set user id as user mention fallback * Fix mixed up variable name * Replace replaceAll with replace --- src/app/atoms/math/Math.jsx | 1 + src/app/atoms/math/Math.scss | 3 + src/app/molecules/message/Message.jsx | 15 +- src/app/molecules/message/Message.scss | 6 +- src/app/organisms/room/RoomViewInput.jsx | 6 +- src/client/action/navigation.js | 3 +- src/client/state/RoomsInput.js | 247 ++++++------------- src/client/state/navigation.js | 1 + src/util/markdown.js | 287 ++++++++++++++++++++--- src/util/matrixUtil.js | 10 + 10 files changed, 368 insertions(+), 211 deletions(-) create mode 100644 src/app/atoms/math/Math.scss diff --git a/src/app/atoms/math/Math.jsx b/src/app/atoms/math/Math.jsx index 87f85899..ab52a478 100644 --- a/src/app/atoms/math/Math.jsx +++ b/src/app/atoms/math/Math.jsx @@ -1,5 +1,6 @@ import React, { useEffect, useRef } from 'react'; import PropTypes from 'prop-types'; +import './Math.scss'; import katex from 'katex'; import 'katex/dist/katex.min.css'; diff --git a/src/app/atoms/math/Math.scss b/src/app/atoms/math/Math.scss new file mode 100644 index 00000000..306b147c --- /dev/null +++ b/src/app/atoms/math/Math.scss @@ -0,0 +1,3 @@ +.katex-display { + margin: 0 !important; +} diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index ab05e0e8..02a5562c 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -8,7 +8,9 @@ import './Message.scss'; import { twemojify } from '../../../util/twemojify'; import initMatrix from '../../../client/initMatrix'; -import { getUsername, getUsernameOfRoomMember, parseReply } from '../../../util/matrixUtil'; +import { + getUsername, getUsernameOfRoomMember, parseReply, trimHTMLReply, +} from '../../../util/matrixUtil'; import colorMXID from '../../../util/colorMXID'; import { getEventCords } from '../../../util/common'; import { redactEvent, sendReaction } from '../../../client/action/roomTimeline'; @@ -248,7 +250,7 @@ const MessageBody = React.memo(({ if (!isCustomHTML) { // If this is a plaintext message, wrap it in a

element (automatically applying // white-space: pre-wrap) in order to preserve newlines - content = (

{content}

); + content = (

{content}

); } return ( @@ -729,23 +731,23 @@ function Message({ let { body } = content; const username = mEvent.sender ? getUsernameOfRoomMember(mEvent.sender) : getUsername(senderId); const avatarSrc = mEvent.sender?.getAvatarUrl(initMatrix.matrixClient.baseUrl, 36, 36, 'crop') ?? null; + let isCustomHTML = content.format === 'org.matrix.custom.html'; + let customHTML = isCustomHTML ? content.formatted_body : null; const edit = useCallback(() => { setEdit(eventId); }, []); const reply = useCallback(() => { - replyTo(senderId, mEvent.getId(), body); - }, [body]); + replyTo(senderId, mEvent.getId(), body, customHTML); + }, [body, customHTML]); if (msgType === 'm.emote') className.push('message--type-emote'); - let isCustomHTML = content.format === 'org.matrix.custom.html'; const isEdited = roomTimeline ? editedTimeline.has(eventId) : false; const haveReactions = roomTimeline ? reactionTimeline.has(eventId) || !!mEvent.getServerAggregatedRelation('m.annotation') : false; const isReply = !!mEvent.replyEventId; - let customHTML = isCustomHTML ? content.formatted_body : null; if (isEdited) { const editedList = editedTimeline.get(eventId); @@ -755,6 +757,7 @@ function Message({ if (isReply) { body = parseReply(body)?.body ?? body; + customHTML = trimHTMLReply(customHTML); } if (typeof body !== 'string') body = ''; diff --git a/src/app/molecules/message/Message.scss b/src/app/molecules/message/Message.scss index 66d0c7ec..5dda9c98 100644 --- a/src/app/molecules/message/Message.scss +++ b/src/app/molecules/message/Message.scss @@ -163,7 +163,7 @@ .message__body { word-break: break-word; - & > .text > * { + & > .text > .message__body-plain { white-space: pre-wrap; } @@ -174,8 +174,8 @@ white-space: initial !important; } - & p:not(:last-child) { - margin-bottom: var(--sp-normal); + & > .text > p + p { + margin-top: var(--sp-normal); } & span[data-mx-pill] { diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index de72e2bb..c43eb601 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -143,9 +143,11 @@ function RoomViewInput({ textAreaRef.current.focus(); } - function setUpReply(userId, eventId, body) { + function setUpReply(userId, eventId, body, formattedBody) { setReplyTo({ userId, eventId, body }); - roomsInput.setReplyTo(roomId, { userId, eventId, body }); + roomsInput.setReplyTo(roomId, { + userId, eventId, body, formattedBody, + }); focusInput(); } diff --git a/src/client/action/navigation.js b/src/client/action/navigation.js index 1292d56d..4ee78a63 100644 --- a/src/client/action/navigation.js +++ b/src/client/action/navigation.js @@ -139,12 +139,13 @@ export function openViewSource(event) { }); } -export function replyTo(userId, eventId, body) { +export function replyTo(userId, eventId, body, formattedBody) { appDispatcher.dispatch({ type: cons.actions.navigation.CLICK_REPLY_TO, userId, eventId, body, + formattedBody, }); } diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index e6778711..fb4b6c31 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -6,11 +6,9 @@ import { getBlobSafeMimeType } from '../../util/mimetypes'; import { sanitizeText } from '../../util/sanitize'; import cons from './cons'; import settings from './settings'; -import { htmlOutput, parser } from '../../util/markdown'; +import { markdown, plain } from '../../util/markdown'; const blurhashField = 'xyz.amorgan.blurhash'; -const MXID_REGEX = /\B@\S+:\S+\.\S+[^.,:;?!\s]/g; -const SHORTCODE_REGEX = /\B:([\w-]+):\B/g; function encodeBlurhash(img) { const canvas = document.createElement('canvas'); @@ -100,91 +98,6 @@ function getVideoThumbnail(video, width, height, mimeType) { }); } -function getFormattedBody(markdown) { - let content = parser(markdown); - if (content.length === 1 && content[0].type === 'paragraph') { - content = content[0].content; - } - return htmlOutput(content); -} - -function getReplyFormattedBody(roomId, reply) { - const replyToLink = `In reply to`; - const userLink = `${reply.userId}`; - const formattedReply = getFormattedBody(reply.body.replace(/\n/g, '\n> ')); - return `
${replyToLink}${userLink}
${formattedReply}
`; -} - -function bindReplyToContent(roomId, reply, content) { - const newContent = { ...content }; - newContent.body = `> <${reply.userId}> ${reply.body.replace(/\n/g, '\n> ')}`; - newContent.body += `\n\n${content.body}`; - newContent.format = 'org.matrix.custom.html'; - newContent['m.relates_to'] = content['m.relates_to'] || {}; - newContent['m.relates_to']['m.in_reply_to'] = { event_id: reply.eventId }; - - const formattedReply = getReplyFormattedBody(roomId, reply); - newContent.formatted_body = formattedReply + (content.formatted_body || content.body); - return newContent; -} - -function findAndReplace(text, regex, filter, replace) { - let copyText = text; - Array.from(copyText.matchAll(regex)) - .filter(filter) - .reverse() /* to replace backward to forward */ - .forEach((match) => { - const matchText = match[0]; - const tag = replace(match); - - copyText = copyText.substr(0, match.index) - + tag - + copyText.substr(match.index + matchText.length); - }); - return copyText; -} - -function formatUserPill(room, text) { - const { userIdsToDisplayNames } = room.currentState; - return findAndReplace( - text, - MXID_REGEX, - (match) => userIdsToDisplayNames[match[0]], - (match) => ( - `@${userIdsToDisplayNames[match[0]]}` - ), - ); -} - -function formatEmoji(mx, room, roomList, text) { - const parentIds = roomList.getAllParentSpaces(room.roomId); - const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); - const allEmoji = getShortcodeToEmoji(mx, [room, ...parentRooms]); - - return findAndReplace( - text, - SHORTCODE_REGEX, - (match) => allEmoji.has(match[1]), - (match) => { - const emoji = allEmoji.get(match[1]); - - let tag; - if (emoji.mxc) { - tag = `:${
-          emoji.shortcode
-        }:`; - } else { - tag = emoji.unicode; - } - return tag; - }, - ); -} - class RoomsInput extends EventEmitter { constructor(mx, roomList) { super(); @@ -274,9 +187,76 @@ class RoomsInput extends EventEmitter { return this.roomIdToInput.get(roomId)?.isSending || false; } - async sendInput(roomId, options) { - const { msgType, autoMarkdown } = options; + getContent(roomId, options, message, reply, edit) { + const msgType = options?.msgType || 'm.text'; + const autoMarkdown = options?.autoMarkdown ?? true; + const room = this.matrixClient.getRoom(roomId); + + const userNames = room.currentState.userIdsToDisplayNames; + const parentIds = this.roomList.getAllParentSpaces(room.roomId); + const parentRooms = [...parentIds].map((id) => this.matrixClient.getRoom(id)); + const emojis = getShortcodeToEmoji(this.matrixClient, [room, ...parentRooms]); + + const output = settings.isMarkdown && autoMarkdown ? markdown : plain; + const body = output(message, { userNames, emojis }); + + const content = { + body: body.plain, + msgtype: msgType, + }; + + if (!body.onlyPlain || reply) { + content.format = 'org.matrix.custom.html'; + content.formatted_body = body.html; + } + + if (edit) { + content['m.new_content'] = { ...content }; + content['m.relates_to'] = { + event_id: edit.getId(), + rel_type: 'm.replace', + }; + + const isReply = edit.getWireContent()['m.relates_to']?.['m.in_reply_to']; + if (isReply) { + content.format = 'org.matrix.custom.html'; + content.formatted_body = body.html; + } + + content.body = ` * ${content.body}`; + if (content.formatted_body) content.formatted_body = ` * ${content.formatted_body}`; + + if (isReply) { + const eBody = edit.getContent().body; + const replyHead = eBody.substring(0, eBody.indexOf('\n\n')); + if (replyHead) content.body = `${replyHead}\n\n${content.body}`; + + const eFBody = edit.getContent().formatted_body; + const fReplyHead = eFBody.substring(0, eFBody.indexOf('')); + if (fReplyHead) content.formatted_body = `${fReplyHead}${content.formatted_body}`; + } + } + + if (reply) { + content['m.relates_to'] = { + 'm.in_reply_to': { + event_id: reply.eventId, + }, + }; + + content.body = `> <${reply.userId}> ${reply.body.replace(/\n/g, '\n> ')}\n\n${content.body}`; + + const replyToLink = `In reply to`; + const userLink = `${sanitizeText(reply.userId)}`; + const fallback = `
${replyToLink}${userLink}
${reply.formattedBody || sanitizeText(reply.body)}
`; + content.formatted_body = fallback + content.formatted_body; + } + + return content; + } + + async sendInput(roomId, options) { const input = this.getInput(roomId); input.isSending = true; this.roomIdToInput.set(roomId, input); @@ -286,38 +266,7 @@ class RoomsInput extends EventEmitter { } if (this.getMessage(roomId).trim() !== '') { - const rawMessage = input.message; - let content = { - body: rawMessage, - msgtype: msgType ?? 'm.text', - }; - - // Apply formatting if relevant - let formattedBody = settings.isMarkdown && autoMarkdown - ? getFormattedBody(rawMessage) - : sanitizeText(rawMessage); - - if (autoMarkdown) { - formattedBody = formatUserPill(room, formattedBody); - formattedBody = formatEmoji(this.matrixClient, room, this.roomList, formattedBody); - - content.body = findAndReplace( - content.body, - MXID_REGEX, - (match) => room.currentState.userIdsToDisplayNames[match[0]], - (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, - ); - } - - if (formattedBody !== sanitizeText(rawMessage)) { - // Formatting was applied, and we need to switch to custom HTML - content.format = 'org.matrix.custom.html'; - content.formatted_body = formattedBody; - } - - if (typeof input.replyTo !== 'undefined') { - content = bindReplyToContent(roomId, input.replyTo, content); - } + const content = this.getContent(roomId, options, input.message, input.replyTo); this.matrixClient.sendMessage(roomId, content); } @@ -460,55 +409,13 @@ class RoomsInput extends EventEmitter { } async sendEditedMessage(roomId, mEvent, editedBody) { - const room = this.matrixClient.getRoom(roomId); - const isReply = typeof mEvent.getWireContent()['m.relates_to']?.['m.in_reply_to'] !== 'undefined'; - - const msgtype = mEvent.getWireContent().msgtype ?? 'm.text'; - - const content = { - body: ` * ${editedBody}`, - msgtype, - 'm.new_content': { - body: editedBody, - msgtype, - }, - 'm.relates_to': { - event_id: mEvent.getId(), - rel_type: 'm.replace', - }, - }; - - // Apply formatting if relevant - let formattedBody = settings.isMarkdown - ? getFormattedBody(editedBody) - : sanitizeText(editedBody); - formattedBody = formatUserPill(room, formattedBody); - formattedBody = formatEmoji(this.matrixClient, room, this.roomList, formattedBody); - - content.body = findAndReplace( - content.body, - MXID_REGEX, - (match) => room.currentState.userIdsToDisplayNames[match[0]], - (match) => `@${room.currentState.userIdsToDisplayNames[match[0]]}`, + const content = this.getContent( + roomId, + { msgType: mEvent.getWireContent().msgtype }, + editedBody, + null, + mEvent, ); - if (formattedBody !== sanitizeText(editedBody)) { - content.formatted_body = ` * ${formattedBody}`; - content.format = 'org.matrix.custom.html'; - content['m.new_content'].formatted_body = formattedBody; - content['m.new_content'].format = 'org.matrix.custom.html'; - } - if (isReply) { - const evBody = mEvent.getContent().body; - const replyHead = evBody.slice(0, evBody.indexOf('\n\n')); - const evFBody = mEvent.getContent().formatted_body; - const fReplyHead = evFBody.slice(0, evFBody.indexOf('')); - - content.format = 'org.matrix.custom.html'; - content.formatted_body = `${fReplyHead}${(content.formatted_body || content.body)}`; - - content.body = `${replyHead}\n\n${content.body}`; - } - this.matrixClient.sendMessage(roomId, content); } } diff --git a/src/client/state/navigation.js b/src/client/state/navigation.js index 7b13dd18..07231cd4 100644 --- a/src/client/state/navigation.js +++ b/src/client/state/navigation.js @@ -375,6 +375,7 @@ class Navigation extends EventEmitter { action.userId, action.eventId, action.body, + action.formattedBody, ); }, [cons.actions.navigation.OPEN_SEARCH]: () => { diff --git a/src/util/markdown.js b/src/util/markdown.js index 2e4f53d0..324a12b5 100644 --- a/src/util/markdown.js +++ b/src/util/markdown.js @@ -1,25 +1,82 @@ import SimpleMarkdown from '@khanacademy/simple-markdown'; const { - defaultRules, parserFor, outputFor, anyScopeRegex, blockRegex, inlineRegex, htmlTag, sanitizeText, + defaultRules, parserFor, outputFor, anyScopeRegex, blockRegex, inlineRegex, + sanitizeText, sanitizeUrl, } = SimpleMarkdown; +function htmlTag(tagName, content, attributes, isClosed) { + let s = ''; + Object.entries(attributes || {}).forEach(([k, v]) => { + if (v !== undefined) { + s += ` ${sanitizeText(k)}`; + if (v !== null) s += `="${sanitizeText(v)}"`; + } + }); + + s = `<${tagName}${s}>`; + + if (isClosed === false) { + return s; + } + return `${s}${content}`; +} + function mathHtml(wrap, node) { return htmlTag(wrap, htmlTag('code', sanitizeText(node.content)), { 'data-mx-maths': node.content }); } -const rules = { - ...defaultRules, +const emojiRegex = /^:([\w-]+):/; + +const plainRules = { Array: { ...defaultRules.Array, plain: (arr, output, state) => arr.map((node) => output(node, state)).join(''), }, - displayMath: { - order: defaultRules.list.order + 0.5, - match: blockRegex(/^\$\$\n*([\s\S]+?)\n*\$\$/), - parse: (capture) => ({ content: capture[1] }), - plain: (node) => `$$\n${node.content}\n$$`, - html: (node) => mathHtml('div', node), + userMention: { + order: defaultRules.em.order - 0.9, + match: inlineRegex(/^(@\S+:\S+)/), + parse: (capture, _, state) => ({ + content: state.userNames[capture[1]] ? `@${state.userNames[capture[1]]}` : capture[1], + id: capture[1], + }), + plain: (node) => node.content, + html: (node) => htmlTag('a', sanitizeText(node.content), { + href: `https://matrix.to/#/${encodeURIComponent(node.id)}`, + }), + }, + roomMention: { + order: defaultRules.em.order - 0.8, + match: inlineRegex(/^(#\S+:\S+)/), // TODO: Handle line beginning with roomMention (instead of heading) + parse: (capture) => ({ content: capture[1], id: capture[1] }), + plain: (node) => node.content, + html: (node) => htmlTag('a', sanitizeText(node.content), { + href: `https://matrix.to/#/${encodeURIComponent(node.id)}`, + }), + }, + emoji: { + order: defaultRules.em.order - 0.1, + match: (source, state) => { + if (!state.inline) return null; + const capture = emojiRegex.exec(source); + if (!capture) return null; + const emoji = state.emojis.get(capture[1]); + if (emoji) return capture; + return null; + }, + parse: (capture, _, state) => ({ content: capture[1], emoji: state.emojis.get(capture[1]) }), + plain: ({ emoji }) => (emoji.mxc + ? `:${emoji.shortcode}:` + : emoji.unicode), + html: ({ emoji }) => (emoji.mxc + ? htmlTag('img', null, { + 'data-mx-emoticon': null, + src: emoji.mxc, + alt: `:${emoji.shortcode}:`, + title: `:${emoji.shortcode}:`, + height: 32, + }, false) + : emoji.unicode), }, newline: { ...defaultRules.newline, @@ -30,10 +87,163 @@ const rules = { plain: (node, output, state) => `${output(node.content, state)}\n\n`, html: (node, output, state) => htmlTag('p', output(node.content, state)), }, + br: { + ...defaultRules.br, + match: anyScopeRegex(/^ *\n/), + plain: () => '\n', + }, + text: { + ...defaultRules.text, + match: anyScopeRegex(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]| *\n|\w+:\S|$)/), + plain: (node) => node.content, + }, +}; + +const markdownRules = { + ...defaultRules, + ...plainRules, + heading: { + ...defaultRules.heading, + plain: (node, output, state) => { + const out = output(node.content, state); + if (node.level <= 2) { + return `${out}\n${(node.level === 1 ? '=' : '-').repeat(out.length)}\n\n`; + } + return `${'#'.repeat(node.level)} ${out}\n\n`; + }, + }, + hr: { + ...defaultRules.hr, + plain: () => '---\n\n', + }, + codeBlock: { + ...defaultRules.codeBlock, + plain: (node) => `\`\`\`${node.lang || ''}\n${node.content}\n\`\`\``, + }, + fence: { + ...defaultRules.fence, + match: blockRegex(/^ *(`{3,}|~{3,}) *(?:(\S+) *)?\n([\s\S]+?)\n?\1 *(?:\n *)*\n/), + }, + blockQuote: { + ...defaultRules.blockQuote, + plain: (node, output, state) => `> ${output(node.content, state).trim().replace(/\n/g, '\n> ')}\n\n`, + }, + list: { + ...defaultRules.list, + plain: (node, output, state) => `${node.items.map((item, i) => { + const prefix = node.ordered ? `${node.start + i + 1}. ` : '* '; + return prefix + output(item, state).replace(/\n/g, `\n${' '.repeat(prefix.length)}`); + }).join('\n')}\n`, + }, + def: undefined, + table: { + ...defaultRules.table, + plain: (node, output, state) => { + const header = node.header.map((content) => output(content, state)); + + function lineWidth(i) { + switch (node.align[i]) { + case 'left': + case 'right': + return 2; + case 'center': + return 3; + default: + return 1; + } + } + const colWidth = header.map((s, i) => Math.max(s.length, lineWidth(i))); + + const cells = node.cells.map((row) => row.map((content, i) => { + const s = output(content, state); + if (s.length > colWidth[i]) { + colWidth[i] = s.length; + } + return s; + })); + + function pad(s, i) { + switch (node.align[i]) { + case 'right': + return s.padStart(colWidth[i]); + case 'center': + return s + .padStart(s.length + Math.floor((colWidth[i] - s.length) / 2)) + .padEnd(colWidth[i]); + default: + return s.padEnd(colWidth[i]); + } + } + + const line = colWidth.map((len, i) => { + switch (node.align[i]) { + case 'left': + return `:${'-'.repeat(len - 1)}`; + case 'center': + return `:${'-'.repeat(len - 2)}:`; + case 'right': + return `${'-'.repeat(len - 1)}:`; + default: + return '-'.repeat(len); + } + }); + + const table = [ + header.map(pad), + line, + ...cells.map((row) => row.map(pad))]; + + return table.map((row) => `| ${row.join(' | ')} |\n`).join(''); + }, + }, + displayMath: { + order: defaultRules.table.order + 0.1, + match: blockRegex(/^ *\$\$ *\n?([\s\S]+?)\n?\$\$ *(?:\n *)*\n/), + parse: (capture) => ({ content: capture[1] }), + plain: (node) => (node.content.includes('\n') + ? `$$\n${node.content}\n$$\n` + : `$$${node.content}$$\n`), + html: (node) => mathHtml('div', node), + }, + shrug: { + order: defaultRules.escape.order - 0.1, + match: inlineRegex(/^¯\\_\(ツ\)_\/¯/), + parse: (capture) => ({ type: 'text', content: capture[0] }), + }, escape: { ...defaultRules.escape, plain: (node, output, state) => `\\${output(node.content, state)}`, }, + tableSeparator: { + ...defaultRules.tableSeparator, + plain: () => ' | ', + }, + link: { + ...defaultRules.link, + plain: (node, output, state) => { + const out = output(node.content, state); + const target = sanitizeUrl(node.target) || ''; + if (out !== target || node.title) { + return `[${out}](${target}${node.title ? ` "${node.title}"` : ''})`; + } + return out; + }, + html: (node, output, state) => htmlTag('a', output(node.content, state), { + href: sanitizeUrl(node.target) || '', + title: node.title, + }), + }, + image: { + ...defaultRules.image, + plain: (node) => `![${node.alt}](${sanitizeUrl(node.target) || ''}${node.title ? ` "${node.title}"` : ''})`, + html: (node) => htmlTag('img', '', { + src: sanitizeUrl(node.target) || '', + alt: node.alt, + title: node.title, + }, false), + }, + reflink: undefined, + refimage: undefined, em: { ...defaultRules.em, plain: (node, output, state) => `_${output(node.content, state)}_`, @@ -50,40 +260,59 @@ const rules = { ...defaultRules.del, plain: (node, output, state) => `~~${output(node.content, state)}~~`, }, + inlineCode: { + ...defaultRules.inlineCode, + plain: (node) => `\`${node.content}\``, + }, spoiler: { - order: defaultRules.em.order - 0.5, + order: defaultRules.inlineCode.order + 0.1, match: inlineRegex(/^\|\|([\s\S]+?)\|\|(?:\(([\s\S]+?)\))?/), parse: (capture, parse, state) => ({ content: parse(capture[1], state), reason: capture[2], }), - plain: (node) => `[spoiler${node.reason ? `: ${node.reason}` : ''}](mxc://somewhere)`, - html: (node, output, state) => `${output(node.content, state)}`, + plain: (node, output, state) => `[spoiler${node.reason ? `: ${node.reason}` : ''}](${output(node.content, state)})`, + html: (node, output, state) => htmlTag( + 'span', + output(node.content, state), + { 'data-mx-spoiler': node.reason || null }, + ), }, inlineMath: { - order: defaultRules.del.order + 0.5, + order: defaultRules.del.order + 0.2, match: inlineRegex(/^\$(\S[\s\S]+?\S|\S)\$(?!\d)/), parse: (capture) => ({ content: capture[1] }), plain: (node) => `$${node.content}$`, html: (node) => mathHtml('span', node), }, - br: { - ...defaultRules.br, - match: anyScopeRegex(/^ *\n/), - plain: () => '\n', - }, - text: { - ...defaultRules.text, - match: anyScopeRegex(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]| *\n|\w+:\S|$)/), - plain: (node) => node.content, - }, }; -const parser = parserFor(rules); +function genOut(rules) { + const parser = parserFor(rules); -const plainOutput = outputFor(rules, 'plain'); -const htmlOutput = outputFor(rules, 'html'); + const plainOut = outputFor(rules, 'plain'); + const htmlOut = outputFor(rules, 'html'); -export { - parser, plainOutput, htmlOutput, -}; + return (source, state) => { + let content = parser(source, state); + + if (content.length === 1 && content[0].type === 'paragraph') { + content = content[0].content; + } + + const plain = plainOut(content, state).trim(); + const html = htmlOut(content, state); + + const plainHtml = html.replace(/
/g, '\n').replace(/<\/p>

/g, '\n\n').replace(/<\/?p>/g, ''); + const onlyPlain = sanitizeText(plain) === plainHtml; + + return { + onlyPlain, + plain, + html, + }; + }; +} + +export const plain = genOut(plainRules); +export const markdown = genOut(markdownRules); diff --git a/src/util/matrixUtil.js b/src/util/matrixUtil.js index ef016eda..54ee31bb 100644 --- a/src/util/matrixUtil.js +++ b/src/util/matrixUtil.js @@ -79,6 +79,16 @@ export function parseReply(rawBody) { }; } +export function trimHTMLReply(html) { + if (!html) return html; + const suffix = ''; + const i = html.indexOf(suffix); + if (i < 0) { + return html; + } + return html.slice(i + suffix.length); +} + export function hasDMWith(userId) { const mx = initMatrix.matrixClient; const directIds = [...initMatrix.roomList.directs]; From b5a317e021723cbc03031f41be8604a17960dfb9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:44:47 +0530 Subject: [PATCH 186/717] Bump eslint from 8.23.0 to 8.23.1 (#840) Bumps [eslint](https://github.com/eslint/eslint) from 8.23.0 to 8.23.1. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.23.0...v8.23.1) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 58 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index f08260ab..85b5df97 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.0.0", - "eslint": "8.23.0", + "eslint": "8.23.1", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", @@ -1811,9 +1811,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -4905,12 +4905,12 @@ } }, "node_modules/eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", + "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.1", + "@eslint/eslintrc": "^1.3.2", "@humanwhocodes/config-array": "^0.10.4", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", @@ -4929,7 +4929,6 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", "globby": "^11.1.0", @@ -4938,6 +4937,7 @@ "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -6020,12 +6020,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -7227,6 +7221,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -13060,9 +13060,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", - "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", + "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -15552,12 +15552,12 @@ "dev": true }, "eslint": { - "version": "8.23.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", - "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "version": "8.23.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", + "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.1", + "@eslint/eslintrc": "^1.3.2", "@humanwhocodes/config-array": "^0.10.4", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", @@ -15576,7 +15576,6 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "functional-red-black-tree": "^1.0.1", "glob-parent": "^6.0.1", "globals": "^13.15.0", "globby": "^11.1.0", @@ -15585,6 +15584,7 @@ "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", @@ -16404,12 +16404,6 @@ "functions-have-names": "^1.2.2" } }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "functions-have-names": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -17266,6 +17260,12 @@ } } }, + "js-sdsl": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", + "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "dev": true + }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", diff --git a/package.json b/package.json index 7c9eb1ee..8dee6534 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.0.0", - "eslint": "8.23.0", + "eslint": "8.23.1", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", From 0783c43169e9d3abe92c770b35d1893d97fbf7b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:46:11 +0530 Subject: [PATCH 187/717] Bump webpack-dev-server from 4.10.1 to 4.11.0 (#841) Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 4.10.1 to 4.11.0. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v4.10.1...v4.11.0) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 85b5df97..5fdaa866 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,7 +71,7 @@ "util": "0.12.4", "webpack": "5.74.0", "webpack-cli": "4.10.0", - "webpack-dev-server": "4.10.1", + "webpack-dev-server": "4.11.0", "webpack-merge": "5.8.0" }, "engines": { @@ -11507,9 +11507,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.1.tgz", - "integrity": "sha512-FIzMq3jbBarz3ld9l7rbM7m6Rj1lOsgq/DyLGMX/fPEB1UBUPtf5iL/4eNfhx8YYJTRlzfv107UfWSWcBK5Odw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -20490,9 +20490,9 @@ } }, "webpack-dev-server": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.10.1.tgz", - "integrity": "sha512-FIzMq3jbBarz3ld9l7rbM7m6Rj1lOsgq/DyLGMX/fPEB1UBUPtf5iL/4eNfhx8YYJTRlzfv107UfWSWcBK5Odw==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", + "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", diff --git a/package.json b/package.json index 8dee6534..e5312411 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "util": "0.12.4", "webpack": "5.74.0", "webpack-cli": "4.10.0", - "webpack-dev-server": "4.10.1", + "webpack-dev-server": "4.11.0", "webpack-merge": "5.8.0" } } From 060ed859d4b12122b59ab40d511cb65171c9ad4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:48:42 +0530 Subject: [PATCH 188/717] Bump blurhash from 1.1.5 to 2.0.0 (#842) Bumps [blurhash](https://github.com/woltapp/blurhash) from 1.1.5 to 2.0.0. - [Release notes](https://github.com/woltapp/blurhash/releases) - [Commits](https://github.com/woltapp/blurhash/commits) --- updated-dependencies: - dependency-name: blurhash dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5fdaa866..7d8de9e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "1.1.5", + "blurhash": "2.0.0", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", @@ -3050,9 +3050,9 @@ "dev": true }, "node_modules/blurhash": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-1.1.5.tgz", - "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.0.tgz", + "integrity": "sha512-fdEZnyJZ5E5s9neCfZUMSMkKfMtdKz1fG53t/iYvMjUFUsDnyZ1YnRRayKBK/B8cilNwe5gaIrPF8QlLrukEZQ==" }, "node_modules/bn.js": { "version": "5.2.1", @@ -14106,9 +14106,9 @@ } }, "blurhash": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-1.1.5.tgz", - "integrity": "sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.0.tgz", + "integrity": "sha512-fdEZnyJZ5E5s9neCfZUMSMkKfMtdKz1fG53t/iYvMjUFUsDnyZ1YnRRayKBK/B8cilNwe5gaIrPF8QlLrukEZQ==" }, "bn.js": { "version": "5.2.1", diff --git a/package.json b/package.json index e5312411..84d1c613 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "1.1.5", + "blurhash": "2.0.0", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", From de218409ab332d07dcb0a54084d9db2976c8e354 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:51:02 +0530 Subject: [PATCH 189/717] Update dependency matrix-js-sdk to v19.5.0 (#845) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7d8de9e1..9c32178c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0-beta.5", "linkifyjs": "4.0.0-beta.5", - "matrix-js-sdk": "19.4.0", + "matrix-js-sdk": "19.5.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7786,9 +7786,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.4.0.tgz", - "integrity": "sha512-B8Mm4jCsCHaMaChcdM3VhZDVKrn0nMSDtYvHmS15Iu8Pe0G4qmIpk2AoADBAL9U9yN3pCqvs3TDXaQhM8UxRRA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.5.0.tgz", + "integrity": "sha512-WTmXMwyhGjUVv3eR71P9wdZj4qqNPgzg9Ud7V6kB3avhZJTZlIpNdHuldXXUdPJ8WTDKY+/yDtEFLIg8pj2Q8A==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17743,9 +17743,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "19.4.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.4.0.tgz", - "integrity": "sha512-B8Mm4jCsCHaMaChcdM3VhZDVKrn0nMSDtYvHmS15Iu8Pe0G4qmIpk2AoADBAL9U9yN3pCqvs3TDXaQhM8UxRRA==", + "version": "19.5.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.5.0.tgz", + "integrity": "sha512-WTmXMwyhGjUVv3eR71P9wdZj4qqNPgzg9Ud7V6kB3avhZJTZlIpNdHuldXXUdPJ8WTDKY+/yDtEFLIg8pj2Q8A==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index 84d1c613..c1ef6549 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0-beta.5", "linkifyjs": "4.0.0-beta.5", - "matrix-js-sdk": "19.4.0", + "matrix-js-sdk": "19.5.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 437ac4c59b7a65b062fadddf1fb06813c61510c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 16:53:47 +0530 Subject: [PATCH 190/717] Bump css-minimizer-webpack-plugin from 4.0.0 to 4.1.0 (#843) Bumps [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) from 4.0.0 to 4.1.0. - [Release notes](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/compare/v4.0.0...v4.1.0) --- updated-dependencies: - dependency-name: css-minimizer-webpack-plugin dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 17 ++++++++++------- package.json | 2 +- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c32178c..ff95a38f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "copy-webpack-plugin": "11.0.0", "crypto-browserify": "3.12.0", "css-loader": "6.7.1", - "css-minimizer-webpack-plugin": "4.0.0", + "css-minimizer-webpack-plugin": "4.1.0", "eslint": "8.23.1", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", @@ -4058,9 +4058,9 @@ } }, "node_modules/css-minimizer-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-Zd+yz4nta4GXi3pMqF6skO8kjzuCUbr62z8SLMGZZtxWxTGTLopOiabPGNDEyjHCRhnhdA1EfHmqLa2Oekjtng==", "dev": true, "dependencies": { "cssnano": "^5.1.8", @@ -4092,6 +4092,9 @@ }, "esbuild": { "optional": true + }, + "lightningcss": { + "optional": true } } }, @@ -14911,9 +14914,9 @@ } }, "css-minimizer-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-7ZXXRzRHvofv3Uac5Y+RkWRNo0ZMlcg8e9/OtrqUYmwDWJo+qs67GvdeFrXLsFb7czKNwjQhPkM0avlIYl+1nA==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.1.0.tgz", + "integrity": "sha512-Zd+yz4nta4GXi3pMqF6skO8kjzuCUbr62z8SLMGZZtxWxTGTLopOiabPGNDEyjHCRhnhdA1EfHmqLa2Oekjtng==", "dev": true, "requires": { "cssnano": "^5.1.8", diff --git a/package.json b/package.json index c1ef6549..f0965729 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "copy-webpack-plugin": "11.0.0", "crypto-browserify": "3.12.0", "css-loader": "6.7.1", - "css-minimizer-webpack-plugin": "4.0.0", + "css-minimizer-webpack-plugin": "4.1.0", "eslint": "8.23.1", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", From d43e41e1ba3bc770b26736b422a6c73515aae6e1 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 19:03:59 +0530 Subject: [PATCH 191/717] Lock file maintenance (#846) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 355 ++++++++++++++++++++++------------------------ 1 file changed, 168 insertions(+), 187 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff95a38f..3dfd2e4a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -215,14 +215,14 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", - "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.18.9", @@ -252,9 +252,9 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "dependencies": { "@babel/helper-compilation-targets": "^7.17.7", @@ -476,15 +476,15 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", "dev": true, "dependencies": { - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1405,16 +1405,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", - "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.10" + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1718,9 +1718,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1729,9 +1729,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", - "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.0.tgz", + "integrity": "sha512-JyXXoCu1N8GLuKc2ii8y5RGma5FMpFeO2nAQIe0Yzrbq+rQnN+sFj47auLblR5ka6aHNGPDgv8G/iI2Grb0ldQ==", "dev": true, "dependencies": { "core-js-pure": "^3.20.2", @@ -2140,9 +2140,9 @@ "dev": true }, "node_modules/@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "dependencies": { "@types/body-parser": "*", @@ -2152,9 +2152,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.30", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", - "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dev": true, "dependencies": { "@types/node": "*", @@ -2212,9 +2212,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", - "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", + "version": "18.7.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", + "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", "dev": true }, "node_modules/@types/prop-types": { @@ -2235,9 +2235,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz", - "integrity": "sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==", + "version": "18.0.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.20.tgz", + "integrity": "sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2897,13 +2897,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "dependencies": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" }, "peerDependencies": { @@ -2924,12 +2924,12 @@ } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -3408,9 +3408,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001388", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz", - "integrity": "sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==", + "version": "1.0.30001399", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", + "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", "dev": true, "funding": [ { @@ -3879,32 +3879,22 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", - "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.1.tgz", + "integrity": "sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw==", "dev": true, "dependencies": { - "browserslist": "^4.21.3", - "semver": "7.0.0" + "browserslist": "^4.21.3" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/core-js-pure": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz", - "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.1.tgz", + "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", "dev": true, "hasInstallScript": true, "funding": { @@ -4345,9 +4335,9 @@ } }, "node_modules/csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "node_modules/damerau-levenshtein": { "version": "1.0.8", @@ -4698,9 +4688,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.241", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.241.tgz", - "integrity": "sha512-e7Wsh4ilaioBZ5bMm6+F4V5c11dh56/5Jwz7Hl5Tu1J7cnB+Pqx5qIF2iC7HPpfyQMqGSvvLP5bBAIDd2gAtGw==", + "version": "1.4.249", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.249.tgz", + "integrity": "sha512-GMCxR3p2HQvIw47A599crTKYZprqihoBL4lDSAUmr7IYekXFK5t/WgEBrGJDCa2HWIZFQEkGuMqPCi05ceYqPQ==", "dev": true }, "node_modules/elliptic": { @@ -5620,9 +5610,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5857,9 +5847,9 @@ } }, "node_modules/follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true, "funding": [ { @@ -6069,9 +6059,9 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -6836,9 +6826,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.5.tgz", + "integrity": "sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw==", "dev": true, "engines": { "node": ">= 0.4" @@ -9657,9 +9647,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -10209,9 +10199,9 @@ "dev": true }, "node_modules/selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "dependencies": { "node-forge": "^1" @@ -11154,9 +11144,9 @@ } }, "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, "engines": { "node": ">=4" @@ -11180,9 +11170,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", - "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "dev": true, "funding": [ { @@ -11961,14 +11951,14 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.13.tgz", - "integrity": "sha512-hDvXp+QYxSRL+23mpAlSGxHMDyIGChm0/AwTfTAAK5Ufe40nCsyNdaYCGuK91phn/fVu9kqayImRDkvNAgdrsA==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", + "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", "@babel/helper-replace-supers": "^7.18.9", @@ -11986,9 +11976,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz", - "integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", + "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", "dev": true, "requires": { "@babel/helper-compilation-targets": "^7.17.7", @@ -12153,15 +12143,15 @@ "dev": true }, "@babel/helper-wrap-function": { - "version": "7.18.11", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz", - "integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", + "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", "dev": true, "requires": { - "@babel/helper-function-name": "^7.18.9", + "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.18.11", - "@babel/types": "^7.18.10" + "@babel/traverse": "^7.19.0", + "@babel/types": "^7.19.0" } }, "@babel/helpers": { @@ -12758,16 +12748,16 @@ } }, "@babel/plugin-transform-react-jsx": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.10.tgz", - "integrity": "sha512-gCy7Iikrpu3IZjYZolFE4M1Sm+nrh1/6za2Ewj77Z+XirT4TsbJcvOFOyF+fRPwU6AKKK136CZxx6L8AbSFG6A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", + "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.18.10" + "@babel/types": "^7.19.0" } }, "@babel/plugin-transform-react-jsx-development": { @@ -12984,9 +12974,9 @@ } }, "@babel/runtime": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz", - "integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", + "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -12999,9 +12989,9 @@ } }, "@babel/runtime-corejs3": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz", - "integrity": "sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A==", + "version": "7.19.0", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.0.tgz", + "integrity": "sha512-JyXXoCu1N8GLuKc2ii8y5RGma5FMpFeO2nAQIe0Yzrbq+rQnN+sFj47auLblR5ka6aHNGPDgv8G/iI2Grb0ldQ==", "dev": true, "requires": { "core-js-pure": "^3.20.2", @@ -13334,9 +13324,9 @@ "dev": true }, "@types/express": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", - "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", + "version": "4.17.14", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", + "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", "dev": true, "requires": { "@types/body-parser": "*", @@ -13346,9 +13336,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.30", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz", - "integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==", + "version": "4.17.31", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", + "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", "dev": true, "requires": { "@types/node": "*", @@ -13406,9 +13396,9 @@ "dev": true }, "@types/node": { - "version": "18.7.14", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.14.tgz", - "integrity": "sha512-6bbDaETVi8oyIARulOE9qF1/Qdi/23z6emrUh0fNJRUmjznqrixD4MpGDdgOFk5Xb0m2H6Xu42JGdvAxaJR/wA==", + "version": "18.7.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", + "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", "dev": true }, "@types/prop-types": { @@ -13429,9 +13419,9 @@ "dev": true }, "@types/react": { - "version": "18.0.18", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.18.tgz", - "integrity": "sha512-6hI08umYs6NaiHFEEGioXnxJ+oEhY3eRz8VCUaudZmGdtvPviCJB8mgaMxaDWAdPSYd4eFavrPk2QIolwbLYrg==", + "version": "18.0.20", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.20.tgz", + "integrity": "sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -13981,13 +13971,13 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz", - "integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", + "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", "dev": true, "requires": { "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.2", + "@babel/helper-define-polyfill-provider": "^0.3.3", "semver": "^6.1.1" } }, @@ -14002,12 +13992,12 @@ } }, "babel-plugin-polyfill-regenerator": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz", - "integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", + "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2" + "@babel/helper-define-polyfill-provider": "^0.3.3" } }, "babel-polyfill": { @@ -14401,9 +14391,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001388", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001388.tgz", - "integrity": "sha512-znVbq4OUjqgLxMxoNX2ZeeLR0d7lcDiE5uJ4eUiWdml1J1EkxbnQq6opT9jb9SMfJxB0XA16/ziHwni4u1I3GQ==", + "version": "1.0.30001399", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", + "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", "dev": true }, "caseless": { @@ -14769,27 +14759,18 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz", - "integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.1.tgz", + "integrity": "sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw==", "dev": true, "requires": { - "browserslist": "^4.21.3", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "browserslist": "^4.21.3" } }, "core-js-pure": { - "version": "3.25.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.0.tgz", - "integrity": "sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.1.tgz", + "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", "dev": true }, "core-util-is": { @@ -15106,9 +15087,9 @@ } }, "csstype": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz", - "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" }, "damerau-levenshtein": { "version": "1.0.8", @@ -15392,9 +15373,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.241", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.241.tgz", - "integrity": "sha512-e7Wsh4ilaioBZ5bMm6+F4V5c11dh56/5Jwz7Hl5Tu1J7cnB+Pqx5qIF2iC7HPpfyQMqGSvvLP5bBAIDd2gAtGw==", + "version": "1.4.249", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.249.tgz", + "integrity": "sha512-GMCxR3p2HQvIw47A599crTKYZprqihoBL4lDSAUmr7IYekXFK5t/WgEBrGJDCa2HWIZFQEkGuMqPCi05ceYqPQ==", "dev": true }, "elliptic": { @@ -16092,9 +16073,9 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "fast-glob": { - "version": "3.2.11", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", - "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -16290,9 +16271,9 @@ } }, "follow-redirects": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", - "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, "for-each": { @@ -16449,9 +16430,9 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -17002,9 +16983,9 @@ } }, "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.5.tgz", + "integrity": "sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw==", "dev": true }, "is-core-module": { @@ -19090,9 +19071,9 @@ "dev": true }, "regenerate-unicode-properties": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", - "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", + "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", "dev": true, "requires": { "regenerate": "^1.4.2" @@ -19482,9 +19463,9 @@ "dev": true }, "selfsigned": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", - "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", + "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", "dev": true, "requires": { "node-forge": "^1" @@ -20212,9 +20193,9 @@ "dev": true }, "unicode-property-aliases-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", - "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true }, "universalify": { @@ -20229,9 +20210,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.7.tgz", - "integrity": "sha512-iN/XYesmZ2RmmWAiI4Z5rq0YqSiv0brj9Ce9CfhNE4xIW2h+MFxcgkxIzZ+ShkFPUkjU3gQ+3oypadD3RAMtrg==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", + "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", "dev": true, "requires": { "escalade": "^3.1.1", From a8f374dd436ac58ac6101cc39ecabb453f844a4c Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Fri, 16 Sep 2022 17:51:53 +0200 Subject: [PATCH 192/717] Parsing HTML to Markdown AST (#847) * Force mentions to have a space after the # * Use types for rendering * Parse HTML * Add code block support * Add table support * Allow starting heading without a space * Escape relevant plaintext areas * Resolve many crashes * Use better matrix id regex * Don't match . after id * Don't parse mentions as links * Add emote support * Only emit HTML link if necessary * Implement review changes --- src/app/molecules/message/Message.jsx | 5 +- src/client/state/Notifications.js | 13 +- src/util/common.js | 24 +++ src/util/markdown.js | 269 +++++++++++++++++++++----- 4 files changed, 265 insertions(+), 46 deletions(-) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 02a5562c..6becae1c 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -40,6 +40,7 @@ import BinIC from '../../../../public/res/ic/outlined/bin.svg'; import { confirmDialog } from '../confirm-dialog/ConfirmDialog'; import { getBlobSafeMimeType } from '../../../util/mimetypes'; +import { html, plain } from '../../../util/markdown'; function PlaceholderMessage() { return ( @@ -802,7 +803,9 @@ function Message({ )} {isEdit && ( { if (newBody !== body) { initMatrix.roomsInput.sendEditedMessage(roomId, mEvent, newBody); diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index da4521dd..db4610a3 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -10,6 +10,7 @@ import { setFavicon } from '../../util/common'; import LogoSVG from '../../../public/res/svg/cinny.svg'; import LogoUnreadSVG from '../../../public/res/svg/cinny-unread.svg'; import LogoHighlightSVG from '../../../public/res/svg/cinny-highlight.svg'; +import { html, plain } from '../../util/markdown'; function isNotifEvent(mEvent) { const eType = mEvent.getType(); @@ -257,8 +258,18 @@ class Notifications extends EventEmitter { scale: 8, }); + const content = mEvent.getContent(); + + const state = { kind: 'notification', onlyPlain: true }; + let body; + if (content.format === 'org.matrix.custom.html') { + body = html(content.formatted_body, state); + } else { + body = plain(content.body, state); + } + const noti = new window.Notification(title, { - body: mEvent.getContent().body, + body: body.plain, icon, tag: mEvent.getId(), silent: settings.isNotificationSounds, diff --git a/src/util/common.js b/src/util/common.js index 1de2bf0f..2affe27d 100644 --- a/src/util/common.js +++ b/src/util/common.js @@ -204,3 +204,27 @@ export function scaleDownImage(imageFile, width, height) { img.src = imgURL; }); } + +/** + * @param {sigil} string sigil to search for (for example '@', '#' or '$') + * @param {flags} string regex flags + * @param {prefix} string prefix appended at the beginning of the regex + * @returns {RegExp} + */ +export function idRegex(sigil, flags, prefix) { + const servername = '(?:[a-zA-Z0-9-.]*[a-zA-Z0-9]+|\\[\\S+?\\])(?::\\d+)?'; + return new RegExp(`${prefix}(${sigil}\\S+:${servername})`, flags); +} + +const matrixToRegex = /^https?:\/\/matrix.to\/#\/(\S+:\S+)/; +/** + * Parses a matrix.to URL into an matrix id. + * This function can later be extended to support matrix: URIs + * @param {string} uri The URI to parse + * @returns {string|null} The id or null if the URI does not match + */ +export function parseIdUri(uri) { + const res = decodeURIComponent(uri).match(matrixToRegex); + if (!res) return null; + return res[1]; +} diff --git a/src/util/markdown.js b/src/util/markdown.js index 324a12b5..bc83cb33 100644 --- a/src/util/markdown.js +++ b/src/util/markdown.js @@ -1,4 +1,6 @@ +/* eslint-disable no-use-before-define */ import SimpleMarkdown from '@khanacademy/simple-markdown'; +import { idRegex, parseIdUri } from './common'; const { defaultRules, parserFor, outputFor, anyScopeRegex, blockRegex, inlineRegex, @@ -31,25 +33,24 @@ const emojiRegex = /^:([\w-]+):/; const plainRules = { Array: { ...defaultRules.Array, - plain: (arr, output, state) => arr.map((node) => output(node, state)).join(''), + plain: defaultRules.Array.html, }, userMention: { order: defaultRules.em.order - 0.9, - match: inlineRegex(/^(@\S+:\S+)/), + match: inlineRegex(idRegex('@', undefined, '^')), parse: (capture, _, state) => ({ + type: 'mention', content: state.userNames[capture[1]] ? `@${state.userNames[capture[1]]}` : capture[1], id: capture[1], }), - plain: (node) => node.content, - html: (node) => htmlTag('a', sanitizeText(node.content), { - href: `https://matrix.to/#/${encodeURIComponent(node.id)}`, - }), }, roomMention: { order: defaultRules.em.order - 0.8, - match: inlineRegex(/^(#\S+:\S+)/), // TODO: Handle line beginning with roomMention (instead of heading) - parse: (capture) => ({ content: capture[1], id: capture[1] }), - plain: (node) => node.content, + match: inlineRegex(idRegex('#', undefined, '^')), + parse: (capture) => ({ type: 'mention', content: capture[1], id: capture[1] }), + }, + mention: { + plain: (node, _, state) => (state.kind === 'edit' ? node.id : node.content), html: (node) => htmlTag('a', sanitizeText(node.content), { href: `https://matrix.to/#/${encodeURIComponent(node.id)}`, }), @@ -95,7 +96,7 @@ const plainRules = { text: { ...defaultRules.text, match: anyScopeRegex(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]| *\n|\w+:\S|$)/), - plain: (node) => node.content, + plain: (node) => node.content.replace(/(\*|_|!\[|\[|\|\||\$\$?)/g, '\\$1'), }, }; @@ -104,12 +105,13 @@ const markdownRules = { ...plainRules, heading: { ...defaultRules.heading, + match: blockRegex(/^ *(#{1,6})([^\n:]*?(?: [^\n]*?)?)#* *(?:\n *)+\n/), plain: (node, output, state) => { const out = output(node.content, state); - if (node.level <= 2) { - return `${out}\n${(node.level === 1 ? '=' : '-').repeat(out.length)}\n\n`; + if (state.kind === 'edit' || state.kind === 'notification' || node.level > 2) { + return `${'#'.repeat(node.level)} ${out}\n\n`; } - return `${'#'.repeat(node.level)} ${out}\n\n`; + return `${out}\n${(node.level === 1 ? '=' : '-').repeat(out.length)}\n\n`; }, }, hr: { @@ -119,6 +121,9 @@ const markdownRules = { codeBlock: { ...defaultRules.codeBlock, plain: (node) => `\`\`\`${node.lang || ''}\n${node.content}\n\`\`\``, + html: (node) => htmlTag('pre', htmlTag('code', sanitizeText(node.content), { + class: node.lang ? `language-${node.lang}` : undefined, + })), }, fence: { ...defaultRules.fence, @@ -131,7 +136,7 @@ const markdownRules = { list: { ...defaultRules.list, plain: (node, output, state) => `${node.items.map((item, i) => { - const prefix = node.ordered ? `${node.start + i + 1}. ` : '* '; + const prefix = node.ordered ? `${node.start + i}. ` : '* '; return prefix + output(item, state).replace(/\n/g, `\n${' '.repeat(prefix.length)}`); }).join('\n')}\n`, }, @@ -141,8 +146,8 @@ const markdownRules = { plain: (node, output, state) => { const header = node.header.map((content) => output(content, state)); - function lineWidth(i) { - switch (node.align[i]) { + const colWidth = node.align.map((align) => { + switch (align) { case 'left': case 'right': return 2; @@ -151,12 +156,14 @@ const markdownRules = { default: return 1; } - } - const colWidth = header.map((s, i) => Math.max(s.length, lineWidth(i))); + }); + header.forEach((s, i) => { + if (s.length > colWidth[i])colWidth[i] = s.length; + }); const cells = node.cells.map((row) => row.map((content, i) => { const s = output(content, state); - if (s.length > colWidth[i]) { + if (colWidth[i] === undefined || s.length > colWidth[i]) { colWidth[i] = s.length; } return s; @@ -228,10 +235,17 @@ const markdownRules = { } return out; }, - html: (node, output, state) => htmlTag('a', output(node.content, state), { - href: sanitizeUrl(node.target) || '', - title: node.title, - }), + html: (node, output, state) => { + const out = output(node.content, state); + const target = sanitizeUrl(node.target) || ''; + if (out !== target || node.title) { + return htmlTag('a', out, { + href: target, + title: node.title, + }); + } + return target; + }, }, image: { ...defaultRules.image, @@ -271,7 +285,17 @@ const markdownRules = { content: parse(capture[1], state), reason: capture[2], }), - plain: (node, output, state) => `[spoiler${node.reason ? `: ${node.reason}` : ''}](${output(node.content, state)})`, + plain: (node, output, state) => { + const warning = `spoiler${node.reason ? `: ${node.reason}` : ''}`; + switch (state.kind) { + case 'edit': + return `||${output(node.content, state)}||${node.reason ? `(${node.reason})` : ''}`; + case 'notification': + return `<${warning}>`; + default: + return `[${warning}](${output(node.content, state)})`; + } + }, html: (node, output, state) => htmlTag( 'span', output(node.content, state), @@ -287,32 +311,189 @@ const markdownRules = { }, }; -function genOut(rules) { - const parser = parserFor(rules); +function mapElement(el) { + switch (el.tagName) { + case 'MX-REPLY': + return []; - const plainOut = outputFor(rules, 'plain'); - const htmlOut = outputFor(rules, 'html'); + case 'P': + return [{ type: 'paragraph', content: mapChildren(el) }]; + case 'BR': + return [{ type: 'br' }]; - return (source, state) => { - let content = parser(source, state); - - if (content.length === 1 && content[0].type === 'paragraph') { - content = content[0].content; + case 'H1': + case 'H2': + case 'H3': + case 'H4': + case 'H5': + case 'H6': + return [{ type: 'heading', level: Number(el.tagName[1]), content: mapChildren(el) }]; + case 'HR': + return [{ type: 'hr' }]; + case 'PRE': { + let lang; + if (el.firstChild) { + Array.from(el.firstChild.classList).some((c) => { + const langPrefix = 'language-'; + if (c.startsWith(langPrefix)) { + lang = c.slice(langPrefix.length); + return true; + } + return false; + }); + } + return [{ type: 'codeBlock', lang, content: el.innerText }]; } + case 'BLOCKQUOTE': + return [{ type: 'blockQuote', content: mapChildren(el) }]; + case 'UL': + return [{ type: 'list', items: mapChildren(el) }]; + case 'OL': + return [{ + type: 'list', + ordered: true, + start: Number(el.getAttribute('start')), + items: mapChildren(el), + }]; + case 'TABLE': { + const headerEl = Array.from(el.querySelector('thead > tr').childNodes); + const align = headerEl.map((childE) => childE.style['text-align']); + return [{ + type: 'table', + header: headerEl.map(mapChildren), + align, + cells: Array.from(el.querySelectorAll('tbody > tr')).map((rowEl) => Array.from(rowEl.childNodes).map((childEl, i) => { + if (align[i] === undefined) align[i] = childEl.style['text-align']; + return mapChildren(childEl); + })), + }]; + } + case 'A': { + const href = el.getAttribute('href'); - const plain = plainOut(content, state).trim(); - const html = htmlOut(content, state); + const id = parseIdUri(href); + if (id) return [{ type: 'mention', content: el.innerText, id }]; - const plainHtml = html.replace(/
/g, '\n').replace(/<\/p>

/g, '\n\n').replace(/<\/?p>/g, ''); - const onlyPlain = sanitizeText(plain) === plainHtml; + return [{ + type: 'link', + target: el.getAttribute('href'), + title: el.getAttribute('title'), + content: mapChildren(el), + }]; + } + case 'IMG': { + const src = el.getAttribute('src'); + let title = el.getAttribute('title'); + if (el.hasAttribute('data-mx-emoticon')) { + if (title.length > 2 && title.startsWith(':') && title.endsWith(':')) { + title = title.slice(1, -1); + } + return [{ + type: 'emoji', + content: title, + emoji: { + mxc: src, + shortcode: title, + }, + }]; + } - return { - onlyPlain, - plain, - html, - }; + return [{ + type: 'image', + alt: el.getAttribute('alt'), + target: src, + title, + }]; + } + case 'EM': + case 'I': + return [{ type: 'em', content: mapChildren(el) }]; + case 'STRONG': + case 'B': + return [{ type: 'strong', content: mapChildren(el) }]; + case 'U': + return [{ type: 'u', content: mapChildren(el) }]; + case 'DEL': + case 'STRIKE': + return [{ type: 'del', content: mapChildren(el) }]; + case 'CODE': + return [{ type: 'inlineCode', content: el.innerText }]; + + case 'DIV': + if (el.hasAttribute('data-mx-maths')) { + return [{ type: 'displayMath', content: el.getAttribute('data-mx-maths') }]; + } + return mapChildren(el); + case 'SPAN': + if (el.hasAttribute('data-mx-spoiler')) { + return [{ type: 'spoiler', reason: el.getAttribute('data-mx-spoiler'), content: mapChildren(el) }]; + } + if (el.hasAttribute('data-mx-maths')) { + return [{ type: 'inlineMath', content: el.getAttribute('data-mx-maths') }]; + } + return mapChildren(el); + default: + return mapChildren(el); + } +} + +function mapNode(n) { + switch (n.nodeType) { + case Node.TEXT_NODE: + return [{ type: 'text', content: n.textContent }]; + case Node.ELEMENT_NODE: + return mapElement(n); + default: + return []; + } +} + +function mapChildren(n) { + return Array.from(n.childNodes).reduce((ast, childN) => { + ast.push(...mapNode(childN)); + return ast; + }, []); +} + +function render(content, state, plainOut, htmlOut) { + let c = content; + if (content.length === 1 && content[0].type === 'paragraph') { + c = c[0].content; + } + + const plainStr = plainOut(c, state).trim(); + if (state.onlyPlain) return { plain: plainStr }; + + const htmlStr = htmlOut(c, state); + + const plainHtml = htmlStr.replace(/
/g, '\n').replace(/<\/p>

/g, '\n\n').replace(/<\/?p>/g, ''); + const onlyPlain = sanitizeText(plainStr) === plainHtml; + + return { + onlyPlain, + plain: plainStr, + html: htmlStr, }; } -export const plain = genOut(plainRules); -export const markdown = genOut(markdownRules); +const plainParser = parserFor(plainRules); +const plainPlainOut = outputFor(plainRules, 'plain'); +const plainHtmlOut = outputFor(plainRules, 'html'); + +const mdParser = parserFor(markdownRules); +const mdPlainOut = outputFor(markdownRules, 'plain'); +const mdHtmlOut = outputFor(markdownRules, 'html'); + +export function plain(source, state) { + return render(plainParser(source, state), state, plainPlainOut, plainHtmlOut); +} + +export function markdown(source, state) { + return render(mdParser(source, state), state, mdPlainOut, mdHtmlOut); +} + +export function html(source, state) { + const el = document.createElement('template'); + el.innerHTML = source; + return render(mapChildren(el.content), state, mdPlainOut, mdHtmlOut); +} From 4848bef0dd24c628c9e6bcc1ce44f31577328e93 Mon Sep 17 00:00:00 2001 From: morguldir Date: Sat, 17 Sep 2022 09:51:22 +0200 Subject: [PATCH 193/717] Add Clear cache and reload button (#793) Inspired by: https://github.com/matrix-org/matrix-react-sdk/blob/3c5c2bef6dbac51ce6e1864056523815ca4c38d9/src/components/views/elements/ErrorBoundary.tsx#L61-L68 Signed-off-by: morguldir Signed-off-by: morguldir --- src/app/organisms/settings/Settings.jsx | 1 + src/client/state/settings.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index 2e0f64bd..8baf589c 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -239,6 +239,7 @@ function AboutSection() {

+
diff --git a/src/client/state/settings.js b/src/client/state/settings.js index 32f55fcc..7b9635d3 100644 --- a/src/client/state/settings.js +++ b/src/client/state/settings.js @@ -147,6 +147,14 @@ class Settings extends EventEmitter { return settings.isNotificationSounds; } + clearCacheAndReload() { + const mx = initMatrix.matrixClient; + mx.stopClient() + mx.store.deleteAllData().then(() => { + window.location.reload(); + }); +} + setter(action) { const actions = { [cons.actions.settings.TOGGLE_SYSTEM_THEME]: () => { From c1be57b205666bb0082fa36b9e263885e53d5b59 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 17 Sep 2022 15:48:45 +0530 Subject: [PATCH 194/717] Add clear cache btn in loading screen --- src/app/organisms/settings/Settings.jsx | 5 ++--- src/app/templates/client/Client.jsx | 22 ++++++++++++++++++---- src/app/templates/client/Client.scss | 8 ++++---- src/client/action/logout.js | 16 ---------------- src/client/initMatrix.js | 23 +++++++++++++++++++++-- src/client/state/settings.js | 8 -------- 6 files changed, 45 insertions(+), 37 deletions(-) delete mode 100644 src/client/action/logout.js diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index 8baf589c..a0869b61 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -9,7 +9,6 @@ import { toggleSystemTheme, toggleMarkdown, toggleMembershipEvents, toggleNickAvatarEvents, toggleNotifications, toggleNotificationSounds, } from '../../../client/action/settings'; -import logout from '../../../client/action/logout'; import { usePermission } from '../../hooks/usePermission'; import Text from '../../atoms/text/Text'; @@ -239,7 +238,7 @@ function AboutSection() {
- +
@@ -328,7 +327,7 @@ function Settings() { const handleTabChange = (tabItem) => setSelectedTab(tabItem); const handleLogout = async () => { if (await confirmDialog('Logout', 'Are you sure that you want to logout your session?', 'Logout', 'danger')) { - logout(); + initMatrix.logout(); } }; diff --git a/src/app/templates/client/Client.jsx b/src/app/templates/client/Client.jsx index 8610b62c..d83845b8 100644 --- a/src/app/templates/client/Client.jsx +++ b/src/app/templates/client/Client.jsx @@ -7,18 +7,21 @@ import { initRoomListListener } from '../../../client/event/roomList'; import Text from '../../atoms/text/Text'; import Spinner from '../../atoms/spinner/Spinner'; import Navigation from '../../organisms/navigation/Navigation'; +import ContextMenu, { MenuItem } from '../../atoms/context-menu/ContextMenu'; +import IconButton from '../../atoms/button/IconButton'; import ReusableContextMenu from '../../atoms/context-menu/ReusableContextMenu'; import Room from '../../organisms/room/Room'; import Windows from '../../organisms/pw/Windows'; import Dialogs from '../../organisms/pw/Dialogs'; import EmojiBoardOpener from '../../organisms/emoji-board/EmojiBoardOpener'; -import logout from '../../../client/action/logout'; import initMatrix from '../../../client/initMatrix'; import navigation from '../../../client/state/navigation'; import cons from '../../../client/state/cons'; import DragDrop from '../../organisms/drag-drop/DragDrop'; +import VerticalMenuIC from '../../../../public/res/ic/outlined/vertical-menu.svg'; + function Client() { const [isLoading, changeLoading] = useState(true); const [loadingMsg, setLoadingMsg] = useState('Heating up'); @@ -74,9 +77,20 @@ function Client() { if (isLoading) { return (
- +
+ + initMatrix.clearCacheAndReload()}> + Clear cache & reload + + initMatrix.logout()}>Logout + + )} + render={(toggle) => } + /> +
{loadingMsg} diff --git a/src/app/templates/client/Client.scss b/src/app/templates/client/Client.scss index 67d5dfd5..cdb8fcc9 100644 --- a/src/app/templates/client/Client.scss +++ b/src/app/templates/client/Client.scss @@ -45,12 +45,12 @@ position: absolute; bottom: var(--sp-normal); } -.loading__logout { +.loading__menu { position: absolute; - bottom: var(--sp-extra-tight); + top: var(--sp-extra-tight); right: var(--sp-extra-tight); cursor: pointer; - .text { - color: var(--tc-link); + .context-menu__item .text { + margin: 0 !important; } } diff --git a/src/client/action/logout.js b/src/client/action/logout.js deleted file mode 100644 index c4047bb7..00000000 --- a/src/client/action/logout.js +++ /dev/null @@ -1,16 +0,0 @@ -import initMatrix from '../initMatrix'; - -async function logout() { - const mx = initMatrix.matrixClient; - mx.stopClient(); - try { - await mx.logout(); - } catch { - // ignore if failed to logout - } - mx.clearStores(); - window.localStorage.clear(); - window.location.reload(); -} - -export default logout; diff --git a/src/client/initMatrix.js b/src/client/initMatrix.js index fccfe514..cd961573 100644 --- a/src/client/initMatrix.js +++ b/src/client/initMatrix.js @@ -98,13 +98,32 @@ class InitMatrix extends EventEmitter { } listenEvents() { - this.matrixClient.on('Session.logged_out', () => { + this.matrixClient.on('Session.logged_out', async () => { this.matrixClient.stopClient(); - this.matrixClient.clearStores(); + await this.matrixClient.clearStores(); window.localStorage.clear(); window.location.reload(); }); } + + async logout() { + this.matrixClient.stopClient(); + try { + await this.matrixClient.logout(); + } catch { + // ignore if failed to logout + } + await this.matrixClient.clearStores(); + window.localStorage.clear(); + window.location.reload(); + } + + clearCacheAndReload() { + this.matrixClient.stopClient(); + this.matrixClient.store.deleteAllData().then(() => { + window.location.reload(); + }); + } } const initMatrix = new InitMatrix(); diff --git a/src/client/state/settings.js b/src/client/state/settings.js index 7b9635d3..32f55fcc 100644 --- a/src/client/state/settings.js +++ b/src/client/state/settings.js @@ -147,14 +147,6 @@ class Settings extends EventEmitter { return settings.isNotificationSounds; } - clearCacheAndReload() { - const mx = initMatrix.matrixClient; - mx.stopClient() - mx.store.deleteAllData().then(() => { - window.location.reload(); - }); -} - setter(action) { const actions = { [cons.actions.settings.TOGGLE_SYSTEM_THEME]: () => { From cbd1bf35c66a034e59389a1addbc0fce900af959 Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sat, 17 Sep 2022 13:25:26 +0200 Subject: [PATCH 195/717] Only escape when editing (#852) * Only escape when editing * Base edit change detection on rendered content --- src/app/molecules/message/Message.jsx | 8 ++++---- src/util/markdown.js | 4 +++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/app/molecules/message/Message.jsx b/src/app/molecules/message/Message.jsx index 6becae1c..26a5b29d 100644 --- a/src/app/molecules/message/Message.jsx +++ b/src/app/molecules/message/Message.jsx @@ -300,12 +300,12 @@ function MessageEdit({ body, onSave, onCancel }) { if (e.key === 'Enter' && e.shiftKey === false) { e.preventDefault(); - onSave(editInputRef.current.value); + onSave(editInputRef.current.value, body); } }; return ( -
{ e.preventDefault(); onSave(editInputRef.current.value); }}> + { e.preventDefault(); onSave(editInputRef.current.value, body); }}> { - if (newBody !== body) { + onSave={(newBody, oldBody) => { + if (newBody !== oldBody) { initMatrix.roomsInput.sendEditedMessage(roomId, mEvent, newBody); } cancelEdit(); diff --git a/src/util/markdown.js b/src/util/markdown.js index bc83cb33..d0f5d6b2 100644 --- a/src/util/markdown.js +++ b/src/util/markdown.js @@ -96,7 +96,9 @@ const plainRules = { text: { ...defaultRules.text, match: anyScopeRegex(/^[\s\S]+?(?=[^0-9A-Za-z\s\u00c0-\uffff]| *\n|\w+:\S|$)/), - plain: (node) => node.content.replace(/(\*|_|!\[|\[|\|\||\$\$?)/g, '\\$1'), + plain: (node, _, state) => (state.kind === 'edit' + ? node.content.replace(/(\*|_|!\[|\[|\|\||\$\$?)/g, '\\$1') + : node.content), }, }; From 80d9a2ca7d716ae7c088058cdcd1a335da5b4a87 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sat, 17 Sep 2022 19:04:13 +0530 Subject: [PATCH 196/717] Release v2.2.0 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3dfd2e4a..b7ff471d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.1.3", + "version": "2.2.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.1.3", + "version": "2.2.0", "license": "MIT", "dependencies": { "@fontsource/inter": "4.5.12", diff --git a/package.json b/package.json index f0965729..c4484df7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.1.3", + "version": "2.2.0", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 4c1ca1de..474dc04e 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.1.3', + version: '2.2.0', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 2200ae143e19cda2ea0b9b7ab97c14ca19ebc771 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 18 Sep 2022 20:18:23 +0530 Subject: [PATCH 197/717] Update sdk doc link so that it's not fixed to one version --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ba03fbca..fea421b2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -41,4 +41,4 @@ Also, we use [ESLint](https://eslint.org/) for clean and stylistically consisten ## Helpful links - [BEM methodology](http://getbem.com/introduction/) - [Atomic design](https://bradfrost.com/blog/post/atomic-web-design/) -- [Matrix JavaScript SDK documentation](https://matrix-org.github.io/matrix-js-sdk/19.2.0/index.html) \ No newline at end of file +- [Matrix JavaScript SDK documentation](https://matrix-org.github.io/matrix-js-sdk/index.html) From 9bddf6451019b9b9eeb1eca9209e3e811fb4164b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 08:58:19 +0530 Subject: [PATCH 198/717] Lock file maintenance (#857) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> From 91f1ee748e0d16fdcff870ba9d07ff1a19dca0f4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 09:13:58 +0530 Subject: [PATCH 199/717] Update babel monorepo to v7.19.1 (#859) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 176 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/package-lock.json b/package-lock.json index b7ff471d..c6c03054 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,8 +41,8 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.0", - "@babel/preset-env": "7.19.0", + "@babel/core": "7.19.1", + "@babel/preset-env": "7.19.1", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", @@ -105,29 +105,29 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", - "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", + "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", - "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", + "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.1", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", + "@babel/traverse": "^7.19.1", "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", @@ -197,14 +197,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", - "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", + "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.0", + "@babel/compat-data": "^7.19.1", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" }, "engines": { @@ -519,9 +519,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", - "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -563,9 +563,9 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz", - "integrity": "sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", + "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -1313,9 +1313,9 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz", - "integrity": "sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "dev": true, "dependencies": { "@babel/helper-create-regexp-features-plugin": "^7.19.0", @@ -1593,18 +1593,18 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.0.tgz", - "integrity": "sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", + "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/compat-data": "^7.19.1", + "@babel/helper-compilation-targets": "^7.19.1", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.0", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -1652,7 +1652,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.18.6", "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -1668,10 +1668,10 @@ "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", "@babel/types": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" }, "engines": { @@ -1767,9 +1767,9 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", - "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", + "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", @@ -1778,7 +1778,7 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" @@ -2911,13 +2911,13 @@ } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -11867,26 +11867,26 @@ } }, "@babel/compat-data": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.0.tgz", - "integrity": "sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", + "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", "dev": true }, "@babel/core": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.0.tgz", - "integrity": "sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", + "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.19.1", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", + "@babel/traverse": "^7.19.1", "@babel/types": "^7.19.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", @@ -11939,14 +11939,14 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.0.tgz", - "integrity": "sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", + "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.0", + "@babel/compat-data": "^7.19.1", "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.20.2", + "browserslist": "^4.21.3", "semver": "^6.3.0" } }, @@ -12177,9 +12177,9 @@ } }, "@babel/parser": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.0.tgz", - "integrity": "sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", + "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -12203,9 +12203,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.0.tgz", - "integrity": "sha512-nhEByMUTx3uZueJ/QkJuSlCfN4FGg+xy+vRsfGQGzSauq5ks2Deid2+05Q3KhfaUjvec1IGhw/Zm3cFm8JigTQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", + "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -12692,9 +12692,9 @@ } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.0.tgz", - "integrity": "sha512-HDSuqOQzkU//kfGdiHBt71/hkDTApw4U/cMVgKgX7PqfB3LOaK+2GtCEsBu1dL9CkswDm0Gwehht1dCr421ULQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", + "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", "dev": true, "requires": { "@babel/helper-create-regexp-features-plugin": "^7.19.0", @@ -12864,18 +12864,18 @@ } }, "@babel/preset-env": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.0.tgz", - "integrity": "sha512-1YUju1TAFuzjIQqNM9WsF4U6VbD/8t3wEAlw3LFYuuEr+ywqLRcSXxFKz4DCEj+sN94l/XTDiUXYRrsvMpz9WQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", + "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/compat-data": "^7.19.1", + "@babel/helper-compilation-targets": "^7.19.1", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.0", + "@babel/plugin-proposal-async-generator-functions": "^7.19.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -12923,7 +12923,7 @@ "@babel/plugin-transform-modules-commonjs": "^7.18.6", "@babel/plugin-transform-modules-systemjs": "^7.19.0", "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", "@babel/plugin-transform-parameters": "^7.18.8", @@ -12939,10 +12939,10 @@ "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", "@babel/types": "^7.19.0", - "babel-plugin-polyfill-corejs2": "^0.3.2", - "babel-plugin-polyfill-corejs3": "^0.5.3", - "babel-plugin-polyfill-regenerator": "^0.4.0", - "core-js-compat": "^3.22.1", + "babel-plugin-polyfill-corejs2": "^0.3.3", + "babel-plugin-polyfill-corejs3": "^0.6.0", + "babel-plugin-polyfill-regenerator": "^0.4.1", + "core-js-compat": "^3.25.1", "semver": "^6.3.0" } }, @@ -13018,9 +13018,9 @@ } }, "@babel/traverse": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.0.tgz", - "integrity": "sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", + "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", @@ -13029,7 +13029,7 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.0", + "@babel/parser": "^7.19.1", "@babel/types": "^7.19.0", "debug": "^4.1.0", "globals": "^11.1.0" @@ -13982,13 +13982,13 @@ } }, "babel-plugin-polyfill-corejs3": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz", - "integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", + "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", "dev": true, "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.2", - "core-js-compat": "^3.21.0" + "@babel/helper-define-polyfill-provider": "^0.3.3", + "core-js-compat": "^3.25.1" } }, "babel-plugin-polyfill-regenerator": { diff --git a/package.json b/package.json index c4484df7..702c7ec9 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.0", - "@babel/preset-env": "7.19.0", + "@babel/core": "7.19.1", + "@babel/preset-env": "7.19.1", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", From 76e49d1bd028555b4a3db825bc9c8f9a8059ec41 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 10:02:15 +0530 Subject: [PATCH 200/717] Update dependency linkify-html to v4.0.0 (#860) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index c6c03054..2555706f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "formik": "2.2.9", "html-react-parser": "3.0.4", "katex": "0.16.2", - "linkify-html": "4.0.0-beta.5", + "linkify-html": "4.0.0", "linkifyjs": "4.0.0-beta.5", "matrix-js-sdk": "19.5.0", "prop-types": "15.8.1", @@ -7618,11 +7618,11 @@ } }, "node_modules/linkify-html": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0-beta.5.tgz", - "integrity": "sha512-7upWBgItubM1yQhO1MozvSzl2bCWModOgcc1Wd7kPpndlbR1JxmqH/N0UzmdvX6g0PX0ftnCQdYV4RZHLP9D5g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0.tgz", + "integrity": "sha512-I8W8rhaExwKDEWoqIa6UGyLQK5nrLyXIX1poMZq0CNpsBPDSYNqkVyDNiSpXs7pRmQYIOg2zDGcVHBWj+GuYLA==", "peerDependencies": { - "linkifyjs": "^4.0.0-beta.1" + "linkifyjs": "^4.0.0" } }, "node_modules/linkifyjs": { @@ -17598,9 +17598,9 @@ } }, "linkify-html": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0-beta.5.tgz", - "integrity": "sha512-7upWBgItubM1yQhO1MozvSzl2bCWModOgcc1Wd7kPpndlbR1JxmqH/N0UzmdvX6g0PX0ftnCQdYV4RZHLP9D5g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0.tgz", + "integrity": "sha512-I8W8rhaExwKDEWoqIa6UGyLQK5nrLyXIX1poMZq0CNpsBPDSYNqkVyDNiSpXs7pRmQYIOg2zDGcVHBWj+GuYLA==" }, "linkifyjs": { "version": "4.0.0-beta.5", diff --git a/package.json b/package.json index 702c7ec9..796dd29b 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "formik": "2.2.9", "html-react-parser": "3.0.4", "katex": "0.16.2", - "linkify-html": "4.0.0-beta.5", + "linkify-html": "4.0.0", "linkifyjs": "4.0.0-beta.5", "matrix-js-sdk": "19.5.0", "prop-types": "15.8.1", From 2ddb3595c757b2a834542f8b9cd3ab9afbf3759f Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 10:02:57 +0530 Subject: [PATCH 201/717] Update dependency sanitize-html to v2.7.2 (#862) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2555706f..49c7bb7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", "react-modal": "3.15.1", - "sanitize-html": "2.7.1", + "sanitize-html": "2.7.2", "tippy.js": "6.3.7", "twemoji": "14.0.2" }, @@ -10013,9 +10013,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sanitize-html": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.1.tgz", - "integrity": "sha512-oOpe8l4J8CaBk++2haoN5yNI5beekjuHv3JRPKUx/7h40Rdr85pemn4NkvUB3TcBP7yjat574sPlcMAyv4UQig==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.2.tgz", + "integrity": "sha512-DggSTe7MviO+K4YTCwprG6W1vsG+IIX67yp/QY55yQqKCJYSWzCA1rZbaXzkjoKeL9+jqwm56wD6srYLtUNivg==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", @@ -19347,9 +19347,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sanitize-html": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.1.tgz", - "integrity": "sha512-oOpe8l4J8CaBk++2haoN5yNI5beekjuHv3JRPKUx/7h40Rdr85pemn4NkvUB3TcBP7yjat574sPlcMAyv4UQig==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.2.tgz", + "integrity": "sha512-DggSTe7MviO+K4YTCwprG6W1vsG+IIX67yp/QY55yQqKCJYSWzCA1rZbaXzkjoKeL9+jqwm56wD6srYLtUNivg==", "requires": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", diff --git a/package.json b/package.json index 796dd29b..3f4f7e83 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", "react-modal": "3.15.1", - "sanitize-html": "2.7.1", + "sanitize-html": "2.7.2", "tippy.js": "6.3.7", "twemoji": "14.0.2" }, From 0181cb26d2cd7092224481d012187f5628d77bc8 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 10:03:45 +0530 Subject: [PATCH 202/717] Update dependency linkifyjs to v4.0.0 (#861) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 49c7bb7a..4277e2f1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "html-react-parser": "3.0.4", "katex": "0.16.2", "linkify-html": "4.0.0", - "linkifyjs": "4.0.0-beta.5", + "linkifyjs": "4.0.0", "matrix-js-sdk": "19.5.0", "prop-types": "15.8.1", "react": "17.0.2", @@ -7626,9 +7626,9 @@ } }, "node_modules/linkifyjs": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0-beta.5.tgz", - "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0.tgz", + "integrity": "sha512-RJuSqTcPSE7lHqZzVaZbg5w231QhIHkytiCjM6lxVHhodkt2rCBNDONCYVBYRXXIBvUl/Z+xOhRwOJnVrZB4Wg==" }, "node_modules/loader-runner": { "version": "4.3.0", @@ -17603,9 +17603,9 @@ "integrity": "sha512-I8W8rhaExwKDEWoqIa6UGyLQK5nrLyXIX1poMZq0CNpsBPDSYNqkVyDNiSpXs7pRmQYIOg2zDGcVHBWj+GuYLA==" }, "linkifyjs": { - "version": "4.0.0-beta.5", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0-beta.5.tgz", - "integrity": "sha512-j0YWN/Qd9XuReN4QdU/aMNFtfzBzyi1e07FkxEyeRjfxMKpfmMAofNT80q1vgQ4/U0WUZ/73nBOEpjdyfoUhGw==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0.tgz", + "integrity": "sha512-RJuSqTcPSE7lHqZzVaZbg5w231QhIHkytiCjM6lxVHhodkt2rCBNDONCYVBYRXXIBvUl/Z+xOhRwOJnVrZB4Wg==" }, "loader-runner": { "version": "4.3.0", diff --git a/package.json b/package.json index 3f4f7e83..8254f773 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "html-react-parser": "3.0.4", "katex": "0.16.2", "linkify-html": "4.0.0", - "linkifyjs": "4.0.0-beta.5", + "linkifyjs": "4.0.0", "matrix-js-sdk": "19.5.0", "prop-types": "15.8.1", "react": "17.0.2", From 478957803df9654c72b397e5d5166511fb84ba8b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 10:07:01 +0530 Subject: [PATCH 203/717] Lock file maintenance (#858) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 184 +++++++++++++++++++++++----------------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4277e2f1..2daf6639 100644 --- a/package-lock.json +++ b/package-lock.json @@ -397,16 +397,16 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -458,9 +458,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true, "engines": { "node": ">=6.9.0" @@ -1729,12 +1729,12 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.0.tgz", - "integrity": "sha512-JyXXoCu1N8GLuKc2ii8y5RGma5FMpFeO2nAQIe0Yzrbq+rQnN+sFj47auLblR5ka6aHNGPDgv8G/iI2Grb0ldQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", + "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", "dev": true, "dependencies": { - "core-js-pure": "^3.20.2", + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" }, "engines": { @@ -3278,9 +3278,9 @@ ] }, "node_modules/browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "funding": [ { @@ -3293,10 +3293,10 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" }, "bin": { "browserslist": "cli.js" @@ -3408,9 +3408,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001399", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", - "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", + "version": "1.0.30001405", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001405.tgz", + "integrity": "sha512-lbm+F6HaYFGfjejrTlgB6IZQSZjpA1qcrjGsuvecatP93emI66a41hmQJIW+KNMhcuusgQW0R0E9qvP+Hq7eLg==", "dev": true, "funding": [ { @@ -3879,12 +3879,12 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.1.tgz", - "integrity": "sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw==", + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.2.tgz", + "integrity": "sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==", "dev": true, "dependencies": { - "browserslist": "^4.21.3" + "browserslist": "^4.21.4" }, "funding": { "type": "opencollective", @@ -3892,9 +3892,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.1.tgz", - "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.2.tgz", + "integrity": "sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA==", "dev": true, "hasInstallScript": true, "funding": { @@ -4688,9 +4688,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.249", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.249.tgz", - "integrity": "sha512-GMCxR3p2HQvIw47A599crTKYZprqihoBL4lDSAUmr7IYekXFK5t/WgEBrGJDCa2HWIZFQEkGuMqPCi05ceYqPQ==", + "version": "1.4.254", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz", + "integrity": "sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==", "dev": true }, "node_modules/elliptic": { @@ -6826,9 +6826,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.5.tgz", - "integrity": "sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", + "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", "dev": true, "engines": { "node": ">= 0.4" @@ -9702,15 +9702,15 @@ } }, "node_modules/regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", "dev": true, "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" }, @@ -9719,15 +9719,15 @@ } }, "node_modules/regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", "dev": true }, "node_modules/regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "dependencies": { "jsesc": "~0.5.0" @@ -12085,16 +12085,16 @@ } }, "@babel/helper-replace-supers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.9.tgz", - "integrity": "sha512-dNsWibVI4lNT6HiuOIBr1oyxo40HvIVmbwPUm3XZ7wMh4k2WxrxTqZwSqw/eEmXDS9np0ey5M2bz9tBmO9c+YQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", + "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.19.1", + "@babel/types": "^7.19.0" } }, "@babel/helper-simple-access": { @@ -12131,9 +12131,9 @@ "dev": true }, "@babel/helper-validator-identifier": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", - "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", "dev": true }, "@babel/helper-validator-option": { @@ -12989,12 +12989,12 @@ } }, "@babel/runtime-corejs3": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.0.tgz", - "integrity": "sha512-JyXXoCu1N8GLuKc2ii8y5RGma5FMpFeO2nAQIe0Yzrbq+rQnN+sFj47auLblR5ka6aHNGPDgv8G/iI2Grb0ldQ==", + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", + "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", "dev": true, "requires": { - "core-js-pure": "^3.20.2", + "core-js-pure": "^3.25.1", "regenerator-runtime": "^0.13.4" }, "dependencies": { @@ -14298,15 +14298,15 @@ } }, "browserslist": { - "version": "4.21.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", - "integrity": "sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==", + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001370", - "electron-to-chromium": "^1.4.202", + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.5" + "update-browserslist-db": "^1.0.9" } }, "bs58": { @@ -14391,9 +14391,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001399", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001399.tgz", - "integrity": "sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==", + "version": "1.0.30001405", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001405.tgz", + "integrity": "sha512-lbm+F6HaYFGfjejrTlgB6IZQSZjpA1qcrjGsuvecatP93emI66a41hmQJIW+KNMhcuusgQW0R0E9qvP+Hq7eLg==", "dev": true }, "caseless": { @@ -14759,18 +14759,18 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.1.tgz", - "integrity": "sha512-pOHS7O0i8Qt4zlPW/eIFjwp+NrTPx+wTL0ctgI2fHn31sZOq89rDsmtc/A2vAX7r6shl+bmVI+678He46jgBlw==", + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.2.tgz", + "integrity": "sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==", "dev": true, "requires": { - "browserslist": "^4.21.3" + "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.1.tgz", - "integrity": "sha512-7Fr74bliUDdeJCBMxkkIuQ4xfxn/SwrVg+HkJUAoNEXVqYLv55l6Af0dJ5Lq2YBUW9yKqSkLXaS5SYPK6MGa/A==", + "version": "3.25.2", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.2.tgz", + "integrity": "sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA==", "dev": true }, "core-util-is": { @@ -15373,9 +15373,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.249", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.249.tgz", - "integrity": "sha512-GMCxR3p2HQvIw47A599crTKYZprqihoBL4lDSAUmr7IYekXFK5t/WgEBrGJDCa2HWIZFQEkGuMqPCi05ceYqPQ==", + "version": "1.4.254", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz", + "integrity": "sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==", "dev": true }, "elliptic": { @@ -16983,9 +16983,9 @@ } }, "is-callable": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.5.tgz", - "integrity": "sha512-ZIWRujF6MvYGkEuHMYtFRkL2wAtFw89EHfKlXrkPkjQZZRWeh9L1q3SV13NIfHnqxugjLvAOkEHx9mb1zcMnEw==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", + "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", "dev": true }, "is-core-module": { @@ -19111,29 +19111,29 @@ "dev": true }, "regexpu-core": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", - "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", + "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", "dev": true, "requires": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.0.1", - "regjsgen": "^0.6.0", - "regjsparser": "^0.8.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsgen": "^0.7.1", + "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.0.0" } }, "regjsgen": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", - "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", + "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", "dev": true }, "regjsparser": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", - "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", "dev": true, "requires": { "jsesc": "~0.5.0" From 0225204b4d52106da01569b775ca71e0bf6ee9c3 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Mon, 19 Sep 2022 20:32:40 +0530 Subject: [PATCH 204/717] Require approval before opening dep update PR (#865) --- .github/renovate.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/renovate.json b/.github/renovate.json index d74593fb..46ce4fdf 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -1,7 +1,8 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:base" + "config:base", + ":dependencyDashboardApproval" ], "labels": [ "Dependencies" ], "packageRules": [ @@ -10,6 +11,5 @@ } ], "lockFileMaintenance": { "enabled": true }, - "dependencyDashboard": true, - "dependencyDashboardApproval": true + "dependencyDashboard": true } \ No newline at end of file From 83d8f2821ae301ee441426adc6ba84bbecc3d503 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:33:28 +0530 Subject: [PATCH 205/717] Update dependency @khanacademy/simple-markdown to v0.8.4 (#868) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2daf6639..c0927997 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@fontsource/inter": "4.5.12", "@fontsource/roboto": "4.5.8", - "@khanacademy/simple-markdown": "0.8.3", + "@khanacademy/simple-markdown": "0.8.4", "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", @@ -1973,9 +1973,9 @@ } }, "node_modules/@khanacademy/simple-markdown": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.3.tgz", - "integrity": "sha512-mPK4PkGHDoue+pVA5HPIPyZa3iB8TwdAKEcoQWWQQueyWMsetaVM1L0QeFeuvYMqV+YdTAdUxTlLtibYhkwZig==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.4.tgz", + "integrity": "sha512-LzpAJY5G4xpmfAc1HHdHVg8ocyijXI5F3vLHRbUz3NrJHHi9UecUXrprEWHsgIrI0MrzwZk7cAINSXDf467yUg==", "dependencies": { "@types/react": ">=16.0.0" }, @@ -13181,9 +13181,9 @@ } }, "@khanacademy/simple-markdown": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.3.tgz", - "integrity": "sha512-mPK4PkGHDoue+pVA5HPIPyZa3iB8TwdAKEcoQWWQQueyWMsetaVM1L0QeFeuvYMqV+YdTAdUxTlLtibYhkwZig==", + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.4.tgz", + "integrity": "sha512-LzpAJY5G4xpmfAc1HHdHVg8ocyijXI5F3vLHRbUz3NrJHHi9UecUXrprEWHsgIrI0MrzwZk7cAINSXDf467yUg==", "requires": { "@types/react": ">=16.0.0" } diff --git a/package.json b/package.json index 8254f773..5e0ffb93 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "dependencies": { "@fontsource/inter": "4.5.12", "@fontsource/roboto": "4.5.8", - "@khanacademy/simple-markdown": "0.8.3", + "@khanacademy/simple-markdown": "0.8.4", "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", From 8b6cecdbf83a54ce4492e9234484e47b78c7579d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:35:29 +0530 Subject: [PATCH 206/717] Update dependency webpack-dev-server to v4.11.1 (#869) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index c0927997..815afac9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,7 +71,7 @@ "util": "0.12.4", "webpack": "5.74.0", "webpack-cli": "4.10.0", - "webpack-dev-server": "4.11.0", + "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" }, "engines": { @@ -11500,9 +11500,9 @@ } }, "node_modules/webpack-dev-server": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", - "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dev": true, "dependencies": { "@types/bonjour": "^3.5.9", @@ -11528,7 +11528,7 @@ "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", @@ -20474,9 +20474,9 @@ } }, "webpack-dev-server": { - "version": "4.11.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.0.tgz", - "integrity": "sha512-L5S4Q2zT57SK7tazgzjMiSMBdsw+rGYIX27MgPgx7LDhWO0lViPrHKoLS7jo5In06PWYAhlYu3PbyoC6yAThbw==", + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", + "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", "dev": true, "requires": { "@types/bonjour": "^3.5.9", @@ -20502,7 +20502,7 @@ "p-retry": "^4.5.0", "rimraf": "^3.0.2", "schema-utils": "^4.0.0", - "selfsigned": "^2.0.1", + "selfsigned": "^2.1.1", "serve-index": "^1.9.1", "sockjs": "^0.3.24", "spdy": "^4.0.2", diff --git a/package.json b/package.json index 5e0ffb93..c53807ae 100644 --- a/package.json +++ b/package.json @@ -77,7 +77,7 @@ "util": "0.12.4", "webpack": "5.74.0", "webpack-cli": "4.10.0", - "webpack-dev-server": "4.11.0", + "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" } } From c2d353b973eb58e6818a3b28fe6572d527367c28 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:37:41 +0530 Subject: [PATCH 207/717] Update dependency eslint to v8.24.0 (#870) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 30 +++++++++++++++--------------- package.json | 2 +- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index 815afac9..266c84d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.1.0", - "eslint": "8.23.1", + "eslint": "8.24.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", @@ -1859,9 +1859,9 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz", + "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -4898,13 +4898,13 @@ } }, "node_modules/eslint": { - "version": "8.23.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", - "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", + "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.2", - "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/config-array": "^0.10.5", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", @@ -13091,9 +13091,9 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "@humanwhocodes/config-array": { - "version": "0.10.4", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", - "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz", + "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -15536,13 +15536,13 @@ "dev": true }, "eslint": { - "version": "8.23.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.1.tgz", - "integrity": "sha512-w7C1IXCc6fNqjpuYd0yPlcTKKmHlHHktRkzmBPZ+7cvNBQuiNjx0xaMTjAJGCafJhQkrFJooREv0CtrVzmHwqg==", + "version": "8.24.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", + "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.2", - "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/config-array": "^0.10.5", "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", diff --git a/package.json b/package.json index c53807ae..bc84e336 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.1.0", - "eslint": "8.23.1", + "eslint": "8.24.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", From 9a4b40f2426d3b9969edbd3c0a5d88608551bccc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:40:16 +0530 Subject: [PATCH 208/717] Update dependency html-loader to v4.2.0 (#871) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 92 ++++++++++++++++++++++++++++++++++++++++++----- package.json | 2 +- 2 files changed, 84 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 266c84d8..4e29be33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -59,7 +59,7 @@ "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.8", "eslint-plugin-react-hooks": "4.6.0", - "html-loader": "4.1.0", + "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", @@ -6408,12 +6408,12 @@ "dev": true }, "node_modules/html-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.1.0.tgz", - "integrity": "sha512-QDDNmLgn96NWtTPx/VXRerFXH0hn7cm4bruqsZ333GCb+rqiqGurcxtP/M52wcui1/iLiu0l5ms/McE7/Ik6aQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", + "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", "dev": true, "dependencies": { - "html-minifier-terser": "^6.1.0", + "html-minifier-terser": "^7.0.0", "parse5": "^7.0.0" }, "engines": { @@ -6427,6 +6427,48 @@ "webpack": "^5.0.0" } }, + "node_modules/html-loader/node_modules/clean-css": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/html-loader/node_modules/commander": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/html-loader/node_modules/html-minifier-terser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", + "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "5.2.0", + "commander": "^9.4.0", + "entities": "^4.3.1", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.14.2" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": "^14.13.1 || >=16.0.0" + } + }, "node_modules/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -16699,13 +16741,45 @@ "dev": true }, "html-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.1.0.tgz", - "integrity": "sha512-QDDNmLgn96NWtTPx/VXRerFXH0hn7cm4bruqsZ333GCb+rqiqGurcxtP/M52wcui1/iLiu0l5ms/McE7/Ik6aQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", + "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", "dev": true, "requires": { - "html-minifier-terser": "^6.1.0", + "html-minifier-terser": "^7.0.0", "parse5": "^7.0.0" + }, + "dependencies": { + "clean-css": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "commander": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", + "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", + "dev": true + }, + "html-minifier-terser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", + "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "5.2.0", + "commander": "^9.4.0", + "entities": "^4.3.1", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.14.2" + } + } } }, "html-minifier-terser": { diff --git a/package.json b/package.json index bc84e336..03040b84 100644 --- a/package.json +++ b/package.json @@ -65,7 +65,7 @@ "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.8", "eslint-plugin-react-hooks": "4.6.0", - "html-loader": "4.1.0", + "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", From 7fea21f22185bd9678d4148baaf15e1454d83ed0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:43:13 +0530 Subject: [PATCH 209/717] Update dependency sass to v1.55.0 (#872) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4e29be33..88c3a8d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.54.9", + "sass": "1.55.0", "sass-loader": "13.0.2", "stream-browserify": "3.0.0", "style-loader": "3.3.1", @@ -10153,9 +10153,9 @@ } }, "node_modules/sass": { - "version": "1.54.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.9.tgz", - "integrity": "sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==", + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -19490,9 +19490,9 @@ } }, "sass": { - "version": "1.54.9", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.54.9.tgz", - "integrity": "sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q==", + "version": "1.55.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", + "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 03040b84..c92ad32b 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.54.9", + "sass": "1.55.0", "sass-loader": "13.0.2", "stream-browserify": "3.0.0", "style-loader": "3.3.1", From ee144ccb2b5642f1eb96c136530fbabe12b5b900 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 24 Sep 2022 12:45:50 +0530 Subject: [PATCH 210/717] Lock file maintenance (#873) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 88c3a8d5..9f9e1d68 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3408,9 +3408,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001405", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001405.tgz", - "integrity": "sha512-lbm+F6HaYFGfjejrTlgB6IZQSZjpA1qcrjGsuvecatP93emI66a41hmQJIW+KNMhcuusgQW0R0E9qvP+Hq7eLg==", + "version": "1.0.30001406", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz", + "integrity": "sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg==", "dev": true, "funding": [ { @@ -14433,9 +14433,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001405", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001405.tgz", - "integrity": "sha512-lbm+F6HaYFGfjejrTlgB6IZQSZjpA1qcrjGsuvecatP93emI66a41hmQJIW+KNMhcuusgQW0R0E9qvP+Hq7eLg==", + "version": "1.0.30001406", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz", + "integrity": "sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg==", "dev": true }, "caseless": { From 4291005161747500f1c983543f5ddd8325f588fe Mon Sep 17 00:00:00 2001 From: ginnyTheCat Date: Sun, 25 Sep 2022 16:01:59 +0200 Subject: [PATCH 211/717] Handle nested lists (#853) * Handle nested lists * Allow heading to not be followed by an empty line * Don't parse as inline code if contains newlines * Use escape rule in plain as well --- src/util/markdown.js | 38 ++++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/src/util/markdown.js b/src/util/markdown.js index d0f5d6b2..c6c1a490 100644 --- a/src/util/markdown.js +++ b/src/util/markdown.js @@ -1,3 +1,4 @@ +/* eslint-disable no-param-reassign */ /* eslint-disable no-use-before-define */ import SimpleMarkdown from '@khanacademy/simple-markdown'; import { idRegex, parseIdUri } from './common'; @@ -88,6 +89,10 @@ const plainRules = { plain: (node, output, state) => `${output(node.content, state)}\n\n`, html: (node, output, state) => htmlTag('p', output(node.content, state)), }, + escape: { + ...defaultRules.escape, + plain: (node, output, state) => `\\${output(node.content, state)}`, + }, br: { ...defaultRules.br, match: anyScopeRegex(/^ *\n/), @@ -107,7 +112,7 @@ const markdownRules = { ...plainRules, heading: { ...defaultRules.heading, - match: blockRegex(/^ *(#{1,6})([^\n:]*?(?: [^\n]*?)?)#* *(?:\n *)+\n/), + match: blockRegex(/^ *(#{1,6})([^\n:]*?(?: [^\n]*?)?)#* *(?:\n *)*\n/), plain: (node, output, state) => { const out = output(node.content, state); if (state.kind === 'edit' || state.kind === 'notification' || node.level > 2) { @@ -122,7 +127,7 @@ const markdownRules = { }, codeBlock: { ...defaultRules.codeBlock, - plain: (node) => `\`\`\`${node.lang || ''}\n${node.content}\n\`\`\``, + plain: (node) => `\`\`\`${node.lang || ''}\n${node.content}\n\`\`\`\n`, html: (node) => htmlTag('pre', htmlTag('code', sanitizeText(node.content), { class: node.lang ? `language-${node.lang}` : undefined, })), @@ -137,10 +142,22 @@ const markdownRules = { }, list: { ...defaultRules.list, - plain: (node, output, state) => `${node.items.map((item, i) => { - const prefix = node.ordered ? `${node.start + i}. ` : '* '; - return prefix + output(item, state).replace(/\n/g, `\n${' '.repeat(prefix.length)}`); - }).join('\n')}\n`, + plain: (node, output, state) => { + const oldList = state._list; + state._list = true; + + let items = node.items.map((item, i) => { + const prefix = node.ordered ? `${node.start + i}. ` : '* '; + return prefix + output(item, state).replace(/\n/g, `\n${' '.repeat(prefix.length)}`); + }).join('\n'); + + state._list = oldList; + + if (!state._list) { + items += '\n\n'; + } + return items; + }, }, def: undefined, table: { @@ -219,10 +236,6 @@ const markdownRules = { match: inlineRegex(/^¯\\_\(ツ\)_\/¯/), parse: (capture) => ({ type: 'text', content: capture[0] }), }, - escape: { - ...defaultRules.escape, - plain: (node, output, state) => `\\${output(node.content, state)}`, - }, tableSeparator: { ...defaultRules.tableSeparator, plain: () => ' | ', @@ -278,6 +291,7 @@ const markdownRules = { }, inlineCode: { ...defaultRules.inlineCode, + match: inlineRegex(/^(`+)([^\n]*?[^`\n])\1(?!`)/), plain: (node) => `\`${node.content}\``, }, spoiler: { @@ -349,13 +363,13 @@ function mapElement(el) { case 'BLOCKQUOTE': return [{ type: 'blockQuote', content: mapChildren(el) }]; case 'UL': - return [{ type: 'list', items: mapChildren(el) }]; + return [{ type: 'list', items: Array.from(el.childNodes).map(mapNode) }]; case 'OL': return [{ type: 'list', ordered: true, start: Number(el.getAttribute('start')), - items: mapChildren(el), + items: Array.from(el.childNodes).map(mapNode), }]; case 'TABLE': { const headerEl = Array.from(el.querySelector('thead > tr').childNodes); From d0ddedc2b20fc30a1c8b2f9d3d02b6a5ae6e9c49 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 28 Sep 2022 13:54:58 +0530 Subject: [PATCH 212/717] Wrap view source text --- src/app/organisms/view-source/ViewSource.scss | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/app/organisms/view-source/ViewSource.scss b/src/app/organisms/view-source/ViewSource.scss index 81b53f39..9ceab8b0 100644 --- a/src/app/organisms/view-source/ViewSource.scss +++ b/src/app/organisms/view-source/ViewSource.scss @@ -5,6 +5,8 @@ & pre { padding: var(--sp-extra-tight); + white-space: pre-wrap; + word-break: break-all; } &__card { From 759f16d5b98548f004c6c2678c45f60f7faf671b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 28 Sep 2022 18:17:15 +0530 Subject: [PATCH 213/717] Fix crash on space leave --- src/app/organisms/navigation/Home.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/navigation/Home.jsx b/src/app/organisms/navigation/Home.jsx index 9e749560..6bfa6c0d 100644 --- a/src/app/organisms/navigation/Home.jsx +++ b/src/app/organisms/navigation/Home.jsx @@ -25,7 +25,7 @@ function Home({ spaceId }) { let directIds = []; if (spaceId) { - const spaceChildIds = roomList.getSpaceChildren(spaceId); + const spaceChildIds = roomList.getSpaceChildren(spaceId) ?? []; spaceIds = spaceChildIds.filter((roomId) => spaces.has(roomId)); roomIds = spaceChildIds.filter((roomId) => rooms.has(roomId)); directIds = spaceChildIds.filter((roomId) => directs.has(roomId)); From e2de51832cf704ee1d60fb6374eb47eade74b433 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 19:16:07 +0530 Subject: [PATCH 214/717] Update dependency matrix-js-sdk to v19.7.0 (#876) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9f9e1d68..39774eee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0", "linkifyjs": "4.0.0", - "matrix-js-sdk": "19.5.0", + "matrix-js-sdk": "19.7.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7821,9 +7821,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.5.0.tgz", - "integrity": "sha512-WTmXMwyhGjUVv3eR71P9wdZj4qqNPgzg9Ud7V6kB3avhZJTZlIpNdHuldXXUdPJ8WTDKY+/yDtEFLIg8pj2Q8A==", + "version": "19.7.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz", + "integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17801,9 +17801,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "19.5.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.5.0.tgz", - "integrity": "sha512-WTmXMwyhGjUVv3eR71P9wdZj4qqNPgzg9Ud7V6kB3avhZJTZlIpNdHuldXXUdPJ8WTDKY+/yDtEFLIg8pj2Q8A==", + "version": "19.7.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz", + "integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index c92ad32b..2be74604 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0", "linkifyjs": "4.0.0", - "matrix-js-sdk": "19.5.0", + "matrix-js-sdk": "19.7.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 9185ee0cf94d3340aef2d464a91afcbd0471a96d Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 28 Sep 2022 19:26:12 +0530 Subject: [PATCH 215/717] Release v2.2.1 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 39774eee..b26300d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.0", + "version": "2.2.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.0", + "version": "2.2.1", "license": "MIT", "dependencies": { "@fontsource/inter": "4.5.12", diff --git a/package.json b/package.json index 2be74604..8bd76220 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.0", + "version": "2.2.1", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 474dc04e..38b79f45 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.0', + version: '2.2.1', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 78374d03010c6c1918510aab0da916b5af7b73e4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 20:43:56 +0530 Subject: [PATCH 216/717] Update dependency matrix-js-sdk to v20 (#879) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b26300d6..65f70d0b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0", "linkifyjs": "4.0.0", - "matrix-js-sdk": "19.7.0", + "matrix-js-sdk": "20.0.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7821,9 +7821,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "19.7.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz", - "integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.0.tgz", + "integrity": "sha512-eOKTiWhvUxiPtl4bHFLJh/kQRdaR3ucTUTTvGXZAWh1Ljo6emU2VILPCQWyl7HTOzjCvkRHAvuGlBypMQZf+MQ==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17801,9 +17801,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "19.7.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-19.7.0.tgz", - "integrity": "sha512-mFN1LBmEpYHCH6II1F8o7y8zJr0kn1yX7ga7tRXHbLJAlBS4bAXRsEoAzdv6OrV8/dS325JlVUYQLHFHQWjYxg==", + "version": "20.0.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.0.tgz", + "integrity": "sha512-eOKTiWhvUxiPtl4bHFLJh/kQRdaR3ucTUTTvGXZAWh1Ljo6emU2VILPCQWyl7HTOzjCvkRHAvuGlBypMQZf+MQ==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index 8bd76220..f83fbb29 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0", "linkifyjs": "4.0.0", - "matrix-js-sdk": "19.7.0", + "matrix-js-sdk": "20.0.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 91a6916f4ca1b876028280856cba8ce12115a81e Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 28 Sep 2022 20:48:41 +0530 Subject: [PATCH 217/717] Release v2.2.2 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 65f70d0b..b78d03d7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.1", + "version": "2.2.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.1", + "version": "2.2.2", "license": "MIT", "dependencies": { "@fontsource/inter": "4.5.12", diff --git a/package.json b/package.json index f83fbb29..0f6e25d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.1", + "version": "2.2.2", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 38b79f45..785047d7 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.1', + version: '2.2.2', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 7db4146c8d4f020ec05f817588e1f94bf14af1ac Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 22:13:06 +0530 Subject: [PATCH 218/717] Update actions/setup-node action to v3.5.0 (#878) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index c43d007a..88b6f20a 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -14,7 +14,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.4.1 + uses: actions/setup-node@v3.5.0 with: node-version: 17.9.0 cache: 'npm' diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 4a068d2e..d812c215 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.4.1 + uses: actions/setup-node@v3.5.0 with: node-version: 17.9.0 cache: 'npm' diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 3c7a4c35..8fa199d5 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.0.2 - name: Setup node - uses: actions/setup-node@v3.4.1 + uses: actions/setup-node@v3.5.0 with: node-version: 17.9.0 cache: 'npm' From 820f255929a8a49a5e18cb7fd9e8ee1d9f462097 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 22:15:39 +0530 Subject: [PATCH 219/717] Update babel monorepo to v7.19.3 (#880) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 156 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 80 insertions(+), 80 deletions(-) diff --git a/package-lock.json b/package-lock.json index b78d03d7..06c108be 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,8 +41,8 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.1", - "@babel/preset-env": "7.19.1", + "@babel/core": "7.19.3", + "@babel/preset-env": "7.19.3", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", @@ -105,30 +105,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -144,12 +144,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", "dev": true, "dependencies": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -197,12 +197,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -519,9 +519,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1593,13 +1593,13 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", + "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", @@ -1667,7 +1667,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1767,19 +1767,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1788,13 +1788,13 @@ } }, "node_modules/@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, "engines": { @@ -11909,27 +11909,27 @@ } }, "@babel/compat-data": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.1.tgz", - "integrity": "sha512-72a9ghR0gnESIa7jBN53U32FOVCEoztyIlKaNoU05zRhEecduGK9L9c3ww7Mp06JiR+0ls0GBPFJQwwtjn9ksg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", + "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", "dev": true }, "@babel/core": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.1.tgz", - "integrity": "sha512-1H8VgqXme4UXCRv7/Wa1bq7RVymKOzC7znjyFM8KiEzwFqcKUKYNoQef4GhdklgNvoBXyW4gYhuBNCM5o1zImw==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", + "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/generator": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-module-transforms": "^7.19.0", "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.1", + "@babel/parser": "^7.19.3", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/traverse": "^7.19.3", + "@babel/types": "^7.19.3", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11938,12 +11938,12 @@ } }, "@babel/generator": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.0.tgz", - "integrity": "sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", + "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", "dev": true, "requires": { - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -11981,12 +11981,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.1.tgz", - "integrity": "sha512-LlLkkqhCMyz2lkQPvJNdIYU7O5YjWRgC2R4omjCTpZd8u8KMQzZvX4qce+/BluN1rcQiV7BoGUpmQ0LeHerbhg==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", + "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.1", + "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -12219,9 +12219,9 @@ } }, "@babel/parser": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.1.tgz", - "integrity": "sha512-h7RCSorm1DdTVGJf3P2Mhj3kdnkmF/EiysUkzS2TdgAYqyjFdMQJbVuXOBej2SBJaXan/lIVtT6KkGbyyq753A==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", + "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -12906,13 +12906,13 @@ } }, "@babel/preset-env": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.1.tgz", - "integrity": "sha512-c8B2c6D16Lp+Nt6HcD+nHl0VbPKVnNPTpszahuxJJnurfMtKeZ80A+qUv48Y7wqvS+dTFuLuaM9oYxyNHbCLWA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", + "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.1", - "@babel/helper-compilation-targets": "^7.19.1", + "@babel/compat-data": "^7.19.3", + "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", @@ -12980,7 +12980,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.0", + "@babel/types": "^7.19.3", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -13060,31 +13060,31 @@ } }, "@babel/traverse": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.1.tgz", - "integrity": "sha512-0j/ZfZMxKukDaag2PtOPDbwuELqIar6lLskVPPJDjXMXjfLb1Obo/1yjxIGqqAJrmfaTIY3z2wFLAQ7qSkLsuA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", + "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.0", + "@babel/generator": "^7.19.3", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.1", - "@babel/types": "^7.19.0", + "@babel/parser": "^7.19.3", + "@babel/types": "^7.19.3", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.0.tgz", - "integrity": "sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==", + "version": "7.19.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", + "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.18.10", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } }, diff --git a/package.json b/package.json index 0f6e25d1..76bbde50 100644 --- a/package.json +++ b/package.json @@ -47,8 +47,8 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.1", - "@babel/preset-env": "7.19.1", + "@babel/core": "7.19.3", + "@babel/preset-env": "7.19.3", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", From 593cc03962d9ec2bd81d3232ed3838d6f799eaa3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 22:17:11 +0530 Subject: [PATCH 220/717] Update dependency blurhash to v2.0.2 (#881) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 06c108be..b0473bb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "2.0.0", + "blurhash": "2.0.2", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", @@ -3050,9 +3050,9 @@ "dev": true }, "node_modules/blurhash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.0.tgz", - "integrity": "sha512-fdEZnyJZ5E5s9neCfZUMSMkKfMtdKz1fG53t/iYvMjUFUsDnyZ1YnRRayKBK/B8cilNwe5gaIrPF8QlLrukEZQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.2.tgz", + "integrity": "sha512-aYWeITmNkjtnR6X7wNgoIJ198qJc3w5yaIwLa7yxsV7/BMnWDWWgugBNvImSCcWNdVHhpNFIJgEb5jzhV4rkHA==" }, "node_modules/bn.js": { "version": "5.2.1", @@ -14141,9 +14141,9 @@ } }, "blurhash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.0.tgz", - "integrity": "sha512-fdEZnyJZ5E5s9neCfZUMSMkKfMtdKz1fG53t/iYvMjUFUsDnyZ1YnRRayKBK/B8cilNwe5gaIrPF8QlLrukEZQ==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.2.tgz", + "integrity": "sha512-aYWeITmNkjtnR6X7wNgoIJ198qJc3w5yaIwLa7yxsV7/BMnWDWWgugBNvImSCcWNdVHhpNFIJgEb5jzhV4rkHA==" }, "bn.js": { "version": "5.2.1", diff --git a/package.json b/package.json index 76bbde50..b9eb6392 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "2.0.0", + "blurhash": "2.0.2", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", From a07a7676b7d4983bb031635c4aea3f683df70ee7 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 09:48:16 +0530 Subject: [PATCH 221/717] Update dependency matrix-js-sdk to v20.0.1 (#882) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b0473bb1..b3cd4aac 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0", "linkifyjs": "4.0.0", - "matrix-js-sdk": "20.0.0", + "matrix-js-sdk": "20.0.1", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7821,9 +7821,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.0.tgz", - "integrity": "sha512-eOKTiWhvUxiPtl4bHFLJh/kQRdaR3ucTUTTvGXZAWh1Ljo6emU2VILPCQWyl7HTOzjCvkRHAvuGlBypMQZf+MQ==", + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.1.tgz", + "integrity": "sha512-LibgM1pYFSg4hyLMaZpG3wdWJwdax5e0dEmiKZLWG6CVLA+Z796gDjK/LXalLGWjuCz2ej6THjK23U/sndhzFg==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17801,9 +17801,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "20.0.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.0.tgz", - "integrity": "sha512-eOKTiWhvUxiPtl4bHFLJh/kQRdaR3ucTUTTvGXZAWh1Ljo6emU2VILPCQWyl7HTOzjCvkRHAvuGlBypMQZf+MQ==", + "version": "20.0.1", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.1.tgz", + "integrity": "sha512-LibgM1pYFSg4hyLMaZpG3wdWJwdax5e0dEmiKZLWG6CVLA+Z796gDjK/LXalLGWjuCz2ej6THjK23U/sndhzFg==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index b9eb6392..27901c05 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "katex": "0.16.2", "linkify-html": "4.0.0", "linkifyjs": "4.0.0", - "matrix-js-sdk": "20.0.0", + "matrix-js-sdk": "20.0.1", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 3fe5a9d222bf5a4e69f81800b024194b8c8b0dff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 10:35:00 +0530 Subject: [PATCH 222/717] Bump linkifyjs from 4.0.0 to 4.0.1 (#884) Bumps [linkifyjs](https://github.com/Hypercontext/linkifyjs/tree/HEAD/packages/linkifyjs) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/Hypercontext/linkifyjs/releases) - [Changelog](https://github.com/Hypercontext/linkifyjs/blob/main/CHANGELOG.md) - [Commits](https://github.com/Hypercontext/linkifyjs/commits/v4.0.1/packages/linkifyjs) --- updated-dependencies: - dependency-name: linkifyjs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3cd4aac..cab30ff7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "html-react-parser": "3.0.4", "katex": "0.16.2", "linkify-html": "4.0.0", - "linkifyjs": "4.0.0", + "linkifyjs": "4.0.1", "matrix-js-sdk": "20.0.1", "prop-types": "15.8.1", "react": "17.0.2", @@ -7668,9 +7668,9 @@ } }, "node_modules/linkifyjs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0.tgz", - "integrity": "sha512-RJuSqTcPSE7lHqZzVaZbg5w231QhIHkytiCjM6lxVHhodkt2rCBNDONCYVBYRXXIBvUl/Z+xOhRwOJnVrZB4Wg==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.1.tgz", + "integrity": "sha512-33dNbzpMEPXqei6i13+DXubONuBdiBLKRGMtYAin44CajYTgg25XunP8Vyua1TAuXhVQ1nocDl0D/qDWfY+GuQ==" }, "node_modules/loader-runner": { "version": "4.3.0", @@ -17677,9 +17677,9 @@ "integrity": "sha512-I8W8rhaExwKDEWoqIa6UGyLQK5nrLyXIX1poMZq0CNpsBPDSYNqkVyDNiSpXs7pRmQYIOg2zDGcVHBWj+GuYLA==" }, "linkifyjs": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.0.tgz", - "integrity": "sha512-RJuSqTcPSE7lHqZzVaZbg5w231QhIHkytiCjM6lxVHhodkt2rCBNDONCYVBYRXXIBvUl/Z+xOhRwOJnVrZB4Wg==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.1.tgz", + "integrity": "sha512-33dNbzpMEPXqei6i13+DXubONuBdiBLKRGMtYAin44CajYTgg25XunP8Vyua1TAuXhVQ1nocDl0D/qDWfY+GuQ==" }, "loader-runner": { "version": "4.3.0", diff --git a/package.json b/package.json index 27901c05..8448677b 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "html-react-parser": "3.0.4", "katex": "0.16.2", "linkify-html": "4.0.0", - "linkifyjs": "4.0.0", + "linkifyjs": "4.0.1", "matrix-js-sdk": "20.0.1", "prop-types": "15.8.1", "react": "17.0.2", From a900b0425417a78fe39a45a17f707f3ae28aab1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 10:43:08 +0530 Subject: [PATCH 223/717] Bump linkify-html from 4.0.0 to 4.0.1 (#883) Bumps [linkify-html](https://github.com/Hypercontext/linkifyjs/tree/HEAD/packages/linkify-html) from 4.0.0 to 4.0.1. - [Release notes](https://github.com/Hypercontext/linkifyjs/releases) - [Changelog](https://github.com/Hypercontext/linkifyjs/blob/main/CHANGELOG.md) - [Commits](https://github.com/Hypercontext/linkifyjs/commits/v4.0.1/packages/linkify-html) --- updated-dependencies: - dependency-name: linkify-html dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index cab30ff7..84ca883d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "formik": "2.2.9", "html-react-parser": "3.0.4", "katex": "0.16.2", - "linkify-html": "4.0.0", + "linkify-html": "4.0.1", "linkifyjs": "4.0.1", "matrix-js-sdk": "20.0.1", "prop-types": "15.8.1", @@ -7660,9 +7660,9 @@ } }, "node_modules/linkify-html": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0.tgz", - "integrity": "sha512-I8W8rhaExwKDEWoqIa6UGyLQK5nrLyXIX1poMZq0CNpsBPDSYNqkVyDNiSpXs7pRmQYIOg2zDGcVHBWj+GuYLA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.1.tgz", + "integrity": "sha512-90z1uPTtnclis7tkUbl6qaCorx96U1c4w2YFPF2Ug5AUaKgCmMuxLJvRQZkSPMPRJ319p/mFhIoNhgCaGXzB3A==", "peerDependencies": { "linkifyjs": "^4.0.0" } @@ -17672,9 +17672,9 @@ } }, "linkify-html": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.0.tgz", - "integrity": "sha512-I8W8rhaExwKDEWoqIa6UGyLQK5nrLyXIX1poMZq0CNpsBPDSYNqkVyDNiSpXs7pRmQYIOg2zDGcVHBWj+GuYLA==" + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.1.tgz", + "integrity": "sha512-90z1uPTtnclis7tkUbl6qaCorx96U1c4w2YFPF2Ug5AUaKgCmMuxLJvRQZkSPMPRJ319p/mFhIoNhgCaGXzB3A==" }, "linkifyjs": { "version": "4.0.1", diff --git a/package.json b/package.json index 8448677b..dae8f6a1 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "formik": "2.2.9", "html-react-parser": "3.0.4", "katex": "0.16.2", - "linkify-html": "4.0.0", + "linkify-html": "4.0.1", "linkifyjs": "4.0.1", "matrix-js-sdk": "20.0.1", "prop-types": "15.8.1", From bf94550a84d87cb79f389b65dbafc4103b41a2fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Oct 2022 09:07:04 +0530 Subject: [PATCH 224/717] Bump matrix-js-sdk from 20.0.1 to 20.0.2 (#888) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 20.0.1 to 20.0.2. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v20.0.1...v20.0.2) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 84ca883d..fc9d6043 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.2", "linkify-html": "4.0.1", "linkifyjs": "4.0.1", - "matrix-js-sdk": "20.0.1", + "matrix-js-sdk": "20.0.2", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7821,9 +7821,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.1.tgz", - "integrity": "sha512-LibgM1pYFSg4hyLMaZpG3wdWJwdax5e0dEmiKZLWG6CVLA+Z796gDjK/LXalLGWjuCz2ej6THjK23U/sndhzFg==", + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.2.tgz", + "integrity": "sha512-PZMiLQHtmV+c5wZxS7EyWUKgHMJ/Syad7S5RxZVg80wug3qlX3oXkfyxZwrcMK4T1xE31upizspTZLm5Bkl2Vw==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17801,9 +17801,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "20.0.1", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.1.tgz", - "integrity": "sha512-LibgM1pYFSg4hyLMaZpG3wdWJwdax5e0dEmiKZLWG6CVLA+Z796gDjK/LXalLGWjuCz2ej6THjK23U/sndhzFg==", + "version": "20.0.2", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.2.tgz", + "integrity": "sha512-PZMiLQHtmV+c5wZxS7EyWUKgHMJ/Syad7S5RxZVg80wug3qlX3oXkfyxZwrcMK4T1xE31upizspTZLm5Bkl2Vw==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index dae8f6a1..02b26cac 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "katex": "0.16.2", "linkify-html": "4.0.1", "linkifyjs": "4.0.1", - "matrix-js-sdk": "20.0.1", + "matrix-js-sdk": "20.0.2", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From f577435e98933ff21ba11e7e722c24dac8a7463d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 18:00:39 +0530 Subject: [PATCH 225/717] Bump blurhash from 2.0.2 to 2.0.3 (#893) Bumps [blurhash](https://github.com/woltapp/blurhash) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/woltapp/blurhash/releases) - [Commits](https://github.com/woltapp/blurhash/commits) --- updated-dependencies: - dependency-name: blurhash dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index fc9d6043..d56a671b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "2.0.2", + "blurhash": "2.0.3", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", @@ -3050,9 +3050,9 @@ "dev": true }, "node_modules/blurhash": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.2.tgz", - "integrity": "sha512-aYWeITmNkjtnR6X7wNgoIJ198qJc3w5yaIwLa7yxsV7/BMnWDWWgugBNvImSCcWNdVHhpNFIJgEb5jzhV4rkHA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.3.tgz", + "integrity": "sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA==" }, "node_modules/bn.js": { "version": "5.2.1", @@ -14141,9 +14141,9 @@ } }, "blurhash": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.2.tgz", - "integrity": "sha512-aYWeITmNkjtnR6X7wNgoIJ198qJc3w5yaIwLa7yxsV7/BMnWDWWgugBNvImSCcWNdVHhpNFIJgEb5jzhV4rkHA==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.3.tgz", + "integrity": "sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA==" }, "bn.js": { "version": "5.2.1", diff --git a/package.json b/package.json index 02b26cac..7c537d77 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@matrix-org/olm": "3.2.12", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "2.0.2", + "blurhash": "2.0.3", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", From bcdc1d8915dabf1d9709f2a710025d3e42581b70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 18:02:35 +0530 Subject: [PATCH 226/717] Bump @fontsource/inter from 4.5.12 to 4.5.13 (#895) Bumps [@fontsource/inter](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/inter) from 4.5.12 to 4.5.13. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/inter) --- updated-dependencies: - dependency-name: "@fontsource/inter" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index d56a671b..141e0beb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.2.2", "license": "MIT", "dependencies": { - "@fontsource/inter": "4.5.12", + "@fontsource/inter": "4.5.13", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.4", "@matrix-org/olm": "3.2.12", @@ -1849,9 +1849,9 @@ } }, "node_modules/@fontsource/inter": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.12.tgz", - "integrity": "sha512-bGKk4/8tube/nCk8hav0ZDBVbzJzc7m0Vt4xF5p15IN4YImwGdtKG38Oq5bU8xHNS+VfvbFFCepgQNj7Pr/Lvg==" + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.13.tgz", + "integrity": "sha512-nABtF6jNZZHrotLRiGBByhG7NKJGJHgMbX5W8v6C/7nSdyiWtMRfZX7AMIECDLYGUOEArZDeVO/SbkgwKLrLJw==" }, "node_modules/@fontsource/roboto": { "version": "4.5.8", @@ -13123,9 +13123,9 @@ } }, "@fontsource/inter": { - "version": "4.5.12", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.12.tgz", - "integrity": "sha512-bGKk4/8tube/nCk8hav0ZDBVbzJzc7m0Vt4xF5p15IN4YImwGdtKG38Oq5bU8xHNS+VfvbFFCepgQNj7Pr/Lvg==" + "version": "4.5.13", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.13.tgz", + "integrity": "sha512-nABtF6jNZZHrotLRiGBByhG7NKJGJHgMbX5W8v6C/7nSdyiWtMRfZX7AMIECDLYGUOEArZDeVO/SbkgwKLrLJw==" }, "@fontsource/roboto": { "version": "4.5.8", diff --git a/package.json b/package.json index 7c537d77..d266ea3b 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "author": "Ajay Bura", "license": "MIT", "dependencies": { - "@fontsource/inter": "4.5.12", + "@fontsource/inter": "4.5.13", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.4", "@matrix-org/olm": "3.2.12", From 1f872a9b0c2859ca5133dd583e95dd456a39f7d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 18:03:14 +0530 Subject: [PATCH 227/717] Bump linkifyjs from 4.0.1 to 4.0.2 (#896) Bumps [linkifyjs](https://github.com/Hypercontext/linkifyjs/tree/HEAD/packages/linkifyjs) from 4.0.1 to 4.0.2. - [Release notes](https://github.com/Hypercontext/linkifyjs/releases) - [Changelog](https://github.com/Hypercontext/linkifyjs/blob/main/CHANGELOG.md) - [Commits](https://github.com/Hypercontext/linkifyjs/commits/v4.0.2/packages/linkifyjs) --- updated-dependencies: - dependency-name: linkifyjs dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 141e0beb..ba8c5442 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "html-react-parser": "3.0.4", "katex": "0.16.2", "linkify-html": "4.0.1", - "linkifyjs": "4.0.1", + "linkifyjs": "4.0.2", "matrix-js-sdk": "20.0.2", "prop-types": "15.8.1", "react": "17.0.2", @@ -7668,9 +7668,9 @@ } }, "node_modules/linkifyjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.1.tgz", - "integrity": "sha512-33dNbzpMEPXqei6i13+DXubONuBdiBLKRGMtYAin44CajYTgg25XunP8Vyua1TAuXhVQ1nocDl0D/qDWfY+GuQ==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.2.tgz", + "integrity": "sha512-/VSoCZiglX0VMsXmL5PN3lRg45M86lrD9PskdkA2abWaTKap1bIcJ11LS4EE55bcUl9ZOR4eZ792UtQ9E/5xLA==" }, "node_modules/loader-runner": { "version": "4.3.0", @@ -17677,9 +17677,9 @@ "integrity": "sha512-90z1uPTtnclis7tkUbl6qaCorx96U1c4w2YFPF2Ug5AUaKgCmMuxLJvRQZkSPMPRJ319p/mFhIoNhgCaGXzB3A==" }, "linkifyjs": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.1.tgz", - "integrity": "sha512-33dNbzpMEPXqei6i13+DXubONuBdiBLKRGMtYAin44CajYTgg25XunP8Vyua1TAuXhVQ1nocDl0D/qDWfY+GuQ==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.2.tgz", + "integrity": "sha512-/VSoCZiglX0VMsXmL5PN3lRg45M86lrD9PskdkA2abWaTKap1bIcJ11LS4EE55bcUl9ZOR4eZ792UtQ9E/5xLA==" }, "loader-runner": { "version": "4.3.0", diff --git a/package.json b/package.json index d266ea3b..8aa091a6 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "html-react-parser": "3.0.4", "katex": "0.16.2", "linkify-html": "4.0.1", - "linkifyjs": "4.0.1", + "linkifyjs": "4.0.2", "matrix-js-sdk": "20.0.2", "prop-types": "15.8.1", "react": "17.0.2", From e170d02bff3eac2eb18c566bed2362e64285e5e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 18:05:33 +0530 Subject: [PATCH 228/717] Bump linkify-html from 4.0.1 to 4.0.2 (#894) Bumps [linkify-html](https://github.com/Hypercontext/linkifyjs/tree/HEAD/packages/linkify-html) from 4.0.1 to 4.0.2. - [Release notes](https://github.com/Hypercontext/linkifyjs/releases) - [Changelog](https://github.com/Hypercontext/linkifyjs/blob/main/CHANGELOG.md) - [Commits](https://github.com/Hypercontext/linkifyjs/commits/v4.0.2/packages/linkify-html) --- updated-dependencies: - dependency-name: linkify-html dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ba8c5442..5321fd8a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "formik": "2.2.9", "html-react-parser": "3.0.4", "katex": "0.16.2", - "linkify-html": "4.0.1", + "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "20.0.2", "prop-types": "15.8.1", @@ -7660,9 +7660,9 @@ } }, "node_modules/linkify-html": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.1.tgz", - "integrity": "sha512-90z1uPTtnclis7tkUbl6qaCorx96U1c4w2YFPF2Ug5AUaKgCmMuxLJvRQZkSPMPRJ319p/mFhIoNhgCaGXzB3A==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.2.tgz", + "integrity": "sha512-YcN3tsyutK2Y/uSuoG0zne8FQdoqzrAgNU5ko0DWE7M2oQ3ms4z/202f2W4TvRm9uxKdrsWAullfynANLaVMqw==", "peerDependencies": { "linkifyjs": "^4.0.0" } @@ -17672,9 +17672,9 @@ } }, "linkify-html": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.1.tgz", - "integrity": "sha512-90z1uPTtnclis7tkUbl6qaCorx96U1c4w2YFPF2Ug5AUaKgCmMuxLJvRQZkSPMPRJ319p/mFhIoNhgCaGXzB3A==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.2.tgz", + "integrity": "sha512-YcN3tsyutK2Y/uSuoG0zne8FQdoqzrAgNU5ko0DWE7M2oQ3ms4z/202f2W4TvRm9uxKdrsWAullfynANLaVMqw==" }, "linkifyjs": { "version": "4.0.2", diff --git a/package.json b/package.json index 8aa091a6..6c2bd0ff 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ "formik": "2.2.9", "html-react-parser": "3.0.4", "katex": "0.16.2", - "linkify-html": "4.0.1", + "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "20.0.2", "prop-types": "15.8.1", From 8ea2b0b63b286af39bc9e95859e4c489053442b2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 18:19:58 +0530 Subject: [PATCH 229/717] Lock file maintenance (#875) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 386 ++++++++++++++++++++++++++-------------------- 1 file changed, 215 insertions(+), 171 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5321fd8a..bdc7b2d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1859,9 +1859,9 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz", - "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -2212,9 +2212,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.7.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", - "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", + "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==", "dev": true }, "node_modules/@types/prop-types": { @@ -2235,9 +2235,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.20.tgz", - "integrity": "sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==", + "version": "18.0.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz", + "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -3408,9 +3408,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001406", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz", - "integrity": "sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg==", + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", "dev": true, "funding": [ { @@ -3501,9 +3501,9 @@ } }, "node_modules/clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", "dev": true, "dependencies": { "source-map": "~0.6.0" @@ -3601,11 +3601,12 @@ } }, "node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true, "engines": { - "node": ">= 12" + "node": "^12.20.0 || >=14" } }, "node_modules/commondir": { @@ -3879,9 +3880,9 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.2.tgz", - "integrity": "sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", + "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", "dev": true, "dependencies": { "browserslist": "^4.21.4" @@ -3892,9 +3893,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.2.tgz", - "integrity": "sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.4.tgz", + "integrity": "sha512-qRbgm0ADrsNTU66UcW47YMJjXm+ShhUP2gkoEoAShT2BHO3cb5gGqLtmWpjnM6Wx9h5hMSF4uZ+jEV/8+4KCsw==", "dev": true, "hasInstallScript": true, "funding": { @@ -4688,9 +4689,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.254", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz", - "integrity": "sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==", + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==", "dev": true }, "node_modules/elliptic": { @@ -4799,22 +4800,22 @@ } }, "node_modules/es-abstract": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", - "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", + "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", "dev": true, "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.2", + "get-intrinsic": "^1.1.3", "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", + "is-callable": "^1.2.6", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -4824,6 +4825,7 @@ "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" @@ -6427,28 +6429,7 @@ "webpack": "^5.0.0" } }, - "node_modules/html-loader/node_modules/clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/html-loader/node_modules/commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/html-loader/node_modules/html-minifier-terser": { + "node_modules/html-minifier-terser": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", @@ -6469,27 +6450,6 @@ "node": "^14.13.1 || >=16.0.0" } }, - "node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/html-react-parser": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-3.0.4.tgz", @@ -6527,6 +6487,48 @@ "webpack": "^5.20.0" } }, + "node_modules/html-webpack-plugin/node_modules/clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 10.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "dependencies": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + }, + "bin": { + "html-minifier-terser": "cli.js" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/htmlparser2": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", @@ -6868,9 +6870,9 @@ } }, "node_modules/is-callable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", - "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -7257,9 +7259,9 @@ } }, "node_modules/js-sdsl": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", - "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", "dev": true }, "node_modules/js-tokens": { @@ -7388,6 +7390,14 @@ "katex": "cli.js" } }, + "node_modules/katex/node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -8784,9 +8794,9 @@ } }, "node_modules/postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", + "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", "funding": [ { "type": "opencollective", @@ -10049,6 +10059,20 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -11831,9 +11855,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "dev": true, "engines": { "node": ">=10.0.0" @@ -13133,9 +13157,9 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "@humanwhocodes/config-array": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.5.tgz", - "integrity": "sha512-XVVDtp+dVvRxMoxSiSfasYaG02VEe1qH5cKgMQJWhol6HwzbcqoCMJi8dAGoYAO57jhUyhI6cWuRiTcRaDaYug==", + "version": "0.10.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", + "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -13438,9 +13462,9 @@ "dev": true }, "@types/node": { - "version": "18.7.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.18.tgz", - "integrity": "sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==", + "version": "18.8.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", + "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==", "dev": true }, "@types/prop-types": { @@ -13461,9 +13485,9 @@ "dev": true }, "@types/react": { - "version": "18.0.20", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.20.tgz", - "integrity": "sha512-MWul1teSPxujEHVwZl4a5HxQ9vVNsjTchVA+xRqv/VYGCuKGAU6UhfrTdF5aBefwD1BHUD8i/zq+O/vyCm/FrA==", + "version": "18.0.21", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz", + "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -14433,9 +14457,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001406", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001406.tgz", - "integrity": "sha512-bWTlaXUy/rq0BBtYShc/jArYfBPjEV95euvZ8JVtO43oQExEN/WquoqpufFjNu4kSpi5cy5kMbNvzztWDfv1Jg==", + "version": "1.0.30001414", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", + "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", "dev": true }, "caseless": { @@ -14498,9 +14522,9 @@ } }, "clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", + "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", "dev": true, "requires": { "source-map": "~0.6.0" @@ -14579,9 +14603,10 @@ } }, "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true }, "commondir": { "version": "1.0.1", @@ -14801,18 +14826,18 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.2.tgz", - "integrity": "sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", + "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", "dev": true, "requires": { "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.2.tgz", - "integrity": "sha512-ItD7YpW1cUB4jaqFLZXe1AXkyqIxz6GqPnsDV4uF4hVcWh/WAGIqSqw5p0/WdsILM0Xht9s3Koyw05R3K6RtiA==", + "version": "3.25.4", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.4.tgz", + "integrity": "sha512-qRbgm0ADrsNTU66UcW47YMJjXm+ShhUP2gkoEoAShT2BHO3cb5gGqLtmWpjnM6Wx9h5hMSF4uZ+jEV/8+4KCsw==", "dev": true }, "core-util-is": { @@ -15415,9 +15440,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.254", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz", - "integrity": "sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==", + "version": "1.4.270", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", + "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==", "dev": true }, "elliptic": { @@ -15497,22 +15522,22 @@ } }, "es-abstract": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.2.tgz", - "integrity": "sha512-XxXQuVNrySBNlEkTYJoDNFe5+s2yIOpzq80sUHEdPdQr0S5nTLz4ZPPPswNIpKseDDUS5yghX1gfLIHQZ1iNuQ==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", + "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", "dev": true, "requires": { "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.2", + "get-intrinsic": "^1.1.3", "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", + "is-callable": "^1.2.6", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -15522,6 +15547,7 @@ "object-keys": "^1.1.1", "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", + "safe-regex-test": "^1.0.0", "string.prototype.trimend": "^1.0.5", "string.prototype.trimstart": "^1.0.5", "unbox-primitive": "^1.0.2" @@ -16748,53 +16774,21 @@ "requires": { "html-minifier-terser": "^7.0.0", "parse5": "^7.0.0" - }, - "dependencies": { - "clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "commander": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz", - "integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==", - "dev": true - }, - "html-minifier-terser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", - "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.0", - "entities": "^4.3.1", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.14.2" - } - } } }, "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", + "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", "dev": true, "requires": { "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", + "clean-css": "5.2.0", + "commander": "^9.4.0", + "entities": "^4.3.1", "param-case": "^3.0.4", "relateurl": "^0.2.7", - "terser": "^5.10.0" + "terser": "^5.14.2" } }, "html-react-parser": { @@ -16819,6 +16813,38 @@ "lodash": "^4.17.21", "pretty-error": "^4.0.0", "tapable": "^2.0.0" + }, + "dependencies": { + "clean-css": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", + "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", + "dev": true, + "requires": { + "source-map": "~0.6.0" + } + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "html-minifier-terser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", + "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", + "dev": true, + "requires": { + "camel-case": "^4.1.2", + "clean-css": "^5.2.2", + "commander": "^8.3.0", + "he": "^1.2.0", + "param-case": "^3.0.4", + "relateurl": "^0.2.7", + "terser": "^5.10.0" + } + } } }, "htmlparser2": { @@ -17057,9 +17083,9 @@ } }, "is-callable": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.6.tgz", - "integrity": "sha512-krO72EO2NptOGAX2KYyqbP9vYMlNAXdB53rq6f8LXY6RY7JdSR/3BD6wLUlPHSAesmY9vstNrjvqGaCiRK/91Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true }, "is-core-module": { @@ -17319,9 +17345,9 @@ } }, "js-sdsl": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.4.tgz", - "integrity": "sha512-Y2/yD55y5jteOAmY50JbUZYwk3CP3wnLPEZnlR1w9oKhITrBEtAxwuWKebFf8hMrPMgbYwFoWK/lH2sBkErELw==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", "dev": true }, "js-tokens": { @@ -17418,6 +17444,13 @@ "integrity": "sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA==", "requires": { "commander": "^8.0.0" + }, + "dependencies": { + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" + } } }, "kind-of": { @@ -18531,9 +18564,9 @@ } }, "postcss": { - "version": "8.4.16", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz", - "integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==", + "version": "8.4.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", + "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -19415,6 +19448,17 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -20731,9 +20775,9 @@ "dev": true }, "ws": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.1.tgz", - "integrity": "sha512-bGy2JzvzkPowEJV++hF07hAD6niYSr0JzBNo/J29WsB57A2r7Wlc1UFcTR9IzrPvuNVO4B8LGqF8qcpsVOhJCA==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", + "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", "dev": true }, "xtend": { From c3396780d7255cd4a7573bce3cf97362405ce8d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 08:57:58 +0530 Subject: [PATCH 230/717] Bump actions/checkout from 3.0.2 to 3.1.0 (#904) Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.2 to 3.1.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.0.2...v3.1.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 88b6f20a..990c1aa2 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3.1.0 - name: Setup node uses: actions/setup-node@v3.5.0 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 922e0c0e..3a813dcb 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3.1.0 - name: Build Docker image uses: docker/build-push-action@v3.1.1 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index ff7bf6f1..60178668 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3.1.0 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index d812c215..1bd52321 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3.1.0 - name: Setup node uses: actions/setup-node@v3.5.0 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 8fa199d5..761f06b3 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3.1.0 - name: Setup node uses: actions/setup-node@v3.5.0 with: @@ -64,7 +64,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v3.0.2 + uses: actions/checkout@v3.1.0 - name: Set up QEMU uses: docker/setup-qemu-action@v2.0.0 - name: Set up Docker Buildx From c8301c6ad672a91ae2b5f1e0d8dfc1a21cc66890 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:00:52 +0530 Subject: [PATCH 231/717] Bump @matrix-org/olm from 3.2.12 to 3.2.13 (#906) Bumps @matrix-org/olm from 3.2.12 to 3.2.13. --- updated-dependencies: - dependency-name: "@matrix-org/olm" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index bdc7b2d3..cce33b2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@fontsource/inter": "4.5.13", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.4", - "@matrix-org/olm": "3.2.12", + "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", "blurhash": "2.0.3", @@ -1991,9 +1991,9 @@ "dev": true }, "node_modules/@matrix-org/olm": { - "version": "3.2.12", - "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", - "integrity": "sha1-C848hvnTakmE08PgffHD+0xnm9k=" + "version": "3.2.13", + "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.13.tgz", + "integrity": "sha1-AQn96TvMYd74UfeYJsk4TAc7UXU=" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", @@ -13261,9 +13261,9 @@ "dev": true }, "@matrix-org/olm": { - "version": "3.2.12", - "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz", - "integrity": "sha1-C848hvnTakmE08PgffHD+0xnm9k=" + "version": "3.2.13", + "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.13.tgz", + "integrity": "sha1-AQn96TvMYd74UfeYJsk4TAc7UXU=" }, "@nodelib/fs.scandir": { "version": "2.1.5", diff --git a/package.json b/package.json index 6c2bd0ff..6f63796a 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@fontsource/inter": "4.5.13", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.4", - "@matrix-org/olm": "3.2.12", + "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", "blurhash": "2.0.3", From 33551089ad15fab381153021c4389ff58ff43cfc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:03:45 +0530 Subject: [PATCH 232/717] Bump @khanacademy/simple-markdown from 0.8.4 to 0.8.5 (#910) Bumps [@khanacademy/simple-markdown](https://github.com/Khan/simple-markdown) from 0.8.4 to 0.8.5. - [Release notes](https://github.com/Khan/simple-markdown/releases) - [Commits](https://github.com/Khan/simple-markdown/commits) --- updated-dependencies: - dependency-name: "@khanacademy/simple-markdown" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index cce33b2f..09827eab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@fontsource/inter": "4.5.13", "@fontsource/roboto": "4.5.8", - "@khanacademy/simple-markdown": "0.8.4", + "@khanacademy/simple-markdown": "0.8.5", "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", @@ -1973,9 +1973,9 @@ } }, "node_modules/@khanacademy/simple-markdown": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.4.tgz", - "integrity": "sha512-LzpAJY5G4xpmfAc1HHdHVg8ocyijXI5F3vLHRbUz3NrJHHi9UecUXrprEWHsgIrI0MrzwZk7cAINSXDf467yUg==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.5.tgz", + "integrity": "sha512-xPLm0bBqdIMeNA/sjjD6T8YHT28vsyYVM8ewe6S2QkmVELHpj4XdLayVN6PHjBMoSfJXunfs17Nq32GR+j+PZQ==", "dependencies": { "@types/react": ">=16.0.0" }, @@ -13247,9 +13247,9 @@ } }, "@khanacademy/simple-markdown": { - "version": "0.8.4", - "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.4.tgz", - "integrity": "sha512-LzpAJY5G4xpmfAc1HHdHVg8ocyijXI5F3vLHRbUz3NrJHHi9UecUXrprEWHsgIrI0MrzwZk7cAINSXDf467yUg==", + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.5.tgz", + "integrity": "sha512-xPLm0bBqdIMeNA/sjjD6T8YHT28vsyYVM8ewe6S2QkmVELHpj4XdLayVN6PHjBMoSfJXunfs17Nq32GR+j+PZQ==", "requires": { "@types/react": ">=16.0.0" } diff --git a/package.json b/package.json index 6f63796a..0d5f4eff 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "dependencies": { "@fontsource/inter": "4.5.13", "@fontsource/roboto": "4.5.8", - "@khanacademy/simple-markdown": "0.8.4", + "@khanacademy/simple-markdown": "0.8.5", "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", From 507f9c3c2221c023f9eca5afaf610de88f5817cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:07:24 +0530 Subject: [PATCH 233/717] Bump @babel/preset-env from 7.19.3 to 7.19.4 (#911) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.19.3 to 7.19.4. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.19.4/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 130 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 66 insertions(+), 66 deletions(-) diff --git a/package-lock.json b/package-lock.json index 09827eab..6de8e811 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@babel/core": "7.19.3", - "@babel/preset-env": "7.19.3", + "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", @@ -105,9 +105,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", - "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -449,9 +449,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true, "engines": { "node": ">=6.9.0" @@ -710,14 +710,14 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" }, @@ -1066,12 +1066,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1119,12 +1119,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1593,12 +1593,12 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", - "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.19.4", "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -1613,7 +1613,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -1637,10 +1637,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1667,7 +1667,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1788,12 +1788,12 @@ } }, "node_modules/@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" }, @@ -11933,9 +11933,9 @@ } }, "@babel/compat-data": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.3.tgz", - "integrity": "sha512-prBHMK4JYYK+wDjJF1q99KK4JLL+egWS4nmNqdlMUgCExMZ+iZW0hGhyC3VEbsPjvaN0TBhW//VIFwBrk8sEiw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", "dev": true }, "@babel/core": { @@ -12191,9 +12191,9 @@ } }, "@babel/helper-string-parser": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.18.10.tgz", - "integrity": "sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", "dev": true }, "@babel/helper-validator-identifier": { @@ -12362,14 +12362,14 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz", - "integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", + "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", "dev": true, "requires": { - "@babel/compat-data": "^7.18.8", - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9", + "@babel/compat-data": "^7.19.4", + "@babel/helper-compilation-targets": "^7.19.3", + "@babel/helper-plugin-utils": "^7.19.0", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-transform-parameters": "^7.18.8" } @@ -12601,12 +12601,12 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz", - "integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", + "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-classes": { @@ -12636,12 +12636,12 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.18.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz", - "integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", + "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-dotall-regex": { @@ -12930,12 +12930,12 @@ } }, "@babel/preset-env": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.3.tgz", - "integrity": "sha512-ziye1OTc9dGFOAXSWKUqQblYHNlBOaDl8wzqf2iKXJAltYiR3hKHUKmkt+S9PppW7RQpq4fFCrwwpIDj/f5P4w==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", + "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.19.4", "@babel/helper-compilation-targets": "^7.19.3", "@babel/helper-plugin-utils": "^7.19.0", "@babel/helper-validator-option": "^7.18.6", @@ -12950,7 +12950,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.18.9", + "@babel/plugin-proposal-object-rest-spread": "^7.19.4", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -12974,10 +12974,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.18.9", + "@babel/plugin-transform-block-scoping": "^7.19.4", "@babel/plugin-transform-classes": "^7.19.0", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.18.13", + "@babel/plugin-transform-destructuring": "^7.19.4", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -13004,7 +13004,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -13102,12 +13102,12 @@ } }, "@babel/types": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.3.tgz", - "integrity": "sha512-hGCaQzIY22DJlDh9CH7NOxgKkFjBk0Cw9xDO1Xmh2151ti7wiGfQ3LauXzL4HP1fmFlTX6XjpRETTpUcv7wQLw==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", + "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", "dev": true, "requires": { - "@babel/helper-string-parser": "^7.18.10", + "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", "to-fast-properties": "^2.0.0" } diff --git a/package.json b/package.json index 0d5f4eff..7a05f08d 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "devDependencies": { "@babel/core": "7.19.3", - "@babel/preset-env": "7.19.3", + "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "8.2.5", From 4297eb34c943bbc2b30e17d263f1fb2dd4554f55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:11:49 +0530 Subject: [PATCH 234/717] Bump eslint from 8.24.0 to 8.25.0 (#908) Bumps [eslint](https://github.com/eslint/eslint) from 8.24.0 to 8.25.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.24.0...v8.25.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 48 +++++++++++++++-------------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6de8e811..b77f1b93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.1.0", - "eslint": "8.24.0", + "eslint": "8.25.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", @@ -1811,9 +1811,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", - "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -1872,16 +1872,6 @@ "node": ">=10.10.0" } }, - "node_modules/@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -4900,14 +4890,13 @@ } }, "node_modules/eslint": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", - "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", + "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", "dev": true, "dependencies": { - "@eslint/eslintrc": "^1.3.2", + "@eslint/eslintrc": "^1.3.3", "@humanwhocodes/config-array": "^0.10.5", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", "chalk": "^4.0.0", @@ -13119,9 +13108,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.2.tgz", - "integrity": "sha512-AXYd23w1S/bv3fTs3Lz0vjiYemS08jWkI3hYyS9I1ry+0f+Yjs1wm+sU0BS8qDOPrBIkp4qHYC16I8uVtpLajQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -13167,12 +13156,6 @@ "minimatch": "^3.0.4" } }, - "@humanwhocodes/gitignore-to-minimatch": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", - "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", - "dev": true - }, "@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -15604,14 +15587,13 @@ "dev": true }, "eslint": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.24.0.tgz", - "integrity": "sha512-dWFaPhGhTAiPcCgm3f6LI2MBWbogMnTJzFBbhXVRQDJPkr9pGZvVjlVfXd+vyDcWPA2Ic9L2AXPIQM0+vk/cSQ==", + "version": "8.25.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", + "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", "dev": true, "requires": { - "@eslint/eslintrc": "^1.3.2", + "@eslint/eslintrc": "^1.3.3", "@humanwhocodes/config-array": "^0.10.5", - "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", "@humanwhocodes/module-importer": "^1.0.1", "ajv": "^6.10.0", "chalk": "^4.0.0", diff --git a/package.json b/package.json index 7a05f08d..2fb07465 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.1.0", - "eslint": "8.24.0", + "eslint": "8.25.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", From 90972e938ef7810ee5701f7440c3f50395327837 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:20:21 +0530 Subject: [PATCH 235/717] Bump sass-loader from 13.0.2 to 13.1.0 (#907) Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 13.0.2 to 13.1.0. - [Release notes](https://github.com/webpack-contrib/sass-loader/releases) - [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/sass-loader/compare/v13.0.2...v13.1.0) --- updated-dependencies: - dependency-name: sass-loader dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b77f1b93..106d94fe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", "sass": "1.55.0", - "sass-loader": "13.0.2", + "sass-loader": "13.1.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", "url": "0.11.0", @@ -10183,9 +10183,9 @@ } }, "node_modules/sass-loader": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", - "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz", + "integrity": "sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==", "dev": true, "dependencies": { "klona": "^2.0.4", @@ -19527,9 +19527,9 @@ } }, "sass-loader": { - "version": "13.0.2", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.0.2.tgz", - "integrity": "sha512-BbiqbVmbfJaWVeOOAu2o7DhYWtcNmTfvroVgFXa6k2hHheMxNAeDHLNoDy/Q5aoaVlz0LH+MbMktKwm9vN/j8Q==", + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz", + "integrity": "sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==", "dev": true, "requires": { "klona": "^2.0.4", diff --git a/package.json b/package.json index 2fb07465..9890b1a4 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", "sass": "1.55.0", - "sass-loader": "13.0.2", + "sass-loader": "13.1.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", "url": "0.11.0", From 07570f9e8a666016371af4ab26b15f4294d82bf1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:26:09 +0530 Subject: [PATCH 236/717] Bump eslint-plugin-react from 7.31.8 to 7.31.10 (#912) Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.8 to 7.31.10. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.8...v7.31.10) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 106d94fe..0fb5f9ab 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-react": "7.31.8", + "eslint-plugin-react": "7.31.10", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", @@ -5111,9 +5111,9 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", - "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dev": true, "dependencies": { "array-includes": "^3.1.5", @@ -15857,9 +15857,9 @@ } }, "eslint-plugin-react": { - "version": "7.31.8", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.8.tgz", - "integrity": "sha512-5lBTZmgQmARLLSYiwI71tiGVTLUuqXantZM6vlSY39OaDSV0M7+32K5DnLkmFrwTe+Ksz0ffuLUC91RUviVZfw==", + "version": "7.31.10", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", + "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", "dev": true, "requires": { "array-includes": "^3.1.5", diff --git a/package.json b/package.json index 9890b1a4..5a13f290 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-react": "7.31.8", + "eslint-plugin-react": "7.31.10", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", From d59a118e83938558ee1ab71f00ec95835dc2b592 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 09:30:59 +0530 Subject: [PATCH 237/717] Lock file maintenance (#902) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 567 +++++++++++++++++----------------------------- 1 file changed, 214 insertions(+), 353 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0fb5f9ab..d0bff095 100644 --- a/package-lock.json +++ b/package-lock.json @@ -144,12 +144,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", "dev": true, "dependencies": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -413,12 +413,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -491,14 +491,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", "dev": true, "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -519,9 +519,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1718,9 +1718,9 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", "dependencies": { "regenerator-runtime": "^0.13.4" }, @@ -1729,9 +1729,9 @@ } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", - "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", + "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", "dev": true, "dependencies": { "core-js-pure": "^3.25.1", @@ -1767,19 +1767,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1953,13 +1953,13 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", + "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", "dev": true, "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "node_modules/@khanacademy/simple-markdown": { @@ -2202,9 +2202,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", - "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==", + "version": "18.8.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", + "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", "dev": true }, "node_modules/@types/prop-types": { @@ -3051,9 +3051,9 @@ "dev": true }, "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -3064,7 +3064,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -3098,21 +3098,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/bonjour-service": { "version": "1.0.14", "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", @@ -3247,26 +3232,6 @@ "safe-buffer": "^5.2.0" } }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/browserslist": { "version": "4.21.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", @@ -3398,9 +3363,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001414", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", - "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "version": "1.0.30001418", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", + "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", "dev": true, "funding": [ { @@ -3650,6 +3615,12 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/compression/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/computed-style": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", @@ -3697,6 +3668,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/concat-stream/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -3733,26 +3710,6 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -3762,13 +3719,10 @@ } }, "node_modules/convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "node_modules/cookie": { "version": "0.5.0", @@ -3870,9 +3824,9 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", - "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", "dev": true, "dependencies": { "browserslist": "^4.21.4" @@ -3883,9 +3837,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.4.tgz", - "integrity": "sha512-qRbgm0ADrsNTU66UcW47YMJjXm+ShhUP2gkoEoAShT2BHO3cb5gGqLtmWpjnM6Wx9h5hMSF4uZ+jEV/8+4KCsw==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", + "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", "dev": true, "hasInstallScript": true, "funding": { @@ -4024,9 +3978,9 @@ } }, "node_modules/css-loader/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4679,9 +4633,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.270", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", - "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==", + "version": "1.4.276", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", + "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==", "dev": true }, "node_modules/elliptic": { @@ -4790,9 +4744,9 @@ } }, "node_modules/es-abstract": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", - "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -4805,7 +4759,7 @@ "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.6", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -5485,14 +5439,14 @@ "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" }, "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -5511,7 +5465,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -5547,41 +5501,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/express/node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/express/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -6283,26 +6202,6 @@ "node": ">=4" } }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/hash.js": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", @@ -6374,6 +6273,12 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "node_modules/hpack.js/node_modules/string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -8077,10 +7982,13 @@ } }, "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/ms": { "version": "2.1.2", @@ -10044,9 +9952,23 @@ } }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, "node_modules/safe-regex-test": { "version": "1.0.0", @@ -10645,26 +10567,6 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string_decoder/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/string-range": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", @@ -10872,9 +10774,9 @@ } }, "node_modules/terser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", @@ -11225,9 +11127,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "funding": [ { @@ -11951,12 +11853,12 @@ } }, "@babel/generator": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.3.tgz", - "integrity": "sha512-fqVZnmp1ncvZU757UzDheKZpfPgatqY59XtW2/j/18H7u76akb8xqvjw82f+i2UKd/ksYsSick/BCLQUUtJ/qQ==", + "version": "7.19.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", + "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", "dev": true, "requires": { - "@babel/types": "^7.19.3", + "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -12153,12 +12055,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", - "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", + "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", "dev": true, "requires": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.19.4" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -12210,14 +12112,14 @@ } }, "@babel/helpers": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.0.tgz", - "integrity": "sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", + "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", "dev": true, "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.4", + "@babel/types": "^7.19.4" } }, "@babel/highlight": { @@ -12232,9 +12134,9 @@ } }, "@babel/parser": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.3.tgz", - "integrity": "sha512-pJ9xOlNWHiy9+FuFP09DEAFbAn4JskgRsVcc169w2xRBC3FRGuQEwjeIMMND9L2zc0iEhO/tGv4Zq+km+hxNpQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -13029,9 +12931,9 @@ } }, "@babel/runtime": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz", - "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", "requires": { "regenerator-runtime": "^0.13.4" }, @@ -13044,9 +12946,9 @@ } }, "@babel/runtime-corejs3": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz", - "integrity": "sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", + "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", "dev": true, "requires": { "core-js-pure": "^3.25.1", @@ -13073,19 +12975,19 @@ } }, "@babel/traverse": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.3.tgz", - "integrity": "sha512-qh5yf6149zhq2sgIXmwjnsvmnNQC2iw70UFjp4olxucKrWd/dvlUsBI88VSLUsnMNF7/vnOiA+nk1+yLoCqROQ==", + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", + "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.4", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/parser": "^7.19.4", + "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" } @@ -13220,13 +13122,13 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.15", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz", - "integrity": "sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==", + "version": "0.3.16", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", + "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", "dev": true, "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" } }, "@khanacademy/simple-markdown": { @@ -13445,9 +13347,9 @@ "dev": true }, "@types/node": { - "version": "18.8.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.0.tgz", - "integrity": "sha512-u+h43R6U8xXDt2vzUaVP3VwjjLyOJk6uEciZS8OSyziUQGOwmk+l+4drxcsDboHXwyTaqS1INebghmWMRxq3LA==", + "version": "18.8.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", + "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", "dev": true }, "@types/prop-types": { @@ -14159,9 +14061,9 @@ "dev": true }, "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", "dev": true, "requires": { "bytes": "3.1.2", @@ -14172,7 +14074,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.10.3", + "qs": "6.11.0", "raw-body": "2.5.1", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -14198,15 +14100,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } } } }, @@ -14336,14 +14229,6 @@ "parse-asn1": "^5.1.5", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "browserslist": { @@ -14440,9 +14325,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001414", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz", - "integrity": "sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==", + "version": "1.0.30001418", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", + "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", "dev": true }, "caseless": { @@ -14635,6 +14520,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true } } }, @@ -14682,6 +14573,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -14712,14 +14609,6 @@ "dev": true, "requires": { "safe-buffer": "5.2.1" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "content-type": { @@ -14728,13 +14617,10 @@ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" }, "convert-source-map": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", - "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.1" - } + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true }, "cookie": { "version": "0.5.0", @@ -14809,18 +14695,18 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.4.tgz", - "integrity": "sha512-gCEcIEEqCR6230WroNunK/653CWKhqyCKJ9b+uESqOt/WFJA8B4lTnnQFdpYY5vmBcwJAA90Bo5vXs+CVsf6iA==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", + "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", "dev": true, "requires": { "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.4", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.4.tgz", - "integrity": "sha512-qRbgm0ADrsNTU66UcW47YMJjXm+ShhUP2gkoEoAShT2BHO3cb5gGqLtmWpjnM6Wx9h5hMSF4uZ+jEV/8+4KCsw==", + "version": "3.25.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", + "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", "dev": true }, "core-util-is": { @@ -14934,9 +14820,9 @@ }, "dependencies": { "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -15423,9 +15309,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.270", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.270.tgz", - "integrity": "sha512-KNhIzgLiJmDDC444dj9vEOpZEgsV96ult9Iff98Vanumn+ShJHd5se8aX6KeVxdc0YQeqdrezBZv89rleDbvSg==", + "version": "1.4.276", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", + "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==", "dev": true }, "elliptic": { @@ -15505,9 +15391,9 @@ } }, "es-abstract": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.3.tgz", - "integrity": "sha512-AyrnaKVpMzljIdwjzrj+LxGmj8ik2LckwXacHqrJJ/jxz6dDDBcZ7I7nlHM0FvEW8MfbWJwOd+yT2XzYW49Frw==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", + "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -15520,7 +15406,7 @@ "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "is-callable": "^1.2.6", + "is-callable": "^1.2.7", "is-negative-zero": "^2.0.2", "is-regex": "^1.1.4", "is-shared-array-buffer": "^1.0.2", @@ -16031,14 +15917,14 @@ "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" }, "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", "dev": true, "requires": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.0", + "body-parser": "1.20.1", "content-disposition": "0.5.4", "content-type": "~1.0.4", "cookie": "0.5.0", @@ -16057,7 +15943,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", "proxy-addr": "~2.0.7", - "qs": "6.10.3", + "qs": "6.11.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "0.18.0", @@ -16089,21 +15975,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true } } }, @@ -16644,14 +16515,6 @@ "inherits": "^2.0.4", "readable-stream": "^3.6.0", "safe-buffer": "^5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "hash.js": { @@ -16722,6 +16585,12 @@ "util-deprecate": "~1.0.1" } }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, "string_decoder": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -18014,9 +17883,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", + "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", "dev": true }, "ms": { @@ -19426,9 +19295,9 @@ } }, "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" }, "safe-regex-test": { "version": "1.0.0", @@ -19891,14 +19760,6 @@ "dev": true, "requires": { "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } } }, "string-range": { @@ -20049,9 +19910,9 @@ "dev": true }, "terser": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.0.tgz", - "integrity": "sha512-L1BJiXVmheAQQy+as0oF3Pwtlo4s3Wi1X2zNZ2NxOB4wx9bdS9Vk67XQENLFdLYGCK/Z2di53mTj/hBafR+dTA==", + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", "dev": true, "requires": { "@jridgewell/source-map": "^0.3.2", @@ -20310,9 +20171,9 @@ "dev": true }, "update-browserslist-db": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz", - "integrity": "sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", "dev": true, "requires": { "escalade": "^3.1.1", From 10a399f7e65d888199c01ccd004bea96bf86c6f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:13:55 +0530 Subject: [PATCH 238/717] Bump actions/setup-node from 3.5.0 to 3.5.1 (#918) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.5.0 to 3.5.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.5.0...v3.5.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 990c1aa2..abc514fb 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -14,7 +14,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.1.0 - name: Setup node - uses: actions/setup-node@v3.5.0 + uses: actions/setup-node@v3.5.1 with: node-version: 17.9.0 cache: 'npm' diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 1bd52321..87eb8310 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.1.0 - name: Setup node - uses: actions/setup-node@v3.5.0 + uses: actions/setup-node@v3.5.1 with: node-version: 17.9.0 cache: 'npm' diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 761f06b3..bab44f29 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.1.0 - name: Setup node - uses: actions/setup-node@v3.5.0 + uses: actions/setup-node@v3.5.1 with: node-version: 17.9.0 cache: 'npm' From 6d8f70454272a6eb5c48e39d04432785e80f19e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:14:48 +0530 Subject: [PATCH 239/717] Bump docker/build-push-action from 3.1.1 to 3.2.0 (#919) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.1 to 3.2.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.1.1...v3.2.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 3a813dcb..18617996 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.1.0 - name: Build Docker image - uses: docker/build-push-action@v3.1.1 + uses: docker/build-push-action@v3.2.0 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index bab44f29..5a4ddd73 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -88,7 +88,7 @@ jobs: ${{ secrets.DOCKER_USERNAME }}/cinny ghcr.io/${{ github.repository }} - name: Build and push Docker image - uses: docker/build-push-action@v3.1.1 + uses: docker/build-push-action@v3.2.0 with: context: . platforms: linux/amd64,linux/arm64 From c825c41aede7bebefe2a79777ba83e0f72d8d826 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:15:17 +0530 Subject: [PATCH 240/717] Bump docker/setup-qemu-action from 2.0.0 to 2.1.0 (#921) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2.0.0...v2.1.0) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 5a4ddd73..7d3be856 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -66,7 +66,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.1.0 - name: Set up QEMU - uses: docker/setup-qemu-action@v2.0.0 + uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.0.0 - name: Login to Docker Hub From b52aa9ac76bf45bd19d3de6b4b50986111dfa36f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:16:01 +0530 Subject: [PATCH 241/717] Bump nwtgck/actions-netlify from 1.2.3 to 1.2.4 (#920) Bumps [nwtgck/actions-netlify](https://github.com/nwtgck/actions-netlify) from 1.2.3 to 1.2.4. - [Release notes](https://github.com/nwtgck/actions-netlify/releases) - [Changelog](https://github.com/nwtgck/actions-netlify/blob/develop/CHANGELOG.md) - [Commits](https://github.com/nwtgck/actions-netlify/compare/b7c1504e00c6b8a249d1848cc1b522a4865eed99...ac1cb16858bada08a9c71a81240a85cfc3f72913) --- updated-dependencies: - dependency-name: nwtgck/actions-netlify dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index f5dbacc5..34b95733 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -30,7 +30,7 @@ jobs: path: dist - name: Deploy to Netlify id: netlify - uses: nwtgck/actions-netlify@b7c1504e00c6b8a249d1848cc1b522a4865eed99 + uses: nwtgck/actions-netlify@ac1cb16858bada08a9c71a81240a85cfc3f72913 with: publish-dir: dist deploy-message: "Deploy PR ${{ steps.pr.outputs.id }}" diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 87eb8310..9a4ac6e0 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -22,7 +22,7 @@ jobs: - name: Build app run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@b7c1504e00c6b8a249d1848cc1b522a4865eed99 + uses: nwtgck/actions-netlify@ac1cb16858bada08a9c71a81240a85cfc3f72913 with: publish-dir: dist deploy-message: "Dev deploy ${{ github.sha }}" diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 7d3be856..1a718e0d 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -21,7 +21,7 @@ jobs: - name: Build app run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@b7c1504e00c6b8a249d1848cc1b522a4865eed99 + uses: nwtgck/actions-netlify@ac1cb16858bada08a9c71a81240a85cfc3f72913 with: publish-dir: dist deploy-message: "Prod deploy ${{ github.ref_name }}" From 194eb3004246ccde2d6bc7070cec6b1ec157f8e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:16:49 +0530 Subject: [PATCH 242/717] Bump dawidd6/action-download-artifact from 2.23.0 to 2.24.0 (#922) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 2.23.0 to 2.24.0. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/7847792dd435a50521b8e3bd3576dae7459d1fa8...46b4ae883bf0726f5949d025d31cb62c7a5ac70c) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 34b95733..8cd46714 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -13,7 +13,7 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Download pr number - uses: dawidd6/action-download-artifact@7847792dd435a50521b8e3bd3576dae7459d1fa8 + uses: dawidd6/action-download-artifact@46b4ae883bf0726f5949d025d31cb62c7a5ac70c with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} @@ -22,7 +22,7 @@ jobs: id: pr run: echo "::set-output name=id::$( Date: Sat, 15 Oct 2022 15:17:21 +0530 Subject: [PATCH 243/717] Bump docker/login-action from 2.0.0 to 2.1.0 (#923) Bumps [docker/login-action](https://github.com/docker/login-action) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2.0.0...v2.1.0) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 1a718e0d..c1d270e9 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -70,12 +70,12 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.0.0 - name: Login to Docker Hub - uses: docker/login-action@v2.0.0 + uses: docker/login-action@v2.1.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to the Container registry - uses: docker/login-action@v2.0.0 + uses: docker/login-action@v2.1.0 with: registry: ghcr.io username: ${{ github.actor }} From 52376e10a513059358356c08acad7c87dea1ed4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:18:02 +0530 Subject: [PATCH 244/717] Bump docker/setup-buildx-action from 2.0.0 to 2.1.0 (#924) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2.0.0...v2.1.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index c1d270e9..f3a3c4c6 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -68,7 +68,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.0.0 + uses: docker/setup-buildx-action@v2.1.0 - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: From 81b88477bd18dfb771eebd78047494b9ef5557d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 15 Oct 2022 15:19:18 +0530 Subject: [PATCH 245/717] Bump docker/metadata-action from 4.0.1 to 4.1.0 (#925) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.0.1 to 4.1.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/v4.0.1...v4.1.0) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index f3a3c4c6..10600bdc 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -82,7 +82,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4.0.1 + uses: docker/metadata-action@v4.1.0 with: images: | ${{ secrets.DOCKER_USERNAME }}/cinny From 9b42077f7aae7b4011ec6a7847130996577a05f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 11:47:57 +0530 Subject: [PATCH 246/717] Bump docker/metadata-action from 4.1.0 to 4.1.1 (#928) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 10600bdc..be5671af 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -82,7 +82,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4.1.0 + uses: docker/metadata-action@v4.1.1 with: images: | ${{ secrets.DOCKER_USERNAME }}/cinny From 89e93be091e49cf9f11b2d1cbd07cb555b948c75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 11:48:41 +0530 Subject: [PATCH 247/717] Bump docker/setup-buildx-action from 2.1.0 to 2.2.0 (#929) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index be5671af..1a747d4d 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -68,7 +68,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.1.0 + uses: docker/setup-buildx-action@v2.2.0 - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: From 613ffefeb35f9135e3405d2ff6bc17ed52cf9faf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:32:09 +0530 Subject: [PATCH 248/717] Bump util from 0.12.4 to 0.12.5 (#933) Bumps [util](https://github.com/browserify/node-util) from 0.12.4 to 0.12.5. - [Release notes](https://github.com/browserify/node-util/releases) - [Changelog](https://github.com/browserify/node-util/blob/master/CHANGELOG.md) - [Commits](https://github.com/browserify/node-util/compare/v0.12.4...v0.12.5) --- updated-dependencies: - dependency-name: util dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 +++++++--------- package.json | 2 +- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index d0bff095..9cd0a801 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "stream-browserify": "3.0.0", "style-loader": "3.3.1", "url": "0.11.0", - "util": "0.12.4", + "util": "0.12.5", "webpack": "5.74.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.11.1", @@ -11177,16 +11177,15 @@ "dev": true }, "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, @@ -20207,16 +20206,15 @@ } }, "util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "requires": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, diff --git a/package.json b/package.json index 5a13f290..56e5e259 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "stream-browserify": "3.0.0", "style-loader": "3.3.1", "url": "0.11.0", - "util": "0.12.4", + "util": "0.12.5", "webpack": "5.74.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.11.1", From 2f4fbc9d4904d7921eb6906e083baa380b8a4949 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:33:29 +0530 Subject: [PATCH 249/717] Bump react-blurhash from 0.1.3 to 0.2.0 (#932) Bumps [react-blurhash](https://github.com/woltapp/react-blurhash) from 0.1.3 to 0.2.0. - [Release notes](https://github.com/woltapp/react-blurhash/releases) - [Changelog](https://github.com/woltapp/react-blurhash/blob/master/CHANGELOG.md) - [Commits](https://github.com/woltapp/react-blurhash/commits) --- updated-dependencies: - dependency-name: react-blurhash dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9cd0a801..ed3593d2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,7 +30,7 @@ "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", - "react-blurhash": "0.1.3", + "react-blurhash": "0.2.0", "react-dnd": "15.1.2", "react-dnd-html5-backend": "15.1.3", "react-dom": "17.0.2", @@ -9435,11 +9435,11 @@ } }, "node_modules/react-blurhash": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.1.3.tgz", - "integrity": "sha512-Q9lqbXg92NU6/2DoIl/cBM8YWL+Z4X66OiG4aT9ozOgjBwx104LHFCH5stf6aF+s0Q9Wf310Ul+dG+VXJltmPg==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.2.0.tgz", + "integrity": "sha512-MfhPLfFTNCX3MCJ8nM5t+T5qAixBUv8QHVcHORs5iVaqdpg+IW/e4lpOphc0bm6AvKz//4MuHESIeKKoxi3wnA==", "peerDependencies": { - "blurhash": "^1.1.1", + "blurhash": "^2.0.3", "react": ">=15" } }, @@ -18910,9 +18910,9 @@ } }, "react-blurhash": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.1.3.tgz", - "integrity": "sha512-Q9lqbXg92NU6/2DoIl/cBM8YWL+Z4X66OiG4aT9ozOgjBwx104LHFCH5stf6aF+s0Q9Wf310Ul+dG+VXJltmPg==" + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.2.0.tgz", + "integrity": "sha512-MfhPLfFTNCX3MCJ8nM5t+T5qAixBUv8QHVcHORs5iVaqdpg+IW/e4lpOphc0bm6AvKz//4MuHESIeKKoxi3wnA==" }, "react-dnd": { "version": "15.1.2", diff --git a/package.json b/package.json index 56e5e259..f8873984 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", - "react-blurhash": "0.1.3", + "react-blurhash": "0.2.0", "react-dnd": "15.1.2", "react-dnd-html5-backend": "15.1.3", "react-dom": "17.0.2", From 5ab202e5c9482cb28281ee4c4253b484c24895be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:34:05 +0530 Subject: [PATCH 250/717] Bump @fontsource/inter from 4.5.13 to 4.5.14 (#931) Bumps [@fontsource/inter](https://github.com/fontsource/fontsource/tree/HEAD/fonts/google/inter) from 4.5.13 to 4.5.14. - [Release notes](https://github.com/fontsource/fontsource/releases) - [Changelog](https://github.com/fontsource/fontsource/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/fontsource/commits/HEAD/fonts/google/inter) --- updated-dependencies: - dependency-name: "@fontsource/inter" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index ed3593d2..1fe06478 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.2.2", "license": "MIT", "dependencies": { - "@fontsource/inter": "4.5.13", + "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.5", "@matrix-org/olm": "3.2.13", @@ -1849,9 +1849,9 @@ } }, "node_modules/@fontsource/inter": { - "version": "4.5.13", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.13.tgz", - "integrity": "sha512-nABtF6jNZZHrotLRiGBByhG7NKJGJHgMbX5W8v6C/7nSdyiWtMRfZX7AMIECDLYGUOEArZDeVO/SbkgwKLrLJw==" + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz", + "integrity": "sha512-JDC9AocdPLuGsASkvWw9hS5gtHE7K9dOwL98XLrk5yjYqxy4uVnScG58NUvFMJDVJRl/7c8Wnap6PEs+7Zvj1Q==" }, "node_modules/@fontsource/roboto": { "version": "4.5.8", @@ -13037,9 +13037,9 @@ } }, "@fontsource/inter": { - "version": "4.5.13", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.13.tgz", - "integrity": "sha512-nABtF6jNZZHrotLRiGBByhG7NKJGJHgMbX5W8v6C/7nSdyiWtMRfZX7AMIECDLYGUOEArZDeVO/SbkgwKLrLJw==" + "version": "4.5.14", + "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz", + "integrity": "sha512-JDC9AocdPLuGsASkvWw9hS5gtHE7K9dOwL98XLrk5yjYqxy4uVnScG58NUvFMJDVJRl/7c8Wnap6PEs+7Zvj1Q==" }, "@fontsource/roboto": { "version": "4.5.8", diff --git a/package.json b/package.json index f8873984..41e1d555 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "author": "Ajay Bura", "license": "MIT", "dependencies": { - "@fontsource/inter": "4.5.13", + "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.5", "@matrix-org/olm": "3.2.13", From 1625b8a665fc2a0b83c40512536f6adfdf307ade Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 12:51:42 +0530 Subject: [PATCH 251/717] Bump react-modal from 3.15.1 to 3.16.1 (#936) Bumps [react-modal](https://github.com/reactjs/react-modal) from 3.15.1 to 3.16.1. - [Release notes](https://github.com/reactjs/react-modal/releases) - [Changelog](https://github.com/reactjs/react-modal/blob/master/CHANGELOG.md) - [Commits](https://github.com/reactjs/react-modal/compare/v3.15.1...v3.16.1) --- updated-dependencies: - dependency-name: react-modal dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fe06478..266fc13f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,7 +35,7 @@ "react-dnd-html5-backend": "15.1.3", "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", - "react-modal": "3.15.1", + "react-modal": "3.16.1", "sanitize-html": "2.7.2", "tippy.js": "6.3.7", "twemoji": "14.0.2" @@ -9521,9 +9521,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "node_modules/react-modal": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.15.1.tgz", - "integrity": "sha512-duB9bxOaYg7Zt6TMFldIFxQRtSP+Dg3F1ZX3FXxSUn+3tZZ/9JCgeAQKDg7rhZSAqopq8TFRw3yIbnx77gyFTw==", + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz", + "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==", "dependencies": { "exenv": "^1.2.0", "prop-types": "^15.7.2", @@ -18969,9 +18969,9 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-modal": { - "version": "3.15.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.15.1.tgz", - "integrity": "sha512-duB9bxOaYg7Zt6TMFldIFxQRtSP+Dg3F1ZX3FXxSUn+3tZZ/9JCgeAQKDg7rhZSAqopq8TFRw3yIbnx77gyFTw==", + "version": "3.16.1", + "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz", + "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==", "requires": { "exenv": "^1.2.0", "prop-types": "^15.7.2", diff --git a/package.json b/package.json index 41e1d555..db322f7c 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "react-dnd-html5-backend": "15.1.3", "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", - "react-modal": "3.15.1", + "react-modal": "3.16.1", "sanitize-html": "2.7.2", "tippy.js": "6.3.7", "twemoji": "14.0.2" From dbeac1f8eb846e08db71b192222186f393ad9ef4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Oct 2022 18:28:33 +0530 Subject: [PATCH 252/717] Bump matrix-js-sdk from 20.0.2 to 20.1.0 (#930) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 20.0.2 to 20.1.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v20.0.2...v20.1.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 266fc13f..23a8d1cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.2", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "20.0.2", + "matrix-js-sdk": "20.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7725,9 +7725,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.2.tgz", - "integrity": "sha512-PZMiLQHtmV+c5wZxS7EyWUKgHMJ/Syad7S5RxZVg80wug3qlX3oXkfyxZwrcMK4T1xE31upizspTZLm5Bkl2Vw==", + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.1.0.tgz", + "integrity": "sha512-AjuWVmerJ8aEAIgD6QfmSIg0RrvA8vzvOV+ycvSGg4DgiFlVZbFvBxkVZTRdZ5icJe1/XMaCEf5OZ9Ha2hXUUg==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17684,9 +17684,9 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "20.0.2", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.0.2.tgz", - "integrity": "sha512-PZMiLQHtmV+c5wZxS7EyWUKgHMJ/Syad7S5RxZVg80wug3qlX3oXkfyxZwrcMK4T1xE31upizspTZLm5Bkl2Vw==", + "version": "20.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.1.0.tgz", + "integrity": "sha512-AjuWVmerJ8aEAIgD6QfmSIg0RrvA8vzvOV+ycvSGg4DgiFlVZbFvBxkVZTRdZ5icJe1/XMaCEf5OZ9Ha2hXUUg==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index db322f7c..37135fb0 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "katex": "0.16.2", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "20.0.2", + "matrix-js-sdk": "20.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From bf7961822124af5d3cd8ef413120c025f2e074b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 21:05:05 +0530 Subject: [PATCH 253/717] Bump docker/setup-buildx-action from 2.2.0 to 2.2.1 (#937) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.2.0 to 2.2.1. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2.2.0...v2.2.1) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 1a747d4d..ed981c3c 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -68,7 +68,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.2.0 + uses: docker/setup-buildx-action@v2.2.1 - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: From 6437970f7f0d2a54c694b7b5347f142e6c670d44 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 13:37:09 +0530 Subject: [PATCH 254/717] Lock file maintenance (#927) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 108 +++++++++++++++++++++++----------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/package-lock.json b/package-lock.json index 23a8d1cb..f60a5bd8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1742,15 +1742,15 @@ } }, "node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", "dev": true }, "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" }, "node_modules/@babel/template": { "version": "7.18.10", @@ -1953,9 +1953,9 @@ "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", - "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", @@ -2202,9 +2202,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.8.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", - "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==", "dev": true }, "node_modules/@types/prop-types": { @@ -3363,9 +3363,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "dev": true, "funding": [ { @@ -4633,9 +4633,9 @@ "dev": true }, "node_modules/electron-to-chromium": { - "version": "1.4.276", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "node_modules/elliptic": { @@ -6776,9 +6776,9 @@ } }, "node_modules/is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -8691,9 +8691,9 @@ } }, "node_modules/postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", "funding": [ { "type": "opencollective", @@ -11032,9 +11032,9 @@ "dev": true }, "node_modules/ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==", "funding": [ { "type": "opencollective", @@ -12938,9 +12938,9 @@ }, "dependencies": { "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==" + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" } } }, @@ -12955,9 +12955,9 @@ }, "dependencies": { "regenerator-runtime": { - "version": "0.13.9", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", - "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", "dev": true } } @@ -13121,9 +13121,9 @@ "dev": true }, "@jridgewell/trace-mapping": { - "version": "0.3.16", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz", - "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==", + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", "dev": true, "requires": { "@jridgewell/resolve-uri": "3.1.0", @@ -13346,9 +13346,9 @@ "dev": true }, "@types/node": { - "version": "18.8.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.8.4.tgz", - "integrity": "sha512-WdlVphvfR/GJCLEMbNA8lJ0lhFNBj4SW3O+O5/cEGw9oYrv0al9zTwuQsq+myDUXgNx2jgBynoVgZ2MMJ6pbow==", + "version": "18.11.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", + "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==", "dev": true }, "@types/prop-types": { @@ -14324,9 +14324,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", + "version": "1.0.30001422", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", + "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "dev": true }, "caseless": { @@ -15308,9 +15308,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.4.276", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==", + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, "elliptic": { @@ -16939,9 +16939,9 @@ "dev": true }, "is-core-module": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", - "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", "dev": true, "requires": { "has": "^1.0.3" @@ -18414,9 +18414,9 @@ } }, "postcss": { - "version": "8.4.17", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.17.tgz", - "integrity": "sha512-UNxNOLQydcOFi41yHNMcKRZ39NeXlr8AxGuZJsdub8vIb12fHzcq37DTU/QtbI6WLxNg2gF9Z+8qtRwTj1UI1Q==", + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", "requires": { "nanoid": "^3.3.4", "picocolors": "^1.0.0", @@ -20109,9 +20109,9 @@ "dev": true }, "ua-parser-js": { - "version": "0.7.31", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", - "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==" + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", + "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==" }, "unbox-primitive": { "version": "1.0.2", From d4da49512c788d19a0d127f31db3d313f9987922 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 10:39:59 +0530 Subject: [PATCH 255/717] Bump eslint from 8.25.0 to 8.26.0 (#946) Bumps [eslint](https://github.com/eslint/eslint) from 8.25.0 to 8.26.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.25.0...v8.26.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 105 +++++++++++++--------------------------------- package.json | 2 +- 2 files changed, 30 insertions(+), 77 deletions(-) diff --git a/package-lock.json b/package-lock.json index f60a5bd8..a81f9151 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.1.0", - "eslint": "8.25.0", + "eslint": "8.26.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", @@ -1859,9 +1859,9 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", + "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -4844,14 +4844,15 @@ } }, "node_modules/eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", - "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/config-array": "^0.11.6", "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -4867,14 +4868,14 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "glob-parent": "^6.0.1", + "glob-parent": "^6.0.2", "globals": "^13.15.0", - "globby": "^11.1.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", @@ -5197,15 +5198,6 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/eslint/node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5267,26 +5259,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -5296,10 +5268,10 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "node_modules/eslint/node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true, "engines": { "node": ">=8" @@ -13047,9 +13019,9 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "@humanwhocodes/config-array": { - "version": "0.10.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.7.tgz", - "integrity": "sha512-MDl6D6sBsaV452/QSdX+4CXIjZhIcI0PELsxUjk4U828yd58vk3bTIvk/6w5FY+4hIy9sLW0sfrV7K7Kc++j/w==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", + "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -15472,14 +15444,15 @@ "dev": true }, "eslint": { - "version": "8.25.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.25.0.tgz", - "integrity": "sha512-DVlJOZ4Pn50zcKW5bYH7GQK/9MsoQG2d5eDH0ebEkE8PbgzTTmtt/VTH9GGJ4BfeZCpBLqFfvsjX35UacUL83A==", + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.10.5", + "@humanwhocodes/config-array": "^0.11.6", "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -15495,14 +15468,14 @@ "fast-deep-equal": "^3.1.3", "file-entry-cache": "^6.0.1", "find-up": "^5.0.0", - "glob-parent": "^6.0.1", + "glob-parent": "^6.0.2", "globals": "^13.15.0", - "globby": "^11.1.0", "grapheme-splitter": "^1.0.4", "ignore": "^5.2.0", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", "js-sdsl": "^4.1.4", "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", @@ -15526,12 +15499,6 @@ "color-convert": "^2.0.1" } }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -15572,30 +15539,16 @@ "type-fest": "^0.20.2" } }, - "globby": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", - "dev": true, - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" - } - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "slash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", "dev": true }, "supports-color": { diff --git a/package.json b/package.json index 37135fb0..08b4b6e2 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.1.0", - "eslint": "8.25.0", + "eslint": "8.26.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", From 72a8483a23b329285bad744598639784bb8fa3a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 10:41:07 +0530 Subject: [PATCH 256/717] Bump katex from 0.16.2 to 0.16.3 (#945) Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.2 to 0.16.3. - [Release notes](https://github.com/KaTeX/KaTeX/releases) - [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md) - [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.2...v0.16.3) --- updated-dependencies: - dependency-name: katex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index a81f9151..ddde663a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "flux": "4.0.3", "formik": "2.2.9", "html-react-parser": "3.0.4", - "katex": "0.16.2", + "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "20.1.0", @@ -7242,9 +7242,9 @@ } }, "node_modules/katex": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.2.tgz", - "integrity": "sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA==", + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.3.tgz", + "integrity": "sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" @@ -17242,9 +17242,9 @@ } }, "katex": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.2.tgz", - "integrity": "sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA==", + "version": "0.16.3", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.3.tgz", + "integrity": "sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA==", "requires": { "commander": "^8.0.0" }, diff --git a/package.json b/package.json index 08b4b6e2..a64ef4b8 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "flux": "4.0.3", "formik": "2.2.9", "html-react-parser": "3.0.4", - "katex": "0.16.2", + "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "20.1.0", From 9efa05d4def92d592449a60bb18d0bfb2ed1ed95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 10:45:00 +0530 Subject: [PATCH 257/717] Bump @babel/core from 7.19.3 to 7.19.6 (#944) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.19.3 to 7.19.6. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.19.6/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 110 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/package-lock.json b/package-lock.json index ddde663a..c2daafb5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.3", + "@babel/core": "7.19.6", "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", @@ -114,21 +114,21 @@ } }, "node_modules/@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -144,9 +144,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", - "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", "dev": true, "dependencies": { "@babel/types": "^7.19.4", @@ -339,19 +339,19 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -519,9 +519,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1767,18 +1767,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.19.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" @@ -11801,21 +11801,21 @@ "dev": true }, "@babel/core": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", - "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", + "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.3", + "@babel/generator": "^7.19.6", "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.0", - "@babel/helpers": "^7.19.0", - "@babel/parser": "^7.19.3", + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helpers": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.3", - "@babel/types": "^7.19.3", + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11824,9 +11824,9 @@ } }, "@babel/generator": { - "version": "7.19.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", - "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", + "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", "dev": true, "requires": { "@babel/types": "^7.19.4", @@ -11970,19 +11970,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", - "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", + "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-simple-access": "^7.19.4", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.19.6", + "@babel/types": "^7.19.4" } }, "@babel/helper-optimise-call-expression": { @@ -12105,9 +12105,9 @@ } }, "@babel/parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -12946,18 +12946,18 @@ } }, "@babel/traverse": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", - "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", + "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.4", + "@babel/generator": "^7.19.6", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.4", + "@babel/parser": "^7.19.6", "@babel/types": "^7.19.4", "debug": "^4.1.0", "globals": "^11.1.0" diff --git a/package.json b/package.json index a64ef4b8..7c36d782 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.3", + "@babel/core": "7.19.6", "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", From eeb4ec0e734bad46318b888d64fef11e9f31ede6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 10:45:59 +0530 Subject: [PATCH 258/717] Bump actions/upload-artifact from 3.1.0 to 3.1.1 (#942) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index abc514fb..b6379a53 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -23,7 +23,7 @@ jobs: - name: Build app run: npm run build - name: Upload artifact - uses: actions/upload-artifact@v3.1.0 + uses: actions/upload-artifact@v3.1.1 with: name: preview path: dist @@ -31,7 +31,7 @@ jobs: - name: Save pr number run: echo ${PR_NUMBER} > ./pr.txt - name: Upload pr number - uses: actions/upload-artifact@v3.1.0 + uses: actions/upload-artifact@v3.1.1 with: name: pr path: ./pr.txt From 02f7d7c74d932da716c0900795eb5f8d18978220 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Oct 2022 10:47:03 +0530 Subject: [PATCH 259/717] Bump nginx from 1.23.1-alpine to 1.23.2-alpine (#943) Bumps nginx from 1.23.1-alpine to 1.23.2-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 987c4c47..7ad952b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN npm run build ## App -FROM nginx:1.23.1-alpine +FROM nginx:1.23.2-alpine COPY --from=builder /src/dist /app From 6d9115f593f9fe8dfb39c93ba18a2d515addfddc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 16:58:04 +0530 Subject: [PATCH 260/717] Bump blurhash from 2.0.3 to 2.0.4 (#956) Bumps [blurhash](https://github.com/woltapp/blurhash) from 2.0.3 to 2.0.4. - [Release notes](https://github.com/woltapp/blurhash/releases) - [Commits](https://github.com/woltapp/blurhash/commits) --- updated-dependencies: - dependency-name: blurhash dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index c2daafb5..29b8802d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,7 +15,7 @@ "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "2.0.3", + "blurhash": "2.0.4", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", @@ -3040,9 +3040,9 @@ "dev": true }, "node_modules/blurhash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.3.tgz", - "integrity": "sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.4.tgz", + "integrity": "sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A==" }, "node_modules/bn.js": { "version": "5.2.1", @@ -14021,9 +14021,9 @@ } }, "blurhash": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.3.tgz", - "integrity": "sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.4.tgz", + "integrity": "sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A==" }, "bn.js": { "version": "5.2.1", diff --git a/package.json b/package.json index 7c36d782..3989a890 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", - "blurhash": "2.0.3", + "blurhash": "2.0.4", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", "emojibase-data": "7.0.1", From b6f2f9998e3f9203f0614b1b7f7088dcef03b3ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 16:58:59 +0530 Subject: [PATCH 261/717] Bump sanitize-html from 2.7.2 to 2.7.3 (#957) Bumps [sanitize-html](https://github.com/apostrophecms/sanitize-html) from 2.7.2 to 2.7.3. - [Release notes](https://github.com/apostrophecms/sanitize-html/releases) - [Changelog](https://github.com/apostrophecms/sanitize-html/blob/main/CHANGELOG.md) - [Commits](https://github.com/apostrophecms/sanitize-html/compare/2.7.2...2.7.3) --- updated-dependencies: - dependency-name: sanitize-html dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 29b8802d..5ec2666e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", - "sanitize-html": "2.7.2", + "sanitize-html": "2.7.3", "tippy.js": "6.3.7", "twemoji": "14.0.2" }, @@ -9962,9 +9962,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sanitize-html": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.2.tgz", - "integrity": "sha512-DggSTe7MviO+K4YTCwprG6W1vsG+IIX67yp/QY55yQqKCJYSWzCA1rZbaXzkjoKeL9+jqwm56wD6srYLtUNivg==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.3.tgz", + "integrity": "sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", @@ -19268,9 +19268,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "sanitize-html": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.2.tgz", - "integrity": "sha512-DggSTe7MviO+K4YTCwprG6W1vsG+IIX67yp/QY55yQqKCJYSWzCA1rZbaXzkjoKeL9+jqwm56wD6srYLtUNivg==", + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.3.tgz", + "integrity": "sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw==", "requires": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", diff --git a/package.json b/package.json index 3989a890..c0c9bdee 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", - "sanitize-html": "2.7.2", + "sanitize-html": "2.7.3", "tippy.js": "6.3.7", "twemoji": "14.0.2" }, From 63023c5266a84cd1f45d7544e5dd3010d3421be3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 17:02:31 +0530 Subject: [PATCH 262/717] Bump babel-loader from 8.2.5 to 9.0.1 (#958) Bumps [babel-loader](https://github.com/babel/babel-loader) from 8.2.5 to 9.0.1. - [Release notes](https://github.com/babel/babel-loader/releases) - [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel-loader/compare/v8.2.5...v9.0.1) --- updated-dependencies: - dependency-name: babel-loader dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 646 +++++++--------------------------------------- package.json | 2 +- 2 files changed, 93 insertions(+), 555 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5ec2666e..bad76c06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", - "babel-loader": "8.2.5", + "babel-loader": "9.0.1", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", @@ -2859,22 +2859,20 @@ "dev": true }, "node_modules/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.0.1.tgz", + "integrity": "sha512-szYjslOXFlj/po5KfrVmiuBAcI6GVHFuAgC96Qd6mMPHdwl4lmAJkYtvjQ1RxxPjgdkKjd3LQgXDE4jxEutNuw==", "dev": true, "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" }, "engines": { - "node": ">= 8.9" + "node": ">= 14.15.0" }, "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" + "@babel/core": "^7.12.0", + "webpack": ">=5" } }, "node_modules/babel-plugin-dynamic-import-node": { @@ -2994,15 +2992,6 @@ "tweetnacl": "^0.14.3" } }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3763,59 +3752,6 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -4033,59 +3969,6 @@ } } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -4677,15 +4560,6 @@ "emojibase": "*" } }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -7557,20 +7431,6 @@ "node": ">=6.11.5" } }, - "node_modules/loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7876,59 +7736,6 @@ "webpack": "^5.0.0" } }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -10124,23 +9931,58 @@ } }, "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" }, "engines": { - "node": ">= 8.9.0" + "node": ">= 12.13.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" } }, + "node_modules/schema-utils/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/schema-utils/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/schema-utils/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -11374,59 +11216,6 @@ "webpack": "^4.0.0 || ^5.0.0" } }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpack-dev-server": { "version": "4.11.1", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", @@ -11482,40 +11271,6 @@ } } }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -11531,25 +11286,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -13872,15 +13608,13 @@ "dev": true }, "babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.0.1.tgz", + "integrity": "sha512-szYjslOXFlj/po5KfrVmiuBAcI6GVHFuAgC96Qd6mMPHdwl4lmAJkYtvjQ1RxxPjgdkKjd3LQgXDE4jxEutNuw==", "dev": true, "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" + "find-cache-dir": "^3.3.2", + "schema-utils": "^4.0.0" } }, "babel-plugin-dynamic-import-node": { @@ -13979,12 +13713,6 @@ "tweetnacl": "^0.14.3" } }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -14617,47 +14345,6 @@ "normalize-path": "^3.0.0", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } } }, "core-js": { @@ -14813,47 +14500,6 @@ "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } } }, "css-select": { @@ -15319,12 +14965,6 @@ "resolved": "https://registry.npmjs.org/emojibase-data/-/emojibase-data-7.0.1.tgz", "integrity": "sha512-BLZpOdwyFpZ7lzBWyDtnxmKVm/SJMYgAfp1if3o6n1TVUMSXAf0nikONXl90LZuJ/m3XWPBkkubgCet2BsCGGQ==" }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -17523,17 +17163,6 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, - "loader-utils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", - "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -17770,47 +17399,6 @@ "dev": true, "requires": { "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } } }, "minimalistic-assert": { @@ -19367,14 +18955,44 @@ } }, "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "select-hose": { @@ -20342,47 +19960,6 @@ "mime-types": "^2.1.31", "range-parser": "^1.2.1", "schema-utils": "^4.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - } } }, "webpack-dev-server": { @@ -20422,33 +19999,6 @@ "ws": "^8.4.2" }, "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -20457,18 +20007,6 @@ "requires": { "glob": "^7.1.3" } - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } } } }, diff --git a/package.json b/package.json index c0c9bdee..c126381c 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", - "babel-loader": "8.2.5", + "babel-loader": "9.0.1", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", From bef759e358227f9e96084de0c834c935c379fdaf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Nov 2022 20:11:14 +0530 Subject: [PATCH 263/717] Bump css-minimizer-webpack-plugin from 4.1.0 to 4.2.2 (#934) Bumps [css-minimizer-webpack-plugin](https://github.com/webpack-contrib/css-minimizer-webpack-plugin) from 4.1.0 to 4.2.2. - [Release notes](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/releases) - [Changelog](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-minimizer-webpack-plugin/compare/v4.1.0...v4.2.2) --- updated-dependencies: - dependency-name: css-minimizer-webpack-plugin dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 520 +++++++++++++++++++++++++++++++++++++++++++++- package.json | 2 +- 2 files changed, 510 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index bad76c06..9b22d29c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,7 @@ "copy-webpack-plugin": "11.0.0", "crypto-browserify": "3.12.0", "css-loader": "6.7.1", - "css-minimizer-webpack-plugin": "4.1.0", + "css-minimizer-webpack-plugin": "4.2.2", "eslint": "8.26.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", @@ -1891,6 +1891,105 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "node_modules/@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dev": true, + "dependencies": { + "@sinclair/typebox": "^0.24.1" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "dev": true, + "dependencies": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/@jest/types/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@jest/types/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@jest/types/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/@jest/types/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/types/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -2044,6 +2143,12 @@ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" }, + "node_modules/@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, "node_modules/@tippyjs/react": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/@tippyjs/react/-/react-4.2.6.tgz", @@ -2177,6 +2282,30 @@ "@types/node": "*" } }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -2281,6 +2410,21 @@ "@types/node": "*" } }, + "node_modules/@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -3434,6 +3578,12 @@ "node": ">=6.0" } }, + "node_modules/ci-info": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", + "dev": true + }, "node_modules/cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -3929,14 +4079,14 @@ } }, "node_modules/css-minimizer-webpack-plugin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.1.0.tgz", - "integrity": "sha512-Zd+yz4nta4GXi3pMqF6skO8kjzuCUbr62z8SLMGZZtxWxTGTLopOiabPGNDEyjHCRhnhdA1EfHmqLa2Oekjtng==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", "dev": true, "dependencies": { "cssnano": "^5.1.8", - "jest-worker": "^27.5.1", - "postcss": "^8.4.13", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" @@ -3955,6 +4105,9 @@ "@parcel/css": { "optional": true }, + "@swc/css": { + "optional": true + }, "clean-css": { "optional": true }, @@ -3969,6 +4122,45 @@ } } }, + "node_modules/css-minimizer-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", + "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "jest-util": "^29.2.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -6960,6 +7152,93 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, + "node_modules/jest-util": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", + "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "dev": true, + "dependencies": { + "@jest/types": "^29.2.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", @@ -12777,6 +13056,80 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, + "@jest/schemas": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", + "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", + "dev": true, + "requires": { + "@sinclair/typebox": "^0.24.1" + } + }, + "@jest/types": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", + "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "dev": true, + "requires": { + "@jest/schemas": "^29.0.0", + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^17.0.8", + "chalk": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -12903,6 +13256,12 @@ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" }, + "@sinclair/typebox": { + "version": "0.24.51", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", + "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", + "dev": true + }, "@tippyjs/react": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/@tippyjs/react/-/react-4.2.6.tgz", @@ -13029,6 +13388,30 @@ "@types/node": "*" } }, + "@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, "@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -13133,6 +13516,21 @@ "@types/node": "*" } }, + "@types/yargs": { + "version": "17.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", + "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, "@webassemblyjs/ast": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", @@ -14078,6 +14476,12 @@ "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, + "ci-info": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", + "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -14489,17 +14893,46 @@ } }, "css-minimizer-webpack-plugin": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.1.0.tgz", - "integrity": "sha512-Zd+yz4nta4GXi3pMqF6skO8kjzuCUbr62z8SLMGZZtxWxTGTLopOiabPGNDEyjHCRhnhdA1EfHmqLa2Oekjtng==", + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", + "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", "dev": true, "requires": { "cssnano": "^5.1.8", - "jest-worker": "^27.5.1", - "postcss": "^8.4.13", + "jest-worker": "^29.1.2", + "postcss": "^8.4.17", "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", + "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", + "dev": true, + "requires": { + "@types/node": "*", + "jest-util": "^29.2.1", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "css-select": { @@ -16759,6 +17192,71 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" }, + "jest-util": { + "version": "29.2.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", + "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "dev": true, + "requires": { + "@jest/types": "^29.2.1", + "@types/node": "*", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", diff --git a/package.json b/package.json index c126381c..92f1ded0 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "copy-webpack-plugin": "11.0.0", "crypto-browserify": "3.12.0", "css-loader": "6.7.1", - "css-minimizer-webpack-plugin": "4.1.0", + "css-minimizer-webpack-plugin": "4.2.2", "eslint": "8.26.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", From 6a907b15428e517b84717100e743d8200eda6d85 Mon Sep 17 00:00:00 2001 From: mjarr <87588014+mjarr@users.noreply.github.com> Date: Tue, 1 Nov 2022 16:06:38 +0100 Subject: [PATCH 264/717] Remove MSC3244 use from restricted room creation (#892) * Remove MSC3244 use from restricted room creation * Fix condition --- src/client/action/room.js | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/client/action/room.js b/src/client/action/room.js index a0a7525f..996c2680 100644 --- a/src/client/action/room.js +++ b/src/client/action/room.js @@ -236,16 +236,12 @@ async function createRoom(opts) { }); } if (parentId && joinRule === 'restricted') { - try { - const caps = await mx.getCapabilities(); - options.room_version = caps - ?.['m.room_versions'] - ?.['org.matrix.msc3244.room_capabilities'] - ?.restricted - ?.preferred - || undefined; - } catch { - console.error('Can\'t find room version for restricted.'); + const caps = await mx.getCapabilities(); + if (caps['m.room_versions'].available?.['9'] !== 'stable') { + throw new Error("ERROR: The server doesn't support restricted rooms"); + } + if (Number(caps['m.room_versions'].default) < 9) { + options.room_version = '9'; } options.initial_state.push({ type: 'm.room.join_rules', From 1d6ce13a6c69f18526c23874495c29fa99f869a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:40:29 +0530 Subject: [PATCH 265/717] Bump babel-loader from 9.0.1 to 9.1.0 (#967) Bumps [babel-loader](https://github.com/babel/babel-loader) from 9.0.1 to 9.1.0. - [Release notes](https://github.com/babel/babel-loader/releases) - [Changelog](https://github.com/babel/babel-loader/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel-loader/compare/v9.0.1...v9.1.0) --- updated-dependencies: - dependency-name: babel-loader dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9b22d29c..b3f48d63 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", - "babel-loader": "9.0.1", + "babel-loader": "9.1.0", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", @@ -3003,9 +3003,9 @@ "dev": true }, "node_modules/babel-loader": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.0.1.tgz", - "integrity": "sha512-szYjslOXFlj/po5KfrVmiuBAcI6GVHFuAgC96Qd6mMPHdwl4lmAJkYtvjQ1RxxPjgdkKjd3LQgXDE4jxEutNuw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", "dev": true, "dependencies": { "find-cache-dir": "^3.3.2", @@ -14006,9 +14006,9 @@ "dev": true }, "babel-loader": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.0.1.tgz", - "integrity": "sha512-szYjslOXFlj/po5KfrVmiuBAcI6GVHFuAgC96Qd6mMPHdwl4lmAJkYtvjQ1RxxPjgdkKjd3LQgXDE4jxEutNuw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", + "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", "dev": true, "requires": { "find-cache-dir": "^3.3.2", diff --git a/package.json b/package.json index 92f1ded0..12b81ebb 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "@babel/preset-env": "7.19.4", "@babel/preset-react": "7.18.6", "assert": "2.0.0", - "babel-loader": "9.0.1", + "babel-loader": "9.1.0", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", From 8dc9e01439c623d5e6afbadec28cbf26f9e0397d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:41:13 +0530 Subject: [PATCH 266/717] Bump @babel/preset-env from 7.19.4 to 7.20.2 (#966) Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.19.4 to 7.20.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.2/packages/babel-preset-env) --- updated-dependencies: - dependency-name: "@babel/preset-env" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 338 +++++++++++++++++++++------------------------- package.json | 2 +- 2 files changed, 158 insertions(+), 182 deletions(-) diff --git a/package-lock.json b/package-lock.json index b3f48d63..9c88c6b8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ }, "devDependencies": { "@babel/core": "7.19.6", - "@babel/preset-env": "7.19.4", + "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "9.1.0", @@ -105,9 +105,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -197,12 +197,12 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", - "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -370,9 +370,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true, "engines": { "node": ">=6.9.0" @@ -563,9 +563,9 @@ } }, "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", - "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", @@ -710,16 +710,16 @@ } }, "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", - "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" + "@babel/plugin-transform-parameters": "^7.20.1" }, "engines": { "node": ">=6.9.0" @@ -875,12 +875,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1066,12 +1066,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", - "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", + "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1081,18 +1081,18 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", - "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" }, @@ -1119,12 +1119,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", - "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1243,14 +1243,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" }, "engines": { "node": ">=6.9.0" @@ -1260,15 +1259,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" }, "engines": { "node": ">=6.9.0" @@ -1278,16 +1276,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dev": true, "dependencies": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" }, "engines": { "node": ">=6.9.0" @@ -1360,12 +1357,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", + "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1593,18 +1590,18 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", - "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dev": true, "dependencies": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -1613,7 +1610,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.19.4", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -1624,7 +1621,7 @@ "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -1637,10 +1634,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.19.4", - "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.19.4", + "@babel/plugin-transform-destructuring": "^7.20.2", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -1648,14 +1645,14 @@ "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-parameters": "^7.20.1", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -1667,7 +1664,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.4", + "@babel/types": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -1788,9 +1785,9 @@ } }, "node_modules/@babel/types": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", - "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", @@ -3019,15 +3016,6 @@ "webpack": ">=5" } }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", @@ -11810,9 +11798,9 @@ } }, "@babel/compat-data": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", + "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", "dev": true }, "@babel/core": { @@ -11882,12 +11870,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.19.3", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", - "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", + "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.3", + "@babel/compat-data": "^7.20.0", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", "semver": "^6.3.0" @@ -12010,9 +11998,9 @@ } }, "@babel/helper-plugin-utils": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz", - "integrity": "sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", "dev": true }, "@babel/helper-remap-async-to-generator": { @@ -12146,9 +12134,9 @@ } }, "@babel/plugin-proposal-async-generator-functions": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz", - "integrity": "sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", + "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", @@ -12239,16 +12227,16 @@ } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz", - "integrity": "sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", + "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.18.8" + "@babel/plugin-transform-parameters": "^7.20.1" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -12350,12 +12338,12 @@ } }, "@babel/plugin-syntax-import-assertions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz", - "integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", + "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-syntax-json-strings": { @@ -12478,27 +12466,27 @@ } }, "@babel/plugin-transform-block-scoping": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz", - "integrity": "sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", + "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-classes": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz", - "integrity": "sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", + "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.19.0", + "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6", "globals": "^11.1.0" } @@ -12513,12 +12501,12 @@ } }, "@babel/plugin-transform-destructuring": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz", - "integrity": "sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", + "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-dotall-regex": { @@ -12589,39 +12577,36 @@ } }, "@babel/plugin-transform-modules-amd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", - "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", + "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", - "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", + "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", "dev": true, "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-simple-access": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-module-transforms": "^7.19.6", + "@babel/helper-plugin-utils": "^7.19.0", + "@babel/helper-simple-access": "^7.19.4" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz", - "integrity": "sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==", + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", + "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", "dev": true, "requires": { "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.0", + "@babel/helper-module-transforms": "^7.19.6", "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.18.6", - "babel-plugin-dynamic-import-node": "^2.3.3" + "@babel/helper-validator-identifier": "^7.19.1" } }, "@babel/plugin-transform-modules-umd": { @@ -12664,12 +12649,12 @@ } }, "@babel/plugin-transform-parameters": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", - "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", + "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.20.2" } }, "@babel/plugin-transform-property-literals": { @@ -12807,18 +12792,18 @@ } }, "@babel/preset-env": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.19.4.tgz", - "integrity": "sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", + "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", "dev": true, "requires": { - "@babel/compat-data": "^7.19.4", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-plugin-utils": "^7.19.0", + "@babel/compat-data": "^7.20.1", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/helper-validator-option": "^7.18.6", "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.19.1", + "@babel/plugin-proposal-async-generator-functions": "^7.20.1", "@babel/plugin-proposal-class-properties": "^7.18.6", "@babel/plugin-proposal-class-static-block": "^7.18.6", "@babel/plugin-proposal-dynamic-import": "^7.18.6", @@ -12827,7 +12812,7 @@ "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.19.4", + "@babel/plugin-proposal-object-rest-spread": "^7.20.2", "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", "@babel/plugin-proposal-optional-chaining": "^7.18.9", "@babel/plugin-proposal-private-methods": "^7.18.6", @@ -12838,7 +12823,7 @@ "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.18.6", + "@babel/plugin-syntax-import-assertions": "^7.20.0", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", @@ -12851,10 +12836,10 @@ "@babel/plugin-transform-arrow-functions": "^7.18.6", "@babel/plugin-transform-async-to-generator": "^7.18.6", "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.19.4", - "@babel/plugin-transform-classes": "^7.19.0", + "@babel/plugin-transform-block-scoping": "^7.20.2", + "@babel/plugin-transform-classes": "^7.20.2", "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.19.4", + "@babel/plugin-transform-destructuring": "^7.20.2", "@babel/plugin-transform-dotall-regex": "^7.18.6", "@babel/plugin-transform-duplicate-keys": "^7.18.9", "@babel/plugin-transform-exponentiation-operator": "^7.18.6", @@ -12862,14 +12847,14 @@ "@babel/plugin-transform-function-name": "^7.18.9", "@babel/plugin-transform-literals": "^7.18.9", "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.18.6", - "@babel/plugin-transform-modules-commonjs": "^7.18.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.0", + "@babel/plugin-transform-modules-amd": "^7.19.6", + "@babel/plugin-transform-modules-commonjs": "^7.19.6", + "@babel/plugin-transform-modules-systemjs": "^7.19.6", "@babel/plugin-transform-modules-umd": "^7.18.6", "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", "@babel/plugin-transform-new-target": "^7.18.6", "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.18.8", + "@babel/plugin-transform-parameters": "^7.20.1", "@babel/plugin-transform-property-literals": "^7.18.6", "@babel/plugin-transform-regenerator": "^7.18.6", "@babel/plugin-transform-reserved-words": "^7.18.6", @@ -12881,7 +12866,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.18.10", "@babel/plugin-transform-unicode-regex": "^7.18.6", "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.19.4", + "@babel/types": "^7.20.2", "babel-plugin-polyfill-corejs2": "^0.3.3", "babel-plugin-polyfill-corejs3": "^0.6.0", "babel-plugin-polyfill-regenerator": "^0.4.1", @@ -12979,9 +12964,9 @@ } }, "@babel/types": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz", - "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", + "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", "dev": true, "requires": { "@babel/helper-string-parser": "^7.19.4", @@ -14015,15 +14000,6 @@ "schema-utils": "^4.0.0" } }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, "babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", diff --git a/package.json b/package.json index 12b81ebb..93c7b515 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ }, "devDependencies": { "@babel/core": "7.19.6", - "@babel/preset-env": "7.19.4", + "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", "babel-loader": "9.1.0", From 7803bd5c06923e10c08cc7f22d8b5b1af7ec1d55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:43:07 +0530 Subject: [PATCH 267/717] Bump eslint from 8.26.0 to 8.27.0 (#963) Bumps [eslint](https://github.com/eslint/eslint) from 8.26.0 to 8.27.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.26.0...v8.27.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9c88c6b8..0cb08517 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.2.2", - "eslint": "8.26.0", + "eslint": "8.27.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", @@ -4898,9 +4898,9 @@ } }, "node_modules/eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.3", @@ -15493,9 +15493,9 @@ "dev": true }, "eslint": { - "version": "8.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", - "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "version": "8.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", + "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", "dev": true, "requires": { "@eslint/eslintrc": "^1.3.3", diff --git a/package.json b/package.json index 93c7b515..ccc17b61 100644 --- a/package.json +++ b/package.json @@ -59,7 +59,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.1", "css-minimizer-webpack-plugin": "4.2.2", - "eslint": "8.26.0", + "eslint": "8.27.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", From 71fdba3c4ac421864c890b8746ebdaa82cac6bbd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:43:50 +0530 Subject: [PATCH 268/717] Bump sass from 1.55.0 to 1.56.0 (#964) Bumps [sass](https://github.com/sass/dart-sass) from 1.55.0 to 1.56.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.55.0...1.56.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cb08517..18e6effa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.55.0", + "sass": "1.56.0", "sass-loader": "13.1.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", @@ -10134,9 +10134,9 @@ } }, "node_modules/sass": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", - "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", + "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -19399,9 +19399,9 @@ } }, "sass": { - "version": "1.55.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.55.0.tgz", - "integrity": "sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==", + "version": "1.56.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", + "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index ccc17b61..84af5d6b 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.55.0", + "sass": "1.56.0", "sass-loader": "13.1.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", From 856e616247f8a84f978afa761a0f490c9ef22685 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 18:45:02 +0530 Subject: [PATCH 269/717] Bump @babel/core from 7.19.6 to 7.20.2 (#965) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.19.6 to 7.20.2. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.2/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 154 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/package-lock.json b/package-lock.json index 18e6effa..1d5c8b17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.6", + "@babel/core": "7.20.2", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", @@ -114,21 +114,21 @@ } }, "node_modules/@babel/core": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", - "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helpers": "^7.19.4", - "@babel/parser": "^7.19.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -144,12 +144,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", - "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", + "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", "dev": true, "dependencies": { - "@babel/types": "^7.19.4", + "@babel/types": "^7.20.2", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -339,19 +339,19 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", - "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -413,12 +413,12 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", - "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "dependencies": { - "@babel/types": "^7.19.4" + "@babel/types": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -491,14 +491,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", - "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dev": true, "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.4", - "@babel/types": "^7.19.4" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -519,9 +519,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", - "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1764,19 +1764,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", - "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", + "@babel/generator": "^7.20.1", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.6", - "@babel/types": "^7.19.4", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -11804,21 +11804,21 @@ "dev": true }, "@babel/core": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.6.tgz", - "integrity": "sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", + "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", - "@babel/helper-compilation-targets": "^7.19.3", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helpers": "^7.19.4", - "@babel/parser": "^7.19.6", + "@babel/generator": "^7.20.2", + "@babel/helper-compilation-targets": "^7.20.0", + "@babel/helper-module-transforms": "^7.20.2", + "@babel/helpers": "^7.20.1", + "@babel/parser": "^7.20.2", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4", + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -11827,12 +11827,12 @@ } }, "@babel/generator": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.6.tgz", - "integrity": "sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", + "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", "dev": true, "requires": { - "@babel/types": "^7.19.4", + "@babel/types": "^7.20.2", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -11973,19 +11973,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz", - "integrity": "sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", + "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.19.4", + "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.6", - "@babel/types": "^7.19.4" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.2" } }, "@babel/helper-optimise-call-expression": { @@ -12029,12 +12029,12 @@ } }, "@babel/helper-simple-access": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", - "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", "dev": true, "requires": { - "@babel/types": "^7.19.4" + "@babel/types": "^7.20.2" } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -12086,14 +12086,14 @@ } }, "@babel/helpers": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", - "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", + "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", "dev": true, "requires": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.4", - "@babel/types": "^7.19.4" + "@babel/traverse": "^7.20.1", + "@babel/types": "^7.20.0" } }, "@babel/highlight": { @@ -12108,9 +12108,9 @@ } }, "@babel/parser": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", - "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", + "version": "7.20.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", + "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", "dev": true }, "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { @@ -12946,19 +12946,19 @@ } }, "@babel/traverse": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.6.tgz", - "integrity": "sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", + "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", "dev": true, "requires": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.19.6", + "@babel/generator": "^7.20.1", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.19.6", - "@babel/types": "^7.19.4", + "@babel/parser": "^7.20.1", + "@babel/types": "^7.20.0", "debug": "^4.1.0", "globals": "^11.1.0" } diff --git a/package.json b/package.json index 84af5d6b..a3426177 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.19.6", + "@babel/core": "7.20.2", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", From 62e0821be24a711405d314337b4045fce648a799 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 20:19:22 +0530 Subject: [PATCH 270/717] Bump matrix-js-sdk from 20.1.0 to 21.0.1 (#959) * Bump matrix-js-sdk from 20.1.0 to 21.0.0 Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 20.1.0 to 21.0.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v20.1.0...v21.0.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump matrix-js-sdk from 20.1.0 to 21.0.1 Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 20.1.0 to 21.0.1. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v20.1.0...v21.0.1) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Fix upload content * Change min supported node Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- package-lock.json | 677 ++---------------- package.json | 5 +- .../molecules/image-pack/ImagePackUpload.jsx | 4 +- .../molecules/image-upload/ImageUpload.jsx | 2 +- src/client/state/RoomsInput.js | 2 +- 5 files changed, 45 insertions(+), 645 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d5c8b17..be484f5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "20.1.0", + "matrix-js-sdk": "21.0.1", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -75,8 +75,7 @@ "webpack-merge": "5.8.0" }, "engines": { - "node": ">=14.15.0", - "npm": ">=6.14.8" + "node": ">=16.0.0" } }, "node_modules/@ampproject/remapping": { @@ -2681,6 +2680,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2897,14 +2897,6 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -2935,25 +2927,12 @@ "util": "^0.12.0" } }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "engines": { - "node": ">=0.8" - } - }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "node_modules/autosize": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", @@ -2971,19 +2950,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==", - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, "node_modules/axe-core": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", @@ -3116,14 +3082,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3270,14 +3228,6 @@ "resolved": "https://registry.npmjs.org/browser-encrypt-attachment/-/browser-encrypt-attachment-0.3.0.tgz", "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" }, - "node_modules/browser-request": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", - "integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==", - "engines": [ - "node" - ] - }, "node_modules/browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -3499,11 +3449,6 @@ } ] }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -3671,17 +3616,6 @@ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/commander": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", @@ -3924,7 +3858,8 @@ "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true }, "node_modules/create-ecdh": { "version": "4.0.4", @@ -4353,17 +4288,6 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/dateformat": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", @@ -4492,14 +4416,6 @@ "node": ">=0.10.0" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -4680,15 +4596,6 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", "dev": true }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -5527,19 +5434,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", - "engines": [ - "node >=0.6.0" - ] - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5576,7 +5470,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", @@ -5817,27 +5712,6 @@ "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", "dev": true }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==", - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, "node_modules/formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -6035,14 +5909,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "dependencies": { - "assert-plus": "^1.0.0" - } - }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -6126,27 +5992,6 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==", - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "deprecated": "this library is no longer supported", - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -6533,20 +6378,6 @@ } } }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -7079,11 +6910,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -7135,11 +6961,6 @@ "node": ">=0.10.0" } }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "node_modules/jest-util": { "version": "29.2.1", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", @@ -7288,11 +7109,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "node_modules/jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -7311,15 +7127,11 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "node_modules/json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -7327,11 +7139,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, "node_modules/json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", @@ -7355,20 +7162,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -7824,24 +7617,22 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "node_modules/matrix-js-sdk": { - "version": "20.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.1.0.tgz", - "integrity": "sha512-AjuWVmerJ8aEAIgD6QfmSIg0RrvA8vzvOV+ycvSGg4DgiFlVZbFvBxkVZTRdZ5icJe1/XMaCEf5OZ9Ha2hXUUg==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.0.1.tgz", + "integrity": "sha512-xrJibvMwj38fMeNX7e9kfEzR9xv5UNwWkYGlyQE+ag81HGLacbJvEix/2zkEQ40TypB9ENVioVFIyVYGN9Rv2Q==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", - "browser-request": "^0.3.3", "bs58": "^5.0.0", "content-type": "^1.0.4", "loglevel": "^1.7.1", "matrix-events-sdk": "^0.0.1-beta.7", "p-retry": "4", "qs": "^6.9.6", - "request": "^2.88.2", "unhomoglyph": "^1.0.6" }, "engines": { - "node": ">=12.9.0" + "node": ">=16.0.0" } }, "node_modules/md5.js": { @@ -7960,6 +7751,7 @@ "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, "engines": { "node": ">= 0.6" } @@ -7968,6 +7760,7 @@ "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "dependencies": { "mime-db": "1.52.0" }, @@ -8182,14 +7975,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "engines": { - "node": "*" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -8620,11 +8405,6 @@ "node": ">=0.12" } }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -9313,11 +9093,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -9342,6 +9117,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, "engines": { "node": ">=6" } @@ -9833,45 +9609,6 @@ "entities": "^2.0.0" } }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/request/node_modules/qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==", - "engines": { - "node": ">=0.6" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -10001,6 +9738,7 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, "funding": [ { "type": "github", @@ -10033,7 +9771,8 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "node_modules/sanitize-html": { "version": "2.7.3", @@ -10589,30 +10328,6 @@ "wbuf": "^1.7.3" } }, - "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -10985,18 +10700,6 @@ "node": ">=0.6" } }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -11031,22 +10734,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "node_modules/twemoji": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-14.0.2.tgz", @@ -11237,6 +10924,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "dependencies": { "punycode": "^2.1.0" } @@ -11291,15 +10979,6 @@ "node": ">= 0.4.0" } }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", - "bin": { - "uuid": "bin/uuid" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -11309,19 +10988,6 @@ "node": ">= 0.8" } }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "node_modules/warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", @@ -13744,6 +13410,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -13901,14 +13568,6 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, "asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -13941,22 +13600,12 @@ "util": "^0.12.0" } }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" - }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", "dev": true }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, "autosize": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", @@ -13968,16 +13617,6 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" - }, "axe-core": { "version": "4.4.3", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", @@ -14079,14 +13718,6 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -14224,11 +13855,6 @@ "resolved": "https://registry.npmjs.org/browser-encrypt-attachment/-/browser-encrypt-attachment-0.3.0.tgz", "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" }, - "browser-request": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/browser-request/-/browser-request-0.3.3.tgz", - "integrity": "sha512-YyNI4qJJ+piQG6MMEuo7J3Bzaqssufx04zpEKYfSrl/1Op59HWali9zMtBpXnkmqMcOuWJPZvudrm9wISmnCbg==" - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", @@ -14403,11 +14029,6 @@ "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", "dev": true }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -14541,14 +14162,6 @@ "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, "commander": { "version": "9.4.1", "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", @@ -14750,7 +14363,8 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true }, "create-ecdh": { "version": "4.0.4", @@ -15059,14 +14673,6 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "requires": { - "assert-plus": "^1.0.0" - } - }, "dateformat": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", @@ -15164,11 +14770,6 @@ } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, "depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -15319,15 +14920,6 @@ } } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -15979,16 +15571,6 @@ } } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -16021,7 +15603,8 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fast-levenshtein": { "version": "2.0.6", @@ -16213,21 +15796,6 @@ "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", "dev": true }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, "formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -16377,14 +15945,6 @@ "get-intrinsic": "^1.1.1" } }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "requires": { - "assert-plus": "^1.0.0" - } - }, "glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -16450,20 +16010,6 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -16759,16 +16305,6 @@ "micromatch": "^4.0.2" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -17116,11 +16652,6 @@ "has-tostringtag": "^1.0.0" } }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, "is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -17163,11 +16694,6 @@ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, "jest-util": { "version": "29.2.1", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", @@ -17281,11 +16807,6 @@ "argparse": "^2.0.1" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", @@ -17298,15 +16819,11 @@ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", @@ -17314,11 +16831,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, "json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", @@ -17334,17 +16846,6 @@ "universalify": "^0.1.2" } }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, "jsx-ast-utils": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", @@ -17740,20 +17241,18 @@ "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" }, "matrix-js-sdk": { - "version": "20.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-20.1.0.tgz", - "integrity": "sha512-AjuWVmerJ8aEAIgD6QfmSIg0RrvA8vzvOV+ycvSGg4DgiFlVZbFvBxkVZTRdZ5icJe1/XMaCEf5OZ9Ha2hXUUg==", + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.0.1.tgz", + "integrity": "sha512-xrJibvMwj38fMeNX7e9kfEzR9xv5UNwWkYGlyQE+ag81HGLacbJvEix/2zkEQ40TypB9ENVioVFIyVYGN9Rv2Q==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", - "browser-request": "^0.3.3", "bs58": "^5.0.0", "content-type": "^1.0.4", "loglevel": "^1.7.1", "matrix-events-sdk": "^0.0.1-beta.7", "p-retry": "4", "qs": "^6.9.6", - "request": "^2.88.2", "unhomoglyph": "^1.0.6" } }, @@ -17850,12 +17349,14 @@ "mime-db": { "version": "1.52.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true }, "mime-types": { "version": "2.1.35", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, "requires": { "mime-db": "1.52.0" } @@ -18009,11 +17510,6 @@ "boolbase": "^1.0.0" } }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -18343,11 +17839,6 @@ "sha.js": "^2.4.8" } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -18799,11 +18290,6 @@ "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, "public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -18829,7 +18315,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "qs": { "version": "6.11.0", @@ -19189,40 +18676,6 @@ } } }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, "require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -19311,7 +18764,8 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, "safe-regex-test": { "version": "1.0.0", @@ -19327,7 +18781,8 @@ "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sanitize-html": { "version": "2.7.3", @@ -19759,22 +19214,6 @@ "wbuf": "^1.7.3" } }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, "stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -20045,15 +19484,6 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, "tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -20087,19 +19517,6 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, "twemoji": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-14.0.2.tgz", @@ -20228,6 +19645,7 @@ "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -20281,27 +19699,12 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, "warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", diff --git a/package.json b/package.json index a3426177..79f0b3e0 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,7 @@ "description": "Yet another matrix client", "main": "index.js", "engines": { - "npm": ">=6.14.8", - "node": ">=14.15.0" + "node": ">=16.0.0" }, "scripts": { "start": "webpack serve --config ./webpack.dev.js --open", @@ -32,7 +31,7 @@ "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "20.1.0", + "matrix-js-sdk": "21.0.1", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", diff --git a/src/app/molecules/image-pack/ImagePackUpload.jsx b/src/app/molecules/image-pack/ImagePackUpload.jsx index 0b7c23b7..6295de1c 100644 --- a/src/app/molecules/image-pack/ImagePackUpload.jsx +++ b/src/app/molecules/image-pack/ImagePackUpload.jsx @@ -27,9 +27,7 @@ function ImagePackUpload({ onUpload }) { setProgress(true); const image = await scaleDownImage(imgFile, 512, 512); - const url = await mx.uploadContent(image, { - onlyContentUri: true, - }); + const { content_uri: url } = await mx.uploadContent(image); onUpload(shortcode, url); setProgress(false); diff --git a/src/app/molecules/image-upload/ImageUpload.jsx b/src/app/molecules/image-upload/ImageUpload.jsx index 137d23bf..34d0d4be 100644 --- a/src/app/molecules/image-upload/ImageUpload.jsx +++ b/src/app/molecules/image-upload/ImageUpload.jsx @@ -22,7 +22,7 @@ function ImageUpload({ const file = e.target.files.item(0); if (file === null) return; try { - const uPromise = initMatrix.matrixClient.uploadContent(file, { onlyContentUri: false }); + const uPromise = initMatrix.matrixClient.uploadContent(file); setUploadPromise(uPromise); const res = await uPromise; diff --git a/src/client/state/RoomsInput.js b/src/client/state/RoomsInput.js index fb4b6c31..d1e0aedb 100644 --- a/src/client/state/RoomsInput.js +++ b/src/client/state/RoomsInput.js @@ -395,7 +395,7 @@ class RoomsInput extends EventEmitter { input.attachment.uploadingPromise = uploadingPromise; this.roomIdToInput.set(roomId, input); - const url = await uploadingPromise; + const { content_uri: url } = await uploadingPromise; delete input.attachment.uploadingPromise; this.roomIdToInput.set(roomId, input); From 1302682900d4a43e73a8bb0080c9eddf75ed0c04 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Tue, 8 Nov 2022 20:20:17 +0530 Subject: [PATCH 271/717] Update server list in config.json (#947) * remove kde.org from config because they have disabled registrations, which is required to be listed on login.register page. * remove halogen.city seems dead hs now * add converser.eu seems to be working again * Update config.json * halogen.city is back --- config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.json b/config.json index 2aa67ddc..c919882f 100644 --- a/config.json +++ b/config.json @@ -1,9 +1,9 @@ { "defaultHomeserver": 3, "homeserverList": [ + "converser.eu", "envs.net", "halogen.city", - "kde.org", "matrix.org", "mozilla.org" ], From 4fe4c8bb0360825e9df650e22e6d7da9a3ebd6c3 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Tue, 8 Nov 2022 20:21:51 +0530 Subject: [PATCH 272/717] Use Node Hydrogen LTS (#960) * Use node hydrogen lts in dockerfile * Use node v18.12.0 * Use node v18.12.0 * Use node v18.12.0 * use lts syntax * Update Nodejs LTS to v18.12.1 * Update Dockerfile * Update Dockerfile * Update readme --- .github/workflows/build-pull-request.yml | 4 ++-- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- Dockerfile | 2 +- README.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index b6379a53..5bbf2446 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -16,7 +16,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3.5.1 with: - node-version: 17.9.0 + node-version: 18.12.1 cache: 'npm' - name: Install dependencies run: npm ci @@ -35,4 +35,4 @@ jobs: with: name: pr path: ./pr.txt - retention-days: 1 \ No newline at end of file + retention-days: 1 diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 9a4ac6e0..edb79d86 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -15,7 +15,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3.5.1 with: - node-version: 17.9.0 + node-version: 18.12.1 cache: 'npm' - name: Install dependencies run: npm ci diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index ed981c3c..686b812a 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -14,7 +14,7 @@ jobs: - name: Setup node uses: actions/setup-node@v3.5.1 with: - node-version: 17.9.0 + node-version: 18.12.1 cache: 'npm' - name: Install dependencies run: npm ci diff --git a/Dockerfile b/Dockerfile index 7ad952b1..dd3a7efa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ## Builder -FROM node:17.9.0-alpine3.15 as builder +FROM node:18.12.0-alpine3.15 as builder WORKDIR /src diff --git a/README.md b/README.md index d6675bd1..acf76629 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,7 @@ UeGsouhyuITLwEhScounZDqop+Dx ## Local development > We recommend using a version manager as versions change very quickly. You will likely need to switch -between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Also recommended nodejs version is 16.15.0 LTS. +between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Also recommended nodejs version Hydrogen LTS (v18). Execute the following commands to start a development server: ```sh From 1531535151990189e62810ded48e758fdf19894a Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 9 Nov 2022 18:16:14 +0530 Subject: [PATCH 273/717] Replace deprecated 'set-output' with '$GITHUB_OUTPUT' (#968) --- .github/workflows/deploy-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 8cd46714..4381aecc 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -20,7 +20,7 @@ jobs: name: pr - name: Output pr number id: pr - run: echo "::set-output name=id::$(> $GITHUB_OUTPUT - name: Download artifact uses: dawidd6/action-download-artifact@46b4ae883bf0726f5949d025d31cb62c7a5ac70c with: From f144c1cdbdc43c03620bcde44ae48d08e34017f8 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 9 Nov 2022 19:36:27 +0530 Subject: [PATCH 274/717] Update Dockerfile (#970) --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index dd3a7efa..2b606ac2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ## Builder -FROM node:18.12.0-alpine3.15 as builder +FROM node:18.12.1-alpine3.15 as builder WORKDIR /src From 55d609c82bf75fc55b6a74d499458f5ac1afd021 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 9 Nov 2022 20:28:46 +0530 Subject: [PATCH 275/717] Lock file maintenance (#969) * Lock file maintenance * Fix ajv module not found Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- package-lock.json | 1351 ++++++++++++++++++++++++--------------------- package.json | 1 + 2 files changed, 732 insertions(+), 620 deletions(-) diff --git a/package-lock.json b/package-lock.json index be484f5d..4aa54bae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,6 +44,7 @@ "@babel/core": "7.20.2", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", + "ajv": "8.11.0", "assert": "2.0.0", "babel-loader": "9.1.0", "browserify-fs": "1.0.0", @@ -143,9 +144,9 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", - "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", "dev": true, "dependencies": { "@babel/types": "^7.20.2", @@ -214,9 +215,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", + "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -224,7 +225,7 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6" }, "engines": { @@ -424,12 +425,12 @@ } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "dependencies": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" }, "engines": { "node": ">=6.9.0" @@ -1714,24 +1715,24 @@ } }, "node_modules/@babel/runtime": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", - "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "dependencies": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", - "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz", + "integrity": "sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg==", "dev": true, "dependencies": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "engines": { "node": ">=6.9.0" @@ -1829,6 +1830,22 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -1844,6 +1861,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/@fontsource/inter": { "version": "4.5.14", "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz", @@ -1855,14 +1878,14 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", - "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" }, "engines": { "node": ">=10.10.0" @@ -1900,9 +1923,9 @@ } }, "node_modules/@jest/types": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", - "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "dependencies": { "@jest/schemas": "^29.0.0", @@ -2205,9 +2228,9 @@ } }, "node_modules/@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, "dependencies": { "@types/estree": "*", @@ -2327,9 +2350,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==", + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", "dev": true }, "node_modules/@types/prop-types": { @@ -2350,9 +2373,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz", - "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", + "version": "18.0.25", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", + "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2647,9 +2670,9 @@ } }, "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true, "bin": { "acorn": "bin/acorn" @@ -2677,14 +2700,14 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" }, "funding": { @@ -2709,35 +2732,16 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, "peerDependencies": { - "ajv": "^6.9.1" + "ajv": "^8.8.2" } }, "node_modules/another-json": { @@ -2817,15 +2821,15 @@ "dev": true }, "node_modules/array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" }, "engines": { @@ -2857,14 +2861,14 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -2875,14 +2879,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -2951,9 +2955,9 @@ } }, "node_modules/axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.1.tgz", + "integrity": "sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ==", "dev": true, "engines": { "node": ">=4" @@ -3416,9 +3420,9 @@ } }, "node_modules/camel-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "node_modules/caniuse-api": { @@ -3434,9 +3438,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001422", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", - "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", "dev": true, "funding": [ { @@ -3832,9 +3836,9 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "dev": true, "dependencies": { "browserslist": "^4.21.4" @@ -3845,9 +3849,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", - "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", "dev": true, "hasInstallScript": true, "funding": { @@ -3856,9 +3860,9 @@ } }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "node_modules/create-ecdh": { @@ -4045,45 +4049,6 @@ } } }, - "node_modules/css-minimizer-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/jest-worker": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", - "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.2.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -4190,12 +4155,12 @@ } }, "node_modules/cssnano": { - "version": "5.1.13", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", - "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.12", + "cssnano-preset-default": "^5.2.13", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -4211,25 +4176,25 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "dev": true, "dependencies": { - "css-declaration-sorter": "^6.3.0", + "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", + "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", + "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -4237,11 +4202,11 @@ "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-initial": "^5.1.1", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -4591,9 +4556,9 @@ } }, "node_modules/dot-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "node_modules/ee-first": { @@ -5144,6 +5109,22 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5229,14 +5210,11 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true, - "engines": { - "node": ">=8" - } + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", @@ -5251,9 +5229,9 @@ } }, "node_modules/espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "dependencies": { "acorn": "^8.8.0", @@ -5975,6 +5953,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -6789,7 +6779,7 @@ "node": ">=6" } }, - "node_modules/is-path-inside": { + "node_modules/is-path-in-cwd/node_modules/is-path-inside": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", @@ -6801,6 +6791,15 @@ "node": ">=6" } }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/is-plain-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", @@ -6892,15 +6891,15 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" }, "engines": { @@ -6962,12 +6961,12 @@ } }, "node_modules/jest-util": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", - "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "dependencies": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -7049,17 +7048,18 @@ } }, "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "dependencies": { "@types/node": "*", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, "engines": { - "node": ">= 10.13.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, "node_modules/jest-worker/node_modules/has-flag": { @@ -7128,9 +7128,9 @@ "dev": true }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { @@ -7541,9 +7541,9 @@ "dev": true }, "node_modules/loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==", "engines": { "node": ">= 0.6.0" }, @@ -7573,9 +7573,9 @@ } }, "node_modules/lower-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "node_modules/lru-cache": { @@ -7612,9 +7612,9 @@ } }, "node_modules/matrix-events-sdk": { - "version": "0.0.1-beta.7", - "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.7.tgz", - "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz", + "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { "version": "21.0.1", @@ -7662,9 +7662,9 @@ } }, "node_modules/memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.10.tgz", + "integrity": "sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -7891,9 +7891,9 @@ } }, "node_modules/no-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "node_modules/node-fetch": { @@ -8035,28 +8035,28 @@ } }, "node_modules/object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" } }, "node_modules/object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -8066,27 +8066,27 @@ } }, "node_modules/object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dev": true, "dependencies": { "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" }, "engines": { "node": ">= 0.4" @@ -8257,9 +8257,9 @@ } }, "node_modules/param-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "node_modules/parent-module": { @@ -8324,9 +8324,9 @@ } }, "node_modules/pascal-case/node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true }, "node_modules/path-browserify": { @@ -8571,12 +8571,12 @@ } }, "node_modules/postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dev": true, "dependencies": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -8635,13 +8635,13 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dev": true, "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "stylehacks": "^5.1.1" }, "engines": { "node": "^10 || ^12 || >=14.0" @@ -8651,12 +8651,12 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -8701,12 +8701,12 @@ } }, "node_modules/postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" }, @@ -8879,12 +8879,12 @@ } }, "node_modules/postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -8942,12 +8942,12 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" }, "engines": { @@ -9955,40 +9955,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/schema-utils/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/schema-utils/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -10262,15 +10228,6 @@ "websocket-driver": "^0.7.4" } }, - "node_modules/sockjs/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -10370,18 +10327,18 @@ "dev": true }, "node_modules/string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" }, "funding": { @@ -10389,28 +10346,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -10491,12 +10448,12 @@ } }, "node_modules/stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" }, "engines": { @@ -10621,6 +10578,60 @@ } } }, + "node_modules/terser-webpack-plugin/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/terser-webpack-plugin/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/terser-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -10639,6 +10650,21 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/terser-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -10979,6 +11005,15 @@ "node": ">= 0.4.0" } }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -11241,6 +11276,31 @@ "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -11263,6 +11323,12 @@ "node": ">=4.0" } }, + "node_modules/webpack/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -11345,17 +11411,17 @@ } }, "node_modules/which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, "dependencies": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" }, "engines": { "node": ">= 0.4" @@ -11386,9 +11452,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true, "engines": { "node": ">=10.0.0" @@ -11493,9 +11559,9 @@ } }, "@babel/generator": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.3.tgz", - "integrity": "sha512-Wl5ilw2UD1+ZYprHVprxHZJCFeBWlzZYOovE4SDYLZnqCOD11j+0QzNeEWKLLTWM7nixrZEh7vNIyb76MyJg3A==", + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", + "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", "dev": true, "requires": { "@babel/types": "^7.20.2", @@ -11548,9 +11614,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz", - "integrity": "sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==", + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", + "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", "dev": true, "requires": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -11558,7 +11624,7 @@ "@babel/helper-function-name": "^7.19.0", "@babel/helper-member-expression-to-functions": "^7.18.9", "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.9", + "@babel/helper-replace-supers": "^7.19.1", "@babel/helper-split-export-declaration": "^7.18.6" } }, @@ -11704,12 +11770,12 @@ } }, "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz", - "integrity": "sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==", + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", + "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", "dev": true, "requires": { - "@babel/types": "^7.18.9" + "@babel/types": "^7.20.0" } }, "@babel/helper-split-export-declaration": { @@ -12568,11 +12634,11 @@ } }, "@babel/runtime": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", - "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", + "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", "requires": { - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "dependencies": { "regenerator-runtime": { @@ -12583,13 +12649,13 @@ } }, "@babel/runtime-corejs3": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.19.4.tgz", - "integrity": "sha512-HzjQ8+dzdx7dmZy4DQ8KV8aHi/74AjEbBGTFutBmg/pd3dY5/q1sfuOGPTFGEytlQhWoeVXqcK5BwMgIkRkNDQ==", + "version": "7.20.1", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz", + "integrity": "sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg==", "dev": true, "requires": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.4" + "regenerator-runtime": "^0.13.10" }, "dependencies": { "regenerator-runtime": { @@ -12663,6 +12729,18 @@ "strip-json-comments": "^3.1.1" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -12671,6 +12749,12 @@ "requires": { "type-fest": "^0.20.2" } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true } } }, @@ -12685,14 +12769,14 @@ "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" }, "@humanwhocodes/config-array": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", - "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "version": "0.11.7", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", + "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", "dev": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", "debug": "^4.1.1", - "minimatch": "^3.0.4" + "minimatch": "^3.0.5" } }, "@humanwhocodes/module-importer": { @@ -12717,9 +12801,9 @@ } }, "@jest/types": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.2.1.tgz", - "integrity": "sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", + "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", "dev": true, "requires": { "@jest/schemas": "^29.0.0", @@ -12966,9 +13050,9 @@ } }, "@types/eslint": { - "version": "8.4.6", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.6.tgz", - "integrity": "sha512-/fqTbjxyFUaYNO7VcW5g+4npmqVACz1bB7RTHYuLj+PRjw9hrCwrUXVQFpChUS0JsyEFvMZ7U/PfmvWgxJhI9g==", + "version": "8.4.10", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", + "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", "dev": true, "requires": { "@types/estree": "*", @@ -13088,9 +13172,9 @@ "dev": true }, "@types/node": { - "version": "18.11.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.2.tgz", - "integrity": "sha512-BWN3M23gLO2jVG8g/XHIRFWiiV4/GckeFIqbU/C4V3xpoBBWSMk4OZomouN0wCkfQFPqgZikyLr7DOYDysIkkw==", + "version": "18.11.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", + "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", "dev": true }, "@types/prop-types": { @@ -13111,9 +13195,9 @@ "dev": true }, "@types/react": { - "version": "18.0.21", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.21.tgz", - "integrity": "sha512-7QUCOxvFgnD5Jk8ZKlUAhVcRj7GuJRjnjjiY/IUBWKgOlnvDvTMLD4RTF7NPyVmbRhNrbomZiOepg7M/2Kj1mA==", + "version": "18.0.25", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", + "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", "requires": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -13389,9 +13473,9 @@ } }, "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", "dev": true }, "acorn-import-assertions": { @@ -13407,14 +13491,14 @@ "dev": true }, "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", "uri-js": "^4.2.2" } }, @@ -13425,33 +13509,16 @@ "dev": true, "requires": { "ajv": "^8.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } } }, "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } }, "another-json": { "version": "0.2.0", @@ -13512,15 +13579,15 @@ "dev": true }, "array-includes": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", - "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", + "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5", - "get-intrinsic": "^1.1.1", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "is-string": "^1.0.7" } }, @@ -13540,26 +13607,26 @@ "dev": true }, "array.prototype.flat": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", - "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", + "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, "array.prototype.flatmap": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz", - "integrity": "sha512-PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", + "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", "es-shim-unscopables": "^1.0.0" } }, @@ -13618,9 +13685,9 @@ "dev": true }, "axe-core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.4.3.tgz", - "integrity": "sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==", + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.1.tgz", + "integrity": "sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ==", "dev": true }, "axobject-query": { @@ -14004,9 +14071,9 @@ }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -14024,9 +14091,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001422", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001422.tgz", - "integrity": "sha512-hSesn02u1QacQHhaxl/kNMZwqVG35Sz/8DgvmgedxSH8z9UUpcDYSPYgsj3x5dQNRcNp6BwpSfQfVzYUTm+fog==", + "version": "1.0.30001431", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", + "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", "dev": true }, "chalk": { @@ -14346,24 +14413,24 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.5.tgz", - "integrity": "sha512-ovcyhs2DEBUIE0MGEKHP4olCUW/XYte3Vroyxuh38rD1wAO4dHohsovUC4eAOuzFxE6b+RXvBU3UZ9o0YhUTkA==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", + "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", "dev": true, "requires": { "browserslist": "^4.21.4" } }, "core-js-pure": { - "version": "3.25.5", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.25.5.tgz", - "integrity": "sha512-oml3M22pHM+igfWHDfdLVq2ShWmjM2V4L+dQEBs0DWVIqEm9WHCwGAlZ6BmyBQGy5sFrJmcx+856D9lVKyGWYg==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", + "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", "dev": true }, "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, "create-ecdh": { @@ -14494,35 +14561,6 @@ "schema-utils": "^4.0.0", "serialize-javascript": "^6.0.0", "source-map": "^0.6.1" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.2.1.tgz", - "integrity": "sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.2.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } } }, "css-select": { @@ -14600,36 +14638,36 @@ "dev": true }, "cssnano": { - "version": "5.1.13", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.13.tgz", - "integrity": "sha512-S2SL2ekdEz6w6a2epXn4CmMKU4K3KpcyXLKfAYc9UQQqJRkD/2eLUG0vJ3Db/9OvO5GuAdgXw3pFbR6abqghDQ==", + "version": "5.1.14", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", + "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", "dev": true, "requires": { - "cssnano-preset-default": "^5.2.12", + "cssnano-preset-default": "^5.2.13", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.2.12", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.12.tgz", - "integrity": "sha512-OyCBTZi+PXgylz9HAA5kHyoYhfGcYdwFmyaJzWnzxuGRtnMw/kR6ilW9XzlzlRAtB6PLT/r+prYgkef7hngFew==", + "version": "5.2.13", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", + "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", "dev": true, "requires": { - "css-declaration-sorter": "^6.3.0", + "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.2", + "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.6", - "postcss-merge-rules": "^5.1.2", + "postcss-merge-longhand": "^5.1.7", + "postcss-merge-rules": "^5.1.3", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.3", + "postcss-minify-params": "^5.1.4", "postcss-minify-selectors": "^5.2.1", "postcss-normalize-charset": "^5.1.0", "postcss-normalize-display-values": "^5.1.0", @@ -14637,11 +14675,11 @@ "postcss-normalize-repeat-style": "^5.1.1", "postcss-normalize-string": "^5.1.0", "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.0", + "postcss-normalize-unicode": "^5.1.1", "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.0", + "postcss-reduce-initial": "^5.1.1", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -14913,9 +14951,9 @@ }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -15131,6 +15169,18 @@ "text-table": "^0.2.0" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -15186,10 +15236,10 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "supports-color": { @@ -15419,9 +15469,9 @@ "dev": true }, "espree": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", - "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", "dev": true, "requires": { "acorn": "^8.8.0", @@ -15993,6 +16043,15 @@ "slash": "^4.0.0" } }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, "graceful-fs": { "version": "4.2.10", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", @@ -16574,16 +16633,24 @@ "dev": true, "requires": { "is-path-inside": "^2.1.0" + }, + "dependencies": { + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", + "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + } } }, "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true }, "is-plain-obj": { "version": "3.0.0", @@ -16640,15 +16707,15 @@ } }, "is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", + "version": "1.1.10", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", + "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0" } }, @@ -16695,12 +16762,12 @@ "dev": true }, "jest-util": { - "version": "29.2.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.2.1.tgz", - "integrity": "sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", + "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", "dev": true, "requires": { - "@jest/types": "^29.2.1", + "@jest/types": "^29.3.1", "@types/node": "*", "chalk": "^4.0.0", "ci-info": "^3.2.0", @@ -16760,12 +16827,13 @@ } }, "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "version": "29.3.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", + "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", "dev": true, "requires": { "@types/node": "*", + "jest-util": "^29.3.1", "merge-stream": "^2.0.0", "supports-color": "^8.0.0" }, @@ -16820,9 +16888,9 @@ "dev": true }, "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, "json-stable-stringify-without-jsonify": { @@ -17182,9 +17250,9 @@ "dev": true }, "loglevel": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.0.tgz", - "integrity": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==" + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", + "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==" }, "loose-envify": { "version": "1.4.0", @@ -17204,9 +17272,9 @@ }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -17236,9 +17304,9 @@ } }, "matrix-events-sdk": { - "version": "0.0.1-beta.7", - "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1-beta.7.tgz", - "integrity": "sha512-9jl4wtWanUFSy2sr2lCjErN/oC8KTAtaeaozJtrgot1JiQcEI4Rda9OLgQ7nLKaqb4Z/QUx/fR3XpDzm5Jy1JA==" + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz", + "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "matrix-js-sdk": { "version": "21.0.1", @@ -17280,9 +17348,9 @@ "dev": true }, "memfs": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", - "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.10.tgz", + "integrity": "sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==", "dev": true, "requires": { "fs-monkey": "^1.0.3" @@ -17453,9 +17521,9 @@ }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -17549,46 +17617,46 @@ } }, "object.entries": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.5.tgz", - "integrity": "sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", + "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.fromentries": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.5.tgz", - "integrity": "sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", + "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "object.hasown": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.1.tgz", - "integrity": "sha512-LYLe4tivNQzq4JdaWW6WO3HMZZJWzkkH8fnI6EebWl0VZth2wL2Lovm74ep2/gZzlaTdV62JZHEqHQ2yVn8Q/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", + "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", "dev": true, "requires": { "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "object.values": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", - "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", + "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4" } }, "obuf": { @@ -17711,9 +17779,9 @@ }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -17771,9 +17839,9 @@ }, "dependencies": { "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", "dev": true } } @@ -17952,12 +18020,12 @@ } }, "postcss-convert-values": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.2.tgz", - "integrity": "sha512-c6Hzc4GAv95B7suy4udszX9Zy4ETyMCgFPUDtWjdFTKH1SE9eFY/jEpHSwTH1QPuwxHpWslhckUQWbNRM4ho5g==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", + "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", "dev": true, "requires": { - "browserslist": "^4.20.3", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" } }, @@ -17986,22 +18054,22 @@ "dev": true }, "postcss-merge-longhand": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.6.tgz", - "integrity": "sha512-6C/UGF/3T5OE2CEbOuX7iNO63dnvqhGZeUnKkDeifebY0XqkkvrctYSZurpNE902LDf2yKwwPFgotnfSoPhQiw==", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", + "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", "dev": true, "requires": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.0" + "stylehacks": "^5.1.1" } }, "postcss-merge-rules": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.2.tgz", - "integrity": "sha512-zKMUlnw+zYCWoPN6yhPjtcEdlJaMUZ0WyVcxTAmw3lkkN/NDMRkOkiuctQEoWAOvH7twaxUUdvBWl0d4+hifRQ==", + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", + "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "cssnano-utils": "^3.1.0", "postcss-selector-parser": "^6.0.5" @@ -18028,12 +18096,12 @@ } }, "postcss-minify-params": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.3.tgz", - "integrity": "sha512-bkzpWcjykkqIujNL+EVEPOlLYi/eZ050oImVtHU7b4lFS82jPnsCb44gvC6pxaNt38Els3jWYDHTjHKf0koTgg==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", + "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "cssnano-utils": "^3.1.0", "postcss-value-parser": "^4.2.0" } @@ -18134,12 +18202,12 @@ } }, "postcss-normalize-unicode": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.0.tgz", - "integrity": "sha512-J6M3MizAAZ2dOdSjy2caayJLQT8E8K9XjLce8AUQMwOrCvjCHv24aLC/Lps1R1ylOfol5VIDMaM/Lo9NGlk1SQ==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", + "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-value-parser": "^4.2.0" } }, @@ -18173,12 +18241,12 @@ } }, "postcss-reduce-initial": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.0.tgz", - "integrity": "sha512-5OgTUviz0aeH6MtBjHfbr57tml13PuedK/Ecg8szzd4XRMbYxH4572JFG067z+FqBIf6Zp/d+0581glkvvWMFw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", + "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0" } }, @@ -18893,35 +18961,6 @@ "ajv": "^8.8.0", "ajv-formats": "^2.1.1", "ajv-keywords": "^5.0.0" - }, - "dependencies": { - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - } } }, "select-hose": { @@ -19156,14 +19195,6 @@ "faye-websocket": "^0.11.3", "uuid": "^8.3.2", "websocket-driver": "^0.7.4" - }, - "dependencies": { - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - } } }, "source-map": { @@ -19252,41 +19283,41 @@ "dev": true }, "string.prototype.matchall": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz", - "integrity": "sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", + "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", "dev": true, "requires": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1", - "get-intrinsic": "^1.1.1", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "get-intrinsic": "^1.1.3", "has-symbols": "^1.0.3", "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.1", + "regexp.prototype.flags": "^1.4.3", "side-channel": "^1.0.4" } }, "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", + "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", + "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", "dev": true, "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "es-abstract": "^1.20.4" } }, "strip-ansi": { @@ -19339,12 +19370,12 @@ } }, "stylehacks": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.0.tgz", - "integrity": "sha512-SzLmvHQTrIWfSgljkQCw2++C9+Ne91d/6Sp92I8c5uHTcy/PgeHamwITIbBW9wnFTY/3ZfSXR9HIL6Ikqmcu6Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", + "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", "dev": true, "requires": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "postcss-selector-parser": "^6.0.4" } }, @@ -19425,6 +19456,47 @@ "terser": "^5.14.1" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + } + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -19435,6 +19507,15 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -19699,6 +19780,12 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, "vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -19769,6 +19856,24 @@ "webpack-sources": "^3.2.3" }, "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -19785,6 +19890,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, "schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -19952,17 +20063,17 @@ } }, "which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", + "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", "dev": true, "requires": { "available-typed-arrays": "^1.0.5", "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", "for-each": "^0.3.3", + "gopd": "^1.0.1", "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" + "is-typed-array": "^1.1.10" } }, "wildcard": { @@ -19984,9 +20095,9 @@ "dev": true }, "ws": { - "version": "8.9.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", - "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", "dev": true }, "xtend": { diff --git a/package.json b/package.json index 79f0b3e0..23e08cf5 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "@babel/core": "7.20.2", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", + "ajv": "8.11.0", "assert": "2.0.0", "babel-loader": "9.1.0", "browserify-fs": "1.0.0", From 543acc9fffd5381d358ed6bd2867dd9d2854815a Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:43:35 +0530 Subject: [PATCH 276/717] Revert babel-loader v9 and uninstall ajv (#979) --- package-lock.json | 174 ++++++++++++++++++++++++++++++++++++++++++---- package.json | 3 +- 2 files changed, 160 insertions(+), 17 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4aa54bae..3a75adef 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,9 +44,8 @@ "@babel/core": "7.20.2", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", - "ajv": "8.11.0", "assert": "2.0.0", - "babel-loader": "9.1.0", + "babel-loader": "8.2.5", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", @@ -2970,20 +2969,71 @@ "dev": true }, "node_modules/babel-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", - "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "dev": true, "dependencies": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 8.9" }, "peerDependencies": { - "@babel/core": "^7.12.0", - "webpack": ">=5" + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-loader/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/babel-loader/node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/babel-loader/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/babel-loader/node_modules/schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" } }, "node_modules/babel-plugin-polyfill-corejs2": { @@ -3086,6 +3136,15 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -4612,6 +4671,15 @@ "emojibase": "*" } }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -7491,6 +7559,20 @@ "node": ">=6.11.5" } }, + "node_modules/loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + }, + "engines": { + "node": ">=8.9.0" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -13697,13 +13779,52 @@ "dev": true }, "babel-loader": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.0.tgz", - "integrity": "sha512-Antt61KJPinUMwHwIIz9T5zfMgevnfZkEVWYDWlG888fgdvRRGD0JTuf/fFozQnfT+uq64sk1bmdHDy/mOEWnA==", + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "dev": true, "requires": { - "find-cache-dir": "^3.3.2", - "schema-utils": "^4.0.0" + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" + }, + "dependencies": { + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" + } + } } }, "babel-plugin-polyfill-corejs2": { @@ -13785,6 +13906,12 @@ "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, "binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -15004,6 +15131,12 @@ "resolved": "https://registry.npmjs.org/emojibase-data/-/emojibase-data-7.0.1.tgz", "integrity": "sha512-BLZpOdwyFpZ7lzBWyDtnxmKVm/SJMYgAfp1if3o6n1TVUMSXAf0nikONXl90LZuJ/m3XWPBkkubgCet2BsCGGQ==" }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -17206,6 +17339,17 @@ "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, + "loader-utils": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", + "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", diff --git a/package.json b/package.json index 23e08cf5..eb2f515c 100644 --- a/package.json +++ b/package.json @@ -49,9 +49,8 @@ "@babel/core": "7.20.2", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", - "ajv": "8.11.0", "assert": "2.0.0", - "babel-loader": "9.1.0", + "babel-loader": "8.2.5", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", From c280c1339b71e2665afa620e2f15c60c53ce1e0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:44:49 +0530 Subject: [PATCH 277/717] Bump sass-loader from 13.1.0 to 13.2.0 (#976) Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 13.1.0 to 13.2.0. - [Release notes](https://github.com/webpack-contrib/sass-loader/releases) - [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/sass-loader/compare/v13.1.0...v13.2.0) --- updated-dependencies: - dependency-name: sass-loader dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 16 ++++++++-------- package.json | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3a75adef..fb102b60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -64,7 +64,7 @@ "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", "sass": "1.56.0", - "sass-loader": "13.1.0", + "sass-loader": "13.2.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", "url": "0.11.0", @@ -9972,9 +9972,9 @@ } }, "node_modules/sass-loader": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz", - "integrity": "sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", "dev": true, "dependencies": { "klona": "^2.0.4", @@ -9989,7 +9989,7 @@ }, "peerDependencies": { "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0", + "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", "sass": "^1.3.0", "sass-embedded": "*", "webpack": "^5.0.0" @@ -19077,9 +19077,9 @@ } }, "sass-loader": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz", - "integrity": "sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ==", + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", + "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", "dev": true, "requires": { "klona": "^2.0.4", diff --git a/package.json b/package.json index eb2f515c..c087c3c0 100644 --- a/package.json +++ b/package.json @@ -69,7 +69,7 @@ "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", "sass": "1.56.0", - "sass-loader": "13.1.0", + "sass-loader": "13.2.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", "url": "0.11.0", From b8f3cf1b478dd0c48b8cccf8a478a9b9035e33ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:45:26 +0530 Subject: [PATCH 278/717] Bump dawidd6/action-download-artifact from 2.24.0 to 2.24.2 (#972) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 2.24.0 to 2.24.2. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/46b4ae883bf0726f5949d025d31cb62c7a5ac70c...e6e25ac3a2b93187502a8be1ef9e9603afc34925) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 4381aecc..54d18148 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -13,7 +13,7 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Download pr number - uses: dawidd6/action-download-artifact@46b4ae883bf0726f5949d025d31cb62c7a5ac70c + uses: dawidd6/action-download-artifact@e6e25ac3a2b93187502a8be1ef9e9603afc34925 with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} @@ -22,7 +22,7 @@ jobs: id: pr run: echo "id=$(> $GITHUB_OUTPUT - name: Download artifact - uses: dawidd6/action-download-artifact@46b4ae883bf0726f5949d025d31cb62c7a5ac70c + uses: dawidd6/action-download-artifact@e6e25ac3a2b93187502a8be1ef9e9603afc34925 with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} From 062beb718d7a6f25186d0fe0ef45704a821ea7c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:47:06 +0530 Subject: [PATCH 279/717] Bump css-loader from 6.7.1 to 6.7.2 (#973) Bumps [css-loader](https://github.com/webpack-contrib/css-loader) from 6.7.1 to 6.7.2. - [Release notes](https://github.com/webpack-contrib/css-loader/releases) - [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/css-loader/compare/v6.7.1...v6.7.2) --- updated-dependencies: - dependency-name: css-loader dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 22 +++++++++++----------- package.json | 2 +- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index fb102b60..4553df7a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,7 @@ "clean-webpack-plugin": "4.0.0", "copy-webpack-plugin": "11.0.0", "crypto-browserify": "3.12.0", - "css-loader": "6.7.1", + "css-loader": "6.7.2", "css-minimizer-webpack-plugin": "4.2.2", "eslint": "8.27.0", "eslint-config-airbnb": "19.0.4", @@ -4024,19 +4024,19 @@ } }, "node_modules/css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.18", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "engines": { "node": ">= 12.13.0" @@ -14650,19 +14650,19 @@ "dev": true }, "css-loader": { - "version": "6.7.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", - "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", + "version": "6.7.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", + "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", "dev": true, "requires": { "icss-utils": "^5.1.0", - "postcss": "^8.4.7", + "postcss": "^8.4.18", "postcss-modules-extract-imports": "^3.0.0", "postcss-modules-local-by-default": "^4.0.0", "postcss-modules-scope": "^3.0.0", "postcss-modules-values": "^4.0.0", "postcss-value-parser": "^4.2.0", - "semver": "^7.3.5" + "semver": "^7.3.8" }, "dependencies": { "semver": { diff --git a/package.json b/package.json index c087c3c0..ed500a81 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "clean-webpack-plugin": "4.0.0", "copy-webpack-plugin": "11.0.0", "crypto-browserify": "3.12.0", - "css-loader": "6.7.1", + "css-loader": "6.7.2", "css-minimizer-webpack-plugin": "4.2.2", "eslint": "8.27.0", "eslint-config-airbnb": "19.0.4", From 7db04440ff7694df78a2e6598dcc901bfea2e615 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:48:32 +0530 Subject: [PATCH 280/717] Bump matrix-js-sdk from 21.0.1 to 21.1.0 (#975) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 21.0.1 to 21.1.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v21.0.1...v21.1.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4553df7a..b76d4f86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "21.0.1", + "matrix-js-sdk": "21.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7699,9 +7699,9 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.0.1.tgz", - "integrity": "sha512-xrJibvMwj38fMeNX7e9kfEzR9xv5UNwWkYGlyQE+ag81HGLacbJvEix/2zkEQ40TypB9ENVioVFIyVYGN9Rv2Q==", + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.1.0.tgz", + "integrity": "sha512-4HTEZKt/LlX4045H5JVACBMirPboRWM7E/OabaRCcBoEssgWrPw/z7am6FXH2ZRDw0xp50WhPjCNOGZqdf81Mg==", "dependencies": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", @@ -17453,9 +17453,9 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "matrix-js-sdk": { - "version": "21.0.1", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.0.1.tgz", - "integrity": "sha512-xrJibvMwj38fMeNX7e9kfEzR9xv5UNwWkYGlyQE+ag81HGLacbJvEix/2zkEQ40TypB9ENVioVFIyVYGN9Rv2Q==", + "version": "21.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.1.0.tgz", + "integrity": "sha512-4HTEZKt/LlX4045H5JVACBMirPboRWM7E/OabaRCcBoEssgWrPw/z7am6FXH2ZRDw0xp50WhPjCNOGZqdf81Mg==", "requires": { "@babel/runtime": "^7.12.5", "another-json": "^0.2.0", diff --git a/package.json b/package.json index ed500a81..b86ec3b2 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "21.0.1", + "matrix-js-sdk": "21.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 7eb2f7817419246894ea1a18b2b653f46e4fa19a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:50:15 +0530 Subject: [PATCH 281/717] Bump webpack from 5.74.0 to 5.75.0 (#978) Bumps [webpack](https://github.com/webpack/webpack) from 5.74.0 to 5.75.0. - [Release notes](https://github.com/webpack/webpack/releases) - [Commits](https://github.com/webpack/webpack/compare/v5.74.0...v5.75.0) --- updated-dependencies: - dependency-name: webpack dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index b76d4f86..67c2308a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -69,7 +69,7 @@ "style-loader": "3.3.1", "url": "0.11.0", "util": "0.12.5", - "webpack": "5.74.0", + "webpack": "5.75.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" @@ -11141,9 +11141,9 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "node_modules/webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -19969,9 +19969,9 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, "webpack": { - "version": "5.74.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", - "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "version": "5.75.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", + "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.3", diff --git a/package.json b/package.json index b86ec3b2..9939af5d 100644 --- a/package.json +++ b/package.json @@ -74,7 +74,7 @@ "style-loader": "3.3.1", "url": "0.11.0", "util": "0.12.5", - "webpack": "5.74.0", + "webpack": "5.75.0", "webpack-cli": "4.10.0", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" From ea3d7b8892195708c337e43c63efb9cd26746509 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:50:38 +0530 Subject: [PATCH 282/717] Bump sass from 1.56.0 to 1.56.1 (#974) Bumps [sass](https://github.com/sass/dart-sass) from 1.56.0 to 1.56.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.56.0...1.56.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67c2308a..9a1ac650 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.56.0", + "sass": "1.56.1", "sass-loader": "13.2.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", @@ -9955,9 +9955,9 @@ } }, "node_modules/sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -19066,9 +19066,9 @@ } }, "sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.56.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", + "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", "dev": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 9939af5d..5e329aff 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.6.1", "path-browserify": "1.0.1", - "sass": "1.56.0", + "sass": "1.56.1", "sass-loader": "13.2.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", From 2bab3119b0d17972e12e85fe4e4cb68d2045fba4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:56:19 +0530 Subject: [PATCH 283/717] Update dependency babel-loader to v8.3.0 (#980) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a1ac650..c1ffe1a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", - "babel-loader": "8.2.5", + "babel-loader": "8.3.0", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", @@ -2969,9 +2969,9 @@ "dev": true }, "node_modules/babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dev": true, "dependencies": { "find-cache-dir": "^3.3.1", @@ -13779,9 +13779,9 @@ "dev": true }, "babel-loader": { - "version": "8.2.5", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", - "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", + "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", "dev": true, "requires": { "find-cache-dir": "^3.3.1", diff --git a/package.json b/package.json index 5e329aff..d84df58d 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", - "babel-loader": "8.2.5", + "babel-loader": "8.3.0", "browserify-fs": "1.0.0", "buffer": "6.0.3", "clean-webpack-plugin": "4.0.0", From d22abe300b35e459eccdc6ef23e56c3737e9d2de Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 22:01:14 +0530 Subject: [PATCH 284/717] Lock file maintenance (#981) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 9217 ++------------------------------------------- 1 file changed, 335 insertions(+), 8882 deletions(-) diff --git a/package-lock.json b/package-lock.json index c1ffe1a3..830ab272 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "cinny", "version": "2.2.2", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -1829,22 +1829,6 @@ "url": "https://opencollective.com/eslint" } }, - "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/@eslint/eslintrc/node_modules/globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -1860,12 +1844,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/@fontsource/inter": { "version": "4.5.14", "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz", @@ -2699,14 +2677,14 @@ } }, "node_modules/ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" }, "funding": { @@ -2731,16 +2709,35 @@ } } }, - "node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "node_modules/ajv-formats/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.3" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, "peerDependencies": { - "ajv": "^8.8.2" + "ajv": "^6.9.1" } }, "node_modules/another-json": { @@ -2954,9 +2951,9 @@ } }, "node_modules/axe-core": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.1.tgz", - "integrity": "sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.2.tgz", + "integrity": "sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==", "dev": true, "engines": { "node": ">=4" @@ -2987,55 +2984,6 @@ "webpack": ">=2" } }, - "node_modules/babel-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/babel-loader/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, - "node_modules/babel-loader/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/babel-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/babel-plugin-polyfill-corejs2": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", @@ -3575,10 +3523,13 @@ } }, "node_modules/ci-info": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", - "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", - "dev": true + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", + "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "dev": true, + "engines": { + "node": ">=8" + } }, "node_modules/cipher-base": { "version": "1.0.4", @@ -3887,6 +3838,59 @@ "webpack": "^5.1.0" } }, + "node_modules/copy-webpack-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/copy-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/core-js": { "version": "2.6.12", "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", @@ -3895,9 +3899,9 @@ "hasInstallScript": true }, "node_modules/core-js-compat": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", - "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", + "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", "dev": true, "dependencies": { "browserslist": "^4.21.4" @@ -3908,9 +3912,9 @@ } }, "node_modules/core-js-pure": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", - "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", + "version": "3.26.1", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", + "integrity": "sha512-VVXcDpp/xJ21KdULRq/lXdLzQAtX7+37LzpyfFM973il0tWSsDEoyzG38G14AjTpK9VTfiNM9jnFauq/CpaWGQ==", "dev": true, "hasInstallScript": true, "funding": { @@ -4108,6 +4112,59 @@ } } }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -5177,22 +5234,6 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, - "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -5278,12 +5319,6 @@ "node": ">=8" } }, - "node_modules/eslint/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/eslint/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -7196,9 +7231,9 @@ "dev": true }, "node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "node_modules/json-stable-stringify-without-jsonify": { @@ -7744,9 +7779,9 @@ } }, "node_modules/memfs": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.10.tgz", - "integrity": "sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==", + "version": "3.4.11", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.11.tgz", + "integrity": "sha512-GvsCITGAyDCxxsJ+X6prJexFQEhOCJaIlUbsAvjzSI5o5O7j2dle3jWvz5Z5aOdpOxW6ol3vI1+0ut+641F1+w==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -7878,6 +7913,59 @@ "webpack": "^5.0.0" } }, + "node_modules/mini-css-extract-plugin/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -8599,9 +8687,9 @@ } }, "node_modules/postcss": { - "version": "8.4.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", - "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "version": "8.4.19", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", + "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", "funding": [ { "type": "opencollective", @@ -9555,9 +9643,9 @@ } }, "node_modules/regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", + "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", "dev": true, "dependencies": { "regenerate": "^1.4.2", @@ -9565,7 +9653,7 @@ "regjsgen": "^0.7.1", "regjsparser": "^0.9.1", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" @@ -10019,18 +10107,17 @@ } }, "node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" }, "engines": { - "node": ">= 12.13.0" + "node": ">= 8.9.0" }, "funding": { "type": "opencollective", @@ -10660,31 +10747,6 @@ } } }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/terser-webpack-plugin/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -10708,12 +10770,6 @@ "node": ">= 10.13.0" } }, - "node_modules/terser-webpack-plugin/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -10968,9 +11024,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", "dev": true, "engines": { "node": ">=4" @@ -11266,6 +11322,59 @@ "webpack": "^4.0.0 || ^5.0.0" } }, + "node_modules/webpack-dev-middleware/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/webpack-dev-middleware/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/webpack-dev-server": { "version": "4.11.1", "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", @@ -11321,6 +11430,40 @@ } } }, + "node_modules/webpack-dev-server/node_modules/ajv": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", + "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/webpack-dev-server/node_modules/ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3" + }, + "peerDependencies": { + "ajv": "^8.8.2" + } + }, + "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, "node_modules/webpack-dev-server/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", @@ -11336,6 +11479,25 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, "node_modules/webpack-merge": { "version": "5.8.0", "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", @@ -11358,31 +11520,6 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack/node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/webpack/node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -11405,12 +11542,6 @@ "node": ">=4.0" } }, - "node_modules/webpack/node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", @@ -11590,8683 +11721,5 @@ "url": "https://github.com/sponsors/sindresorhus" } } - }, - "dependencies": { - "@ampproject/remapping": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", - "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.1.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, - "requires": { - "@babel/highlight": "^7.18.6" - } - }, - "@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", - "dev": true - }, - "@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", - "dev": true, - "requires": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", - "semver": "^6.3.0" - } - }, - "@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2", - "@jridgewell/gen-mapping": "^0.3.2", - "jsesc": "^2.5.1" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.0", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", - "semver": "^6.3.0" - } - }, - "@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" - } - }, - "@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - } - }, - "@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "requires": { - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - } - }, - "@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - } - }, - "@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, - "requires": { - "@babel/types": "^7.20.2" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "requires": { - "@babel/types": "^7.20.0" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, - "requires": { - "@babel/types": "^7.18.6" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" - } - }, - "@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", - "dev": true, - "requires": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" - } - }, - "@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", - "dev": true - }, - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - } - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", - "dev": true, - "requires": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - } - }, - "@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - } - }, - "@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - } - }, - "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - } - }, - "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - } - }, - "@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - } - }, - "@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - } - }, - "@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "requires": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.12.13" - } - }, - "@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.3" - } - }, - "@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.14.5" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", - "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "requires": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", - "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.20.2" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-react-jsx": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", - "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.19.0" - } - }, - "@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", - "dev": true, - "requires": { - "@babel/plugin-transform-react-jsx": "^7.18.6" - } - }, - "@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.9" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - } - }, - "@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - } - }, - "@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - } - }, - "@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" - } - }, - "@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", - "requires": { - "regenerator-runtime": "^0.13.10" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" - } - } - }, - "@babel/runtime-corejs3": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz", - "integrity": "sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg==", - "dev": true, - "requires": { - "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.10" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" - } - }, - "@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", - "debug": "^4.1.0", - "globals": "^11.1.0" - } - }, - "@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", - "dev": true - }, - "@eslint/eslintrc": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", - "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.4.0", - "globals": "^13.15.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - } - } - }, - "@fontsource/inter": { - "version": "4.5.14", - "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz", - "integrity": "sha512-JDC9AocdPLuGsASkvWw9hS5gtHE7K9dOwL98XLrk5yjYqxy4uVnScG58NUvFMJDVJRl/7c8Wnap6PEs+7Zvj1Q==" - }, - "@fontsource/roboto": { - "version": "4.5.8", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.8.tgz", - "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" - }, - "@humanwhocodes/config-array": { - "version": "0.11.7", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", - "integrity": "sha512-kBbPWzN8oVMLb0hOUYXhmxggL/1cJE6ydvjDIGi9EnAGUyA7cLVKQg+d/Dsm+KZwx2czGHrCmMVLiyg8s5JPKw==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.1", - "debug": "^4.1.1", - "minimatch": "^3.0.5" - } - }, - "@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "requires": { - "@sinclair/typebox": "^0.24.1" - } - }, - "@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", - "dev": true, - "requires": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "@jridgewell/gen-mapping": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", - "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.0", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true - }, - "@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true - }, - "@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "requires": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "dependencies": { - "@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "requires": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - } - } - } - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true - }, - "@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, - "requires": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "@khanacademy/simple-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.5.tgz", - "integrity": "sha512-xPLm0bBqdIMeNA/sjjD6T8YHT28vsyYVM8ewe6S2QkmVELHpj4XdLayVN6PHjBMoSfJXunfs17Nq32GR+j+PZQ==", - "requires": { - "@types/react": ">=16.0.0" - } - }, - "@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, - "@matrix-org/olm": { - "version": "3.2.13", - "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.13.tgz", - "integrity": "sha1-AQn96TvMYd74UfeYJsk4TAc7UXU=" - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@popperjs/core": { - "version": "2.11.6", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz", - "integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==" - }, - "@react-dnd/asap": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", - "integrity": "sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==" - }, - "@react-dnd/invariant": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-3.0.1.tgz", - "integrity": "sha512-blqduwV86oiKw2Gr44wbe3pj3Z/OsXirc7ybCv9F/pLAR+Aih8F3rjeJzK0ANgtYKv5lCpkGVoZAeKitKDaD/g==" - }, - "@react-dnd/shallowequal": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", - "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" - }, - "@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true - }, - "@tippyjs/react": { - "version": "4.2.6", - "resolved": "https://registry.npmjs.org/@tippyjs/react/-/react-4.2.6.tgz", - "integrity": "sha512-91RicDR+H7oDSyPycI13q3b7o4O60wa2oRbjlz2fyRLmHImc4vyDwuUP8NtZaN0VARJY5hybvDYrFzhY9+Lbyw==", - "requires": { - "tippy.js": "^6.3.1" - } - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dev": true, - "requires": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", - "dev": true, - "requires": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "requires": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, - "@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", - "dev": true, - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/json-schema": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true - }, - "@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", - "dev": true - }, - "@types/prop-types": { - "version": "15.7.5", - "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", - "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" - }, - "@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, - "@types/react": { - "version": "18.0.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", - "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", - "requires": { - "@types/prop-types": "*", - "@types/scheduler": "*", - "csstype": "^3.0.2" - } - }, - "@types/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" - }, - "@types/scheduler": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", - "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" - }, - "@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "requires": { - "@types/express": "*" - } - }, - "@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, - "requires": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", - "dev": true, - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", - "dev": true, - "requires": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", - "dev": true - }, - "@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", - "dev": true, - "requires": { - "envinfo": "^7.7.3" - } - }, - "@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", - "dev": true - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", - "dev": true, - "requires": { - "xtend": "~3.0.0" - }, - "dependencies": { - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true - } - } - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", - "dev": true - }, - "acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "ajv": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", - "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "requires": { - "ajv": "^8.0.0" - } - }, - "ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.3" - } - }, - "another-json": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz", - "integrity": "sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg==" - }, - "ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "aria-query": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", - "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", - "dev": true, - "requires": { - "@babel/runtime": "^7.10.2", - "@babel/runtime-corejs3": "^7.10.2" - } - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "is-string": "^1.0.7" - } - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true - }, - "array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "es-shim-unscopables": "^1.0.0" - } - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dev": true, - "requires": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", - "dev": true - }, - "autosize": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", - "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "axe-core": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.1.tgz", - "integrity": "sha512-1exVbW0X1O/HSr/WMwnaweyqcWOgZgLiVxdLG34pvSQk4NlYQr9OUy0JLwuhFfuVNQzzqgH57eYzkFBCb3bIsQ==", - "dev": true - }, - "axobject-query": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", - "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", - "dev": true - }, - "babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "requires": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, - "requires": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - } - }, - "babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - } - }, - "babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, - "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - } - }, - "babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", - "requires": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "requires": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - } - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bl": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", - "dev": true, - "requires": { - "readable-stream": "~1.0.26" - }, - "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "blurhash": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.4.tgz", - "integrity": "sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A==" - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", - "dev": true, - "requires": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, - "browser-encrypt-attachment": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/browser-encrypt-attachment/-/browser-encrypt-attachment-0.3.0.tgz", - "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", - "dev": true, - "requires": { - "level-filesystem": "^1.0.1", - "level-js": "^2.1.3", - "levelup": "^0.18.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "requires": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true - }, - "ci-info": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz", - "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "clean-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", - "dev": true, - "requires": { - "del": "^4.1.1" - } - }, - "clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "dependencies": { - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "requires": { - "isobject": "^3.0.1" - } - } - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - } - } - }, - "computed-style": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", - "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "confusing-browser-globals": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", - "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", - "dev": true - }, - "connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "requires": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - } - }, - "core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" - }, - "core-js-compat": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", - "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", - "dev": true, - "requires": { - "browserslist": "^4.21.4" - } - }, - "core-js-pure": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.0.tgz", - "integrity": "sha512-LiN6fylpVBVwT8twhhluD9TzXmZQQsr2I2eIKtWNbZI1XMfBT7CV18itaN6RA7EtQd/SDdRx/wzvAShX2HvhQA==", - "dev": true - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", - "dev": true - }, - "css-loader": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", - "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", - "dev": true, - "requires": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.18", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", - "dev": true, - "requires": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - } - }, - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "dependencies": { - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", - "dev": true, - "requires": { - "cssnano-preset-default": "^5.2.13", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - } - }, - "csstype": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", - "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==" - }, - "damerau-levenshtein": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", - "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", - "dev": true - }, - "dateformat": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", - "integrity": "sha512-Kvr6HmPXUMerlLcLF+Pwq3K7apHpYmGDVqrxcDasBg86UcKeTSNWbEzU8bwdXnxnR44FtMhJAxI4Bov6Y/KUfA==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "deepmerge": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", - "integrity": "sha512-R9hc1Xa/NOBi9WRVUWg19rl1UB7Tt4kuPd+thNJgFZoxXsTz7ncaPaeIm+40oSGuP33DfMb4sZt1QIGiJzC4EA==" - }, - "default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "requires": { - "execa": "^5.0.0" - } - }, - "deferred-leveldown": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", - "dev": true, - "requires": { - "abstract-leveldown": "~0.12.1" - } - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - } - } - } - } - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - } - }, - "dnd-core": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-15.1.2.tgz", - "integrity": "sha512-EOec1LyJUuGRFg0LDa55rSRAUe97uNVKVkUo8iyvzQlcECYTuPblVQfRWXWj1OyPseFIeebWpNmKFy0h6BcF1A==", - "requires": { - "@react-dnd/asap": "4.0.1", - "@react-dnd/invariant": "3.0.1", - "redux": "^4.1.2" - } - }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dev": true, - "requires": { - "@leichtgewicht/ip-codec": "^2.0.1" - } - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "requires": { - "utila": "~0.4" - } - }, - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "emojibase-data": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/emojibase-data/-/emojibase-data-7.0.1.tgz", - "integrity": "sha512-BLZpOdwyFpZ7lzBWyDtnxmKVm/SJMYgAfp1if3o6n1TVUMSXAf0nikONXl90LZuJ/m3XWPBkkubgCet2BsCGGQ==" - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - } - }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==" - }, - "envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "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.3", - "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.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, - "es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", - "dev": true - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", - "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", - "dev": true, - "requires": { - "@eslint/eslintrc": "^1.3.3", - "@humanwhocodes/config-array": "^0.11.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.1.1", - "eslint-utils": "^3.0.0", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.4.0", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.15.0", - "grapheme-splitter": "^1.0.4", - "ignore": "^5.2.0", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-sdsl": "^4.1.4", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "regexpp": "^3.2.0", - "strip-ansi": "^6.0.1", - "strip-json-comments": "^3.1.0", - "text-table": "^0.2.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "eslint-config-airbnb": { - "version": "19.0.4", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb/-/eslint-config-airbnb-19.0.4.tgz", - "integrity": "sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==", - "dev": true, - "requires": { - "eslint-config-airbnb-base": "^15.0.0", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5" - } - }, - "eslint-config-airbnb-base": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-airbnb-base/-/eslint-config-airbnb-base-15.0.0.tgz", - "integrity": "sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==", - "dev": true, - "requires": { - "confusing-browser-globals": "^1.0.10", - "object.assign": "^4.1.2", - "object.entries": "^1.1.5", - "semver": "^6.3.0" - } - }, - "eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", - "dev": true, - "requires": { - "debug": "^3.2.7", - "resolve": "^1.20.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", - "dev": true, - "requires": { - "debug": "^3.2.7" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", - "dev": true, - "requires": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "eslint-plugin-jsx-a11y": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", - "integrity": "sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==", - "dev": true, - "requires": { - "@babel/runtime": "^7.18.9", - "aria-query": "^4.2.2", - "array-includes": "^3.1.5", - "ast-types-flow": "^0.0.7", - "axe-core": "^4.4.3", - "axobject-query": "^2.2.0", - "damerau-levenshtein": "^1.0.8", - "emoji-regex": "^9.2.2", - "has": "^1.0.3", - "jsx-ast-utils": "^3.3.2", - "language-tags": "^1.0.5", - "minimatch": "^3.1.2", - "semver": "^6.3.0" - } - }, - "eslint-plugin-react": { - "version": "7.31.10", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", - "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", - "dev": true, - "requires": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", - "doctrine": "^2.1.0", - "estraverse": "^5.3.0", - "jsx-ast-utils": "^2.4.1 || ^3.0.0", - "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", - "prop-types": "^15.8.1", - "resolve": "^2.0.0-next.3", - "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" - }, - "dependencies": { - "doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "eslint-plugin-react-hooks": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", - "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", - "dev": true - }, - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "events": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "requires": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - } - }, - "exenv": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", - "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" - }, - "express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - }, - "fbemitter": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", - "integrity": "sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw==", - "requires": { - "fbjs": "^3.0.0" - } - }, - "fbjs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-3.0.4.tgz", - "integrity": "sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ==", - "requires": { - "cross-fetch": "^3.1.5", - "fbjs-css-vars": "^1.0.0", - "loose-envify": "^1.0.0", - "object-assign": "^4.1.0", - "promise": "^7.1.1", - "setimmediate": "^1.0.5", - "ua-parser-js": "^0.7.30" - } - }, - "fbjs-css-vars": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", - "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "file-saver": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.5.tgz", - "integrity": "sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "flux": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/flux/-/flux-4.0.3.tgz", - "integrity": "sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw==", - "requires": { - "fbemitter": "^3.0.0", - "fbjs": "^3.0.1" - } - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true - }, - "formik": { - "version": "2.2.9", - "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", - "integrity": "sha512-LQLcISMmf1r5at4/gyJigGn0gOwFbeEAlji+N9InZF6LIMXnFNkO42sCI8Jt84YZggpD4cPWObAZaxpEFtSzNA==", - "requires": { - "deepmerge": "^2.1.1", - "hoist-non-react-statics": "^3.3.0", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21", - "react-fast-compare": "^2.0.1", - "tiny-warning": "^1.0.2", - "tslib": "^1.10.0" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "dependencies": { - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - } - } - }, - "fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "fwd-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", - "dev": true, - "requires": { - "readable-stream": "~1.0.26-4" - }, - "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - }, - "glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "grapheme-splitter": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", - "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", - "dev": true - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "html-dom-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.1.2.tgz", - "integrity": "sha512-mLTtl3pVn3HnqZSZzW3xVs/mJAKrG1yIw3wlp+9bdoZHHLaBRvELdpfShiPVLyjPypq1Fugv2KMDoGHW4lVXnw==", - "requires": { - "domhandler": "5.0.3", - "htmlparser2": "8.0.1" - } - }, - "html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true - }, - "html-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", - "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", - "dev": true, - "requires": { - "html-minifier-terser": "^7.0.0", - "parse5": "^7.0.0" - } - }, - "html-minifier-terser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", - "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.0", - "entities": "^4.3.1", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.14.2" - } - }, - "html-react-parser": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-3.0.4.tgz", - "integrity": "sha512-va68PSmC7uA6PbOEc9yuw5Mu3OHPXmFKUpkLGvUPdTuNrZ0CJZk1s/8X/FaHjswK/6uZghu2U02tJjussT8+uw==", - "requires": { - "domhandler": "5.0.3", - "html-dom-parser": "3.1.2", - "react-property": "2.0.0", - "style-to-js": "1.1.1" - } - }, - "html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dev": true, - "requires": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "dependencies": { - "clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true - }, - "html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "requires": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - } - } - } - }, - "htmlparser2": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", - "integrity": "sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==", - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "entities": "^4.3.0" - } - }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - } - }, - "http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "requires": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - } - }, - "human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true - }, - "idb-wrapper": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", - "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", - "dev": true - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "requires": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "inline-style-parser": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", - "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", - "dev": true - }, - "ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true - }, - "is": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", - "dev": true - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-object": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==", - "dev": true - }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true - }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "requires": { - "is-path-inside": "^2.1.0" - }, - "dependencies": { - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } - } - } - }, - "is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "dev": true - }, - "is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true - }, - "is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "isbuffer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true - }, - "jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", - "dev": true, - "requires": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", - "dev": true, - "requires": { - "@types/node": "*", - "jest-util": "^29.3.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "dependencies": { - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", - "dev": true - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "requires": { - "argparse": "^2.0.1" - } - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true - }, - "jsonfile": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-5.0.0.tgz", - "integrity": "sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w==", - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^0.1.2" - } - }, - "jsx-ast-utils": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.3.tgz", - "integrity": "sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==", - "dev": true, - "requires": { - "array-includes": "^3.1.5", - "object.assign": "^4.1.3" - } - }, - "katex": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.3.tgz", - "integrity": "sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA==", - "requires": { - "commander": "^8.0.0" - }, - "dependencies": { - "commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==" - } - } - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true - }, - "language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", - "dev": true - }, - "language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", - "dev": true, - "requires": { - "language-subtag-registry": "~0.3.2" - } - }, - "level-blobs": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", - "dev": true, - "requires": { - "level-peek": "1.0.6", - "once": "^1.3.0", - "readable-stream": "^1.0.26-4" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - } - } - }, - "level-filesystem": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", - "dev": true, - "requires": { - "concat-stream": "^1.4.4", - "errno": "^0.1.1", - "fwd-stream": "^1.0.4", - "level-blobs": "^0.1.7", - "level-peek": "^1.0.6", - "level-sublevel": "^5.2.0", - "octal": "^1.0.0", - "once": "^1.3.0", - "xtend": "^2.2.0" - } - }, - "level-fix-range": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", - "dev": true - }, - "level-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", - "dev": true, - "requires": { - "string-range": "~1.2" - } - }, - "level-js": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", - "dev": true, - "requires": { - "abstract-leveldown": "~0.12.0", - "idb-wrapper": "^1.5.0", - "isbuffer": "~0.0.0", - "ltgt": "^2.1.2", - "typedarray-to-buffer": "~1.0.0", - "xtend": "~2.1.2" - }, - "dependencies": { - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dev": true, - "requires": { - "object-keys": "~0.4.0" - } - } - } - }, - "level-peek": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", - "dev": true, - "requires": { - "level-fix-range": "~1.0.2" - } - }, - "level-sublevel": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", - "dev": true, - "requires": { - "level-fix-range": "2.0", - "level-hooks": ">=4.4.0 <5", - "string-range": "~1.2.1", - "xtend": "~2.0.4" - }, - "dependencies": { - "level-fix-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", - "dev": true, - "requires": { - "clone": "~0.1.9" - } - }, - "object-keys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", - "dev": true, - "requires": { - "foreach": "~2.0.1", - "indexof": "~0.0.1", - "is": "~0.2.6" - } - }, - "xtend": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", - "dev": true, - "requires": { - "is-object": "~0.1.2", - "object-keys": "~0.2.0" - } - } - } - }, - "levelup": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", - "dev": true, - "requires": { - "bl": "~0.8.1", - "deferred-leveldown": "~0.2.0", - "errno": "~0.1.1", - "prr": "~0.0.0", - "readable-stream": "~1.0.26", - "semver": "~2.3.1", - "xtend": "~3.0.0" - }, - "dependencies": { - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true - } - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true - }, - "line-height": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", - "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==", - "requires": { - "computed-style": "~0.1.3" - } - }, - "linkify-html": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/linkify-html/-/linkify-html-4.0.2.tgz", - "integrity": "sha512-YcN3tsyutK2Y/uSuoG0zne8FQdoqzrAgNU5ko0DWE7M2oQ3ms4z/202f2W4TvRm9uxKdrsWAullfynANLaVMqw==" - }, - "linkifyjs": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.2.tgz", - "integrity": "sha512-/VSoCZiglX0VMsXmL5PN3lRg45M86lrD9PskdkA2abWaTKap1bIcJ11LS4EE55bcUl9ZOR4eZ792UtQ9E/5xLA==" - }, - "loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true - }, - "loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "loglevel": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", - "integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "requires": { - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "matrix-events-sdk": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz", - "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" - }, - "matrix-js-sdk": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.1.0.tgz", - "integrity": "sha512-4HTEZKt/LlX4045H5JVACBMirPboRWM7E/OabaRCcBoEssgWrPw/z7am6FXH2ZRDw0xp50WhPjCNOGZqdf81Mg==", - "requires": { - "@babel/runtime": "^7.12.5", - "another-json": "^0.2.0", - "bs58": "^5.0.0", - "content-type": "^1.0.4", - "loglevel": "^1.7.1", - "matrix-events-sdk": "^0.0.1-beta.7", - "p-retry": "4", - "qs": "^6.9.6", - "unhomoglyph": "^1.0.6" - } - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true - }, - "memfs": { - "version": "3.4.10", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.10.tgz", - "integrity": "sha512-0bCUP+L79P4am30yP1msPzApwuMQG23TjwlwdHeEV5MxioDR1a0AgB0T9FfggU52eJuDCq8WVwb5ekznFyWiTQ==", - "dev": true, - "requires": { - "fs-monkey": "^1.0.3" - } - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", - "dev": true, - "requires": { - "schema-utils": "^4.0.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "requires": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - } - }, - "nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "object.entries": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.6.tgz", - "integrity": "sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.hasown": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", - "integrity": "sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==", - "dev": true, - "requires": { - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "octal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", - "dev": true - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.3" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "requires": { - "p-limit": "^3.0.2" - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "p-retry": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", - "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", - "requires": { - "@types/retry": "0.12.0", - "retry": "^0.13.1" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" - }, - "parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", - "dev": true, - "requires": { - "entities": "^4.4.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - }, - "dependencies": { - "tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - } - } - }, - "path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "requires": { - "pinkie": "^2.0.0" - } - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - } - } - }, - "postcss": { - "version": "8.4.18", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", - "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", - "requires": { - "nanoid": "^3.3.4", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true - }, - "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true - }, - "postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - } - }, - "postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true - }, - "postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - } - }, - "postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.4" - } - }, - "postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "requires": { - "icss-utils": "^5.0.0" - } - }, - "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - } - }, - "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", - "dev": true, - "requires": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" - } - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "requires": { - "asap": "~2.0.3" - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "dependencies": { - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true - } - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - } - } - }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true - } - } - }, - "react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "react-async-script": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/react-async-script/-/react-async-script-1.2.0.tgz", - "integrity": "sha512-bCpkbm9JiAuMGhkqoAiC0lLkb40DJ0HOEJIku+9JDjxX3Rcs+ztEOG13wbrOskt3n2DTrjshhaQ/iay+SnGg5Q==", - "requires": { - "hoist-non-react-statics": "^3.3.0", - "prop-types": "^15.5.0" - } - }, - "react-autosize-textarea": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/react-autosize-textarea/-/react-autosize-textarea-7.1.0.tgz", - "integrity": "sha512-BHpjCDkuOlllZn3nLazY2F8oYO1tS2jHnWhcjTWQdcKiiMU6gHLNt/fzmqMSyerR0eTdKtfSIqtSeTtghNwS+g==", - "requires": { - "autosize": "^4.0.2", - "line-height": "^0.3.1", - "prop-types": "^15.5.6" - } - }, - "react-blurhash": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/react-blurhash/-/react-blurhash-0.2.0.tgz", - "integrity": "sha512-MfhPLfFTNCX3MCJ8nM5t+T5qAixBUv8QHVcHORs5iVaqdpg+IW/e4lpOphc0bm6AvKz//4MuHESIeKKoxi3wnA==" - }, - "react-dnd": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-15.1.2.tgz", - "integrity": "sha512-EaSbMD9iFJDY/o48T3c8wn3uWU+2uxfFojhesZN3LhigJoAIvH2iOjxofSA9KbqhAKP6V9P853G6XG8JngKVtA==", - "requires": { - "@react-dnd/invariant": "3.0.1", - "@react-dnd/shallowequal": "3.0.1", - "dnd-core": "15.1.2", - "fast-deep-equal": "^3.1.3", - "hoist-non-react-statics": "^3.3.2" - } - }, - "react-dnd-html5-backend": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-15.1.3.tgz", - "integrity": "sha512-HH/8nOEmrrcRGHMqJR91FOwhnLlx5SRLXmsQwZT3IPcBjx88WT+0pWC5A4tDOYDdoooh9k+KMPvWfxooR5TcOA==", - "requires": { - "dnd-core": "15.1.2" - } - }, - "react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" - } - }, - "react-fast-compare": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", - "integrity": "sha512-suNP+J1VU1MWFKcyt7RtjiSWUjvidmQSlqu+eHslq+342xCbGTYmC0mEhPCOHxlW0CywylOC1u2DFAT+bv4dBw==" - }, - "react-google-recaptcha": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/react-google-recaptcha/-/react-google-recaptcha-2.1.0.tgz", - "integrity": "sha512-K9jr7e0CWFigi8KxC3WPvNqZZ47df2RrMAta6KmRoE4RUi7Ys6NmNjytpXpg4HI/svmQJLKR+PncEPaNJ98DqQ==", - "requires": { - "prop-types": "^15.5.0", - "react-async-script": "^1.1.1" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "react-lifecycles-compat": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", - "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" - }, - "react-modal": { - "version": "3.16.1", - "resolved": "https://registry.npmjs.org/react-modal/-/react-modal-3.16.1.tgz", - "integrity": "sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg==", - "requires": { - "exenv": "^1.2.0", - "prop-types": "^15.7.2", - "react-lifecycles-compat": "^3.0.0", - "warning": "^4.0.3" - } - }, - "react-property": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", - "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", - "dev": true, - "requires": { - "resolve": "^1.9.0" - } - }, - "redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", - "requires": { - "@babel/runtime": "^7.9.2" - } - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2" - } - }, - "regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==" - }, - "regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", - "dev": true, - "requires": { - "@babel/runtime": "^7.8.4" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" - } - }, - "regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, - "regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true - } - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true - }, - "renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "requires": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - } - } - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "requires": { - "resolve-from": "^5.0.0" - }, - "dependencies": { - "resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true - } - } - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "retry": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", - "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==" - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sanitize-html": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.3.tgz", - "integrity": "sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw==", - "requires": { - "deepmerge": "^4.2.2", - "escape-string-regexp": "^4.0.0", - "htmlparser2": "^6.0.0", - "is-plain-object": "^5.0.0", - "parse-srcset": "^1.0.2", - "postcss": "^8.3.11" - }, - "dependencies": { - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==" - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - } - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - } - } - }, - "sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, - "sass-loader": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", - "dev": true, - "requires": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - } - }, - "scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", - "requires": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" - } - }, - "schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - } - }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "requires": { - "node-forge": "^1" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "requires": { - "randombytes": "^2.1.0" - } - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dev": true, - "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true - }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - }, - "sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "requires": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" - }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - } - }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "requires": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-range": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", - "dev": true - }, - "string.prototype.matchall": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", - "integrity": "sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "regexp.prototype.flags": "^1.4.3", - "side-channel": "^1.0.4" - } - }, - "string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "dev": true - }, - "style-to-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.1.tgz", - "integrity": "sha512-RJ18Z9t2B02sYhZtfWKQq5uplVctgvjTfLWT7+Eb1zjUjIrWzX5SdlkwLGQozrqarTmEzJJ/YmdNJCUNI47elg==", - "requires": { - "style-to-object": "0.3.0" - } - }, - "style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", - "requires": { - "inline-style-parser": "0.1.1" - } - }, - "stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - } - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "requires": { - "@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" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true - }, - "terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", - "dev": true, - "requires": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", - "dev": true, - "requires": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "requires": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - } - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "tiny-warning": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", - "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" - }, - "tippy.js": { - "version": "6.3.7", - "resolved": "https://registry.npmjs.org/tippy.js/-/tippy.js-6.3.7.tgz", - "integrity": "sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==", - "requires": { - "@popperjs/core": "^2.9.0" - } - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", - "dev": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.1", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - } - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "twemoji": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-14.0.2.tgz", - "integrity": "sha512-BzOoXIe1QVdmsUmZ54xbEH+8AgtOKUiG53zO5vVP2iUu6h5u9lN15NcuS6te4OY96qx0H7JK9vjjl9WQbkTRuA==", - "requires": { - "fs-extra": "^8.0.1", - "jsonfile": "^5.0.0", - "twemoji-parser": "14.0.0", - "universalify": "^0.1.2" - } - }, - "twemoji-parser": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz", - "integrity": "sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA==" - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "typedarray-to-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", - "dev": true - }, - "ua-parser-js": { - "version": "0.7.32", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", - "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==" - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unhomoglyph": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz", - "integrity": "sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==" - }, - "unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true - }, - "unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "requires": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - } - }, - "unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", - "dev": true, - "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - } - } - }, - "util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true - }, - "warning": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", - "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", - "requires": { - "loose-envify": "^1.0.0" - } - }, - "watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "requires": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - } - }, - "wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "requires": { - "minimalistic-assert": "^1.0.0" - } - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", - "dev": true, - "requires": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, - "webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", - "dev": true, - "requires": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", - "colorette": "^2.0.14", - "commander": "^7.0.0", - "cross-spawn": "^7.0.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", - "webpack-merge": "^5.7.3" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - } - } - }, - "webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "requires": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - } - }, - "webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", - "dev": true, - "requires": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "requires": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - } - }, - "webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true - }, - "websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "requires": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - } - }, - "websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - } - }, - "wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, - "word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true - }, - "xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true - } } } From c4e973e83b39b1453ba2a4e0323ad92609641f30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:45:27 +0530 Subject: [PATCH 285/717] Bump mini-css-extract-plugin from 2.6.1 to 2.7.1 (#1003) Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.6.1 to 2.7.1. - [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases) - [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.6.1...v2.7.1) --- updated-dependencies: - dependency-name: mini-css-extract-plugin dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 830ab272..c658a927 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", - "mini-css-extract-plugin": "2.6.1", + "mini-css-extract-plugin": "2.7.1", "path-browserify": "1.0.1", "sass": "1.56.1", "sass-loader": "13.2.0", @@ -7895,9 +7895,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.1.tgz", - "integrity": "sha512-wd+SD57/K6DiV7jIR34P+s3uckTRuQvx0tKPcvjFlrEylk6P4mQ2KSWk1hblj1Kxaqok7LogKOieygXqBczNlg==", + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz", + "integrity": "sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" diff --git a/package.json b/package.json index d84df58d..364253c5 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", - "mini-css-extract-plugin": "2.6.1", + "mini-css-extract-plugin": "2.7.1", "path-browserify": "1.0.1", "sass": "1.56.1", "sass-loader": "13.2.0", From 347d23641bc1596558010fe2959e4ba3ecf2df6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:48:17 +0530 Subject: [PATCH 286/717] Bump softprops/action-gh-release from 0.1.14 to 0.1.15 (#1000) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 0.1.14 to 0.1.15. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/1e07f4398721186383de40550babbdf2b84acfc5...de2c0eb89ae2a093876385947365aca7b0e5f844) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 686b812a..f84a36c4 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -50,7 +50,7 @@ jobs: gpg --export | xxd -p echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz - name: Upload tagged release - uses: softprops/action-gh-release@1e07f4398721186383de40550babbdf2b84acfc5 + uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 with: files: | cinny-${{ steps.vars.outputs.tag }}.tar.gz From 603e4787946ef589ce2d1d8cd1a887b8a026749c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:48:48 +0530 Subject: [PATCH 287/717] Bump eslint from 8.27.0 to 8.29.0 (#1001) Bumps [eslint](https://github.com/eslint/eslint) from 8.27.0 to 8.29.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v8.27.0...v8.29.0) --- updated-dependencies: - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index c658a927..22e06f33 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.2", "css-minimizer-webpack-plugin": "4.2.2", - "eslint": "8.27.0", + "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", @@ -4895,9 +4895,9 @@ } }, "node_modules/eslint": { - "version": "8.27.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.27.0.tgz", - "integrity": "sha512-0y1bfG2ho7mty+SiILVf9PfuRA49ek4Nc60Wmmu62QlobNR+CeXa4xXIJgcuwSQgZiWaPH+5BDsctpIW0PR/wQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.29.0.tgz", + "integrity": "sha512-isQ4EEiyUjZFbEKvEGJKKGBwXtvXX+zJbkVKCgTuB9t/+jUBcy8avhkEwWJecI15BkRkOYmvIM5ynbhRjEkoeg==", "dev": true, "dependencies": { "@eslint/eslintrc": "^1.3.3", diff --git a/package.json b/package.json index 364253c5..9677e1a2 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "crypto-browserify": "3.12.0", "css-loader": "6.7.2", "css-minimizer-webpack-plugin": "4.2.2", - "eslint": "8.27.0", + "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", From fbf899465d49b7e3a97434e06f438335cae8cea6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:50:03 +0530 Subject: [PATCH 288/717] Bump eslint-plugin-react from 7.31.10 to 7.31.11 (#996) Bumps [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) from 7.31.10 to 7.31.11. - [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases) - [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md) - [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.31.10...v7.31.11) --- updated-dependencies: - dependency-name: eslint-plugin-react dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 36 +++++++++++++++++++++++++----------- package.json | 2 +- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/package-lock.json b/package-lock.json index 22e06f33..099fd9a4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-react": "7.31.10", + "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", @@ -2892,6 +2892,19 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.1.tgz", + "integrity": "sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.20.4", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.1.3" + } + }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -5117,25 +5130,26 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.31.10", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz", - "integrity": "sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==", + "version": "7.31.11", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.31.11.tgz", + "integrity": "sha512-TTvq5JsT5v56wPa9OYHzsrOlHzKZKjV+aLgS+55NJP/cuzdiQPC7PfYoUjMoxlffKtvijpk7vA/jmuqRb9nohw==", "dev": true, "dependencies": { - "array-includes": "^3.1.5", - "array.prototype.flatmap": "^1.3.0", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", "doctrine": "^2.1.0", "estraverse": "^5.3.0", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", - "object.entries": "^1.1.5", - "object.fromentries": "^2.0.5", - "object.hasown": "^1.1.1", - "object.values": "^1.1.5", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.3", "semver": "^6.3.0", - "string.prototype.matchall": "^4.0.7" + "string.prototype.matchall": "^4.0.8" }, "engines": { "node": ">=4" diff --git a/package.json b/package.json index 9677e1a2..b8cf1476 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "eslint-config-airbnb": "19.0.4", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", - "eslint-plugin-react": "7.31.10", + "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", From 63c065300641c2c81828b2eb8d0fa80a642a4baf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:52:45 +0530 Subject: [PATCH 289/717] Bump @khanacademy/simple-markdown from 0.8.5 to 0.8.6 (#992) Bumps [@khanacademy/simple-markdown](https://github.com/Khan/simple-markdown) from 0.8.5 to 0.8.6. - [Release notes](https://github.com/Khan/simple-markdown/releases) - [Commits](https://github.com/Khan/simple-markdown/commits) --- updated-dependencies: - dependency-name: "@khanacademy/simple-markdown" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 099fd9a4..5996ad42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", - "@khanacademy/simple-markdown": "0.8.5", + "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", @@ -2058,9 +2058,9 @@ } }, "node_modules/@khanacademy/simple-markdown": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.5.tgz", - "integrity": "sha512-xPLm0bBqdIMeNA/sjjD6T8YHT28vsyYVM8ewe6S2QkmVELHpj4XdLayVN6PHjBMoSfJXunfs17Nq32GR+j+PZQ==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.6.tgz", + "integrity": "sha512-mAUlR9lchzfqunR89pFvNI51jQKsMpJeWYsYWw0DQcUXczn/T/V6510utgvm7X0N3zN87j1SvuKk8cMbl9IAFw==", "dependencies": { "@types/react": ">=16.0.0" }, diff --git a/package.json b/package.json index b8cf1476..de5e797e 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "dependencies": { "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", - "@khanacademy/simple-markdown": "0.8.5", + "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.13", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", From c176ed8861c636c3b18b4a8c6b03324ebaa43c4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:54:02 +0530 Subject: [PATCH 290/717] Bump @babel/core from 7.20.2 to 7.20.5 (#997) Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.2 to 7.20.5. - [Release notes](https://github.com/babel/babel/releases) - [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md) - [Commits](https://github.com/babel/babel/commits/v7.20.5/packages/babel-core) --- updated-dependencies: - dependency-name: "@babel/core" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 60 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 31 insertions(+), 31 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5996ad42..832a4e61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.20.2", + "@babel/core": "7.20.5", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", @@ -113,21 +113,21 @@ } }, "node_modules/@babel/core": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz", - "integrity": "sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", + "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.2", + "@babel/generator": "^7.20.5", "@babel/helper-compilation-targets": "^7.20.0", "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.1", - "@babel/parser": "^7.20.2", + "@babel/helpers": "^7.20.5", + "@babel/parser": "^7.20.5", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2", + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -143,12 +143,12 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.4.tgz", - "integrity": "sha512-luCf7yk/cm7yab6CAW1aiFnmEfBJplb/JojV56MYEK7ziWfGmFlTfmL9Ehwfy4gFhbjBfWO1wj7/TuSbVNEEtA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", + "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", "dev": true, "dependencies": { - "@babel/types": "^7.20.2", + "@babel/types": "^7.20.5", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -490,14 +490,14 @@ } }, "node_modules/@babel/helpers": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz", - "integrity": "sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", + "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", "dev": true, "dependencies": { "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" @@ -518,9 +518,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", + "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -1763,19 +1763,19 @@ } }, "node_modules/@babel/traverse": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.1.tgz", - "integrity": "sha512-d3tN8fkVJwFLkHkBN479SOsw4DMZnz8cdbL/gvuDuzy3TS6Nfw80HuQqhw1pITbIruHyh7d1fMA47kWzmcUEGA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", + "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.1", + "@babel/generator": "^7.20.5", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.1", - "@babel/types": "^7.20.0", + "@babel/parser": "^7.20.5", + "@babel/types": "^7.20.5", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -1784,9 +1784,9 @@ } }, "node_modules/@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", + "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", "dev": true, "dependencies": { "@babel/helper-string-parser": "^7.19.4", diff --git a/package.json b/package.json index de5e797e..d77141d5 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.20.2", + "@babel/core": "7.20.5", "@babel/preset-env": "7.20.2", "@babel/preset-react": "7.18.6", "assert": "2.0.0", From bc9ff2337249defd92f0967188fc827f2878309e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 12:58:14 +0530 Subject: [PATCH 291/717] Bump matrix-js-sdk from 21.1.0 to 21.2.0 (#993) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 21.1.0 to 21.2.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v21.1.0...v21.2.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 41 +++++++++++++++++++++++++++++++++++------ package.json | 2 +- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 832a4e61..df8dbfaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "21.1.0", + "matrix-js-sdk": "21.2.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -2230,6 +2230,11 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, + "node_modules/@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + }, "node_modules/@types/express": { "version": "4.17.14", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", @@ -2369,6 +2374,11 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, + "node_modules/@types/sdp-transform": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/@types/sdp-transform/-/sdp-transform-2.4.5.tgz", + "integrity": "sha512-GVO0gnmbyO3Oxm2HdPsYUNcyihZE3GyCY8ysMYHuQGfLhGZq89Nm4lSzULWTzZoyHtg+VO/IdrnxZHPnPSGnAg==" + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -5423,7 +5433,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -7748,24 +7757,36 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { - "version": "21.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.1.0.tgz", - "integrity": "sha512-4HTEZKt/LlX4045H5JVACBMirPboRWM7E/OabaRCcBoEssgWrPw/z7am6FXH2ZRDw0xp50WhPjCNOGZqdf81Mg==", + "version": "21.2.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.2.0.tgz", + "integrity": "sha512-5aHWkWve+/5dmRJGIAzwe2hFNHX/2LBFWVqHh6YOTSViWlAbBxQsylBIhsNppgmHUN1YjBhvBlW206UnYCk6zg==", "dependencies": { "@babel/runtime": "^7.12.5", + "@types/sdp-transform": "^2.4.5", "another-json": "^0.2.0", "bs58": "^5.0.0", "content-type": "^1.0.4", "loglevel": "^1.7.1", - "matrix-events-sdk": "^0.0.1-beta.7", + "matrix-events-sdk": "0.0.1", + "matrix-widget-api": "^1.0.0", "p-retry": "4", "qs": "^6.9.6", + "sdp-transform": "^2.14.1", "unhomoglyph": "^1.0.6" }, "engines": { "node": ">=16.0.0" } }, + "node_modules/matrix-widget-api": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.1.1.tgz", + "integrity": "sha512-gNSgmgSwvOsOcWK9k2+tOhEMYBiIMwX95vMZu0JqY7apkM02xrOzUBuPRProzN8CnbIALH7e3GAhatF6QCNvtA==", + "dependencies": { + "@types/events": "^3.0.0", + "events": "^3.2.0" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -10138,6 +10159,14 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/sdp-transform": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz", + "integrity": "sha512-RjZyX3nVwJyCuTo5tGPx+PZWkDMCg7oOLpSlhjDdZfwUoNqG1mM8nyj31IGHyaPWXhjbP7cdK3qZ2bmkJ1GzRw==", + "bin": { + "sdp-verify": "checker.js" + } + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", diff --git a/package.json b/package.json index d77141d5..e2b398be 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "katex": "0.16.3", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "21.1.0", + "matrix-js-sdk": "21.2.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 97e7ba25a623f2b41c00edf40b2126ef57be4ea0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Dec 2022 14:26:33 +0530 Subject: [PATCH 292/717] Bump webpack-cli from 4.10.0 to 5.0.1 (#1002) Bumps [webpack-cli](https://github.com/webpack/webpack-cli) from 4.10.0 to 5.0.1. - [Release notes](https://github.com/webpack/webpack-cli/releases) - [Changelog](https://github.com/webpack/webpack-cli/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-cli/compare/webpack-cli@4.10.0...webpack-cli@5.0.1) --- updated-dependencies: - dependency-name: webpack-cli dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 93 +++++++++++++++++++++++------------------------ package.json | 2 +- 2 files changed, 46 insertions(+), 49 deletions(-) diff --git a/package-lock.json b/package-lock.json index df8dbfaa..ad94d93c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,7 +70,7 @@ "url": "0.11.0", "util": "0.12.5", "webpack": "5.75.0", - "webpack-cli": "4.10.0", + "webpack-cli": "5.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" }, @@ -2578,34 +2578,42 @@ } }, "node_modules/@webpack-cli/configtest": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz", - "integrity": "sha512-4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz", + "integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x", - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/info": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz", - "integrity": "sha512-e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", + "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", "dev": true, - "dependencies": { - "envinfo": "^7.7.3" + "engines": { + "node": ">=14.15.0" }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" } }, "node_modules/@webpack-cli/serve": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz", - "integrity": "sha512-oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz", + "integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==", "dev": true, + "engines": { + "node": ">=14.15.0" + }, "peerDependencies": { - "webpack-cli": "4.x.x" + "webpack": "5.x.x", + "webpack-cli": "5.x.x" }, "peerDependenciesMeta": { "webpack-dev-server": { @@ -6654,12 +6662,12 @@ } }, "node_modules/interpret": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", - "integrity": "sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", + "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, "engines": { - "node": ">= 0.10" + "node": ">=10.13.0" } }, "node_modules/ipaddr.js": { @@ -9597,15 +9605,15 @@ } }, "node_modules/rechoir": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz", - "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, "dependencies": { - "resolve": "^1.9.0" + "resolve": "^1.20.0" }, "engines": { - "node": ">= 0.10" + "node": ">= 10.13.0" } }, "node_modules/redux": { @@ -11287,44 +11295,42 @@ } }, "node_modules/webpack-cli": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz", - "integrity": "sha512-NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz", + "integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^1.2.0", - "@webpack-cli/info": "^1.5.0", - "@webpack-cli/serve": "^1.7.0", + "@webpack-cli/configtest": "^2.0.1", + "@webpack-cli/info": "^2.0.1", + "@webpack-cli/serve": "^2.0.1", "colorette": "^2.0.14", - "commander": "^7.0.0", + "commander": "^9.4.1", "cross-spawn": "^7.0.3", + "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", "import-local": "^3.0.2", - "interpret": "^2.2.0", - "rechoir": "^0.7.0", + "interpret": "^3.1.1", + "rechoir": "^0.8.0", "webpack-merge": "^5.7.3" }, "bin": { "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=10.13.0" + "node": ">=14.15.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "4.x.x || 5.x.x" + "webpack": "5.x.x" }, "peerDependenciesMeta": { "@webpack-cli/generators": { "optional": true }, - "@webpack-cli/migrate": { - "optional": true - }, "webpack-bundle-analyzer": { "optional": true }, @@ -11333,15 +11339,6 @@ } } }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/webpack-dev-middleware": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", diff --git a/package.json b/package.json index e2b398be..6ee75a8c 100644 --- a/package.json +++ b/package.json @@ -75,7 +75,7 @@ "url": "0.11.0", "util": "0.12.5", "webpack": "5.75.0", - "webpack-cli": "4.10.0", + "webpack-cli": "5.0.1", "webpack-dev-server": "4.11.1", "webpack-merge": "5.8.0" } From 52cbcb912831313407e77ac2e4a7e116f9e2ba9a Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Fri, 9 Dec 2022 13:05:02 +0530 Subject: [PATCH 293/717] Replace pull request action with one actively maintained (#1004) * Replace pull request action with one actively maintained * Add comment_tag to stop duplicate comments --- .github/workflows/deploy-pull-request.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 54d18148..bea205b8 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -42,12 +42,13 @@ jobs: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE3_ID }} timeout-minutes: 1 - - name: Edit PR Description - uses: Beakyn/gha-comment-pull-request@2167a7aee24f9e61ce76a23039f322e49a990409 + - name: Comment preview on PR + uses: thollander/actions-comment-pull-request@c22fb302208b7b170d252a61a505d2ea27245eff env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: - pull-request-number: ${{ steps.pr.outputs.id }} - description-message: | + pr_number: ${{ steps.pr.outputs.id }} + comment_tag: ${{ steps.pr.outputs.id }} + message: | Preview: ${{ steps.netlify.outputs.deploy-url }} ⚠️ Exercise caution. Use test accounts. ⚠️ \ No newline at end of file From bf900e74681705b904d1ef42db820e0ea6d7bb85 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:49:25 +0530 Subject: [PATCH 294/717] Bump sass from 1.56.1 to 1.56.2 (#1011) Bumps [sass](https://github.com/sass/dart-sass) from 1.56.1 to 1.56.2. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.56.1...1.56.2) --- updated-dependencies: - dependency-name: sass dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index ad94d93c..f7943d3a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,7 +63,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.7.1", "path-browserify": "1.0.1", - "sass": "1.56.1", + "sass": "1.56.2", "sass-loader": "13.2.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", @@ -10086,9 +10086,9 @@ } }, "node_modules/sass": { - "version": "1.56.1", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.1.tgz", - "integrity": "sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ==", + "version": "1.56.2", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.2.tgz", + "integrity": "sha512-ciEJhnyCRwzlBCB+h5cCPM6ie/6f8HrhZMQOf5vlU60Y1bI1rx5Zb0vlDZvaycHsg/MqFfF1Eq2eokAa32iw8w==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", diff --git a/package.json b/package.json index 6ee75a8c..bc64542f 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,7 @@ "html-webpack-plugin": "5.5.0", "mini-css-extract-plugin": "2.7.1", "path-browserify": "1.0.1", - "sass": "1.56.1", + "sass": "1.56.2", "sass-loader": "13.2.0", "stream-browserify": "3.0.0", "style-loader": "3.3.1", From 3c66a6a1c140e44ae2dc2cd73c682606d08c087e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:50:52 +0530 Subject: [PATCH 295/717] Bump @matrix-org/olm from 3.2.13 to 3.2.14 (#1010) Bumps @matrix-org/olm from 3.2.13 to 3.2.14. --- updated-dependencies: - dependency-name: "@matrix-org/olm" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index f7943d3a..4d8dfffe 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.6", - "@matrix-org/olm": "3.2.13", + "@matrix-org/olm": "3.2.14", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", "blurhash": "2.0.4", @@ -2076,9 +2076,9 @@ "dev": true }, "node_modules/@matrix-org/olm": { - "version": "3.2.13", - "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.13.tgz", - "integrity": "sha1-AQn96TvMYd74UfeYJsk4TAc7UXU=" + "version": "3.2.14", + "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz", + "integrity": "sha1-rNlsAKiB0PRi4fl6Vsc3QsjbyYQ=" }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", diff --git a/package.json b/package.json index bc64542f..46be0210 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.6", - "@matrix-org/olm": "3.2.13", + "@matrix-org/olm": "3.2.14", "@tippyjs/react": "4.2.6", "babel-polyfill": "6.26.0", "blurhash": "2.0.4", From 7606c9d3256f6aa45536039c64090d322ccd7ad0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:51:39 +0530 Subject: [PATCH 296/717] Bump katex from 0.16.3 to 0.16.4 (#1007) Bumps [katex](https://github.com/KaTeX/KaTeX) from 0.16.3 to 0.16.4. - [Release notes](https://github.com/KaTeX/KaTeX/releases) - [Changelog](https://github.com/KaTeX/KaTeX/blob/main/CHANGELOG.md) - [Commits](https://github.com/KaTeX/KaTeX/compare/v0.16.3...v0.16.4) --- updated-dependencies: - dependency-name: katex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4d8dfffe..1d318dee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,7 +23,7 @@ "flux": "4.0.3", "formik": "2.2.9", "html-react-parser": "3.0.4", - "katex": "0.16.3", + "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "21.2.0", @@ -7310,9 +7310,9 @@ } }, "node_modules/katex": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.3.tgz", - "integrity": "sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA==", + "version": "0.16.4", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.4.tgz", + "integrity": "sha512-WudRKUj8yyBeVDI4aYMNxhx5Vhh2PjpzQw1GRu/LVGqL4m1AxwD1GcUp0IMbdJaf5zsjtj8ghP0DOQRYhroNkw==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" diff --git a/package.json b/package.json index 46be0210..451439f8 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "flux": "4.0.3", "formik": "2.2.9", "html-react-parser": "3.0.4", - "katex": "0.16.3", + "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "21.2.0", From 868f2715888207bc9c7c85ee96a6f01744c7012c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:52:04 +0530 Subject: [PATCH 297/717] Bump nwtgck/actions-netlify from 1.2.4 to 2.0.0 (#1006) Bumps [nwtgck/actions-netlify](https://github.com/nwtgck/actions-netlify) from 1.2.4 to 2.0.0. - [Release notes](https://github.com/nwtgck/actions-netlify/releases) - [Changelog](https://github.com/nwtgck/actions-netlify/blob/develop/CHANGELOG.md) - [Commits](https://github.com/nwtgck/actions-netlify/compare/ac1cb16858bada08a9c71a81240a85cfc3f72913...5da65c9f74c7961c5501a3ba329b8d0912f39c03) --- updated-dependencies: - dependency-name: nwtgck/actions-netlify dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index bea205b8..d29c9ace 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -30,7 +30,7 @@ jobs: path: dist - name: Deploy to Netlify id: netlify - uses: nwtgck/actions-netlify@ac1cb16858bada08a9c71a81240a85cfc3f72913 + uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 with: publish-dir: dist deploy-message: "Deploy PR ${{ steps.pr.outputs.id }}" diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index edb79d86..e4778215 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -22,7 +22,7 @@ jobs: - name: Build app run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@ac1cb16858bada08a9c71a81240a85cfc3f72913 + uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 with: publish-dir: dist deploy-message: "Dev deploy ${{ github.sha }}" diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index f84a36c4..8e7179b9 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -21,7 +21,7 @@ jobs: - name: Build app run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@ac1cb16858bada08a9c71a81240a85cfc3f72913 + uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 with: publish-dir: dist deploy-message: "Prod deploy ${{ github.ref_name }}" From d54d1d964d804bdb3512477e5869f3631c5fb710 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:52:50 +0530 Subject: [PATCH 298/717] Bump mini-css-extract-plugin from 2.7.1 to 2.7.2 (#1008) Bumps [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) from 2.7.1 to 2.7.2. - [Release notes](https://github.com/webpack-contrib/mini-css-extract-plugin/releases) - [Changelog](https://github.com/webpack-contrib/mini-css-extract-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack-contrib/mini-css-extract-plugin/compare/v2.7.1...v2.7.2) --- updated-dependencies: - dependency-name: mini-css-extract-plugin dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d318dee..4be2392d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -61,7 +61,7 @@ "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", - "mini-css-extract-plugin": "2.7.1", + "mini-css-extract-plugin": "2.7.2", "path-browserify": "1.0.1", "sass": "1.56.2", "sass-loader": "13.2.0", @@ -7938,9 +7938,9 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.1.tgz", - "integrity": "sha512-viOoaUFy+Z2w43VsGPbtfwFrr0tKwDctK9dUofG5MBViYhD1noGFUzzDIVw0KPwCGUP+c7zqLxm+acuQs7zLzw==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", + "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", "dev": true, "dependencies": { "schema-utils": "^4.0.0" diff --git a/package.json b/package.json index 451439f8..24aa41b8 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "eslint-plugin-react-hooks": "4.6.0", "html-loader": "4.2.0", "html-webpack-plugin": "5.5.0", - "mini-css-extract-plugin": "2.7.1", + "mini-css-extract-plugin": "2.7.2", "path-browserify": "1.0.1", "sass": "1.56.2", "sass-loader": "13.2.0", From 5f9ea6c06a09c79c863505f8f0e26f7dbfbdc9a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Dec 2022 16:55:21 +0530 Subject: [PATCH 299/717] Bump matrix-js-sdk from 21.2.0 to 22.0.0 (#1009) Bumps [matrix-js-sdk](https://github.com/matrix-org/matrix-js-sdk) from 21.2.0 to 22.0.0. - [Release notes](https://github.com/matrix-org/matrix-js-sdk/releases) - [Changelog](https://github.com/matrix-org/matrix-js-sdk/blob/develop/CHANGELOG.md) - [Commits](https://github.com/matrix-org/matrix-js-sdk/compare/v21.2.0...v22.0.0) --- updated-dependencies: - dependency-name: matrix-js-sdk dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 4be2392d..95f19151 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "21.2.0", + "matrix-js-sdk": "22.0.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -7765,9 +7765,9 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-21.2.0.tgz", - "integrity": "sha512-5aHWkWve+/5dmRJGIAzwe2hFNHX/2LBFWVqHh6YOTSViWlAbBxQsylBIhsNppgmHUN1YjBhvBlW206UnYCk6zg==", + "version": "22.0.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-22.0.0.tgz", + "integrity": "sha512-mpKqeD3nCobjGiUiATUyEoP44n+AzDW5cSeBTIBY5fPhj0AkzLJhblHt40vzSOJazj8tT0PhsSzhEIR9hGzYGA==", "dependencies": { "@babel/runtime": "^7.12.5", "@types/sdp-transform": "^2.4.5", diff --git a/package.json b/package.json index 24aa41b8..918174d5 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "21.2.0", + "matrix-js-sdk": "22.0.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 7b95546b80f0043d4f50d5d22743cbad89279975 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 11 Dec 2022 17:56:00 +0530 Subject: [PATCH 300/717] Lock file maintenance (#1014) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 239 +++++++++++++++++++++++----------------------- 1 file changed, 122 insertions(+), 117 deletions(-) diff --git a/package-lock.json b/package-lock.json index 95f19151..0cc7914d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -104,9 +104,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz", - "integrity": "sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", + "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", "dev": true, "engines": { "node": ">=6.9.0" @@ -214,9 +214,9 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", + "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", @@ -235,13 +235,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", + "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "regexpu-core": "^5.2.1" }, "engines": { "node": ">=6.9.0" @@ -475,15 +475,15 @@ } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", + "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", "dev": true, "dependencies": { "@babel/helper-function-name": "^7.19.0", "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/traverse": "^7.20.5", + "@babel/types": "^7.20.5" }, "engines": { "node": ">=6.9.0" @@ -777,14 +777,14 @@ } }, "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", + "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", "dev": true, "dependencies": { "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, "engines": { @@ -1065,9 +1065,9 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", - "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", + "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1309,13 +1309,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", + "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.20.5", + "@babel/helper-plugin-utils": "^7.20.2" }, "engines": { "node": ">=6.9.0" @@ -1356,9 +1356,9 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", - "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", + "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.20.2" @@ -1451,13 +1451,13 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", + "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-plugin-utils": "^7.20.2", + "regenerator-transform": "^0.15.1" }, "engines": { "node": ">=6.9.0" @@ -1714,39 +1714,39 @@ } }, "node_modules/@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", + "integrity": "sha512-Q+8MqP7TiHMWzSfwiJwXCjyf4GYA4Dgw3emg/7xmwsdLJOZUp+nMqcOwOzzYheuM1rhDu8FSj2l0aoMygEuXuA==", "dependencies": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.1.tgz", - "integrity": "sha512-CGulbEDcg/ND1Im7fUNRZdGXmX2MTWVVZacQi/6DiKE5HNwZ3aVTm5PV4lO8HHz0B2h8WQyvKKjbX5XgTtydsg==", + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.20.6.tgz", + "integrity": "sha512-tqeujPiuEfcH067mx+7otTQWROVMKHXEaOQcAeNV5dDdbPWvPcFA8/W9LXw2NfjNmOetqLl03dfnG2WALPlsRQ==", "dev": true, "dependencies": { "core-js-pure": "^3.25.1", - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.13.11" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/runtime-corejs3/node_modules/regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==", + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==", "dev": true }, "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/@babel/template": { "version": "7.18.10", @@ -1830,9 +1830,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2332,9 +2332,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==", + "version": "18.11.13", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.13.tgz", + "integrity": "sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==", "dev": true }, "node_modules/@types/prop-types": { @@ -2355,9 +2355,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.0.25", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.25.tgz", - "integrity": "sha512-xD6c0KDT4m7n9uD4ZHi02lzskaiqcBxf4zi+tXZY98a04wvc0hi/TcCPC2FOESZi51Nd7tlUeOJY8RofL799/g==", + "version": "18.0.26", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", + "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2417,9 +2417,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.13", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.13.tgz", - "integrity": "sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==", + "version": "17.0.17", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", + "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -2797,9 +2797,9 @@ } }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -3476,9 +3476,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "version": "1.0.30001439", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", + "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", "dev": true, "funding": [ { @@ -3554,9 +3554,9 @@ } }, "node_modules/ci-info": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.6.1.tgz", - "integrity": "sha512-up5ggbaDqOqJ4UqLKZ2naVkyqSJQgJi5lwD6b6mM748ysrghDBX0bx/qJTUHzw7zu6Mq4gycviSF5hJnwceD8w==", + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", + "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", "dev": true, "engines": { "node": ">=8" @@ -4778,9 +4778,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.12.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", + "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -4826,9 +4826,9 @@ } }, "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", + "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", @@ -4837,6 +4837,7 @@ "function.prototype.name": "^1.1.5", "get-intrinsic": "^1.1.3", "get-symbol-description": "^1.0.0", + "gopd": "^1.0.1", "has": "^1.0.3", "has-property-descriptors": "^1.0.0", "has-symbols": "^1.0.3", @@ -4852,8 +4853,8 @@ "object.assign": "^4.1.4", "regexp.prototype.flags": "^1.4.3", "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", + "string.prototype.trimend": "^1.0.6", + "string.prototype.trimstart": "^1.0.6", "unbox-primitive": "^1.0.2" }, "engines": { @@ -5328,9 +5329,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.17.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", - "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "version": "13.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", + "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -5601,9 +5602,9 @@ } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", + "integrity": "sha512-eR2D+V9/ExcbF9ls441yIuN6TI2ED1Y2ZcA5BmMtJsOkWOFRJQ0Jt0g1UwqXJJVAb+V+umH5Dfr8oh4EVP7VVg==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -6319,18 +6320,18 @@ } }, "node_modules/html-minifier-terser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.0.0.tgz", - "integrity": "sha512-Adqk0b/pWKIQiGvEAuzPKpBKNHiwblr3QSGS7TTr6v+xXKV9AI2k4vWW+6Oytt6Z5SeBnfvYypKOnz8r75pz3Q==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", + "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", "dev": true, "dependencies": { "camel-case": "^4.1.2", "clean-css": "5.2.0", - "commander": "^9.4.0", - "entities": "^4.3.1", + "commander": "^9.4.1", + "entities": "^4.4.0", "param-case": "^3.0.4", "relateurl": "^0.2.7", - "terser": "^5.14.2" + "terser": "^5.15.1" }, "bin": { "html-minifier-terser": "cli.js" @@ -6562,9 +6563,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", + "integrity": "sha512-d2qQLzTJ9WxQftPAuEQpSPmKqzxePjzVbpAVv62AQ64NTL+wR4JkrVqR/LqFsFEUsHDAiId52mJteHDFuDkElA==", "dev": true, "engines": { "node": ">= 4" @@ -7221,10 +7222,14 @@ } }, "node_modules/js-sdsl": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", - "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", - "dev": true + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", + "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } }, "node_modules/js-tokens": { "version": "4.0.0", @@ -7357,12 +7362,12 @@ "dev": true }, "node_modules/language-tags": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", - "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.6.tgz", + "integrity": "sha512-HNkaCgM8wZgE/BZACeotAAgpL9FUjEnhgF0FVQMIgH//zqTPreLYMb3rWYkYAqPoF75Jwuycp1da7uz66cfFQg==", "dev": true, "dependencies": { - "language-subtag-registry": "~0.3.2" + "language-subtag-registry": "^0.3.20" } }, "node_modules/level-blobs": { @@ -7822,9 +7827,9 @@ } }, "node_modules/memfs": { - "version": "3.4.11", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.11.tgz", - "integrity": "sha512-GvsCITGAyDCxxsJ+X6prJexFQEhOCJaIlUbsAvjzSI5o5O7j2dle3jWvz5Z5aOdpOxW6ol3vI1+0ut+641F1+w==", + "version": "3.4.12", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", + "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", "dev": true, "dependencies": { "fs-monkey": "^1.0.3" @@ -8506,9 +8511,9 @@ "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" }, "node_modules/parse5": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", - "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", + "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", "dev": true, "dependencies": { "entities": "^4.4.0" @@ -9186,9 +9191,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -9648,9 +9653,9 @@ "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==" }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", + "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", "dev": true, "dependencies": { "@babel/runtime": "^7.8.4" @@ -10747,9 +10752,9 @@ } }, "node_modules/terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "version": "5.16.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", + "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", "dev": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", From cb88a6fd9cecff8bc326ffadce7194bb0a0ce2fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 09:19:20 +0530 Subject: [PATCH 301/717] Bump actions/checkout from 3.1.0 to 3.2.0 (#1017) Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.1.0...v3.2.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 5bbf2446..65ca34eb 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.2.0 - name: Setup node uses: actions/setup-node@v3.5.1 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 18617996..47dbfe32 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.2.0 - name: Build Docker image uses: docker/build-push-action@v3.2.0 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index 60178668..b417df10 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.2.0 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index e4778215..c0028c37 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.2.0 - name: Setup node uses: actions/setup-node@v3.5.1 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 8e7179b9..0d33d128 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.2.0 - name: Setup node uses: actions/setup-node@v3.5.1 with: @@ -64,7 +64,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v3.1.0 + uses: actions/checkout@v3.2.0 - name: Set up QEMU uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx From f7b48333df7a8b6461ed85ee361d313845170c93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 08:40:14 +0530 Subject: [PATCH 302/717] Bump sanitize-html from 2.7.3 to 2.8.0 (#1018) Bumps [sanitize-html](https://github.com/apostrophecms/sanitize-html) from 2.7.3 to 2.8.0. - [Release notes](https://github.com/apostrophecms/sanitize-html/releases) - [Changelog](https://github.com/apostrophecms/sanitize-html/blob/main/CHANGELOG.md) - [Commits](https://github.com/apostrophecms/sanitize-html/compare/2.7.3...2.8.0) --- updated-dependencies: - dependency-name: sanitize-html dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 76 ++++------------------------------------------- package.json | 2 +- 2 files changed, 6 insertions(+), 72 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0cc7914d..c73fd481 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", - "sanitize-html": "2.7.3", + "sanitize-html": "2.8.0", "tippy.js": "6.3.7", "twemoji": "14.0.2" }, @@ -9993,13 +9993,13 @@ "dev": true }, "node_modules/sanitize-html": { - "version": "2.7.3", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.7.3.tgz", - "integrity": "sha512-jMaHG29ak4miiJ8wgqA1849iInqORgNv7SLfSw9LtfOhEUQ1C0YHKH73R+hgyufBW9ZFeJrb057k9hjlfBCVlw==", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.8.0.tgz", + "integrity": "sha512-ZsGyc6avnqgvEm3eMKrcy8xa7WM1MrGrfkGsUgQee2CU+vg3PCfNCexXwBDF/6dEPvaQ4k/QqRjnYKHL8xgNjg==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", - "htmlparser2": "^6.0.0", + "htmlparser2": "^8.0.0", "is-plain-object": "^5.0.0", "parse-srcset": "^1.0.2", "postcss": "^8.3.11" @@ -10013,54 +10013,6 @@ "node": ">=0.10.0" } }, - "node_modules/sanitize-html/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/sanitize-html/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/sanitize-html/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/sanitize-html/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/sanitize-html/node_modules/escape-string-regexp": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", @@ -10072,24 +10024,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/sanitize-html/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, "node_modules/sass": { "version": "1.56.2", "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.2.tgz", diff --git a/package.json b/package.json index 918174d5..3ff04ccc 100644 --- a/package.json +++ b/package.json @@ -41,7 +41,7 @@ "react-dom": "17.0.2", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", - "sanitize-html": "2.7.3", + "sanitize-html": "2.8.0", "tippy.js": "6.3.7", "twemoji": "14.0.2" }, From eeac5c6c45f960779f91695c5cacd8682b1b9002 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 08:45:11 +0530 Subject: [PATCH 303/717] Update nginx Docker tag to v1.23.3 (#1019) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 2b606ac2..968ca1d1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,7 +10,7 @@ RUN npm run build ## App -FROM nginx:1.23.2-alpine +FROM nginx:1.23.3-alpine COPY --from=builder /src/dist /app From e93511fde7922958e5c8e324d0bbb76fa144b747 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 08:51:14 +0530 Subject: [PATCH 304/717] Lock file maintenance (#1020) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 58 +++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/package-lock.json b/package-lock.json index c73fd481..39b592c0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1830,9 +1830,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -2236,13 +2236,13 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, "node_modules/@types/express": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", - "integrity": "sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", + "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", "dev": true, "dependencies": { "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.18", + "@types/express-serve-static-core": "^4.17.31", "@types/qs": "*", "@types/serve-static": "*" } @@ -2332,9 +2332,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "18.11.13", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.13.tgz", - "integrity": "sha512-IASpMGVcWpUsx5xBOrxMj7Bl8lqfuTY7FKAnPmu5cHkfQVWF8GulWS1jbRqA934qZL35xh5xN/+Xe/i26Bod4w==", + "version": "18.11.15", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", + "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==", "dev": true }, "node_modules/@types/prop-types": { @@ -2982,9 +2982,9 @@ } }, "node_modules/axe-core": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.5.2.tgz", - "integrity": "sha512-u2MVsXfew5HBvjsczCv+xlwdNnB1oQR9HlAcsejZttNjKKSkeDNVwB1vMThIUIFI9GoT57Vtk8iQLwqOfAkboA==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.0.tgz", + "integrity": "sha512-L3ZNbXPTxMrl0+qTXAzn9FBRvk5XdO56K8CvcCKtlxv44Aw2w2NCclGuvCWxHPw1Riiq3ncP/sxFYj2nUqdoTw==", "dev": true, "engines": { "node": ">=4" @@ -5329,9 +5329,9 @@ } }, "node_modules/eslint/node_modules/globals": { - "version": "13.18.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.18.0.tgz", - "integrity": "sha512-/mR4KI8Ps2spmoc0Ulu9L7agOF0du1CZNQ3dke8yItYlyKNmGrkONemBbd6V8UTc1Wgcqn21t3WYB7dbRmh6/A==", + "version": "13.19.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz", + "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==", "dev": true, "dependencies": { "type-fest": "^0.20.2" @@ -6070,9 +6070,9 @@ } }, "node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", + "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", @@ -6649,12 +6649,12 @@ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", + "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", + "get-intrinsic": "^1.1.3", "has": "^1.0.3", "side-channel": "^1.0.4" }, @@ -8143,9 +8143,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", + "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==", "dev": true }, "node_modules/normalize-path": { @@ -8735,9 +8735,9 @@ } }, "node_modules/postcss": { - "version": "8.4.19", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.19.tgz", - "integrity": "sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==", + "version": "8.4.20", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", + "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", "funding": [ { "type": "opencollective", From 63cb56481896e65358e96f4c8d8e103ae7e83283 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 14 Dec 2022 10:47:10 +0530 Subject: [PATCH 305/717] chore: update netlify site id secrets --- .github/workflows/build-pull-request.yml | 6 +++--- .github/workflows/deploy-pull-request.yml | 6 ++++-- .github/workflows/netlify-dev.yml | 8 ++++---- .github/workflows/prod-deploy.yml | 8 ++++---- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 65ca34eb..5eac02eb 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -1,4 +1,4 @@ -name: 'Build pull request' +name: Build pull request on: pull_request: @@ -6,7 +6,7 @@ on: jobs: build-pull-request: - name: 'Build pull request' + name: Build pull request runs-on: ubuntu-latest env: PR_NUMBER: ${{github.event.number}} @@ -17,7 +17,7 @@ jobs: uses: actions/setup-node@v3.5.1 with: node-version: 18.12.1 - cache: 'npm' + cache: "npm" - name: Install dependencies run: npm ci - name: Build app diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index d29c9ace..ab54f8df 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -1,11 +1,13 @@ name: Deploy PR to Netlify + on: workflow_run: workflows: ["Build pull request"] types: [completed] + jobs: deploy-pull-request: - name: 'Deploy pull request' + name: Deploy pull request runs-on: ubuntu-latest permissions: contents: read @@ -40,7 +42,7 @@ jobs: enable-commit-comment: false env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE3_ID }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_PR_CINNY }} timeout-minutes: 1 - name: Comment preview on PR uses: thollander/actions-comment-pull-request@c22fb302208b7b170d252a61a505d2ea27245eff diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index c0028c37..6f26247b 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -1,4 +1,4 @@ -name: 'Deploy to Netlify (dev)' +name: Deploy to Netlify (dev) on: push: @@ -7,7 +7,7 @@ on: jobs: deploy-to-netlify: - name: 'Deploy to Netlify' + name: Deploy to Netlify runs-on: ubuntu-latest steps: - name: Checkout repository @@ -16,7 +16,7 @@ jobs: uses: actions/setup-node@v3.5.1 with: node-version: 18.12.1 - cache: 'npm' + cache: "npm" - name: Install dependencies run: npm ci - name: Build app @@ -33,5 +33,5 @@ jobs: github-deployment-description: 'Nightly deployment on each commit to dev branch' env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE2_ID }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_DEV }} timeout-minutes: 1 diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 0d33d128..fa09008a 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -1,4 +1,4 @@ -name: 'Production deploy' +name: Production deploy on: release: @@ -6,7 +6,7 @@ on: jobs: deploy-and-tarball: - name: 'Netlify deploy and tarball' + name: Netlify deploy and tarball runs-on: ubuntu-latest steps: - name: Checkout repository @@ -15,7 +15,7 @@ jobs: uses: actions/setup-node@v3.5.1 with: node-version: 18.12.1 - cache: 'npm' + cache: "npm" - name: Install dependencies run: npm ci - name: Build app @@ -32,7 +32,7 @@ jobs: github-deployment-description: 'Stable deployment on each release' env: NETLIFY_AUTH_TOKEN: ${{ secrets.NETLIFY_AUTH_TOKEN }} - NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID }} + NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_APP }} timeout-minutes: 1 - name: Get version from tag id: vars From 899a89cb3ba4d9749e0b4264bf22aece34554794 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 20 Dec 2022 20:47:51 +0530 Subject: [PATCH 306/717] Replace Webpack to Vite (#1023) * Add vite, typescript and prettier * Configure vite * Fix tsconfig error * Fix manifest json * Move manifest json to root * Bug fix * Move back manifest json to public --- .eslintignore | 3 - .eslintrc.js | 35 +- .prettierignore | 6 + .prettierrc.json | 4 + .vscode/extensions.json | 3 + .vscode/settings.json | 5 + index.html | 101 + package-lock.json | 8266 ++++---------------------------------- package.json | 46 +- public/index.html | 50 - public/manifest.json | 20 +- src/client/initMatrix.js | 5 +- src/index.jsx | 5 +- tsconfig.json | 14 + vite.config.js | 44 + webpack.common.js | 66 - webpack.dev.js | 27 - webpack.prod.js | 39 - 18 files changed, 1111 insertions(+), 7628 deletions(-) create mode 100644 .prettierignore create mode 100644 .prettierrc.json create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 index.html delete mode 100644 public/index.html create mode 100644 tsconfig.json create mode 100644 vite.config.js delete mode 100644 webpack.common.js delete mode 100644 webpack.dev.js delete mode 100644 webpack.prod.js diff --git a/.eslintignore b/.eslintignore index 8ace574b..4a5ac437 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,5 +1,2 @@ -webpack.common.js -webpack.dev.js -webpack.prod.js experiment node_modules \ No newline at end of file diff --git a/.eslintrc.js b/.eslintrc.js index 3dd60b58..e8f9224e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,25 +4,56 @@ module.exports = { es2021: true, }, extends: [ - 'plugin:react/recommended', + "eslint:recommended", + "plugin:react/recommended", + "plugin:react-hooks/recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", 'airbnb', + 'prettier', ], + parser: "@typescript-eslint/parser", parserOptions: { ecmaFeatures: { jsx: true, }, - ecmaVersion: 12, + ecmaVersion: 'latest', sourceType: 'module', }, plugins: [ 'react', + '@typescript-eslint' ], rules: { 'linebreak-style': 0, 'no-underscore-dangle': 0, + + "import/prefer-default-export": "off", + "import/extensions": "off", + "import/no-unresolved": "off", + "import/no-extraneous-dependencies": [ + "error", + { + devDependencies: true, + }, + ], + 'react/no-unstable-nested-components': [ 'error', { allowAsProps: true }, ], + "react/jsx-filename-extension": [ + "error", + { + extensions: [".tsx", ".jsx"], + }, + ], + + "react/require-default-props": "off", + "react/jsx-props-no-spreading": "off", + "react-hooks/rules-of-hooks": "error", + "react-hooks/exhaustive-deps": "error", + + "@typescript-eslint/no-unused-vars": "error", }, }; diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..bc876b6c --- /dev/null +++ b/.prettierignore @@ -0,0 +1,6 @@ +dist +node_modules +package.json +package-lock.json +LICENSE +README.md \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 00000000..5ac85e27 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,4 @@ +{ + "printWidth": 100, + "singleQuote": true +} diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..1d7ac851 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..8272ea1e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "typescript.tsdk": "node_modules/typescript/lib" +} diff --git a/index.html b/index.html new file mode 100644 index 00000000..af1a6268 --- /dev/null +++ b/index.html @@ -0,0 +1,101 @@ + + + + + + + Cinny + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + diff --git a/package-lock.json b/package-lock.json index 39b592c0..b60abb5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,6 @@ "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", "@tippyjs/react": "4.2.6", - "babel-polyfill": "6.26.0", "blurhash": "2.0.4", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", @@ -41,38 +40,24 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.20.5", - "@babel/preset-env": "7.20.2", - "@babel/preset-react": "7.18.6", - "assert": "2.0.0", - "babel-loader": "8.3.0", - "browserify-fs": "1.0.0", - "buffer": "6.0.3", - "clean-webpack-plugin": "4.0.0", - "copy-webpack-plugin": "11.0.0", - "crypto-browserify": "3.12.0", - "css-loader": "6.7.2", - "css-minimizer-webpack-plugin": "4.2.2", + "@rollup/plugin-wasm": "6.1.1", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.9", + "@typescript-eslint/eslint-plugin": "5.46.1", + "@typescript-eslint/parser": "5.46.1", + "@vitejs/plugin-react": "3.0.0", "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", + "eslint-config-prettier": "8.5.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", - "html-loader": "4.2.0", - "html-webpack-plugin": "5.5.0", - "mini-css-extract-plugin": "2.7.2", - "path-browserify": "1.0.1", + "prettier": "2.8.1", "sass": "1.56.2", - "sass-loader": "13.2.0", - "stream-browserify": "3.0.0", - "style-loader": "3.3.1", - "url": "0.11.0", - "util": "0.12.5", - "webpack": "5.75.0", - "webpack-cli": "5.0.1", - "webpack-dev-server": "4.11.1", - "webpack-merge": "5.8.0" + "typescript": "4.9.4", + "vite": "4.0.1", + "vite-plugin-static-copy": "0.13.0" }, "engines": { "node": ">=16.0.0" @@ -170,31 +155,6 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-compilation-targets": { "version": "7.20.0", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", @@ -213,60 +173,6 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.5.tgz", - "integrity": "sha512-3RCdA/EmEaikrhayahwToF0fpweU/8o2p8vhc1c/1kftHOdTKuC65kik/TLc+qfbS8JKw4qqJbne4ovICDhmww==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.20.5.tgz", - "integrity": "sha512-m68B1lkg3XDGX5yCvGO0kPx3v9WIYLnzjKfPcQiwntEQa5ZeRkPmo2X/ISJc8qxWGfwUr+kvZAeEzAwLec2r2w==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.2.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", - "debug": "^4.1.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" - }, - "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", @@ -276,18 +182,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-function-name": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", @@ -313,18 +207,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-module-imports": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", @@ -356,18 +238,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-plugin-utils": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", @@ -377,40 +247,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-simple-access": { "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", @@ -423,18 +259,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helper-split-export-declaration": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", @@ -474,21 +298,6 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz", - "integrity": "sha512-bYMxIWK5mh+TgXGVqAtnu5Yn1un+v8DDZtqyzKRLUzrh70Eal2O3aZ7aPYiMADO4uKlkzOiRiZ6GX5q3qxvW9Q==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" - }, - "engines": { - "node": ">=6.9.0" - } - }, "node_modules/@babel/helpers": { "version": "7.20.6", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", @@ -529,10 +338,10 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", + "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.18.6" @@ -540,343 +349,14 @@ "engines": { "node": ">=6.9.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.13.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", - "dev": true, - "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.12.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", - "dev": true, - "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.20.5.tgz", - "integrity": "sha512-Vq7b9dUA12ByzB4EjQTPo25sFhY+08pQDBSZRtUAkj7lb7jahaHR5igera16QZ+3my1nYR4dKsNdYj5IjPHilQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", "dev": true, "dependencies": { "@babel/helper-plugin-utils": "^7.19.0" @@ -888,831 +368,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", - "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.5.tgz", - "integrity": "sha512-WvpEIW9Cbj9ApF3yJCjIEEf1EiNJLtXagOrL5LNWEZOo3jv8pmPoYTSNJQvqej8OavVlgOoOPw6/htGZro6IkA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", - "dev": true, - "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.20.5.tgz", - "integrity": "sha512-mOW4tTzi5iTLnw+78iEq3gr8Aoq4WNRGpmSlrogqaiCBoR1HFhpU4JkpQFOHfeYx3ReVIFWOQJS4aZBRvuZ6mA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.20.5", - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.5.tgz", - "integrity": "sha512-h7plkOmcndIUWXZFLgpbrh2+fXAi47zcUX7IrOQuZdLD0I0KvjJ6cvo3BEcAOsDOcZhVKGJqv07mkSqK0y2isQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz", - "integrity": "sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.19.0.tgz", - "integrity": "sha512-UVEvX3tXie3Szm3emi1+G63jyw1w5IcMY0FSKM+CRnKRI5Mr1YbCNgsSTwoTwKphQEG9P+QqmuRFneJPZuHNhg==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/plugin-syntax-jsx": "^7.18.6", - "@babel/types": "^7.19.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", - "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", - "dev": true, - "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz", - "integrity": "sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.20.5.tgz", - "integrity": "sha512-kW/oO7HPBtntbsahzQ0qSE3tFvkFwnbozz3NWFhLGqH75vLEg+sCGngLlhVkePlCs3Jv0dBBHDzCHxNiFAQKCQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2", - "regenerator-transform": "^0.15.1" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/preset-react": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.18.6.tgz", - "integrity": "sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-transform-react-display-name": "^7.18.6", - "@babel/plugin-transform-react-jsx": "^7.18.6", - "@babel/plugin-transform-react-jsx-development": "^7.18.6", - "@babel/plugin-transform-react-pure-annotations": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/runtime": { "version": "7.20.6", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.6.tgz", @@ -1797,13 +452,356 @@ "node": ">=6.9.0" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@esbuild/android-arm": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.9.tgz", + "integrity": "sha512-kW5ccqWHVOOTGUkkJbtfoImtqu3kA1PFkivM+9QPFSHphPfPBlBalX9eDRqPK+wHCqKhU48/78T791qPgC9e9A==", + "cpu": [ + "arm" + ], "dev": true, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">=10.0.0" + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.9.tgz", + "integrity": "sha512-ndIAZJUeLx4O+4AJbFQCurQW4VRUXjDsUvt1L+nP8bVELOWdmdCEOtlIweCUE6P+hU0uxYbEK2AEP0n5IVQvhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.9.tgz", + "integrity": "sha512-UbMcJB4EHrAVOnknQklREPgclNU2CPet2h+sCBCXmF2mfoYWopBn/CfTfeyOkb/JglOcdEADqAljFndMKnFtOw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.9.tgz", + "integrity": "sha512-d7D7/nrt4CxPul98lx4PXhyNZwTYtbdaHhOSdXlZuu5zZIznjqtMqLac8Bv+IuT6SVHiHUwrkL6ywD7mOgLW+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.9.tgz", + "integrity": "sha512-LZc+Wlz06AkJYtwWsBM3x2rSqTG8lntDuftsUNQ3fCx9ZttYtvlDcVtgb+NQ6t9s6K5No5zutN3pcjZEC2a4iQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.9.tgz", + "integrity": "sha512-gIj0UQZlQo93CHYouHKkpzP7AuruSaMIm1etcWIxccFEVqCN1xDr6BWlN9bM+ol/f0W9w3hx3HDuEwcJVtGneQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.9.tgz", + "integrity": "sha512-GNors4vaMJ7lzGOuhzNc7jvgsQZqErGA8rsW+nck8N1nYu86CvsJW2seigVrQQWOV4QzEP8Zf3gm+QCjA2hnBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.9.tgz", + "integrity": "sha512-cNx1EF99c2t1Ztn0lk9N+MuwBijGF8mH6nx9GFsB3e0lpUpPkCE/yt5d+7NP9EwJf5uzqdjutgVYoH1SNqzudA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.9.tgz", + "integrity": "sha512-YPxQunReYp8RQ1FvexFrOEqqf+nLbS3bKVZF5FRT2uKM7Wio7BeATqAwO02AyrdSEntt3I5fhFsujUChIa8CZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.9.tgz", + "integrity": "sha512-zb12ixDIKNwFpIqR00J88FFitVwOEwO78EiUi8wi8FXlmSc3GtUuKV/BSO+730Kglt0B47+ZrJN1BhhOxZaVrw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.9.tgz", + "integrity": "sha512-X8te4NLxtHiNT6H+4Pfm5RklzItA1Qy4nfyttihGGX+Koc53Ar20ViC+myY70QJ8PDEOehinXZj/F7QK3A+MKQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.9.tgz", + "integrity": "sha512-ZqyMDLt02c5smoS3enlF54ndK5zK4IpClLTxF0hHfzHJlfm4y8IAkIF8LUW0W7zxcKy7oAwI7BRDqeVvC120SA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.9.tgz", + "integrity": "sha512-k+ca5W5LDBEF3lfDwMV6YNXwm4wEpw9krMnNvvlNz3MrKSD2Eb2c861O0MaKrZkG/buTQAP4vkavbLwgIe6xjg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.9.tgz", + "integrity": "sha512-GuInVdogjmg9DhgkEmNipHkC+3tzkanPJzgzTC2ihsvrruLyFoR1YrTGixblNSMPudQLpiqkcwGwwe0oqfrvfA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.9.tgz", + "integrity": "sha512-49wQ0aYkvwXonGsxc7LuuLNICMX8XtO92Iqmug5Qau0kpnV6SP34jk+jIeu4suHwAbSbRhVFtDv75yRmyfQcHw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.9.tgz", + "integrity": "sha512-Nx4oKEAJ6EcQlt4dK7qJyuZUoXZG7CAeY22R7rqZijFzwFfMOD+gLP56uV7RrV86jGf8PeRY8TBsRmOcZoG42w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.9.tgz", + "integrity": "sha512-d0WnpgJ+FTiMZXEQ1NOv9+0gvEhttbgKEvVqWWAtl1u9AvlspKXbodKHzQ5MLP6YV1y52Xp+p8FMYqj8ykTahg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.9.tgz", + "integrity": "sha512-jccK11278dvEscHFfMk5EIPjF4wv1qGD0vps7mBV1a6TspdR36O28fgPem/SA/0pcsCPHjww5ouCLwP+JNAFlw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.9.tgz", + "integrity": "sha512-OetwTSsv6mIDLqN7I7I2oX9MmHGwG+AP+wKIHvq+6sIHwcPPJqRx+DJB55jy9JG13CWcdcQno/7V5MTJ5a0xfQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.9.tgz", + "integrity": "sha512-tKSSSK6unhxbGbHg+Cc+JhRzemkcsX0tPBvG0m5qsWbkShDK9c+/LSb13L18LWVdOQZwuA55Vbakxmt6OjBDOQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.9.tgz", + "integrity": "sha512-ZTQ5vhNS5gli0KK8I6/s6+LwXmNEfq1ftjnSVyyNm33dBw8zDpstqhGXYUbZSWWLvkqiRRjgxgmoncmi6Yy7Ng==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.9.tgz", + "integrity": "sha512-C4ZX+YFIp6+lPrru3tpH6Gaapy8IBRHw/e7l63fzGDhn/EaiGpQgbIlT5paByyy+oMvRFQoxxyvC4LE0AjJMqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, "node_modules/@eslint/eslintrc": { @@ -1887,105 +885,6 @@ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "dev": true }, - "node_modules/@jest/schemas": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.0.0.tgz", - "integrity": "sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==", - "dev": true, - "dependencies": { - "@sinclair/typebox": "^0.24.1" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.3.1.tgz", - "integrity": "sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==", - "dev": true, - "dependencies": { - "@jest/schemas": "^29.0.0", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/@jest/types/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/@jest/types/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/@jest/types/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/@jest/types/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jest/types/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -2017,30 +916,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" - } - }, - "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", @@ -2069,12 +944,6 @@ "react-dom": "16.14.0" } }, - "node_modules/@leichtgewicht/ip-codec": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", - "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", - "dev": true - }, "node_modules/@matrix-org/olm": { "version": "3.2.14", "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz", @@ -2139,11 +1008,22 @@ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" }, - "node_modules/@sinclair/typebox": { - "version": "0.24.51", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.24.51.tgz", - "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", - "dev": true + "node_modules/@rollup/plugin-wasm": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.1.1.tgz", + "integrity": "sha512-dccyb8OvtpY21KiYjaNmibWlQJd/kBg+IVP24x9l1dsIRXBmGqLt+wsPjU296FNO8ap0SSEsTpi/7AfrlvQvBQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } }, "node_modules/@tippyjs/react": { "version": "4.2.6", @@ -2157,156 +1037,11 @@ "react-dom": ">=16.8" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", - "dev": true, - "dependencies": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "node_modules/@types/bonjour": { - "version": "3.5.10", - "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", - "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/connect-history-api-fallback": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", - "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", - "dev": true, - "dependencies": { - "@types/express-serve-static-core": "*", - "@types/node": "*" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", - "dev": true - }, "node_modules/@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, - "node_modules/@types/express": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.15.tgz", - "integrity": "sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ==", - "dev": true, - "dependencies": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "^4.17.31", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "node_modules/@types/express-serve-static-core": { - "version": "4.17.31", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.31.tgz", - "integrity": "sha512-DxMhY+NAsTwMMFHBTtJFNp5qiHKJ7TeqOo23zVEM9alT1Ml27Q3xcTH0xwxn7Q0BbMcVEJOs/7aQtUWupUQN3Q==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-oh/6byDPnL1zeNXFrDXFLyZjkr1MsBG667IM792caf1L2UPOOMf65NFzjUH/ltyfwjAGfs1rsX1eftK0jC/KIg==", - "dev": true - }, - "node_modules/@types/http-proxy": { - "version": "1.17.9", - "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", - "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", - "dev": true - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dev": true, - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -2319,41 +1054,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, - "node_modules/@types/mime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz", - "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==", - "dev": true - }, - "node_modules/@types/minimatch": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", - "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.11.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.15.tgz", - "integrity": "sha512-VkhBbVo2+2oozlkdHXLrb3zjsRkpdnaU2bXmX8Wgle3PUi569eLRaHGlgETQHR7lLL1w7GiG3h9SnePhxNDecw==", - "dev": true - }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, - "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", - "dev": true - }, - "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", - "dev": true - }, "node_modules/@types/react": { "version": "18.0.26", "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", @@ -2364,6 +1069,15 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-dom": { + "version": "18.0.9", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", + "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", @@ -2379,289 +1093,283 @@ "resolved": "https://registry.npmjs.org/@types/sdp-transform/-/sdp-transform-2.4.5.tgz", "integrity": "sha512-GVO0gnmbyO3Oxm2HdPsYUNcyihZE3GyCY8ysMYHuQGfLhGZq89Nm4lSzULWTzZoyHtg+VO/IdrnxZHPnPSGnAg==" }, - "node_modules/@types/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", - "dev": true, - "dependencies": { - "@types/express": "*" - } - }, - "node_modules/@types/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==", - "dev": true, - "dependencies": { - "@types/mime": "*", - "@types/node": "*" - } - }, - "node_modules/@types/sockjs": { - "version": "0.3.33", - "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", - "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "8.5.3", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", - "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yargs": { - "version": "17.0.17", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.17.tgz", - "integrity": "sha512-72bWxFKTK6uwWJAVT+3rF6Jo6RTojiJ27FQo8Rf60AL+VZbzoVPnMFhKsUnbjR8A3BTCYQ7Mv3hnl8T0A+CX9g==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "node_modules/@types/semver": { + "version": "7.3.13", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", + "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, - "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", + "integrity": "sha512-YpzNv3aayRBwjs4J3oz65eVLXc9xx0PDbIRisHj+dYhvBn02MjYOD96P8YGiWEIFBrojaUjxvkaUpakD82phsA==", "dev": true, "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz", - "integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==", - "dev": true, + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/type-utils": "5.46.1", + "@typescript-eslint/utils": "5.46.1", + "debug": "^4.3.4", + "ignore": "^5.2.0", + "natural-compare-lite": "^1.4.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, "engines": { - "node": ">=14.15.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", - "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz", - "integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" }, "peerDependenciesMeta": { - "webpack-dev-server": { + "typescript": { "optional": true } } }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", "dev": true, "dependencies": { - "xtend": "~3.0.0" - } - }, - "node_modules/abstract-leveldown/node_modules/xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": ">= 0.6" + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.46.1.tgz", + "integrity": "sha512-RelQ5cGypPh4ySAtfIMBzBGyrNerQcmfA1oJvPj5f+H4jI59rl9xxpn4bonC0tQvUKOEN7eGBFWxFLK3Xepneg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/typescript-estree": "5.46.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.46.1.tgz", + "integrity": "sha512-iOChVivo4jpwUdrJZyXSMrEIM/PvsbbDOX1y3UCKjSgWn+W89skxWaYXACQfxmIGhPVpRWK/VWPYc+bad6smIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/visitor-keys": "5.46.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.46.1.tgz", + "integrity": "sha512-V/zMyfI+jDmL1ADxfDxjZ0EMbtiVqj8LUGPAGyBkXXStWmCUErMpW873zEHsyguWCuq2iN4BrlWUkmuVj84yng==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.46.1", + "@typescript-eslint/utils": "5.46.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.46.1.tgz", + "integrity": "sha512-Z5pvlCaZgU+93ryiYUwGwLl9AQVB/PQ1TsJ9NZ/gHzZjN7g9IAn6RSDkpCV8hqTwAiaj6fmCcKSQeBPlIpW28w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.46.1.tgz", + "integrity": "sha512-j9W4t67QiNp90kh5Nbr1w92wzt+toiIsaVPnEblB2Ih2U9fqBTyqV9T3pYWZBRt6QoMh/zVWP59EpuCjc4VRBg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/visitor-keys": "5.46.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.46.1.tgz", + "integrity": "sha512-RBdBAGv3oEpFojaCYT4Ghn4775pdjvwfDOfQ2P6qzNVgQOVrnSPe5/Pb88kv7xzYQjoio0eKHKB9GJ16ieSxvA==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@types/semver": "^7.3.12", + "@typescript-eslint/scope-manager": "5.46.1", + "@typescript-eslint/types": "5.46.1", + "@typescript-eslint/typescript-estree": "5.46.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/@typescript-eslint/utils/node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.46.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.46.1.tgz", + "integrity": "sha512-jczZ9noovXwy59KjRTk1OftT78pwygdcmCuBf8yMoWt/8O8l+6x2LSEze0E4TeepXK4MezW3zGSyoDRZK7Y9cg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.46.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz", + "integrity": "sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ==", + "dev": true, + "dependencies": { + "@babel/core": "^7.20.5", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.27.0", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0" } }, "node_modules/acorn": { @@ -2676,15 +1384,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -2710,71 +1409,11 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/ajv-formats": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.0" - }, - "peerDependencies": { - "ajv": "^8.0.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/another-json": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/another-json/-/another-json-0.2.0.tgz", "integrity": "sha512-/Ndrl68UQLhnCdsAzEXLMFuOR546o2qbYRqCglaNHbjXrwG1ayTcdwr3zkSGOGtGXDyR5X9nCFfnyG2AFJIsqg==" }, - "node_modules/ansi-html-community": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", - "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2828,12 +1467,6 @@ "node": ">=6.0" } }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, "node_modules/array-includes": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", @@ -2854,24 +1487,12 @@ } }, "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/array.prototype.flat": { @@ -2928,36 +1549,6 @@ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==" }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/assert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz", - "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==", - "dev": true, - "dependencies": { - "es6-object-assign": "^1.1.0", - "is-nan": "^1.2.1", - "object-is": "^1.0.1", - "util": "^0.12.0" - } - }, "node_modules/ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -2969,18 +1560,6 @@ "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==" }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axe-core": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.0.tgz", @@ -2996,88 +1575,6 @@ "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==", "dev": true }, - "node_modules/babel-loader": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", - "integrity": "sha512-H8SvsMF+m9t15HNLMipppzkC+Y2Yq+v3SonZyU70RBL/h1gxPkH08Ot8pEE9Z4Kd+czyWJClmFS8qzIP9OZ04Q==", - "dev": true, - "dependencies": { - "find-cache-dir": "^3.3.1", - "loader-utils": "^2.0.0", - "make-dir": "^3.1.0", - "schema-utils": "^2.6.5" - }, - "engines": { - "node": ">= 8.9" - }, - "peerDependencies": { - "@babel/core": "^7.0.0", - "webpack": ">=2" - } - }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", - "dev": true, - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/babel-polyfill": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", - "integrity": "sha512-F2rZGQnAdaHWQ8YAoeRbukc7HS9QgdgeyJ0rQDd485v9opwuPvjpPFcOOT/WmkKTdgy9ESgSPXDcTNpzrGr6iQ==", - "dependencies": { - "babel-runtime": "^6.26.0", - "core-js": "^2.5.0", - "regenerator-runtime": "^0.10.5" - } - }, - "node_modules/babel-runtime": { - "version": "6.26.0", - "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", - "integrity": "sha512-ITKNuq2wKlW1fJg9sSW52eepoYgZBggvOAHC0u/CYu/qxQ9EVzThCgR69BnSXLHjy2f7SY5zaQ4yt7H9ZVxY2g==", - "dependencies": { - "core-js": "^2.4.0", - "regenerator-runtime": "^0.11.0" - } - }, - "node_modules/babel-runtime/node_modules/regenerator-runtime": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", - "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" - }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3089,41 +1586,6 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", - "dev": true - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3133,110 +1595,11 @@ "node": ">=8" } }, - "node_modules/bl": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.26" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/bl/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, "node_modules/blurhash": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.4.tgz", "integrity": "sha512-r/As72u2FbucLoK5NTegM/GucxJc3d8GvHc4ngo13IO/nt2HU4gONxNLq1XPN6EM/V8Y9URIa7PcSz2RZu553A==" }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", - "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/bonjour-service": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.14.tgz", - "integrity": "sha512-HIMbgLnk1Vqvs6B4Wq5ep7mxvj9sGz5d1JJyDNSGNIdA/w2MCz6GTjWTdjqOJV1bEPj+6IkxDvWNFKEBxNt4kQ==", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.2", - "dns-equal": "^1.0.0", - "fast-deep-equal": "^3.1.3", - "multicast-dns": "^7.2.5" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3259,92 +1622,11 @@ "node": ">=8" } }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", - "dev": true - }, "node_modules/browser-encrypt-attachment": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/browser-encrypt-attachment/-/browser-encrypt-attachment-0.3.0.tgz", "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", - "dev": true, - "dependencies": { - "level-filesystem": "^1.0.1", - "level-js": "^2.1.3", - "levelup": "^0.18.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, "node_modules/browserslist": { "version": "4.21.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", @@ -3381,51 +1663,6 @@ "base-x": "^4.0.0" } }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "dev": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -3447,34 +1684,6 @@ "node": ">=6" } }, - "node_modules/camel-case": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", - "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", - "dev": true, - "dependencies": { - "pascal-case": "^3.1.2", - "tslib": "^2.0.3" - } - }, - "node_modules/camel-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, "node_modules/caniuse-lite": { "version": "1.0.30001439", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", @@ -3544,96 +1753,6 @@ "node": ">= 6" } }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.7.0.tgz", - "integrity": "sha512-2CpRNYmImPx+RXKLq6jko/L07phmS9I02TyqkcNU20GCF/GgaWvc58hPtjxDX8lPpkdwc9sNh72V9k00S7ezog==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/clean-css": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.2.0.tgz", - "integrity": "sha512-2639sWGa43EMmG7fn8mdVuBSs6HuWaSor+ZPoFWzenBc6oN+td8YhTfghWXZ25G1NiiSvz8bOFBS7PdSbTiqEA==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/clean-webpack-plugin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", - "dev": true, - "dependencies": { - "del": "^4.1.1" - }, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "webpack": ">=4.0.0 <6.0.0" - } - }, - "node_modules/clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-deep/node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3649,84 +1768,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "node_modules/colorette": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", - "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", - "dev": true - }, - "node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", - "dev": true, - "engines": { - "node": "^12.20.0 || >=14" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/compression/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "node_modules/computed-style": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", @@ -3738,84 +1779,12 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, - "node_modules/connect-history-api-fallback": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz", - "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -3830,118 +1799,6 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true - }, - "node_modules/copy-webpack-plugin": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz", - "integrity": "sha512-fX2MWpamkW0hZxMEg0+mYnA40LTosOSa5TqZ9GYIBzyJa9C3QUaMPSE2xAi/buNr8u89SfD9wHSQVBzrRa/SOQ==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.11", - "glob-parent": "^6.0.1", - "globby": "^13.1.1", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/copy-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/copy-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/core-js": { - "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", - "hasInstallScript": true - }, - "node_modules/core-js-compat": { - "version": "3.26.1", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.1.tgz", - "integrity": "sha512-622/KzTudvXCDLRw70iHW4KKs1aGpcRcowGWyYJr2DEBfRrd6hNJybxSWJFuZYD4ma86xhrwDDHxmDaIq4EA8A==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-js-pure": { "version": "3.26.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.26.1.tgz", @@ -3953,55 +1810,6 @@ "url": "https://opencollective.com/core-js" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, "node_modules/cross-fetch": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", @@ -4024,371 +1832,6 @@ "node": ">= 8" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, - "node_modules/css-loader": { - "version": "6.7.2", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.2.tgz", - "integrity": "sha512-oqGbbVcBJkm8QwmnNzrFrWTnudnRZC+1eXikLJl0n4ljcfotgRifpg2a1lKy8jTrc4/d9A/ap1GFq1jDKG7J+Q==", - "dev": true, - "dependencies": { - "icss-utils": "^5.1.0", - "postcss": "^8.4.18", - "postcss-modules-extract-imports": "^3.0.0", - "postcss-modules-local-by-default": "^4.0.0", - "postcss-modules-scope": "^3.0.0", - "postcss-modules-values": "^4.0.0", - "postcss-value-parser": "^4.2.0", - "semver": "^7.3.8" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/css-loader/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/css-minimizer-webpack-plugin": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/css-minimizer-webpack-plugin/-/css-minimizer-webpack-plugin-4.2.2.tgz", - "integrity": "sha512-s3Of/4jKfw1Hj9CxEO1E5oXhQAxlayuHO2y/ML+C6I9sQ7FdzfEV6QgMLN3vI+qFsjJGIAFLKtQK7t8BOXAIyA==", - "dev": true, - "dependencies": { - "cssnano": "^5.1.8", - "jest-worker": "^29.1.2", - "postcss": "^8.4.17", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "@parcel/css": { - "optional": true - }, - "@swc/css": { - "optional": true - }, - "clean-css": { - "optional": true - }, - "csso": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "lightningcss": { - "optional": true - } - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/css-minimizer-webpack-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/css-select/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/css-select/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/css-select/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true, - "engines": { - "node": ">= 6" - }, - "funding": { - "url": "https://github.com/sponsors/fb55" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", - "dev": true, - "dependencies": { - "cssnano-preset-default": "^5.2.13", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/cssnano" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/csstype": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", @@ -4439,36 +1882,6 @@ "node": ">=0.10.0" } }, - "node_modules/default-gateway": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", - "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", - "dev": true, - "dependencies": { - "execa": "^5.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/deferred-leveldown": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~0.12.1" - } - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/define-properties": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", @@ -4485,101 +1898,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -4602,24 +1920,6 @@ "redux": "^4.1.2" } }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", - "dev": true - }, - "node_modules/dns-packet": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", - "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", - "dev": true, - "dependencies": { - "@leichtgewicht/ip-codec": "^2.0.1" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -4632,15 +1932,6 @@ "node": ">=6.0.0" } }, - "node_modules/dom-converter": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", - "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", - "dev": true, - "dependencies": { - "utila": "~0.4" - } - }, "node_modules/dom-serializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", @@ -4692,55 +1983,12 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dot-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, "node_modules/electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", "dev": true }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dev": true, - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -4759,37 +2007,6 @@ "emojibase": "*" } }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/entities": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", @@ -4801,30 +2018,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", - "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, "node_modules/es-abstract": { "version": "1.20.5", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", @@ -4864,12 +2057,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", - "dev": true - }, "node_modules/es-shim-unscopables": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", @@ -4896,11 +2083,42 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es6-object-assign": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz", - "integrity": "sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw==", - "dev": true + "node_modules/esbuild": { + "version": "0.16.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.9.tgz", + "integrity": "sha512-gkH83yHyijMSZcZFs1IWew342eMdFuWXmQo3zkDPTre25LIPBJsXryg02M3u8OpTwCJdBkdaQwqKkDLnAsAeLQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.16.9", + "@esbuild/android-arm64": "0.16.9", + "@esbuild/android-x64": "0.16.9", + "@esbuild/darwin-arm64": "0.16.9", + "@esbuild/darwin-x64": "0.16.9", + "@esbuild/freebsd-arm64": "0.16.9", + "@esbuild/freebsd-x64": "0.16.9", + "@esbuild/linux-arm": "0.16.9", + "@esbuild/linux-arm64": "0.16.9", + "@esbuild/linux-ia32": "0.16.9", + "@esbuild/linux-loong64": "0.16.9", + "@esbuild/linux-mips64el": "0.16.9", + "@esbuild/linux-ppc64": "0.16.9", + "@esbuild/linux-riscv64": "0.16.9", + "@esbuild/linux-s390x": "0.16.9", + "@esbuild/linux-x64": "0.16.9", + "@esbuild/netbsd-x64": "0.16.9", + "@esbuild/openbsd-x64": "0.16.9", + "@esbuild/sunos-x64": "0.16.9", + "@esbuild/win32-arm64": "0.16.9", + "@esbuild/win32-ia32": "0.16.9", + "@esbuild/win32-x64": "0.16.9" + } }, "node_modules/escalade": { "version": "3.1.1", @@ -4911,12 +2129,6 @@ "node": ">=6" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -5022,6 +2234,18 @@ "eslint-plugin-import": "^2.25.2" } }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", @@ -5423,21 +2647,6 @@ "node": ">=0.10.0" } }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -5446,107 +2655,11 @@ "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, "node_modules/exenv": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", "integrity": "sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==" }, - "node_modules/express": { - "version": "4.18.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", - "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.1", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5592,15 +2705,6 @@ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, "node_modules/fastq": { "version": "1.14.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.14.0.tgz", @@ -5610,18 +2714,6 @@ "reusify": "^1.0.4" } }, - "node_modules/faye-websocket": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", - "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/fbemitter": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/fbemitter/-/fbemitter-3.0.0.tgz", @@ -5678,56 +2770,6 @@ "node": ">=8" } }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", @@ -5790,41 +2832,6 @@ "react": "^15.0.2 || ^16.0.0 || ^17.0.0" } }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "dev": true - }, "node_modules/formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -5848,24 +2855,6 @@ "react": ">=16.8.0" } }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -5887,12 +2876,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/fs-monkey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", - "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", - "dev": true - }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -5945,33 +2928,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fwd-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", - "dev": true, - "dependencies": { - "readable-stream": "~1.0.26-4" - } - }, - "node_modules/fwd-stream/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/fwd-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -5994,18 +2950,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-symbol-description": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", @@ -6054,12 +2998,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", @@ -6070,19 +3008,20 @@ } }, "node_modules/globby": { - "version": "13.1.3", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.3.tgz", - "integrity": "sha512-8krCNHXvlCgHDpegPzleMq07yMYTO2sXKASmZmquEYWEmCx6J5UTRbp5RwMJkTJGtcQ44YpiUYUiN0b9mzy8Bw==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "dependencies": { + "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", + "fast-glob": "^3.2.9", "ignore": "^5.2.0", "merge2": "^1.4.1", - "slash": "^4.0.0" + "slash": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -6111,12 +3050,6 @@ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", "dev": true }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, "node_modules/has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", @@ -6184,50 +3117,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -6236,54 +3125,6 @@ "react-is": "^16.7.0" } }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hpack.js/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/hpack.js/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/hpack.js/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/hpack.js/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/html-dom-parser": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.1.2.tgz", @@ -6293,53 +3134,6 @@ "htmlparser2": "8.0.1" } }, - "node_modules/html-entities": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", - "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", - "dev": true - }, - "node_modules/html-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/html-loader/-/html-loader-4.2.0.tgz", - "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", - "dev": true, - "dependencies": { - "html-minifier-terser": "^7.0.0", - "parse5": "^7.0.0" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/html-minifier-terser": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-7.1.0.tgz", - "integrity": "sha512-BvPO2S7Ip0Q5qt+Y8j/27Vclj6uHC6av0TMoDn7/bJPhMWHI2UtR2e/zEgJn3/qYAmxumrGp9q4UHurL6mtW9Q==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "5.2.0", - "commander": "^9.4.1", - "entities": "^4.4.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.15.1" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0" - } - }, "node_modules/html-react-parser": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-3.0.4.tgz", @@ -6354,71 +3148,6 @@ "react": "0.14 || 15 || 16 || 17 || 18" } }, - "node_modules/html-webpack-plugin": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-5.5.0.tgz", - "integrity": "sha512-sy88PC2cRTVxvETRgUHFrL4No3UxvcH8G1NepGhqaTT+GXN2kTamqasot0inS5hXeg1cMbFDt27zzo9p35lZVw==", - "dev": true, - "dependencies": { - "@types/html-minifier-terser": "^6.0.0", - "html-minifier-terser": "^6.0.2", - "lodash": "^4.17.21", - "pretty-error": "^4.0.0", - "tapable": "^2.0.0" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/html-webpack-plugin" - }, - "peerDependencies": { - "webpack": "^5.20.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/clean-css": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.1.tgz", - "integrity": "sha512-lCr8OHhiWCTw4v8POJovCoh4T7I9U11yVsPjMWWnnMmp9ZowCxyad1Pathle/9HjaDp+fdQKjO9fQydE6RHTZg==", - "dev": true, - "dependencies": { - "source-map": "~0.6.0" - }, - "engines": { - "node": ">= 10.0" - } - }, - "node_modules/html-webpack-plugin/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "dev": true, - "engines": { - "node": ">= 12" - } - }, - "node_modules/html-webpack-plugin/node_modules/html-minifier-terser": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", - "integrity": "sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==", - "dev": true, - "dependencies": { - "camel-case": "^4.1.2", - "clean-css": "^5.2.2", - "commander": "^8.3.0", - "he": "^1.2.0", - "param-case": "^3.0.4", - "relateurl": "^0.2.7", - "terser": "^5.10.0" - }, - "bin": { - "html-minifier-terser": "cli.js" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/htmlparser2": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.1.tgz", @@ -6437,131 +3166,6 @@ "entities": "^4.3.0" } }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", - "dev": true - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-parser-js": { - "version": "0.5.8", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", - "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", - "dev": true - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-middleware": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", - "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", - "dev": true, - "dependencies": { - "@types/http-proxy": "^1.17.8", - "http-proxy": "^1.18.1", - "is-glob": "^4.0.1", - "is-plain-obj": "^3.0.0", - "micromatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@types/express": "^4.17.13" - }, - "peerDependenciesMeta": { - "@types/express": { - "optional": true - } - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "engines": { - "node": ">=10.17.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/icss-utils": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", - "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/idb-wrapper": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", - "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", - "dev": true - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/ignore": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", @@ -6593,25 +3197,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6621,12 +3206,6 @@ "node": ">=0.8.19" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", - "dev": true - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -6662,49 +3241,6 @@ "node": ">= 0.4" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/ipaddr.js": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", - "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/is": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -6784,21 +3320,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -6808,21 +3329,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-generator-function": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", - "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -6835,22 +3341,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-nan": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.2.tgz", - "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -6887,45 +3377,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-object": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==", - "dev": true - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd/node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -6935,18 +3386,6 @@ "node": ">=8" } }, - "node_modules/is-plain-obj": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", - "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", @@ -6983,18 +3422,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-string": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", @@ -7025,25 +3452,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.10", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.10.tgz", - "integrity": "sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -7056,171 +3464,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/isbuffer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", - "dev": true - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/jest-util": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.3.1.tgz", - "integrity": "sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ==", - "dev": true, - "dependencies": { - "@jest/types": "^29.3.1", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker": { - "version": "29.3.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.3.1.tgz", - "integrity": "sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw==", - "dev": true, - "dependencies": { - "@types/node": "*", - "jest-util": "^29.3.1", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/js-sdsl": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", @@ -7260,12 +3509,6 @@ "node": ">=4" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -7337,24 +3580,6 @@ "node": ">= 12" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/klona": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", - "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", @@ -7370,211 +3595,6 @@ "language-subtag-registry": "^0.3.20" } }, - "node_modules/level-blobs": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", - "dev": true, - "dependencies": { - "level-peek": "1.0.6", - "once": "^1.3.0", - "readable-stream": "^1.0.26-4" - } - }, - "node_modules/level-blobs/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-blobs/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "node_modules/level-filesystem": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", - "dev": true, - "dependencies": { - "concat-stream": "^1.4.4", - "errno": "^0.1.1", - "fwd-stream": "^1.0.4", - "level-blobs": "^0.1.7", - "level-peek": "^1.0.6", - "level-sublevel": "^5.2.0", - "octal": "^1.0.0", - "once": "^1.3.0", - "xtend": "^2.2.0" - } - }, - "node_modules/level-fix-range": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", - "dev": true - }, - "node_modules/level-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", - "dev": true, - "dependencies": { - "string-range": "~1.2" - } - }, - "node_modules/level-js": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", - "dev": true, - "dependencies": { - "abstract-leveldown": "~0.12.0", - "idb-wrapper": "^1.5.0", - "isbuffer": "~0.0.0", - "ltgt": "^2.1.2", - "typedarray-to-buffer": "~1.0.0", - "xtend": "~2.1.2" - } - }, - "node_modules/level-js/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "dev": true - }, - "node_modules/level-js/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dev": true, - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/level-peek": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", - "dev": true, - "dependencies": { - "level-fix-range": "~1.0.2" - } - }, - "node_modules/level-sublevel": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", - "dev": true, - "dependencies": { - "level-fix-range": "2.0", - "level-hooks": ">=4.4.0 <5", - "string-range": "~1.2.1", - "xtend": "~2.0.4" - } - }, - "node_modules/level-sublevel/node_modules/level-fix-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", - "dev": true, - "dependencies": { - "clone": "~0.1.9" - } - }, - "node_modules/level-sublevel/node_modules/object-keys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", - "deprecated": "Please update to the latest object-keys", - "dev": true, - "dependencies": { - "foreach": "~2.0.1", - "indexof": "~0.0.1", - "is": "~0.2.6" - } - }, - "node_modules/level-sublevel/node_modules/xtend": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", - "dev": true, - "dependencies": { - "is-object": "~0.1.2", - "object-keys": "~0.2.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/levelup": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", - "dev": true, - "dependencies": { - "bl": "~0.8.1", - "deferred-leveldown": "~0.2.0", - "errno": "~0.1.1", - "prr": "~0.0.0", - "readable-stream": "~1.0.26", - "semver": "~2.3.1", - "xtend": "~3.0.0" - } - }, - "node_modules/levelup/node_modules/prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", - "dev": true - }, - "node_modules/levelup/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/levelup/node_modules/semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/levelup/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true - }, - "node_modules/levelup/node_modules/xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -7588,15 +3608,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", @@ -7621,29 +3632,6 @@ "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.2.tgz", "integrity": "sha512-/VSoCZiglX0VMsXmL5PN3lRg45M86lrD9PskdkA2abWaTKap1bIcJ11LS4EE55bcUl9ZOR4eZ792UtQ9E/5xLA==" }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", - "dev": true, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - }, - "engines": { - "node": ">=8.9.0" - } - }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -7669,30 +3657,12 @@ "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" }, - "node_modules/lodash.debounce": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, "node_modules/loglevel": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.8.1.tgz", @@ -7716,21 +3686,6 @@ "loose-envify": "cli.js" } }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dev": true, - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/lower-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, "node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -7743,25 +3698,16 @@ "node": ">=10" } }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "dev": true - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/magic-string": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz", + "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==", "dev": true, "dependencies": { - "semver": "^6.0.0" + "@jridgewell/sourcemap-codec": "^1.4.13" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=12" } }, "node_modules/matrix-events-sdk": { @@ -7800,56 +3746,6 @@ "events": "^3.2.0" } }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/memfs": { - "version": "3.4.12", - "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.12.tgz", - "integrity": "sha512-BcjuQn6vfqP+k100e0E9m61Hyqa//Brp+I3f0OBmN0ATHlFA8vx3Lt8z57R3u2bPqe3WGDBC+nF72fTH7isyEw==", - "dev": true, - "dependencies": { - "fs-monkey": "^1.0.3" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -7859,15 +3755,6 @@ "node": ">= 8" } }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -7881,151 +3768,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.7.2.tgz", - "integrity": "sha512-EdlUizq13o0Pd+uCp+WO/JpkLvHRVGt97RqfeGhXqAcorYo1ypJSpkV+WDT0vY/kmh/p7wRdJNJtuyK540PXDw==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", - "dev": true - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -8053,19 +3795,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/multicast-dns": { - "version": "7.2.5", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", - "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", - "dev": true, - "dependencies": { - "dns-packet": "^5.2.2", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, "node_modules/nanoid": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", @@ -8083,35 +3812,10 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dev": true, - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/no-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "node_modules/natural-compare-lite": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", + "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", "dev": true }, "node_modules/node-fetch": { @@ -8133,15 +3837,6 @@ } } }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "dev": true, - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-releases": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", @@ -8157,42 +3852,6 @@ "node": ">=0.10.0" } }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", - "dev": true, - "dependencies": { - "path-key": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -8209,22 +3868,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/object-keys": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", @@ -8313,39 +3956,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/octal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -8355,38 +3965,6 @@ "wrappy": "1" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/open": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", - "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -8434,15 +4012,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/p-retry": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", @@ -8455,31 +4024,6 @@ "node": ">=8" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/param-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", - "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", - "dev": true, - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/param-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8492,67 +4036,11 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "node_modules/parse-srcset": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==" }, - "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", - "dev": true, - "dependencies": { - "entities": "^4.4.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascal-case": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", - "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", - "dev": true, - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/pascal-case/node_modules/tslib": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", - "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", - "dev": true - }, - "node_modules/path-browserify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -8571,12 +4059,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true - }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", @@ -8592,12 +4074,6 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true - }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -8607,22 +4083,6 @@ "node": ">=8" } }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -8640,100 +4100,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/postcss": { "version": "8.4.20", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", @@ -8757,489 +4123,6 @@ "node": "^10 || ^12 || >=14" } }, - "node_modules/postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - }, - "peerDependencies": { - "postcss": "^8.2.2" - } - }, - "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "dependencies": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-modules-extract-imports": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", - "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-local-by-default": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", - "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.1.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-scope": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", - "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-modules-values": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", - "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", - "dev": true, - "dependencies": { - "icss-utils": "^5.0.0" - }, - "engines": { - "node": "^10 || ^12 || >= 14" - }, - "peerDependencies": { - "postcss": "^8.1.0" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "dependencies": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "dependencies": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "dependencies": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "dependencies": { - "postcss-selector-parser": "^6.0.5" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9249,22 +4132,21 @@ "node": ">= 0.8.0" } }, - "node_modules/pretty-error": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", - "integrity": "sha512-AoJ5YMAcXKYxKhuJGdcvse+Voc6v1RgnsR3nWcYU7q4t6z0Q6T86sv5Zq8VIRbOWWFpvdGE83LtdSMNd+6Y0xw==", + "node_modules/prettier": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.1.tgz", + "integrity": "sha512-lqGoSJBQNJidqCHE80vqZJHWHRFoNYsSpP9AjFhlhi9ODCJA541svILes/+/1GM3VaL/abZi7cpFzOpdR9UPKg==", "dev": true, - "dependencies": { - "lodash": "^4.17.20", - "renderkid": "^3.0.0" + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, "node_modules/promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", @@ -9283,54 +4165,6 @@ "react-is": "^16.13.1" } }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-addr/node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "dev": true - }, "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", @@ -9354,16 +4188,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g==", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -9384,58 +4208,6 @@ } ] }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/react": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", @@ -9583,18 +4355,13 @@ "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" }, - "node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, "engines": { - "node": ">= 6" + "node": ">=0.10.0" } }, "node_modules/readdirp": { @@ -9609,18 +4376,6 @@ "node": ">=8.10.0" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/redux": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", @@ -9629,38 +4384,6 @@ "@babel/runtime": "^7.9.2" } }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.10.5", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha512-02YopEIhAgiBHWeoTiA8aitHDt8z6w+rQqNuIftlM+ZtvSl/brTouaU7DW6GO/cHtvxJvS4Hwv2ibKdxIRi24w==" - }, - "node_modules/regenerator-transform": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.1.tgz", - "integrity": "sha512-knzmNAcuyxV+gQCufkYcvOqX/qIIfHLv0u5x79kRxuGojfYVky1f15TzZEu2Avte8QGepvUNTnLskf8E6X6Vyg==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, "node_modules/regexp.prototype.flags": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", @@ -9690,158 +4413,6 @@ "url": "https://github.com/sponsors/mysticatea" } }, - "node_modules/regexpu-core": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.2.tgz", - "integrity": "sha512-T0+1Zp2wjF/juXMrMxHxidqGYn8U4R+zleSJhX9tQ1PUsS8a9UtYfbsF9LdiVgNX3kiX8RNaKM42nfSgvFJjmw==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", - "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/renderkid": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", - "integrity": "sha512-q/7VIQA8lmM1hF+jn+sFSPWGlMkSAeNYcPLmDQx2zzuiDfaLrOmumR8iaUKlenFgh0XRPIUeSPlH3A+AW3Z5pg==", - "dev": true, - "dependencies": { - "css-select": "^4.1.3", - "dom-converter": "^0.2.0", - "htmlparser2": "^6.1.0", - "lodash": "^4.17.21", - "strip-ansi": "^6.0.1" - } - }, - "node_modules/renderkid/node_modules/dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "funding": { - "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "dependencies": { - "domelementtype": "^2.2.0" - }, - "engines": { - "node": ">= 4" - }, - "funding": { - "url": "https://github.com/fb55/domhandler?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "dependencies": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - }, - "funding": { - "url": "https://github.com/fb55/domutils?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/renderkid/node_modules/htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true - }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -9859,27 +4430,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -9907,26 +4457,20 @@ "node": ">=0.10.0" } }, - "node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "node_modules/rollup": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.7.5.tgz", + "integrity": "sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==", "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/run-parallel": { @@ -9952,26 +4496,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -9986,12 +4510,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, "node_modules/sanitize-html": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.8.0.tgz", @@ -10041,44 +4559,6 @@ "node": ">=12.0.0" } }, - "node_modules/sass-loader": { - "version": "13.2.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-13.2.0.tgz", - "integrity": "sha512-JWEp48djQA4nbZxmgC02/Wh0eroSUutulROUusYJO9P9zltRbNN80JCBHqRGzjd4cmZCa/r88xgfkjGD0TXsHg==", - "dev": true, - "dependencies": { - "klona": "^2.0.4", - "neo-async": "^2.6.2" - }, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "fibers": ">= 3.1.0", - "node-sass": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0", - "sass": "^1.3.0", - "sass-embedded": "*", - "webpack": "^5.0.0" - }, - "peerDependenciesMeta": { - "fibers": { - "optional": true - }, - "node-sass": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - } - } - }, "node_modules/scheduler": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", @@ -10088,24 +4568,6 @@ "object-assign": "^4.1.1" } }, - "node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/sdp-transform": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz", @@ -10114,24 +4576,6 @@ "sdp-verify": "checker.js" } }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", - "dev": true - }, - "node_modules/selfsigned": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.1.1.tgz", - "integrity": "sha512-GSL3aowiF7wa/WtSFwnUrludWFoNhftq8bUkH9pkzjpN2XSPOAYEgg6e0sS9s0rZwgJzJiQRPU18A6clnoW5wQ==", - "dev": true, - "dependencies": { - "node-forge": "^1" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", @@ -10141,189 +4585,11 @@ "semver": "bin/semver.js" } }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-index/node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -10358,42 +4624,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, "node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sockjs": { - "version": "0.3.24", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", - "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.11.3", - "uuid": "^8.3.2", - "websocket-driver": "^0.7.4" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, "node_modules/source-map-js": { @@ -10404,87 +4641,6 @@ "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", - "dev": true - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/stream-browserify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", - "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", - "dev": true, - "dependencies": { - "inherits": "~2.0.4", - "readable-stream": "^3.5.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-range": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", - "dev": true - }, "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -10553,15 +4709,6 @@ "node": ">=4" } }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/strip-json-comments": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", @@ -10574,22 +4721,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/style-loader": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-3.3.1.tgz", - "integrity": "sha512-GPcQ+LDJbrcxHORTRes6Jy2sfvK2kS6hpSfI/fXhPt+spVzxF6LJ1dHLN9zIGmVaaP044YKaIatFaufENRiDoQ==", - "dev": true, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, "node_modules/style-to-js": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.1.tgz", @@ -10606,22 +4737,6 @@ "inline-style-parser": "0.1.1" } }, - "node_modules/stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dev": true, - "dependencies": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - }, - "engines": { - "node": "^10 || ^12 || >=14.0" - }, - "peerDependencies": { - "postcss": "^8.2.15" - } - }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -10646,171 +4761,12 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "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" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/svgo/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/terser": { - "version": "5.16.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.16.1.tgz", - "integrity": "sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -10845,15 +4801,6 @@ "node": ">=8.0" } }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, "node_modules/tr46": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", @@ -10888,6 +4835,21 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, "node_modules/twemoji": { "version": "14.0.2", "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-14.0.2.tgz", @@ -10928,31 +4890,19 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "node_modules/typescript": { + "version": "4.9.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", + "integrity": "sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==", "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" }, "engines": { - "node": ">= 0.6" + "node": ">=4.2.0" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", - "dev": true - }, "node_modules/ua-parser-js": { "version": "0.7.32", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", @@ -10991,46 +4941,6 @@ "resolved": "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz", "integrity": "sha512-7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==" }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", - "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^2.0.0", - "unicode-property-aliases-ecmascript": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", - "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -11039,15 +4949,6 @@ "node": ">= 4.0.0" } }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, "node_modules/update-browserslist-db": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", @@ -11083,72 +4984,106 @@ "punycode": "^2.1.0" } }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha512-kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==", + "node_modules/vite": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.1.tgz", + "integrity": "sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw==", - "dev": true - }, - "node_modules/util": { - "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "is-arguments": "^1.0.4", - "is-generator-function": "^1.0.7", - "is-typed-array": "^1.1.3", - "which-typed-array": "^1.1.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/utila": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", - "integrity": "sha512-Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "dev": true, + "esbuild": "^0.16.3", + "postcss": "^8.4.20", + "resolve": "^1.22.1", + "rollup": "^3.7.0" + }, "bin": { - "uuid": "dist/bin/uuid" + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } } }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "node_modules/vite-plugin-static-copy": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.13.0.tgz", + "integrity": "sha512-cln+fvKMgwNBjxQ59QVblmExZrc9gGEdRmfqcPOOGpxT5KInfpkGMvmK4L+kCAeHHSSGNU1bM7BA9PQgaAJc6g==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.3", + "fast-glob": "^3.2.11", + "fs-extra": "^11.1.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/vite-plugin-static-copy/node_modules/fs-extra": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.0.tgz", + "integrity": "sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/vite-plugin-static-copy/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/vite-plugin-static-copy/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true, "engines": { - "node": ">= 0.8" + "node": ">= 10.0.0" } }, "node_modules/warning": { @@ -11159,409 +5094,11 @@ "loose-envify": "^1.0.0" } }, - "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" }, - "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz", - "integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.0.1", - "@webpack-cli/info": "^2.0.1", - "@webpack-cli/serve": "^2.0.1", - "colorette": "^2.0.14", - "commander": "^9.4.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-dev-middleware": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.3.tgz", - "integrity": "sha512-hj5CYrY0bZLB+eTO+x/j67Pkrquiy7kWepMHmUMoPsmcUaeEnQJqFzHJOyxgWlq746/wUuA64p9ta34Kyb01pA==", - "dev": true, - "dependencies": { - "colorette": "^2.0.10", - "memfs": "^3.4.3", - "mime-types": "^2.1.31", - "range-parser": "^1.2.1", - "schema-utils": "^4.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.0.0 || ^5.0.0" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-middleware/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-middleware/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-middleware/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-dev-server": { - "version": "4.11.1", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.11.1.tgz", - "integrity": "sha512-lILVz9tAUy1zGFwieuaQtYiadImb5M3d+H+L1zDYalYoDl0cksAB1UNyuE5MMWJrG6zR1tXkCP2fitl7yoUJiw==", - "dev": true, - "dependencies": { - "@types/bonjour": "^3.5.9", - "@types/connect-history-api-fallback": "^1.3.5", - "@types/express": "^4.17.13", - "@types/serve-index": "^1.9.1", - "@types/serve-static": "^1.13.10", - "@types/sockjs": "^0.3.33", - "@types/ws": "^8.5.1", - "ansi-html-community": "^0.0.8", - "bonjour-service": "^1.0.11", - "chokidar": "^3.5.3", - "colorette": "^2.0.10", - "compression": "^1.7.4", - "connect-history-api-fallback": "^2.0.0", - "default-gateway": "^6.0.3", - "express": "^4.17.3", - "graceful-fs": "^4.2.6", - "html-entities": "^2.3.2", - "http-proxy-middleware": "^2.0.3", - "ipaddr.js": "^2.0.1", - "open": "^8.0.9", - "p-retry": "^4.5.0", - "rimraf": "^3.0.2", - "schema-utils": "^4.0.0", - "selfsigned": "^2.1.1", - "serve-index": "^1.9.1", - "sockjs": "^0.3.24", - "spdy": "^4.0.2", - "webpack-dev-middleware": "^5.3.1", - "ws": "^8.4.2" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^4.37.0 || ^5.0.0" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-dev-server/node_modules/ajv": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.2.tgz", - "integrity": "sha512-E4bfmKAhGiSTvMfL1Myyycaub+cUEU2/IvpylXkUu7CHBkBj1f/ikdzbD7YQ6FKUbixDxeYvB/xY4fvyroDlQg==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/webpack-dev-server/node_modules/ajv-keywords": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3" - }, - "peerDependencies": { - "ajv": "^8.8.2" - } - }, - "node_modules/webpack-dev-server/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/webpack-dev-server/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/webpack-dev-server/node_modules/schema-utils": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", - "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.9", - "ajv": "^8.8.0", - "ajv-formats": "^2.1.1", - "ajv-keywords": "^5.0.0" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/webpack-merge": { - "version": "5.8.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", - "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/webpack/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/webpack/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dev": true, - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -11602,32 +5139,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.9.tgz", - "integrity": "sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/wildcard": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", - "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", - "dev": true - }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -11643,51 +5154,12 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, - "node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, - "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 3ff04ccc..5ba7933d 100644 --- a/package.json +++ b/package.json @@ -7,8 +7,13 @@ "node": ">=16.0.0" }, "scripts": { - "start": "webpack serve --config ./webpack.dev.js --open", - "build": "webpack --config ./webpack.prod.js" + "start": "vite", + "build": "vite build", + "lint": "yarn check:eslint && yarn check:prettier", + "check:eslint": "eslint src/*", + "check:prettier": "prettier --check .", + "fix:prettier": "prettier --write .", + "typecheck": "tsc --noEmit" }, "keywords": [], "author": "Ajay Bura", @@ -19,7 +24,6 @@ "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", "@tippyjs/react": "4.2.6", - "babel-polyfill": "6.26.0", "blurhash": "2.0.4", "browser-encrypt-attachment": "0.3.0", "dateformat": "5.0.3", @@ -46,37 +50,23 @@ "twemoji": "14.0.2" }, "devDependencies": { - "@babel/core": "7.20.5", - "@babel/preset-env": "7.20.2", - "@babel/preset-react": "7.18.6", - "assert": "2.0.0", - "babel-loader": "8.3.0", - "browserify-fs": "1.0.0", - "buffer": "6.0.3", - "clean-webpack-plugin": "4.0.0", - "copy-webpack-plugin": "11.0.0", - "crypto-browserify": "3.12.0", - "css-loader": "6.7.2", - "css-minimizer-webpack-plugin": "4.2.2", + "@rollup/plugin-wasm": "6.1.1", + "@types/react": "18.0.26", + "@types/react-dom": "18.0.9", + "@typescript-eslint/eslint-plugin": "5.46.1", + "@typescript-eslint/parser": "5.46.1", + "@vitejs/plugin-react": "3.0.0", "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", + "eslint-config-prettier": "8.5.0", "eslint-plugin-import": "2.26.0", "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", - "html-loader": "4.2.0", - "html-webpack-plugin": "5.5.0", - "mini-css-extract-plugin": "2.7.2", - "path-browserify": "1.0.1", + "prettier": "2.8.1", "sass": "1.56.2", - "sass-loader": "13.2.0", - "stream-browserify": "3.0.0", - "style-loader": "3.3.1", - "url": "0.11.0", - "util": "0.12.5", - "webpack": "5.75.0", - "webpack-cli": "5.0.1", - "webpack-dev-server": "4.11.1", - "webpack-merge": "5.8.0" + "typescript": "4.9.4", + "vite": "4.0.1", + "vite-plugin-static-copy": "0.13.0" } } diff --git a/public/index.html b/public/index.html deleted file mode 100644 index 34a00037..00000000 --- a/public/index.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - Cinny - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - \ No newline at end of file diff --git a/public/manifest.json b/public/manifest.json index 21ae4f0d..f1d4a882 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -11,49 +11,49 @@ "theme_color": "#fff", "icons": [ { - "src": "android-chrome-36x36.png", + "src": "/public/android/android-chrome-36x36.png", "sizes": "36x36", "type": "image/png" }, { - "src": "android-chrome-48x48.png", + "src": "/public/android/android-chrome-48x48.png", "sizes": "48x48", "type": "image/png" }, { - "src": "android-chrome-72x72.png", + "src": "/public/android/android-chrome-72x72.png", "sizes": "72x72", "type": "image/png" }, { - "src": "android-chrome-96x96.png", + "src": "/public/android/android-chrome-96x96.png", "sizes": "96x96", "type": "image/png" }, { - "src": "android-chrome-144x144.png", + "src": "/public/android/android-chrome-144x144.png", "sizes": "144x144", "type": "image/png" }, { - "src": "android-chrome-192x192.png", + "src": "/public/android/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "android-chrome-256x256.png", + "src": "/public/android/android-chrome-256x256.png", "sizes": "256x256", "type": "image/png" }, { - "src": "android-chrome-384x384.png", + "src": "/public/android/android-chrome-384x384.png", "sizes": "384x384", "type": "image/png" }, { - "src": "android-chrome-512x512.png", + "src": "/public/android/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } ] -} \ No newline at end of file +} diff --git a/src/client/initMatrix.js b/src/client/initMatrix.js index cd961573..420f3154 100644 --- a/src/client/initMatrix.js +++ b/src/client/initMatrix.js @@ -1,5 +1,6 @@ import EventEmitter from 'events'; import * as sdk from 'matrix-js-sdk'; +import Olm from '@matrix-org/olm'; // import { logger } from 'matrix-js-sdk/lib/logger'; import { secret } from './state/auth'; @@ -10,7 +11,7 @@ import Notifications from './state/Notifications'; import { cryptoCallbacks } from './state/secretStorageKeys'; import navigation from './state/navigation'; -global.Olm = require('@matrix-org/olm'); +global.Olm = Olm; // logger.disableAll(); @@ -78,7 +79,7 @@ class InitMatrix extends EventEmitter { this.emit('init_loading_finished'); this.notifications._initNoti(); } else { - this.notifications._initNoti(); + this.notifications?._initNoti(); } }, RECONNECTING: () => { diff --git a/src/index.jsx b/src/index.jsx index 55f8656b..a252f6f0 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -9,7 +9,4 @@ import App from './app/pages/App'; settings.applyTheme(); -ReactDom.render( - , - document.getElementById('root'), -); +ReactDom.render(, document.getElementById('root')); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 00000000..e109a97c --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "sourceMap": true, + "jsx": "react", + "target": "ES6", + "allowJs": true, + "esModuleInterop": true, + "moduleResolution": "Node", + "outDir": "dist", + "skipLibCheck": true + }, + "exclude": ["node_modules", "dist"], + "include": ["src"] +} diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 00000000..b46913be --- /dev/null +++ b/vite.config.js @@ -0,0 +1,44 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import { wasm } from '@rollup/plugin-wasm'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; + +const copyFiles = { + targets: [ + { + src: 'node_modules/@matrix-org/olm/olm.wasm', + dest: '', + }, + { + src: '_redirects', + dest: '', + }, + { + src: 'config.json', + dest: '', + }, + { + src: 'public/res/android', + dest: 'public/', + } + ], +} + +export default defineConfig({ + appType: 'spa', + publicDir: false, + server: { + port: 8080, + host: true, + }, + plugins: [ + viteStaticCopy(copyFiles), + wasm(), + react(), + ], + build: { + outDir: 'dist', + sourcemap: true, + copyPublicDir: false, + }, +}); diff --git a/webpack.common.js b/webpack.common.js deleted file mode 100644 index bbf6871b..00000000 --- a/webpack.common.js +++ /dev/null @@ -1,66 +0,0 @@ -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const CopyPlugin = require("copy-webpack-plugin"); -const webpack = require('webpack'); - -module.exports = { - entry: { - polyfill: 'babel-polyfill', - main: './src/index.jsx' - }, - resolve: { - extensions: ['.js', '.jsx'], - fallback: { - 'crypto': require.resolve('crypto-browserify'), - 'path': require.resolve('path-browserify'), - 'fs': require.resolve('browserify-fs'), - 'stream': require.resolve('stream-browserify'), - 'util': require.resolve('util/'), - 'assert': require.resolve('assert/'), - 'url': require.resolve('url/'), - 'buffer': require.resolve('buffer'), - } - }, - node: { - global: true, - }, - module: { - rules: [ - { - test: /\.jsx?$/, - exclude: /node_modules/, - use: { - loader: 'babel-loader', - options: { - presets: ['@babel/preset-env', '@babel/preset-react'], - }, - }, - }, - { - test: /\.html$/, - use: ['html-loader'], - }, - { - test: /\.(png|jpe?g|gif|otf|ttf|woff|woff2|ogg)$/, - type: 'asset/resource', - }, - { - test: /\.svg$/, - type: 'asset/inline', - } - ], - }, - plugins: [ - new HtmlWebpackPlugin({ template: './public/index.html' }), - new CopyPlugin({ - patterns: [ - { from: 'node_modules/@matrix-org/olm/olm.wasm' }, - { from: '_redirects' }, - { from: 'config.json' }, - { from: 'public/res/android'} - ], - }), - new webpack.ProvidePlugin({ - Buffer: ['buffer', 'Buffer'], - }), - ], -}; diff --git a/webpack.dev.js b/webpack.dev.js deleted file mode 100644 index 2cfa2df7..00000000 --- a/webpack.dev.js +++ /dev/null @@ -1,27 +0,0 @@ -const path = require('path'); -const common = require('./webpack.common'); -const { merge } = require('webpack-merge'); - -module.exports = merge(common, { - mode: 'development', - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].bundle.js', - publicPath: '/', - }, - devServer: { - historyApiFallback: true, - }, - module: { - rules: [ - { - test: /\.s?css$/, - use: [ - 'style-loader', - 'css-loader', - 'sass-loader', - ], - }, - ], - }, -}); diff --git a/webpack.prod.js b/webpack.prod.js deleted file mode 100644 index eea1eb87..00000000 --- a/webpack.prod.js +++ /dev/null @@ -1,39 +0,0 @@ -const path = require('path'); -const common = require('./webpack.common'); -const { merge } = require('webpack-merge'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const CssMinimizerPlugin = require('css-minimizer-webpack-plugin'); -const { CleanWebpackPlugin } = require('clean-webpack-plugin'); - -module.exports = merge(common, { - mode: 'production', - output: { - path: path.resolve(__dirname, 'dist'), - filename: '[name].[contenthash].bundle.js', - }, - optimization: { - minimize: true, - minimizer: [ - '...', - new CssMinimizerPlugin(), - ], - }, - module: { - rules: [ - { - test: /\.s?css$/, - use: [ - MiniCssExtractPlugin.loader, - 'css-loader', - 'sass-loader', - ], - }, - ], - }, - plugins: [ - new CleanWebpackPlugin(), - new MiniCssExtractPlugin({ - filename: '[name].[contenthash].bundle.css', - }), - ], -}); From e5e3f5f0a3542ce9b0c0205d176b4e05adc602e1 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 14 Jan 2023 18:51:42 +0530 Subject: [PATCH 307/717] Add jsdelivr cdn for twemoji --- src/app/organisms/emoji-board/EmojiBoard.jsx | 209 ++++++++++--------- src/app/organisms/room/RoomViewCmdBar.jsx | 39 ++-- src/util/twemojify.jsx | 9 +- 3 files changed, 137 insertions(+), 120 deletions(-) diff --git a/src/app/organisms/emoji-board/EmojiBoard.jsx b/src/app/organisms/emoji-board/EmojiBoard.jsx index d9762323..84c41306 100644 --- a/src/app/organisms/emoji-board/EmojiBoard.jsx +++ b/src/app/organisms/emoji-board/EmojiBoard.jsx @@ -13,6 +13,7 @@ import cons from '../../../client/state/cons'; import navigation from '../../../client/state/navigation'; import AsyncSearch from '../../../util/AsyncSearch'; import { addRecentEmoji, getRecentEmojis } from './recent'; +import { TWEMOJI_BASE_URL } from '../../../util/twemojify'; import Text from '../../atoms/text/Text'; import RawIcon from '../../atoms/system-icons/RawIcon'; @@ -46,45 +47,49 @@ const EmojiGroup = React.memo(({ name, groupEmojis }) => { const emoji = groupEmojis[emojiIndex]; emojiRow.push( - { - emoji.hexcode - // This is a unicode emoji, and should be rendered with twemoji - ? parse(twemoji.parse( - emoji.unicode, - { - attributes: () => ({ - unicode: emoji.unicode, - shortcodes: emoji.shortcodes?.toString(), - hexcode: emoji.hexcode, - loading: 'lazy', - }), - }, - )) - // This is a custom emoji, and should be render as an mxc - : ( - {emoji.shortcode} - ) - } - , + {emoji.hexcode ? ( + // This is a unicode emoji, and should be rendered with twemoji + parse( + twemoji.parse(emoji.unicode, { + attributes: () => ({ + unicode: emoji.unicode, + shortcodes: emoji.shortcodes?.toString(), + hexcode: emoji.hexcode, + loading: 'lazy', + }), + base: TWEMOJI_BASE_URL, + }) + ) + ) : ( + // This is a custom emoji, and should be render as an mxc + {emoji.shortcode} + )} + ); } - emojiBoard.push(
{emojiRow}
); + emojiBoard.push( +
+ {emojiRow} +
+ ); } return emojiBoard; } return (
- {name} + + {name} + {groupEmojis.length !== 0 &&
{getEmojiBoard()}
}
); @@ -92,17 +97,16 @@ const EmojiGroup = React.memo(({ name, groupEmojis }) => { EmojiGroup.propTypes = { name: PropTypes.string.isRequired, - groupEmojis: PropTypes.arrayOf(PropTypes.shape({ - length: PropTypes.number, - unicode: PropTypes.string, - hexcode: PropTypes.string, - mxc: PropTypes.string, - shortcode: PropTypes.string, - shortcodes: PropTypes.oneOfType([ - PropTypes.string, - PropTypes.arrayOf(PropTypes.string), - ]), - })).isRequired, + groupEmojis: PropTypes.arrayOf( + PropTypes.shape({ + length: PropTypes.number, + unicode: PropTypes.string, + hexcode: PropTypes.string, + mxc: PropTypes.string, + shortcode: PropTypes.string, + shortcodes: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]), + }) + ).isRequired, }; const asyncSearch = new AsyncSearch(); @@ -128,7 +132,13 @@ function SearchedEmoji() { if (searchedEmojis === null) return false; - return ; + return ( + + ); } function EmojiBoard({ onSelect, searchRef }) { @@ -146,7 +156,10 @@ function EmojiBoard({ onSelect, searchRef }) { if (typeof shortcodes === 'undefined') shortcodes = undefined; else shortcodes = shortcodes.split(','); return { - unicode, hexcode, shortcodes, mxc, + unicode, + hexcode, + shortcodes, + mxc, }; } @@ -211,10 +224,9 @@ function EmojiBoard({ onSelect, searchRef }) { const parentIds = initMatrix.roomList.getAllParentSpaces(room.roomId); const parentRooms = [...parentIds].map((id) => mx.getRoom(id)); if (room) { - const packs = getRelevantPacks( - room.client, - [room, ...parentRooms], - ).filter((pack) => pack.getEmojis().length !== 0); + const packs = getRelevantPacks(room.client, [room, ...parentRooms]).filter( + (pack) => pack.getEmojis().length !== 0 + ); // Set an index for each pack so that we know where to jump when the user uses the nav for (let i = 0; i < packs.length; i += 1) { @@ -263,44 +275,41 @@ function EmojiBoard({ onSelect, searchRef }) { /> )}
- { - availableEmojis.map((pack) => { - const src = initMatrix.matrixClient - .mxcUrlToHttp(pack.avatarUrl ?? pack.getEmojis()[0].mxc); - return ( - openGroup(recentOffset + pack.packIndex)} - src={src} - key={pack.packIndex} - tooltip={pack.displayName ?? 'Unknown'} - tooltipPlacement="left" - isImage - /> - ); - }) - } + {availableEmojis.map((pack) => { + const src = initMatrix.matrixClient.mxcUrlToHttp( + pack.avatarUrl ?? pack.getEmojis()[0].mxc + ); + return ( + openGroup(recentOffset + pack.packIndex)} + src={src} + key={pack.packIndex} + tooltip={pack.displayName ?? 'Unknown'} + tooltipPlacement="left" + isImage + /> + ); + })}
- { - [ - [0, EmojiIC, 'Smilies'], - [1, DogIC, 'Animals'], - [2, CupIC, 'Food'], - [3, BallIC, 'Activities'], - [4, PhotoIC, 'Travel'], - [5, BulbIC, 'Objects'], - [6, PeaceIC, 'Symbols'], - [7, FlagIC, 'Flags'], - ].map(([indx, ico, name]) => ( - openGroup(recentOffset + availableEmojis.length + indx)} - key={indx} - src={ico} - tooltip={name} - tooltipPlacement="left" - /> - )) - } + {[ + [0, EmojiIC, 'Smilies'], + [1, DogIC, 'Animals'], + [2, CupIC, 'Food'], + [3, BallIC, 'Activities'], + [4, PhotoIC, 'Travel'], + [5, BulbIC, 'Objects'], + [6, PeaceIC, 'Symbols'], + [7, FlagIC, 'Flags'], + ].map(([indx, ico, name]) => ( + openGroup(recentOffset + availableEmojis.length + indx)} + key={indx} + src={ico} + tooltip={name} + tooltipPlacement="left" + /> + ))}
@@ -313,27 +322,25 @@ function EmojiBoard({ onSelect, searchRef }) {
- {recentEmojis.length > 0 && } - { - availableEmojis.map((pack) => ( - - )) - } - { - emojiGroups.map((group) => ( - - )) - } + {recentEmojis.length > 0 && ( + + )} + {availableEmojis.map((pack) => ( + + ))} + {emojiGroups.map((group) => ( + + ))}
-
{ parse(twemoji.parse('🙂')) }
+
{parse(twemoji.parse('🙂', { base: TWEMOJI_BASE_URL }))}
:slight_smile:
diff --git a/src/app/organisms/room/RoomViewCmdBar.jsx b/src/app/organisms/room/RoomViewCmdBar.jsx index 8c390a06..0d21123b 100644 --- a/src/app/organisms/room/RoomViewCmdBar.jsx +++ b/src/app/organisms/room/RoomViewCmdBar.jsx @@ -5,7 +5,7 @@ import './RoomViewCmdBar.scss'; import parse from 'html-react-parser'; import twemoji from 'twemoji'; -import { twemojify } from '../../../util/twemojify'; +import { twemojify, TWEMOJI_BASE_URL } from '../../../util/twemojify'; import initMatrix from '../../../client/initMatrix'; import { getEmojiForCompletion } from '../emoji-board/custom-emoji'; @@ -31,7 +31,7 @@ CmdItem.propTypes = { function renderSuggestions({ prefix, option, suggestions }, fireCmd) { function renderCmdSuggestions(cmdPrefix, cmds) { - const cmdOptString = (typeof option === 'string') ? `/${option}` : '/?'; + const cmdOptString = typeof option === 'string' ? `/${option}` : '/?'; return cmds.map((cmd) => ( ({ unicode: emoji.unicode, shortcodes: emoji.shortcodes?.toString(), }), - }, - )); + base: TWEMOJI_BASE_URL, + }) + ); } // Render a custom emoji @@ -87,10 +87,12 @@ function renderSuggestions({ prefix, option, suggestions }, fireCmd) { return emos.map((emoji) => ( fireCmd({ - prefix: emPrefix, - result: emoji, - })} + onClick={() => + fireCmd({ + prefix: emPrefix, + result: emoji, + }) + } > {renderEmoji(emoji)} {`:${emoji.shortcode}:`} @@ -187,10 +189,13 @@ function RoomViewCmdBar({ roomId, roomTimeline, viewEvent }) { }); }, '@': () => { - const members = mx.getRoom(roomId).getJoinedMembers().map((member) => ({ - name: member.name, - userId: member.userId.slice(1), - })); + const members = mx + .getRoom(roomId) + .getJoinedMembers() + .map((member) => ({ + name: member.name, + userId: member.userId.slice(1), + })); asyncSearch.setup(members, { keys: ['name', 'userId'], limit: 20 }); const endIndex = members.length > 20 ? 20 : members.length; setCmd({ prefix, suggestions: members.slice(0, endIndex) }); @@ -277,9 +282,7 @@ function RoomViewCmdBar({ roomId, roomTimeline, viewEvent }) {
-
- { renderSuggestions(cmd, fireCmd) } -
+
{renderSuggestions(cmd, fireCmd)}
diff --git a/src/util/twemojify.jsx b/src/util/twemojify.jsx index 0a4fede7..abe82a66 100644 --- a/src/util/twemojify.jsx +++ b/src/util/twemojify.jsx @@ -6,6 +6,8 @@ import parse from 'html-react-parser'; import twemoji from 'twemoji'; import { sanitizeText } from './sanitize'; +export const TWEMOJI_BASE_URL = 'https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/'; + const Math = lazy(() => import('../app/atoms/math/Math')); const mathOptions = { @@ -38,11 +40,16 @@ const mathOptions = { export function twemojify(text, opts, linkify = false, sanitize = true, maths = false) { if (typeof text !== 'string') return text; let content = text; + const options = opts ?? { base: TWEMOJI_BASE_URL }; + if (!options.base) { + options.base = TWEMOJI_BASE_URL; + } if (sanitize) { content = sanitizeText(content); } - content = twemoji.parse(content, opts); + + content = twemoji.parse(content, options); if (linkify) { content = linkifyHtml(content, { target: '_blank', From 9a34daa2bc2d3d0a2a1ebadb419b916c7ba1bedd Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sun, 15 Jan 2023 05:14:16 +0100 Subject: [PATCH 308/717] Set `accept` attribute to `image/*` in ImageUpload (#989) That way, browsers will suggest to the users to upload an image file instead of any kind of file. The behaviour is in-line with Element's, which specifies the same attribute when selecting an avatar. Please note that it does not prevent users from uploading non-image files as avatars, as browsers interpret that attribute as a mere suggestion, which can be bypassed in the file select dialog. Partially fixes #982. --- src/app/molecules/image-upload/ImageUpload.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/molecules/image-upload/ImageUpload.jsx b/src/app/molecules/image-upload/ImageUpload.jsx index 34d0d4be..53fc7e16 100644 --- a/src/app/molecules/image-upload/ImageUpload.jsx +++ b/src/app/molecules/image-upload/ImageUpload.jsx @@ -74,7 +74,7 @@ function ImageUpload({ {uploadPromise ? 'Cancel' : 'Remove'} )} - +
); } From 38bbc1c6f5b4eca8a6052cbce0d72df7434fe2b4 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 15 Jan 2023 09:52:58 +0530 Subject: [PATCH 309/717] Vite plugin to add svg as inline data (#1072) * add vite plugin to add svg as inline data * Add node types package --- package-lock.json | 17 +++++++++++++++++ package.json | 2 ++ src/app/atoms/system-icons/RawIcon.jsx | 12 +++++------- vite.config.js | 2 ++ viteSvgLoader.ts | 16 ++++++++++++++++ 5 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 viteSvgLoader.ts diff --git a/package-lock.json b/package-lock.json index b60abb5c..673ba846 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ }, "devDependencies": { "@rollup/plugin-wasm": "6.1.1", + "@types/node": "18.11.18", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", "@typescript-eslint/eslint-plugin": "5.46.1", @@ -53,6 +54,7 @@ "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", + "mini-svg-data-uri": "1.4.4", "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", @@ -1054,6 +1056,12 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", + "dev": true + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -3768,6 +3776,15 @@ "node": ">=8.6" } }, + "node_modules/mini-svg-data-uri": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", + "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", + "dev": true, + "bin": { + "mini-svg-data-uri": "cli.js" + } + }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", diff --git a/package.json b/package.json index 5ba7933d..8ea3c31c 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ }, "devDependencies": { "@rollup/plugin-wasm": "6.1.1", + "@types/node": "18.11.18", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", "@typescript-eslint/eslint-plugin": "5.46.1", @@ -63,6 +64,7 @@ "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", + "mini-svg-data-uri": "1.4.4", "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", diff --git a/src/app/atoms/system-icons/RawIcon.jsx b/src/app/atoms/system-icons/RawIcon.jsx index 08acc66b..a6697f4f 100644 --- a/src/app/atoms/system-icons/RawIcon.jsx +++ b/src/app/atoms/system-icons/RawIcon.jsx @@ -2,20 +2,18 @@ import React from 'react'; import PropTypes from 'prop-types'; import './RawIcon.scss'; -function RawIcon({ - color, size, src, isImage, -}) { +function RawIcon({ color, size, src, isImage }) { const style = {}; if (color !== null) style.backgroundColor = color; if (isImage) { style.backgroundColor = 'transparent'; - style.backgroundImage = `url(${src})`; + style.backgroundImage = `url("${src}")`; } else { - style.WebkitMaskImage = `url(${src})`; - style.maskImage = `url(${src})`; + style.WebkitMaskImage = `url("${src}")`; + style.maskImage = `url("${src}")`; } - return ; + return ; } RawIcon.defaultProps = { diff --git a/vite.config.js b/vite.config.js index b46913be..7ca1baff 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,6 +2,7 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { wasm } from '@rollup/plugin-wasm'; import { viteStaticCopy } from 'vite-plugin-static-copy'; +import { svgLoader } from './viteSvgLoader'; const copyFiles = { targets: [ @@ -33,6 +34,7 @@ export default defineConfig({ }, plugins: [ viteStaticCopy(copyFiles), + svgLoader(), wasm(), react(), ], diff --git a/viteSvgLoader.ts b/viteSvgLoader.ts new file mode 100644 index 00000000..a119e3ed --- /dev/null +++ b/viteSvgLoader.ts @@ -0,0 +1,16 @@ +import svgToMiniDataURI from 'mini-svg-data-uri'; +import type { Plugin } from 'rollup'; +import fs from 'fs'; + +// TODO: remove this once https://github.com/vitejs/vite/pull/2909 gets merged +export const svgLoader = (): Plugin => ({ + name: 'vite-svg-patch-plugin', + transform: (code, id) => { + if (id.endsWith('.svg')) { + const extractedSvg = fs.readFileSync(id, 'utf8'); + const datauri = svgToMiniDataURI.toSrcset(extractedSvg); + return `export default "${datauri}"`; + } + return code; + }, +}); From 4ea14c853ee7b9c1a211a08e386fb323870e2ec2 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 15 Jan 2023 16:16:40 +1100 Subject: [PATCH 310/717] Release v2.2.3 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 10 ++++++++-- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 673ba846..ffea90a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.2", + "version": "2.2.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.2", + "version": "2.2.3", "license": "MIT", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index 8ea3c31c..4082853c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.2", + "version": "2.2.3", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 785047d7..584eaba4 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.2', + version: '2.2.3', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', @@ -12,7 +12,13 @@ const cons = { HOME: 'home', DIRECTS: 'dm', }, - supportEventTypes: ['m.room.create', 'm.room.message', 'm.room.encrypted', 'm.room.member', 'm.sticker'], + supportEventTypes: [ + 'm.room.create', + 'm.room.message', + 'm.room.encrypted', + 'm.room.member', + 'm.sticker', + ], notifs: { DEFAULT: 'default', ALL_MESSAGES: 'all_messages', From 3ad143228d544ff1d6a0645284a63a444ae1d537 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 30 Jan 2023 15:20:13 +1100 Subject: [PATCH 311/717] Use relative paths for build (#1094) --- vite.config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/vite.config.js b/vite.config.js index 7ca1baff..f4f588e5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -28,6 +28,7 @@ const copyFiles = { export default defineConfig({ appType: 'spa', publicDir: false, + base: "", server: { port: 8080, host: true, From 374d2d1962c92cb75c747c7cfa1d86f2fd7ef736 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 30 Jan 2023 15:20:53 +1100 Subject: [PATCH 312/717] Add node polyfills (#1093) * Add node polyfills * remove unused polyfill * enable fs in node polyfill * remove polyfill aliases and crypto * Fix build error * Fix buffer injection --- package-lock.json | 138 ++++++++++++++++++++++++++++++++++++++++++++++ package.json | 3 + vite.config.js | 21 +++++++ 3 files changed, 162 insertions(+) diff --git a/package-lock.json b/package-lock.json index ffea90a9..80aea6cb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,6 +40,8 @@ "twemoji": "14.0.2" }, "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "0.2.3", + "@rollup/plugin-inject": "5.0.3", "@rollup/plugin-wasm": "6.1.1", "@types/node": "18.11.18", "@types/react": "18.0.26", @@ -47,6 +49,7 @@ "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", "@vitejs/plugin-react": "3.0.0", + "buffer": "6.0.3", "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", "eslint-config-prettier": "8.5.0", @@ -454,6 +457,15 @@ "node": ">=6.9.0" } }, + "node_modules/@esbuild-plugins/node-globals-polyfill": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", + "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", + "dev": true, + "peerDependencies": { + "esbuild": "*" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.16.9", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.9.tgz", @@ -1010,6 +1022,34 @@ "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" }, + "node_modules/@rollup/plugin-inject": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", + "integrity": "sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "estree-walker": "^2.0.2", + "magic-string": "^0.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-inject/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/@rollup/plugin-wasm": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.1.1.tgz", @@ -1027,6 +1067,34 @@ } } }, + "node_modules/@rollup/pluginutils": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.2.tgz", + "integrity": "sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/@tippyjs/react": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/@tippyjs/react/-/react-4.2.6.tgz", @@ -1039,6 +1107,12 @@ "react-dom": ">=16.8" } }, + "node_modules/@types/estree": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", + "integrity": "sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==", + "dev": true + }, "node_modules/@types/events": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", @@ -1594,6 +1668,26 @@ "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -1671,6 +1765,30 @@ "base-x": "^4.0.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/call-bind": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", @@ -3174,6 +3292,26 @@ "entities": "^4.3.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.1.tgz", diff --git a/package.json b/package.json index 4082853c..a0e7bace 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,8 @@ "twemoji": "14.0.2" }, "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "0.2.3", + "@rollup/plugin-inject": "5.0.3", "@rollup/plugin-wasm": "6.1.1", "@types/node": "18.11.18", "@types/react": "18.0.26", @@ -57,6 +59,7 @@ "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", "@vitejs/plugin-react": "3.0.0", + "buffer": "6.0.3", "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", "eslint-config-prettier": "8.5.0", diff --git a/vite.config.js b/vite.config.js index f4f588e5..979e9aa0 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,6 +2,8 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { wasm } from '@rollup/plugin-wasm'; import { viteStaticCopy } from 'vite-plugin-static-copy'; +import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; +import inject from '@rollup/plugin-inject'; import { svgLoader } from './viteSvgLoader'; const copyFiles = { @@ -39,9 +41,28 @@ export default defineConfig({ wasm(), react(), ], + optimizeDeps: { + esbuildOptions: { + define: { + global: 'globalThis' + }, + plugins: [ + // Enable esbuild polyfill plugins + NodeGlobalsPolyfillPlugin({ + process: false, + buffer: true, + }), + ] + } + }, build: { outDir: 'dist', sourcemap: true, copyPublicDir: false, + rollupOptions: { + plugins: [ + inject({ Buffer: ['buffer', 'Buffer'] }) + ] + } }, }); From a6fb44e1abe9ad48136dee8e7d053e639f37bedc Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Mon, 30 Jan 2023 15:27:17 +1100 Subject: [PATCH 313/717] Release v2.2.4 --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 80aea6cb..bef7acdd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.3", + "version": "2.2.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.3", + "version": "2.2.4", "license": "MIT", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index a0e7bace..7e026b7b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.3", + "version": "2.2.4", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 584eaba4..86ddab98 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.3', + version: '2.2.4', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 44318d1ecd19700f010079d0836db7955fc23005 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Mon, 30 Jan 2023 15:46:56 +1100 Subject: [PATCH 314/717] Replace deprecated 'set-output' with '$GITHUB_OUTPUT' --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index fa09008a..5f8a77cf 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -36,7 +36,7 @@ jobs: timeout-minutes: 1 - name: Get version from tag id: vars - run: echo ::set-output name=tag::${GITHUB_REF#refs/*/} + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - name: Create tar.gz run: tar -czvf cinny-${{ steps.vars.outputs.tag }}.tar.gz dist - name: Sign tar.gz From 78951a3bc4fe499e68b2d709cdfb46e23b187e01 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 8 Feb 2023 17:13:05 +1100 Subject: [PATCH 315/717] Rename LICENSE to LICENSE.md --- LICENSE => LICENSE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename LICENSE => LICENSE.md (99%) diff --git a/LICENSE b/LICENSE.md similarity index 99% rename from LICENSE rename to LICENSE.md index 1f7a2841..7d151b3c 100644 --- a/LICENSE +++ b/LICENSE.md @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file +SOFTWARE. From e33a887055db2c62946940264977f1a74984b620 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Fri, 24 Feb 2023 17:28:04 +0530 Subject: [PATCH 316/717] Change license to AGPLv3 (#1115) * Add CLA github action * Change license to AGPLv3 --- .github/workflows/cla.yml | 36 +++ LICENSE | 661 ++++++++++++++++++++++++++++++++++++++ LICENSE.md | 21 -- README.md | 9 - package-lock.json | 2 +- package.json | 2 +- public/res/LICENSE | 395 ----------------------- public/res/README.md | 7 - 8 files changed, 699 insertions(+), 434 deletions(-) create mode 100644 .github/workflows/cla.yml create mode 100644 LICENSE delete mode 100644 LICENSE.md delete mode 100644 public/res/LICENSE delete mode 100644 public/res/README.md diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml new file mode 100644 index 00000000..b433b8d9 --- /dev/null +++ b/.github/workflows/cla.yml @@ -0,0 +1,36 @@ +name: 'CLA Assistant' +on: + issue_comment: + types: [created] + pull_request_target: + types: [opened, closed, synchronize] + +jobs: + CLAssistant: + runs-on: ubuntu-latest + steps: + - name: 'CLA Assistant' + if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' + # Beta Release + uses: cla-assistant/github-action@v2.2.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # the below token should have repo scope and must be manually added by you in the repository's secret + PERSONAL_ACCESS_TOKEN: ${{ secrets.CLA_PAT }} + with: + path-to-signatures: 'signatures.json' + path-to-document: 'https://github.com/cinnyapp/cla/blob/main/cla.md' # e.g. a CLA or a DCO document + # branch should not be protected + branch: 'main' + allowlist: ajbura,bot* + + #below are the optional inputs - If the optional inputs are not given, then default values will be taken + remote-organization-name: cinnyapp + remote-repository-name: cla + #create-file-commit-message: 'For example: Creating file for storing CLA Signatures' + #signed-commit-message: 'For example: $contributorName has signed the CLA in #$pullRequestNo' + #custom-notsigned-prcomment: 'pull request comment with Introductory message to ask new contributors to sign' + #custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA' + #custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.' + #lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true) + #use-dco-flag: true - If you are using DCO instead of CLA diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..bae94e18 --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 7d151b3c..00000000 --- a/LICENSE.md +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2021-present Ajay Bura (ajbura) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index acf76629..0db8ab6c 100644 --- a/README.md +++ b/README.md @@ -110,12 +110,3 @@ docker run -p 8080:80 cinny:latest ``` This will forward your `localhost` port 8080 to the container's port 80. You can visit the app in your browser by navigating to `http://localhost:8080`. - - -## License - -Copyright (c) 2021-present Ajay Bura (ajbura) - -Code licensed under the MIT License: - -Graphics licensed under CC-BY 4.0: diff --git a/package-lock.json b/package-lock.json index bef7acdd..e004ee5c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,7 +7,7 @@ "": { "name": "cinny", "version": "2.2.4", - "license": "MIT", + "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", diff --git a/package.json b/package.json index 7e026b7b..0ff2338b 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ }, "keywords": [], "author": "Ajay Bura", - "license": "MIT", + "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", "@fontsource/roboto": "4.5.8", diff --git a/public/res/LICENSE b/public/res/LICENSE deleted file mode 100644 index 4ea99c21..00000000 --- a/public/res/LICENSE +++ /dev/null @@ -1,395 +0,0 @@ -Attribution 4.0 International - -======================================================================= - -Creative Commons Corporation ("Creative Commons") is not a law firm and -does not provide legal services or legal advice. Distribution of -Creative Commons public licenses does not create a lawyer-client or -other relationship. Creative Commons makes its licenses and related -information available on an "as-is" basis. Creative Commons gives no -warranties regarding its licenses, any material licensed under their -terms and conditions, or any related information. Creative Commons -disclaims all liability for damages resulting from their use to the -fullest extent possible. - -Using Creative Commons Public Licenses - -Creative Commons public licenses provide a standard set of terms and -conditions that creators and other rights holders may use to share -original works of authorship and other material subject to copyright -and certain other rights specified in the public license below. The -following considerations are for informational purposes only, are not -exhaustive, and do not form part of our licenses. - - Considerations for licensors: Our public licenses are - intended for use by those authorized to give the public - permission to use material in ways otherwise restricted by - copyright and certain other rights. Our licenses are - irrevocable. Licensors should read and understand the terms - and conditions of the license they choose before applying it. - Licensors should also secure all rights necessary before - applying our licenses so that the public can reuse the - material as expected. Licensors should clearly mark any - material not subject to the license. This includes other CC- - licensed material, or material used under an exception or - limitation to copyright. More considerations for licensors: - wiki.creativecommons.org/Considerations_for_licensors - - Considerations for the public: By using one of our public - licenses, a licensor grants the public permission to use the - licensed material under specified terms and conditions. If - the licensor's permission is not necessary for any reason--for - example, because of any applicable exception or limitation to - copyright--then that use is not regulated by the license. Our - licenses grant only permissions under copyright and certain - other rights that a licensor has authority to grant. Use of - the licensed material may still be restricted for other - reasons, including because others have copyright or other - rights in the material. A licensor may make special requests, - such as asking that all changes be marked or described. - Although not required by our licenses, you are encouraged to - respect those requests where reasonable. More considerations - for the public: - wiki.creativecommons.org/Considerations_for_licensees - -======================================================================= - -Creative Commons Attribution 4.0 International Public License - -By exercising the Licensed Rights (defined below), You accept and agree -to be bound by the terms and conditions of this Creative Commons -Attribution 4.0 International Public License ("Public License"). To the -extent this Public License may be interpreted as a contract, You are -granted the Licensed Rights in consideration of Your acceptance of -these terms and conditions, and the Licensor grants You such rights in -consideration of benefits the Licensor receives from making the -Licensed Material available under these terms and conditions. - - -Section 1 -- Definitions. - - a. Adapted Material means material subject to Copyright and Similar - Rights that is derived from or based upon the Licensed Material - and in which the Licensed Material is translated, altered, - arranged, transformed, or otherwise modified in a manner requiring - permission under the Copyright and Similar Rights held by the - Licensor. For purposes of this Public License, where the Licensed - Material is a musical work, performance, or sound recording, - Adapted Material is always produced where the Licensed Material is - synched in timed relation with a moving image. - - b. Adapter's License means the license You apply to Your Copyright - and Similar Rights in Your contributions to Adapted Material in - accordance with the terms and conditions of this Public License. - - c. Copyright and Similar Rights means copyright and/or similar rights - closely related to copyright including, without limitation, - performance, broadcast, sound recording, and Sui Generis Database - Rights, without regard to how the rights are labeled or - categorized. For purposes of this Public License, the rights - specified in Section 2(b)(1)-(2) are not Copyright and Similar - Rights. - - d. Effective Technological Measures means those measures that, in the - absence of proper authority, may not be circumvented under laws - fulfilling obligations under Article 11 of the WIPO Copyright - Treaty adopted on December 20, 1996, and/or similar international - agreements. - - e. Exceptions and Limitations means fair use, fair dealing, and/or - any other exception or limitation to Copyright and Similar Rights - that applies to Your use of the Licensed Material. - - f. Licensed Material means the artistic or literary work, database, - or other material to which the Licensor applied this Public - License. - - g. Licensed Rights means the rights granted to You subject to the - terms and conditions of this Public License, which are limited to - all Copyright and Similar Rights that apply to Your use of the - Licensed Material and that the Licensor has authority to license. - - h. Licensor means the individual(s) or entity(ies) granting rights - under this Public License. - - i. Share means to provide material to the public by any means or - process that requires permission under the Licensed Rights, such - as reproduction, public display, public performance, distribution, - dissemination, communication, or importation, and to make material - available to the public including in ways that members of the - public may access the material from a place and at a time - individually chosen by them. - - j. Sui Generis Database Rights means rights other than copyright - resulting from Directive 96/9/EC of the European Parliament and of - the Council of 11 March 1996 on the legal protection of databases, - as amended and/or succeeded, as well as other essentially - equivalent rights anywhere in the world. - - k. You means the individual or entity exercising the Licensed Rights - under this Public License. Your has a corresponding meaning. - - -Section 2 -- Scope. - - a. License grant. - - 1. Subject to the terms and conditions of this Public License, - the Licensor hereby grants You a worldwide, royalty-free, - non-sublicensable, non-exclusive, irrevocable license to - exercise the Licensed Rights in the Licensed Material to: - - a. reproduce and Share the Licensed Material, in whole or - in part; and - - b. produce, reproduce, and Share Adapted Material. - - 2. Exceptions and Limitations. For the avoidance of doubt, where - Exceptions and Limitations apply to Your use, this Public - License does not apply, and You do not need to comply with - its terms and conditions. - - 3. Term. The term of this Public License is specified in Section - 6(a). - - 4. Media and formats; technical modifications allowed. The - Licensor authorizes You to exercise the Licensed Rights in - all media and formats whether now known or hereafter created, - and to make technical modifications necessary to do so. The - Licensor waives and/or agrees not to assert any right or - authority to forbid You from making technical modifications - necessary to exercise the Licensed Rights, including - technical modifications necessary to circumvent Effective - Technological Measures. For purposes of this Public License, - simply making modifications authorized by this Section 2(a) - (4) never produces Adapted Material. - - 5. Downstream recipients. - - a. Offer from the Licensor -- Licensed Material. Every - recipient of the Licensed Material automatically - receives an offer from the Licensor to exercise the - Licensed Rights under the terms and conditions of this - Public License. - - b. No downstream restrictions. You may not offer or impose - any additional or different terms or conditions on, or - apply any Effective Technological Measures to, the - Licensed Material if doing so restricts exercise of the - Licensed Rights by any recipient of the Licensed - Material. - - 6. No endorsement. Nothing in this Public License constitutes or - may be construed as permission to assert or imply that You - are, or that Your use of the Licensed Material is, connected - with, or sponsored, endorsed, or granted official status by, - the Licensor or others designated to receive attribution as - provided in Section 3(a)(1)(A)(i). - - b. Other rights. - - 1. Moral rights, such as the right of integrity, are not - licensed under this Public License, nor are publicity, - privacy, and/or other similar personality rights; however, to - the extent possible, the Licensor waives and/or agrees not to - assert any such rights held by the Licensor to the limited - extent necessary to allow You to exercise the Licensed - Rights, but not otherwise. - - 2. Patent and trademark rights are not licensed under this - Public License. - - 3. To the extent possible, the Licensor waives any right to - collect royalties from You for the exercise of the Licensed - Rights, whether directly or through a collecting society - under any voluntary or waivable statutory or compulsory - licensing scheme. In all other cases the Licensor expressly - reserves any right to collect such royalties. - - -Section 3 -- License Conditions. - -Your exercise of the Licensed Rights is expressly made subject to the -following conditions. - - a. Attribution. - - 1. If You Share the Licensed Material (including in modified - form), You must: - - a. retain the following if it is supplied by the Licensor - with the Licensed Material: - - i. identification of the creator(s) of the Licensed - Material and any others designated to receive - attribution, in any reasonable manner requested by - the Licensor (including by pseudonym if - designated); - - ii. a copyright notice; - - iii. a notice that refers to this Public License; - - iv. a notice that refers to the disclaimer of - warranties; - - v. a URI or hyperlink to the Licensed Material to the - extent reasonably practicable; - - b. indicate if You modified the Licensed Material and - retain an indication of any previous modifications; and - - c. indicate the Licensed Material is licensed under this - Public License, and include the text of, or the URI or - hyperlink to, this Public License. - - 2. You may satisfy the conditions in Section 3(a)(1) in any - reasonable manner based on the medium, means, and context in - which You Share the Licensed Material. For example, it may be - reasonable to satisfy the conditions by providing a URI or - hyperlink to a resource that includes the required - information. - - 3. If requested by the Licensor, You must remove any of the - information required by Section 3(a)(1)(A) to the extent - reasonably practicable. - - 4. If You Share Adapted Material You produce, the Adapter's - License You apply must not prevent recipients of the Adapted - Material from complying with this Public License. - - -Section 4 -- Sui Generis Database Rights. - -Where the Licensed Rights include Sui Generis Database Rights that -apply to Your use of the Licensed Material: - - a. for the avoidance of doubt, Section 2(a)(1) grants You the right - to extract, reuse, reproduce, and Share all or a substantial - portion of the contents of the database; - - b. if You include all or a substantial portion of the database - contents in a database in which You have Sui Generis Database - Rights, then the database in which You have Sui Generis Database - Rights (but not its individual contents) is Adapted Material; and - - c. You must comply with the conditions in Section 3(a) if You Share - all or a substantial portion of the contents of the database. - -For the avoidance of doubt, this Section 4 supplements and does not -replace Your obligations under this Public License where the Licensed -Rights include other Copyright and Similar Rights. - - -Section 5 -- Disclaimer of Warranties and Limitation of Liability. - - a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE - EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS - AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF - ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, - IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, - WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, - ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT - KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT - ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. - - b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE - TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, - NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, - INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, - COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR - USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN - ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR - DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR - IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. - - c. The disclaimer of warranties and limitation of liability provided - above shall be interpreted in a manner that, to the extent - possible, most closely approximates an absolute disclaimer and - waiver of all liability. - - -Section 6 -- Term and Termination. - - a. This Public License applies for the term of the Copyright and - Similar Rights licensed here. However, if You fail to comply with - this Public License, then Your rights under this Public License - terminate automatically. - - b. Where Your right to use the Licensed Material has terminated under - Section 6(a), it reinstates: - - 1. automatically as of the date the violation is cured, provided - it is cured within 30 days of Your discovery of the - violation; or - - 2. upon express reinstatement by the Licensor. - - For the avoidance of doubt, this Section 6(b) does not affect any - right the Licensor may have to seek remedies for Your violations - of this Public License. - - c. For the avoidance of doubt, the Licensor may also offer the - Licensed Material under separate terms or conditions or stop - distributing the Licensed Material at any time; however, doing so - will not terminate this Public License. - - d. Sections 1, 5, 6, 7, and 8 survive termination of this Public - License. - - -Section 7 -- Other Terms and Conditions. - - a. The Licensor shall not be bound by any additional or different - terms or conditions communicated by You unless expressly agreed. - - b. Any arrangements, understandings, or agreements regarding the - Licensed Material not stated herein are separate from and - independent of the terms and conditions of this Public License. - - -Section 8 -- Interpretation. - - a. For the avoidance of doubt, this Public License does not, and - shall not be interpreted to, reduce, limit, restrict, or impose - conditions on any use of the Licensed Material that could lawfully - be made without permission under this Public License. - - b. To the extent possible, if any provision of this Public License is - deemed unenforceable, it shall be automatically reformed to the - minimum extent necessary to make it enforceable. If the provision - cannot be reformed, it shall be severed from this Public License - without affecting the enforceability of the remaining terms and - conditions. - - c. No term or condition of this Public License will be waived and no - failure to comply consented to unless expressly agreed to by the - Licensor. - - d. Nothing in this Public License constitutes or may be interpreted - as a limitation upon, or waiver of, any privileges and immunities - that apply to the Licensor or You, including from the legal - processes of any jurisdiction or authority. - - -======================================================================= - -Creative Commons is not a party to its public -licenses. Notwithstanding, Creative Commons may elect to apply one of -its public licenses to material it publishes and in those instances -will be considered the “Licensor.” The text of the Creative Commons -public licenses is dedicated to the public domain under the CC0 Public -Domain Dedication. Except for the limited purpose of indicating that -material is shared under a Creative Commons public license or as -otherwise permitted by the Creative Commons policies published at -creativecommons.org/policies, Creative Commons does not authorize the -use of the trademark "Creative Commons" or any other trademark or logo -of Creative Commons without its prior written consent including, -without limitation, in connection with any unauthorized modifications -to any of its public licenses or any other arrangements, -understandings, or agreements concerning use of licensed material. For -the avoidance of doubt, this paragraph does not form part of the -public licenses. - -Creative Commons may be contacted at creativecommons.org. diff --git a/public/res/README.md b/public/res/README.md deleted file mode 100644 index 4e4f7c7a..00000000 --- a/public/res/README.md +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2021-present Ajay Bura (ajbura) - -Graphic content is licensed under a -Creative Commons Attribution 4.0 International License. - -You should have received a copy of the license along with this -work. If not, see ;. \ No newline at end of file From e446fc47ce6e3632b089682142e6e058712b1a6e Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 26 Feb 2023 14:22:05 +0530 Subject: [PATCH 317/717] Add screenshot in readme (#1140) --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 0db8ab6c..0d4a38ac 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ A Matrix client focusing primarily on simple, elegant and secure interface. The - [Roadmap](https://github.com/ajbura/cinny/projects/11) - [Contributing](./CONTRIBUTING.md) + + ## Getting started Web app is available at https://app.cinny.in and gets updated on each new release. The `dev` branch is continuously deployed at https://dev.cinny.in but keep in mind that it could have things broken. From 863612d1a1aadcde90ee8612150eacd2c32a28b9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 14:17:00 +1100 Subject: [PATCH 318/717] fix(deps): update dependency matrix-js-sdk to v24 (#1175) * fix(deps): update dependency matrix-js-sdk to v24 * Update build-pull-request.yml * Update netlify-dev.yml * Update prod-deploy.yml --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 + .github/workflows/netlify-dev.yml | 2 + .github/workflows/prod-deploy.yml | 2 + package-lock.json | 58 +++++++++++++----------- package.json | 2 +- 5 files changed, 38 insertions(+), 28 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 5eac02eb..5be04293 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -21,6 +21,8 @@ jobs: - name: Install dependencies run: npm ci - name: Build app + env: + NODE_OPTIONS: "--max_old_space_size=4096" run: npm run build - name: Upload artifact uses: actions/upload-artifact@v3.1.1 diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 6f26247b..12785f46 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -20,6 +20,8 @@ jobs: - name: Install dependencies run: npm ci - name: Build app + env: + NODE_OPTIONS: "--max_old_space_size=4096" run: npm run build - name: Deploy to Netlify uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 5f8a77cf..8d72a86e 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -19,6 +19,8 @@ jobs: - name: Install dependencies run: npm ci - name: Build app + env: + NODE_OPTIONS: "--max_old_space_size=4096" run: npm run build - name: Deploy to Netlify uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 diff --git a/package-lock.json b/package-lock.json index e004ee5c..1fe6213e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "22.0.0", + "matrix-js-sdk": "24.0.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -958,6 +958,14 @@ "react-dom": "16.14.0" } }, + "node_modules/@matrix-org/matrix-sdk-crypto-js": { + "version": "0.1.0-alpha.5", + "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-js/-/matrix-sdk-crypto-js-0.1.0-alpha.5.tgz", + "integrity": "sha512-2KjAgWNGfuGLNjJwsrs6gGX157vmcTfNrA4u249utgnMPbJl7QwuUqh1bGxQ0PpK06yvZjgPlkna0lTbuwtuQw==", + "engines": { + "node": ">= 10" + } + }, "node_modules/@matrix-org/olm": { "version": "3.2.14", "resolved": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.14.tgz", @@ -1170,11 +1178,6 @@ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==" }, - "node_modules/@types/sdp-transform": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/@types/sdp-transform/-/sdp-transform-2.4.5.tgz", - "integrity": "sha512-GVO0gnmbyO3Oxm2HdPsYUNcyihZE3GyCY8ysMYHuQGfLhGZq89Nm4lSzULWTzZoyHtg+VO/IdrnxZHPnPSGnAg==" - }, "node_modules/@types/semver": { "version": "7.3.13", "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz", @@ -1793,6 +1796,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -3025,7 +3029,8 @@ "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true }, "node_modules/function.prototype.name": { "version": "1.1.5", @@ -3067,6 +3072,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3180,6 +3186,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -3221,6 +3228,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -3862,12 +3870,12 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { - "version": "22.0.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-22.0.0.tgz", - "integrity": "sha512-mpKqeD3nCobjGiUiATUyEoP44n+AzDW5cSeBTIBY5fPhj0AkzLJhblHt40vzSOJazj8tT0PhsSzhEIR9hGzYGA==", + "version": "24.0.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-24.0.0.tgz", + "integrity": "sha512-AOhO036ziDf6lwYoauj5DES/RJ6RDTq+vrK2yO/GW/8n+bAXhkjWc9AA/WcTK/9SkNHS46ZanmolkhS1n8WniQ==", "dependencies": { "@babel/runtime": "^7.12.5", - "@types/sdp-transform": "^2.4.5", + "@matrix-org/matrix-sdk-crypto-js": "^0.1.0-alpha.3", "another-json": "^0.2.0", "bs58": "^5.0.0", "content-type": "^1.0.4", @@ -3875,9 +3883,9 @@ "matrix-events-sdk": "0.0.1", "matrix-widget-api": "^1.0.0", "p-retry": "4", - "qs": "^6.9.6", "sdp-transform": "^2.14.1", - "unhomoglyph": "^1.0.6" + "unhomoglyph": "^1.0.6", + "uuid": "9" }, "engines": { "node": ">=16.0.0" @@ -4019,6 +4027,7 @@ "version": "1.12.2", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4329,20 +4338,6 @@ "node": ">=6" } }, - "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4770,6 +4765,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -5139,6 +5135,14 @@ "punycode": "^2.1.0" } }, + "node_modules/uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/vite": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.1.tgz", diff --git a/package.json b/package.json index 0ff2338b..b98f2890 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "22.0.0", + "matrix-js-sdk": "24.0.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 8524472d3874516f5a12ce0c2d242ccfe3ecea59 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 29 Mar 2023 14:30:52 +1100 Subject: [PATCH 319/717] Release v2.2.5 (#1176) * Update package.json * Update package-lock.json * Update cons.js --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fe6213e..8c8f776b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.4", + "version": "2.2.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.4", + "version": "2.2.5", "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index b98f2890..dd23454c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.4", + "version": "2.2.5", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 86ddab98..ae39c317 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.4', + version: '2.2.5', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From cfddaaae1368e9f240520d178e1f1fea2b5e3d50 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 29 Mar 2023 21:57:05 +1100 Subject: [PATCH 320/717] Fix docker build failing (#1177) --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 968ca1d1..af9abbd9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,6 +6,7 @@ WORKDIR /src COPY .npmrc package.json package-lock.json /src/ RUN npm ci COPY . /src/ +ENV NODE_OPTIONS=--max_old_space_size=4096 RUN npm run build From f6694031a1581af171ffe1658138dfcf344d6c6c Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 29 Mar 2023 22:02:01 +1100 Subject: [PATCH 321/717] Release v2.2.6 (#1178) * Update package.json * Update package-lock.json * Update cons.js --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c8f776b..2cca1d0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.5", + "version": "2.2.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.5", + "version": "2.2.6", "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index dd23454c..a37b6242 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.5", + "version": "2.2.6", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index ae39c317..8d9fda54 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.5', + version: '2.2.6', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From dcad1840c428933392eaafdb3a4da63484fdd36a Mon Sep 17 00:00:00 2001 From: Bo Date: Thu, 30 Mar 2023 16:42:33 +0200 Subject: [PATCH 322/717] fix: Fixed small typo an cross signing reset modal (#1112) --- src/app/organisms/settings/CrossSigning.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/settings/CrossSigning.jsx b/src/app/organisms/settings/CrossSigning.jsx index 9213e9da..563e3152 100644 --- a/src/app/organisms/settings/CrossSigning.jsx +++ b/src/app/organisms/settings/CrossSigning.jsx @@ -188,7 +188,7 @@ function CrossSigningReset() { {twemojify('✋🧑‍🚒🤚')} Resetting cross-signing keys is permanent. - Anyone you have verified with will see security alerts and your message backup will lost. + Anyone you have verified with will see security alerts and your message backup will be lost. You almost certainly do not want to do this, unless you have lost Security Key or Phrase and every session you can cross-sign from. From da92ce3a46ab4f702f518c728437b1fb574ef0fc Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 16 Apr 2023 22:22:01 +1000 Subject: [PATCH 323/717] fix: spoiler hidden link click (#1199) --- src/app/organisms/room/RoomViewContent.jsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app/organisms/room/RoomViewContent.jsx b/src/app/organisms/room/RoomViewContent.jsx index 745ece82..74bc7e26 100644 --- a/src/app/organisms/room/RoomViewContent.jsx +++ b/src/app/organisms/room/RoomViewContent.jsx @@ -114,6 +114,7 @@ function handleOnClickCapture(e) { const spoiler = nativeEvent.composedPath().find((el) => el?.hasAttribute?.('data-mx-spoiler')); if (spoiler) { + if (!spoiler.classList.contains('data-mx-spoiler--visible')) e.preventDefault(); spoiler.classList.toggle('data-mx-spoiler--visible'); } } From 2055d7a07fdd0a1faf25deb3be040f6de7932023 Mon Sep 17 00:00:00 2001 From: Thumbscrew Date: Sun, 28 May 2023 16:54:10 +0100 Subject: [PATCH 324/717] add document.hasFocus check for incoming room events (#1252) --- src/app/organisms/room/RoomViewContent.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/room/RoomViewContent.jsx b/src/app/organisms/room/RoomViewContent.jsx index 74bc7e26..0a9256ce 100644 --- a/src/app/organisms/room/RoomViewContent.jsx +++ b/src/app/organisms/room/RoomViewContent.jsx @@ -358,7 +358,7 @@ function useEventArrive(roomTimeline, readUptoEvtStore, timelineScrollRef, event const isViewingLive = roomTimeline.isServingLiveTimeline() && limit.length >= tLength - 1; const isAttached = timelineScroll.bottom < SCROLL_TRIGGER_POS; - if (isViewingLive && isAttached) { + if (isViewingLive && isAttached && document.hasFocus()) { limit.setFrom(tLength - limit.maxEvents); trySendReadReceipt(event); setEvent(event); From 0b06bed1db9fee695407ad8088500e7266921751 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:15:23 +1000 Subject: [PATCH 325/717] Refactor state & Custom editor (#1190) * Fix eslint * Enable ts strict mode * install folds, jotai & immer * Enable immer map/set * change cross-signing alert anim to 30 iteration * Add function to access matrix client * Add new types * Add disposable util * Add room utils * Add mDirect list atom * Add invite list atom * add room list atom * add utils for jotai atoms * Add room id to parents atom * Add mute list atom * Add room to unread atom * Use hook to bind atoms with sdk * Add settings atom * Add settings hook * Extract set settings hook * Add Sidebar components * WIP * Add bind atoms hook * Fix init muted room list atom * add navigation atoms * Add custom editor * Fix hotkeys * Update folds * Add editor output function * Add matrix client context * Add tooltip to editor toolbar items * WIP - Add editor to room input * Refocus editor on toolbar item click * Add Mentions - WIP * update folds * update mention focus outline * rename emoji element type * Add auto complete menu * add autocomplete query functions * add index file for editor * fix bug in getPrevWord function * Show room mention autocomplete * Add async search function * add use async search hook * use async search in room mention autocomplete * remove folds prefer font for now * allow number array in async search * reset search with empty query * Autocomplete unknown room mention * Autocomplete first room mention on tab * fix roomAliasFromQueryText * change mention color to primary * add isAlive hook * add getMxIdLocalPart to mx utils * fix getRoomAvatarUrl size * fix types * add room members hook * fix bug in room mention * add user mention autocomplete * Fix async search giving prev result after no match * update folds * add twemoji font * add use state provider hook * add prevent scroll with arrow key util * add ts to custom-emoji and emoji files * add types * add hook for emoji group labels * add hook for emoji group icons * add emoji board with basic emoji * add emojiboard in room input * select multiple emoji with shift press * display custom emoji in emojiboard * Add emoji preview * focus element on hover * update folds * position emojiboard properly * convert recent-emoji.js to ts * add use recent emoji hook * add io.element.recent_emoji to account data evt * Render recent emoji in emoji board * show custom emoji from parent spaces * show room emoji * improve emoji sidebar * update folds * fix pack avatar and name fallback in emoji board * add stickers to emoji board * fix bug in emoji preview * Add sticker icon in room input * add debounce hook * add search in emoji board * Optimize emoji board * fix emoji board sidebar divider * sync emojiboard sidebar with scroll & update ui * Add use throttle hook * support custom emoji in editor * remove duplicate emoji selection function * fix emoji and mention spacing * add emoticon autocomplete in editor * fix string * makes emoji size relative to font size in editor * add option to render link element * add spoiler in editor * fix sticker in emoji board search using wrong type * render custom placeholder * update hotkey for block quote and block code * add terminate search function in async search * add getImageInfo to matrix utils * send stickers * add resize observer hook * move emoji board component hooks in hooks dir * prevent editor expand hides room timeline * send typing notifications * improve emoji style and performance * fix imports * add on paste param to editor * add selectFile utils * add file picker hook * add file paste handler hook * add file drop handler * update folds * Add file upload card * add bytes to size util * add blurHash util * add await to js lib * add browser-encrypt-attachment types * add list atom * convert mimetype file to ts * add matrix types * add matrix file util * add file related dom utils * add common utils * add upload atom * add room input draft atom * add upload card renderer component * add upload board component * add support for file upload in editor * send files with message / enter * fix circular deps * store editor toolbar state in local store * move msg content util to separate file * store msg draft on room switch * fix following member not updating on msg sent * add theme for folds component * fix system default theme * Add reply support in editor * prevent initMatrix to init multiple time * add state event hooks * add async callback hook * Show tombstone info for tombstone room * fix room tombstone component border * add power level hook * Add room input placeholder component * Show input placeholder for muted member --- .eslintrc.js | 2 + index.html | 2 +- package-lock.json | 764 ++++++++++++---- package.json | 19 +- public/font/Twemoji.Mozilla.v.7.0.woff2 | Bin 0 -> 472228 bytes public/font/Twemoji.Mozilla.v0.7.0.ttf | Bin 0 -> 1474284 bytes src/app/components/UseStateProvider.tsx | 9 + src/app/components/editor/Editor.css.ts | 63 ++ src/app/components/editor/Editor.preview.tsx | 82 ++ src/app/components/editor/Editor.tsx | 151 +++ src/app/components/editor/Elements.css.ts | 142 +++ src/app/components/editor/Elements.tsx | 254 ++++++ src/app/components/editor/Toolbar.tsx | 247 +++++ .../autocomplete/AutocompleteMenu.css.tsx | 35 + .../editor/autocomplete/AutocompleteMenu.tsx | 40 + .../autocomplete/EmoticonAutocomplete.tsx | 129 +++ .../autocomplete/RoomMentionAutocomplete.tsx | 181 ++++ .../autocomplete/UserMentionAutocomplete.tsx | 191 ++++ .../editor/autocomplete/autocompleteQuery.ts | 46 + .../components/editor/autocomplete/index.ts | 5 + src/app/components/editor/common.ts | 194 ++++ src/app/components/editor/index.ts | 7 + src/app/components/editor/keyboard.ts | 40 + src/app/components/editor/output.ts | 95 ++ src/app/components/editor/slate.d.ts | 107 +++ .../components/emoji-board/EmojiBoard.css.tsx | 134 +++ src/app/components/emoji-board/EmojiBoard.tsx | 860 ++++++++++++++++++ src/app/components/emoji-board/index.ts | 1 + .../emoji-board/useEmojiGroupIcons.ts | 21 + .../emoji-board/useEmojiGroupLabels.ts | 19 + src/app/components/sidebar/Sidebar.css.ts | 111 +++ src/app/components/sidebar/Sidebar.tsx | 8 + src/app/components/sidebar/SidebarAvatar.tsx | 75 ++ src/app/components/sidebar/SidebarContent.tsx | 21 + src/app/components/sidebar/SidebarStack.tsx | 10 + .../sidebar/SidebarStackSeparator.tsx | 13 + src/app/components/sidebar/index.ts | 5 + .../upload-board/UploadBoard.css.ts | 46 + .../components/upload-board/UploadBoard.tsx | 145 +++ src/app/components/upload-board/index.ts | 1 + .../components/upload-card/UploadCard.css.ts | 24 + src/app/components/upload-card/UploadCard.tsx | 63 ++ .../upload-card/UploadCardRenderer.tsx | 89 ++ src/app/components/upload-card/index.ts | 2 + src/app/hooks/useAlive.ts | 15 + src/app/hooks/useAsyncCallback.ts | 70 ++ src/app/hooks/useAsyncSearch.ts | 81 ++ src/app/hooks/useDebounce.ts | 34 + src/app/hooks/useFileDrop.ts | 66 ++ src/app/hooks/useFilePasteHandler.ts | 11 + src/app/hooks/useFilePicker.ts | 15 + src/app/hooks/useForceUpdate.ts | 9 + src/app/hooks/useImagePacks.ts | 48 + src/app/hooks/useKeyDown.ts | 10 + src/app/hooks/useMatrixClient.ts | 12 + src/app/hooks/usePowerLevels.ts | 86 ++ src/app/hooks/useRecentEmoji.ts | 23 + src/app/hooks/useResizeObserver.ts | 24 + src/app/hooks/useRoomMembers.ts | 34 + src/app/hooks/useStateEvent.ts | 32 + src/app/hooks/useStateEventCallback.ts | 17 + src/app/hooks/useStateEvents.ts | 28 + src/app/hooks/useThrottle.ts | 41 + src/app/hooks/useTypingStatusUpdater.ts | 42 + .../following-members/FollowingMembers.jsx | 38 +- src/app/organisms/drag-drop/DragDrop.jsx | 24 - src/app/organisms/drag-drop/DragDrop.scss | 12 - src/app/organisms/navigation/SideBar.scss | 16 +- src/app/organisms/navigation/Sidebar1.tsx | 125 +++ src/app/organisms/room/Room.jsx | 12 +- src/app/organisms/room/RoomInput.tsx | 539 +++++++++++ .../room/RoomInputPlaceholder.css.ts | 10 + .../organisms/room/RoomInputPlaceholder.tsx | 11 + src/app/organisms/room/RoomTombstone.css.ts | 7 + src/app/organisms/room/RoomTombstone.tsx | 67 ++ src/app/organisms/room/RoomView.jsx | 60 +- src/app/organisms/room/RoomView.scss | 9 +- src/app/organisms/room/RoomViewContent.jsx | 21 +- src/app/organisms/room/msgContent.ts | 148 +++ src/app/pages/App.jsx | 9 +- src/app/plugins/custom-emoji.ts | 293 ++++++ src/app/plugins/emoji.ts | 104 +++ src/app/plugins/recent-emoji.ts | 44 + src/app/state/hooks/inviteList.ts | 63 ++ src/app/state/hooks/roomList.ts | 54 ++ src/app/state/hooks/settings.ts | 34 + src/app/state/hooks/useBindAtoms.ts | 16 + src/app/state/inviteList.ts | 32 + src/app/state/list.ts | 33 + src/app/state/mDirectList.ts | 47 + src/app/state/mutedRoomList.ts | 101 ++ src/app/state/roomInputDrafts.ts | 48 + src/app/state/roomList.ts | 31 + src/app/state/roomToParents.ts | 120 +++ src/app/state/roomToUnread.ts | 219 +++++ src/app/state/selectedRoom.ts | 3 + src/app/state/selectedTab.ts | 8 + src/app/state/settings.ts | 49 + src/app/state/tabToRoom.ts | 34 + src/app/state/upload.ts | 146 +++ src/app/state/utils.ts | 64 ++ src/app/templates/client/Client.jsx | 114 +-- src/app/utils/AsyncSearch.ts | 102 +++ src/app/utils/blurHash.ts | 19 + src/app/utils/common.ts | 32 + src/app/utils/disposable.ts | 8 + src/app/utils/dom.ts | 133 +++ src/app/utils/key-symbol.ts | 6 + src/app/utils/keyboard.ts | 25 + src/app/utils/matrix.ts | 118 +++ src/app/utils/mimeTypes.ts | 47 + src/app/utils/room.ts | 265 ++++++ src/app/utils/sanitize.ts | 10 + src/app/utils/user-agent.ts | 5 + src/client/initMatrix.js | 5 + src/client/mx.ts | 7 + src/client/state/RoomList.js | 6 - src/client/state/settings.js | 24 +- src/colors.css.ts | 238 +++++ src/ext.d.ts | 23 + src/index.jsx | 10 + src/index.scss | 107 +-- src/types/matrix/accountData.ts | 12 + src/types/matrix/common.ts | 22 + src/types/matrix/room.ts | 61 ++ src/util/sanitize.js | 2 +- tsconfig.json | 3 +- vite.config.js | 2 + 128 files changed, 8799 insertions(+), 409 deletions(-) create mode 100644 public/font/Twemoji.Mozilla.v.7.0.woff2 create mode 100644 public/font/Twemoji.Mozilla.v0.7.0.ttf create mode 100644 src/app/components/UseStateProvider.tsx create mode 100644 src/app/components/editor/Editor.css.ts create mode 100644 src/app/components/editor/Editor.preview.tsx create mode 100644 src/app/components/editor/Editor.tsx create mode 100644 src/app/components/editor/Elements.css.ts create mode 100644 src/app/components/editor/Elements.tsx create mode 100644 src/app/components/editor/Toolbar.tsx create mode 100644 src/app/components/editor/autocomplete/AutocompleteMenu.css.tsx create mode 100644 src/app/components/editor/autocomplete/AutocompleteMenu.tsx create mode 100644 src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx create mode 100644 src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx create mode 100644 src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx create mode 100644 src/app/components/editor/autocomplete/autocompleteQuery.ts create mode 100644 src/app/components/editor/autocomplete/index.ts create mode 100644 src/app/components/editor/common.ts create mode 100644 src/app/components/editor/index.ts create mode 100644 src/app/components/editor/keyboard.ts create mode 100644 src/app/components/editor/output.ts create mode 100644 src/app/components/editor/slate.d.ts create mode 100644 src/app/components/emoji-board/EmojiBoard.css.tsx create mode 100644 src/app/components/emoji-board/EmojiBoard.tsx create mode 100644 src/app/components/emoji-board/index.ts create mode 100644 src/app/components/emoji-board/useEmojiGroupIcons.ts create mode 100644 src/app/components/emoji-board/useEmojiGroupLabels.ts create mode 100644 src/app/components/sidebar/Sidebar.css.ts create mode 100644 src/app/components/sidebar/Sidebar.tsx create mode 100644 src/app/components/sidebar/SidebarAvatar.tsx create mode 100644 src/app/components/sidebar/SidebarContent.tsx create mode 100644 src/app/components/sidebar/SidebarStack.tsx create mode 100644 src/app/components/sidebar/SidebarStackSeparator.tsx create mode 100644 src/app/components/sidebar/index.ts create mode 100644 src/app/components/upload-board/UploadBoard.css.ts create mode 100644 src/app/components/upload-board/UploadBoard.tsx create mode 100644 src/app/components/upload-board/index.ts create mode 100644 src/app/components/upload-card/UploadCard.css.ts create mode 100644 src/app/components/upload-card/UploadCard.tsx create mode 100644 src/app/components/upload-card/UploadCardRenderer.tsx create mode 100644 src/app/components/upload-card/index.ts create mode 100644 src/app/hooks/useAlive.ts create mode 100644 src/app/hooks/useAsyncCallback.ts create mode 100644 src/app/hooks/useAsyncSearch.ts create mode 100644 src/app/hooks/useDebounce.ts create mode 100644 src/app/hooks/useFileDrop.ts create mode 100644 src/app/hooks/useFilePasteHandler.ts create mode 100644 src/app/hooks/useFilePicker.ts create mode 100644 src/app/hooks/useForceUpdate.ts create mode 100644 src/app/hooks/useImagePacks.ts create mode 100644 src/app/hooks/useKeyDown.ts create mode 100644 src/app/hooks/useMatrixClient.ts create mode 100644 src/app/hooks/usePowerLevels.ts create mode 100644 src/app/hooks/useRecentEmoji.ts create mode 100644 src/app/hooks/useResizeObserver.ts create mode 100644 src/app/hooks/useRoomMembers.ts create mode 100644 src/app/hooks/useStateEvent.ts create mode 100644 src/app/hooks/useStateEventCallback.ts create mode 100644 src/app/hooks/useStateEvents.ts create mode 100644 src/app/hooks/useThrottle.ts create mode 100644 src/app/hooks/useTypingStatusUpdater.ts delete mode 100644 src/app/organisms/drag-drop/DragDrop.jsx delete mode 100644 src/app/organisms/drag-drop/DragDrop.scss create mode 100644 src/app/organisms/navigation/Sidebar1.tsx create mode 100644 src/app/organisms/room/RoomInput.tsx create mode 100644 src/app/organisms/room/RoomInputPlaceholder.css.ts create mode 100644 src/app/organisms/room/RoomInputPlaceholder.tsx create mode 100644 src/app/organisms/room/RoomTombstone.css.ts create mode 100644 src/app/organisms/room/RoomTombstone.tsx create mode 100644 src/app/organisms/room/msgContent.ts create mode 100644 src/app/plugins/custom-emoji.ts create mode 100644 src/app/plugins/emoji.ts create mode 100644 src/app/plugins/recent-emoji.ts create mode 100644 src/app/state/hooks/inviteList.ts create mode 100644 src/app/state/hooks/roomList.ts create mode 100644 src/app/state/hooks/settings.ts create mode 100644 src/app/state/hooks/useBindAtoms.ts create mode 100644 src/app/state/inviteList.ts create mode 100644 src/app/state/list.ts create mode 100644 src/app/state/mDirectList.ts create mode 100644 src/app/state/mutedRoomList.ts create mode 100644 src/app/state/roomInputDrafts.ts create mode 100644 src/app/state/roomList.ts create mode 100644 src/app/state/roomToParents.ts create mode 100644 src/app/state/roomToUnread.ts create mode 100644 src/app/state/selectedRoom.ts create mode 100644 src/app/state/selectedTab.ts create mode 100644 src/app/state/settings.ts create mode 100644 src/app/state/tabToRoom.ts create mode 100644 src/app/state/upload.ts create mode 100644 src/app/state/utils.ts create mode 100644 src/app/utils/AsyncSearch.ts create mode 100644 src/app/utils/blurHash.ts create mode 100644 src/app/utils/common.ts create mode 100644 src/app/utils/disposable.ts create mode 100644 src/app/utils/dom.ts create mode 100644 src/app/utils/key-symbol.ts create mode 100644 src/app/utils/keyboard.ts create mode 100644 src/app/utils/matrix.ts create mode 100644 src/app/utils/mimeTypes.ts create mode 100644 src/app/utils/room.ts create mode 100644 src/app/utils/sanitize.ts create mode 100644 src/app/utils/user-agent.ts create mode 100644 src/client/mx.ts create mode 100644 src/colors.css.ts create mode 100644 src/ext.d.ts create mode 100644 src/types/matrix/accountData.ts create mode 100644 src/types/matrix/common.ts create mode 100644 src/types/matrix/room.ts diff --git a/.eslintrc.js b/.eslintrc.js index e8f9224e..70437418 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -27,6 +27,7 @@ module.exports = { rules: { 'linebreak-style': 0, 'no-underscore-dangle': 0, + "no-shadow": "off", "import/prefer-default-export": "off", "import/extensions": "off", @@ -55,5 +56,6 @@ module.exports = { "react-hooks/exhaustive-deps": "error", "@typescript-eslint/no-unused-vars": "error", + "@typescript-eslint/no-shadow": "error" }, }; diff --git a/index.html b/index.html index af1a6268..36c5740a 100644 --- a/index.html +++ b/index.html @@ -27,7 +27,7 @@ - + diff --git a/package-lock.json b/package-lock.json index 2cca1d0c..62675247 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,14 +14,25 @@ "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", "@tippyjs/react": "4.2.6", + "@vanilla-extract/css": "1.9.3", + "@vanilla-extract/recipes": "0.3.0", + "@vanilla-extract/vite-plugin": "3.7.1", + "await-to-js": "3.0.0", "blurhash": "2.0.4", "browser-encrypt-attachment": "0.3.0", + "classnames": "2.3.2", "dateformat": "5.0.3", + "emojibase": "6.1.0", "emojibase-data": "7.0.1", "file-saver": "2.0.5", "flux": "4.0.3", + "focus-trap-react": "10.0.2", + "folds": "1.2.1", "formik": "2.2.9", "html-react-parser": "3.0.4", + "immer": "9.0.16", + "is-hotkey": "0.2.0", + "jotai": "1.12.0", "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", @@ -36,8 +47,11 @@ "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", "sanitize-html": "2.8.0", + "slate": "0.90.0", + "slate-react": "0.90.0", "tippy.js": "6.3.7", - "twemoji": "14.0.2" + "twemoji": "14.0.2", + "ua-parser-js": "1.0.35" }, "devDependencies": { "@esbuild-plugins/node-globals-polyfill": "0.2.3", @@ -46,6 +60,7 @@ "@types/node": "18.11.18", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", + "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", "@vitejs/plugin-react": "3.0.0", @@ -61,7 +76,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "4.0.1", + "vite": "4.0.4", "vite-plugin-static-copy": "0.13.0" }, "engines": { @@ -72,7 +87,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -85,7 +99,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", - "dev": true, "dependencies": { "@babel/highlight": "^7.18.6" }, @@ -94,34 +107,32 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.5.tgz", - "integrity": "sha512-KZXo2t10+/jxmkhNXc7pZTqRvSOIvVv/+lJwHS+B2rErwOyjuVRh60yVpb7liQ1U5t7lLJ1bz+t8tSypUZdm0g==", - "dev": true, + "version": "7.20.10", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", + "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.5.tgz", - "integrity": "sha512-UdOWmk4pNWTm/4DlPUl/Pt4Gz4rcEMb7CY0Y3eJl5Yz1vI8ZJGmHWaVE55LoxRjdpx0z259GE9U5STA9atUinQ==", - "dev": true, + "version": "7.20.12", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", + "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-module-transforms": "^7.20.2", - "@babel/helpers": "^7.20.5", - "@babel/parser": "^7.20.5", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/generator": "^7.20.7", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.20.11", + "@babel/helpers": "^7.20.7", + "@babel/parser": "^7.20.7", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.12", + "@babel/types": "^7.20.7", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.1", + "json5": "^2.2.2", "semver": "^6.3.0" }, "engines": { @@ -133,12 +144,11 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.5.tgz", - "integrity": "sha512-jl7JY2Ykn9S0yj4DQP82sYvPU+T3g0HFcWTqDLqiuA9tGRNIj9VfbtXGAYTTkyNEnQk1jkMGOdYka8aG/lulCA==", - "dev": true, + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", + "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", "dependencies": { - "@babel/types": "^7.20.5", + "@babel/types": "^7.20.7", "@jridgewell/gen-mapping": "^0.3.2", "jsesc": "^2.5.1" }, @@ -150,7 +160,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -161,14 +170,14 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz", - "integrity": "sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ==", - "dev": true, + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", "dependencies": { - "@babel/compat-data": "^7.20.0", + "@babel/compat-data": "^7.20.5", "@babel/helper-validator-option": "^7.18.6", "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", "semver": "^6.3.0" }, "engines": { @@ -178,11 +187,23 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, "node_modules/@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -191,7 +212,6 @@ "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -204,7 +224,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -216,7 +235,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -225,19 +243,18 @@ } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz", - "integrity": "sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA==", - "dev": true, + "version": "7.20.11", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", + "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", "@babel/helper-simple-access": "^7.20.2", "@babel/helper-split-export-declaration": "^7.18.6", "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.1", - "@babel/types": "^7.20.2" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.10", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -247,7 +264,6 @@ "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -256,7 +272,6 @@ "version": "7.20.2", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", - "dev": true, "dependencies": { "@babel/types": "^7.20.2" }, @@ -268,7 +283,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -280,7 +294,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -289,7 +302,6 @@ "version": "7.19.1", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -298,20 +310,18 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.6.tgz", - "integrity": "sha512-Pf/OjgfgFRW5bApskEz5pvidpim7tEDPlFtKcNRXWmfHGn9IEI2W2flqRQXTFb7gIPTyK++N6rVHuwKut4XK6w==", - "dev": true, + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", + "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.20.5", - "@babel/types": "^7.20.5" + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.20.13", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" @@ -321,7 +331,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.18.6", "chalk": "^2.0.0", @@ -332,10 +341,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.5.tgz", - "integrity": "sha512-r27t/cy/m9uKLXQNWWebeCUHgnAZq0CpG1OwKRxzJMP1vpSU4bSIK2hq+/cp0bQxetkXx38n09rNu8jVkcK/zA==", - "dev": true, + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", + "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", "bin": { "parser": "bin/babel-parser.js" }, @@ -343,6 +351,20 @@ "node": ">=6.0.0" } }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.20.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.20.0.tgz", + "integrity": "sha512-rd9TkG+u1CExzS4SM1BlMEhMXwFLKVjOAFFCDx9PbX5ycJWDoWMcwdJH9RhkPu1dOgn5TrxLot/Gx6lWFuAUNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, "node_modules/@babel/plugin-transform-react-jsx-self": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", @@ -409,33 +431,31 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/@babel/template": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", - "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.18.10", - "@babel/types": "^7.18.10" + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.5.tgz", - "integrity": "sha512-WM5ZNN3JITQIq9tFZaw1ojLU3WgWdtkxnhM1AegMS+PvHjkM5IXjmYEGY7yukz5XS4sJyEf2VzWjI8uAavhxBQ==", - "dev": true, + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", + "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", "dependencies": { "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.5", + "@babel/generator": "^7.20.7", "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-function-name": "^7.19.0", "@babel/helper-hoist-variables": "^7.18.6", "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.5", - "@babel/types": "^7.20.5", + "@babel/parser": "^7.20.13", + "@babel/types": "^7.20.7", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -444,10 +464,9 @@ } }, "node_modules/@babel/types": { - "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.5.tgz", - "integrity": "sha512-c9fst/h2/dcF7H+MJKZ2T0KjEQ8hY/BNnDk/H3XY8C4Aw/eWQXWn/lWntHF9ooUBnGmEvbfGrTgLWc+um0YDUg==", - "dev": true, + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", + "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", "dependencies": { "@babel/helper-string-parser": "^7.19.4", "@babel/helper-validator-identifier": "^7.19.1", @@ -457,6 +476,11 @@ "node": ">=6.9.0" } }, + "node_modules/@emotion/hash": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@emotion/hash/-/hash-0.9.0.tgz", + "integrity": "sha512-14FtKiHhy2QoPIzdTcvh//8OyBlknNs2nXRwIhG904opCby3l+9Xaf/wuPvICBF0rc1ZCNBd3nKe9cd2mecVkQ==" + }, "node_modules/@esbuild-plugins/node-globals-polyfill": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", @@ -473,7 +497,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "android" @@ -489,7 +512,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "android" @@ -505,7 +527,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "android" @@ -521,7 +542,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -537,7 +557,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "darwin" @@ -553,7 +572,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -569,7 +587,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "freebsd" @@ -585,7 +602,6 @@ "cpu": [ "arm" ], - "dev": true, "optional": true, "os": [ "linux" @@ -601,7 +617,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -617,7 +632,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "linux" @@ -633,7 +647,6 @@ "cpu": [ "loong64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -649,7 +662,6 @@ "cpu": [ "mips64el" ], - "dev": true, "optional": true, "os": [ "linux" @@ -665,7 +677,6 @@ "cpu": [ "ppc64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -681,7 +692,6 @@ "cpu": [ "riscv64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -697,7 +707,6 @@ "cpu": [ "s390x" ], - "dev": true, "optional": true, "os": [ "linux" @@ -713,7 +722,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -729,7 +737,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "netbsd" @@ -745,7 +752,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "openbsd" @@ -761,7 +767,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "sunos" @@ -777,7 +782,6 @@ "cpu": [ "arm64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -793,7 +797,6 @@ "cpu": [ "ia32" ], - "dev": true, "optional": true, "os": [ "win32" @@ -809,7 +812,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "win32" @@ -903,7 +905,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -916,7 +917,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -925,7 +925,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -933,19 +932,22 @@ "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.14", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", - "dev": true + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.17", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dev": true, "dependencies": { "@jridgewell/resolve-uri": "3.1.0", "@jridgewell/sourcemap-codec": "1.4.14" } }, + "node_modules/@juggle/resize-observer": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", + "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" + }, "node_modules/@khanacademy/simple-markdown": { "version": "0.8.6", "resolved": "https://registry.npmjs.org/@khanacademy/simple-markdown/-/simple-markdown-0.8.6.tgz", @@ -1126,6 +1128,11 @@ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, + "node_modules/@types/is-hotkey": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@types/is-hotkey/-/is-hotkey-0.1.7.tgz", + "integrity": "sha512-yB5C7zcOM7idwYZZ1wKQ3pTfjA9BbvFqRWvKB46GFddxnJtHwi/b9y84ykQtxQPg5qhdpg4Q/kWU3EGoCTmLzQ==" + }, "node_modules/@types/json-schema": { "version": "7.0.11", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", @@ -1138,6 +1145,11 @@ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, + "node_modules/@types/lodash": { + "version": "4.14.191", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz", + "integrity": "sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==" + }, "node_modules/@types/node": { "version": "18.11.18", "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", @@ -1184,6 +1196,12 @@ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", "dev": true }, + "node_modules/@types/ua-parser-js": { + "version": "0.7.36", + "resolved": "https://registry.npmjs.org/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz", + "integrity": "sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==", + "dev": true + }, "node_modules/@typescript-eslint/eslint-plugin": { "version": "5.46.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.46.1.tgz", @@ -1438,6 +1456,148 @@ "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@vanilla-extract/babel-plugin-debug-ids": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.0.1.tgz", + "integrity": "sha512-ynyKqsJiMzM1/yiIJ6QdqpWKlK4IMJJWREpPtaemZrE1xG1B4E/Nfa6YazuDWjDkCJC1tRIpEGnVs+pMIjUxyw==", + "dependencies": { + "@babel/core": "^7.20.7" + } + }, + "node_modules/@vanilla-extract/css": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.9.3.tgz", + "integrity": "sha512-vitcD8usEOTWDLAnbtnZ46YbHADAp3Es+3xyHsMDMZOEWk03FhD+PbR58kdwtGpr258+hMryCYtQPeFh5lWFbA==", + "dependencies": { + "@emotion/hash": "^0.9.0", + "@vanilla-extract/private": "^1.0.3", + "ahocorasick": "1.0.2", + "chalk": "^4.1.1", + "css-what": "^5.0.1", + "cssesc": "^3.0.0", + "csstype": "^3.0.7", + "deep-object-diff": "^1.1.0", + "deepmerge": "^4.2.2", + "media-query-parser": "^2.0.2", + "outdent": "^0.8.0" + } + }, + "node_modules/@vanilla-extract/css/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@vanilla-extract/css/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@vanilla-extract/css/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/@vanilla-extract/css/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/@vanilla-extract/css/node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vanilla-extract/css/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@vanilla-extract/css/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@vanilla-extract/integration": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vanilla-extract/integration/-/integration-6.0.2.tgz", + "integrity": "sha512-LwfXlh0THeNvVXdA3iWFYvJs1mvEP1PkfQD/7S6Purry7L8iDizDV/87FgWBJ79FnTmYIvMrc7BOQsUajNj9VQ==", + "dependencies": { + "@babel/core": "^7.20.7", + "@babel/plugin-syntax-typescript": "^7.20.0", + "@vanilla-extract/babel-plugin-debug-ids": "^1.0.1", + "@vanilla-extract/css": "^1.9.3", + "esbuild": "^0.16.3", + "eval": "0.1.6", + "find-up": "^5.0.0", + "javascript-stringify": "^2.0.1", + "lodash": "^4.17.21", + "outdent": "^0.8.0" + } + }, + "node_modules/@vanilla-extract/private": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.3.tgz", + "integrity": "sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==" + }, + "node_modules/@vanilla-extract/recipes": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@vanilla-extract/recipes/-/recipes-0.3.0.tgz", + "integrity": "sha512-7wXrgfq1oldKdBfCKen4XmSlDmQR+4o0CQ3WnnLfhQaEtI65xJ774yyQF6dD2CC+hHdW2LFKVXgH5NZRbMQ8Sg==", + "peerDependencies": { + "@vanilla-extract/css": "^1.0.0" + } + }, + "node_modules/@vanilla-extract/vite-plugin": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@vanilla-extract/vite-plugin/-/vite-plugin-3.7.1.tgz", + "integrity": "sha512-KFeTSEJKtJDfQhUJh4jGmrJDLCU59DSA3YKZSdys4jTOLZ1ZFsKzDP2pnFwH/24Oc2ebK+EV5x3OPlWxvRYthg==", + "dependencies": { + "@vanilla-extract/integration": "^6.0.2", + "outdent": "^0.8.0", + "postcss": "^8.3.6", + "postcss-load-config": "^3.1.0" + }, + "peerDependencies": { + "vite": "^2.2.3 || ^3.0.0 || ^4.0.3" + } + }, "node_modules/@vitejs/plugin-react": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz", @@ -1478,6 +1638,11 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/ahocorasick": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ahocorasick/-/ahocorasick-1.0.2.tgz", + "integrity": "sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA==" + }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -1512,7 +1677,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -1645,6 +1809,14 @@ "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==" }, + "node_modules/await-to-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/await-to-js/-/await-to-js-3.0.0.tgz", + "integrity": "sha512-zJAaP9zxTcvTHRlejau3ZOY4V7SRpiByf3/dxx2uyKxxor19tpmpV2QRsTKikckwhaPmr2dVpxxMr7jOCYVp5g==", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/axe-core": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.6.0.tgz", @@ -1736,7 +1908,6 @@ "version": "4.21.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -1815,10 +1986,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001439", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001439.tgz", - "integrity": "sha512-1MgUzEkoMO6gKfXflStpYgZDlFM7M/ck/bgfVCACO5vnAf0fXoNVHdWtqGU+MYca+4bL9Z5bpOVmR33cWW9G2A==", - "dev": true, + "version": "1.0.30001446", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz", + "integrity": "sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==", "funding": [ { "type": "opencollective", @@ -1834,7 +2004,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -1883,11 +2052,15 @@ "node": ">= 6" } }, + "node_modules/classnames": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", + "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -1895,8 +2068,12 @@ "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", + "integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==" }, "node_modules/computed-style": { "version": "0.1.4", @@ -1926,8 +2103,7 @@ "node_modules/convert-source-map": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" }, "node_modules/core-js-pure": { "version": "3.26.1", @@ -1962,6 +2138,28 @@ "node": ">= 8" } }, + "node_modules/css-what": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", + "integrity": "sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/csstype": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", @@ -1985,7 +2183,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -2004,6 +2201,11 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/deep-object-diff": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/deep-object-diff/-/deep-object-diff-1.1.9.tgz", + "integrity": "sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==" + }, "node_modules/deepmerge": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-2.2.1.tgz", @@ -2040,6 +2242,18 @@ "node": ">=8" } }, + "node_modules/direction": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/direction/-/direction-1.0.4.tgz", + "integrity": "sha512-GYqKi1aH7PJXxdhTeZBFrg8vUBeKXi+cNprXsC1kpJcbcVnV9wBsrOu1cQEdG0WeQwlfHiy3XvnKfIrJ2R0NzQ==", + "bin": { + "direction": "cli.js" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/dnd-core": { "version": "15.1.2", "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-15.1.2.tgz", @@ -2116,8 +2330,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.284", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -2125,6 +2338,15 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/emojibase": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/emojibase/-/emojibase-6.1.0.tgz", + "integrity": "sha512-1GkKJPXP6tVkYJHOBSJHoGOr/6uaDxZ9xJ6H7m6PfdGXTmQgbALHLWaVRY4Gi/qf5x/gT/NUXLPuSHYLqtLtrQ==", + "funding": { + "type": "ko-fi", + "url": "https://ko-fi.com/milesjohnson" + } + }, "node_modules/emojibase-data": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/emojibase-data/-/emojibase-data-7.0.1.tgz", @@ -2217,7 +2439,6 @@ "version": "0.16.9", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.9.tgz", "integrity": "sha512-gkH83yHyijMSZcZFs1IWew342eMdFuWXmQo3zkDPTre25LIPBJsXryg02M3u8OpTwCJdBkdaQwqKkDLnAsAeLQ==", - "dev": true, "hasInstallScript": true, "bin": { "esbuild": "bin/esbuild" @@ -2254,7 +2475,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -2263,7 +2483,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -2777,6 +2996,17 @@ "node": ">=0.10.0" } }, + "node_modules/eval": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eval/-/eval-0.1.6.tgz", + "integrity": "sha512-o0XUw+5OGkXw4pJZzQoXUk+H87DHuC+7ZE//oSrRGtatTmr12oTnLfg6QOq9DyTt0c/p4TwzgmkKrBzWTSizyQ==", + "dependencies": { + "require-like": ">= 0.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", @@ -2871,6 +3101,24 @@ "resolved": "https://registry.npmjs.org/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==" }, + "node_modules/fbjs/node_modules/ua-parser-js": { + "version": "0.7.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.35.tgz", + "integrity": "sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, "node_modules/file-entry-cache": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", @@ -2904,7 +3152,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -2962,6 +3209,40 @@ "react": "^15.0.2 || ^16.0.0 || ^17.0.0" } }, + "node_modules/focus-trap": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.2.0.tgz", + "integrity": "sha512-v4wY6HDDYvzkBy4735kW5BUEuw6Yz9ABqMYLuTNbzAFPcBOGiGHwwcNVMvUz4G0kgSYh13wa/7TG3XwTeT4O/A==", + "dependencies": { + "tabbable": "^6.0.1" + } + }, + "node_modules/focus-trap-react": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/focus-trap-react/-/focus-trap-react-10.0.2.tgz", + "integrity": "sha512-MnN2cmdgpY7NY74ePOio4kbO5A3ILhrg1g5OGbgIQjcWEv1hhcbh6e98K0a+df88hNbE+4i9r8ji9aQnHou6GA==", + "dependencies": { + "focus-trap": "^7.2.0", + "tabbable": "^6.0.1" + }, + "peerDependencies": { + "prop-types": "^15.8.1", + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/folds": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/folds/-/folds-1.2.1.tgz", + "integrity": "sha512-BCV5oFCndiGFp1HyeSnbDKmTSbu1yfAtAIF6znPvLthuI/QG4516bBUr6+MyNUQWx/IAkj1bdQL/cdD+jEZWCw==", + "peerDependencies": { + "@vanilla-extract/css": "^1.9.2", + "@vanilla-extract/recipes": "^0.3.0", + "classnames": "^2.3.2", + "react": "^17.0.0", + "react-dom": "^17.0.0" + } + }, "node_modules/formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -3063,7 +3344,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -3134,7 +3414,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, "engines": { "node": ">=4" } @@ -3207,7 +3486,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, "engines": { "node": ">=4" } @@ -3329,6 +3607,15 @@ "node": ">= 4" } }, + "node_modules/immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, "node_modules/immutable": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", @@ -3495,6 +3782,11 @@ "node": ">=0.10.0" } }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" + }, "node_modules/is-negative-zero": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", @@ -3624,6 +3916,64 @@ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true }, + "node_modules/javascript-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", + "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" + }, + "node_modules/jotai": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/jotai/-/jotai-1.12.0.tgz", + "integrity": "sha512-IhyBmjxU1sE2Ni/MUK7gQAb8QvCM6yd1/K5jtQzgQBmmjCjgfXZkkk1rYlQAIRp2KoQk0Y+yzhm1f5cZ7kegnw==", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@babel/core": "*", + "@babel/template": "*", + "jotai-immer": "*", + "jotai-optics": "*", + "jotai-redux": "*", + "jotai-tanstack-query": "*", + "jotai-urql": "*", + "jotai-valtio": "*", + "jotai-xstate": "*", + "jotai-zustand": "*", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@babel/template": { + "optional": true + }, + "jotai-immer": { + "optional": true + }, + "jotai-optics": { + "optional": true + }, + "jotai-redux": { + "optional": true + }, + "jotai-tanstack-query": { + "optional": true + }, + "jotai-urql": { + "optional": true + }, + "jotai-valtio": { + "optional": true + }, + "jotai-xstate": { + "optional": true + }, + "jotai-zustand": { + "optional": true + } + } + }, "node_modules/js-sdsl": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz", @@ -3655,7 +4005,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -3676,10 +4025,9 @@ "dev": true }, "node_modules/json5": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "bin": { "json5": "lib/cli.js" }, @@ -3762,6 +4110,14 @@ "node": ">= 0.8.0" } }, + "node_modules/lilconfig": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", + "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "engines": { + "node": ">=10" + } + }, "node_modules/line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", @@ -3790,7 +4146,6 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -3900,6 +4255,14 @@ "events": "^3.2.0" } }, + "node_modules/media-query-parser": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/media-query-parser/-/media-query-parser-2.0.2.tgz", + "integrity": "sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==", + "dependencies": { + "@babel/runtime": "^7.12.5" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -3955,8 +4318,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.4", @@ -4001,10 +4363,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.7.tgz", - "integrity": "sha512-EJ3rzxL9pTWPjk5arA0s0dgXpnyiAbJDE6wHT62g7VsgrgQgmmZ+Ru++M1BFofncWja+Pnn3rEr3fieRySAdKQ==", - "dev": true + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", + "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" }, "node_modules/normalize-path": { "version": "3.0.0", @@ -4146,11 +4507,15 @@ "node": ">= 0.8.0" } }, + "node_modules/outdent": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.8.0.tgz", + "integrity": "sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==" + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -4165,7 +4530,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -4209,7 +4573,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, "engines": { "node": ">=8" } @@ -4287,6 +4650,34 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/postcss-load-config": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-3.1.4.tgz", + "integrity": "sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==", + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^1.10.2" + }, + "engines": { + "node": ">= 10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -4563,6 +4954,14 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/require-like": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", + "integrity": "sha512-oyrU88skkMtDdauHDuKVrgR+zuItqr6/c//FXzvmxRGMexSDc6hNvJInGW3LL46n+8b50RykrvwSUIIQH2LQ5A==", + "engines": { + "node": "*" + } + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -4718,6 +5117,14 @@ "object-assign": "^4.1.1" } }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.31", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz", + "integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==", + "dependencies": { + "compute-scroll-into-view": "^1.0.20" + } + }, "node_modules/sdp-transform": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/sdp-transform/-/sdp-transform-2.14.1.tgz", @@ -4730,7 +5137,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -4784,6 +5190,42 @@ "node": ">=8" } }, + "node_modules/slate": { + "version": "0.90.0", + "resolved": "https://registry.npmjs.org/slate/-/slate-0.90.0.tgz", + "integrity": "sha512-dv8idv0JjYyHiAJcVKf5yWKPDMTDi+PSZyfjsnquEI8VB5nmTVGjeJab06lc3o69O7aN05ROwO9/OY8mU1IUPA==", + "dependencies": { + "immer": "^9.0.6", + "is-plain-object": "^5.0.0", + "tiny-warning": "^1.0.3" + } + }, + "node_modules/slate-react": { + "version": "0.90.0", + "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.90.0.tgz", + "integrity": "sha512-z6pGd6jjU5VazLxlDi6zL3a6yaPBPJ+A2VyIlE/h/rvDywaLYGvk0xcrA9NrK71Dr47HK5ZN2zFEZNleh6wlPA==", + "dependencies": { + "@juggle/resize-observer": "^3.4.0", + "@types/is-hotkey": "^0.1.1", + "@types/lodash": "^4.14.149", + "direction": "^1.0.3", + "is-hotkey": "^0.1.6", + "is-plain-object": "^5.0.0", + "lodash": "^4.17.4", + "scroll-into-view-if-needed": "^2.2.20", + "tiny-invariant": "1.0.6" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0", + "slate": ">=0.65.3" + } + }, + "node_modules/slate-react/node_modules/is-hotkey": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.1.8.tgz", + "integrity": "sha512-qs3NZ1INIS+H+yeo7cD9pDfwYV/jqRh1JG9S9zYrNudkoUQg7OL7ziXqRKu+InFjUIDoP2o6HIkLYMh1pcWgyQ==" + }, "node_modules/source-map-js": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", @@ -4892,7 +5334,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -4912,12 +5353,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/tabbable": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.0.1.tgz", + "integrity": "sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA==" + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, + "node_modules/tiny-invariant": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.0.6.tgz", + "integrity": "sha512-FOyLWWVjG+aC0UqG76V53yAWdXfH8bO6FNmyZOuUrzDzK8DI3/JRY25UD7+g49JWM1LXwymsKERB+DzI0dTEQA==" + }, "node_modules/tiny-warning": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", @@ -4935,7 +5386,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } @@ -5055,9 +5505,9 @@ } }, "node_modules/ua-parser-js": { - "version": "0.7.32", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.32.tgz", - "integrity": "sha512-f9BESNVhzlhEFf2CHMSj40NWOjYPl1YKYbrvIr/hFTDEmLq7SRbWvm7FcdcpCYT95zrOhC7gZSxjdnnTpBcwVw==", + "version": "1.0.35", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.35.tgz", + "integrity": "sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==", "funding": [ { "type": "opencollective", @@ -5104,7 +5554,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -5144,9 +5593,9 @@ } }, "node_modules/vite": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.1.tgz", - "integrity": "sha512-kZQPzbDau35iWOhy3CpkrRC7It+HIHtulAzBhMqzGHKRf/4+vmh8rPDDdv98SWQrFWo6//3ozwsRmwQIPZsK9g==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", + "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", "dev": true, "dependencies": { "esbuild": "^0.16.3", @@ -5319,11 +5768,18 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, "engines": { "node": ">=10" }, diff --git a/package.json b/package.json index a37b6242..38be28df 100644 --- a/package.json +++ b/package.json @@ -24,14 +24,25 @@ "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", "@tippyjs/react": "4.2.6", + "@vanilla-extract/css": "1.9.3", + "@vanilla-extract/recipes": "0.3.0", + "@vanilla-extract/vite-plugin": "3.7.1", + "await-to-js": "3.0.0", "blurhash": "2.0.4", "browser-encrypt-attachment": "0.3.0", + "classnames": "2.3.2", "dateformat": "5.0.3", + "emojibase": "6.1.0", "emojibase-data": "7.0.1", "file-saver": "2.0.5", "flux": "4.0.3", + "focus-trap-react": "10.0.2", + "folds": "1.2.1", "formik": "2.2.9", "html-react-parser": "3.0.4", + "immer": "9.0.16", + "is-hotkey": "0.2.0", + "jotai": "1.12.0", "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", @@ -46,8 +57,11 @@ "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", "sanitize-html": "2.8.0", + "slate": "0.90.0", + "slate-react": "0.90.0", "tippy.js": "6.3.7", - "twemoji": "14.0.2" + "twemoji": "14.0.2", + "ua-parser-js": "1.0.35" }, "devDependencies": { "@esbuild-plugins/node-globals-polyfill": "0.2.3", @@ -56,6 +70,7 @@ "@types/node": "18.11.18", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", + "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", "@vitejs/plugin-react": "3.0.0", @@ -71,7 +86,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "4.0.1", + "vite": "4.0.4", "vite-plugin-static-copy": "0.13.0" } } diff --git a/public/font/Twemoji.Mozilla.v.7.0.woff2 b/public/font/Twemoji.Mozilla.v.7.0.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b3b20e9aa3883ab4d49696b074e94533a04b028d GIT binary patch literal 472228 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

A{1jlFoA)JNTyYH8Bqw6_oi%_SaYNDTv-1u$U) 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 BJBb*1>4gaO=;GR7QlSkI#biw-{_XPvr6AD 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�&3hdf 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

+ ); + } +); diff --git a/src/app/organisms/room/RoomInputPlaceholder.css.ts b/src/app/organisms/room/RoomInputPlaceholder.css.ts new file mode 100644 index 00000000..d0873dad --- /dev/null +++ b/src/app/organisms/room/RoomInputPlaceholder.css.ts @@ -0,0 +1,10 @@ +import { style } from '@vanilla-extract/css'; +import { color, config, toRem } from 'folds'; + +export const RoomInputPlaceholder = style({ + minHeight: toRem(48), + backgroundColor: color.SurfaceVariant.Container, + color: color.SurfaceVariant.OnContainer, + boxShadow: `inset 0 0 0 ${config.borderWidth.B300} ${color.SurfaceVariant.ContainerLine}`, + borderRadius: config.radii.R400, +}); diff --git a/src/app/organisms/room/RoomInputPlaceholder.tsx b/src/app/organisms/room/RoomInputPlaceholder.tsx new file mode 100644 index 00000000..77c7ccf3 --- /dev/null +++ b/src/app/organisms/room/RoomInputPlaceholder.tsx @@ -0,0 +1,11 @@ +import React, { ComponentProps } from 'react'; +import { Box, as } from 'folds'; +import classNames from 'classnames'; + +import * as css from './RoomInputPlaceholder.css'; + +export const RoomInputPlaceholder = as<'div', ComponentProps>( + ({ className, ...props }, ref) => ( + + ) +); diff --git a/src/app/organisms/room/RoomTombstone.css.ts b/src/app/organisms/room/RoomTombstone.css.ts new file mode 100644 index 00000000..c4c04612 --- /dev/null +++ b/src/app/organisms/room/RoomTombstone.css.ts @@ -0,0 +1,7 @@ +import { style } from '@vanilla-extract/css'; +import { config } from 'folds'; + +export const RoomTombstone = style({ + padding: config.space.S200, + paddingLeft: config.space.S400, +}); diff --git a/src/app/organisms/room/RoomTombstone.tsx b/src/app/organisms/room/RoomTombstone.tsx new file mode 100644 index 00000000..39f0e635 --- /dev/null +++ b/src/app/organisms/room/RoomTombstone.tsx @@ -0,0 +1,67 @@ +import React, { useCallback } from 'react'; +import { Box, Button, Spinner, Text, color } from 'folds'; + +import { selectRoom } from '../../../client/action/navigation'; + +import * as css from './RoomTombstone.css'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; +import { genRoomVia } from '../../../util/matrixUtil'; +import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback'; +import { Membership } from '../../../types/matrix/room'; +import { RoomInputPlaceholder } from './RoomInputPlaceholder'; + +type RoomTombstoneProps = { roomId: string; body?: string; replacementRoomId: string }; +export function RoomTombstone({ roomId, body, replacementRoomId }: RoomTombstoneProps) { + const mx = useMatrixClient(); + + const [joinState, handleJoin] = useAsyncCallback( + useCallback(() => { + const currentRoom = mx.getRoom(roomId); + const via = currentRoom ? genRoomVia(currentRoom) : []; + return mx.joinRoom(replacementRoomId, { + viaServers: via, + }); + }, [mx, roomId, replacementRoomId]) + ); + const replacementRoom = mx.getRoom(replacementRoomId); + + const handleOpen = () => { + if (replacementRoom) selectRoom(replacementRoom.roomId); + if (joinState.status === AsyncStatus.Success) selectRoom(joinState.data.roomId); + }; + + return ( + + + {body || 'This room has been replaced and is no longer active.'} + {joinState.status === AsyncStatus.Error && ( + + {(joinState.error as any)?.message ?? 'Failed to join replacement room!'} + + )} + + {replacementRoom?.getMyMembership() === Membership.Join || + joinState.status === AsyncStatus.Success ? ( + + ) : ( + + )} + + ); +} diff --git a/src/app/organisms/room/RoomView.jsx b/src/app/organisms/room/RoomView.jsx index b94c35c4..591fccea 100644 --- a/src/app/organisms/room/RoomView.jsx +++ b/src/app/organisms/room/RoomView.jsx @@ -1,6 +1,7 @@ import React, { useEffect, useRef } from 'react'; import PropTypes from 'prop-types'; import './RoomView.scss'; +import { Text, config } from 'folds'; import EventEmitter from 'events'; @@ -10,16 +11,29 @@ import navigation from '../../../client/state/navigation'; import RoomViewHeader from './RoomViewHeader'; import RoomViewContent from './RoomViewContent'; import RoomViewFloating from './RoomViewFloating'; -import RoomViewInput from './RoomViewInput'; import RoomViewCmdBar from './RoomViewCmdBar'; +import { RoomInput } from './RoomInput'; +import { useStateEvent } from '../../hooks/useStateEvent'; +import { StateEvent } from '../../../types/matrix/room'; +import { RoomTombstone } from './RoomTombstone'; +import { usePowerLevels } from '../../hooks/usePowerLevels'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; +import { RoomInputPlaceholder } from './RoomInputPlaceholder'; const viewEvent = new EventEmitter(); -function RoomView({ roomTimeline, eventId }) { +function RoomView({ room, roomTimeline, eventId }) { + const roomInputRef = useRef(null); const roomViewRef = useRef(null); // eslint-disable-next-line react/prop-types const { roomId } = roomTimeline; + const mx = useMatrixClient(); + const tombstoneEvent = useStateEvent(room, StateEvent.RoomTombstone); + const { getPowerLevel, canSendEvent } = usePowerLevels(room); + const myUserId = mx.getUserId(); + const canMessage = myUserId ? canSendEvent(undefined, getPowerLevel(myUserId)) : false; + useEffect(() => { const settingsToggle = (isVisible) => { const roomView = roomViewRef.current; @@ -47,23 +61,36 @@ function RoomView({ roomTimeline, eventId }) { - +
- - +
+ {tombstoneEvent ? ( + + ) : ( + <> + {canMessage && ( + + )} + {!canMessage && ( + + You do not have permission to post in this room + + )} + + )} +
+
@@ -74,6 +101,7 @@ RoomView.defaultProps = { eventId: null, }; RoomView.propTypes = { + room: PropTypes.shape({}).isRequired, roomTimeline: PropTypes.shape({}).isRequired, eventId: PropTypes.string, }; diff --git a/src/app/organisms/room/RoomView.scss b/src/app/organisms/room/RoomView.scss index 4f06bf26..c70c2b09 100644 --- a/src/app/organisms/room/RoomView.scss +++ b/src/app/organisms/room/RoomView.scss @@ -35,11 +35,12 @@ @extend .cp-fx__item-one; position: relative; } - + &__sticky { - min-height: 85px; position: relative; background: var(--bg-surface); - border-top: 1px solid var(--bg-surface-border); } -} \ No newline at end of file + &__editor { + padding: 0 var(--sp-normal); + } +} diff --git a/src/app/organisms/room/RoomViewContent.jsx b/src/app/organisms/room/RoomViewContent.jsx index 0a9256ce..fe598bf6 100644 --- a/src/app/organisms/room/RoomViewContent.jsx +++ b/src/app/organisms/room/RoomViewContent.jsx @@ -28,6 +28,7 @@ import { useForceUpdate } from '../../hooks/useForceUpdate'; import { parseTimelineChange } from './common'; import TimelineScroll from './TimelineScroll'; import EventLimit from './EventLimit'; +import { getResizeObserverEntry, useResizeObserver } from '../../hooks/useResizeObserver'; const PAG_LIMIT = 30; const MAX_MSG_DIFF_MINUTES = 5; @@ -392,7 +393,7 @@ function useEventArrive(roomTimeline, readUptoEvtStore, timelineScrollRef, event let jumpToItemIndex = -1; -function RoomViewContent({ eventId, roomTimeline }) { +function RoomViewContent({ roomInputRef, eventId, roomTimeline }) { const [throttle] = useState(new Throttle()); const timelineSVRef = useRef(null); @@ -484,6 +485,21 @@ function RoomViewContent({ eventId, roomTimeline }) { } }, [newEvent]); + useResizeObserver( + roomInputRef.current, + useCallback((entries) => { + if (!roomInputRef.current) return; + const editorBaseEntry = getResizeObserverEntry(roomInputRef.current, entries); + if (!editorBaseEntry) return; + + const timelineScroll = timelineScrollRef.current; + if (!roomTimeline.initialized) return; + if (timelineScroll.bottom < 40 && !roomTimeline.canPaginateForward() && document.visibilityState === 'visible') { + timelineScroll.scrollToBottom(); + } + }, [roomInputRef]) + ); + const listenKeyboard = useCallback((event) => { if (event.ctrlKey || event.altKey || event.metaKey) return; if (event.key !== 'ArrowUp') return; @@ -620,6 +636,9 @@ RoomViewContent.defaultProps = { RoomViewContent.propTypes = { eventId: PropTypes.string, roomTimeline: PropTypes.shape({}).isRequired, + roomInputRef: PropTypes.shape({ + current: PropTypes.shape({}) + }).isRequired }; export default RoomViewContent; diff --git a/src/app/organisms/room/msgContent.ts b/src/app/organisms/room/msgContent.ts new file mode 100644 index 00000000..2b0c50ed --- /dev/null +++ b/src/app/organisms/room/msgContent.ts @@ -0,0 +1,148 @@ +import { IContent, MatrixClient, MsgType } from 'matrix-js-sdk'; +import to from 'await-to-js'; +import { IThumbnailContent } from '../../../types/matrix/common'; +import { + getImageFileUrl, + getThumbnail, + getThumbnailDimensions, + getVideoFileUrl, + loadImageElement, + loadVideoElement, +} from '../../utils/dom'; +import { encryptFile, getImageInfo, getThumbnailContent, getVideoInfo } from '../../utils/matrix'; +import { TUploadItem } from '../../state/roomInputDrafts'; +import { MATRIX_BLUR_HASH_PROPERTY_NAME, encodeBlurHash } from '../../utils/blurHash'; + +const generateThumbnailContent = async ( + mx: MatrixClient, + img: HTMLImageElement | HTMLVideoElement, + dimensions: [number, number], + encrypt: boolean +): Promise => { + const thumbnail = await getThumbnail(img, ...dimensions); + if (!thumbnail) throw new Error('Can not create thumbnail!'); + const encThumbData = encrypt ? await encryptFile(thumbnail) : undefined; + const thumbnailFile = encThumbData?.file ?? thumbnail; + if (!thumbnailFile) throw new Error('Can not create thumbnail!'); + + const data = await mx.uploadContent(thumbnailFile); + const thumbMxc = data?.content_uri; + if (!thumbMxc) throw new Error('Failed when uploading thumbnail!'); + const thumbnailContent = getThumbnailContent({ + thumbnail: thumbnailFile, + encInfo: encThumbData?.encInfo, + mxc: thumbMxc, + width: dimensions[0], + height: dimensions[1], + }); + return thumbnailContent; +}; + +export const getImageMsgContent = async (item: TUploadItem, mxc: string): Promise => { + const { file, originalFile, encInfo } = item; + const [imgError, imgEl] = await to(loadImageElement(getImageFileUrl(originalFile))); + if (imgError) console.warn(imgError); + + const content: IContent = { + msgtype: MsgType.Image, + body: file.name, + }; + if (imgEl) { + content.info = { + ...getImageInfo(imgEl, file), + [MATRIX_BLUR_HASH_PROPERTY_NAME]: encodeBlurHash(imgEl), + }; + } + if (encInfo) { + content.file = { + ...encInfo, + url: mxc, + }; + } else { + content.url = mxc; + } + return content; +}; + +export const getVideoMsgContent = async ( + mx: MatrixClient, + item: TUploadItem, + mxc: string +): Promise => { + const { file, originalFile, encInfo } = item; + + const [videoError, videoEl] = await to(loadVideoElement(getVideoFileUrl(originalFile))); + if (videoError) console.warn(videoError); + + const content: IContent = { + msgtype: MsgType.Video, + body: file.name, + }; + if (videoEl) { + const [thumbError, thumbContent] = await to( + generateThumbnailContent( + mx, + videoEl, + getThumbnailDimensions(videoEl.videoWidth, videoEl.videoHeight), + !!encInfo + ) + ); + if (thumbError) console.warn(thumbError); + content.info = { + ...getVideoInfo(videoEl, file), + ...thumbContent, + }; + } + if (encInfo) { + content.file = { + ...encInfo, + url: mxc, + }; + } else { + content.url = mxc; + } + return content; +}; + +export const getAudioMsgContent = (item: TUploadItem, mxc: string): IContent => { + const { file, encInfo } = item; + const content: IContent = { + msgtype: MsgType.Audio, + body: file.name, + info: { + mimetype: file.type, + size: file.size, + }, + }; + if (encInfo) { + content.file = { + ...encInfo, + url: mxc, + }; + } else { + content.url = mxc; + } + return content; +}; + +export const getFileMsgContent = (item: TUploadItem, mxc: string): IContent => { + const { file, encInfo } = item; + const content: IContent = { + msgtype: MsgType.File, + body: file.name, + filename: file.name, + info: { + mimetype: file.type, + size: file.size, + }, + }; + if (encInfo) { + content.file = { + ...encInfo, + url: mxc, + }; + } else { + content.url = mxc; + } + return content; +}; diff --git a/src/app/pages/App.jsx b/src/app/pages/App.jsx index af7cc29b..2828d7be 100644 --- a/src/app/pages/App.jsx +++ b/src/app/pages/App.jsx @@ -1,4 +1,5 @@ -import React from 'react'; +import React, { StrictMode } from 'react'; +import { Provider } from 'jotai'; import { isAuthenticated } from '../../client/state/auth'; @@ -6,7 +7,11 @@ import Auth from '../templates/auth/Auth'; import Client from '../templates/client/Client'; function App() { - return isAuthenticated() ? : ; + return ( + + {isAuthenticated() ? : } + + ); } export default App; diff --git a/src/app/plugins/custom-emoji.ts b/src/app/plugins/custom-emoji.ts new file mode 100644 index 00000000..daceef44 --- /dev/null +++ b/src/app/plugins/custom-emoji.ts @@ -0,0 +1,293 @@ +import { IImageInfo, MatrixClient, Room } from 'matrix-js-sdk'; +import { AccountDataEvent } from '../../types/matrix/accountData'; +import { getAccountData, getStateEvents } from '../utils/room'; +import { StateEvent } from '../../types/matrix/room'; + +// https://github.com/Sorunome/matrix-doc/blob/soru/emotes/proposals/2545-emotes.md + +export type PackEventIdToUnknown = Record; +export type EmoteRoomIdToPackEvents = Record; +export type EmoteRoomsContent = { + rooms?: EmoteRoomIdToPackEvents; +}; + +export enum PackUsage { + Emoticon = 'emoticon', + Sticker = 'sticker', +} + +export type PackImage = { + url: string; + body?: string; + usage?: PackUsage[]; + info?: IImageInfo; +}; + +export type PackImages = Record; + +export type PackMeta = { + display_name?: string; + avatar_url?: string; + attribution?: string; + usage?: PackUsage[]; +}; + +export type ExtendedPackImage = PackImage & { + shortcode: string; +}; + +export type PackContent = { + pack?: PackMeta; + images?: PackImages; +}; + +export class ImagePack { + public id: string; + + public content: PackContent; + + public displayName?: string; + + public avatarUrl?: string; + + public usage?: PackUsage[]; + + public attribution?: string; + + public images: Map; + + public emoticons: ExtendedPackImage[]; + + public stickers: ExtendedPackImage[]; + + static parsePack(eventId: string, packContent: PackContent) { + if (!eventId || typeof packContent?.images !== 'object') { + return undefined; + } + + return new ImagePack(eventId, packContent); + } + + constructor(eventId: string, content: PackContent) { + this.id = eventId; + this.content = JSON.parse(JSON.stringify(content)); + + this.images = new Map(); + this.emoticons = []; + this.stickers = []; + + this.applyPackMeta(content); + this.applyImages(content); + } + + applyPackMeta(content: PackContent) { + const pack = content.pack ?? {}; + + this.displayName = pack.display_name; + this.avatarUrl = pack.avatar_url; + this.usage = pack.usage ?? [PackUsage.Emoticon, PackUsage.Sticker]; + this.attribution = pack.attribution; + } + + applyImages(content: PackContent) { + this.images = new Map(); + this.emoticons = []; + this.stickers = []; + if (!content.images) return; + + Object.entries(content.images).forEach(([shortcode, data]) => { + const { url } = data; + const body = data.body ?? shortcode; + const usage = data.usage ?? this.usage; + const { info } = data; + + if (!url) return; + const image: ExtendedPackImage = { + shortcode, + url, + body, + usage, + info, + }; + + this.images.set(shortcode, image); + if (usage && usage.includes(PackUsage.Emoticon)) { + this.emoticons.push(image); + } + if (usage && usage.includes(PackUsage.Sticker)) { + this.stickers.push(image); + } + }); + } + + getImages() { + return this.images; + } + + getEmojis() { + return this.emoticons; + } + + getStickers() { + return this.stickers; + } + + getImagesFor(usage: PackUsage) { + if (usage === PackUsage.Emoticon) return this.getEmojis(); + if (usage === PackUsage.Sticker) return this.getStickers(); + return this.getEmojis(); + } + + getContent() { + return this.content; + } + + getPackAvatarUrl(usage: PackUsage): string | undefined { + return this.avatarUrl || this.getImagesFor(usage)[0].url; + } + + private updatePackProperty(property: K, value: PackMeta[K]) { + if (this.content.pack === undefined) { + this.content.pack = {}; + } + this.content.pack[property] = value; + this.applyPackMeta(this.content); + } + + setAvatarUrl(avatarUrl?: string) { + this.updatePackProperty('avatar_url', avatarUrl); + } + + setDisplayName(displayName?: string) { + this.updatePackProperty('display_name', displayName); + } + + setAttribution(attribution?: string) { + this.updatePackProperty('attribution', attribution); + } + + setUsage(usage?: PackUsage[]) { + this.updatePackProperty('usage', usage); + } + + addImage(key: string, imgContent: PackImage) { + this.content.images = { + [key]: imgContent, + ...this.content.images, + }; + this.applyImages(this.content); + } + + removeImage(key: string) { + if (!this.content.images) return; + if (this.content.images[key] === undefined) return; + delete this.content.images[key]; + this.applyImages(this.content); + } + + updateImageKey(key: string, newKey: string) { + const { images } = this.content; + if (!images) return; + if (images[key] === undefined) return; + const copyImages: PackImages = {}; + Object.keys(images).forEach((imgKey) => { + copyImages[imgKey === key ? newKey : imgKey] = images[imgKey]; + }); + this.content.images = copyImages; + this.applyImages(this.content); + } + + private updateImageProperty( + key: string, + property: K, + value: PackImage[K] + ) { + if (!this.content.images) return; + if (this.content.images[key] === undefined) return; + this.content.images[key][property] = value; + this.applyImages(this.content); + } + + setImageUrl(key: string, url: string) { + this.updateImageProperty(key, 'url', url); + } + + setImageBody(key: string, body?: string) { + this.updateImageProperty(key, 'body', body); + } + + setImageInfo(key: string, info?: IImageInfo) { + this.updateImageProperty(key, 'info', info); + } + + setImageUsage(key: string, usage?: PackUsage[]) { + this.updateImageProperty(key, 'usage', usage); + } +} + +export function getRoomImagePacks(room: Room): ImagePack[] { + const dataEvents = getStateEvents(room, StateEvent.PoniesRoomEmotes); + + return dataEvents.reduce((roomPacks, packEvent) => { + const packId = packEvent?.getId(); + const content = packEvent?.getContent() as PackContent | undefined; + if (!packId || !content) return roomPacks; + const pack = ImagePack.parsePack(packId, content); + if (pack) { + roomPacks.push(pack); + } + return roomPacks; + }, []); +} + +export function getGlobalImagePacks(mx: MatrixClient): ImagePack[] { + const emoteRoomsContent = getAccountData(mx, AccountDataEvent.PoniesEmoteRooms)?.getContent() as + | EmoteRoomsContent + | undefined; + if (typeof emoteRoomsContent !== 'object') return []; + + const { rooms } = emoteRoomsContent; + if (typeof rooms !== 'object') return []; + + const roomIds = Object.keys(rooms); + + const packs = roomIds.flatMap((roomId) => { + if (typeof rooms[roomId] !== 'object') return []; + const room = mx.getRoom(roomId); + if (!room) return []; + return getRoomImagePacks(room); + }); + + return packs; +} + +export function getUserImagePack(mx: MatrixClient): ImagePack | undefined { + const userPackContent = getAccountData(mx, AccountDataEvent.PoniesUserEmotes)?.getContent() as + | PackContent + | undefined; + const userId = mx.getUserId(); + if (!userPackContent || !userId) { + return undefined; + } + + const userImagePack = ImagePack.parsePack(userId, userPackContent); + return userImagePack; +} + +/** + * @param {MatrixClient} mx Provide if you want to include user personal/global pack + * @param {Room[]} rooms Provide rooms if you want to include rooms pack + * @returns {ImagePack[]} packs + */ +export function getRelevantPacks(mx?: MatrixClient, rooms?: Room[]): ImagePack[] { + const userPack = mx && getUserImagePack(mx); + const userPacks = userPack ? [userPack] : []; + const globalPacks = mx ? getGlobalImagePacks(mx) : []; + const globalPackIds = new Set(globalPacks.map((pack) => pack.id)); + const roomsPack = rooms?.flatMap(getRoomImagePacks) ?? []; + + return userPacks.concat( + globalPacks, + roomsPack.filter((pack) => !globalPackIds.has(pack.id)) + ); +} diff --git a/src/app/plugins/emoji.ts b/src/app/plugins/emoji.ts new file mode 100644 index 00000000..36bd044e --- /dev/null +++ b/src/app/plugins/emoji.ts @@ -0,0 +1,104 @@ +import { CompactEmoji } from 'emojibase'; +import emojisData from 'emojibase-data/en/compact.json'; +import joypixels from 'emojibase-data/en/shortcodes/joypixels.json'; +import emojibase from 'emojibase-data/en/shortcodes/emojibase.json'; + +export type IEmoji = CompactEmoji & { + shortcode: string; +}; + +export enum EmojiGroupId { + People = 'People', + Nature = 'Nature', + Food = 'Food', + Activity = 'Activity', + Travel = 'Travel', + Object = 'Object', + Symbol = 'Symbol', + Flag = 'Flag', +} + +export type IEmojiGroup = { + id: EmojiGroupId; + order: number; + emojis: IEmoji[]; +}; + +export const emojiGroups: IEmojiGroup[] = [ + { + id: EmojiGroupId.People, + order: 0, + emojis: [], + }, + { + id: EmojiGroupId.Nature, + order: 1, + emojis: [], + }, + { + id: EmojiGroupId.Food, + order: 2, + emojis: [], + }, + { + id: EmojiGroupId.Activity, + order: 3, + emojis: [], + }, + { + id: EmojiGroupId.Travel, + order: 4, + emojis: [], + }, + { + id: EmojiGroupId.Object, + order: 5, + emojis: [], + }, + { + id: EmojiGroupId.Symbol, + order: 6, + emojis: [], + }, + { + id: EmojiGroupId.Flag, + order: 7, + emojis: [], + }, +]; + +export const emojis: IEmoji[] = []; + +function addEmojiToGroup(groupIndex: number, emoji: IEmoji) { + emojiGroups[groupIndex].emojis.push(emoji); +} + +function getGroupIndex(emoji: IEmoji): number | undefined { + if (emoji.group === 0 || emoji.group === 1) return 0; + if (emoji.group === 3) return 1; + if (emoji.group === 4) return 2; + if (emoji.group === 6) return 3; + if (emoji.group === 5) return 4; + if (emoji.group === 7) return 5; + if (emoji.group === 8 || typeof emoji.group === 'undefined') return 6; + if (emoji.group === 9) return 7; + return undefined; +} + +emojisData.forEach((emoji) => { + const myShortCodes = joypixels[emoji.hexcode] || emojibase[emoji.hexcode]; + if (!myShortCodes) return; + if (Array.isArray(myShortCodes) && myShortCodes.length === 0) return; + + const em: IEmoji = { + ...emoji, + shortcode: Array.isArray(myShortCodes) ? myShortCodes[0] : myShortCodes, + shortcodes: Array.isArray(myShortCodes) ? myShortCodes : emoji.shortcodes, + }; + + const groupIndex = getGroupIndex(em); + if (groupIndex !== undefined) { + addEmojiToGroup(groupIndex, em); + emojis.push(em); + } +}); diff --git a/src/app/plugins/recent-emoji.ts b/src/app/plugins/recent-emoji.ts new file mode 100644 index 00000000..3634538f --- /dev/null +++ b/src/app/plugins/recent-emoji.ts @@ -0,0 +1,44 @@ +import { MatrixClient } from 'matrix-js-sdk'; +import { getAccountData } from '../utils/room'; +import { IEmoji, emojis } from './emoji'; +import { AccountDataEvent } from '../../types/matrix/accountData'; + +type EmojiUnicode = string; +type EmojiUsageCount = number; + +export type IRecentEmojiContent = { + recent_emoji?: [EmojiUnicode, EmojiUsageCount][]; +}; + +export const getRecentEmojis = (mx: MatrixClient, limit?: number): IEmoji[] => { + const recentEmojiEvent = getAccountData(mx, AccountDataEvent.ElementRecentEmoji); + const recentEmoji = recentEmojiEvent?.getContent().recent_emoji; + if (!Array.isArray(recentEmoji)) return []; + + return recentEmoji + .sort((e1, e2) => e2[1] - e1[1]) + .slice(0, limit) + .reduce((list, [unicode]) => { + const emoji = emojis.find((e) => e.unicode === unicode); + if (emoji) list.push(emoji); + return list; + }, []); +}; + +export function addRecentEmoji(mx: MatrixClient, unicode: string) { + const recentEmojiEvent = getAccountData(mx, AccountDataEvent.ElementRecentEmoji); + const recentEmoji = recentEmojiEvent?.getContent().recent_emoji ?? []; + + const emojiIndex = recentEmoji.findIndex(([u]) => u === unicode); + let entry: [EmojiUnicode, EmojiUsageCount]; + if (emojiIndex < 0) { + entry = [unicode, 1]; + } else { + [entry] = recentEmoji.splice(emojiIndex, 1); + entry[1] += 1; + } + recentEmoji.unshift(entry); + mx.setAccountData(AccountDataEvent.ElementRecentEmoji, { + recent_emoji: recentEmoji.slice(0, 100), + }); +} diff --git a/src/app/state/hooks/inviteList.ts b/src/app/state/hooks/inviteList.ts new file mode 100644 index 00000000..f8b7e057 --- /dev/null +++ b/src/app/state/hooks/inviteList.ts @@ -0,0 +1,63 @@ +import { useAtomValue, WritableAtom } from 'jotai'; +import { selectAtom } from 'jotai/utils'; +import { MatrixClient } from 'matrix-js-sdk'; +import { useCallback } from 'react'; +import { isDirectInvite, isRoom, isSpace, isUnsupportedRoom } from '../../utils/room'; +import { compareRoomsEqual, RoomsAction } from '../utils'; +import { MDirectAction } from '../mDirectList'; + +export const useSpaceInvites = ( + mx: MatrixClient, + allInvitesAtom: WritableAtom +) => { + const selector = useCallback( + (rooms: string[]) => rooms.filter((roomId) => isSpace(mx.getRoom(roomId))), + [mx] + ); + return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); +}; + +export const useRoomInvites = ( + mx: MatrixClient, + allInvitesAtom: WritableAtom, + mDirectAtom: WritableAtom, MDirectAction> +) => { + const mDirects = useAtomValue(mDirectAtom); + const selector = useCallback( + (rooms: string[]) => + rooms.filter( + (roomId) => + isRoom(mx.getRoom(roomId)) && + !(mDirects.has(roomId) || isDirectInvite(mx.getRoom(roomId), mx.getUserId())) + ), + [mx, mDirects] + ); + return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); +}; + +export const useDirectInvites = ( + mx: MatrixClient, + allInvitesAtom: WritableAtom, + mDirectAtom: WritableAtom, MDirectAction> +) => { + const mDirects = useAtomValue(mDirectAtom); + const selector = useCallback( + (rooms: string[]) => + rooms.filter( + (roomId) => mDirects.has(roomId) || isDirectInvite(mx.getRoom(roomId), mx.getUserId()) + ), + [mx, mDirects] + ); + return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); +}; + +export const useUnsupportedInvites = ( + mx: MatrixClient, + allInvitesAtom: WritableAtom +) => { + const selector = useCallback( + (rooms: string[]) => rooms.filter((roomId) => isUnsupportedRoom(mx.getRoom(roomId))), + [mx] + ); + return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); +}; diff --git a/src/app/state/hooks/roomList.ts b/src/app/state/hooks/roomList.ts new file mode 100644 index 00000000..5d0890bd --- /dev/null +++ b/src/app/state/hooks/roomList.ts @@ -0,0 +1,54 @@ +import { useAtomValue, WritableAtom } from 'jotai'; +import { selectAtom } from 'jotai/utils'; +import { MatrixClient } from 'matrix-js-sdk'; +import { useCallback } from 'react'; +import { isRoom, isSpace, isUnsupportedRoom } from '../../utils/room'; +import { compareRoomsEqual, RoomsAction } from '../utils'; +import { MDirectAction } from '../mDirectList'; + +export const useSpaces = (mx: MatrixClient, allRoomsAtom: WritableAtom) => { + const selector = useCallback( + (rooms: string[]) => rooms.filter((roomId) => isSpace(mx.getRoom(roomId))), + [mx] + ); + return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); +}; + +export const useRooms = ( + mx: MatrixClient, + allRoomsAtom: WritableAtom, + mDirectAtom: WritableAtom, MDirectAction> +) => { + const mDirects = useAtomValue(mDirectAtom); + const selector = useCallback( + (rooms: string[]) => + rooms.filter((roomId) => isRoom(mx.getRoom(roomId)) && !mDirects.has(roomId)), + [mx, mDirects] + ); + return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); +}; + +export const useDirects = ( + mx: MatrixClient, + allRoomsAtom: WritableAtom, + mDirectAtom: WritableAtom, MDirectAction> +) => { + const mDirects = useAtomValue(mDirectAtom); + const selector = useCallback( + (rooms: string[]) => + rooms.filter((roomId) => isRoom(mx.getRoom(roomId)) && mDirects.has(roomId)), + [mx, mDirects] + ); + return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); +}; + +export const useUnsupportedRooms = ( + mx: MatrixClient, + allRoomsAtom: WritableAtom +) => { + const selector = useCallback( + (rooms: string[]) => rooms.filter((roomId) => isUnsupportedRoom(mx.getRoom(roomId))), + [mx] + ); + return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); +}; diff --git a/src/app/state/hooks/settings.ts b/src/app/state/hooks/settings.ts new file mode 100644 index 00000000..3f4dab60 --- /dev/null +++ b/src/app/state/hooks/settings.ts @@ -0,0 +1,34 @@ +import { atom, useAtomValue, useSetAtom, WritableAtom } from 'jotai'; +import { SetAtom } from 'jotai/core/atom'; +import { selectAtom } from 'jotai/utils'; +import { useMemo } from 'react'; +import { Settings } from '../settings'; + +export const useSetSetting = ( + settingsAtom: WritableAtom, + key: K +) => { + const setterAtom = useMemo( + () => + atom(null, (get, set, value) => { + const s = { ...get(settingsAtom) }; + s[key] = value; + set(settingsAtom, s); + }), + [settingsAtom, key] + ); + + return useSetAtom(setterAtom); +}; + +export const useSetting = ( + settingsAtom: WritableAtom, + key: K +): [Settings[K], SetAtom] => { + const selector = useMemo(() => (s: Settings) => s[key], [key]); + const setting = useAtomValue(selectAtom(settingsAtom, selector)); + + const setter = useSetSetting(settingsAtom, key); + + return [setting, setter]; +}; diff --git a/src/app/state/hooks/useBindAtoms.ts b/src/app/state/hooks/useBindAtoms.ts new file mode 100644 index 00000000..6dc2a3de --- /dev/null +++ b/src/app/state/hooks/useBindAtoms.ts @@ -0,0 +1,16 @@ +import { MatrixClient } from 'matrix-js-sdk'; +import { allInvitesAtom, useBindAllInvitesAtom } from '../inviteList'; +import { allRoomsAtom, useBindAllRoomsAtom } from '../roomList'; +import { mDirectAtom, useBindMDirectAtom } from '../mDirectList'; +import { muteChangesAtom, mutedRoomsAtom, useBindMutedRoomsAtom } from '../mutedRoomList'; +import { roomToUnreadAtom, useBindRoomToUnreadAtom } from '../roomToUnread'; +import { roomToParentsAtom, useBindRoomToParentsAtom } from '../roomToParents'; + +export const useBindAtoms = (mx: MatrixClient) => { + useBindMDirectAtom(mx, mDirectAtom); + useBindAllInvitesAtom(mx, allInvitesAtom); + useBindAllRoomsAtom(mx, allRoomsAtom); + useBindRoomToParentsAtom(mx, roomToParentsAtom); + useBindMutedRoomsAtom(mx, mutedRoomsAtom); + useBindRoomToUnreadAtom(mx, roomToUnreadAtom, muteChangesAtom); +}; diff --git a/src/app/state/inviteList.ts b/src/app/state/inviteList.ts new file mode 100644 index 00000000..463fd352 --- /dev/null +++ b/src/app/state/inviteList.ts @@ -0,0 +1,32 @@ +import { atom, WritableAtom } from 'jotai'; +import { MatrixClient } from 'matrix-js-sdk'; +import { useMemo } from 'react'; +import { Membership } from '../../types/matrix/room'; +import { RoomsAction, useBindRoomsWithMembershipsAtom } from './utils'; + +const baseRoomsAtom = atom([]); +export const allInvitesAtom = atom( + (get) => get(baseRoomsAtom), + (get, set, action) => { + if (action.type === 'INITIALIZE') { + set(baseRoomsAtom, action.rooms); + return; + } + set(baseRoomsAtom, (ids) => { + const newIds = ids.filter((id) => id !== action.roomId); + if (action.type === 'PUT') newIds.push(action.roomId); + return newIds; + }); + } +); + +export const useBindAllInvitesAtom = ( + mx: MatrixClient, + allRooms: WritableAtom +) => { + useBindRoomsWithMembershipsAtom( + mx, + allRooms, + useMemo(() => [Membership.Invite], []) + ); +}; diff --git a/src/app/state/list.ts b/src/app/state/list.ts new file mode 100644 index 00000000..4f5a6191 --- /dev/null +++ b/src/app/state/list.ts @@ -0,0 +1,33 @@ +import { atom } from 'jotai'; + +export type ListAction = + | { + type: 'PUT'; + item: T | T[]; + } + | { + type: 'DELETE'; + item: T | T[]; + }; + +export const createListAtom = () => { + const baseListAtom = atom([]); + return atom>( + (get) => get(baseListAtom), + (get, set, action) => { + const items = get(baseListAtom); + const newItems = Array.isArray(action.item) ? action.item : [action.item]; + if (action.type === 'DELETE') { + set( + baseListAtom, + items.filter((item) => !newItems.includes(item)) + ); + return; + } + if (action.type === 'PUT') { + set(baseListAtom, [...items, ...newItems]); + } + } + ); +}; +export type TListAtom = ReturnType>; diff --git a/src/app/state/mDirectList.ts b/src/app/state/mDirectList.ts new file mode 100644 index 00000000..96e2f0d0 --- /dev/null +++ b/src/app/state/mDirectList.ts @@ -0,0 +1,47 @@ +import { atom, useSetAtom, WritableAtom } from 'jotai'; +import { ClientEvent, MatrixClient, MatrixEvent } from 'matrix-js-sdk'; +import { useEffect } from 'react'; +import { AccountDataEvent } from '../../types/matrix/accountData'; +import { getAccountData, getMDirects } from '../utils/room'; + +export type MDirectAction = { + type: 'INITIALIZE' | 'UPDATE'; + rooms: Set; +}; + +const baseMDirectAtom = atom(new Set()); +export const mDirectAtom = atom, MDirectAction>( + (get) => get(baseMDirectAtom), + (get, set, action) => { + set(baseMDirectAtom, action.rooms); + } +); + +export const useBindMDirectAtom = ( + mx: MatrixClient, + mDirect: WritableAtom, MDirectAction> +) => { + const setMDirect = useSetAtom(mDirect); + + useEffect(() => { + const mDirectEvent = getAccountData(mx, AccountDataEvent.Direct); + if (mDirectEvent) { + setMDirect({ + type: 'INITIALIZE', + rooms: getMDirects(mDirectEvent), + }); + } + + const handleAccountData = (event: MatrixEvent) => { + setMDirect({ + type: 'UPDATE', + rooms: getMDirects(event), + }); + }; + + mx.on(ClientEvent.AccountData, handleAccountData); + return () => { + mx.removeListener(ClientEvent.AccountData, handleAccountData); + }; + }, [mx, setMDirect]); +}; diff --git a/src/app/state/mutedRoomList.ts b/src/app/state/mutedRoomList.ts new file mode 100644 index 00000000..d456f853 --- /dev/null +++ b/src/app/state/mutedRoomList.ts @@ -0,0 +1,101 @@ +import { atom, WritableAtom, useSetAtom } from 'jotai'; +import { ClientEvent, IPushRule, IPushRules, MatrixClient, MatrixEvent } from 'matrix-js-sdk'; +import { useEffect } from 'react'; +import { MuteChanges } from '../../types/matrix/room'; +import { findMutedRule, isMutedRule } from '../utils/room'; + +export type MutedRoomsUpdate = + | { + type: 'INITIALIZE'; + addRooms: string[]; + } + | { + type: 'UPDATE'; + addRooms: string[]; + removeRooms: string[]; + }; + +export const muteChangesAtom = atom({ + added: [], + removed: [], +}); + +const baseMutedRoomsAtom = atom(new Set()); +export const mutedRoomsAtom = atom, MutedRoomsUpdate>( + (get) => get(baseMutedRoomsAtom), + (get, set, action) => { + const mutedRooms = new Set([...get(mutedRoomsAtom)]); + if (action.type === 'INITIALIZE') { + set(baseMutedRoomsAtom, new Set([...action.addRooms])); + set(muteChangesAtom, { + added: [...action.addRooms], + removed: [], + }); + return; + } + if (action.type === 'UPDATE') { + action.removeRooms.forEach((roomId) => mutedRooms.delete(roomId)); + action.addRooms.forEach((roomId) => mutedRooms.add(roomId)); + set(baseMutedRoomsAtom, mutedRooms); + set(muteChangesAtom, { + added: [...action.addRooms], + removed: [...action.removeRooms], + }); + } + } +); + +export const useBindMutedRoomsAtom = ( + mx: MatrixClient, + mutedAtom: WritableAtom, MutedRoomsUpdate> +) => { + const setMuted = useSetAtom(mutedAtom); + + useEffect(() => { + const overrideRules = mx.getAccountData('m.push_rules')?.getContent() + ?.global?.override; + if (overrideRules) { + const mutedRooms = overrideRules.reduce((rooms, rule) => { + if (isMutedRule(rule)) rooms.push(rule.rule_id); + return rooms; + }, []); + setMuted({ + type: 'INITIALIZE', + addRooms: mutedRooms, + }); + } + }, [mx, setMuted]); + + useEffect(() => { + const handlePushRules = (mEvent: MatrixEvent, oldMEvent?: MatrixEvent) => { + if (mEvent.getType() === 'm.push_rules') { + const override = mEvent?.getContent()?.global?.override as IPushRule[] | undefined; + const oldOverride = oldMEvent?.getContent()?.global?.override as IPushRule[] | undefined; + if (!override || !oldOverride) return; + + const isMuteToggled = (rule: IPushRule, otherOverride: IPushRule[]) => { + const roomId = rule.rule_id; + + const isMuted = isMutedRule(rule); + if (!isMuted) return false; + const isOtherMuted = findMutedRule(otherOverride, roomId); + if (isOtherMuted) return false; + return true; + }; + + const mutedRules = override.filter((rule) => isMuteToggled(rule, oldOverride)); + const unMutedRules = oldOverride.filter((rule) => isMuteToggled(rule, override)); + + setMuted({ + type: 'UPDATE', + addRooms: mutedRules.map((rule) => rule.rule_id), + removeRooms: unMutedRules.map((rule) => rule.rule_id), + }); + } + }; + mx.on(ClientEvent.AccountData, handlePushRules); + return () => { + mx.removeListener(ClientEvent.AccountData, handlePushRules); + }; + }, [mx, setMuted]); +}; diff --git a/src/app/state/roomInputDrafts.ts b/src/app/state/roomInputDrafts.ts new file mode 100644 index 00000000..2708b8bd --- /dev/null +++ b/src/app/state/roomInputDrafts.ts @@ -0,0 +1,48 @@ +import { atom } from 'jotai'; +import { atomFamily } from 'jotai/utils'; +import { Descendant } from 'slate'; +import { EncryptedAttachmentInfo } from 'browser-encrypt-attachment'; +import { TListAtom, createListAtom } from './list'; +import { createUploadAtomFamily } from './upload'; +import { TUploadContent } from '../utils/matrix'; + +export const roomUploadAtomFamily = createUploadAtomFamily(); + +export type TUploadItem = { + file: TUploadContent; + originalFile: TUploadContent; + encInfo: EncryptedAttachmentInfo | undefined; +}; + +export const roomIdToUploadItemsAtomFamily = atomFamily>( + createListAtom +); + +export type RoomIdToMsgAction = + | { + type: 'PUT'; + roomId: string; + msg: Descendant[]; + } + | { + type: 'DELETE'; + roomId: string; + }; + +const createMsgDraftAtom = () => atom([]); +export type TMsgDraftAtom = ReturnType; +export const roomIdToMsgDraftAtomFamily = atomFamily(() => + createMsgDraftAtom() +); + +export type IReplyDraft = { + userId: string; + eventId: string; + body: string; + formattedBody?: string; +}; +const createReplyDraftAtom = () => atom(undefined); +export type TReplyDraftAtom = ReturnType; +export const roomIdToReplyDraftAtomFamily = atomFamily(() => + createReplyDraftAtom() +); diff --git a/src/app/state/roomList.ts b/src/app/state/roomList.ts new file mode 100644 index 00000000..7a793d8c --- /dev/null +++ b/src/app/state/roomList.ts @@ -0,0 +1,31 @@ +import { atom, WritableAtom } from 'jotai'; +import { MatrixClient } from 'matrix-js-sdk'; +import { useMemo } from 'react'; +import { Membership } from '../../types/matrix/room'; +import { RoomsAction, useBindRoomsWithMembershipsAtom } from './utils'; + +const baseRoomsAtom = atom([]); +export const allRoomsAtom = atom( + (get) => get(baseRoomsAtom), + (get, set, action) => { + if (action.type === 'INITIALIZE') { + set(baseRoomsAtom, action.rooms); + return; + } + set(baseRoomsAtom, (ids) => { + const newIds = ids.filter((id) => id !== action.roomId); + if (action.type === 'PUT') newIds.push(action.roomId); + return newIds; + }); + } +); +export const useBindAllRoomsAtom = ( + mx: MatrixClient, + allRooms: WritableAtom +) => { + useBindRoomsWithMembershipsAtom( + mx, + allRooms, + useMemo(() => [Membership.Join], []) + ); +}; diff --git a/src/app/state/roomToParents.ts b/src/app/state/roomToParents.ts new file mode 100644 index 00000000..374ddd57 --- /dev/null +++ b/src/app/state/roomToParents.ts @@ -0,0 +1,120 @@ +import produce from 'immer'; +import { atom, useSetAtom, WritableAtom } from 'jotai'; +import { + ClientEvent, + MatrixClient, + MatrixEvent, + Room, + RoomEvent, + RoomStateEvent, +} from 'matrix-js-sdk'; +import { useEffect } from 'react'; +import { Membership, RoomToParents, StateEvent } from '../../types/matrix/room'; +import { + getRoomToParents, + getSpaceChildren, + isSpace, + isValidChild, + mapParentWithChildren, +} from '../utils/room'; + +export type RoomToParentsAction = + | { + type: 'INITIALIZE'; + roomToParents: RoomToParents; + } + | { + type: 'PUT'; + parent: string; + children: string[]; + } + | { + type: 'DELETE'; + roomId: string; + }; + +const baseRoomToParents = atom(new Map()); +export const roomToParentsAtom = atom( + (get) => get(baseRoomToParents), + (get, set, action) => { + if (action.type === 'INITIALIZE') { + set(baseRoomToParents, action.roomToParents); + return; + } + if (action.type === 'PUT') { + set( + baseRoomToParents, + produce(get(baseRoomToParents), (draftRoomToParents) => { + mapParentWithChildren(draftRoomToParents, action.parent, action.children); + }) + ); + return; + } + if (action.type === 'DELETE') { + set( + baseRoomToParents, + produce(get(baseRoomToParents), (draftRoomToParents) => { + const noParentRooms: string[] = []; + draftRoomToParents.delete(action.roomId); + draftRoomToParents.forEach((parents, child) => { + parents.delete(action.roomId); + if (parents.size === 0) noParentRooms.push(child); + }); + noParentRooms.forEach((room) => draftRoomToParents.delete(room)); + }) + ); + } + } +); + +export const useBindRoomToParentsAtom = ( + mx: MatrixClient, + roomToParents: WritableAtom +) => { + const setRoomToParents = useSetAtom(roomToParents); + + useEffect(() => { + setRoomToParents({ type: 'INITIALIZE', roomToParents: getRoomToParents(mx) }); + + const handleAddRoom = (room: Room) => { + if (isSpace(room) && room.getMyMembership() !== Membership.Invite) { + setRoomToParents({ type: 'PUT', parent: room.roomId, children: getSpaceChildren(room) }); + } + }; + + const handleMembershipChange = (room: Room, membership: string) => { + if (isSpace(room) && membership === Membership.Join) { + setRoomToParents({ type: 'PUT', parent: room.roomId, children: getSpaceChildren(room) }); + } + }; + + const handleStateChange = (mEvent: MatrixEvent) => { + if (mEvent.getType() === StateEvent.SpaceChild) { + const childId = mEvent.getStateKey(); + const roomId = mEvent.getRoomId(); + if (childId && roomId) { + if (isValidChild(mEvent)) { + setRoomToParents({ type: 'PUT', parent: roomId, children: [childId] }); + } else { + setRoomToParents({ type: 'DELETE', roomId: childId }); + } + } + } + }; + + const handleDeleteRoom = (roomId: string) => { + setRoomToParents({ type: 'DELETE', roomId }); + }; + + mx.on(ClientEvent.Room, handleAddRoom); + mx.on(RoomEvent.MyMembership, handleMembershipChange); + mx.on(RoomStateEvent.Events, handleStateChange); + mx.on(ClientEvent.DeleteRoom, handleDeleteRoom); + return () => { + mx.removeListener(ClientEvent.Room, handleAddRoom); + mx.removeListener(RoomEvent.MyMembership, handleMembershipChange); + mx.removeListener(RoomStateEvent.Events, handleStateChange); + mx.removeListener(ClientEvent.DeleteRoom, handleDeleteRoom); + }; + }, [mx, setRoomToParents]); +}; diff --git a/src/app/state/roomToUnread.ts b/src/app/state/roomToUnread.ts new file mode 100644 index 00000000..0c7b6bd6 --- /dev/null +++ b/src/app/state/roomToUnread.ts @@ -0,0 +1,219 @@ +import produce from 'immer'; +import { atom, useSetAtom, PrimitiveAtom, WritableAtom, useAtomValue } from 'jotai'; +import { IRoomTimelineData, MatrixClient, MatrixEvent, Room, RoomEvent } from 'matrix-js-sdk'; +import { ReceiptContent, ReceiptType } from 'matrix-js-sdk/lib/@types/read_receipts'; +import { useEffect } from 'react'; +import { + MuteChanges, + Membership, + NotificationType, + RoomToUnread, + UnreadInfo, +} from '../../types/matrix/room'; +import { + getAllParents, + getNotificationType, + getUnreadInfo, + getUnreadInfos, + isNotificationEvent, + roomHaveUnread, +} from '../utils/room'; +import { roomToParentsAtom } from './roomToParents'; + +export type RoomToUnreadAction = + | { + type: 'RESET'; + unreadInfos: UnreadInfo[]; + } + | { + type: 'PUT'; + unreadInfo: UnreadInfo; + } + | { + type: 'DELETE'; + roomId: string; + }; + +const putUnreadInfo = ( + roomToUnread: RoomToUnread, + allParents: Set, + unreadInfo: UnreadInfo +) => { + const oldUnread = roomToUnread.get(unreadInfo.roomId) ?? { highlight: 0, total: 0, from: null }; + roomToUnread.set(unreadInfo.roomId, { + highlight: unreadInfo.highlight, + total: unreadInfo.total, + from: null, + }); + + const newH = unreadInfo.highlight - oldUnread.highlight; + const newT = unreadInfo.total - oldUnread.total; + + allParents.forEach((parentId) => { + const oldParentUnread = roomToUnread.get(parentId) ?? { highlight: 0, total: 0, from: null }; + roomToUnread.set(parentId, { + highlight: (oldParentUnread.highlight += newH), + total: (oldParentUnread.total += newT), + from: new Set([...(oldParentUnread.from ?? []), unreadInfo.roomId]), + }); + }); +}; + +const deleteUnreadInfo = (roomToUnread: RoomToUnread, allParents: Set, roomId: string) => { + const oldUnread = roomToUnread.get(roomId); + if (!oldUnread) return; + roomToUnread.delete(roomId); + + allParents.forEach((parentId) => { + const oldParentUnread = roomToUnread.get(parentId); + if (!oldParentUnread) return; + const newFrom = new Set([...(oldParentUnread.from ?? roomId)]); + newFrom.delete(roomId); + if (newFrom.size === 0) { + roomToUnread.delete(parentId); + return; + } + roomToUnread.set(parentId, { + highlight: oldParentUnread.highlight - oldUnread.highlight, + total: oldParentUnread.total - oldUnread.total, + from: newFrom, + }); + }); +}; + +const baseRoomToUnread = atom(new Map()); +export const roomToUnreadAtom = atom( + (get) => get(baseRoomToUnread), + (get, set, action) => { + if (action.type === 'RESET') { + const draftRoomToUnread: RoomToUnread = new Map(); + action.unreadInfos.forEach((unreadInfo) => { + putUnreadInfo( + draftRoomToUnread, + getAllParents(get(roomToParentsAtom), unreadInfo.roomId), + unreadInfo + ); + }); + set(baseRoomToUnread, draftRoomToUnread); + return; + } + if (action.type === 'PUT') { + set( + baseRoomToUnread, + produce(get(baseRoomToUnread), (draftRoomToUnread) => + putUnreadInfo( + draftRoomToUnread, + getAllParents(get(roomToParentsAtom), action.unreadInfo.roomId), + action.unreadInfo + ) + ) + ); + return; + } + if (action.type === 'DELETE' && get(baseRoomToUnread).has(action.roomId)) { + set( + baseRoomToUnread, + produce(get(baseRoomToUnread), (draftRoomToUnread) => + deleteUnreadInfo( + draftRoomToUnread, + getAllParents(get(roomToParentsAtom), action.roomId), + action.roomId + ) + ) + ); + } + } +); + +export const useBindRoomToUnreadAtom = ( + mx: MatrixClient, + unreadAtom: WritableAtom, + muteChangesAtom: PrimitiveAtom +) => { + const setUnreadAtom = useSetAtom(unreadAtom); + const muteChanges = useAtomValue(muteChangesAtom); + + useEffect(() => { + setUnreadAtom({ + type: 'RESET', + unreadInfos: getUnreadInfos(mx), + }); + }, [mx, setUnreadAtom]); + + useEffect(() => { + const handleTimelineEvent = ( + mEvent: MatrixEvent, + room: Room | undefined, + toStartOfTimeline: boolean | undefined, + removed: boolean, + data: IRoomTimelineData + ) => { + if (!room || !data.liveEvent || room.isSpaceRoom() || !isNotificationEvent(mEvent)) return; + if (getNotificationType(mx, room.roomId) === NotificationType.Mute) { + setUnreadAtom({ + type: 'DELETE', + roomId: room.roomId, + }); + return; + } + + if (mEvent.getSender() === mx.getUserId()) return; + setUnreadAtom({ type: 'PUT', unreadInfo: getUnreadInfo(room) }); + }; + mx.on(RoomEvent.Timeline, handleTimelineEvent); + return () => { + mx.removeListener(RoomEvent.Timeline, handleTimelineEvent); + }; + }, [mx, setUnreadAtom]); + + useEffect(() => { + const handleReceipt = (mEvent: MatrixEvent, room: Room) => { + if (mEvent.getType() === 'm.receipt') { + const myUserId = mx.getUserId(); + if (!myUserId) return; + if (room.isSpaceRoom()) return; + const content = mEvent.getContent(); + + const isMyReceipt = Object.keys(content).find((eventId) => + (Object.keys(content[eventId]) as ReceiptType[]).find( + (receiptType) => content[eventId][receiptType][myUserId] + ) + ); + if (isMyReceipt) { + setUnreadAtom({ type: 'DELETE', roomId: room.roomId }); + } + } + }; + mx.on(RoomEvent.Receipt, handleReceipt); + return () => { + mx.removeListener(RoomEvent.Receipt, handleReceipt); + }; + }, [mx, setUnreadAtom]); + + useEffect(() => { + muteChanges.removed.forEach((roomId) => { + const room = mx.getRoom(roomId); + if (!room) return; + if (!roomHaveUnread(mx, room)) return; + setUnreadAtom({ type: 'PUT', unreadInfo: getUnreadInfo(room) }); + }); + muteChanges.added.forEach((roomId) => { + setUnreadAtom({ type: 'DELETE', roomId }); + }); + }, [mx, setUnreadAtom, muteChanges]); + + useEffect(() => { + const handleMembershipChange = (room: Room, membership: string) => { + if (membership !== Membership.Join) { + setUnreadAtom({ + type: 'DELETE', + roomId: room.roomId, + }); + } + }; + mx.on(RoomEvent.MyMembership, handleMembershipChange); + return () => { + mx.removeListener(RoomEvent.MyMembership, handleMembershipChange); + }; + }, [mx, setUnreadAtom]); +}; diff --git a/src/app/state/selectedRoom.ts b/src/app/state/selectedRoom.ts new file mode 100644 index 00000000..1ef04de3 --- /dev/null +++ b/src/app/state/selectedRoom.ts @@ -0,0 +1,3 @@ +import { atom } from 'jotai'; + +export const selectedRoomAtom = atom(undefined); diff --git a/src/app/state/selectedTab.ts b/src/app/state/selectedTab.ts new file mode 100644 index 00000000..e680ae60 --- /dev/null +++ b/src/app/state/selectedTab.ts @@ -0,0 +1,8 @@ +import { atom } from 'jotai'; + +export enum SidebarTab { + Home = 'Home', + People = 'People', +} + +export const selectedTabAtom = atom(SidebarTab.Home); diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts new file mode 100644 index 00000000..7739c589 --- /dev/null +++ b/src/app/state/settings.ts @@ -0,0 +1,49 @@ +import { atom } from 'jotai'; + +const STORAGE_KEY = 'settings'; +export interface Settings { + themeIndex: number; + useSystemTheme: boolean; + isMarkdown: boolean; + editorToolbar: boolean; + isPeopleDrawer: boolean; + + hideMembershipEvents: boolean; + hideNickAvatarEvents: boolean; + + showNotifications: boolean; + isNotificationSounds: boolean; +} + +const defaultSettings: Settings = { + themeIndex: 0, + useSystemTheme: true, + isMarkdown: true, + editorToolbar: false, + isPeopleDrawer: true, + + hideMembershipEvents: false, + hideNickAvatarEvents: true, + + showNotifications: true, + isNotificationSounds: true, +}; + +export const getSettings = () => { + const settings = localStorage.getItem(STORAGE_KEY); + if (settings === null) return defaultSettings; + return JSON.parse(settings) as Settings; +}; + +export const setSettings = (settings: Settings) => { + localStorage.setItem(STORAGE_KEY, JSON.stringify(settings)); +}; + +const baseSettings = atom(getSettings()); +export const settingsAtom = atom( + (get) => get(baseSettings), + (get, set, update) => { + set(baseSettings, update); + setSettings(update); + } +); diff --git a/src/app/state/tabToRoom.ts b/src/app/state/tabToRoom.ts new file mode 100644 index 00000000..2f4ee92a --- /dev/null +++ b/src/app/state/tabToRoom.ts @@ -0,0 +1,34 @@ +import produce from 'immer'; +import { atom } from 'jotai'; +import { MatrixClient } from 'matrix-js-sdk'; + +type RoomInfo = { + roomId: string; + timestamp: number; +}; +type TabToRoom = Map; + +type TabToRoomAction = { + type: 'PUT'; + tabInfo: { tabId: string; roomInfo: RoomInfo }; +}; + +const baseTabToRoom = atom(new Map()); +export const tabToRoomAtom = atom( + (get) => get(baseTabToRoom), + (get, set, action) => { + if (action.type === 'PUT') { + set( + baseTabToRoom, + produce(get(baseTabToRoom), (draft) => { + draft.set(action.tabInfo.tabId, action.tabInfo.roomInfo); + }) + ); + } + } +); + +export const useBindTabToRoomAtom = (mx: MatrixClient) => { + console.log(mx); + // TODO: +}; diff --git a/src/app/state/upload.ts b/src/app/state/upload.ts new file mode 100644 index 00000000..d92b93d3 --- /dev/null +++ b/src/app/state/upload.ts @@ -0,0 +1,146 @@ +import { atom, useAtom } from 'jotai'; +import { atomFamily } from 'jotai/utils'; +import { MatrixClient, UploadResponse, UploadProgress, MatrixError } from 'matrix-js-sdk'; +import { useCallback } from 'react'; +import { useThrottle } from '../hooks/useThrottle'; +import { uploadContent, TUploadContent } from '../utils/matrix'; + +export enum UploadStatus { + Idle = 'idle', + Loading = 'loading', + Success = 'success', + Error = 'error', +} + +export type UploadIdle = { + file: TUploadContent; + status: UploadStatus.Idle; +}; + +export type UploadLoading = { + file: TUploadContent; + status: UploadStatus.Loading; + promise: Promise; + progress: UploadProgress; +}; + +export type UploadSuccess = { + file: TUploadContent; + status: UploadStatus.Success; + mxc: string; +}; + +export type UploadError = { + file: TUploadContent; + status: UploadStatus.Error; + error: MatrixError; +}; + +export type Upload = UploadIdle | UploadLoading | UploadSuccess | UploadError; + +export type UploadAtomAction = + | { + promise: Promise; + } + | { + progress: UploadProgress; + } + | { + mxc: string; + } + | { + error: MatrixError; + }; + +export const createUploadAtom = (file: TUploadContent) => { + const baseUploadAtom = atom({ + file, + status: UploadStatus.Idle, + }); + return atom( + (get) => get(baseUploadAtom), + (get, set, update) => { + const uploadState = get(baseUploadAtom); + if ('promise' in update) { + set(baseUploadAtom, { + status: UploadStatus.Loading, + file, + promise: update.promise, + progress: { loaded: 0, total: file.size }, + }); + return; + } + if ('progress' in update && uploadState.status === UploadStatus.Loading) { + set(baseUploadAtom, { + ...uploadState, + progress: update.progress, + }); + return; + } + if ('mxc' in update) { + set(baseUploadAtom, { + status: UploadStatus.Success, + file, + mxc: update.mxc, + }); + return; + } + if ('error' in update) { + set(baseUploadAtom, { + status: UploadStatus.Error, + file, + error: update.error, + }); + } + } + ); +}; +export type TUploadAtom = ReturnType; + +export const useBindUploadAtom = ( + mx: MatrixClient, + file: TUploadContent, + uploadAtom: TUploadAtom, + hideFilename?: boolean +) => { + const [upload, setUpload] = useAtom(uploadAtom); + + const handleProgress = useThrottle( + useCallback((progress: UploadProgress) => setUpload({ progress }), [setUpload]), + { immediate: true, wait: 200 } + ); + + const startUpload = useCallback( + () => + uploadContent(mx, file, { + hideFilename, + onPromise: (promise: Promise) => setUpload({ promise }), + onProgress: handleProgress, + onSuccess: (mxc) => setUpload({ mxc }), + onError: (error) => setUpload({ error }), + }), + [mx, file, hideFilename, setUpload, handleProgress] + ); + + const cancelUpload = useCallback(async () => { + if (upload.status === UploadStatus.Loading) { + await mx.cancelUpload(upload.promise); + } + }, [mx, upload]); + + return { + upload, + startUpload, + cancelUpload, + }; +}; + +export const createUploadAtomFamily = () => + atomFamily(createUploadAtom); +export type TUploadAtomFamily = ReturnType; + +export const createUploadFamilyObserverAtom = ( + uploadFamily: TUploadAtomFamily, + uploads: TUploadContent[] +) => atom((get) => uploads.map((upload) => get(uploadFamily(upload)))); +export type TUploadFamilyObserverAtom = ReturnType; diff --git a/src/app/state/utils.ts b/src/app/state/utils.ts new file mode 100644 index 00000000..355c9411 --- /dev/null +++ b/src/app/state/utils.ts @@ -0,0 +1,64 @@ +import { useSetAtom, WritableAtom } from 'jotai'; +import { ClientEvent, MatrixClient, Room, RoomEvent } from 'matrix-js-sdk'; +import { useEffect } from 'react'; +import { Membership } from '../../types/matrix/room'; + +export type RoomsAction = + | { + type: 'INITIALIZE'; + rooms: string[]; + } + | { + type: 'PUT' | 'DELETE'; + roomId: string; + }; + +export const useBindRoomsWithMembershipsAtom = ( + mx: MatrixClient, + roomsAtom: WritableAtom, + memberships: Membership[] +) => { + const setRoomsAtom = useSetAtom(roomsAtom); + + useEffect(() => { + const satisfyMembership = (room: Room): boolean => + !!memberships.find((membership) => membership === room.getMyMembership()); + setRoomsAtom({ + type: 'INITIALIZE', + rooms: mx + .getRooms() + .filter(satisfyMembership) + .map((room) => room.roomId), + }); + + const handleAddRoom = (room: Room) => { + if (satisfyMembership(room)) { + setRoomsAtom({ type: 'PUT', roomId: room.roomId }); + } + }; + + const handleMembershipChange = (room: Room) => { + if (!satisfyMembership(room)) { + setRoomsAtom({ type: 'DELETE', roomId: room.roomId }); + } + }; + + const handleDeleteRoom = (roomId: string) => { + setRoomsAtom({ type: 'DELETE', roomId }); + }; + + mx.on(ClientEvent.Room, handleAddRoom); + mx.on(RoomEvent.MyMembership, handleMembershipChange); + mx.on(ClientEvent.DeleteRoom, handleDeleteRoom); + return () => { + mx.removeListener(ClientEvent.Room, handleAddRoom); + mx.removeListener(RoomEvent.MyMembership, handleMembershipChange); + mx.removeListener(ClientEvent.DeleteRoom, handleDeleteRoom); + }; + }, [mx, memberships, setRoomsAtom]); +}; + +export const compareRoomsEqual = (a: string[], b: string[]) => { + if (a.length !== b.length) return false; + return a.every((roomId, roomIdIndex) => roomId === b[roomIdIndex]); +}; diff --git a/src/app/templates/client/Client.jsx b/src/app/templates/client/Client.jsx index d83845b8..cc9d88fa 100644 --- a/src/app/templates/client/Client.jsx +++ b/src/app/templates/client/Client.jsx @@ -18,14 +18,13 @@ import EmojiBoardOpener from '../../organisms/emoji-board/EmojiBoardOpener'; import initMatrix from '../../../client/initMatrix'; import navigation from '../../../client/state/navigation'; import cons from '../../../client/state/cons'; -import DragDrop from '../../organisms/drag-drop/DragDrop'; import VerticalMenuIC from '../../../../public/res/ic/outlined/vertical-menu.svg'; +import { MatrixClientProvider } from '../../hooks/useMatrixClient'; function Client() { const [isLoading, changeLoading] = useState(true); const [loadingMsg, setLoadingMsg] = useState('Heating up'); - const [dragCounter, setDragCounter] = useState(0); const classNameHidden = 'client__item-hidden'; const navWrapperRef = useRef(null); @@ -44,19 +43,17 @@ function Client() { navigation.on(cons.events.navigation.ROOM_SELECTED, onRoomSelected); navigation.on(cons.events.navigation.NAVIGATION_OPENED, onNavigationSelected); - return (() => { + return () => { navigation.removeListener(cons.events.navigation.ROOM_SELECTED, onRoomSelected); navigation.removeListener(cons.events.navigation.NAVIGATION_OPENED, onNavigationSelected); - }); + }; }, []); useEffect(() => { + changeLoading(true); let counter = 0; const iId = setInterval(() => { - const msgList = [ - 'Almost there...', - 'Looks like you have a lot of stuff to heat up!', - ]; + const msgList = ['Almost there...', 'Looks like you have a lot of stuff to heat up!']; if (counter === msgList.length - 1) { setLoadingMsg(msgList[msgList.length - 1]); clearInterval(iId); @@ -80,103 +77,48 @@ function Client() {
initMatrix.clearCacheAndReload()}> Clear cache & reload initMatrix.logout()}>Logout + } + render={(toggle) => ( + )} - render={(toggle) => } />
- {loadingMsg} + + {loadingMsg} +
- Cinny + + Cinny +
); } - function dragContainsFiles(e) { - if (!e.dataTransfer.types) return false; - - for (let i = 0; i < e.dataTransfer.types.length; i += 1) { - if (e.dataTransfer.types[i] === 'Files') return true; - } - return false; - } - - function modalOpen() { - return navigation.isRawModalVisible && dragCounter <= 0; - } - - function handleDragOver(e) { - if (!dragContainsFiles(e)) return; - - e.preventDefault(); - - if (!navigation.selectedRoomId || modalOpen()) { - e.dataTransfer.dropEffect = 'none'; - } - } - - function handleDragEnter(e) { - e.preventDefault(); - - if (navigation.selectedRoomId && !modalOpen() && dragContainsFiles(e)) { - setDragCounter(dragCounter + 1); - } - } - - function handleDragLeave(e) { - e.preventDefault(); - - if (navigation.selectedRoomId && !modalOpen() && dragContainsFiles(e)) { - setDragCounter(dragCounter - 1); - } - } - - function handleDrop(e) { - e.preventDefault(); - - setDragCounter(0); - - if (modalOpen()) return; - - const roomId = navigation.selectedRoomId; - if (!roomId) return; - - const { files } = e.dataTransfer; - if (!files?.length) return; - const file = files[0]; - initMatrix.roomsInput.setAttachment(roomId, file); - initMatrix.roomsInput.emit(cons.events.roomsInput.ATTACHMENT_SET, file); - } - return ( -
-
- + +
+
+ +
+
+ +
+ + + +
-
- -
- - - - - -
+ ); } diff --git a/src/app/utils/AsyncSearch.ts b/src/app/utils/AsyncSearch.ts new file mode 100644 index 00000000..4baacf04 --- /dev/null +++ b/src/app/utils/AsyncSearch.ts @@ -0,0 +1,102 @@ +export type NormalizeOption = { + caseSensitive?: boolean; + normalizeUnicode?: boolean; + ignoreWhitespace?: boolean; +}; + +export type MatchQueryOption = { + contain?: boolean; +}; + +export type AsyncSearchOption = { + limit?: number; +}; + +export type MatchHandler = ( + item: TSearchItem, + query: string +) => boolean; +export type ResultHandler = ( + results: TSearchItem[], + query: string +) => void; + +export type AsyncSearchHandler = (query: string) => void; +export type TerminateAsyncSearch = () => void; + +export const normalize = (str: string, options?: NormalizeOption) => { + let nStr = str.normalize(options?.normalizeUnicode ?? true ? 'NFKC' : 'NFC'); + if (!options?.caseSensitive) nStr = nStr.toLocaleLowerCase(); + if (options?.ignoreWhitespace ?? true) nStr = nStr.replace(/\s/g, ''); + return nStr; +}; + +export const matchQuery = (item: string, query: string, options?: MatchQueryOption): boolean => { + if (options?.contain) return item.indexOf(query) !== -1; + return item.startsWith(query); +}; + +export const AsyncSearch = ( + list: TSearchItem[], + match: MatchHandler, + onResult: ResultHandler, + options?: AsyncSearchOption +): [AsyncSearchHandler, TerminateAsyncSearch] => { + let resultList: TSearchItem[] = []; + + let searchIndex = 0; + let sessionStartTimestamp = 0; + let sessionScheduleId: number | undefined; + + const terminateSearch: TerminateAsyncSearch = () => { + resultList = []; + searchIndex = 0; + sessionStartTimestamp = 0; + if (sessionScheduleId) clearTimeout(sessionScheduleId); + sessionScheduleId = undefined; + }; + + const find = (query: string, sessionTimestamp: number) => { + const findingCount = resultList.length; + sessionScheduleId = undefined; + // return if find session got reset + if (sessionTimestamp !== sessionStartTimestamp) return; + + sessionStartTimestamp = window.performance.now(); + for (; searchIndex < list.length; searchIndex += 1) { + if (match(list[searchIndex], query)) { + resultList.push(list[searchIndex]); + if (typeof options?.limit === 'number' && resultList.length >= options.limit) { + break; + } + } + + const matchFinishTime = window.performance.now(); + if (matchFinishTime - sessionStartTimestamp > 8) { + const currentFindingCount = resultList.length; + const thisSessionTimestamp = sessionStartTimestamp; + if (findingCount !== currentFindingCount) onResult(resultList, query); + + searchIndex += 1; + sessionScheduleId = window.setTimeout(() => find(query, thisSessionTimestamp), 1); + return; + } + } + + if (findingCount !== resultList.length || findingCount === 0) { + onResult(resultList, query); + } + terminateSearch(); + }; + + const search: AsyncSearchHandler = (query: string) => { + terminateSearch(); + if (query === '') { + onResult(resultList, query); + return; + } + find(query, sessionStartTimestamp); + }; + + return [search, terminateSearch]; +}; diff --git a/src/app/utils/blurHash.ts b/src/app/utils/blurHash.ts new file mode 100644 index 00000000..0de5a922 --- /dev/null +++ b/src/app/utils/blurHash.ts @@ -0,0 +1,19 @@ +import { encode } from 'blurhash'; + +export const MATRIX_BLUR_HASH_PROPERTY_NAME = 'xyz.amorgan.blurhash'; + +export const encodeBlurHash = ( + img: HTMLImageElement | HTMLVideoElement, + width?: number, + height?: number +): string | undefined => { + const canvas = document.createElement('canvas'); + canvas.width = width || img.width; + canvas.height = height || img.height; + const context = canvas.getContext('2d'); + + if (!context) return undefined; + context.drawImage(img, 0, 0, canvas.width, canvas.height); + const data = context.getImageData(0, 0, canvas.width, canvas.height); + return encode(data.data, data.width, data.height, 4, 4); +}; diff --git a/src/app/utils/common.ts b/src/app/utils/common.ts new file mode 100644 index 00000000..d3804ae8 --- /dev/null +++ b/src/app/utils/common.ts @@ -0,0 +1,32 @@ +import { IconName, IconSrc } from 'folds'; + +export const bytesToSize = (bytes: number): string => { + const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB']; + if (bytes === 0) return '0KB'; + + let sizeIndex = Math.floor(Math.log(bytes) / Math.log(1000)); + + if (sizeIndex === 0) sizeIndex = 1; + + return `${(bytes / 1000 ** sizeIndex).toFixed(1)} ${sizes[sizeIndex]}`; +}; + +export const getFileTypeIcon = (icons: Record, fileType: string): IconSrc => { + const type = fileType.toLowerCase(); + if (type.startsWith('audio')) { + return icons.Play; + } + if (type.startsWith('video')) { + return icons.Vlc; + } + if (type.startsWith('image')) { + return icons.Photo; + } + return icons.File; +}; + +export const fulfilledPromiseSettledResult = (prs: PromiseSettledResult[]): T[] => + prs.reduce((values, pr) => { + if (pr.status === 'fulfilled') values.push(pr.value); + return values; + }, []); diff --git a/src/app/utils/disposable.ts b/src/app/utils/disposable.ts new file mode 100644 index 00000000..7840fe49 --- /dev/null +++ b/src/app/utils/disposable.ts @@ -0,0 +1,8 @@ +export type DisposeCallback = (...args: Q) => R; +export type DisposableContext

= ( + ...args: P +) => DisposeCallback; + +export const disposable =

( + context: DisposableContext +) => context; diff --git a/src/app/utils/dom.ts b/src/app/utils/dom.ts new file mode 100644 index 00000000..d717adf2 --- /dev/null +++ b/src/app/utils/dom.ts @@ -0,0 +1,133 @@ +export const targetFromEvent = (evt: Event, selector: string): Element | undefined => { + const targets = evt.composedPath() as Element[]; + return targets.find((target) => target.matches?.(selector)); +}; + +export const editableActiveElement = (): boolean => + !!document.activeElement && + /^(input)|(textarea)$/.test(document.activeElement.nodeName.toLowerCase()); + +export const inVisibleScrollArea = ( + scrollElement: HTMLElement, + childElement: HTMLElement +): boolean => { + const scrollTop = scrollElement.offsetTop + scrollElement.scrollTop; + const scrollBottom = scrollTop + scrollElement.offsetHeight; + + const childTop = childElement.offsetTop; + const childBottom = childTop + childElement.clientHeight; + + if (childTop >= scrollTop && childTop < scrollBottom) return true; + if (childTop < scrollTop && childBottom > scrollTop) return true; + return false; +}; + +export type FilesOrFile = T extends true ? File[] : File; + +export const selectFile = ( + accept: string, + multiple?: M +): Promise | undefined> => + new Promise((resolve) => { + const input = document.createElement('input'); + input.type = 'file'; + if (accept) input.accept = accept; + if (multiple) input.multiple = true; + + const changeHandler = () => { + const fileList = input.files; + if (!fileList) { + resolve(undefined); + } else { + const files: File[] = [...fileList].filter((file) => file); + resolve((multiple ? files : files[0]) as FilesOrFile); + } + input.removeEventListener('change', changeHandler); + }; + + input.addEventListener('change', changeHandler); + input.click(); + }); + +export const getDataTransferFiles = (dataTransfer: DataTransfer): File[] | undefined => { + const fileList = dataTransfer.files; + const files = [...fileList].filter((file) => file); + if (files.length === 0) return undefined; + return files; +}; + +export const getImageUrlBlob = async (url: string) => { + const res = await fetch(url); + const blob = await res.blob(); + return blob; +}; + +export const getImageFileUrl = (fileOrBlob: File | Blob) => URL.createObjectURL(fileOrBlob); + +export const getVideoFileUrl = (fileOrBlob: File | Blob) => URL.createObjectURL(fileOrBlob); + +export const loadImageElement = (url: string): Promise => + new Promise((resolve, reject) => { + const img = document.createElement('img'); + img.onload = () => resolve(img); + img.onerror = (err) => reject(err); + img.src = url; + }); + +export const loadVideoElement = (url: string): Promise => + new Promise((resolve, reject) => { + const video = document.createElement('video'); + video.preload = 'metadata'; + video.playsInline = true; + video.muted = true; + + video.onloadeddata = () => { + resolve(video); + video.pause(); + }; + video.onerror = (e) => { + reject(e); + }; + + video.src = url; + video.load(); + video.play(); + }); + +export const getThumbnailDimensions = (width: number, height: number): [number, number] => { + const MAX_WIDTH = 400; + const MAX_HEIGHT = 300; + let targetWidth = width; + let targetHeight = height; + if (targetHeight > MAX_HEIGHT) { + targetWidth = Math.floor(targetWidth * (MAX_HEIGHT / targetHeight)); + targetHeight = MAX_HEIGHT; + } + if (targetWidth > MAX_WIDTH) { + targetHeight = Math.floor(targetHeight * (MAX_WIDTH / targetWidth)); + targetWidth = MAX_WIDTH; + } + return [targetWidth, targetHeight]; +}; + +export const getThumbnail = ( + img: HTMLImageElement | SVGImageElement | HTMLVideoElement, + width: number, + height: number, + thumbnailMimeType?: string +): Promise => + new Promise((resolve) => { + const canvas = document.createElement('canvas'); + canvas.width = width; + canvas.height = height; + const context = canvas.getContext('2d'); + if (!context) { + resolve(undefined); + return; + } + context.drawImage(img, 0, 0, width, height); + + canvas.toBlob((thumbnail) => { + resolve(thumbnail ?? undefined); + }, thumbnailMimeType ?? 'image/jpeg'); + }); diff --git a/src/app/utils/key-symbol.ts b/src/app/utils/key-symbol.ts new file mode 100644 index 00000000..7e758fd9 --- /dev/null +++ b/src/app/utils/key-symbol.ts @@ -0,0 +1,6 @@ +export enum KeySymbol { + Command = '⌘', + Shift = '⇧', + Option = '⌥', + Control = '⌃', +} diff --git a/src/app/utils/keyboard.ts b/src/app/utils/keyboard.ts new file mode 100644 index 00000000..56eeb9fc --- /dev/null +++ b/src/app/utils/keyboard.ts @@ -0,0 +1,25 @@ +import isHotkey from 'is-hotkey'; +import { KeyboardEventHandler } from 'react'; + +export interface KeyboardEventLike { + key: string; + which: number; + altKey: boolean; + ctrlKey: boolean; + metaKey: boolean; + shiftKey: boolean; + preventDefault(): void; +} + +export const onTabPress = (evt: KeyboardEventLike, callback: () => void) => { + if (isHotkey('tab', evt)) { + evt.preventDefault(); + callback(); + } +}; + +export const preventScrollWithArrowKey: KeyboardEventHandler = (evt) => { + if (isHotkey(['arrowup', 'arrowright', 'arrowdown', 'arrowleft'], evt)) { + evt.preventDefault(); + } +}; diff --git a/src/app/utils/matrix.ts b/src/app/utils/matrix.ts new file mode 100644 index 00000000..7f2fc0f2 --- /dev/null +++ b/src/app/utils/matrix.ts @@ -0,0 +1,118 @@ +import { EncryptedAttachmentInfo, encryptAttachment } from 'browser-encrypt-attachment'; +import { MatrixClient, MatrixError, UploadProgress, UploadResponse } from 'matrix-js-sdk'; +import { IImageInfo, IThumbnailContent, IVideoInfo } from '../../types/matrix/common'; + +export const matchMxId = (id: string): RegExpMatchArray | null => + id.match(/^([@!$+#])(\S+):(\S+)$/); + +export const validMxId = (id: string): boolean => !!matchMxId(id); + +export const getMxIdServer = (userId: string): string | undefined => matchMxId(userId)?.[3]; + +export const getMxIdLocalPart = (userId: string): string | undefined => matchMxId(userId)?.[2]; + +export const isUserId = (id: string): boolean => validMxId(id) && id.startsWith('@'); + +export const getImageInfo = (img: HTMLImageElement, fileOrBlob: File | Blob): IImageInfo => { + const info: IImageInfo = {}; + info.w = img.width; + info.h = img.height; + info.mimetype = fileOrBlob.type; + info.size = fileOrBlob.size; + return info; +}; + +export const getVideoInfo = (video: HTMLVideoElement, fileOrBlob: File | Blob): IVideoInfo => { + const info: IVideoInfo = {}; + info.duration = Number.isNaN(video.duration) ? undefined : video.duration; + info.w = video.videoWidth; + info.h = video.videoHeight; + info.mimetype = fileOrBlob.type; + info.size = fileOrBlob.size; + return info; +}; + +export const getThumbnailContent = (thumbnailInfo: { + thumbnail: File | Blob; + encInfo: EncryptedAttachmentInfo | undefined; + mxc: string; + width: number; + height: number; +}): IThumbnailContent => { + const { thumbnail, encInfo, mxc, width, height } = thumbnailInfo; + + const content: IThumbnailContent = { + thumbnail_info: { + mimetype: thumbnail.type, + size: thumbnail.size, + w: width, + h: height, + }, + }; + if (encInfo) { + content.thumbnail_file = { + ...encInfo, + url: mxc, + }; + } else { + content.thumbnail_url = mxc; + } + return content; +}; + +export const encryptFile = async ( + file: File | Blob +): Promise<{ + encInfo: EncryptedAttachmentInfo; + file: File; + originalFile: File | Blob; +}> => { + const dataBuffer = await file.arrayBuffer(); + const encryptedAttachment = await encryptAttachment(dataBuffer); + const encFile = new File([encryptedAttachment.data], file.name, { + type: file.type, + }); + return { + encInfo: encryptedAttachment.info, + file: encFile, + originalFile: file, + }; +}; + +export type TUploadContent = File | Blob; + +export type ContentUploadOptions = { + name?: string; + fileType?: string; + hideFilename?: boolean; + onPromise?: (promise: Promise) => void; + onProgress?: (progress: UploadProgress) => void; + onSuccess: (mxc: string) => void; + onError: (error: MatrixError) => void; +}; + +export const uploadContent = async ( + mx: MatrixClient, + file: TUploadContent, + options: ContentUploadOptions +) => { + const { name, fileType, hideFilename, onProgress, onPromise, onSuccess, onError } = options; + + const uploadPromise = mx.uploadContent(file, { + name, + type: fileType, + includeFilename: !hideFilename, + progressHandler: onProgress, + }); + onPromise?.(uploadPromise); + try { + const data = await uploadPromise; + const mxc = data.content_uri; + if (mxc) onSuccess(mxc); + else onError(new MatrixError(data)); + } catch (e: any) { + const error = typeof e?.message === 'string' ? e.message : undefined; + const errcode = typeof e?.name === 'string' ? e.message : undefined; + onError(new MatrixError({ error, errcode })); + } +}; diff --git a/src/app/utils/mimeTypes.ts b/src/app/utils/mimeTypes.ts new file mode 100644 index 00000000..c432bdc3 --- /dev/null +++ b/src/app/utils/mimeTypes.ts @@ -0,0 +1,47 @@ +// https://github.com/matrix-org/matrix-react-sdk/blob/cd15e08fc285da42134817cce50de8011809cd53/src/utils/blobs.ts +export const ALLOWED_BLOB_MIMETYPES = [ + 'image/jpeg', + 'image/gif', + 'image/png', + 'image/apng', + 'image/webp', + 'image/avif', + + 'video/mp4', + 'video/webm', + 'video/ogg', + 'video/quicktime', + + 'audio/mp4', + 'audio/webm', + 'audio/aac', + 'audio/mpeg', + 'audio/ogg', + 'audio/wave', + 'audio/wav', + 'audio/x-wav', + 'audio/x-pn-wav', + 'audio/flac', + 'audio/x-flac', +]; + +export const getBlobSafeMimeType = (mimeType: string) => { + if (typeof mimeType !== 'string') return 'application/octet-stream'; + const [type] = mimeType.split(';'); + if (!ALLOWED_BLOB_MIMETYPES.includes(type)) { + return 'application/octet-stream'; + } + // Required for Chromium browsers + if (type === 'video/quicktime') { + return 'video/mp4'; + } + return type; +}; + +export const safeFile = (f: File) => { + const safeType = getBlobSafeMimeType(f.type); + if (safeType !== f.type) { + return new File([f], f.name, { type: safeType }); + } + return f; +}; diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts new file mode 100644 index 00000000..daf95600 --- /dev/null +++ b/src/app/utils/room.ts @@ -0,0 +1,265 @@ +import { IconName, IconSrc } from 'folds'; + +import { + IPushRule, + IPushRules, + JoinRule, + MatrixClient, + MatrixEvent, + NotificationCountType, + Room, +} from 'matrix-js-sdk'; +import { AccountDataEvent } from '../../types/matrix/accountData'; +import { + NotificationType, + RoomToParents, + RoomType, + StateEvent, + UnreadInfo, +} from '../../types/matrix/room'; + +export const getStateEvent = ( + room: Room, + eventType: StateEvent, + stateKey = '' +): MatrixEvent | undefined => room.currentState.getStateEvents(eventType, stateKey) ?? undefined; + +export const getStateEvents = (room: Room, eventType: StateEvent): MatrixEvent[] => + room.currentState.getStateEvents(eventType); + +export const getAccountData = ( + mx: MatrixClient, + eventType: AccountDataEvent +): MatrixEvent | undefined => mx.getAccountData(eventType); + +export const getMDirects = (mDirectEvent: MatrixEvent): Set => { + const roomIds = new Set(); + const userIdToDirects = mDirectEvent?.getContent(); + + if (userIdToDirects === undefined) return roomIds; + + Object.keys(userIdToDirects).forEach((userId) => { + const directs = userIdToDirects[userId]; + if (Array.isArray(directs)) { + directs.forEach((id) => { + if (typeof id === 'string') roomIds.add(id); + }); + } + }); + + return roomIds; +}; + +export const isDirectInvite = (room: Room | null, myUserId: string | null): boolean => { + if (!room || !myUserId) return false; + const me = room.getMember(myUserId); + const memberEvent = me?.events?.member; + const content = memberEvent?.getContent(); + return content?.is_direct === true; +}; + +export const isSpace = (room: Room | null): boolean => { + if (!room) return false; + const event = getStateEvent(room, StateEvent.RoomCreate); + if (!event) return false; + return event.getContent().type === RoomType.Space; +}; + +export const isRoom = (room: Room | null): boolean => { + if (!room) return false; + const event = getStateEvent(room, StateEvent.RoomCreate); + if (!event) return false; + return event.getContent().type === undefined; +}; + +export const isUnsupportedRoom = (room: Room | null): boolean => { + if (!room) return false; + const event = getStateEvent(room, StateEvent.RoomCreate); + if (!event) return true; // Consider room unsupported if m.room.create event doesn't exist + return event.getContent().type !== undefined && event.getContent().type !== RoomType.Space; +}; + +export function isValidChild(mEvent: MatrixEvent): boolean { + return mEvent.getType() === StateEvent.SpaceChild && Object.keys(mEvent.getContent()).length > 0; +} + +export const getAllParents = (roomToParents: RoomToParents, roomId: string): Set => { + const allParents = new Set(); + + const addAllParentIds = (rId: string) => { + if (allParents.has(rId)) return; + allParents.add(rId); + + const parents = roomToParents.get(rId); + parents?.forEach((id) => addAllParentIds(id)); + }; + addAllParentIds(roomId); + allParents.delete(roomId); + return allParents; +}; + +export const getSpaceChildren = (room: Room) => + getStateEvents(room, StateEvent.SpaceChild).reduce((filtered, mEvent) => { + const stateKey = mEvent.getStateKey(); + if (isValidChild(mEvent) && stateKey) { + filtered.push(stateKey); + } + return filtered; + }, []); + +export const mapParentWithChildren = ( + roomToParents: RoomToParents, + roomId: string, + children: string[] +) => { + const allParents = getAllParents(roomToParents, roomId); + children.forEach((childId) => { + if (allParents.has(childId)) { + // Space cycle detected. + return; + } + const parents = roomToParents.get(childId) ?? new Set(); + parents.add(roomId); + roomToParents.set(childId, parents); + }); +}; + +export const getRoomToParents = (mx: MatrixClient): RoomToParents => { + const map: RoomToParents = new Map(); + mx.getRooms() + .filter((room) => isSpace(room)) + .forEach((room) => mapParentWithChildren(map, room.roomId, getSpaceChildren(room))); + + return map; +}; + +export const isMutedRule = (rule: IPushRule) => + rule.actions[0] === 'dont_notify' && rule.conditions?.[0]?.kind === 'event_match'; + +export const findMutedRule = (overrideRules: IPushRule[], roomId: string) => + overrideRules.find((rule) => rule.rule_id === roomId && isMutedRule(rule)); + +export const getNotificationType = (mx: MatrixClient, roomId: string): NotificationType => { + let roomPushRule: IPushRule | undefined; + try { + roomPushRule = mx.getRoomPushRule('global', roomId); + } catch { + roomPushRule = undefined; + } + + if (!roomPushRule) { + const overrideRules = mx.getAccountData('m.push_rules')?.getContent() + ?.global?.override; + if (!overrideRules) return NotificationType.Default; + + return findMutedRule(overrideRules, roomId) ? NotificationType.Mute : NotificationType.Default; + } + + if (roomPushRule.actions[0] === 'notify') return NotificationType.AllMessages; + return NotificationType.MentionsAndKeywords; +}; + +export const isNotificationEvent = (mEvent: MatrixEvent) => { + const eType = mEvent.getType(); + if ( + ['m.room.create', 'm.room.message', 'm.room.encrypted', 'm.room.member', 'm.sticker'].find( + (type) => type === eType + ) + ) + return false; + if (eType === 'm.room.member') return false; + + if (mEvent.isRedacted()) return false; + if (mEvent.getRelation()?.rel_type === 'm.replace') return false; + + return true; +}; + +export const roomHaveUnread = (mx: MatrixClient, room: Room) => { + const userId = mx.getUserId(); + if (!userId) return false; + const readUpToId = room.getEventReadUpTo(userId); + const liveEvents = room.getLiveTimeline().getEvents(); + + if (liveEvents[liveEvents.length - 1]?.getSender() === userId) { + return false; + } + + for (let i = liveEvents.length - 1; i >= 0; i -= 1) { + const event = liveEvents[i]; + if (!event) return false; + if (event.getId() === readUpToId) return false; + if (isNotificationEvent(event)) return true; + } + return true; +}; + +export const getUnreadInfo = (room: Room): UnreadInfo => { + const total = room.getUnreadNotificationCount(NotificationCountType.Total); + const highlight = room.getUnreadNotificationCount(NotificationCountType.Highlight); + return { + roomId: room.roomId, + highlight, + total: highlight > total ? highlight : total, + }; +}; + +export const getUnreadInfos = (mx: MatrixClient): UnreadInfo[] => { + const unreadInfos = mx.getRooms().reduce((unread, room) => { + if (room.isSpaceRoom()) return unread; + if (room.getMyMembership() !== 'join') return unread; + if (getNotificationType(mx, room.roomId) === NotificationType.Mute) return unread; + + if (roomHaveUnread(mx, room)) { + unread.push(getUnreadInfo(room)); + } + + return unread; + }, []); + return unreadInfos; +}; + +export const joinRuleToIconSrc = ( + icons: Record, + joinRule: JoinRule, + space: boolean +): IconSrc | undefined => { + if (joinRule === JoinRule.Restricted) { + return space ? icons.Space : icons.Hash; + } + if (joinRule === JoinRule.Knock) { + return space ? icons.SpaceLock : icons.HashLock; + } + if (joinRule === JoinRule.Invite) { + return space ? icons.SpaceLock : icons.HashLock; + } + if (joinRule === JoinRule.Public) { + return space ? icons.SpaceGlobe : icons.HashGlobe; + } + return undefined; +}; + +export const getRoomAvatarUrl = (mx: MatrixClient, room: Room): string | undefined => { + const url = + room.getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 32, 32, 'crop', undefined, false) ?? + undefined; + if (url) return url; + return room.getAvatarUrl(mx.baseUrl, 32, 32, 'crop') ?? undefined; +}; + +export const parseReplyBody = (userId: string, body: string) => + `> <${userId}> ${body.replace(/\n/g, '\n> ')}\n\n`; + +export const parseReplyFormattedBody = ( + roomId: string, + userId: string, + eventId: string, + formattedBody: string +): string => { + const replyToLink = `In reply to`; + const userLink = `${userId}`; + + return `

${replyToLink}${userLink}
${formattedBody}
`; +}; diff --git a/src/app/utils/sanitize.ts b/src/app/utils/sanitize.ts new file mode 100644 index 00000000..555089de --- /dev/null +++ b/src/app/utils/sanitize.ts @@ -0,0 +1,10 @@ +export const sanitizeText = (body: string) => { + const tagsToReplace: Record = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + }; + return body.replace(/[&<>'"]/g, (tag) => tagsToReplace[tag] || tag); +}; diff --git a/src/app/utils/user-agent.ts b/src/app/utils/user-agent.ts new file mode 100644 index 00000000..61a903f5 --- /dev/null +++ b/src/app/utils/user-agent.ts @@ -0,0 +1,5 @@ +import { UAParser } from 'ua-parser-js'; + +export const ua = () => UAParser(window.navigator.userAgent); + +export const isMacOS = () => ua().os.name === 'Mac OS'; diff --git a/src/client/initMatrix.js b/src/client/initMatrix.js index 420f3154..9b8d1d82 100644 --- a/src/client/initMatrix.js +++ b/src/client/initMatrix.js @@ -23,6 +23,11 @@ class InitMatrix extends EventEmitter { } async init() { + if (this.matrixClient) { + console.warn('Client is already initialized!') + return; + } + await this.startClient(); this.setupSync(); this.listenEvents(); diff --git a/src/client/mx.ts b/src/client/mx.ts new file mode 100644 index 00000000..30909458 --- /dev/null +++ b/src/client/mx.ts @@ -0,0 +1,7 @@ +import { MatrixClient } from 'matrix-js-sdk'; +import initMatrix from './initMatrix'; + +export const mx = (): MatrixClient => { + if (!initMatrix.matrixClient) console.error('Matrix client is used before initialization!'); + return initMatrix.matrixClient!; +}; diff --git a/src/client/state/RoomList.js b/src/client/state/RoomList.js index a1570480..fc137ae2 100644 --- a/src/client/state/RoomList.js +++ b/src/client/state/RoomList.js @@ -220,12 +220,6 @@ class RoomList extends EventEmitter { this.inviteRooms.clear(); this.matrixClient.getRooms().forEach((room) => { const { roomId } = room; - const tombstone = room.currentState.events.get('m.room.tombstone'); - if (tombstone?.get('') !== undefined) { - const repRoomId = tombstone.get('').getContent().replacement_room; - const repRoomMembership = this.matrixClient.getRoom(repRoomId)?.getMyMembership(); - if (repRoomMembership === 'join') return; - } if (room.getMyMembership() === 'invite') { if (this._isDMInvite(room)) this.inviteDirects.add(roomId); diff --git a/src/client/state/settings.js b/src/client/state/settings.js index 32f55fcc..af2e279a 100644 --- a/src/client/state/settings.js +++ b/src/client/state/settings.js @@ -1,7 +1,9 @@ +import { lightTheme } from 'folds'; import EventEmitter from 'events'; import appDispatcher from '../dispatcher'; import cons from './cons'; +import { darkTheme, butterTheme, silverTheme } from '../../colors.css'; function getSettings() { const settings = localStorage.getItem('settings'); @@ -20,6 +22,7 @@ class Settings extends EventEmitter { constructor() { super(); + this.themeClasses = [lightTheme, silverTheme, darkTheme, butterTheme]; this.themes = ['', 'silver-theme', 'dark-theme', 'butter-theme']; this.themeIndex = this.getThemeIndex(); @@ -31,6 +34,10 @@ class Settings extends EventEmitter { this._showNotifications = this.getShowNotifications(); this.isNotificationSounds = this.getIsNotificationSounds(); + this.darkModeQueryList = window.matchMedia('(prefers-color-scheme: dark)'); + + this.darkModeQueryList.addEventListener('change', () => this.applyTheme()) + this.isTouchScreenDevice = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0); } @@ -49,20 +56,19 @@ class Settings extends EventEmitter { } _clearTheme() { - document.body.classList.remove('system-theme'); - this.themes.forEach((themeName) => { - if (themeName === '') return; - document.body.classList.remove(themeName); + this.themes.forEach((themeName, index) => { + if (themeName !== '') document.body.classList.remove(themeName); + document.body.classList.remove(this.themeClasses[index]); }); } applyTheme() { this._clearTheme(); - if (this.useSystemTheme) { - document.body.classList.add('system-theme'); - } else if (this.themes[this.themeIndex]) { - document.body.classList.add(this.themes[this.themeIndex]); - } + const autoThemeIndex = this.darkModeQueryList.matches ? 2 : 0; + const themeIndex = this.useSystemTheme ? autoThemeIndex : this.themeIndex; + if (this.themes[themeIndex] === undefined) return + if (this.themes[themeIndex]) document.body.classList.add(this.themes[themeIndex]); + document.body.classList.add(this.themeClasses[themeIndex]); } setTheme(themeIndex) { diff --git a/src/colors.css.ts b/src/colors.css.ts new file mode 100644 index 00000000..9b854bef --- /dev/null +++ b/src/colors.css.ts @@ -0,0 +1,238 @@ +import { createTheme } from '@vanilla-extract/css'; +import { color } from 'folds'; + +export const silverTheme = createTheme(color, { + Background: { + Container: '#E6E6E6', + ContainerHover: '#DADADA', + ContainerActive: '#CECECE', + ContainerLine: '#C2C2C2', + OnContainer: '#000000', + }, + + Surface: { + Container: '#F2F2F2', + ContainerHover: '#E6E6E6', + ContainerActive: '#DADADA', + ContainerLine: '#CECECE', + OnContainer: '#000000', + }, + + SurfaceVariant: { + Container: '#E6E6E6', + ContainerHover: '#DADADA', + ContainerActive: '#CECECE', + ContainerLine: '#C2C2C2', + OnContainer: '#000000', + }, + + Primary: { + Main: '#1858D5', + MainHover: '#164FC0', + MainActive: '#144BB5', + MainLine: '#1346AA', + OnMain: '#FFFFFF', + Container: '#E8EEFB', + ContainerHover: '#DCE6F9', + ContainerActive: '#D1DEF7', + ContainerLine: '#C5D5F5', + OnContainer: '#113E95', + }, + + Secondary: { + Main: '#000000', + MainHover: '#0C0C0C', + MainActive: '#181818', + MainLine: '#303030', + OnMain: '#F2F2F2', + Container: '#CECECE', + ContainerHover: '#C2C2C2', + ContainerActive: '#B5B5B5', + ContainerLine: '#A9A9A9', + OnContainer: '#0C0C0C', + }, + + Success: { + Main: '#00844C', + MainHover: '#007744', + MainActive: '#007041', + MainLine: '#006A3D', + OnMain: '#FFFFFF', + Container: '#E5F3ED', + ContainerHover: '#D9EDE4', + ContainerActive: '#CCE6DB', + ContainerLine: '#BFE0D2', + OnContainer: '#005C35', + }, + + Warning: { + Main: '#A85400', + MainHover: '#974C00', + MainActive: '#8F4700', + MainLine: '#864300', + OnMain: '#FFFFFF', + Container: '#F6EEE5', + ContainerHover: '#F2E5D9', + ContainerActive: '#EEDDCC', + ContainerLine: '#E9D4BF', + OnContainer: '#763B00', + }, + + Critical: { + Main: '#C40E0E', + MainHover: '#AC0909', + MainActive: '#A60C0C', + MainLine: '#9C0B0B', + OnMain: '#FFFFFF', + Container: '#F9E7E7', + ContainerHover: '#F6DBDB', + ContainerActive: '#F3CFCF', + ContainerLine: '#F0C3C3', + OnContainer: '#890A0A', + }, + + Other: { + FocusRing: 'rgba(0 0 0 / 50%)', + Shadow: 'rgba(0 0 0 / 20%)', + Overlay: 'rgba(0 0 0 / 50%)', + }, +}); + +const darkThemeData = { + Background: { + Container: '#15171A', + ContainerHover: '#1F2326', + ContainerActive: '#2A2E33', + ContainerLine: '#343A40', + OnContainer: '#ffffff', + }, + + Surface: { + Container: '#1F2326', + ContainerHover: '#2A2E33', + ContainerActive: '#343A40', + ContainerLine: '#3F464D', + OnContainer: '#ffffff', + }, + + SurfaceVariant: { + Container: '#2A2E33', + ContainerHover: '#343A40', + ContainerActive: '#3F464D', + ContainerLine: '#495159', + OnContainer: '#ffffff', + }, + + Primary: { + Main: '#BDB6EC', + MainHover: '#B2AAE9', + MainActive: '#ADA3E8', + MainLine: '#A79DE6', + OnMain: '#2C2843', + Container: '#413C65', + ContainerHover: '#494370', + ContainerActive: '#50497B', + ContainerLine: '#575086', + OnContainer: '#E3E1F7', + }, + + Secondary: { + Main: '#D1E8FF', + MainHover: '#BCD1E5', + MainActive: '#B2C5D9', + MainLine: '#A7BACC', + OnMain: '#15171A', + Container: '#343A40', + ContainerHover: '#3F464D', + ContainerActive: '#495159', + ContainerLine: '#545D66', + OnContainer: '#C7DCF2', + }, + + Success: { + Main: '#85E0BA', + MainHover: '#70DBAF', + MainActive: '#66D9A9', + MainLine: '#5CD6A3', + OnMain: '#0F3D2A', + Container: '#175C3F', + ContainerHover: '#1A6646', + ContainerActive: '#1C704D', + ContainerLine: '#1F7A54', + OnContainer: '#CCF2E2', + }, + + Warning: { + Main: '#E3BA91', + MainHover: '#DFAF7E', + MainActive: '#DDA975', + MainLine: '#DAA36C', + OnMain: '#3F2A15', + Container: '#5E3F20', + ContainerHover: '#694624', + ContainerActive: '#734D27', + ContainerLine: '#7D542B', + OnContainer: '#F3E2D1', + }, + + Critical: { + Main: '#E69D9D', + MainHover: '#E28D8D', + MainActive: '#E08585', + MainLine: '#DE7D7D', + OnMain: '#401C1C', + Container: '#602929', + ContainerHover: '#6B2E2E', + ContainerActive: '#763333', + ContainerLine: '#803737', + OnContainer: '#F5D6D6', + }, + + Other: { + FocusRing: 'rgba(255, 255, 255, 0.5)', + Shadow: 'rgba(0, 0, 0, 1)', + Overlay: 'rgba(0, 0, 0, 0.6)', + }, +}; + +export const darkTheme = createTheme(color, darkThemeData); + +export const butterTheme = createTheme(color, { + ...darkThemeData, + Background: { + Container: '#1A1916', + ContainerHover: '#262621', + ContainerActive: '#33322C', + ContainerLine: '#403F38', + OnContainer: '#FFFBDE', + }, + + Surface: { + Container: '#262621', + ContainerHover: '#33322C', + ContainerActive: '#403F38', + ContainerLine: '#4D4B43', + OnContainer: '#FFFBDE', + }, + + SurfaceVariant: { + Container: '#33322C', + ContainerHover: '#403F38', + ContainerActive: '#4D4B43', + ContainerLine: '#59584E', + OnContainer: '#FFFBDE', + }, + + Secondary: { + Main: '#FFFBDE', + MainHover: '#E5E2C8', + MainActive: '#D9D5BD', + MainLine: '#CCC9B2', + OnMain: '#1A1916', + Container: '#403F38', + ContainerHover: '#4D4B43', + ContainerActive: '#59584E', + ContainerLine: '#666459', + OnContainer: '#F2EED3', + }, +}); diff --git a/src/ext.d.ts b/src/ext.d.ts new file mode 100644 index 00000000..55f59327 --- /dev/null +++ b/src/ext.d.ts @@ -0,0 +1,23 @@ +declare module 'browser-encrypt-attachment' { + export interface EncryptedAttachmentInfo { + v: string; + key: { + alg: string; + key_ops: string[]; + kty: string; + k: string; + ext: boolean; + }; + iv: string; + hashes: { + [alg: string]: string; + }; + } + + export interface EncryptedAttachment { + data: ArrayBuffer; + info: EncryptedAttachmentInfo; + } + + export function encryptAttachment(dataBuffer: ArrayBuffer): Promise; +} diff --git a/src/index.jsx b/src/index.jsx index a252f6f0..e7256e25 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -1,5 +1,13 @@ +/* eslint-disable import/first */ import React from 'react'; import ReactDom from 'react-dom'; +import { enableMapSet } from 'immer'; +import '@fontsource/inter/variable.css'; +import 'folds/dist/style.css'; +import { configClass, varsClass } from 'folds'; + +enableMapSet(); + import './font'; import './index.scss'; @@ -7,6 +15,8 @@ import settings from './client/state/settings'; import App from './app/pages/App'; +document.body.classList.add(configClass, varsClass); + settings.applyTheme(); ReactDom.render(, document.getElementById('root')); diff --git a/src/index.scss b/src/index.scss index 39d0612b..93443fe9 100644 --- a/src/index.scss +++ b/src/index.scss @@ -1,14 +1,20 @@ @use './app/partials/screen'; -:root { +@font-face { + font-family: Twemoji; + src: url('../public/font/Twemoji.Mozilla.v.7.0.woff2'), + url('../public/font/Twemoji.Mozilla.v0.7.0.ttf'); + font-display: swap; +} +:root { /* background color | --bg-[background type]: value */ - --bg-surface: #FFFFFF; - --bg-surface-transparent: #FFFFFF00; - --bg-surface-low: #F6F6F6; - --bg-surface-low-transparent: #F6F6F600; - --bg-surface-extra-low: #F6F6F6; - --bg-surface-extra-low-transparent: #F6F6F600; + --bg-surface: #ffffff; + --bg-surface-transparent: #ffffff00; + --bg-surface-low: #f6f6f6; + --bg-surface-low-transparent: #f6f6f600; + --bg-surface-extra-low: #f6f6f6; + --bg-surface-extra-low-transparent: #f6f6f600; --bg-surface-hover: rgba(0, 0, 0, 3%); --bg-surface-active: rgba(0, 0, 0, 5%); --bg-surface-border: rgba(0, 0, 0, 6%); @@ -22,7 +28,7 @@ --bg-positive-hover: rgba(69, 184, 59, 8%); --bg-positive-active: rgba(69, 184, 59, 15%); --bg-positive-border: rgba(69, 184, 59, 40%); - + --bg-caution: rgb(255, 179, 0); --bg-caution-hover: rgba(255, 179, 0, 8%); --bg-caution-active: rgba(255, 179, 0, 15%); @@ -37,18 +43,18 @@ --bg-badge: #989898; --bg-ping: hsla(137deg, 100%, 68%, 40%); --bg-ping-hover: hsla(137deg, 100%, 68%, 50%); - --bg-divider: hsla(0, 0%, 0%, .1); + --bg-divider: hsla(0, 0%, 0%, 0.1); /* text color | --tc-[background type]-[priority]: value */ --tc-surface-high: #000000; --tc-surface-normal: rgba(0, 0, 0, 78%); --tc-surface-normal-low: rgba(0, 0, 0, 60%); --tc-surface-low: rgba(0, 0, 0, 48%); - + --tc-primary-high: #ffffff; --tc-primary-normal: rgba(255, 255, 255, 68%); --tc-primary-low: rgba(255, 255, 255, 40%); - + --tc-positive-high: var(--bg-positive); --tc-positive-normal: rgb(69, 184, 59, 80%); --tc-positive-low: rgb(69, 184, 59, 60%); @@ -56,7 +62,7 @@ --tc-caution-high: var(--bg-caution); --tc-caution-normal: rgb(255, 179, 0, 80%); --tc-caution-low: rgb(255, 179, 0, 60%); - + --tc-danger-high: var(--bg-danger); --tc-danger-normal: rgba(240, 71, 71, 88%); --tc-danger-low: rgba(240, 71, 71, 60%); @@ -66,7 +72,6 @@ --tc-tooltip: white; --tc-badge: white; - /* system icons | --ic-[background type]-[priority]: value */ --ic-surface-high: #272727; --ic-surface-normal: #626262; @@ -102,7 +107,6 @@ --av-small: 36px; --av-extra-small: 24px; - /* shadow and overlay */ --bg-overlay: rgba(0, 0, 0, 20%); --bg-overlay-low: rgba(0, 0, 0, 50%); @@ -124,11 +128,9 @@ --bs-danger-border: inset 0 0 0 1px var(--bg-danger-border); --bs-danger-outline: 0 0 0 2px var(--bg-danger-border); - /* border */ --bo-radius: 8px; - /* font styles: font-size, letter-spacing, line-hight */ --fs-h1: 36px; --ls-h1: -1.5px; @@ -160,7 +162,6 @@ --fw-medium: 500; --fw-bold: 700; - /* spacing | --sp-[space]: value */ --sp-none: 0px; --sp-ultra-tight: 4px; @@ -170,7 +171,6 @@ --sp-loose: 20px; --sp-extra-loose: 32px; - /* other */ --border-width: 1px; --header-height: 54px; @@ -180,7 +180,7 @@ --people-drawer-width: calc(268px - var(--border-width)); --popup-window-drawer-width: 280px; - + @include screen.smallerThan(tabletBreakpoint) { --navigation-drawer-width: calc(240px + var(--border-width)); --people-drawer-width: calc(256px - var(--border-width)); @@ -191,11 +191,11 @@ --fluid-push: cubic-bezier(0, 0.8, 0.67, 0.97); --fluid-slide-down: cubic-bezier(0.02, 0.82, 0.4, 0.96); --fluid-slide-up: cubic-bezier(0.13, 0.56, 0.25, 0.99); - - --font-primary: 'Roboto', sans-serif; - --font-secondary: 'Roboto', sans-serif; -} + --font-emoji: 'Twemoji'; + --font-primary: 'Roboto', var(--font-emoji), sans-serif; + --font-secondary: 'Roboto', var(--font-emoji), sans-serif; +} .silver-theme { /* background color | --bg-[background type]: value */ @@ -207,7 +207,8 @@ --bg-surface-extra-low-transparent: hsla(0, 0%, 91%, 0); } -@mixin dark-mode() { +.dark-theme, +.butter-theme { /* background color | --bg-[background type]: value */ --bg-surface: hsl(208, 8%, 20%); --bg-surface-transparent: hsla(208, 8%, 20%, 0); @@ -228,15 +229,14 @@ --bg-badge: hsl(0, 0%, 75%); --bg-ping: hsla(137deg, 100%, 38%, 40%); --bg-ping-hover: hsla(137deg, 100%, 38%, 50%); - --bg-divider: hsla(0, 0%, 100%, .1); - + --bg-divider: hsla(0, 0%, 100%, 0.1); /* text color | --tc-[background type]-[priority]: value */ --tc-surface-high: rgba(255, 255, 255, 98%); --tc-surface-normal: rgba(255, 255, 255, 94%); --tc-surface-normal-low: rgba(255, 255, 255, 60%); --tc-surface-low: rgba(255, 255, 255, 58%); - + --tc-primary-high: #ffffff; --tc-primary-normal: rgba(255, 255, 255, 0.68); --tc-primary-low: rgba(255, 255, 255, 0.4); @@ -262,7 +262,7 @@ --mx-uc-7: hsl(243, 100%, 74%); --mx-uc-8: hsl(94, 66%, 50%); } - + /* shadow and overlay */ --bg-overlay: rgba(0, 0, 0, 60%); --bg-overlay-low: rgba(0, 0, 0, 80%); @@ -274,7 +274,7 @@ --bs-primary-border: inset 0 0 0 1px var(--bg-primary-border); --bs-primary-outline: 0 0 0 2px var(--bg-primary-border); - + /* font styles: font-size, letter-spacing, line-hight */ --fs-h1: 35.6px; @@ -292,18 +292,7 @@ /* override normal font weight for dark mode */ --fw-normal: 350; - --font-secondary: 'InterVariable', 'Roboto', sans-serif; -} - -.dark-theme, -.butter-theme { - @include dark-mode(); -} - -@media (prefers-color-scheme: dark) { - .system-theme { - @include dark-mode(); - } + --font-secondary: 'InterVariable', 'Roboto', var(--font-emoji), sans-serif; } .butter-theme { @@ -317,14 +306,12 @@ --bg-badge: #c4c1ab; - /* text color | --tc-[background type]-[priority]: value */ --tc-surface-high: rgb(255, 251, 222, 94%); --tc-surface-normal: rgba(255, 251, 222, 94%); - --tc-surface-normal-low: rgba(255, 251, 222, 60%); + --tc-surface-normal-low: rgba(255, 251, 222, 60%); --tc-surface-low: rgba(255, 251, 222, 58%); - /* system icons | --ic-[background type]-[priority]: value */ --ic-surface-high: rgb(255, 251, 222); --ic-surface-normal: rgba(255, 251, 222, 84%); @@ -387,9 +374,11 @@ body { height: 100%; } -*, *::before, *::after { +*, +*::before, +*::after { box-sizing: border-box; - -webkit-tap-highlight-color: rgba(0,0,0,0); + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-tap-highlight-color: transparent; } a { @@ -428,16 +417,16 @@ button { textarea, input, input[type], -input[type=text], -input[type=username], -input[type=password], -input[type=email], -input[type=checkbox] { +input[type='text'], +input[type='username'], +input[type='password'], +input[type='email'], +input[type='checkbox'] { -webkit-appearance: none; -moz-appearance: none; appearance: none; } -input[type=checkbox] { +input[type='checkbox'] { margin: 0; padding: 0; width: 20px; @@ -451,7 +440,7 @@ input[type=checkbox] { &:checked { background-color: var(--bg-primary); &::before { - content: ""; + content: ''; display: inline-block; width: 12px; height: 6px; @@ -468,11 +457,11 @@ textarea { } .noselect { -webkit-touch-callout: none; /* iOS Safari */ - -webkit-user-select: none; /* Safari */ - -khtml-user-select: none; /* Konqueror HTML */ - -moz-user-select: none; /* Old versions of Firefox */ - -ms-user-select: none; /* Internet Explorer/Edge */ - user-select: none; /* Non-prefixed version, currently + -webkit-user-select: none; /* Safari */ + -khtml-user-select: none; /* Konqueror HTML */ + -moz-user-select: none; /* Old versions of Firefox */ + -ms-user-select: none; /* Internet Explorer/Edge */ + user-select: none; /* Non-prefixed version, currently supported by Chrome, Edge, Opera and Firefox */ } @@ -484,4 +473,4 @@ audio:not([controls]) { display: flex; justify-content: center; align-items: center; -} \ No newline at end of file +} diff --git a/src/types/matrix/accountData.ts b/src/types/matrix/accountData.ts new file mode 100644 index 00000000..1078cb35 --- /dev/null +++ b/src/types/matrix/accountData.ts @@ -0,0 +1,12 @@ +export enum AccountDataEvent { + PushRules = 'm.push_rules', + Direct = 'm.direct', + IgnoredUserList = 'm.ignored_user_list', + + CinnySpaces = 'in.cinny.spaces', + + ElementRecentEmoji = 'io.element.recent_emoji', + + PoniesUserEmotes = 'im.ponies.user_emotes', + PoniesEmoteRooms = 'im.ponies.emote_rooms', +} diff --git a/src/types/matrix/common.ts b/src/types/matrix/common.ts new file mode 100644 index 00000000..94a46a90 --- /dev/null +++ b/src/types/matrix/common.ts @@ -0,0 +1,22 @@ +import { EncryptedAttachmentInfo } from 'browser-encrypt-attachment'; + +export type IImageInfo = { + w?: number; + h?: number; + mimetype?: string; + size?: number; +}; + +export type IVideoInfo = IImageInfo & { + duration?: number; +}; + +export type IEncryptedFile = EncryptedAttachmentInfo & { + url: string; +}; + +export type IThumbnailContent = { + thumbnail_info?: IImageInfo; + thumbnail_file?: IEncryptedFile; + thumbnail_url?: string; +}; diff --git a/src/types/matrix/room.ts b/src/types/matrix/room.ts new file mode 100644 index 00000000..93e87615 --- /dev/null +++ b/src/types/matrix/room.ts @@ -0,0 +1,61 @@ +export enum Membership { + Invite = 'invite', + Knock = 'knock', + Join = 'join', + Leave = 'leave', + Ban = 'ban', +} + +export enum StateEvent { + RoomCanonicalAlias = 'm.room.canonical_alias', + RoomCreate = 'm.room.create', + RoomJoinRules = 'm.room.join_rules', + RoomMember = 'm.room.member', + RoomThirdPartyInvite = 'm.room.third_party_invite', + RoomPowerLevels = 'm.room.power_levels', + RoomName = 'm.room.name', + RoomTopic = 'm.room.topic', + RoomAvatar = 'm.room.avatar', + RoomPinnedEvents = 'm.room.pinned_events', + RoomEncryption = 'm.room.encryption', + RoomHistoryVisibility = 'm.room.history_visibility', + RoomGuestAccess = 'm.room.guest_access', + RoomServerAcl = 'm.room.server_acl', + RoomTombstone = 'm.room.tombstone', + + SpaceChild = 'm.space.child', + SpaceParent = 'm.space.parent', + + PoniesRoomEmotes = 'im.ponies.room_emotes', +} + +export enum RoomType { + Space = 'm.space', +} + +export enum NotificationType { + Default = 'default', + AllMessages = 'all_messages', + MentionsAndKeywords = 'mentions_and_keywords', + Mute = 'mute', +} + +export type RoomToParents = Map>; +export type RoomToUnread = Map< + string, + { + total: number; + highlight: number; + from: Set | null; + } +>; +export type UnreadInfo = { + roomId: string; + total: number; + highlight: number; +}; + +export type MuteChanges = { + added: string[]; + removed: string[]; +}; diff --git a/src/util/sanitize.js b/src/util/sanitize.js index 79cc0418..3723a11b 100644 --- a/src/util/sanitize.js +++ b/src/util/sanitize.js @@ -6,7 +6,7 @@ let mx = null; const permittedHtmlTags = [ 'font', 'del', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'p', 'a', 'ul', 'ol', 'sup', 'sub', - 'li', 'b', 'i', 'u', 'strong', 'em', 'strike', 'code', + 'li', 'b', 'i', 'u', 'strong', 'em', 'strike', 's', 'code', 'hr', 'br', 'div', 'table', 'thead', 'tbody', 'tr', 'th', 'td', 'caption', 'pre', 'span', 'img', 'details', 'summary', ]; diff --git a/tsconfig.json b/tsconfig.json index e109a97c..02eb1843 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,9 @@ "compilerOptions": { "sourceMap": true, "jsx": "react", - "target": "ES6", + "target": "ES2016", "allowJs": true, + "strict": true, "esModuleInterop": true, "moduleResolution": "Node", "outDir": "dist", diff --git a/vite.config.js b/vite.config.js index 979e9aa0..6a443166 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,6 +2,7 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { wasm } from '@rollup/plugin-wasm'; import { viteStaticCopy } from 'vite-plugin-static-copy'; +import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; import inject from '@rollup/plugin-inject'; import { svgLoader } from './viteSvgLoader'; @@ -37,6 +38,7 @@ export default defineConfig({ }, plugins: [ viteStaticCopy(copyFiles), + vanillaExtractPlugin(), svgLoader(), wasm(), react(), From 2bbf0d1b825ecb177d2e9964c11a403874ca9178 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:29:33 +1000 Subject: [PATCH 326/717] Bump vite from 4.0.1 to 4.3.9 (#1256) Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 4.0.1 to 4.3.9. - [Release notes](https://github.com/vitejs/vite/releases) - [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md) - [Commits](https://github.com/vitejs/vite/commits/v4.3.9/packages/vite) --- updated-dependencies: - dependency-name: vite dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 434 ++++++++++++++++++++++++++++++++++++++++++++-- package.json | 2 +- 2 files changed, 417 insertions(+), 19 deletions(-) diff --git a/package-lock.json b/package-lock.json index 62675247..3c5b27c8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -76,7 +76,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "4.0.4", + "vite": "4.3.9", "vite-plugin-static-copy": "0.13.0" }, "engines": { @@ -4321,9 +4321,15 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", - "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -4628,9 +4634,9 @@ } }, "node_modules/postcss": { - "version": "8.4.20", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.20.tgz", - "integrity": "sha512-6Q04AXR1212bXr5fh03u8aAwbLxAQNGQ/Q1LNa0VfOI06ZAlhPHtQvE4OIdpj4kLThXilalPnmDSOD65DcHt+g==", + "version": "8.4.24", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", + "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", "funding": [ { "type": "opencollective", @@ -4639,10 +4645,14 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "nanoid": "^3.3.4", + "nanoid": "^3.3.6", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -5007,9 +5017,9 @@ } }, "node_modules/rollup": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.7.5.tgz", - "integrity": "sha512-z0ZbqHBtS/et2EEUKMrAl2CoSdwN7ZPzL17UMiKN9RjjqHShTlv7F9J6ZJZJNREYjBh3TvBrdfjkFDIXFNeuiQ==", + "version": "3.25.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.1.tgz", + "integrity": "sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -5593,15 +5603,14 @@ } }, "node_modules/vite": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.0.4.tgz", - "integrity": "sha512-xevPU7M8FU0i/80DMR+YhgrzR5KS2ORy1B4xcX/cXLsvnUWvfHuqMmVU6N0YiJ4JWGRJJsLCgjEzKjG9/GKoSw==", + "version": "4.3.9", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", + "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", "dev": true, "dependencies": { - "esbuild": "^0.16.3", - "postcss": "^8.4.20", - "resolve": "^1.22.1", - "rollup": "^3.7.0" + "esbuild": "^0.17.5", + "postcss": "^8.4.23", + "rollup": "^3.21.0" }, "bin": { "vite": "bin/vite.js" @@ -5694,6 +5703,395 @@ "node": ">= 10.0.0" } }, + "node_modules/vite/node_modules/@esbuild/android-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", + "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", + "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/android-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", + "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", + "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/darwin-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", + "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", + "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/freebsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", + "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", + "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", + "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", + "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-loong64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", + "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-mips64el": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", + "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-ppc64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", + "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-riscv64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", + "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-s390x": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", + "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/linux-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", + "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/netbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", + "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/openbsd-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", + "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/sunos-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", + "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-arm64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", + "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-ia32": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", + "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/@esbuild/win32-x64": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", + "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/vite/node_modules/esbuild": { + "version": "0.17.19", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", + "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.17.19", + "@esbuild/android-arm64": "0.17.19", + "@esbuild/android-x64": "0.17.19", + "@esbuild/darwin-arm64": "0.17.19", + "@esbuild/darwin-x64": "0.17.19", + "@esbuild/freebsd-arm64": "0.17.19", + "@esbuild/freebsd-x64": "0.17.19", + "@esbuild/linux-arm": "0.17.19", + "@esbuild/linux-arm64": "0.17.19", + "@esbuild/linux-ia32": "0.17.19", + "@esbuild/linux-loong64": "0.17.19", + "@esbuild/linux-mips64el": "0.17.19", + "@esbuild/linux-ppc64": "0.17.19", + "@esbuild/linux-riscv64": "0.17.19", + "@esbuild/linux-s390x": "0.17.19", + "@esbuild/linux-x64": "0.17.19", + "@esbuild/netbsd-x64": "0.17.19", + "@esbuild/openbsd-x64": "0.17.19", + "@esbuild/sunos-x64": "0.17.19", + "@esbuild/win32-arm64": "0.17.19", + "@esbuild/win32-ia32": "0.17.19", + "@esbuild/win32-x64": "0.17.19" + } + }, "node_modules/warning": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", diff --git a/package.json b/package.json index 38be28df..855b5688 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "4.0.4", + "vite": "4.3.9", "vite-plugin-static-copy": "0.13.0" } } From 15feac81c9ae9b683c9bd01a6ddd37afe0e332dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:32:10 +1000 Subject: [PATCH 327/717] Bump actions/upload-artifact from 3.1.1 to 3.1.2 (#1055) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3.1.1...v3.1.2) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 5be04293..9cd911fc 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -25,7 +25,7 @@ jobs: NODE_OPTIONS: "--max_old_space_size=4096" run: npm run build - name: Upload artifact - uses: actions/upload-artifact@v3.1.1 + uses: actions/upload-artifact@v3.1.2 with: name: preview path: dist @@ -33,7 +33,7 @@ jobs: - name: Save pr number run: echo ${PR_NUMBER} > ./pr.txt - name: Upload pr number - uses: actions/upload-artifact@v3.1.1 + uses: actions/upload-artifact@v3.1.2 with: name: pr path: ./pr.txt From 14b4969a656bc7d6960a129cf4ea33b0a8f6b1e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:34:23 +1000 Subject: [PATCH 328/717] Bump actions/setup-node from 3.5.1 to 3.6.0 (#1057) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.5.1 to 3.6.0. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.5.1...v3.6.0) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 9cd911fc..5a612a6c 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -14,7 +14,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.2.0 - name: Setup node - uses: actions/setup-node@v3.5.1 + uses: actions/setup-node@v3.6.0 with: node-version: 18.12.1 cache: "npm" diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 12785f46..319fc4ca 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.2.0 - name: Setup node - uses: actions/setup-node@v3.5.1 + uses: actions/setup-node@v3.6.0 with: node-version: 18.12.1 cache: "npm" diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 8d72a86e..6f9edd44 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.2.0 - name: Setup node - uses: actions/setup-node@v3.5.1 + uses: actions/setup-node@v3.6.0 with: node-version: 18.12.1 cache: "npm" From 9f2fb716f7fe15de120ae4cde4a112553eb8c785 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:36:13 +1000 Subject: [PATCH 329/717] Bump thollander/actions-comment-pull-request from 2.0.0 to 2.3.1 (#1081) Bumps [thollander/actions-comment-pull-request](https://github.com/thollander/actions-comment-pull-request) from 2.0.0 to 2.3.1. - [Release notes](https://github.com/thollander/actions-comment-pull-request/releases) - [Commits](https://github.com/thollander/actions-comment-pull-request/compare/c22fb302208b7b170d252a61a505d2ea27245eff...632cf9ce90574d125be56b5f3405cda41a84e2fd) --- updated-dependencies: - dependency-name: thollander/actions-comment-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index ab54f8df..741d0651 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -45,7 +45,7 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_PR_CINNY }} timeout-minutes: 1 - name: Comment preview on PR - uses: thollander/actions-comment-pull-request@c22fb302208b7b170d252a61a505d2ea27245eff + uses: thollander/actions-comment-pull-request@632cf9ce90574d125be56b5f3405cda41a84e2fd env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From f1fcde2142bb22f984353d59c30336af1195ac37 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jun 2023 21:38:53 +1000 Subject: [PATCH 330/717] Bump dawidd6/action-download-artifact from 2.24.2 to 2.27.0 (#1202) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 2.24.2 to 2.27.0. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/e6e25ac3a2b93187502a8be1ef9e9603afc34925...246dbf436b23d7c49e21a7ab8204ca9ecd1fe615) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 741d0651..fdb0e810 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -15,7 +15,7 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Download pr number - uses: dawidd6/action-download-artifact@e6e25ac3a2b93187502a8be1ef9e9603afc34925 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} @@ -24,7 +24,7 @@ jobs: id: pr run: echo "id=$(> $GITHUB_OUTPUT - name: Download artifact - uses: dawidd6/action-download-artifact@e6e25ac3a2b93187502a8be1ef9e9603afc34925 + uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} From ed5431680ff37bdb3f8685df69a91e91ffdd9dd2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:21:07 +1000 Subject: [PATCH 331/717] Bump actions/checkout from 3.2.0 to 3.5.3 (#1276) Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.5.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.2.0...v3.5.3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 5a612a6c..d7731055 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v3.2.0 + uses: actions/checkout@v3.5.3 - name: Setup node uses: actions/setup-node@v3.6.0 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 47dbfe32..d4b1d73a 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.2.0 + uses: actions/checkout@v3.5.3 - name: Build Docker image uses: docker/build-push-action@v3.2.0 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index b417df10..30d00760 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v3.2.0 + uses: actions/checkout@v3.5.3 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 319fc4ca..8935c510 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.2.0 + uses: actions/checkout@v3.5.3 - name: Setup node uses: actions/setup-node@v3.6.0 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 6f9edd44..f2cd3fa1 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.2.0 + uses: actions/checkout@v3.5.3 - name: Setup node uses: actions/setup-node@v3.6.0 with: @@ -66,7 +66,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v3.2.0 + uses: actions/checkout@v3.5.3 - name: Set up QEMU uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx From db33707e5eeddaa7eb97d98df5e7ea9a80667609 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:24:17 +1000 Subject: [PATCH 332/717] fix(deps): update dependency matrix-js-sdk to v24.1.0 [security] (#1251) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 18 +++++++++--------- package.json | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3c5b27c8..99e3c913 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "24.0.0", + "matrix-js-sdk": "24.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -4225,18 +4225,18 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { - "version": "24.0.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-24.0.0.tgz", - "integrity": "sha512-AOhO036ziDf6lwYoauj5DES/RJ6RDTq+vrK2yO/GW/8n+bAXhkjWc9AA/WcTK/9SkNHS46ZanmolkhS1n8WniQ==", + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-24.1.0.tgz", + "integrity": "sha512-xEx2ZoNsS56dwgqLJ3rIv2SUpFxdQLrLKmJCpMatMUKCAg+NGuZfpQ3QXblIbGaqFNQZCH7fC7S48AeTMZp1Jw==", "dependencies": { "@babel/runtime": "^7.12.5", - "@matrix-org/matrix-sdk-crypto-js": "^0.1.0-alpha.3", + "@matrix-org/matrix-sdk-crypto-js": "^0.1.0-alpha.5", "another-json": "^0.2.0", "bs58": "^5.0.0", "content-type": "^1.0.4", "loglevel": "^1.7.1", "matrix-events-sdk": "0.0.1", - "matrix-widget-api": "^1.0.0", + "matrix-widget-api": "^1.3.1", "p-retry": "4", "sdp-transform": "^2.14.1", "unhomoglyph": "^1.0.6", @@ -4247,9 +4247,9 @@ } }, "node_modules/matrix-widget-api": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.1.1.tgz", - "integrity": "sha512-gNSgmgSwvOsOcWK9k2+tOhEMYBiIMwX95vMZu0JqY7apkM02xrOzUBuPRProzN8CnbIALH7e3GAhatF6QCNvtA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.4.0.tgz", + "integrity": "sha512-dw0dRylGQzDUoiaY/g5xx1tBbS7aoov31PRtFMAvG58/4uerYllV9Gfou7w+I1aglwB6hihTREzKltVjARWV6A==", "dependencies": { "@types/events": "^3.0.0", "events": "^3.2.0" diff --git a/package.json b/package.json index 855b5688..5f0f42f2 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "katex": "0.16.4", "linkify-html": "4.0.2", "linkifyjs": "4.0.2", - "matrix-js-sdk": "24.0.0", + "matrix-js-sdk": "24.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", From 511c8ea79d266854009575476797a32190b77f43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:25:20 +1000 Subject: [PATCH 333/717] Bump nginx from 1.23.3-alpine to 1.25.0-alpine (#1254) Bumps nginx from 1.23.3-alpine to 1.25.0-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index af9abbd9..3cae982a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN npm run build ## App -FROM nginx:1.23.3-alpine +FROM nginx:1.25.0-alpine COPY --from=builder /src/dist /app From a07d954f1c3ab6401205651c3cdff2df666edd66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:26:54 +1000 Subject: [PATCH 334/717] Bump docker/metadata-action from 4.1.1 to 4.5.0 (#1271) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.1.1 to 4.5.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/v4.1.1...v4.5.0) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index f2cd3fa1..25ac23bb 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -84,7 +84,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4.1.1 + uses: docker/metadata-action@v4.5.0 with: images: | ${{ secrets.DOCKER_USERNAME }}/cinny From bd64f7bd868d79365ea1aa096c146ddab4e19e28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:28:07 +1000 Subject: [PATCH 335/717] Bump thollander/actions-comment-pull-request from 2.3.1 to 2.4.0 (#1272) Bumps [thollander/actions-comment-pull-request](https://github.com/thollander/actions-comment-pull-request) from 2.3.1 to 2.4.0. - [Release notes](https://github.com/thollander/actions-comment-pull-request/releases) - [Commits](https://github.com/thollander/actions-comment-pull-request/compare/632cf9ce90574d125be56b5f3405cda41a84e2fd...dadb7667129e23f12ca3925c90dc5cd7121ab57e) --- updated-dependencies: - dependency-name: thollander/actions-comment-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index fdb0e810..c4d82436 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -45,7 +45,7 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_PR_CINNY }} timeout-minutes: 1 - name: Comment preview on PR - uses: thollander/actions-comment-pull-request@632cf9ce90574d125be56b5f3405cda41a84e2fd + uses: thollander/actions-comment-pull-request@dadb7667129e23f12ca3925c90dc5cd7121ab57e env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 1c27a292383af262b491d2e04f3da655d3730c0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:28:39 +1000 Subject: [PATCH 336/717] Bump docker/setup-buildx-action from 2.2.1 to 2.6.0 (#1274) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.2.1 to 2.6.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2.2.1...v2.6.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 25ac23bb..84c963fe 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -70,7 +70,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2.1.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.2.1 + uses: docker/setup-buildx-action@v2.6.0 - name: Login to Docker Hub uses: docker/login-action@v2.1.0 with: From 6d199244efa054760b6c0cd75f509708e0c80aee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Jun 2023 09:29:18 +1000 Subject: [PATCH 337/717] Bump docker/build-push-action from 3.2.0 to 4.1.0 (#1275) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 4.1.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v4.1.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index d4b1d73a..3edc3c18 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Build Docker image - uses: docker/build-push-action@v3.2.0 + uses: docker/build-push-action@v4.1.0 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 84c963fe..484ecba9 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -90,7 +90,7 @@ jobs: ${{ secrets.DOCKER_USERNAME }}/cinny ghcr.io/${{ github.repository }} - name: Build and push Docker image - uses: docker/build-push-action@v3.2.0 + uses: docker/build-push-action@v4.1.0 with: context: . platforms: linux/amd64,linux/arm64 From 2883b4c35b12d35272d4cebb1185cf1938d402c2 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 14 Jun 2023 03:47:18 +1000 Subject: [PATCH 338/717] Fix editor bugs (#1281) * focus editor on reply click * fix emoji and sticker img object-fit * fix cursor not moving with autocomplete * stop sanitizing sending plain text body * improve autocomplete query parsing * add escape to turn off active editor toolbar item --- src/app/components/editor/Editor.tsx | 3 +- .../autocomplete/EmoticonAutocomplete.tsx | 2 +- .../editor/autocomplete/autocompleteQuery.ts | 13 +++--- src/app/components/editor/common.ts | 22 +++++++++- src/app/components/editor/keyboard.ts | 43 ++++++++++++++----- src/app/components/editor/output.ts | 2 +- .../components/emoji-board/EmojiBoard.css.tsx | 2 + src/app/components/emoji-board/EmojiBoard.tsx | 1 + src/app/organisms/room/RoomInput.tsx | 3 +- 9 files changed, 69 insertions(+), 22 deletions(-) diff --git a/src/app/components/editor/Editor.tsx b/src/app/components/editor/Editor.tsx index edf1ac6d..2657b213 100644 --- a/src/app/components/editor/Editor.tsx +++ b/src/app/components/editor/Editor.tsx @@ -93,7 +93,8 @@ export const CustomEditor = forwardRef( const handleKeydown: KeyboardEventHandler = useCallback( (evt) => { onKeyDown?.(evt); - toggleKeyboardShortcut(editor, evt); + const shortcutToggled = toggleKeyboardShortcut(editor, evt); + if (shortcutToggled) evt.preventDefault(); }, [editor, onKeyDown] ); diff --git a/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx b/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx index e5af3fa1..17712b87 100644 --- a/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx @@ -104,7 +104,7 @@ export function EmoticonAutocomplete({ as="img" src={mx.mxcUrlToHttp(key) || key} alt={emoticon.shortcode} - style={{ width: toRem(24), height: toRem(24) }} + style={{ width: toRem(24), height: toRem(24), objectFit: 'contain' }} /> ) : ( ( validPrefixes: readonly TPrefix[] ): TPrefix | undefined => { const world = Editor.string(editor, queryRange); - const prefix = world[0] as TPrefix | undefined; - if (!prefix) return undefined; - return validPrefixes.includes(prefix) ? prefix : undefined; + return validPrefixes.find((p) => world.startsWith(p)); }; -export const getAutocompleteQueryText = (editor: Editor, queryRange: BaseRange): string => - Editor.string(editor, queryRange).slice(1); +export const getAutocompleteQueryText = ( + editor: Editor, + queryRange: BaseRange, + prefix: string +): string => Editor.string(editor, queryRange).slice(prefix.length); export const getAutocompleteQuery = ( editor: Editor, @@ -41,6 +42,6 @@ export const getAutocompleteQuery = ( return { range: queryRange, prefix, - text: getAutocompleteQueryText(editor, queryRange), + text: getAutocompleteQueryText(editor, queryRange, prefix), }; }; diff --git a/src/app/components/editor/common.ts b/src/app/components/editor/common.ts index c9cf086c..619a1bfe 100644 --- a/src/app/components/editor/common.ts +++ b/src/app/components/editor/common.ts @@ -2,11 +2,25 @@ import { BasePoint, BaseRange, Editor, Element, Point, Range, Transforms } from import { BlockType, MarkType } from './Elements'; import { EmoticonElement, FormattedText, HeadingLevel, LinkElement, MentionElement } from './slate'; +const ALL_MARK_TYPE: MarkType[] = [ + MarkType.Bold, + MarkType.Code, + MarkType.Italic, + MarkType.Spoiler, + MarkType.StrikeThrough, + MarkType.Underline, +]; + export const isMarkActive = (editor: Editor, format: MarkType) => { const marks = Editor.marks(editor); return marks ? marks[format] === true : false; }; +export const isAnyMarkActive = (editor: Editor) => { + const marks = Editor.marks(editor); + return marks && !!ALL_MARK_TYPE.find((type) => marks[type] === true); +}; + export const toggleMark = (editor: Editor, format: MarkType) => { const isActive = isMarkActive(editor, format); @@ -17,6 +31,10 @@ export const toggleMark = (editor: Editor, format: MarkType) => { } }; +export const removeAllMark = (editor: Editor) => { + ALL_MARK_TYPE.forEach((mark) => Editor.removeMark(editor, mark)); +}; + export const isBlockActive = (editor: Editor, format: BlockType) => { const [match] = Editor.nodes(editor, { match: (node) => Element.isElement(node) && node.type === format, @@ -140,11 +158,11 @@ export const replaceWithElement = (editor: Editor, selectRange: BaseRange, eleme }; export const moveCursor = (editor: Editor, withSpace?: boolean) => { - // without timeout it works properly when we select autocomplete with Tab or Space + // without timeout move cursor doesn't works properly. setTimeout(() => { Transforms.move(editor); if (withSpace) editor.insertText(' '); - }, 1); + }, 100); }; interface PointUntilCharOptions { diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index 52217dd5..3fbe5363 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -1,7 +1,7 @@ import { isHotkey } from 'is-hotkey'; import { KeyboardEvent } from 'react'; import { Editor } from 'slate'; -import { isBlockActive, toggleBlock, toggleMark } from './common'; +import { isAnyMarkActive, isBlockActive, removeAllMark, toggleBlock, toggleMark } from './common'; import { BlockType, MarkType } from './Elements'; export const INLINE_HOTKEYS: Record = { @@ -22,19 +22,42 @@ export const BLOCK_HOTKEYS: Record = { }; const BLOCK_KEYS = Object.keys(BLOCK_HOTKEYS); -export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent) => { - BLOCK_KEYS.forEach((hotkey) => { +/** + * @return boolean true if shortcut is toggled. + */ +export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent): boolean => { + if (isHotkey('escape', event)) { + if (isAnyMarkActive(editor)) { + removeAllMark(editor); + return true; + } + console.log(isBlockActive(editor, BlockType.Paragraph)); + if (!isBlockActive(editor, BlockType.Paragraph)) { + toggleBlock(editor, BlockType.Paragraph); + return true; + } + return false; + } + + const blockToggled = BLOCK_KEYS.find((hotkey) => { if (isHotkey(hotkey, event)) { event.preventDefault(); toggleBlock(editor, BLOCK_HOTKEYS[hotkey]); + return true; } + return false; }); + if (blockToggled) return true; - if (!isBlockActive(editor, BlockType.CodeBlock)) - INLINE_KEYS.forEach((hotkey) => { - if (isHotkey(hotkey, event)) { - event.preventDefault(); - toggleMark(editor, INLINE_HOTKEYS[hotkey]); - } - }); + const inlineToggled = isBlockActive(editor, BlockType.CodeBlock) + ? false + : INLINE_KEYS.find((hotkey) => { + if (isHotkey(hotkey, event)) { + event.preventDefault(); + toggleMark(editor, INLINE_HOTKEYS[hotkey]); + return true; + } + return false; + }); + return !!inlineToggled; }; diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 091dab79..38c54499 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -88,7 +88,7 @@ const elementToPlainText = (node: CustomElement, children: string): string => { export const toPlainText = (node: Descendant | Descendant[]): string => { if (Array.isArray(node)) return node.map((n) => toPlainText(n)).join(''); - if (Text.isText(node)) return sanitizeText(node.text); + if (Text.isText(node)) return node.text; const children = node.children.map((n) => toPlainText(n)).join(''); return elementToPlainText(node, children); diff --git a/src/app/components/emoji-board/EmojiBoard.css.tsx b/src/app/components/emoji-board/EmojiBoard.css.tsx index 0fefc5b9..adeb2500 100644 --- a/src/app/components/emoji-board/EmojiBoard.css.tsx +++ b/src/app/components/emoji-board/EmojiBoard.css.tsx @@ -122,6 +122,7 @@ export const CustomEmojiImg = style([ { width: toRem(32), height: toRem(32), + objectFit: 'contain', }, ]); @@ -130,5 +131,6 @@ export const StickerImg = style([ { width: toRem(96), height: toRem(96), + objectFit: 'contain', }, ]); diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index c5f5038c..3b1ccc55 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -373,6 +373,7 @@ function ImagePackSidebarStack({ style={{ width: toRem(24), height: toRem(24), + objectFit: 'contain', }} src={mx.mxcUrlToHttp(pack.getPackAvatarUrl(usage) ?? '') || pack.avatarUrl} alt={label || 'Unknown Pack'} diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index 17830ad9..e79f4883 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -184,12 +184,13 @@ export const RoomInput = forwardRef( body, formattedBody, }); + ReactEditor.focus(editor); }; navigation.on(cons.events.navigation.REPLY_TO_CLICKED, handleReplyTo); return () => { navigation.removeListener(cons.events.navigation.REPLY_TO_CLICKED, handleReplyTo); }; - }, [setReplyDraft]); + }, [setReplyDraft, editor]); const handleRemoveUpload = useCallback( (upload: TUploadContent | TUploadContent[]) => { From bc5e7445d9cb1ff2ad71981b8d405c221aacbd34 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 16 Jun 2023 11:09:09 +1000 Subject: [PATCH 339/717] Add ESC btn to toolbar to quickly exit formatting (#1283) * Add ESC btn to toolbar to quickly exit formatting * add horizontal scroll to toolbar item * make editor toolbar usable in touch device * fix editor hotkeys not working in window * remove unused import --- src/app/components/editor/Editor.css.ts | 14 +- src/app/components/editor/Editor.tsx | 8 +- src/app/components/editor/Toolbar.tsx | 225 +++++++++++++++--------- src/app/components/editor/common.ts | 4 +- src/app/components/editor/keyboard.ts | 6 +- src/app/organisms/room/RoomInput.tsx | 58 ++++-- src/app/utils/key-symbol.ts | 3 + 7 files changed, 210 insertions(+), 108 deletions(-) diff --git a/src/app/components/editor/Editor.css.ts b/src/app/components/editor/Editor.css.ts index 034ded79..9ec8cfaf 100644 --- a/src/app/components/editor/Editor.css.ts +++ b/src/app/components/editor/Editor.css.ts @@ -43,6 +43,7 @@ export const EditorPlaceholder = style([ { position: 'absolute', zIndex: 1, + width: '100%', opacity: config.opacity.Placeholder, pointerEvents: 'none', userSelect: 'none', @@ -55,9 +56,10 @@ export const EditorPlaceholder = style([ }, ]); -export const EditorToolbar = style([ - DefaultReset, - { - padding: config.space.S100, - }, -]); +export const EditorToolbarBase = style({ + padding: `0 ${config.borderWidth.B300}`, +}); + +export const EditorToolbar = style({ + padding: config.space.S100, +}); diff --git a/src/app/components/editor/Editor.tsx b/src/app/components/editor/Editor.tsx index 2657b213..3f048a6f 100644 --- a/src/app/components/editor/Editor.tsx +++ b/src/app/components/editor/Editor.tsx @@ -104,7 +104,13 @@ export const CustomEditor = forwardRef( // eslint-disable-next-line @typescript-eslint/no-unused-vars const { style, ...props } = attributes; return ( - + {children} ); diff --git a/src/app/components/editor/Toolbar.tsx b/src/app/components/editor/Toolbar.tsx index a84fca22..72e2c38c 100644 --- a/src/app/components/editor/Toolbar.tsx +++ b/src/app/components/editor/Toolbar.tsx @@ -10,6 +10,7 @@ import { Line, Menu, PopOut, + Scroll, Text, Tooltip, TooltipProvider, @@ -17,7 +18,14 @@ import { } from 'folds'; import React, { ReactNode, useState } from 'react'; import { ReactEditor, useSlate } from 'slate-react'; -import { isBlockActive, isMarkActive, toggleBlock, toggleMark } from './common'; +import { + isAnyMarkActive, + isBlockActive, + isMarkActive, + removeAllMark, + toggleBlock, + toggleMark, +} from './common'; import * as css from './Editor.css'; import { BlockType, MarkType } from './Elements'; import { HeadingLevel } from './slate'; @@ -44,6 +52,11 @@ function BtnTooltip({ text, shortCode }: { text: string; shortCode?: string }) { type MarkButtonProps = { format: MarkType; icon: IconSrc; tooltip: ReactNode }; export function MarkButton({ format, icon, tooltip }: MarkButtonProps) { const editor = useSlate(); + const disableInline = isBlockActive(editor, BlockType.CodeBlock); + + if (disableInline) { + removeAllMark(editor); + } const handleClick = () => { toggleMark(editor, format); @@ -58,10 +71,11 @@ export function MarkButton({ format, icon, tooltip }: MarkButtonProps) { variant="SurfaceVariant" onClick={handleClick} aria-pressed={isMarkActive(editor, format)} - size="300" + size="400" radii="300" + disabled={disableInline} > - + )} @@ -89,10 +103,10 @@ export function BlockButton({ format, icon, tooltip }: BlockButtonProps) { variant="SurfaceVariant" onClick={handleClick} aria-pressed={isBlockActive(editor, format)} - size="300" + size="400" radii="300" > - + )} @@ -115,6 +129,7 @@ export function HeadingBlockButton() { return ( - handleMenuSelect(1)} size="300" radii="300"> - + handleMenuSelect(1)} size="400" radii="300"> + - handleMenuSelect(2)} size="300" radii="300"> - + handleMenuSelect(2)} size="400" radii="300"> + - handleMenuSelect(3)} size="300" radii="300"> - + handleMenuSelect(3)} size="400" radii="300"> + @@ -151,97 +166,143 @@ export function HeadingBlockButton() { variant="SurfaceVariant" onClick={() => (isActive ? toggleBlock(editor, BlockType.Heading) : setOpen(!open))} aria-pressed={isActive} - size="300" + size="400" radii="300" > - - + + )} ); } -export function Toolbar() { +type ExitFormattingProps = { tooltip: ReactNode }; +export function ExitFormatting({ tooltip }: ExitFormattingProps) { const editor = useSlate(); - const allowInline = !isBlockActive(editor, BlockType.CodeBlock); - const modKey = isMacOS() ? KeySymbol.Command : 'Ctrl'; + + const handleClick = () => { + if (isAnyMarkActive(editor)) { + removeAllMark(editor); + } else if (!isBlockActive(editor, BlockType.Paragraph)) { + toggleBlock(editor, BlockType.Paragraph); + } + ReactEditor.focus(editor); + }; return ( - - - - - } - /> - - } - /> - - } - /> - - } - /> - - {allowInline && ( - <> - - - } + + {(triggerRef) => ( + + {`Exit ${KeySymbol.Hyper}`} + + )} + + ); +} + +export function Toolbar() { + const editor = useSlate(); + const modKey = isMacOS() ? KeySymbol.Command : 'Ctrl'; + + const canEscape = isAnyMarkActive(editor) || !isBlockActive(editor, BlockType.Paragraph); + + return ( + + + + <> + + } + /> + } + /> + } + /> + + } + /> + } + /> + } + /> + + + + + + } /> - } + + } /> - } + + } /> - } /> - } - /> - } - /> + - - )} + {canEscape && ( + <> + + + } + /> + + + )} + + ); } diff --git a/src/app/components/editor/common.ts b/src/app/components/editor/common.ts index 619a1bfe..2f20790d 100644 --- a/src/app/components/editor/common.ts +++ b/src/app/components/editor/common.ts @@ -32,7 +32,9 @@ export const toggleMark = (editor: Editor, format: MarkType) => { }; export const removeAllMark = (editor: Editor) => { - ALL_MARK_TYPE.forEach((mark) => Editor.removeMark(editor, mark)); + ALL_MARK_TYPE.forEach((mark) => { + if (isMarkActive(editor, mark)) Editor.removeMark(editor, mark); + }); }; export const isBlockActive = (editor: Editor, format: BlockType) => { diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index 3fbe5363..b6e1c3f4 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -15,7 +15,7 @@ export const INLINE_HOTKEYS: Record = { const INLINE_KEYS = Object.keys(INLINE_HOTKEYS); export const BLOCK_HOTKEYS: Record = { - 'mod+shift+0': BlockType.OrderedList, + 'mod+shift+7': BlockType.OrderedList, 'mod+shift+8': BlockType.UnorderedList, "mod+shift+'": BlockType.BlockQuote, 'mod+shift+;': BlockType.CodeBlock, @@ -26,12 +26,12 @@ const BLOCK_KEYS = Object.keys(BLOCK_HOTKEYS); * @return boolean true if shortcut is toggled. */ export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent): boolean => { - if (isHotkey('escape', event)) { + if (isHotkey('mod+e', event)) { if (isAnyMarkActive(editor)) { removeAllMark(editor); return true; } - console.log(isBlockActive(editor, BlockType.Paragraph)); + if (!isBlockActive(editor, BlockType.Paragraph)) { toggleBlock(editor, BlockType.Paragraph); return true; diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index e79f4883..3a22b57f 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -19,6 +19,7 @@ import { Icon, IconButton, Icons, + Line, Overlay, OverlayBackdrop, OverlayCenter, @@ -95,6 +96,7 @@ import { MessageReply } from '../../molecules/message/Message'; import colorMXID from '../../../util/colorMXID'; import { parseReplyBody, parseReplyFormattedBody } from '../../utils/room'; import { sanitizeText } from '../../utils/sanitize'; +import { getResizeObserverEntry, useResizeObserver } from '../../hooks/useResizeObserver'; interface RoomInputProps { roomViewRef: RefObject; @@ -158,6 +160,16 @@ export const RoomInput = forwardRef( const handlePaste = useFilePasteHandler(handleFiles); const dropZoneVisible = useFileDropZone(roomViewRef, handleFiles); + const [mobile, setMobile] = useState(document.body.clientWidth < 500); + useResizeObserver( + document.body, + useCallback((entries) => { + const bodyEntry = getResizeObserverEntry(document.body, entries); + if (bodyEntry && bodyEntry.contentRect.width < 500) setMobile(true); + else setMobile(false); + }, []) + ); + useEffect(() => { Transforms.insertFragment(editor, msgDraft); }, [editor, msgDraft]); @@ -500,27 +512,36 @@ export const RoomInput = forwardRef( > {(anchorRef) => ( <> - setEmojiBoardTab(EmojiBoardTab.Sticker)} - variant="SurfaceVariant" - size="300" - radii="300" - > - - + {!mobile && ( + setEmojiBoardTab(EmojiBoardTab.Sticker)} + variant="SurfaceVariant" + size="300" + radii="300" + > + + + )} setEmojiBoardTab(EmojiBoardTab.Emoji)} variant="SurfaceVariant" size="300" radii="300" > - + )} @@ -532,7 +553,14 @@ export const RoomInput = forwardRef( } - bottom={toolbar && } + bottom={ + toolbar && ( +
+ + +
+ ) + } />
); diff --git a/src/app/utils/key-symbol.ts b/src/app/utils/key-symbol.ts index 7e758fd9..00dd1042 100644 --- a/src/app/utils/key-symbol.ts +++ b/src/app/utils/key-symbol.ts @@ -3,4 +3,7 @@ export enum KeySymbol { Shift = '⇧', Option = '⌥', Control = '⌃', + Hyper = '✦', + Super = '❖', + Escape = '⎋', } From 41f67cabc047dc44c36c5b907004c4d03b782a9d Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 16 Jun 2023 11:11:03 +1000 Subject: [PATCH 340/717] Add editor history (#1284) * add slate editor history * reset mark on editor reset --- package-lock.json | 12 ++++++++++++ package.json | 1 + src/app/components/editor/Editor.tsx | 4 ++-- src/app/components/editor/common.ts | 9 +++++++++ src/app/components/editor/slate.d.ts | 7 +++---- src/app/organisms/room/RoomInput.tsx | 3 +++ 6 files changed, 30 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 99e3c913..bb98ea69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -48,6 +48,7 @@ "react-modal": "3.16.1", "sanitize-html": "2.8.0", "slate": "0.90.0", + "slate-history": "0.93.0", "slate-react": "0.90.0", "tippy.js": "6.3.7", "twemoji": "14.0.2", @@ -5210,6 +5211,17 @@ "tiny-warning": "^1.0.3" } }, + "node_modules/slate-history": { + "version": "0.93.0", + "resolved": "https://registry.npmjs.org/slate-history/-/slate-history-0.93.0.tgz", + "integrity": "sha512-Gr1GMGPipRuxIz41jD2/rbvzPj8eyar56TVMyJBvBeIpQSSjNISssvGNDYfJlSWM8eaRqf6DAcxMKzsLCYeX6g==", + "dependencies": { + "is-plain-object": "^5.0.0" + }, + "peerDependencies": { + "slate": ">=0.65.3" + } + }, "node_modules/slate-react": { "version": "0.90.0", "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.90.0.tgz", diff --git a/package.json b/package.json index 5f0f42f2..bf9adeae 100644 --- a/package.json +++ b/package.json @@ -58,6 +58,7 @@ "react-modal": "3.16.1", "sanitize-html": "2.8.0", "slate": "0.90.0", + "slate-history": "0.93.0", "slate-react": "0.90.0", "tippy.js": "6.3.7", "twemoji": "14.0.2", diff --git a/src/app/components/editor/Editor.tsx b/src/app/components/editor/Editor.tsx index 3f048a6f..f4241e0e 100644 --- a/src/app/components/editor/Editor.tsx +++ b/src/app/components/editor/Editor.tsx @@ -7,7 +7,6 @@ import React, { useCallback, useState, } from 'react'; - import { Box, Scroll, Text } from 'folds'; import { Descendant, Editor, createEditor } from 'slate'; import { @@ -18,6 +17,7 @@ import { RenderElementProps, RenderPlaceholderProps, } from 'slate-react'; +import { withHistory } from 'slate-history'; import { BlockType, RenderElement, RenderLeaf } from './Elements'; import { CustomElement } from './slate'; import * as css from './Editor.css'; @@ -50,7 +50,7 @@ const withVoid = (editor: Editor): Editor => { }; export const useEditor = (): Editor => { - const [editor] = useState(withInline(withVoid(withReact(createEditor())))); + const [editor] = useState(withInline(withVoid(withReact(withHistory(createEditor()))))); return editor; }; diff --git a/src/app/components/editor/common.ts b/src/app/components/editor/common.ts index 2f20790d..19884097 100644 --- a/src/app/components/editor/common.ts +++ b/src/app/components/editor/common.ts @@ -124,6 +124,15 @@ export const resetEditor = (editor: Editor) => { }); toggleBlock(editor, BlockType.Paragraph); + removeAllMark(editor); +}; + +export const resetEditorHistory = (editor: Editor) => { + // eslint-disable-next-line no-param-reassign + editor.history = { + undos: [], + redos: [], + }; }; export const createMentionElement = ( diff --git a/src/app/components/editor/slate.d.ts b/src/app/components/editor/slate.d.ts index a321904b..74b20708 100644 --- a/src/app/components/editor/slate.d.ts +++ b/src/app/components/editor/slate.d.ts @@ -1,10 +1,11 @@ import { BaseEditor } from 'slate'; import { ReactEditor } from 'slate-react'; +import { HistoryEditor } from 'slate-history'; import { BlockType } from './Elements'; export type HeadingLevel = 1 | 2 | 3; -export type Editor = BaseEditor & ReactEditor; +export type Editor = BaseEditor & HistoryEditor & ReactEditor; export type Text = { text: string; @@ -96,11 +97,9 @@ export type CustomElement = | OrderedListElement | UnorderedListElement; -export type CustomEditor = BaseEditor & ReactEditor; - declare module 'slate' { interface CustomTypes { - Editor: BaseEditor & ReactEditor; + Editor: Editor; Element: CustomElement; Text: FormattedText & Text; } diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index 3a22b57f..39016add 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -50,6 +50,7 @@ import { EmoticonAutocomplete, createEmoticonElement, moveCursor, + resetEditorHistory, } from '../../components/editor'; import { EmojiBoard, EmojiBoardTab } from '../../components/emoji-board'; import { UseStateProvider } from '../../components/UseStateProvider'; @@ -180,6 +181,7 @@ export const RoomInput = forwardRef( const parsedDraft = JSON.parse(JSON.stringify(editor.children)); setMsgDraft(parsedDraft); resetEditor(editor); + resetEditorHistory(editor); }; }, [roomId, editor, setMsgDraft]); @@ -288,6 +290,7 @@ export const RoomInput = forwardRef( } mx.sendMessage(roomId, content); resetEditor(editor); + resetEditorHistory(editor); setReplyDraft(); sendTypingStatus(false); }, [mx, roomId, editor, replyDraft, sendTypingStatus, setReplyDraft]); From f05dccd384e60d7e93be307c409a3b5f0bda066f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:07:04 +1000 Subject: [PATCH 341/717] Bump nginx from 1.25.0-alpine to 1.25.1-alpine (#1288) Bumps nginx from 1.25.0-alpine to 1.25.1-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 3cae982a..da04492c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN npm run build ## App -FROM nginx:1.25.0-alpine +FROM nginx:1.25.1-alpine COPY --from=builder /src/dist /app From e6a343c7ec512f861725dbb5b37100967cb8ccf8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:07:34 +1000 Subject: [PATCH 342/717] Bump docker/login-action from 2.1.0 to 2.2.0 (#1289) Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 484ecba9..ef2cd752 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -72,12 +72,12 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.6.0 - name: Login to Docker Hub - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v2.2.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to the Container registry - uses: docker/login-action@v2.1.0 + uses: docker/login-action@v2.2.0 with: registry: ghcr.io username: ${{ github.actor }} From bec78e84e6db82dec19cb1a8e004af07e40f029e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:08:08 +1000 Subject: [PATCH 343/717] Bump docker/setup-qemu-action from 2.1.0 to 2.2.0 (#1295) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index ef2cd752..413cb11d 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -68,7 +68,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Set up QEMU - uses: docker/setup-qemu-action@v2.1.0 + uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.6.0 - name: Login to Docker Hub From e65dd330848051e6ee93e2bce536cd49c349cdad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:08:37 +1000 Subject: [PATCH 344/717] Bump docker/build-push-action from 4.1.0 to 4.1.1 (#1290) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.0 to 4.1.1. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 3edc3c18..30235157 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Build Docker image - uses: docker/build-push-action@v4.1.0 + uses: docker/build-push-action@v4.1.1 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 413cb11d..277fc742 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -90,7 +90,7 @@ jobs: ${{ secrets.DOCKER_USERNAME }}/cinny ghcr.io/${{ github.repository }} - name: Build and push Docker image - uses: docker/build-push-action@v4.1.0 + uses: docker/build-push-action@v4.1.1 with: context: . platforms: linux/amd64,linux/arm64 From 3b1e3ea62cb63d4e00b89fa0c9efa2fc1e058c59 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:09:06 +1000 Subject: [PATCH 345/717] Bump docker/metadata-action from 4.5.0 to 4.6.0 (#1292) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/docker/metadata-action/releases) - [Commits](https://github.com/docker/metadata-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 277fc742..058b5f23 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -84,7 +84,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4.5.0 + uses: docker/metadata-action@v4.6.0 with: images: | ${{ secrets.DOCKER_USERNAME }}/cinny From b78d568d9f5b80ab674df6890dfc974de7c1c88c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:09:25 +1000 Subject: [PATCH 346/717] Bump cla-assistant/github-action from 2.2.1 to 2.3.0 (#1294) Bumps [cla-assistant/github-action](https://github.com/cla-assistant/github-action) from 2.2.1 to 2.3.0. - [Release notes](https://github.com/cla-assistant/github-action/releases) - [Commits](https://github.com/cla-assistant/github-action/compare/v2.2.1...v2.3.0) --- updated-dependencies: - dependency-name: cla-assistant/github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cla.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index b433b8d9..1b9461b6 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -12,7 +12,7 @@ jobs: - name: 'CLA Assistant' if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' # Beta Release - uses: cla-assistant/github-action@v2.2.1 + uses: cla-assistant/github-action@v2.3.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # the below token should have repo scope and must be manually added by you in the repository's secret From 715f2bc90743af665cfd2ed7258c1aaf2ce90fae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Jun 2023 09:10:12 +1000 Subject: [PATCH 347/717] Bump docker/setup-buildx-action from 2.6.0 to 2.7.0 (#1293) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.6.0 to 2.7.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2.6.0...v2.7.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 058b5f23..66f40523 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -70,7 +70,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.6.0 + uses: docker/setup-buildx-action@v2.7.0 - name: Login to Docker Hub uses: docker/login-action@v2.2.0 with: From 4c84673bdf3ef3ffe593efe1f2614caa28a963a3 Mon Sep 17 00:00:00 2001 From: ZeroAurora Date: Wed, 21 Jun 2023 08:00:43 +0800 Subject: [PATCH 348/717] Improve verification instructions (#1301) --- src/app/organisms/settings/DeviceManage.jsx | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/app/organisms/settings/DeviceManage.jsx b/src/app/organisms/settings/DeviceManage.jsx index 4825e238..74738ea8 100644 --- a/src/app/organisms/settings/DeviceManage.jsx +++ b/src/app/organisms/settings/DeviceManage.jsx @@ -217,6 +217,26 @@ function DeviceManage() {
Unverified sessions + {!isMeVerified && ( +
+ +
+ )} + {isMeVerified && unverified.length > 0 && ( +
+ +
+ )} {!isCSEnabled && (
Date: Wed, 21 Jun 2023 20:59:02 +1000 Subject: [PATCH 349/717] fix global pack showing all room packs (#1303) --- src/app/plugins/custom-emoji.ts | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/app/plugins/custom-emoji.ts b/src/app/plugins/custom-emoji.ts index daceef44..ffb37944 100644 --- a/src/app/plugins/custom-emoji.ts +++ b/src/app/plugins/custom-emoji.ts @@ -1,4 +1,4 @@ -import { IImageInfo, MatrixClient, Room } from 'matrix-js-sdk'; +import { IImageInfo, MatrixClient, MatrixEvent, Room } from 'matrix-js-sdk'; import { AccountDataEvent } from '../../types/matrix/accountData'; import { getAccountData, getStateEvents } from '../utils/room'; import { StateEvent } from '../../types/matrix/room'; @@ -225,21 +225,24 @@ export class ImagePack { } } -export function getRoomImagePacks(room: Room): ImagePack[] { - const dataEvents = getStateEvents(room, StateEvent.PoniesRoomEmotes); - - return dataEvents.reduce((roomPacks, packEvent) => { +export function packEventsToImagePacks(packEvents: MatrixEvent[]): ImagePack[] { + return packEvents.reduce((imagePacks, packEvent) => { const packId = packEvent?.getId(); const content = packEvent?.getContent() as PackContent | undefined; - if (!packId || !content) return roomPacks; + if (!packId || !content) return imagePacks; const pack = ImagePack.parsePack(packId, content); if (pack) { - roomPacks.push(pack); + imagePacks.push(pack); } - return roomPacks; + return imagePacks; }, []); } +export function getRoomImagePacks(room: Room): ImagePack[] { + const dataEvents = getStateEvents(room, StateEvent.PoniesRoomEmotes); + return packEventsToImagePacks(dataEvents); +} + export function getGlobalImagePacks(mx: MatrixClient): ImagePack[] { const emoteRoomsContent = getAccountData(mx, AccountDataEvent.PoniesEmoteRooms)?.getContent() as | EmoteRoomsContent @@ -255,7 +258,14 @@ export function getGlobalImagePacks(mx: MatrixClient): ImagePack[] { if (typeof rooms[roomId] !== 'object') return []; const room = mx.getRoom(roomId); if (!room) return []; - return getRoomImagePacks(room); + const packEventIdToUnknown = rooms[roomId]; + const roomPacks = getStateEvents(room, StateEvent.PoniesRoomEmotes); + const globalPacks = roomPacks.filter((mE) => { + const packKey = mE.getStateKey(); + if (typeof packKey === 'string') return !!packEventIdToUnknown[packKey]; + return false; + }); + return packEventsToImagePacks(globalPacks); }); return packs; From da32d0d9e7b2ccee0352cc63999fbf23bd4de869 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 21 Jun 2023 22:26:27 +1000 Subject: [PATCH 350/717] Update project link (#1302) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d4a38ac..0910dfbb 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

A Matrix client focusing primarily on simple, elegant and secure interface. The main goal is to have an instant messaging application that is easy on people and has a modern touch. -- [Roadmap](https://github.com/ajbura/cinny/projects/11) +- [Roadmap](https://github.com/orgs/cinnyapp/projects/1) - [Contributing](./CONTRIBUTING.md) From c07905c360c7c975d9eda39964764ff0cb63ad01 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 22 Jun 2023 09:14:50 +1000 Subject: [PATCH 351/717] Improve Members Right Panel (#1286) * fix room members hook * fix resize observer hook * add intersection observer hook * install react-virtual lib * improve right panel - WIP * add filters for members * fix bug in async search * categories members and add search * show spinner on room member fetch * make invite member btn clickable * so no member text * add line between room view and member drawer * fix imports * add screen size hook * fix set setting hook * make member drawer responsive * extract power level tags hook * fix room members hook * fix use async search api * produce search result on filter change --- package-lock.json | 173 +++++- package.json | 2 + .../autocomplete/EmoticonAutocomplete.tsx | 7 +- .../autocomplete/RoomMentionAutocomplete.tsx | 7 +- .../autocomplete/UserMentionAutocomplete.tsx | 7 +- src/app/components/emoji-board/EmojiBoard.tsx | 11 +- src/app/hooks/useAsyncSearch.ts | 17 +- src/app/hooks/useIntersectionObserver.ts | 37 ++ src/app/hooks/usePowerLevelTags.ts | 38 ++ src/app/hooks/useResizeObserver.ts | 7 +- src/app/hooks/useRoomMembers.ts | 15 +- src/app/hooks/useScreenSize.ts | 36 ++ src/app/organisms/room/MembersDrawer.css.ts | 64 +++ src/app/organisms/room/MembersDrawer.tsx | 528 ++++++++++++++++++ src/app/organisms/room/Room.jsx | 26 +- src/app/organisms/room/RoomInput.tsx | 21 +- src/app/organisms/room/RoomViewContent.jsx | 4 +- src/app/organisms/room/RoomViewHeader.jsx | 56 +- src/app/state/hooks/settings.ts | 7 +- 19 files changed, 984 insertions(+), 79 deletions(-) create mode 100644 src/app/hooks/useIntersectionObserver.ts create mode 100644 src/app/hooks/usePowerLevelTags.ts create mode 100644 src/app/hooks/useScreenSize.ts create mode 100644 src/app/organisms/room/MembersDrawer.css.ts create mode 100644 src/app/organisms/room/MembersDrawer.tsx diff --git a/package-lock.json b/package-lock.json index bb98ea69..61eebbf9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", + "@tanstack/react-virtual": "3.0.0-beta.54", "@tippyjs/react": "4.2.6", "@vanilla-extract/css": "1.9.3", "@vanilla-extract/recipes": "0.3.0", @@ -37,6 +38,7 @@ "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "24.1.0", + "millify": "6.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -1106,6 +1108,30 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, + "node_modules/@tanstack/react-virtual": { + "version": "3.0.0-beta.54", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.0.0-beta.54.tgz", + "integrity": "sha512-D1mDMf4UPbrtHRZZriCly5bXTBMhylslm4dhcHqTtDJ6brQcgGmk8YD9JdWBGWfGSWPKoh2x1H3e7eh+hgPXtQ==", + "dependencies": { + "@tanstack/virtual-core": "3.0.0-beta.54" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/@tanstack/virtual-core": { + "version": "3.0.0-beta.54", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.0.0-beta.54.tgz", + "integrity": "sha512-jtkwqdP2rY2iCCDVAFuaNBH3fiEi29aTn2RhtIoky8DTTiCdc48plpHHreLwmv1PICJ4AJUUESaq3xa8fZH8+g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, "node_modules/@tippyjs/react": { "version": "4.2.6", "resolved": "https://registry.npmjs.org/@tippyjs/react/-/react-4.2.6.tgz", @@ -1669,7 +1695,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -2058,6 +2083,19 @@ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", "integrity": "sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==" }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -3349,6 +3387,14 @@ "node": ">=6.9.0" } }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", @@ -3771,6 +3817,14 @@ "node": ">=0.10.0" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -4286,6 +4340,17 @@ "node": ">=8.6" } }, + "node_modules/millify": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/millify/-/millify-6.1.0.tgz", + "integrity": "sha512-H/E3J6t+DQs/F2YgfDhxUVZz/dF8JXPPKTLHL/yHCcLZLtCXJDUaqvhJXQwqOVBvbyNn4T0WjLpIHd7PAw7fBA==", + "dependencies": { + "yargs": "^17.0.1" + }, + "bin": { + "millify": "bin/millify" + } + }, "node_modules/mini-svg-data-uri": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", @@ -4965,6 +5030,14 @@ "url": "https://github.com/sponsors/mysticatea" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/require-like": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/require-like/-/require-like-0.1.2.tgz", @@ -5256,6 +5329,24 @@ "node": ">=0.10.0" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "node_modules/string.prototype.matchall": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.8.tgz", @@ -5307,7 +5398,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -6166,12 +6256,66 @@ "node": ">=0.10.0" } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -6186,6 +6330,31 @@ "node": ">= 6" } }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "engines": { + "node": ">=12" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index bf9adeae..beaae095 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", + "@tanstack/react-virtual": "3.0.0-beta.54", "@tippyjs/react": "4.2.6", "@vanilla-extract/css": "1.9.3", "@vanilla-extract/recipes": "0.3.0", @@ -47,6 +48,7 @@ "linkify-html": "4.0.2", "linkifyjs": "4.0.2", "matrix-js-sdk": "24.1.0", + "millify": "6.1.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", diff --git a/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx b/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx index 17712b87..2e556000 100644 --- a/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx @@ -60,12 +60,13 @@ export function EmoticonAutocomplete({ ); }, [imagePacks]); - const [result, search] = useAsyncSearch(searchList, getEmoticonStr, SEARCH_OPTIONS); + const [result, search, resetSearch] = useAsyncSearch(searchList, getEmoticonStr, SEARCH_OPTIONS); const autoCompleteEmoticon = result ? result.items : recentEmoji; useEffect(() => { - search(query.text); - }, [query.text, search]); + if (query.text) search(query.text); + else resetSearch(); + }, [query.text, search, resetSearch]); const handleAutocomplete: EmoticonCompleteHandler = (key, shortcode) => { const emoticonEl = createEmoticonElement(key, shortcode); diff --git a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx index 2edfb8bc..6bea1952 100644 --- a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx @@ -81,7 +81,7 @@ export function RoomMentionAutocomplete({ return [...spaces, ...rooms, ...directs].sort(roomIdByActivity); }, []); - const [result, search] = useAsyncSearch( + const [result, search, resetSearch] = useAsyncSearch( allRoomId, useCallback( (rId) => { @@ -99,8 +99,9 @@ export function RoomMentionAutocomplete({ const autoCompleteRoomIds = result ? result.items : allRoomId.slice(0, 20); useEffect(() => { - search(query.text); - }, [query.text, search]); + if (query.text) search(query.text); + else resetSearch(); + }, [query.text, search, resetSearch]); const handleAutocomplete: MentionAutoCompleteHandler = (roomAliasOrId, name) => { const mentionEl = createMentionElement( diff --git a/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx b/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx index 10088ada..00ecb015 100644 --- a/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx @@ -94,12 +94,13 @@ export function UserMentionAutocomplete({ const roomAliasOrId = room?.getCanonicalAlias() || roomId; const members = useRoomMembers(mx, roomId); - const [result, search] = useAsyncSearch(members, getRoomMemberStr, SEARCH_OPTIONS); + const [result, search, resetSearch] = useAsyncSearch(members, getRoomMemberStr, SEARCH_OPTIONS); const autoCompleteMembers = result ? result.items : members.slice(0, 20); useEffect(() => { - search(query.text); - }, [query.text, search]); + if (query.text) search(query.text); + else resetSearch(); + }, [query.text, search, resetSearch]); const handleAutocomplete: MentionAutoCompleteHandler = (uId, name) => { const mentionEl = createMentionElement( diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 3b1ccc55..4005234a 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -647,15 +647,20 @@ export function EmojiBoard({ return list; }, [emojiTab, usage, imagePacks]); - const [result, search] = useAsyncSearch(searchList, getSearchListItemStr, SEARCH_OPTIONS); + const [result, search, resetSearch] = useAsyncSearch( + searchList, + getSearchListItemStr, + SEARCH_OPTIONS + ); const handleOnChange: ChangeEventHandler = useDebounce( useCallback( (evt) => { const term = evt.target.value; - search(term); + if (term) search(term); + else resetSearch(); }, - [search] + [search, resetSearch] ), { wait: 200 } ); diff --git a/src/app/hooks/useAsyncSearch.ts b/src/app/hooks/useAsyncSearch.ts index b083a19a..d0e73e7f 100644 --- a/src/app/hooks/useAsyncSearch.ts +++ b/src/app/hooks/useAsyncSearch.ts @@ -25,11 +25,13 @@ export type UseAsyncSearchResult = items: TSearchItem[]; }; +export type SearchResetHandler = () => void; + export const useAsyncSearch = ( list: TSearchItem[], getItemStr: SearchItemStrGetter, options?: UseAsyncSearchOptions -): [UseAsyncSearchResult | undefined, AsyncSearchHandler] => { +): [UseAsyncSearchResult | undefined, AsyncSearchHandler, SearchResetHandler] => { const [result, setResult] = useState>(); const [searchCallback, terminateSearch] = useMemo(() => { @@ -51,7 +53,7 @@ export const useAsyncSearch = ( const handleResult: ResultHandler = (results, query) => setResult({ query, - items: results, + items: [...results], }); return AsyncSearch(list, handleMatch, handleResult, options); @@ -60,15 +62,16 @@ export const useAsyncSearch = ( const searchHandler: AsyncSearchHandler = useCallback( (query) => { const normalizedQuery = normalize(query, options?.normalizeOptions); - if (!normalizedQuery) { - setResult(undefined); - return; - } searchCallback(normalizedQuery); }, [searchCallback, options?.normalizeOptions] ); + const resetHandler: SearchResetHandler = useCallback(() => { + terminateSearch(); + setResult(undefined); + }, [terminateSearch]); + useEffect( () => () => { // terminate any ongoing search request on unmount. @@ -77,5 +80,5 @@ export const useAsyncSearch = ( [terminateSearch] ); - return [result, searchHandler]; + return [result, searchHandler, resetHandler]; }; diff --git a/src/app/hooks/useIntersectionObserver.ts b/src/app/hooks/useIntersectionObserver.ts new file mode 100644 index 00000000..754007ae --- /dev/null +++ b/src/app/hooks/useIntersectionObserver.ts @@ -0,0 +1,37 @@ +import { useEffect, useState } from 'react'; + +export type OnIntersectionCallback = (entries: IntersectionObserverEntry[]) => void; + +export type IntersectionObserverOpts = { + root?: Element | Document | null; + rootMargin?: string; + threshold?: number | number[]; +}; + +export const getIntersectionObserverEntry = ( + target: Element | Document, + entries: IntersectionObserverEntry[] +): IntersectionObserverEntry | undefined => entries.find((entry) => entry.target === target); + +export const useIntersectionObserver = ( + onIntersectionCallback: OnIntersectionCallback, + opts?: IntersectionObserverOpts | (() => IntersectionObserverOpts), + observeElement?: Element | null | (() => Element | null) +): IntersectionObserver | undefined => { + const [intersectionObserver, setIntersectionObserver] = useState(); + + useEffect(() => { + const initOpts = typeof opts === 'function' ? opts() : opts; + setIntersectionObserver(new IntersectionObserver(onIntersectionCallback, initOpts)); + }, [onIntersectionCallback, opts]); + + useEffect(() => { + const element = typeof observeElement === 'function' ? observeElement() : observeElement; + if (element) intersectionObserver?.observe(element); + return () => { + if (element) intersectionObserver?.unobserve(element); + }; + }, [intersectionObserver, observeElement]); + + return intersectionObserver; +}; diff --git a/src/app/hooks/usePowerLevelTags.ts b/src/app/hooks/usePowerLevelTags.ts new file mode 100644 index 00000000..dd0a3df8 --- /dev/null +++ b/src/app/hooks/usePowerLevelTags.ts @@ -0,0 +1,38 @@ +import { useCallback, useMemo } from 'react'; + +export type PowerLevelTag = { + name: string; +}; +export const usePowerLevelTags = () => { + const powerLevelTags = useMemo( + () => ({ + 9000: { + name: 'Goku', + }, + 101: { + name: 'Founder', + }, + 100: { + name: 'Admin', + }, + 50: { + name: 'Moderator', + }, + 0: { + name: 'Default', + }, + }), + [] + ); + + return useCallback( + (powerLevel: number): PowerLevelTag => { + if (powerLevel >= 9000) return powerLevelTags[9000]; + if (powerLevel >= 101) return powerLevelTags[101]; + if (powerLevel === 100) return powerLevelTags[100]; + if (powerLevel >= 50) return powerLevelTags[50]; + return powerLevelTags[0]; + }, + [powerLevelTags] + ); +}; diff --git a/src/app/hooks/useResizeObserver.ts b/src/app/hooks/useResizeObserver.ts index 69ec65d0..1e0fc726 100644 --- a/src/app/hooks/useResizeObserver.ts +++ b/src/app/hooks/useResizeObserver.ts @@ -8,17 +8,18 @@ export const getResizeObserverEntry = ( ): ResizeObserverEntry | undefined => entries.find((entry) => entry.target === target); export const useResizeObserver = ( - element: Element | null, - onResizeCallback: OnResizeCallback + onResizeCallback: OnResizeCallback, + observeElement?: Element | null | (() => Element | null) ): ResizeObserver => { const resizeObserver = useMemo(() => new ResizeObserver(onResizeCallback), [onResizeCallback]); useEffect(() => { + const element = typeof observeElement === 'function' ? observeElement() : observeElement; if (element) resizeObserver.observe(element); return () => { if (element) resizeObserver.unobserve(element); }; - }, [resizeObserver, element]); + }, [resizeObserver, observeElement]); return resizeObserver; }; diff --git a/src/app/hooks/useRoomMembers.ts b/src/app/hooks/useRoomMembers.ts index 544d97a0..df369011 100644 --- a/src/app/hooks/useRoomMembers.ts +++ b/src/app/hooks/useRoomMembers.ts @@ -1,23 +1,25 @@ import { MatrixClient, MatrixEvent, RoomMember, RoomMemberEvent } from 'matrix-js-sdk'; import { useEffect, useState } from 'react'; -import { useAlive } from './useAlive'; export const useRoomMembers = (mx: MatrixClient, roomId: string): RoomMember[] => { const [members, setMembers] = useState([]); - const alive = useAlive(); useEffect(() => { const room = mx.getRoom(roomId); + let loadingMembers = true; + let disposed = false; const updateMemberList = (event?: MatrixEvent) => { - if (!room || !alive || (event && event.getRoomId() !== roomId)) return; + if (!room || disposed || (event && event.getRoomId() !== roomId)) return; + if (loadingMembers) return; setMembers(room.getMembers()); }; if (room) { - updateMemberList(); + setMembers(room.getMembers()); room.loadMembersIfNeeded().then(() => { - if (!alive) return; + loadingMembers = false; + if (disposed) return; updateMemberList(); }); } @@ -25,10 +27,11 @@ export const useRoomMembers = (mx: MatrixClient, roomId: string): RoomMember[] = mx.on(RoomMemberEvent.Membership, updateMemberList); mx.on(RoomMemberEvent.PowerLevel, updateMemberList); return () => { + disposed = true; mx.removeListener(RoomMemberEvent.Membership, updateMemberList); mx.removeListener(RoomMemberEvent.PowerLevel, updateMemberList); }; - }, [mx, roomId, alive]); + }, [mx, roomId]); return members; }; diff --git a/src/app/hooks/useScreenSize.ts b/src/app/hooks/useScreenSize.ts new file mode 100644 index 00000000..4afe9083 --- /dev/null +++ b/src/app/hooks/useScreenSize.ts @@ -0,0 +1,36 @@ +import { useCallback, useState } from 'react'; +import { getResizeObserverEntry, useResizeObserver } from './useResizeObserver'; + +export const TABLET_BREAKPOINT = 1124; +export const MOBILE_BREAKPOINT = 750; + +export enum ScreenSize { + Desktop = 'Desktop', + Tablet = 'Tablet', + Mobile = 'Mobile', +} + +export const getScreenSize = (width: number): ScreenSize => { + if (width > TABLET_BREAKPOINT) return ScreenSize.Desktop; + if (width > MOBILE_BREAKPOINT) return ScreenSize.Tablet; + return ScreenSize.Mobile; +}; + +export const useScreenSize = (): [ScreenSize, number] => { + const [size, setSize] = useState<[ScreenSize, number]>([ + getScreenSize(document.body.clientWidth), + document.body.clientWidth, + ]); + useResizeObserver( + useCallback((entries) => { + const bodyEntry = getResizeObserverEntry(document.body, entries); + if (bodyEntry) { + const bWidth = bodyEntry.contentRect.width; + setSize([getScreenSize(bWidth), bWidth]); + } + }, []), + document.body + ); + + return size; +}; diff --git a/src/app/organisms/room/MembersDrawer.css.ts b/src/app/organisms/room/MembersDrawer.css.ts new file mode 100644 index 00000000..2718e92d --- /dev/null +++ b/src/app/organisms/room/MembersDrawer.css.ts @@ -0,0 +1,64 @@ +import { keyframes, style } from '@vanilla-extract/css'; +import { color, config, toRem } from 'folds'; + +export const MembersDrawer = style({ + width: toRem(266), + backgroundColor: color.Background.Container, + color: color.Background.OnContainer, +}); + +export const MembersDrawerHeader = style({ + flexShrink: 0, + padding: `0 ${config.space.S200} 0 ${config.space.S300}`, + borderBottomWidth: config.borderWidth.B300, +}); + +export const MemberDrawerContentBase = style({ + position: 'relative', + overflow: 'hidden', +}); + +export const MemberDrawerContent = style({ + padding: `${config.space.S300} 0`, +}); + +const ScrollBtnAnime = keyframes({ + '0%': { + transform: `translate(-50%, -100%) scale(0)`, + }, + '100%': { + transform: `translate(-50%, 0) scale(1)`, + }, +}); + +export const DrawerScrollTop = style({ + position: 'absolute', + top: config.space.S200, + left: '50%', + transform: 'translateX(-50%)', + zIndex: 1, + animation: `${ScrollBtnAnime} 100ms`, +}); + +export const DrawerGroup = style({ + padding: `0 ${config.space.S100} 0 ${config.space.S300}`, +}); + +export const MembersGroup = style({ + paddingLeft: config.space.S200, +}); +export const MembersGroupLabel = style({ + padding: config.space.S200, + selectors: { + '&:not(:first-child)': { + paddingTop: config.space.S500, + }, + }, +}); + +export const DrawerVirtualItem = style({ + position: 'absolute', + top: 0, + left: 0, + width: '100%', +}); diff --git a/src/app/organisms/room/MembersDrawer.tsx b/src/app/organisms/room/MembersDrawer.tsx new file mode 100644 index 00000000..d50c3666 --- /dev/null +++ b/src/app/organisms/room/MembersDrawer.tsx @@ -0,0 +1,528 @@ +import React, { + ChangeEventHandler, + MouseEventHandler, + useCallback, + useMemo, + useRef, + useState, +} from 'react'; +import { + Avatar, + AvatarFallback, + AvatarImage, + Box, + Chip, + ContainerColor, + Header, + Icon, + IconButton, + Icons, + Input, + Menu, + MenuItem, + PopOut, + Scroll, + Spinner, + Text, + Tooltip, + TooltipProvider, + config, +} from 'folds'; +import { Room, RoomMember } from 'matrix-js-sdk'; +import { useVirtualizer } from '@tanstack/react-virtual'; +import FocusTrap from 'focus-trap-react'; +import millify from 'millify'; +import classNames from 'classnames'; + +import { openInviteUser, openProfileViewer } from '../../../client/action/navigation'; +import * as css from './MembersDrawer.css'; +import { useRoomMembers } from '../../hooks/useRoomMembers'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; +import { + getIntersectionObserverEntry, + useIntersectionObserver, +} from '../../hooks/useIntersectionObserver'; +import { Membership } from '../../../types/matrix/room'; +import { UseStateProvider } from '../../components/UseStateProvider'; +import { UseAsyncSearchOptions, useAsyncSearch } from '../../hooks/useAsyncSearch'; +import { useDebounce } from '../../hooks/useDebounce'; +import colorMXID from '../../../util/colorMXID'; +import { usePowerLevelTags, PowerLevelTag } from '../../hooks/usePowerLevelTags'; + +export const MembershipFilters = { + filterJoined: (m: RoomMember) => m.membership === Membership.Join, + filterInvited: (m: RoomMember) => m.membership === Membership.Invite, + filterLeaved: (m: RoomMember) => + m.membership === Membership.Leave && + m.events.member?.getStateKey() === m.events.member?.getSender(), + filterKicked: (m: RoomMember) => + m.membership === Membership.Leave && + m.events.member?.getStateKey() !== m.events.member?.getSender(), + filterBanned: (m: RoomMember) => m.membership === Membership.Ban, +}; + +export type MembershipFilterFn = (m: RoomMember) => boolean; + +export type MembershipFilter = { + name: string; + filterFn: MembershipFilterFn; + color: ContainerColor; +}; + +const useMembershipFilterMenu = (): MembershipFilter[] => + useMemo( + () => [ + { + name: 'Joined', + filterFn: MembershipFilters.filterJoined, + color: 'Surface', + }, + { + name: 'Invited', + filterFn: MembershipFilters.filterInvited, + color: 'Success', + }, + { + name: 'Left', + filterFn: MembershipFilters.filterLeaved, + color: 'Secondary', + }, + { + name: 'Kicked', + filterFn: MembershipFilters.filterKicked, + color: 'Warning', + }, + { + name: 'Banned', + filterFn: MembershipFilters.filterBanned, + color: 'Critical', + }, + ], + [] + ); + +export const SortFilters = { + filterAscending: (a: RoomMember, b: RoomMember) => + a.name.toLowerCase() < b.name.toLowerCase() ? -1 : 1, + filterDescending: (a: RoomMember, b: RoomMember) => + a.name.toLowerCase() > b.name.toLowerCase() ? -1 : 1, + filterNewestFirst: (a: RoomMember, b: RoomMember) => + (b.events.member?.getTs() ?? 0) - (a.events.member?.getTs() ?? 0), + filterOldest: (a: RoomMember, b: RoomMember) => + (a.events.member?.getTs() ?? 0) - (b.events.member?.getTs() ?? 0), +}; + +export type SortFilterFn = (a: RoomMember, b: RoomMember) => number; + +export type SortFilter = { + name: string; + filterFn: SortFilterFn; +}; + +const useSortFilterMenu = (): SortFilter[] => + useMemo( + () => [ + { + name: 'A to Z', + filterFn: SortFilters.filterAscending, + }, + { + name: 'Z to A', + filterFn: SortFilters.filterDescending, + }, + { + name: 'Newest First', + filterFn: SortFilters.filterNewestFirst, + }, + { + name: 'Oldest First', + filterFn: SortFilters.filterOldest, + }, + ], + [] + ); + +export type MembersFilterOptions = { + membershipFilter: MembershipFilter; + sortFilter: SortFilter; +}; + +const SEARCH_OPTIONS: UseAsyncSearchOptions = { + limit: 100, + matchOptions: { + contain: true, + }, +}; +const getMemberItemStr = (m: RoomMember) => [m.name, m.userId]; + +type MembersDrawerProps = { + room: Room; +}; +export function MembersDrawer({ room }: MembersDrawerProps) { + const mx = useMatrixClient(); + const scrollRef = useRef(null); + const searchInputRef = useRef(null); + const scrollTopAnchorRef = useRef(null); + const members = useRoomMembers(mx, room.roomId); + const getPowerLevelTag = usePowerLevelTags(); + const fetchingMembers = members.length < room.getJoinedMemberCount(); + + const membershipFilterMenu = useMembershipFilterMenu(); + const sortFilterMenu = useSortFilterMenu(); + const [filter, setFilter] = useState({ + membershipFilter: membershipFilterMenu[0], + sortFilter: sortFilterMenu[0], + }); + const [onTop, setOnTop] = useState(true); + + const filteredMembers = useMemo( + () => + members + .filter(filter.membershipFilter.filterFn) + .sort(filter.sortFilter.filterFn) + .sort((a, b) => b.powerLevel - a.powerLevel), + [members, filter] + ); + + const [result, search, resetSearch] = useAsyncSearch( + filteredMembers, + getMemberItemStr, + SEARCH_OPTIONS + ); + if (!result && searchInputRef.current?.value) search(searchInputRef.current.value); + + const processMembers = result ? result.items : filteredMembers; + + const PLTagOrRoomMember = useMemo(() => { + let prevTag: PowerLevelTag | undefined; + const tagOrMember: Array = []; + processMembers.forEach((m) => { + const plTag = getPowerLevelTag(m.powerLevel); + if (plTag !== prevTag) { + prevTag = plTag; + tagOrMember.push(plTag); + } + tagOrMember.push(m); + }); + return tagOrMember; + }, [processMembers, getPowerLevelTag]); + + const virtualizer = useVirtualizer({ + count: PLTagOrRoomMember.length, + getScrollElement: () => scrollRef.current, + estimateSize: () => 40, + overscan: 10, + }); + + useIntersectionObserver( + useCallback((intersectionEntries) => { + if (!scrollTopAnchorRef.current) return; + const entry = getIntersectionObserverEntry(scrollTopAnchorRef.current, intersectionEntries); + if (entry) setOnTop(entry.isIntersecting); + }, []), + useCallback(() => ({ root: scrollRef.current }), []), + useCallback(() => scrollTopAnchorRef.current, []) + ); + + const handleSearchChange: ChangeEventHandler = useDebounce( + useCallback( + (evt) => { + if (evt.target.value) search(evt.target.value); + else resetSearch(); + }, + [search, resetSearch] + ), + { wait: 200 } + ); + + const handleMemberClick: MouseEventHandler = (evt) => { + const btn = evt.currentTarget as HTMLButtonElement; + const userId = btn.getAttribute('data-user-id'); + openProfileViewer(userId, room.roomId); + }; + + return ( + +
+ + + + {`${millify(room.getJoinedMemberCount(), { precision: 1 })} Members`} + + + + + Invite Member + + } + > + {(triggerRef) => ( + openInviteUser(room.roomId)} + > + + + )} + + + +
+ + + + + Filter + + + {(open, setOpen) => ( + setOpen(false), + clickOutsideDeactivates: true, + isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', + isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', + }} + > + + {membershipFilterMenu.map((menuItem) => ( + { + setFilter((f) => ({ ...f, membershipFilter: menuItem })); + setOpen(false); + }} + > + {menuItem.name} + + ))} + + + } + > + {(anchorRef) => ( + setOpen(!open)} + variant={filter.membershipFilter.color} + radii="400" + outlined + after={} + > + {filter.membershipFilter.name} + + )} + + )} + + + {(open, setOpen) => ( + setOpen(false), + clickOutsideDeactivates: true, + isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', + isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', + }} + > + + {sortFilterMenu.map((menuItem) => ( + { + setFilter((f) => ({ ...f, sortFilter: menuItem })); + setOpen(false); + }} + > + {menuItem.name} + + ))} + + + } + > + {(anchorRef) => ( + setOpen(!open)} + variant="Surface" + radii="400" + outlined + after={} + > + {`Order: ${filter.sortFilter.name}`} + + )} + + )} + + + + + + Search + } + after={ + result && ( + 0 ? 'Success' : 'Critical'} + size="400" + radii="Pill" + onClick={() => { + if (searchInputRef.current) searchInputRef.current.value = ''; + resetSearch(); + }} + after={} + > + {`${result.items.length || 'No'} ${ + result.items.length === 1 ? 'Result' : 'Results' + }`} + + ) + } + /> + + + {!onTop && ( + + virtualizer.scrollToOffset(0)} + variant="Surface" + radii="Pill" + outlined + size="300" + aria-label="Scroll to Top" + > + + + + )} + + {!fetchingMembers && !result && processMembers.length === 0 && ( + + {`No "${filter.membershipFilter.name}" Members`} + + )} + + +
+ {virtualizer.getVirtualItems().map((vItem) => { + const tagOrMember = PLTagOrRoomMember[vItem.index]; + if (!('userId' in tagOrMember)) { + return ( + + {tagOrMember.name} + + ); + } + + const member = tagOrMember; + const avatarUrl = member.getAvatarUrl( + mx.baseUrl, + 100, + 100, + 'crop', + undefined, + false + ); + + return ( + + {avatarUrl ? ( + + ) : ( + + {member.name[0]} + + )} + + } + > + + {member.name} + + + ); + })} +
+
+ + {fetchingMembers && ( + + + + )} +
+
+
+
+ ); +} diff --git a/src/app/organisms/room/Room.jsx b/src/app/organisms/room/Room.jsx index 9d861c96..0603b985 100644 --- a/src/app/organisms/room/Room.jsx +++ b/src/app/organisms/room/Room.jsx @@ -1,9 +1,9 @@ import React, { useState, useEffect } from 'react'; import './Room.scss'; +import { Line } from 'folds'; import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; -import settings from '../../../client/state/settings'; import RoomTimeline from '../../../client/state/RoomTimeline'; import navigation from '../../../client/state/navigation'; import { openNavigation } from '../../../client/action/navigation'; @@ -11,7 +11,10 @@ import { openNavigation } from '../../../client/action/navigation'; import Welcome from '../welcome/Welcome'; import RoomView from './RoomView'; import RoomSettings from './RoomSettings'; -import PeopleDrawer from './PeopleDrawer'; +import { MembersDrawer } from './MembersDrawer'; +import { ScreenSize, useScreenSize } from '../../hooks/useScreenSize'; +import { useSetting } from '../../state/hooks/settings'; +import { settingsAtom } from '../../state/settings'; function Room() { const [roomInfo, setRoomInfo] = useState({ @@ -19,7 +22,8 @@ function Room() { roomTimeline: null, eventId: null, }); - const [isDrawer, setIsDrawer] = useState(settings.isPeopleDrawer); + const [isDrawer] = useSetting(settingsAtom, 'isPeopleDrawer'); + const [screenSize] = useScreenSize(); const mx = initMatrix.matrixClient; @@ -49,14 +53,6 @@ function Room() { }; }, [roomInfo, mx]); - useEffect(() => { - const handleDrawerToggling = (visiblity) => setIsDrawer(visiblity); - settings.on(cons.events.settings.PEOPLE_DRAWER_TOGGLED, handleDrawerToggling); - return () => { - settings.removeListener(cons.events.settings.PEOPLE_DRAWER_TOGGLED, handleDrawerToggling); - }; - }, []); - const { room, roomTimeline, eventId } = roomInfo; if (roomTimeline === null) { setTimeout(() => openNavigation()); @@ -69,7 +65,13 @@ function Room() {
- {isDrawer && } + + {screenSize === ScreenSize.Desktop && isDrawer && ( + <> + + + + )}
); } diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index 39016add..e869e16d 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -97,7 +97,7 @@ import { MessageReply } from '../../molecules/message/Message'; import colorMXID from '../../../util/colorMXID'; import { parseReplyBody, parseReplyFormattedBody } from '../../utils/room'; import { sanitizeText } from '../../utils/sanitize'; -import { getResizeObserverEntry, useResizeObserver } from '../../hooks/useResizeObserver'; +import { useScreenSize } from '../../hooks/useScreenSize'; interface RoomInputProps { roomViewRef: RefObject; @@ -161,15 +161,8 @@ export const RoomInput = forwardRef( const handlePaste = useFilePasteHandler(handleFiles); const dropZoneVisible = useFileDropZone(roomViewRef, handleFiles); - const [mobile, setMobile] = useState(document.body.clientWidth < 500); - useResizeObserver( - document.body, - useCallback((entries) => { - const bodyEntry = getResizeObserverEntry(document.body, entries); - if (bodyEntry && bodyEntry.contentRect.width < 500) setMobile(true); - else setMobile(false); - }, []) - ); + const [, screenWidth] = useScreenSize(); + const hideStickerBtn = screenWidth < 500; useEffect(() => { Transforms.insertFragment(editor, msgDraft); @@ -515,7 +508,7 @@ export const RoomInput = forwardRef( > {(anchorRef) => ( <> - {!mobile && ( + {!hideStickerBtn && ( setEmojiBoardTab(EmojiBoardTab.Sticker)} @@ -532,7 +525,7 @@ export const RoomInput = forwardRef( setEmojiBoardTab(EmojiBoardTab.Emoji)} variant="SurfaceVariant" @@ -542,7 +535,9 @@ export const RoomInput = forwardRef( diff --git a/src/app/organisms/room/RoomViewContent.jsx b/src/app/organisms/room/RoomViewContent.jsx index fe598bf6..5726fe11 100644 --- a/src/app/organisms/room/RoomViewContent.jsx +++ b/src/app/organisms/room/RoomViewContent.jsx @@ -486,7 +486,6 @@ function RoomViewContent({ roomInputRef, eventId, roomTimeline }) { }, [newEvent]); useResizeObserver( - roomInputRef.current, useCallback((entries) => { if (!roomInputRef.current) return; const editorBaseEntry = getResizeObserverEntry(roomInputRef.current, entries); @@ -497,7 +496,8 @@ function RoomViewContent({ roomInputRef, eventId, roomTimeline }) { if (timelineScroll.bottom < 40 && !roomTimeline.canPaginateForward() && document.visibilityState === 'visible') { timelineScroll.scrollToBottom(); } - }, [roomInputRef]) + }, [roomInputRef]), + useCallback(() => roomInputRef.current, [roomInputRef]), ); const listenKeyboard = useCallback((event) => { diff --git a/src/app/organisms/room/RoomViewHeader.jsx b/src/app/organisms/room/RoomViewHeader.jsx index 46a6ba0e..6571241e 100644 --- a/src/app/organisms/room/RoomViewHeader.jsx +++ b/src/app/organisms/room/RoomViewHeader.jsx @@ -8,8 +8,11 @@ import { blurOnBubbling } from '../../atoms/button/script'; import initMatrix from '../../../client/initMatrix'; import cons from '../../../client/state/cons'; import navigation from '../../../client/state/navigation'; -import { toggleRoomSettings, openReusableContextMenu, openNavigation } from '../../../client/action/navigation'; -import { togglePeopleDrawer } from '../../../client/action/settings'; +import { + toggleRoomSettings, + openReusableContextMenu, + openNavigation, +} from '../../../client/action/navigation'; import colorMXID from '../../../util/colorMXID'; import { getEventCords } from '../../../util/common'; @@ -28,23 +31,26 @@ import VerticalMenuIC from '../../../../public/res/ic/outlined/vertical-menu.svg import BackArrowIC from '../../../../public/res/ic/outlined/chevron-left.svg'; import { useForceUpdate } from '../../hooks/useForceUpdate'; +import { useSetSetting } from '../../state/hooks/settings'; +import { settingsAtom } from '../../state/settings'; function RoomViewHeader({ roomId }) { const [, forceUpdate] = useForceUpdate(); const mx = initMatrix.matrixClient; const isDM = initMatrix.roomList.directs.has(roomId); const room = mx.getRoom(roomId); + const setPeopleDrawer = useSetSetting(settingsAtom, 'isPeopleDrawer'); let avatarSrc = room.getAvatarUrl(mx.baseUrl, 36, 36, 'crop'); - avatarSrc = isDM ? room.getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 36, 36, 'crop') : avatarSrc; + avatarSrc = isDM + ? room.getAvatarFallbackMember()?.getAvatarUrl(mx.baseUrl, 36, 36, 'crop') + : avatarSrc; const roomName = room.name; const roomHeaderBtnRef = useRef(null); useEffect(() => { const settingsToggle = (isVisibile) => { const rawIcon = roomHeaderBtnRef.current.lastElementChild; - rawIcon.style.transform = isVisibile - ? 'rotateX(180deg)' - : 'rotateX(0deg)'; + rawIcon.style.transform = isVisibile ? 'rotateX(180deg)' : 'rotateX(0deg)'; }; navigation.on(cons.events.navigation.ROOM_SETTINGS_TOGGLED, settingsToggle); return () => { @@ -66,11 +72,9 @@ function RoomViewHeader({ roomId }) { }, [roomId]); const openRoomOptions = (e) => { - openReusableContextMenu( - 'bottom', - getEventCords(e, '.ic-btn'), - (closeMenu) => , - ); + openReusableContextMenu('bottom', getEventCords(e, '.ic-btn'), (closeMenu) => ( + + )); }; return ( @@ -90,18 +94,34 @@ function RoomViewHeader({ roomId }) { > - {twemojify(roomName)} + + {twemojify(roomName)} + - {mx.isRoomEncrypted(roomId) === false && toggleRoomSettings(tabText.SEARCH)} tooltip="Search" src={SearchIC} />} - - toggleRoomSettings(tabText.MEMBERS)} tooltip="Members" src={UserIC} /> + {mx.isRoomEncrypted(roomId) === false && ( + toggleRoomSettings(tabText.SEARCH)} + tooltip="Search" + src={SearchIC} + /> + )} { + setPeopleDrawer((t) => !t); + }} + tooltip="People" + src={UserIC} /> + toggleRoomSettings(tabText.MEMBERS)} + tooltip="Members" + src={UserIC} + /> + ); } diff --git a/src/app/state/hooks/settings.ts b/src/app/state/hooks/settings.ts index 3f4dab60..43b56553 100644 --- a/src/app/state/hooks/settings.ts +++ b/src/app/state/hooks/settings.ts @@ -10,9 +10,9 @@ export const useSetSetting = ( ) => { const setterAtom = useMemo( () => - atom(null, (get, set, value) => { + atom Settings[K])>(null, (get, set, value) => { const s = { ...get(settingsAtom) }; - s[key] = value; + s[key] = typeof value === 'function' ? value(s[key]) : value; set(settingsAtom, s); }), [settingsAtom, key] @@ -24,11 +24,10 @@ export const useSetSetting = ( export const useSetting = ( settingsAtom: WritableAtom, key: K -): [Settings[K], SetAtom] => { +): [Settings[K], SetAtom Settings[K]), void>] => { const selector = useMemo(() => (s: Settings) => s[key], [key]); const setting = useAtomValue(selectAtom(settingsAtom, selector)); const setter = useSetSetting(settingsAtom, key); - return [setting, setter]; }; From b19e24838364aff27aa90fcdc6a704968363085a Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 23 Jun 2023 09:46:04 +1000 Subject: [PATCH 352/717] Fix member panel filter layout (#1307) * fix member panel filter layout * make member role text lowercase --- src/app/organisms/room/MembersDrawer.css.ts | 2 +- src/app/organisms/room/MembersDrawer.tsx | 98 ++++++++++----------- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/src/app/organisms/room/MembersDrawer.css.ts b/src/app/organisms/room/MembersDrawer.css.ts index 2718e92d..6d347bf1 100644 --- a/src/app/organisms/room/MembersDrawer.css.ts +++ b/src/app/organisms/room/MembersDrawer.css.ts @@ -41,7 +41,7 @@ export const DrawerScrollTop = style({ }); export const DrawerGroup = style({ - padding: `0 ${config.space.S100} 0 ${config.space.S300}`, + paddingLeft: config.space.S200, }); export const MembersGroup = style({ diff --git a/src/app/organisms/room/MembersDrawer.tsx b/src/app/organisms/room/MembersDrawer.tsx index d50c3666..680a4e9d 100644 --- a/src/app/organisms/room/MembersDrawer.tsx +++ b/src/app/organisms/room/MembersDrawer.tsx @@ -75,7 +75,7 @@ const useMembershipFilterMenu = (): MembershipFilter[] => { name: 'Joined', filterFn: MembershipFilters.filterJoined, - color: 'Surface', + color: 'Background', }, { name: 'Invited', @@ -131,11 +131,11 @@ const useSortFilterMenu = (): SortFilter[] => filterFn: SortFilters.filterDescending, }, { - name: 'Newest First', + name: 'New First', filterFn: SortFilters.filterNewestFirst, }, { - name: 'Oldest First', + name: 'Old First', filterFn: SortFilters.filterOldest, }, ], @@ -275,10 +275,9 @@ export function MembersDrawer({ room }: MembersDrawerProps) { - - - Filter - + + + {(open, setOpen) => ( { setFilter((f) => ({ ...f, membershipFilter: menuItem })); @@ -322,9 +322,9 @@ export function MembersDrawer({ room }: MembersDrawerProps) { ref={anchorRef} onClick={() => setOpen(!open)} variant={filter.membershipFilter.color} - radii="400" - outlined - after={} + size="400" + radii="300" + before={} > {filter.membershipFilter.name} @@ -337,7 +337,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { setOpen(!open)} - variant="Surface" - radii="400" - outlined - after={} + variant="Background" + size="400" + radii="300" + after={} > - {`Order: ${filter.sortFilter.name}`} + {filter.sortFilter.name} )} )} - - - Search - } - after={ - result && ( - 0 ? 'Success' : 'Critical'} - size="400" - radii="Pill" - onClick={() => { - if (searchInputRef.current) searchInputRef.current.value = ''; - resetSearch(); - }} - after={} - > - {`${result.items.length || 'No'} ${ - result.items.length === 1 ? 'Result' : 'Results' - }`} - - ) - } - /> + + } + after={ + result && ( + 0 ? 'Success' : 'Critical'} + size="400" + radii="Pill" + aria-pressed + onClick={() => { + if (searchInputRef.current) { + searchInputRef.current.value = ''; + searchInputRef.current.focus(); + } + resetSearch(); + }} + after={} + > + {`${result.items.length || 'No'} ${ + result.items.length === 1 ? 'Result' : 'Results' + }`} + + ) + } + /> + {!onTop && ( @@ -458,7 +458,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { ref={virtualizer.measureElement} key={`${room.roomId}-${vItem.index}`} className={classNames(css.MembersGroupLabel, css.DrawerVirtualItem)} - size="O400" + size="L400" > {tagOrMember.name} From b6283b3469707321430ba2d9820c9aaa07bf8049 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 25 Jun 2023 08:40:48 +0530 Subject: [PATCH 353/717] Update member drawer icons (#1312) * update folds * update member drawer icons --- package-lock.json | 8 ++++---- package.json | 2 +- src/app/organisms/room/MembersDrawer.css.ts | 2 +- src/app/organisms/room/MembersDrawer.tsx | 18 +++++++++++------- 4 files changed, 17 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index 61eebbf9..d5867ae1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -28,7 +28,7 @@ "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.2.1", + "folds": "1.3.0", "formik": "2.2.9", "html-react-parser": "3.0.4", "immer": "9.0.16", @@ -3271,9 +3271,9 @@ } }, "node_modules/folds": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/folds/-/folds-1.2.1.tgz", - "integrity": "sha512-BCV5oFCndiGFp1HyeSnbDKmTSbu1yfAtAIF6znPvLthuI/QG4516bBUr6+MyNUQWx/IAkj1bdQL/cdD+jEZWCw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/folds/-/folds-1.3.0.tgz", + "integrity": "sha512-Jcv6xN9woJWaTaATDGCD9xFqUhjuSw+afvChYoUt4UsAyY351hfpkGNYzglN+gA5fvJw6N9oa6Ogjj2p84kFfA==", "peerDependencies": { "@vanilla-extract/css": "^1.9.2", "@vanilla-extract/recipes": "^0.3.0", diff --git a/package.json b/package.json index beaae095..5eb3fa98 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.2.1", + "folds": "1.3.0", "formik": "2.2.9", "html-react-parser": "3.0.4", "immer": "9.0.16", diff --git a/src/app/organisms/room/MembersDrawer.css.ts b/src/app/organisms/room/MembersDrawer.css.ts index 6d347bf1..a1f4153e 100644 --- a/src/app/organisms/room/MembersDrawer.css.ts +++ b/src/app/organisms/room/MembersDrawer.css.ts @@ -19,7 +19,7 @@ export const MemberDrawerContentBase = style({ }); export const MemberDrawerContent = style({ - padding: `${config.space.S300} 0`, + padding: `${config.space.S200} 0`, }); const ScrollBtnAnime = keyframes({ diff --git a/src/app/organisms/room/MembersDrawer.tsx b/src/app/organisms/room/MembersDrawer.tsx index 680a4e9d..5712c66f 100644 --- a/src/app/organisms/room/MembersDrawer.tsx +++ b/src/app/organisms/room/MembersDrawer.tsx @@ -131,11 +131,11 @@ const useSortFilterMenu = (): SortFilter[] => filterFn: SortFilters.filterDescending, }, { - name: 'New First', + name: 'Newest', filterFn: SortFilters.filterNewestFirst, }, { - name: 'Old First', + name: 'Oldest', filterFn: SortFilters.filterOldest, }, ], @@ -254,6 +254,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { Invite Member @@ -275,8 +276,8 @@ export function MembersDrawer({ room }: MembersDrawerProps) { - - + + {(open, setOpen) => ( @@ -284,6 +285,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { open={open} position="Bottom" align="Start" + offset={4} content={ } + before={} > {filter.membershipFilter.name} @@ -338,6 +340,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { open={open} position="Bottom" align="End" + offset={4} content={ } + after={} > {filter.sortFilter.name} @@ -383,7 +386,6 @@ export function MembersDrawer({ room }: MembersDrawerProps) { )} - } after={ result && ( From f14d70ea3508a8467c0a27b9d61c8ab6661054ab Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 28 Jun 2023 17:27:28 +0530 Subject: [PATCH 354/717] fix msg event permission check (#1315) --- src/app/components/emoji-board/EmojiBoard.css.tsx | 2 +- src/app/hooks/usePowerLevels.ts | 2 +- src/app/organisms/room/RoomView.jsx | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/app/components/emoji-board/EmojiBoard.css.tsx b/src/app/components/emoji-board/EmojiBoard.css.tsx index adeb2500..ba4ca4e0 100644 --- a/src/app/components/emoji-board/EmojiBoard.css.tsx +++ b/src/app/components/emoji-board/EmojiBoard.css.tsx @@ -7,7 +7,7 @@ export const Base = style({ height: toRem(450), backgroundColor: color.Surface.Container, color: color.Surface.OnContainer, - border: `${config.borderWidth.B300} solid ${color.SurfaceVariant.ContainerLine}`, + border: `${config.borderWidth.B300} solid ${color.Surface.ContainerLine}`, borderRadius: config.radii.R400, boxShadow: config.shadow.E200, overflow: 'hidden', diff --git a/src/app/hooks/usePowerLevels.ts b/src/app/hooks/usePowerLevels.ts index 8f999d48..3ce75a2f 100644 --- a/src/app/hooks/usePowerLevels.ts +++ b/src/app/hooks/usePowerLevels.ts @@ -47,7 +47,7 @@ export function usePowerLevels(room: Room) { const canSendEvent = useCallback( (eventType: string | undefined, powerLevel: number) => { const { events, events_default: eventsDefault } = powerLevels; - if (events && eventType && typeof events[eventType] === 'string') { + if (events && eventType && typeof events[eventType] === 'number') { return powerLevel >= events[eventType]; } return powerLevel >= (eventsDefault ?? DefaultPowerLevels.eventsDefault); diff --git a/src/app/organisms/room/RoomView.jsx b/src/app/organisms/room/RoomView.jsx index 591fccea..9b3ae76f 100644 --- a/src/app/organisms/room/RoomView.jsx +++ b/src/app/organisms/room/RoomView.jsx @@ -2,6 +2,7 @@ import React, { useEffect, useRef } from 'react'; import PropTypes from 'prop-types'; import './RoomView.scss'; import { Text, config } from 'folds'; +import { EventType } from 'matrix-js-sdk'; import EventEmitter from 'events'; @@ -32,7 +33,9 @@ function RoomView({ room, roomTimeline, eventId }) { const tombstoneEvent = useStateEvent(room, StateEvent.RoomTombstone); const { getPowerLevel, canSendEvent } = usePowerLevels(room); const myUserId = mx.getUserId(); - const canMessage = myUserId ? canSendEvent(undefined, getPowerLevel(myUserId)) : false; + const canMessage = myUserId + ? canSendEvent(EventType.RoomMessage, getPowerLevel(myUserId)) + : false; useEffect(() => { const settingsToggle = (isVisible) => { From 1a37fd0ca463d00d70273ca2b2f32bc7b4d936de Mon Sep 17 00:00:00 2001 From: greentore <117551249+greentore@users.noreply.github.com> Date: Sun, 23 Jul 2023 10:11:36 +0200 Subject: [PATCH 355/717] Use sticker body for searching (#1347) --- src/app/components/emoji-board/EmojiBoard.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 4005234a..76c6f05d 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -598,7 +598,13 @@ export const NativeEmojiGroups = memo( ) ); -const getSearchListItemStr = (item: ExtendedPackImage | IEmoji) => `:${item.shortcode}:`; +const getSearchListItemStr = (item: ExtendedPackImage | IEmoji) => { + const shortcode = `:${item.shortcode}:`; + if ('body' in item) { + return [shortcode, item.body ?? '']; + } + return shortcode; +}; const SEARCH_OPTIONS: UseAsyncSearchOptions = { limit: 26, matchOptions: { From 053b80126239cc51679d7ece5b912af5fb68ddb8 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 23 Jul 2023 18:12:09 +1000 Subject: [PATCH 356/717] Fix editor custom html output (#1348) * replace paragraph with line breaks * stop sending plain msg as custom html * removes console log * fix false negative for sanitized customHtml * fix customHtmlEqualsPlainText doc --- src/app/components/editor/output.ts | 18 ++++++++++++++++-- src/app/organisms/room/RoomInput.tsx | 10 +++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 38c54499..5d0443fa 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -17,7 +17,7 @@ const textToCustomHtml = (node: FormattedText): string => { const elementToCustomHtml = (node: CustomElement, children: string): string => { switch (node.type) { case BlockType.Paragraph: - return `

${children}

`; + return `${children}
`; case BlockType.Heading: return `${children}`; case BlockType.CodeLine: @@ -25,7 +25,7 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { case BlockType.CodeBlock: return `
${children}
`; case BlockType.QuoteLine: - return `

${children}

`; + return `${children}
`; case BlockType.BlockQuote: return `
${children}
`; case BlockType.ListItem: @@ -93,3 +93,17 @@ export const toPlainText = (node: Descendant | Descendant[]): string => { const children = node.children.map((n) => toPlainText(n)).join(''); return elementToPlainText(node, children); }; + +/** + * Check if customHtml is equals to plainText + * by replacing `
` with `/n` in customHtml + * and sanitizing plainText before comparison + * because text are sanitized in customHtml + * @param customHtml string + * @param plain string + * @returns boolean + */ +export const customHtmlEqualsPlainText = (customHtml: string, plain: string): boolean => + customHtml.replace(//g, '\n') === sanitizeText(plain); + +export const trimCustomHtml = (customHtml: string) => customHtml.replace(/$/g, ''); diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index e869e16d..a50c8004 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -51,6 +51,8 @@ import { createEmoticonElement, moveCursor, resetEditorHistory, + customHtmlEqualsPlainText, + trimCustomHtml, } from '../../components/editor'; import { EmojiBoard, EmojiBoardTab } from '../../components/emoji-board'; import { UseStateProvider } from '../../components/UseStateProvider'; @@ -251,7 +253,7 @@ export const RoomInput = forwardRef( uploadBoardHandlers.current?.handleSend(); const plainText = toPlainText(editor.children).trim(); - const customHtml = toMatrixCustomHTML(editor.children); + const customHtml = trimCustomHtml(toMatrixCustomHTML(editor.children)); if (plainText === '') return; @@ -271,9 +273,11 @@ export const RoomInput = forwardRef( const content: IContent = { msgtype: MsgType.Text, body, - format: 'org.matrix.custom.html', - formatted_body: formattedBody, }; + if (replyDraft || !customHtmlEqualsPlainText(formattedBody, body)) { + content.format = 'org.matrix.custom.html'; + content.formatted_body = formattedBody; + } if (replyDraft) { content['m.relates_to'] = { 'm.in_reply_to': { From 3c60976efa3ae0d4ab3e93a114cb00401b60e92b Mon Sep 17 00:00:00 2001 From: greentore <117551249+greentore@users.noreply.github.com> Date: Mon, 24 Jul 2023 06:40:43 +0200 Subject: [PATCH 357/717] Passive private receipt support (#1108) Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- src/client/state/Notifications.js | 22 ++++++++++++---------- src/client/state/cons.js | 4 ++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index db4610a3..13dd3e17 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -383,17 +383,19 @@ class Notifications extends EventEmitter { }); this.matrixClient.on('Room.receipt', (mEvent, room) => { - if (mEvent.getType() === 'm.receipt') { - if (room.isSpaceRoom()) return; - const content = mEvent.getContent(); - const readedEventId = Object.keys(content)[0]; - const readerUserId = Object.keys(content[readedEventId]['m.read'])[0]; - if (readerUserId !== this.matrixClient.getUserId()) return; + if (mEvent.getType() !== 'm.receipt' || room.isSpaceRoom()) return; + const content = mEvent.getContent(); + const userId = this.matrixClient.getUserId(); - this.deleteNoti(room.roomId); - - this._deletePopupRoomNotis(room.roomId); - } + Object.keys(content).forEach((eventId) => { + Object.entries(content[eventId]).forEach(([receiptType, receipt]) => { + if (!cons.supportReceiptTypes.includes(receiptType)) return; + if (Object.keys(receipt || {}).includes(userId)) { + this.deleteNoti(room.roomId); + this._deletePopupRoomNotis(room.roomId); + } + }); + }); }); this.matrixClient.on('Room.myMembership', (room, membership) => { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 8d9fda54..873c4e33 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -19,6 +19,10 @@ const cons = { 'm.room.member', 'm.sticker', ], + supportReceiptTypes: [ + 'm.read', + 'm.read.private', + ], notifs: { DEFAULT: 'default', ALL_MESSAGES: 'all_messages', From 1adee07127f184dd024d235467732471f4a4f296 Mon Sep 17 00:00:00 2001 From: ts <124226059+uniformization@users.noreply.github.com> Date: Wed, 26 Jul 2023 20:55:10 -0700 Subject: [PATCH 358/717] Fix Profile Viewer text (#1357) If you only had a single session open, the Profile Viewer would've said "View 1 sessions" instead of "View 1 session." --- src/app/organisms/profile-viewer/ProfileViewer.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/profile-viewer/ProfileViewer.jsx b/src/app/organisms/profile-viewer/ProfileViewer.jsx index fec9189a..b6ce426e 100644 --- a/src/app/organisms/profile-viewer/ProfileViewer.jsx +++ b/src/app/organisms/profile-viewer/ProfileViewer.jsx @@ -137,7 +137,7 @@ function SessionInfo({ userId }) { onClick={() => setIsVisible(!isVisible)} iconSrc={isVisible ? ChevronBottomIC : ChevronRightIC} > - {`View ${devices?.length > 0 ? `${devices.length} ` : ''}sessions`} + {`View ${devices?.length > 0 ? `${devices.length} ${devices.length == 1 ? 'session' : 'sessions'}` : 'sessions'}`} {renderSessionChips()}
From 34b2901566bb49bdeab4cd6d3fb9dc7ee845279f Mon Sep 17 00:00:00 2001 From: greentore <117551249+greentore@users.noreply.github.com> Date: Thu, 3 Aug 2023 06:23:28 +0200 Subject: [PATCH 359/717] Prevent `manifest.json` from being inlined (#1359) * Disable asset inlining * Prevent `manifest.json` from being inlined * Update backtick to single quote in vite.config.js --------- Co-authored-by: Ajay Bura <32841439+ajbura@users.noreply.github.com> --- index.html | 2 +- vite.config.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/index.html b/index.html index 36c5740a..6bc955c1 100644 --- a/index.html +++ b/index.html @@ -27,7 +27,7 @@ - + diff --git a/vite.config.js b/vite.config.js index 6a443166..f09aa71e 100644 --- a/vite.config.js +++ b/vite.config.js @@ -21,10 +21,14 @@ const copyFiles = { src: 'config.json', dest: '', }, + { + src: 'public/manifest.json', + dest: '', + }, { src: 'public/res/android', dest: 'public/', - } + }, ], } From 47f6c44c17dcf2c03e3ce0cbd8fd352069560556 Mon Sep 17 00:00:00 2001 From: Emi Date: Fri, 1 Sep 2023 00:49:34 -0400 Subject: [PATCH 360/717] Fix permission detection for updating emojis (#1125) --- src/app/molecules/room-emojis/RoomEmojis.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/app/molecules/room-emojis/RoomEmojis.jsx b/src/app/molecules/room-emojis/RoomEmojis.jsx index 81cee0a8..94ae6107 100644 --- a/src/app/molecules/room-emojis/RoomEmojis.jsx +++ b/src/app/molecules/room-emojis/RoomEmojis.jsx @@ -80,8 +80,7 @@ function RoomEmojis({ roomId }) { const { usablePacks, createPack, deletePack } = useRoomPacks(room); - const myPowerlevel = room.getMember(mx.getUserId())?.powerLevel || 0; - const canChange = room.currentState.hasSufficientPowerLevelFor('state_default', myPowerlevel); + const canChange = room.currentState.maySendStateEvent('im.ponies.room_emote', mx.getUserId()); const handlePackCreate = (e) => { e.preventDefault(); From fcd7723f73f1e89f4ea9fabd6e0c03c4c8a4ffd4 Mon Sep 17 00:00:00 2001 From: Alliegaytor <61523203+Alliegaytor@users.noreply.github.com> Date: Sun, 24 Sep 2023 14:31:02 +1000 Subject: [PATCH 361/717] Fix notifications not displaying when document is not focused (#1425) Allows notifications from the active room while app is not focused (e.g. tabbed out) --- src/client/state/Notifications.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/client/state/Notifications.js b/src/client/state/Notifications.js index 13dd3e17..09fa240e 100644 --- a/src/client/state/Notifications.js +++ b/src/client/state/Notifications.js @@ -234,7 +234,7 @@ class Notifications extends EventEmitter { const actions = this.matrixClient.getPushActionsForEvent(mEvent); if (!actions?.notify) return; - if (navigation.selectedRoomId === room.roomId && document.visibilityState === 'visible') return; + if (navigation.selectedRoomId === room.roomId && document.hasFocus()) return; if (mEvent.isEncrypted()) { await mEvent.attemptDecryption(this.matrixClient.crypto); From 3a95d0da01c5c69d16fda6421188e1576ddae90b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 6 Oct 2023 13:44:06 +1100 Subject: [PATCH 362/717] Refactor timeline (#1346) * fix intersection & resize observer * add binary search util * add scroll info util * add virtual paginator hook - WIP * render timeline using paginator hook * add continuous pagination to fill timeline * add doc comments in virtual paginator hook * add scroll to element func in virtual paginator * extract timeline pagination login into hook * add sliding name for timeline messages - testing * scroll with live event * change message rending style * make message timestamp smaller * remove unused imports * add random number between util * add compact message component * add sanitize html types * fix sending alias in room mention * get room member display name util * add get room with canonical alias util * add sanitize html util * render custom html with new styles * fix linkifying link text * add reaction component * display message reactions in timeline * Change mention color * show edited message * add event sent by function factory * add functions to get emoji shortcode * add component for reaction msg * add tooltip for who has reacted * add message layouts & placeholder * fix reaction size * fix dark theme colors * add code highlight with prismjs * add options to configure spacing in msgs * render message reply * fix trim reply from body regex * fix crash when loading reply * fix reply hover style * decrypt event on timeline paginate * update custom html code style * remove console logs * fix virtual paginator scroll to func * fix virtual paginator scroll to types * add stop scroll for in view item options * fix virtual paginator out of range scroll to index * scroll to and highlight reply on click * fix reply hover style * make message avatar clickable * fix scrollTo issue in virtual paginator * load reply from fetch * import virtual paginator restore scroll * load timeline for specific event * Fix back pagination recalibration * fix reply min height * revert code block colors to secondary * stop sanitizing text in code block * add decrypt file util * add image media component * update folds * fix code block font style * add msg event type * add scale dimension util * strict msg layout type * add image renderer component * add message content fallback components * add message matrix event renderer components * render matrix event using hooks * add attachment component * add attachment content types * handle error when rendering image in timeline * add video component * render video * include blurhash in thumbnails * generate thumbnails for image message * fix reactToDom spoiler opts * add hooks for HTMLMediaElement * render audio file in timeline * add msg image content component * fix image content props * add video content component * render new image/video component in timeline * remove console.log * convert seconds to milliseconds in video info * add load thumbnail prop to video content component * add file saver types * add file header component * add file content component * render file in timeline * add media control component * render audio message in room timeline * remove moved components * safely load message reply * add media loading hook * update media control layout * add loading indication in audio component * fill audio play icon when playing audio * fix media expanding * add image viewer - WIP * add pan and zoom control to image viewer * add text based file viewer * add pdf viewer * add error handling in pdf viewer * add download btn to pdf viewer * fix file button spinner fill * fix file opens on re-render * add range slider in audio content player * render location in timeline * update folds * display membership event in timeline * make reactions toggle * render sticker messages in timeline * render room name, topic, avatar change and event * fix typos * update render state event type style * add room intro in start of timeline * add power levels context * fix wrong param passing in RoomView * fix sending typing notification in wrong room Slate onChange callback was not updating with react re-renders. * send typing status on key up * add typing indicator component * add typing member atom * display typing status in member drawer * add room view typing member component * display typing members in room view * remove old roomTimeline uses * add event readers hook * add latest event hook * display following members in room view * fetch event instead of event context for reply * fix typo in virtual paginator hook * add scroll to latest btn in timeline * change scroll to latest chip variant * destructure paginator object to improve perf * restore forward dir scroll in virtual paginator * run scroll to bottom in layout effect * display unread message indicator in timeline * make component for room timeline float * add timeline divider component * add day divider and format message time * apply message spacing to dividers * format date in room intro * send read receipt on message arrive * add event readers component * add reply, read receipt, source delete opt * bug fixes * update timeline on delete & show reason * fix empty reaction container style * show msg selection effect on msg option open * add report message options * add options to send quick reactions * add emoji board in message options * add reaction viewer * fix styles * show view reaction in msg options menu * fix spacing between two msg by same person * add option menu in other rendered event * handle m.room.encrypted messages * fix italic reply text overflow cut * handle encrypted sticker messages * remove console log * prevent message context menu with alt key pressed * make mentions clickable in messages * add options to show and hidden events in timeline * add option to disable media autoload * remove old emojiboard opener * add options to use system emoji * refresh timeline on reset * fix stuck typing member in member drawer --- .eslintrc.js | 3 + package-lock.json | 648 ++++++- package.json | 13 +- .../components/Pdf-viewer/PdfViewer.css.ts | 37 + src/app/components/Pdf-viewer/PdfViewer.tsx | 257 +++ src/app/components/Pdf-viewer/index.ts | 1 + src/app/components/editor/Editor.tsx | 5 +- src/app/components/editor/Elements.tsx | 12 +- .../autocomplete/RoomMentionAutocomplete.tsx | 7 +- src/app/components/emoji-board/EmojiBoard.tsx | 4 +- .../event-readers/EventReaders.css.ts | 21 + .../components/event-readers/EventReaders.tsx | 110 ++ src/app/components/event-readers/index.ts | 1 + .../image-viewer/ImageViewer.css.ts | 40 + .../components/image-viewer/ImageViewer.tsx | 95 + src/app/components/image-viewer/index.ts | 1 + src/app/components/media/Image.tsx | 9 + src/app/components/media/MediaControls.tsx | 27 + src/app/components/media/Video.tsx | 10 + src/app/components/media/index.ts | 3 + src/app/components/media/media.css.ts | 20 + .../message/MessageContentFallback.tsx | 66 + src/app/components/message/Reaction.css.ts | 75 + src/app/components/message/Reaction.tsx | 113 ++ src/app/components/message/Reply.css.ts | 25 + src/app/components/message/Reply.tsx | 100 + src/app/components/message/Time.tsx | 27 + .../message/attachment/Attachment.css.ts | 42 + .../message/attachment/Attachment.tsx | 44 + .../components/message/attachment/index.ts | 1 + src/app/components/message/index.ts | 7 + src/app/components/message/layout/Base.tsx | 25 + src/app/components/message/layout/Bubble.tsx | 18 + src/app/components/message/layout/Compact.tsx | 18 + src/app/components/message/layout/Modern.tsx | 18 + src/app/components/message/layout/index.ts | 4 + .../components/message/layout/layout.css.ts | 155 ++ .../placeholder/CompactPlaceholder.tsx | 22 + .../placeholder/DefaultPlaceholder.tsx | 25 + .../placeholder/LinePlaceholder.css.ts | 12 + .../message/placeholder/LinePlaceholder.tsx | 8 + .../components/message/placeholder/index.ts | 3 + src/app/components/room-intro/RoomIntro.tsx | 114 ++ src/app/components/room-intro/index.ts | 1 + .../components/text-viewer/TextViewer.css.ts | 37 + src/app/components/text-viewer/TextViewer.tsx | 69 + src/app/components/text-viewer/index.ts | 1 + .../typing-indicator/TypingIndicator.css.ts | 49 + .../typing-indicator/TypingIndicator.tsx | 21 + src/app/components/typing-indicator/index.ts | 1 + src/app/hooks/media/index.ts | 6 + src/app/hooks/media/useMediaLoading.ts | 51 + src/app/hooks/media/useMediaPlay.ts | 46 + .../hooks/media/useMediaPlayTimeCallback.ts | 24 + src/app/hooks/media/useMediaPlaybackRate.ts | 40 + src/app/hooks/media/useMediaSeek.ts | 51 + src/app/hooks/media/useMediaVolume.ts | 60 + src/app/hooks/useIntersectionObserver.ts | 2 + src/app/hooks/useMatrixEventRenderer.ts | 80 + src/app/hooks/useMemberEventParser.tsx | 218 +++ src/app/hooks/usePan.ts | 62 + src/app/hooks/usePowerLevels.ts | 43 +- src/app/hooks/useRelations.ts | 25 + src/app/hooks/useResizeObserver.ts | 2 + src/app/hooks/useRoomEventReaders.ts | 35 + src/app/hooks/useRoomLatestEvent.ts | 29 + src/app/hooks/useRoomMsgContentRenderer.ts | 68 + src/app/hooks/useVirtualPaginator.ts | 405 ++++ src/app/hooks/useZoom.ts | 26 + src/app/organisms/room/MembersDrawer.tsx | 33 +- src/app/organisms/room/Room.jsx | 79 - src/app/organisms/room/Room.tsx | 46 + src/app/organisms/room/RoomInput.tsx | 31 +- src/app/organisms/room/RoomTimeline.css.ts | 30 + src/app/organisms/room/RoomTimeline.tsx | 1689 +++++++++++++++++ src/app/organisms/room/RoomView.jsx | 39 +- .../organisms/room/RoomViewFollowing.css.ts | 31 + src/app/organisms/room/RoomViewFollowing.tsx | 141 ++ src/app/organisms/room/RoomViewTyping.css.ts | 24 + src/app/organisms/room/RoomViewTyping.tsx | 102 + .../organisms/room/message/AudioContent.tsx | 192 ++ .../room/message/EncryptedContent.tsx | 22 + .../organisms/room/message/EventContent.tsx | 37 + .../organisms/room/message/FileContent.tsx | 250 +++ src/app/organisms/room/message/FileHeader.tsx | 22 + .../organisms/room/message/ImageContent.tsx | 170 ++ src/app/organisms/room/message/Message.tsx | 993 ++++++++++ src/app/organisms/room/message/Reactions.tsx | 133 ++ .../organisms/room/message/StickerContent.tsx | 41 + .../organisms/room/message/VideoContent.tsx | 176 ++ .../organisms/room/message/fileRenderer.tsx | 45 + src/app/organisms/room/message/index.ts | 10 + src/app/organisms/room/message/styles.css.ts | 72 + src/app/organisms/room/message/util.ts | 23 + src/app/organisms/room/msgContent.ts | 30 +- .../reaction-viewer/ReactionViewer.css.ts | 31 + .../room/reaction-viewer/ReactionViewer.tsx | 155 ++ .../organisms/room/reaction-viewer/index.ts | 1 + src/app/organisms/settings/Settings.jsx | 84 +- src/app/plugins/emoji.ts | 14 +- src/app/plugins/pdfjs-dist.ts | 47 + src/app/plugins/react-custom-html-parser.tsx | 274 +++ src/app/plugins/react-prism/ReactPrism.css | 97 + src/app/plugins/react-prism/ReactPrism.tsx | 35 + src/app/state/settings.ts | 17 +- src/app/state/typingMembers.ts | 70 + .../CustomHtml.css.ts} | 86 +- src/app/templates/client/Client.jsx | 21 +- src/app/templates/client/ClientContent.jsx | 49 + src/app/utils/blurHash.ts | 8 +- src/app/utils/common.ts | 47 + src/app/utils/dom.ts | 59 +- src/app/utils/matrix.ts | 50 +- src/app/utils/mimeTypes.ts | 65 +- src/app/utils/room.ts | 34 + src/app/utils/sanitize.ts | 142 ++ src/app/utils/time.ts | 35 + src/client/state/settings.js | 3 + src/ext.d.ts | 5 + src/index.scss | 16 +- src/types/matrix/common.ts | 60 +- src/types/matrix/room.ts | 27 + tsconfig.json | 1 + vite.config.js | 4 + 124 files changed, 9438 insertions(+), 258 deletions(-) create mode 100644 src/app/components/Pdf-viewer/PdfViewer.css.ts create mode 100644 src/app/components/Pdf-viewer/PdfViewer.tsx create mode 100644 src/app/components/Pdf-viewer/index.ts create mode 100644 src/app/components/event-readers/EventReaders.css.ts create mode 100644 src/app/components/event-readers/EventReaders.tsx create mode 100644 src/app/components/event-readers/index.ts create mode 100644 src/app/components/image-viewer/ImageViewer.css.ts create mode 100644 src/app/components/image-viewer/ImageViewer.tsx create mode 100644 src/app/components/image-viewer/index.ts create mode 100644 src/app/components/media/Image.tsx create mode 100644 src/app/components/media/MediaControls.tsx create mode 100644 src/app/components/media/Video.tsx create mode 100644 src/app/components/media/index.ts create mode 100644 src/app/components/media/media.css.ts create mode 100644 src/app/components/message/MessageContentFallback.tsx create mode 100644 src/app/components/message/Reaction.css.ts create mode 100644 src/app/components/message/Reaction.tsx create mode 100644 src/app/components/message/Reply.css.ts create mode 100644 src/app/components/message/Reply.tsx create mode 100644 src/app/components/message/Time.tsx create mode 100644 src/app/components/message/attachment/Attachment.css.ts create mode 100644 src/app/components/message/attachment/Attachment.tsx create mode 100644 src/app/components/message/attachment/index.ts create mode 100644 src/app/components/message/index.ts create mode 100644 src/app/components/message/layout/Base.tsx create mode 100644 src/app/components/message/layout/Bubble.tsx create mode 100644 src/app/components/message/layout/Compact.tsx create mode 100644 src/app/components/message/layout/Modern.tsx create mode 100644 src/app/components/message/layout/index.ts create mode 100644 src/app/components/message/layout/layout.css.ts create mode 100644 src/app/components/message/placeholder/CompactPlaceholder.tsx create mode 100644 src/app/components/message/placeholder/DefaultPlaceholder.tsx create mode 100644 src/app/components/message/placeholder/LinePlaceholder.css.ts create mode 100644 src/app/components/message/placeholder/LinePlaceholder.tsx create mode 100644 src/app/components/message/placeholder/index.ts create mode 100644 src/app/components/room-intro/RoomIntro.tsx create mode 100644 src/app/components/room-intro/index.ts create mode 100644 src/app/components/text-viewer/TextViewer.css.ts create mode 100644 src/app/components/text-viewer/TextViewer.tsx create mode 100644 src/app/components/text-viewer/index.ts create mode 100644 src/app/components/typing-indicator/TypingIndicator.css.ts create mode 100644 src/app/components/typing-indicator/TypingIndicator.tsx create mode 100644 src/app/components/typing-indicator/index.ts create mode 100644 src/app/hooks/media/index.ts create mode 100644 src/app/hooks/media/useMediaLoading.ts create mode 100644 src/app/hooks/media/useMediaPlay.ts create mode 100644 src/app/hooks/media/useMediaPlayTimeCallback.ts create mode 100644 src/app/hooks/media/useMediaPlaybackRate.ts create mode 100644 src/app/hooks/media/useMediaSeek.ts create mode 100644 src/app/hooks/media/useMediaVolume.ts create mode 100644 src/app/hooks/useMatrixEventRenderer.ts create mode 100644 src/app/hooks/useMemberEventParser.tsx create mode 100644 src/app/hooks/usePan.ts create mode 100644 src/app/hooks/useRelations.ts create mode 100644 src/app/hooks/useRoomEventReaders.ts create mode 100644 src/app/hooks/useRoomLatestEvent.ts create mode 100644 src/app/hooks/useRoomMsgContentRenderer.ts create mode 100644 src/app/hooks/useVirtualPaginator.ts create mode 100644 src/app/hooks/useZoom.ts delete mode 100644 src/app/organisms/room/Room.jsx create mode 100644 src/app/organisms/room/Room.tsx create mode 100644 src/app/organisms/room/RoomTimeline.css.ts create mode 100644 src/app/organisms/room/RoomTimeline.tsx create mode 100644 src/app/organisms/room/RoomViewFollowing.css.ts create mode 100644 src/app/organisms/room/RoomViewFollowing.tsx create mode 100644 src/app/organisms/room/RoomViewTyping.css.ts create mode 100644 src/app/organisms/room/RoomViewTyping.tsx create mode 100644 src/app/organisms/room/message/AudioContent.tsx create mode 100644 src/app/organisms/room/message/EncryptedContent.tsx create mode 100644 src/app/organisms/room/message/EventContent.tsx create mode 100644 src/app/organisms/room/message/FileContent.tsx create mode 100644 src/app/organisms/room/message/FileHeader.tsx create mode 100644 src/app/organisms/room/message/ImageContent.tsx create mode 100644 src/app/organisms/room/message/Message.tsx create mode 100644 src/app/organisms/room/message/Reactions.tsx create mode 100644 src/app/organisms/room/message/StickerContent.tsx create mode 100644 src/app/organisms/room/message/VideoContent.tsx create mode 100644 src/app/organisms/room/message/fileRenderer.tsx create mode 100644 src/app/organisms/room/message/index.ts create mode 100644 src/app/organisms/room/message/styles.css.ts create mode 100644 src/app/organisms/room/message/util.ts create mode 100644 src/app/organisms/room/reaction-viewer/ReactionViewer.css.ts create mode 100644 src/app/organisms/room/reaction-viewer/ReactionViewer.tsx create mode 100644 src/app/organisms/room/reaction-viewer/index.ts create mode 100644 src/app/plugins/pdfjs-dist.ts create mode 100644 src/app/plugins/react-custom-html-parser.tsx create mode 100644 src/app/plugins/react-prism/ReactPrism.css create mode 100644 src/app/plugins/react-prism/ReactPrism.tsx create mode 100644 src/app/state/typingMembers.ts rename src/app/{components/editor/Elements.css.ts => styles/CustomHtml.css.ts} (59%) create mode 100644 src/app/templates/client/ClientContent.jsx create mode 100644 src/app/utils/time.ts diff --git a/.eslintrc.js b/.eslintrc.js index 70437418..36101fbe 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -20,6 +20,9 @@ module.exports = { ecmaVersion: 'latest', sourceType: 'module', }, + "globals": { + JSX: "readonly" + }, plugins: [ 'react', '@typescript-eslint' diff --git a/package-lock.json b/package-lock.json index d5867ae1..6f00efe8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,22 +23,26 @@ "browser-encrypt-attachment": "0.3.0", "classnames": "2.3.2", "dateformat": "5.0.3", + "dayjs": "1.11.10", "emojibase": "6.1.0", "emojibase-data": "7.0.1", "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.3.0", + "folds": "1.5.0", "formik": "2.2.9", - "html-react-parser": "3.0.4", + "html-react-parser": "4.2.0", "immer": "9.0.16", "is-hotkey": "0.2.0", "jotai": "1.12.0", "katex": "0.16.4", "linkify-html": "4.0.2", + "linkify-react": "4.1.1", "linkifyjs": "4.0.2", "matrix-js-sdk": "24.1.0", "millify": "6.1.0", + "pdfjs-dist": "3.10.111", + "prismjs": "1.29.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -46,8 +50,10 @@ "react-dnd": "15.1.2", "react-dnd-html5-backend": "15.1.3", "react-dom": "17.0.2", + "react-error-boundary": "4.0.10", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", + "react-range": "1.8.14", "sanitize-html": "2.8.0", "slate": "0.90.0", "slate-history": "0.93.0", @@ -60,9 +66,12 @@ "@esbuild-plugins/node-globals-polyfill": "0.2.3", "@rollup/plugin-inject": "5.0.3", "@rollup/plugin-wasm": "6.1.1", + "@types/file-saver": "2.0.5", "@types/node": "18.11.18", + "@types/prismjs": "1.26.0", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", + "@types/sanitize-html": "2.9.0", "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", @@ -963,6 +972,41 @@ "react-dom": "16.14.0" } }, + "node_modules/@mapbox/node-pre-gyp": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz", + "integrity": "sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "https-proxy-agent": "^5.0.0", + "make-dir": "^3.1.0", + "node-fetch": "^2.6.7", + "nopt": "^5.0.0", + "npmlog": "^5.0.1", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.11" + }, + "bin": { + "node-pre-gyp": "bin/node-pre-gyp" + } + }, + "node_modules/@mapbox/node-pre-gyp/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@matrix-org/matrix-sdk-crypto-js": { "version": "0.1.0-alpha.5", "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-js/-/matrix-sdk-crypto-js-0.1.0-alpha.5.tgz", @@ -1155,6 +1199,12 @@ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, + "node_modules/@types/file-saver": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.5.tgz", + "integrity": "sha512-zv9kNf3keYegP5oThGLaPk8E081DFDuwfqjtiTzm6PoxChdJ1raSuADf2YGCVIyrSynLrgc8JWv296s7Q7pQSQ==", + "dev": true + }, "node_modules/@types/is-hotkey": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/@types/is-hotkey/-/is-hotkey-0.1.7.tgz", @@ -1183,6 +1233,12 @@ "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==", "dev": true }, + "node_modules/@types/prismjs": { + "version": "1.26.0", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.0.tgz", + "integrity": "sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==", + "dev": true + }, "node_modules/@types/prop-types": { "version": "15.7.5", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", @@ -1212,6 +1268,15 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/sanitize-html": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@types/sanitize-html/-/sanitize-html-2.9.0.tgz", + "integrity": "sha512-4fP/kEcKNj2u39IzrxWYuf/FnCCwwQCpif6wwY6ROUS1EPRIfWJjGkY3HIowY1EX/VbX5e86yq8AAE7UPMgATg==", + "dev": true, + "dependencies": { + "htmlparser2": "^8.0.0" + } + }, "node_modules/@types/scheduler": { "version": "0.16.2", "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", @@ -1644,6 +1709,12 @@ "vite": "^4.0.0" } }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "optional": true + }, "node_modules/acorn": { "version": "8.8.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", @@ -1665,6 +1736,18 @@ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "optional": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/ahocorasick": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/ahocorasick/-/ahocorasick-1.0.2.tgz", @@ -1723,6 +1806,25 @@ "node": ">= 8" } }, + "node_modules/aproba": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", + "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", + "optional": true + }, + "node_modules/are-we-there-yet": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz", + "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==", + "optional": true, + "dependencies": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -1862,7 +1964,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "devOptional": true }, "node_modules/base-x": { "version": "4.0.0", @@ -1907,7 +2009,7 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, + "devOptional": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2026,6 +2128,21 @@ } ] }, + "node_modules/canvas": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz", + "integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "@mapbox/node-pre-gyp": "^1.0.0", + "nan": "^2.17.0", + "simple-get": "^3.0.3" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -2078,6 +2195,15 @@ "node": ">= 6" } }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "optional": true, + "engines": { + "node": ">=10" + } + }, "node_modules/classnames": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz", @@ -2109,6 +2235,15 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "optional": true, + "bin": { + "color-support": "bin.js" + } + }, "node_modules/compute-scroll-into-view": { "version": "1.0.20", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", @@ -2123,7 +2258,7 @@ "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "devOptional": true }, "node_modules/confusing-browser-globals": { "version": "1.0.11", @@ -2131,6 +2266,12 @@ "integrity": "sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==", "dev": true }, + "node_modules/console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", + "optional": true + }, "node_modules/content-type": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", @@ -2218,6 +2359,11 @@ "node": ">=12.20" } }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -2234,6 +2380,18 @@ } } }, + "node_modules/decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "optional": true, + "dependencies": { + "mimic-response": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/deep-is": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", @@ -2269,6 +2427,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", + "optional": true + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "optional": true, + "engines": { + "node": ">=8" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -2354,13 +2527,13 @@ } }, "node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" @@ -2399,9 +2572,9 @@ } }, "node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "engines": { "node": ">=0.12" }, @@ -3215,21 +3388,6 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/flatted": { "version": "3.2.7", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", @@ -3271,9 +3429,9 @@ } }, "node_modules/folds": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/folds/-/folds-1.3.0.tgz", - "integrity": "sha512-Jcv6xN9woJWaTaATDGCD9xFqUhjuSw+afvChYoUt4UsAyY351hfpkGNYzglN+gA5fvJw6N9oa6Ogjj2p84kFfA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/folds/-/folds-1.5.0.tgz", + "integrity": "sha512-1QNHzD57OxFZT5SOe0nWcrKQvWmfMRv1f5sTF8xhGtwx9rajjv36T9SwCcj9Fh58PbERqOdBiwvpdhu+BQTVjg==", "peerDependencies": { "@vanilla-extract/css": "^1.9.2", "@vanilla-extract/recipes": "^0.3.0", @@ -3326,11 +3484,35 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "devOptional": true }, "node_modules/fsevents": { "version": "2.3.2", @@ -3379,6 +3561,26 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gauge": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz", + "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==", + "optional": true, + "dependencies": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.2", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.1", + "object-assign": "^4.1.1", + "signal-exit": "^3.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.2" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -3429,7 +3631,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, + "devOptional": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3576,6 +3778,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", + "optional": true + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -3585,23 +3793,41 @@ } }, "node_modules/html-dom-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-3.1.2.tgz", - "integrity": "sha512-mLTtl3pVn3HnqZSZzW3xVs/mJAKrG1yIw3wlp+9bdoZHHLaBRvELdpfShiPVLyjPypq1Fugv2KMDoGHW4lVXnw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-dom-parser/-/html-dom-parser-4.0.0.tgz", + "integrity": "sha512-TUa3wIwi80f5NF8CVWzkopBVqVAtlawUzJoLwVLHns0XSJGynss4jiY0mTWpiDOsuyw+afP+ujjMgRh9CoZcXw==", "dependencies": { "domhandler": "5.0.3", - "htmlparser2": "8.0.1" + "htmlparser2": "9.0.0" + } + }, + "node_modules/html-dom-parser/node_modules/htmlparser2": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.0.0.tgz", + "integrity": "sha512-uxbSI98wmFT/G4P2zXx4OVx04qWUmyFPrD2/CNepa2Zo3GPNaCaaxElDgwUrwYWkK1nr9fft0Ya8dws8coDLLQ==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" } }, "node_modules/html-react-parser": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-3.0.4.tgz", - "integrity": "sha512-va68PSmC7uA6PbOEc9yuw5Mu3OHPXmFKUpkLGvUPdTuNrZ0CJZk1s/8X/FaHjswK/6uZghu2U02tJjussT8+uw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/html-react-parser/-/html-react-parser-4.2.0.tgz", + "integrity": "sha512-gzU55AS+FI6qD7XaKe5BLuLFM2Xw0/LodfMWZlxV9uOHe7LCD5Lukx/EgYuBI3c0kLu0XlgFXnSzO0qUUn3Vrg==", "dependencies": { "domhandler": "5.0.3", - "html-dom-parser": "3.1.2", + "html-dom-parser": "4.0.0", "react-property": "2.0.0", - "style-to-js": "1.1.1" + "style-to-js": "1.1.3" }, "peerDependencies": { "react": "0.14 || 15 || 16 || 17 || 18" @@ -3625,6 +3851,19 @@ "entities": "^4.3.0" } }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "optional": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -3698,7 +3937,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, + "devOptional": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3708,7 +3947,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "devOptional": true }, "node_modules/inline-style-parser": { "version": "0.1.1", @@ -4192,6 +4431,15 @@ "linkifyjs": "^4.0.0" } }, + "node_modules/linkify-react": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/linkify-react/-/linkify-react-4.1.1.tgz", + "integrity": "sha512-2K9Y1cUdvq40dFWqCJ//X+WP19nlzIVITFGI93RjLnA0M7KbnxQ/ffC3AZIZaEIrLangF9Hjt3i0GQ9/anEG5A==", + "peerDependencies": { + "linkifyjs": "^4.0.0", + "react": ">= 15.0.0" + } + }, "node_modules/linkifyjs": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.0.2.tgz", @@ -4254,7 +4502,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -4274,6 +4522,21 @@ "node": ">=12" } }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "optional": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/matrix-events-sdk": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz", @@ -4351,6 +4614,18 @@ "millify": "bin/millify" } }, + "node_modules/mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "optional": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/mini-svg-data-uri": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", @@ -4364,7 +4639,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, + "devOptional": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -4381,11 +4656,63 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "optional": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "optional": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "optional": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/nan": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz", + "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==", + "optional": true + }, "node_modules/nanoid": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", @@ -4439,6 +4766,21 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "optional": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -4448,6 +4790,18 @@ "node": ">=0.10.0" } }, + "node_modules/npmlog": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz", + "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==", + "optional": true, + "dependencies": { + "are-we-there-yet": "^2.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^3.0.0", + "set-blocking": "^2.0.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -4557,7 +4911,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, + "devOptional": true, "dependencies": { "wrappy": "1" } @@ -4653,7 +5007,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -4682,6 +5036,27 @@ "node": ">=8" } }, + "node_modules/path2d-polyfill": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", + "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pdfjs-dist": { + "version": "3.10.111", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.10.111.tgz", + "integrity": "sha512-+SXXGN/3YTNQSK5Ae7EyqQuR+4IAsNunJq/Us5ByOkRJ45qBXXOwkiWi3RIDU+CyF+ak5eSWXl2FQW2PKBrsRA==", + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "canvas": "^2.11.2", + "path2d-polyfill": "^2.0.1" + } + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -4778,6 +5153,14 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, "node_modules/promise": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", @@ -4922,6 +5305,17 @@ "react": "17.0.2" } }, + "node_modules/react-error-boundary": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/react-error-boundary/-/react-error-boundary-4.0.10.tgz", + "integrity": "sha512-pvVKdi77j2OoPHo+p3rorgE43OjDWiqFkaqkJz8sJKK6uf/u8xtzuaVfj5qJ2JnDLIgF1De3zY5AJDijp+LVPA==", + "dependencies": { + "@babel/runtime": "^7.12.5" + }, + "peerDependencies": { + "react": ">=16.13.1" + } + }, "node_modules/react-fast-compare": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-2.0.4.tgz", @@ -4972,6 +5366,15 @@ "resolved": "https://registry.npmjs.org/react-property/-/react-property-2.0.0.tgz", "integrity": "sha512-kzmNjIgU32mO4mmH5+iUyrqlpFQhF8K2k7eZ4fdLSOPFrD1XgEuSBv9LDEgxRXTMBqMd8ppT0x6TIzqE5pdGdw==" }, + "node_modules/react-range": { + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/react-range/-/react-range-1.8.14.tgz", + "integrity": "sha512-v2nyD5106rHf9dwHzq+WRlhCes83h1wJRHIMFjbZsYYsO6LF4mG/mR3cH7Cf+dkeHq65DItuqIbLn/3jjYjsHg==", + "peerDependencies": { + "react": "^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0", + "react-dom": "^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0" + } + }, "node_modules/react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -4981,6 +5384,20 @@ "node": ">=0.10.0" } }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -5090,6 +5507,21 @@ "node": ">=0.10.0" } }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "devOptional": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/rollup": { "version": "3.25.1", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.1.tgz", @@ -5129,6 +5561,26 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, "node_modules/safe-regex-test": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", @@ -5225,6 +5677,12 @@ "semver": "bin/semver.js" } }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "optional": true + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -5265,6 +5723,43 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "optional": true + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/simple-get": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz", + "integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==", + "optional": true, + "dependencies": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -5329,6 +5824,15 @@ "node": ">=0.10.0" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -5427,17 +5931,17 @@ } }, "node_modules/style-to-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.1.tgz", - "integrity": "sha512-RJ18Z9t2B02sYhZtfWKQq5uplVctgvjTfLWT7+Eb1zjUjIrWzX5SdlkwLGQozrqarTmEzJJ/YmdNJCUNI47elg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/style-to-js/-/style-to-js-1.1.3.tgz", + "integrity": "sha512-zKI5gN/zb7LS/Vm0eUwjmjrXWw8IMtyA8aPBJZdYiQTXj4+wQ3IucOLIOnF7zCHxvW8UhIGh/uZh/t9zEHXNTQ==", "dependencies": { - "style-to-object": "0.3.0" + "style-to-object": "0.4.1" } }, "node_modules/style-to-object": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz", - "integrity": "sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.1.tgz", + "integrity": "sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw==", "dependencies": { "inline-style-parser": "0.1.1" } @@ -5470,6 +5974,23 @@ "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.0.1.tgz", "integrity": "sha512-SYJSIgeyXW7EuX1ytdneO5e8jip42oHWg9xl/o3oTYhmXusZVgiA+VlPvjIN+kHii9v90AmzTZEBcsEvuAY+TA==" }, + "node_modules/tar": { + "version": "6.1.15", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz", + "integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==", + "optional": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", @@ -5696,6 +6217,12 @@ "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "optional": true + }, "node_modules/uuid": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", @@ -6247,6 +6774,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "optional": true, + "dependencies": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -6306,7 +6842,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "devOptional": true }, "node_modules/y18n": { "version": "5.0.8", @@ -6320,7 +6856,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "devOptional": true }, "node_modules/yaml": { "version": "1.10.2", diff --git a/package.json b/package.json index 5eb3fa98..83850a80 100644 --- a/package.json +++ b/package.json @@ -33,22 +33,26 @@ "browser-encrypt-attachment": "0.3.0", "classnames": "2.3.2", "dateformat": "5.0.3", + "dayjs": "1.11.10", "emojibase": "6.1.0", "emojibase-data": "7.0.1", "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.3.0", + "folds": "1.5.0", "formik": "2.2.9", - "html-react-parser": "3.0.4", + "html-react-parser": "4.2.0", "immer": "9.0.16", "is-hotkey": "0.2.0", "jotai": "1.12.0", "katex": "0.16.4", "linkify-html": "4.0.2", + "linkify-react": "4.1.1", "linkifyjs": "4.0.2", "matrix-js-sdk": "24.1.0", "millify": "6.1.0", + "pdfjs-dist": "3.10.111", + "prismjs": "1.29.0", "prop-types": "15.8.1", "react": "17.0.2", "react-autosize-textarea": "7.1.0", @@ -56,8 +60,10 @@ "react-dnd": "15.1.2", "react-dnd-html5-backend": "15.1.3", "react-dom": "17.0.2", + "react-error-boundary": "4.0.10", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", + "react-range": "1.8.14", "sanitize-html": "2.8.0", "slate": "0.90.0", "slate-history": "0.93.0", @@ -70,9 +76,12 @@ "@esbuild-plugins/node-globals-polyfill": "0.2.3", "@rollup/plugin-inject": "5.0.3", "@rollup/plugin-wasm": "6.1.1", + "@types/file-saver": "2.0.5", "@types/node": "18.11.18", + "@types/prismjs": "1.26.0", "@types/react": "18.0.26", "@types/react-dom": "18.0.9", + "@types/sanitize-html": "2.9.0", "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", diff --git a/src/app/components/Pdf-viewer/PdfViewer.css.ts b/src/app/components/Pdf-viewer/PdfViewer.css.ts new file mode 100644 index 00000000..46551098 --- /dev/null +++ b/src/app/components/Pdf-viewer/PdfViewer.css.ts @@ -0,0 +1,37 @@ +import { style } from '@vanilla-extract/css'; +import { DefaultReset, color, config } from 'folds'; + +export const PdfViewer = style([ + DefaultReset, + { + height: '100%', + }, +]); + +export const PdfViewerHeader = style([ + DefaultReset, + { + paddingLeft: config.space.S200, + paddingRight: config.space.S200, + borderBottomWidth: config.borderWidth.B300, + flexShrink: 0, + gap: config.space.S200, + }, +]); +export const PdfViewerFooter = style([ + PdfViewerHeader, + { + borderTopWidth: config.borderWidth.B300, + borderBottomWidth: 0, + }, +]); + +export const PdfViewerContent = style([ + DefaultReset, + { + margin: 'auto', + display: 'inline-block', + backgroundColor: color.Surface.Container, + color: color.Surface.OnContainer, + }, +]); diff --git a/src/app/components/Pdf-viewer/PdfViewer.tsx b/src/app/components/Pdf-viewer/PdfViewer.tsx new file mode 100644 index 00000000..c440cce9 --- /dev/null +++ b/src/app/components/Pdf-viewer/PdfViewer.tsx @@ -0,0 +1,257 @@ +/* eslint-disable no-param-reassign */ +/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ +import React, { FormEventHandler, useEffect, useRef, useState } from 'react'; +import classNames from 'classnames'; +import { + Box, + Button, + Chip, + Header, + Icon, + IconButton, + Icons, + Input, + Menu, + PopOut, + Scroll, + Spinner, + Text, + as, + config, +} from 'folds'; +import FocusTrap from 'focus-trap-react'; +import FileSaver from 'file-saver'; +import * as css from './PdfViewer.css'; +import { AsyncStatus } from '../../hooks/useAsyncCallback'; +import { useZoom } from '../../hooks/useZoom'; +import { createPage, usePdfDocumentLoader, usePdfJSLoader } from '../../plugins/pdfjs-dist'; + +export type PdfViewerProps = { + name: string; + src: string; + requestClose: () => void; +}; + +export const PdfViewer = as<'div', PdfViewerProps>( + ({ className, name, src, requestClose, ...props }, ref) => { + const containerRef = useRef(null); + const scrollRef = useRef(null); + const { zoom, zoomIn, zoomOut, setZoom } = useZoom(0.2); + + const [pdfJSState, loadPdfJS] = usePdfJSLoader(); + const [docState, loadPdfDocument] = usePdfDocumentLoader( + pdfJSState.status === AsyncStatus.Success ? pdfJSState.data : undefined, + src + ); + const isLoading = + pdfJSState.status === AsyncStatus.Loading || docState.status === AsyncStatus.Loading; + const isError = + pdfJSState.status === AsyncStatus.Error || docState.status === AsyncStatus.Error; + const [pageNo, setPageNo] = useState(1); + const [openJump, setOpenJump] = useState(false); + + useEffect(() => { + loadPdfJS(); + }, [loadPdfJS]); + useEffect(() => { + if (pdfJSState.status === AsyncStatus.Success) { + loadPdfDocument(); + } + }, [pdfJSState, loadPdfDocument]); + + useEffect(() => { + if (docState.status === AsyncStatus.Success) { + const doc = docState.data; + if (pageNo < 0 || pageNo > doc.numPages) return; + createPage(doc, pageNo, { scale: zoom }).then((canvas) => { + const container = containerRef.current; + if (!container) return; + container.textContent = ''; + container.append(canvas); + scrollRef.current?.scrollTo({ + top: 0, + }); + }); + } + }, [docState, pageNo, zoom]); + + const handleDownload = () => { + FileSaver.saveAs(src, name); + }; + + const handleJumpSubmit: FormEventHandler = (evt) => { + evt.preventDefault(); + if (docState.status !== AsyncStatus.Success) return; + const jumpInput = evt.currentTarget.jumpInput as HTMLInputElement; + if (!jumpInput) return; + const jumpTo = parseInt(jumpInput.value, 10); + setPageNo(Math.max(1, Math.min(docState.data.numPages, jumpTo))); + setOpenJump(false); + }; + + const handlePrevPage = () => { + setPageNo((n) => Math.max(n - 1, 1)); + }; + + const handleNextPage = () => { + if (docState.status !== AsyncStatus.Success) return; + setPageNo((n) => Math.min(n + 1, docState.data.numPages)); + }; + + return ( + +
+ + + + + + {name} + + + + + + + setZoom(zoom === 1 ? 2 : 1)}> + {Math.round(zoom * 100)}% + + 1 ? 'Success' : 'SurfaceVariant'} + outlined={zoom > 1} + size="300" + radii="Pill" + onClick={zoomIn} + aria-label="Zoom In" + > + + + } + > + Download + + +
+ + {isLoading && } + {isError && ( + <> + Failed to load PDF + + + )} + {docState.status === AsyncStatus.Success && ( + + +
+ + + )} + + {docState.status === AsyncStatus.Success && ( +
+ } + onClick={handlePrevPage} + aria-disabled={pageNo <= 1} + > + Previous + + + setOpenJump(false), + clickOutsideDeactivates: true, + }} + > + + + + + + + + } + > + {(anchorRef) => ( + setOpenJump(!openJump)} + ref={anchorRef} + variant="SurfaceVariant" + radii="300" + aria-pressed={openJump} + > + {`${pageNo}/${docState.data.numPages}`} + + )} + + + } + onClick={handleNextPage} + aria-disabled={pageNo >= docState.data.numPages} + > + Next + +
+ )} + + ); + } +); diff --git a/src/app/components/Pdf-viewer/index.ts b/src/app/components/Pdf-viewer/index.ts new file mode 100644 index 00000000..5fc0566f --- /dev/null +++ b/src/app/components/Pdf-viewer/index.ts @@ -0,0 +1 @@ +export * from './PdfViewer'; diff --git a/src/app/components/editor/Editor.tsx b/src/app/components/editor/Editor.tsx index f4241e0e..e5377f2f 100644 --- a/src/app/components/editor/Editor.tsx +++ b/src/app/components/editor/Editor.tsx @@ -54,7 +54,7 @@ export const useEditor = (): Editor => { return editor; }; -export type EditorChangeHandler = ((value: Descendant[]) => void) | undefined; +export type EditorChangeHandler = (value: Descendant[]) => void; type CustomEditorProps = { top?: ReactNode; bottom?: ReactNode; @@ -64,6 +64,7 @@ type CustomEditorProps = { editor: Editor; placeholder?: string; onKeyDown?: KeyboardEventHandler; + onKeyUp?: KeyboardEventHandler; onChange?: EditorChangeHandler; onPaste?: ClipboardEventHandler; }; @@ -78,6 +79,7 @@ export const CustomEditor = forwardRef( editor, placeholder, onKeyDown, + onKeyUp, onChange, onPaste, }, @@ -141,6 +143,7 @@ export const CustomEditor = forwardRef( renderElement={renderElement} renderLeaf={renderLeaf} onKeyDown={handleKeydown} + onKeyUp={onKeyUp} onPaste={onPaste} /> diff --git a/src/app/components/editor/Elements.tsx b/src/app/components/editor/Elements.tsx index 59893e53..2df80993 100644 --- a/src/app/components/editor/Elements.tsx +++ b/src/app/components/editor/Elements.tsx @@ -2,7 +2,7 @@ import { Scroll, Text } from 'folds'; import React from 'react'; import { RenderElementProps, RenderLeafProps, useFocused, useSelected } from 'slate-react'; -import * as css from './Elements.css'; +import * as css from '../../styles/CustomHtml.css'; import { EmoticonElement, LinkElement, MentionElement } from './slate'; import { useMatrixClient } from '../../hooks/useMatrixClient'; @@ -145,7 +145,13 @@ export function RenderElement({ attributes, element, children }: RenderElementPr case BlockType.CodeBlock: return ( - +
{children}
@@ -242,7 +248,7 @@ export function RenderLeaf({ attributes, leaf, children }: RenderLeafProps) { ); if (leaf.spoiler) child = ( - + {child} diff --git a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx index 6bea1952..baa217ca 100644 --- a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx @@ -122,8 +122,9 @@ export function RoomMentionAutocomplete({ return; } const rId = autoCompleteRoomIds[0]; - const name = mx.getRoom(rId)?.name ?? rId; - handleAutocomplete(rId, name); + const r = mx.getRoom(rId); + const name = r?.name ?? rId; + handleAutocomplete(r?.getCanonicalAlias() ?? rId, name); }); }); @@ -147,7 +148,7 @@ export function RoomMentionAutocomplete({ onKeyDown={(evt: ReactKeyboardEvent) => onTabPress(evt, () => handleAutocomplete(rId, room.name)) } - onClick={() => handleAutocomplete(rId, room.name)} + onClick={() => handleAutocomplete(room.getCanonicalAlias() ?? rId, room.name)} after={ {room.getCanonicalAlias() ?? ''} diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 76c6f05d..a7309834 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -42,7 +42,7 @@ import { useMatrixClient } from '../../hooks/useMatrixClient'; import { useRecentEmoji } from '../../hooks/useRecentEmoji'; import { ExtendedPackImage, ImagePack, PackUsage } from '../../plugins/custom-emoji'; import { isUserId } from '../../utils/matrix'; -import { editableActiveElement, inVisibleScrollArea, targetFromEvent } from '../../utils/dom'; +import { editableActiveElement, isIntersectingScrollView, targetFromEvent } from '../../utils/dom'; import { useAsyncSearch, UseAsyncSearchOptions } from '../../hooks/useAsyncSearch'; import { useDebounce } from '../../hooks/useDebounce'; import { useThrottle } from '../../hooks/useThrottle'; @@ -675,7 +675,7 @@ export function EmojiBoard({ const targetEl = contentScrollRef.current; if (!targetEl) return; const groupEls = [...targetEl.querySelectorAll('div[data-group-id]')] as HTMLElement[]; - const groupEl = groupEls.find((el) => inVisibleScrollArea(targetEl, el)); + const groupEl = groupEls.find((el) => isIntersectingScrollView(targetEl, el)); const groupId = groupEl?.getAttribute('data-group-id') ?? undefined; setActiveGroupId(groupId); }, [setActiveGroupId]); diff --git a/src/app/components/event-readers/EventReaders.css.ts b/src/app/components/event-readers/EventReaders.css.ts new file mode 100644 index 00000000..36f47b56 --- /dev/null +++ b/src/app/components/event-readers/EventReaders.css.ts @@ -0,0 +1,21 @@ +import { style } from '@vanilla-extract/css'; +import { DefaultReset, config } from 'folds'; + +export const EventReaders = style([ + DefaultReset, + { + height: '100%', + }, +]); + +export const Header = style({ + paddingLeft: config.space.S400, + paddingRight: config.space.S300, + + flexShrink: 0, +}); + +export const Content = style({ + paddingLeft: config.space.S200, + paddingBottom: config.space.S400, +}); diff --git a/src/app/components/event-readers/EventReaders.tsx b/src/app/components/event-readers/EventReaders.tsx new file mode 100644 index 00000000..c05efc50 --- /dev/null +++ b/src/app/components/event-readers/EventReaders.tsx @@ -0,0 +1,110 @@ +import React from 'react'; +import classNames from 'classnames'; +import { + Avatar, + AvatarFallback, + AvatarImage, + Box, + Header, + Icon, + IconButton, + Icons, + MenuItem, + Scroll, + Text, + as, + config, +} from 'folds'; +import { Room, RoomMember } from 'matrix-js-sdk'; +import { useRoomEventReaders } from '../../hooks/useRoomEventReaders'; +import { getMemberDisplayName } from '../../utils/room'; +import { getMxIdLocalPart } from '../../utils/matrix'; +import * as css from './EventReaders.css'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; +import colorMXID from '../../../util/colorMXID'; +import { openProfileViewer } from '../../../client/action/navigation'; + +export type EventReadersProps = { + room: Room; + eventId: string; + requestClose: () => void; +}; +export const EventReaders = as<'div', EventReadersProps>( + ({ className, room, eventId, requestClose, ...props }, ref) => { + const mx = useMatrixClient(); + const latestEventReaders = useRoomEventReaders(room, eventId); + const followingMembers = latestEventReaders + .map((readerId) => room.getMember(readerId)) + .filter((member) => member) as RoomMember[]; + + const getName = (member: RoomMember) => + getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) ?? member.userId; + + return ( + +
+ + Seen by + + + + +
+ + + + {followingMembers.map((member) => { + const name = getName(member); + const avatarUrl = member.getAvatarUrl( + mx.baseUrl, + 100, + 100, + 'crop', + undefined, + false + ); + + return ( + { + requestClose(); + openProfileViewer(member.userId, room.roomId); + }} + before={ + + {avatarUrl ? ( + + ) : ( + + {name[0]} + + )} + + } + > + + {name} + + + ); + })} + + + +
+ ); + } +); diff --git a/src/app/components/event-readers/index.ts b/src/app/components/event-readers/index.ts new file mode 100644 index 00000000..8a37548b --- /dev/null +++ b/src/app/components/event-readers/index.ts @@ -0,0 +1 @@ +export * from './EventReaders'; diff --git a/src/app/components/image-viewer/ImageViewer.css.ts b/src/app/components/image-viewer/ImageViewer.css.ts new file mode 100644 index 00000000..fc2f5088 --- /dev/null +++ b/src/app/components/image-viewer/ImageViewer.css.ts @@ -0,0 +1,40 @@ +import { style } from '@vanilla-extract/css'; +import { DefaultReset, color, config } from 'folds'; + +export const ImageViewer = style([ + DefaultReset, + { + height: '100%', + }, +]); + +export const ImageViewerHeader = style([ + DefaultReset, + { + paddingLeft: config.space.S200, + paddingRight: config.space.S200, + borderBottomWidth: config.borderWidth.B300, + flexShrink: 0, + gap: config.space.S200, + }, +]); + +export const ImageViewerContent = style([ + DefaultReset, + { + backgroundColor: color.Background.Container, + color: color.Background.OnContainer, + overflow: 'hidden', + }, +]); + +export const ImageViewerImg = style([ + DefaultReset, + { + objectFit: 'contain', + width: '100%', + height: '100%', + backgroundColor: color.Surface.Container, + transition: 'transform 100ms linear', + }, +]); diff --git a/src/app/components/image-viewer/ImageViewer.tsx b/src/app/components/image-viewer/ImageViewer.tsx new file mode 100644 index 00000000..4fd06b7a --- /dev/null +++ b/src/app/components/image-viewer/ImageViewer.tsx @@ -0,0 +1,95 @@ +/* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ +import React from 'react'; +import FileSaver from 'file-saver'; +import classNames from 'classnames'; +import { Box, Chip, Header, Icon, IconButton, Icons, Text, as } from 'folds'; +import * as css from './ImageViewer.css'; +import { useZoom } from '../../hooks/useZoom'; +import { usePan } from '../../hooks/usePan'; + +export type ImageViewerProps = { + alt: string; + src: string; + requestClose: () => void; +}; + +export const ImageViewer = as<'div', ImageViewerProps>( + ({ className, alt, src, requestClose, ...props }, ref) => { + const { zoom, zoomIn, zoomOut, setZoom } = useZoom(0.2); + const { pan, cursor, onMouseDown } = usePan(zoom !== 1); + + const handleDownload = () => { + FileSaver.saveAs(src, alt); + }; + + return ( + +
+ + + + + + {alt} + + + + + + + setZoom(zoom === 1 ? 2 : 1)}> + {Math.round(zoom * 100)}% + + 1 ? 'Success' : 'SurfaceVariant'} + outlined={zoom > 1} + size="300" + radii="Pill" + onClick={zoomIn} + aria-label="Zoom In" + > + + + } + > + Download + + +
+ + {alt} + +
+ ); + } +); diff --git a/src/app/components/image-viewer/index.ts b/src/app/components/image-viewer/index.ts new file mode 100644 index 00000000..69943f2f --- /dev/null +++ b/src/app/components/image-viewer/index.ts @@ -0,0 +1 @@ +export * from './ImageViewer'; diff --git a/src/app/components/media/Image.tsx b/src/app/components/media/Image.tsx new file mode 100644 index 00000000..dda21a53 --- /dev/null +++ b/src/app/components/media/Image.tsx @@ -0,0 +1,9 @@ +import React, { ImgHTMLAttributes, forwardRef } from 'react'; +import classNames from 'classnames'; +import * as css from './media.css'; + +export const Image = forwardRef>( + ({ className, alt, ...props }, ref) => ( + {alt} + ) +); diff --git a/src/app/components/media/MediaControls.tsx b/src/app/components/media/MediaControls.tsx new file mode 100644 index 00000000..95a344ab --- /dev/null +++ b/src/app/components/media/MediaControls.tsx @@ -0,0 +1,27 @@ +import React, { ReactNode } from 'react'; +import { Box, as } from 'folds'; + +export type MediaControlProps = { + before?: ReactNode; + after?: ReactNode; + leftControl?: ReactNode; + rightControl?: ReactNode; +}; +export const MediaControl = as<'div', MediaControlProps>( + ({ before, after, leftControl, rightControl, children, ...props }, ref) => ( + + {before && {before}} + + + {leftControl} + + + + {rightControl} + + + {after && {after}} + {children} + + ) +); diff --git a/src/app/components/media/Video.tsx b/src/app/components/media/Video.tsx new file mode 100644 index 00000000..ab13c5bd --- /dev/null +++ b/src/app/components/media/Video.tsx @@ -0,0 +1,10 @@ +import React, { VideoHTMLAttributes, forwardRef } from 'react'; +import classNames from 'classnames'; +import * as css from './media.css'; + +export const Video = forwardRef>( + ({ className, ...props }, ref) => ( + // eslint-disable-next-line jsx-a11y/media-has-caption +
- +
- + ); diff --git a/src/app/templates/client/ClientContent.jsx b/src/app/templates/client/ClientContent.jsx new file mode 100644 index 00000000..ada7008e --- /dev/null +++ b/src/app/templates/client/ClientContent.jsx @@ -0,0 +1,49 @@ +import React, { useState, useEffect } from 'react'; + +import initMatrix from '../../../client/initMatrix'; +import cons from '../../../client/state/cons'; +import navigation from '../../../client/state/navigation'; +import { openNavigation } from '../../../client/action/navigation'; + +import Welcome from '../../organisms/welcome/Welcome'; +import { RoomBaseView } from '../../organisms/room/Room'; + +export function ClientContent() { + const [roomInfo, setRoomInfo] = useState({ + room: null, + eventId: null, + }); + + const mx = initMatrix.matrixClient; + + useEffect(() => { + const handleRoomSelected = (rId, pRoomId, eId) => { + roomInfo.roomTimeline?.removeInternalListeners(); + const r = mx.getRoom(rId); + if (r) { + setRoomInfo({ + room: r, + eventId: eId ?? null, + }); + } else { + setRoomInfo({ + room: null, + eventId: null, + }); + } + }; + + navigation.on(cons.events.navigation.ROOM_SELECTED, handleRoomSelected); + return () => { + navigation.removeListener(cons.events.navigation.ROOM_SELECTED, handleRoomSelected); + }; + }, [roomInfo, mx]); + + const { room, eventId } = roomInfo; + if (!room) { + setTimeout(() => openNavigation()); + return ; + } + + return ; +} diff --git a/src/app/utils/blurHash.ts b/src/app/utils/blurHash.ts index 0de5a922..3fe1ade0 100644 --- a/src/app/utils/blurHash.ts +++ b/src/app/utils/blurHash.ts @@ -1,15 +1,15 @@ import { encode } from 'blurhash'; -export const MATRIX_BLUR_HASH_PROPERTY_NAME = 'xyz.amorgan.blurhash'; - export const encodeBlurHash = ( img: HTMLImageElement | HTMLVideoElement, width?: number, height?: number ): string | undefined => { + const imgWidth = img instanceof HTMLVideoElement ? img.videoWidth : img.width; + const imgHeight = img instanceof HTMLVideoElement ? img.videoHeight : img.height; const canvas = document.createElement('canvas'); - canvas.width = width || img.width; - canvas.height = height || img.height; + canvas.width = width || imgWidth; + canvas.height = height || imgHeight; const context = canvas.getContext('2d'); if (!context) return undefined; diff --git a/src/app/utils/common.ts b/src/app/utils/common.ts index d3804ae8..e007f222 100644 --- a/src/app/utils/common.ts +++ b/src/app/utils/common.ts @@ -11,6 +11,19 @@ export const bytesToSize = (bytes: number): string => { return `${(bytes / 1000 ** sizeIndex).toFixed(1)} ${sizes[sizeIndex]}`; }; +export const millisecondsToMinutesAndSeconds = (milliseconds: number): string => { + const seconds = Math.floor(milliseconds / 1000); + const mm = Math.floor(seconds / 60); + const ss = Math.round(seconds % 60); + return `${mm}:${ss < 10 ? '0' : ''}${ss}`; +}; + +export const secondsToMinutesAndSeconds = (seconds: number): string => { + const mm = Math.floor(seconds / 60); + const ss = Math.round(seconds % 60); + return `${mm}:${ss < 10 ? '0' : ''}${ss}`; +}; + export const getFileTypeIcon = (icons: Record, fileType: string): IconSrc => { const type = fileType.toLowerCase(); if (type.startsWith('audio')) { @@ -30,3 +43,37 @@ export const fulfilledPromiseSettledResult = (prs: PromiseSettledResult[]) if (pr.status === 'fulfilled') values.push(pr.value); return values; }, []); + +export const binarySearch = (items: T[], match: (item: T) => -1 | 0 | 1): T | undefined => { + const search = (start: number, end: number): T | undefined => { + if (start > end) return undefined; + + const mid = Math.floor((start + end) / 2); + + const result = match(items[mid]); + if (result === 0) return items[mid]; + + if (result === 1) return search(start, mid - 1); + return search(mid + 1, end); + }; + + return search(0, items.length - 1); +}; + +export const randomNumberBetween = (min: number, max: number) => + Math.floor(Math.random() * (max - min + 1)) + min; + +export const scaleYDimension = (x: number, scaledX: number, y: number): number => { + const scaleFactor = scaledX / x; + return scaleFactor * y; +}; + +export const parseGeoUri = (location: string) => { + const [, data] = location.split(':'); + const [cords] = data.split(';'); + const [latitude, longitude] = cords.split(','); + return { + latitude, + longitude, + }; +}; diff --git a/src/app/utils/dom.ts b/src/app/utils/dom.ts index d717adf2..a8dc4be2 100644 --- a/src/app/utils/dom.ts +++ b/src/app/utils/dom.ts @@ -7,7 +7,7 @@ export const editableActiveElement = (): boolean => !!document.activeElement && /^(input)|(textarea)$/.test(document.activeElement.nodeName.toLowerCase()); -export const inVisibleScrollArea = ( +export const isIntersectingScrollView = ( scrollElement: HTMLElement, childElement: HTMLElement ): boolean => { @@ -18,10 +18,25 @@ export const inVisibleScrollArea = ( const childBottom = childTop + childElement.clientHeight; if (childTop >= scrollTop && childTop < scrollBottom) return true; - if (childTop < scrollTop && childBottom > scrollTop) return true; + if (childBottom > scrollTop && childBottom <= scrollBottom) return true; + if (childTop < scrollTop && childBottom > scrollBottom) return true; return false; }; +export const isInScrollView = (scrollElement: HTMLElement, childElement: HTMLElement): boolean => { + const scrollTop = scrollElement.offsetTop + scrollElement.scrollTop; + const scrollBottom = scrollTop + scrollElement.offsetHeight; + return ( + childElement.offsetTop >= scrollTop && + childElement.offsetTop + childElement.offsetHeight <= scrollBottom + ); +}; + +export const canFitInScrollView = ( + scrollElement: HTMLElement, + childElement: HTMLElement +): boolean => childElement.offsetHeight < scrollElement.offsetHeight; + export type FilesOrFile = T extends true ? File[] : File; export const selectFile = ( @@ -131,3 +146,43 @@ export const getThumbnail = ( resolve(thumbnail ?? undefined); }, thumbnailMimeType ?? 'image/jpeg'); }); + +export type ScrollInfo = { + offsetTop: number; + top: number; + height: number; + viewHeight: number; + scrollable: boolean; +}; +export const getScrollInfo = (target: HTMLElement): ScrollInfo => ({ + offsetTop: Math.round(target.offsetTop), + top: Math.round(target.scrollTop), + height: Math.round(target.scrollHeight), + viewHeight: Math.round(target.offsetHeight), + scrollable: target.scrollHeight > target.offsetHeight, +}); + +export const scrollToBottom = (scrollEl: HTMLElement, behavior?: 'auto' | 'instant' | 'smooth') => { + scrollEl.scrollTo({ + top: Math.round(scrollEl.scrollHeight - scrollEl.offsetHeight), + behavior, + }); +}; + +export const copyToClipboard = (text: string) => { + if (navigator.clipboard) { + navigator.clipboard.writeText(text); + } else { + const host = document.body; + const copyInput = document.createElement('input'); + copyInput.style.position = 'fixed'; + copyInput.style.opacity = '0'; + copyInput.value = text; + host.append(copyInput); + + copyInput.select(); + copyInput.setSelectionRange(0, 99999); + document.execCommand('Copy'); + copyInput.remove(); + } +}; diff --git a/src/app/utils/matrix.ts b/src/app/utils/matrix.ts index 7f2fc0f2..91bd80f3 100644 --- a/src/app/utils/matrix.ts +++ b/src/app/utils/matrix.ts @@ -1,5 +1,16 @@ -import { EncryptedAttachmentInfo, encryptAttachment } from 'browser-encrypt-attachment'; -import { MatrixClient, MatrixError, UploadProgress, UploadResponse } from 'matrix-js-sdk'; +import { + EncryptedAttachmentInfo, + decryptAttachment, + encryptAttachment, +} from 'browser-encrypt-attachment'; +import { + MatrixClient, + MatrixError, + MatrixEvent, + Room, + UploadProgress, + UploadResponse, +} from 'matrix-js-sdk'; import { IImageInfo, IThumbnailContent, IVideoInfo } from '../../types/matrix/common'; export const matchMxId = (id: string): RegExpMatchArray | null => @@ -13,6 +24,13 @@ export const getMxIdLocalPart = (userId: string): string | undefined => matchMxI export const isUserId = (id: string): boolean => validMxId(id) && id.startsWith('@'); +export const isRoomId = (id: string): boolean => validMxId(id) && id.startsWith('!'); + +export const isRoomAlias = (id: string): boolean => validMxId(id) && id.startsWith('#'); + +export const getRoomWithCanonicalAlias = (mx: MatrixClient, alias: string): Room | undefined => + mx.getRooms()?.find((room) => room.getCanonicalAlias() === alias); + export const getImageInfo = (img: HTMLImageElement, fileOrBlob: File | Blob): IImageInfo => { const info: IImageInfo = {}; info.w = img.width; @@ -24,7 +42,7 @@ export const getImageInfo = (img: HTMLImageElement, fileOrBlob: File | Blob): II export const getVideoInfo = (video: HTMLVideoElement, fileOrBlob: File | Blob): IVideoInfo => { const info: IVideoInfo = {}; - info.duration = Number.isNaN(video.duration) ? undefined : video.duration; + info.duration = Number.isNaN(video.duration) ? undefined : Math.floor(video.duration * 1000); info.w = video.videoWidth; info.h = video.videoHeight; info.mimetype = fileOrBlob.type; @@ -79,6 +97,16 @@ export const encryptFile = async ( }; }; +export const decryptFile = async ( + dataBuffer: ArrayBuffer, + type: string, + encInfo: EncryptedAttachmentInfo +): Promise => { + const dataArray = await decryptAttachment(dataBuffer, encInfo); + const blob = new Blob([dataArray], { type }); + return blob; +}; + export type TUploadContent = File | Blob; export type ContentUploadOptions = { @@ -116,3 +144,19 @@ export const uploadContent = async ( onError(new MatrixError({ error, errcode })); } }; + +export const matrixEventByRecency = (m1: MatrixEvent, m2: MatrixEvent) => m2.getTs() - m1.getTs(); + +export const factoryEventSentBy = (senderId: string) => (ev: MatrixEvent) => + ev.getSender() === senderId; + +export const eventWithShortcode = (ev: MatrixEvent) => + typeof ev.getContent().shortcode === 'string'; + +export const trimReplyFromBody = (body: string): string => { + if (body.match(/^> <.+>/) === null) return body; + + const trimmedBody = body.slice(body.indexOf('\n\n') + 2); + + return trimmedBody || body; +}; diff --git a/src/app/utils/mimeTypes.ts b/src/app/utils/mimeTypes.ts index c432bdc3..c883ddb9 100644 --- a/src/app/utils/mimeTypes.ts +++ b/src/app/utils/mimeTypes.ts @@ -1,17 +1,15 @@ -// https://github.com/matrix-org/matrix-react-sdk/blob/cd15e08fc285da42134817cce50de8011809cd53/src/utils/blobs.ts -export const ALLOWED_BLOB_MIMETYPES = [ +export const IMAGE_MIME_TYPES = [ 'image/jpeg', 'image/gif', 'image/png', 'image/apng', 'image/webp', 'image/avif', +]; - 'video/mp4', - 'video/webm', - 'video/ogg', - 'video/quicktime', +export const VIDEO_MIME_TYPES = ['video/mp4', 'video/webm', 'video/ogg', 'video/quicktime']; +export const AUDIO_MIME_TYPES = [ 'audio/mp4', 'audio/webm', 'audio/aac', @@ -25,11 +23,55 @@ export const ALLOWED_BLOB_MIMETYPES = [ 'audio/x-flac', ]; +export const APPLICATION_MIME_TYPES = [ + 'application/pdf', + 'application/json', + 'application/x-sh', + 'application/ecmascript', + 'application/javascript', + 'application/xhtml+xml', + 'application/xml', +]; + +export const TEXT_MIME_TYPE = [ + 'text/plain', + 'text/html', + 'text/css', + 'text/javascript', + 'text/x-c', + 'text/csv', + 'text/tab-separated-values', + 'text/yaml', + 'text/x-java-source,java', + 'text/markdown', +]; + +export const READABLE_TEXT_MIME_TYPES = [ + 'application/json', + 'application/x-sh', + 'application/ecmascript', + 'application/javascript', + 'application/xhtml+xml', + 'application/xml', + + ...TEXT_MIME_TYPE, +]; + +export const ALLOWED_BLOB_MIME_TYPES = [ + ...IMAGE_MIME_TYPES, + ...VIDEO_MIME_TYPES, + ...AUDIO_MIME_TYPES, + ...APPLICATION_MIME_TYPES, + ...TEXT_MIME_TYPE, +]; + +export const FALLBACK_MIMETYPE = 'application/octet-stream'; + export const getBlobSafeMimeType = (mimeType: string) => { - if (typeof mimeType !== 'string') return 'application/octet-stream'; + if (typeof mimeType !== 'string') return FALLBACK_MIMETYPE; const [type] = mimeType.split(';'); - if (!ALLOWED_BLOB_MIMETYPES.includes(type)) { - return 'application/octet-stream'; + if (!ALLOWED_BLOB_MIME_TYPES.includes(type)) { + return FALLBACK_MIMETYPE; } // Required for Chromium browsers if (type === 'video/quicktime') { @@ -45,3 +87,8 @@ export const safeFile = (f: File) => { } return f; }; + +export const mimeTypeToExt = (mimeType: string): string => { + const extStart = mimeType.lastIndexOf('/') + 1; + return mimeType.slice(extStart); +}; diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts index daf95600..f8637833 100644 --- a/src/app/utils/room.ts +++ b/src/app/utils/room.ts @@ -1,6 +1,7 @@ import { IconName, IconSrc } from 'folds'; import { + EventTimeline, IPushRule, IPushRules, JoinRule, @@ -9,6 +10,7 @@ import { NotificationCountType, Room, } from 'matrix-js-sdk'; +import { CryptoBackend } from 'matrix-js-sdk/lib/common-crypto/CryptoBackend'; import { AccountDataEvent } from '../../types/matrix/accountData'; import { NotificationType, @@ -263,3 +265,35 @@ export const parseReplyFormattedBody = ( return `
${replyToLink}${userLink}
${formattedBody}
`; }; + +export const getMemberDisplayName = (room: Room, userId: string): string | undefined => { + const member = room.getMember(userId); + const name = member?.rawDisplayName; + if (name === userId) return undefined; + return name; +}; + +export const getMemberAvatarMxc = (room: Room, userId: string): string | undefined => { + const member = room.getMember(userId); + return member?.getMxcAvatarUrl(); +}; + +export const decryptAllTimelineEvent = async (mx: MatrixClient, timeline: EventTimeline) => { + const crypto = mx.getCrypto(); + if (!crypto) return; + const decryptionPromises = timeline + .getEvents() + .filter((event) => event.isEncrypted()) + .reverse() + .map((event) => event.attemptDecryption(crypto as CryptoBackend, { isRetry: true })); + await Promise.allSettled(decryptionPromises); +}; + +export const getReactionContent = (eventId: string, key: string, shortcode?: string) => ({ + 'm.relates_to': { + event_id: eventId, + key, + rel_type: 'm.annotation', + }, + shortcode, +}); diff --git a/src/app/utils/sanitize.ts b/src/app/utils/sanitize.ts index 555089de..6a03ca7d 100644 --- a/src/app/utils/sanitize.ts +++ b/src/app/utils/sanitize.ts @@ -1,3 +1,145 @@ +import sanitizeHtml, { Transformer } from 'sanitize-html'; + +const MAX_TAG_NESTING = 100; + +const permittedHtmlTags = [ + 'font', + 'del', + 'h1', + 'h2', + 'h3', + 'h4', + 'h5', + 'h6', + 'blockquote', + 'p', + 'a', + 'ul', + 'ol', + 'sup', + 'sub', + 'li', + 'b', + 'i', + 'u', + 'strong', + 'em', + 'strike', + 's', + 'code', + 'hr', + 'br', + 'div', + 'table', + 'thead', + 'tbody', + 'tr', + 'th', + 'td', + 'caption', + 'pre', + 'span', + 'img', + 'details', + 'summary', +]; + +const urlSchemes = ['https', 'http', 'ftp', 'mailto', 'magnet']; + +const permittedTagToAttributes = { + font: ['style', 'data-mx-bg-color', 'data-mx-color', 'color'], + span: [ + 'style', + 'data-mx-bg-color', + 'data-mx-color', + 'data-mx-spoiler', + 'data-mx-maths', + 'data-mx-pill', + 'data-mx-ping', + ], + div: ['data-mx-maths'], + a: ['name', 'target', 'href', 'rel'], + img: ['width', 'height', 'alt', 'title', 'src', 'data-mx-emoticon'], + ol: ['start'], + code: ['class'], +}; + +const transformFontTag: Transformer = (tagName, attribs) => ({ + tagName, + attribs: { + ...attribs, + style: `background-color: ${attribs['data-mx-bg-color']}; color: ${attribs['data-mx-color']}`, + }, +}); + +const transformSpanTag: Transformer = (tagName, attribs) => ({ + tagName, + attribs: { + ...attribs, + style: `background-color: ${attribs['data-mx-bg-color']}; color: ${attribs['data-mx-color']}`, + }, +}); + +const transformATag: Transformer = (tagName, attribs) => ({ + tagName, + attribs: { + ...attribs, + rel: 'noopener', + target: '_blank', + }, +}); + +const transformImgTag: Transformer = (tagName, attribs) => { + const { src } = attribs; + if (src.startsWith('mxc://') === false) { + return { + tagName: 'a', + attribs: { + href: src, + rel: 'noopener', + target: '_blank', + }, + text: attribs.alt || src, + }; + } + return { + tagName, + attribs: { + ...attribs, + }, + }; +}; + +export const sanitizeCustomHtml = (customHtml: string): string => + sanitizeHtml(customHtml, { + allowedTags: permittedHtmlTags, + allowedAttributes: permittedTagToAttributes, + disallowedTagsMode: 'discard', + allowedSchemes: urlSchemes, + allowedSchemesByTag: { + a: urlSchemes, + }, + allowedSchemesAppliedToAttributes: ['href'], + allowProtocolRelative: false, + allowedClasses: { + code: ['language-*'], + }, + allowedStyles: { + '*': { + color: [/^#(?:[0-9a-fA-F]{3}){1,2}$/], + 'background-color': [/^#(?:[0-9a-fA-F]{3}){1,2}$/], + }, + }, + transformTags: { + font: transformFontTag, + span: transformSpanTag, + a: transformATag, + img: transformImgTag, + }, + nonTextTags: ['style', 'script', 'textarea', 'option', 'noscript', 'mx-reply'], + nestingLimit: MAX_TAG_NESTING, + }); + export const sanitizeText = (body: string) => { const tagsToReplace: Record = { '&': '&', diff --git a/src/app/utils/time.ts b/src/app/utils/time.ts new file mode 100644 index 00000000..3ee6720c --- /dev/null +++ b/src/app/utils/time.ts @@ -0,0 +1,35 @@ +import dayjs from 'dayjs'; +import isToday from 'dayjs/plugin/isToday'; +import isYesterday from 'dayjs/plugin/isYesterday'; + +dayjs.extend(isToday); +dayjs.extend(isYesterday); + +export const today = (ts: number): boolean => dayjs(ts).isToday(); + +export const yesterday = (ts: number): boolean => dayjs(ts).isYesterday(); + +export const timeHourMinute = (ts: number): string => dayjs(ts).format('hh:mm A'); + +export const timeDayMonYear = (ts: number): string => dayjs(ts).format('D MMM YYYY'); + +export const timeDayMonthYear = (ts: number): string => dayjs(ts).format('D MMMM YYYY'); + +export const inSameDay = (ts1: number, ts2: number): boolean => { + const dt1 = new Date(ts1); + const dt2 = new Date(ts2); + return ( + dt2.getFullYear() === dt1.getFullYear() && + dt2.getMonth() === dt1.getMonth() && + dt2.getDate() === dt1.getDate() + ); +}; + +export const minuteDifference = (ts1: number, ts2: number): number => { + const dt1 = new Date(ts1); + const dt2 = new Date(ts2); + + let diff = (dt2.getTime() - dt1.getTime()) / 1000; + diff /= 60; + return Math.abs(Math.round(diff)); +}; diff --git a/src/client/state/settings.js b/src/client/state/settings.js index af2e279a..cc1193ce 100644 --- a/src/client/state/settings.js +++ b/src/client/state/settings.js @@ -59,6 +59,8 @@ class Settings extends EventEmitter { this.themes.forEach((themeName, index) => { if (themeName !== '') document.body.classList.remove(themeName); document.body.classList.remove(this.themeClasses[index]); + document.body.classList.remove('prism-light') + document.body.classList.remove('prism-dark') }); } @@ -69,6 +71,7 @@ class Settings extends EventEmitter { if (this.themes[themeIndex] === undefined) return if (this.themes[themeIndex]) document.body.classList.add(this.themes[themeIndex]); document.body.classList.add(this.themeClasses[themeIndex]); + document.body.classList.add(themeIndex < 2 ? 'prism-light' : 'prism-dark'); } setTheme(themeIndex) { diff --git a/src/ext.d.ts b/src/ext.d.ts index 55f59327..5593b6e7 100644 --- a/src/ext.d.ts +++ b/src/ext.d.ts @@ -20,4 +20,9 @@ declare module 'browser-encrypt-attachment' { } export function encryptAttachment(dataBuffer: ArrayBuffer): Promise; + + export function decryptAttachment( + dataBuffer: ArrayBuffer, + info: EncryptedAttachmentInfo + ): Promise; } diff --git a/src/index.scss b/src/index.scss index 93443fe9..04125a1c 100644 --- a/src/index.scss +++ b/src/index.scss @@ -210,14 +210,14 @@ .dark-theme, .butter-theme { /* background color | --bg-[background type]: value */ - --bg-surface: hsl(208, 8%, 20%); - --bg-surface-transparent: hsla(208, 8%, 20%, 0); - --bg-surface-low: hsl(208, 8%, 16%); - --bg-surface-low-transparent: hsla(208, 8%, 16%, 0); - --bg-surface-extra-low: hsl(208, 8%, 14%); - --bg-surface-extra-low-transparent: hsla(208, 8%, 14%, 0); - --bg-surface-hover: rgba(255, 255, 255, 3%); - --bg-surface-active: rgba(255, 255, 255, 5%); + --bg-surface: #1f2326; + --bg-surface-transparent: #1f232600; + --bg-surface-low: #15171a; + --bg-surface-low-transparent: #15171a00; + --bg-surface-extra-low: #15171a; + --bg-surface-extra-low-transparent: #15171a00; + --bg-surface-hover: #1f2326; + --bg-surface-active: #2a2e33; --bg-surface-border: rgba(0, 0, 0, 20%); --bg-primary: rgb(42, 98, 166); diff --git a/src/types/matrix/common.ts b/src/types/matrix/common.ts index 94a46a90..cc20d453 100644 --- a/src/types/matrix/common.ts +++ b/src/types/matrix/common.ts @@ -1,16 +1,35 @@ import { EncryptedAttachmentInfo } from 'browser-encrypt-attachment'; +import { MsgType } from 'matrix-js-sdk'; + +export const MATRIX_BLUR_HASH_PROPERTY_NAME = 'xyz.amorgan.blurhash'; export type IImageInfo = { w?: number; h?: number; mimetype?: string; size?: number; + [MATRIX_BLUR_HASH_PROPERTY_NAME]?: string; }; -export type IVideoInfo = IImageInfo & { +export type IVideoInfo = { + w?: number; + h?: number; + mimetype?: string; + size?: number; duration?: number; }; +export type IAudioInfo = { + mimetype?: string; + size?: number; + duration?: number; +}; + +export type IFileInfo = { + mimetype?: string; + size?: number; +}; + export type IEncryptedFile = EncryptedAttachmentInfo & { url: string; }; @@ -20,3 +39,42 @@ export type IThumbnailContent = { thumbnail_file?: IEncryptedFile; thumbnail_url?: string; }; + +export type IImageContent = { + msgtype: MsgType.Image; + body?: string; + url?: string; + info?: IImageInfo & IThumbnailContent; + file?: IEncryptedFile; +}; + +export type IVideoContent = { + msgtype: MsgType.Video; + body?: string; + url?: string; + info?: IVideoInfo & IThumbnailContent; + file?: IEncryptedFile; +}; + +export type IAudioContent = { + msgtype: MsgType.Audio; + body?: string; + url?: string; + info?: IAudioInfo; + file?: IEncryptedFile; +}; + +export type IFileContent = { + msgtype: MsgType.File; + body?: string; + url?: string; + info?: IFileInfo & IThumbnailContent; + file?: IEncryptedFile; +}; + +export type ILocationContent = { + msgtype: MsgType.Location; + body?: string; + geo_uri?: string; + info?: IThumbnailContent; +}; diff --git a/src/types/matrix/room.ts b/src/types/matrix/room.ts index 93e87615..33419ce5 100644 --- a/src/types/matrix/room.ts +++ b/src/types/matrix/room.ts @@ -6,6 +6,14 @@ export enum Membership { Ban = 'ban', } +export type IMemberContent = { + avatar_url?: string; + displayname?: string; + membership?: Membership; + reason?: string; + is_direct?: boolean; +}; + export enum StateEvent { RoomCanonicalAlias = 'm.room.canonical_alias', RoomCreate = 'm.room.create', @@ -29,6 +37,14 @@ export enum StateEvent { PoniesRoomEmotes = 'im.ponies.room_emotes', } +export enum MessageEvent { + RoomMessage = 'm.room.message', + RoomMessageEncrypted = 'm.room.encrypted', + Sticker = 'm.sticker', + RoomRedaction = 'm.room.redaction', + Reaction = 'm.reaction', +} + export enum RoomType { Space = 'm.space', } @@ -40,6 +56,17 @@ export enum NotificationType { Mute = 'mute', } +export type IRoomCreateContent = { + creator?: string; + ['m.federate']?: boolean; + room_version: string; + type?: string; + predecessor?: { + event_id: string; + room_id: string; + }; +}; + export type RoomToParents = Map>; export type RoomToUnread = Map< string, diff --git a/tsconfig.json b/tsconfig.json index 02eb1843..d2f1e8a1 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,6 +3,7 @@ "sourceMap": true, "jsx": "react", "target": "ES2016", + "module": "ES2020", "allowJs": true, "strict": true, "esModuleInterop": true, diff --git a/vite.config.js b/vite.config.js index f09aa71e..83573398 100644 --- a/vite.config.js +++ b/vite.config.js @@ -13,6 +13,10 @@ const copyFiles = { src: 'node_modules/@matrix-org/olm/olm.wasm', dest: '', }, + { + src: 'node_modules/pdfjs-dist/build/pdf.worker.min.js', + dest: '', + }, { src: '_redirects', dest: '', From f9b895b32c0b42b56966db4e2529a5e219d0eb99 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Fri, 6 Oct 2023 15:48:48 +1300 Subject: [PATCH 363/717] Prompt to send command as message (#1435) --- src/app/organisms/room/RoomViewInput.jsx | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/app/organisms/room/RoomViewInput.jsx b/src/app/organisms/room/RoomViewInput.jsx index c43eb601..3fb780a4 100644 --- a/src/app/organisms/room/RoomViewInput.jsx +++ b/src/app/organisms/room/RoomViewInput.jsx @@ -206,28 +206,36 @@ function RoomViewInput({ if (replyTo !== null) setReplyTo(null); }; - const processCommand = (cmdBody) => { + /** Return true if a command was executed. */ + const processCommand = async (cmdBody) => { const spaceIndex = cmdBody.indexOf(' '); const cmdName = cmdBody.slice(1, spaceIndex > -1 ? spaceIndex : undefined); const cmdData = spaceIndex > -1 ? cmdBody.slice(spaceIndex + 1) : ''; if (!commands[cmdName]) { - confirmDialog('Invalid Command', `"${cmdName}" is not a valid command.`, 'Alright'); - return; + const sendAsMessage = await confirmDialog('Invalid Command', `"${cmdName}" is not a valid command. Did you mean to send this as a message?`, 'Send as message'); + if (sendAsMessage) { + sendBody(cmdBody); + return true; + } + return false; } if (['me', 'shrug', 'plain'].includes(cmdName)) { commands[cmdName].exe(roomId, cmdData, sendBody); - return; + return true; } commands[cmdName].exe(roomId, cmdData); + return true; }; const sendMessage = async () => { requestAnimationFrame(() => deactivateCmdAndEmit()); const msgBody = textAreaRef.current.value.trim(); if (msgBody.startsWith('/')) { - processCommand(msgBody.trim()); - textAreaRef.current.value = ''; - textAreaRef.current.style.height = 'unset'; + const executed = await processCommand(msgBody.trim()); + if (executed) { + textAreaRef.current.value = ''; + textAreaRef.current.style.height = 'unset'; + } return; } if (msgBody === '' && attachment === null) return; From 1bdb7f4e3ab71445fb740454f064bc20797dd658 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 7 Oct 2023 18:19:01 +1100 Subject: [PATCH 364/717] Timeline-refactor-fixes (#1438) * fix type * fix missing member from reaction * stop context menu event propagation in msg modal * prevent encode blur hash from freezing app * replace roboto font with inter and fix weight * add recent emoji when selecting emoji * fix room latest evt hook * add option to drop typing status --- package-lock.json | 6 -- package.json | 1 - src/app/components/emoji-board/EmojiBoard.tsx | 6 +- src/app/hooks/useRoomLatestEvent.ts | 29 ---------- src/app/hooks/useRoomLatestRenderedEvent.ts | 57 +++++++++++++++++++ src/app/organisms/room/RoomTimeline.tsx | 2 +- src/app/organisms/room/RoomViewFollowing.tsx | 4 +- src/app/organisms/room/RoomViewTyping.css.ts | 3 + src/app/organisms/room/RoomViewTyping.tsx | 22 ++++++- .../organisms/room/message/FileContent.tsx | 4 +- .../organisms/room/message/ImageContent.tsx | 2 +- src/app/organisms/room/msgContent.ts | 9 ++- .../room/reaction-viewer/ReactionViewer.tsx | 11 ++-- src/client/state/settings.js | 4 ++ src/config.css.ts | 26 +++++++++ src/font.js | 5 -- src/index.jsx | 1 - src/index.scss | 10 ++-- 18 files changed, 138 insertions(+), 64 deletions(-) delete mode 100644 src/app/hooks/useRoomLatestEvent.ts create mode 100644 src/app/hooks/useRoomLatestRenderedEvent.ts create mode 100644 src/config.css.ts delete mode 100644 src/font.js diff --git a/package-lock.json b/package-lock.json index 6f00efe8..6213a1df 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", - "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", "@tanstack/react-virtual": "3.0.0-beta.54", @@ -875,11 +874,6 @@ "resolved": "https://registry.npmjs.org/@fontsource/inter/-/inter-4.5.14.tgz", "integrity": "sha512-JDC9AocdPLuGsASkvWw9hS5gtHE7K9dOwL98XLrk5yjYqxy4uVnScG58NUvFMJDVJRl/7c8Wnap6PEs+7Zvj1Q==" }, - "node_modules/@fontsource/roboto": { - "version": "4.5.8", - "resolved": "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.8.tgz", - "integrity": "sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==" - }, "node_modules/@humanwhocodes/config-array": { "version": "0.11.7", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.7.tgz", diff --git a/package.json b/package.json index 83850a80..8ee5cc54 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,6 @@ "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", - "@fontsource/roboto": "4.5.8", "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", "@tanstack/react-virtual": "3.0.0-beta.54", diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index a7309834..81730e3d 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -46,6 +46,7 @@ import { editableActiveElement, isIntersectingScrollView, targetFromEvent } from import { useAsyncSearch, UseAsyncSearchOptions } from '../../hooks/useAsyncSearch'; import { useDebounce } from '../../hooks/useDebounce'; import { useThrottle } from '../../hooks/useThrottle'; +import { addRecentEmoji } from '../../plugins/recent-emoji'; const RECENT_GROUP_ID = 'recent_group'; const SEARCH_GROUP_ID = 'search_group'; @@ -697,7 +698,10 @@ export function EmojiBoard({ if (!emojiInfo) return; if (emojiInfo.type === EmojiType.Emoji) { onEmojiSelect?.(emojiInfo.data, emojiInfo.shortcode); - if (!evt.altKey && !evt.shiftKey) requestClose(); + if (!evt.altKey && !evt.shiftKey) { + addRecentEmoji(mx, emojiInfo.data); + requestClose(); + } } if (emojiInfo.type === EmojiType.CustomEmoji) { onCustomEmojiSelect?.(emojiInfo.data, emojiInfo.shortcode); diff --git a/src/app/hooks/useRoomLatestEvent.ts b/src/app/hooks/useRoomLatestEvent.ts deleted file mode 100644 index 337438ce..00000000 --- a/src/app/hooks/useRoomLatestEvent.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { MatrixEvent, Room, RoomEvent, RoomEventHandlerMap } from 'matrix-js-sdk'; -import { useEffect, useState } from 'react'; - -export const useRoomLatestEvent = (room: Room) => { - const [latestEvent, setLatestEvent] = useState(); - - useEffect(() => { - const getLatestEvent = (): MatrixEvent | undefined => { - const liveEvents = room.getLiveTimeline().getEvents(); - for (let i = liveEvents.length - 1; i >= 0; i -= 1) { - const evt = liveEvents[i]; - if (evt) return evt; - } - return undefined; - }; - - const handleTimelineEvent: RoomEventHandlerMap[RoomEvent.Timeline] = () => { - setLatestEvent(getLatestEvent()); - }; - setLatestEvent(getLatestEvent()); - - room.on(RoomEvent.Timeline, handleTimelineEvent); - return () => { - room.removeListener(RoomEvent.Timeline, handleTimelineEvent); - }; - }, [room]); - - return latestEvent; -}; diff --git a/src/app/hooks/useRoomLatestRenderedEvent.ts b/src/app/hooks/useRoomLatestRenderedEvent.ts new file mode 100644 index 00000000..295d1030 --- /dev/null +++ b/src/app/hooks/useRoomLatestRenderedEvent.ts @@ -0,0 +1,57 @@ +/* eslint-disable no-continue */ +import { MatrixEvent, Room, RoomEvent, RoomEventHandlerMap } from 'matrix-js-sdk'; +import { useEffect, useState } from 'react'; +import { settingsAtom } from '../state/settings'; +import { useSetting } from '../state/hooks/settings'; +import { MessageEvent, StateEvent } from '../../types/matrix/room'; + +export const useRoomLatestRenderedEvent = (room: Room) => { + const [hideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); + const [hideNickAvatarEvents] = useSetting(settingsAtom, 'hideNickAvatarEvents'); + const [showHiddenEvents] = useSetting(settingsAtom, 'showHiddenEvents'); + const [latestEvent, setLatestEvent] = useState(); + + useEffect(() => { + const getLatestEvent = (): MatrixEvent | undefined => { + const liveEvents = room.getLiveTimeline().getEvents(); + for (let i = liveEvents.length - 1; i >= 0; i -= 1) { + const evt = liveEvents[i]; + + if (!evt) continue; + if (evt.isRelation()) continue; + if (evt.getType() === StateEvent.RoomMember) { + const membershipChanged = evt.getContent().membership !== evt.getPrevContent().membership; + if (membershipChanged && hideMembershipEvents) continue; + if (!membershipChanged && hideNickAvatarEvents) continue; + return evt; + } + + if ( + evt.getType() === MessageEvent.RoomMessage || + evt.getType() === MessageEvent.RoomMessageEncrypted || + evt.getType() === MessageEvent.Sticker || + evt.getType() === StateEvent.RoomName || + evt.getType() === StateEvent.RoomTopic || + evt.getType() === StateEvent.RoomAvatar + ) { + return evt; + } + + if (showHiddenEvents) return evt; + } + return undefined; + }; + + const handleTimelineEvent: RoomEventHandlerMap[RoomEvent.Timeline] = () => { + setLatestEvent(getLatestEvent()); + }; + setLatestEvent(getLatestEvent()); + + room.on(RoomEvent.Timeline, handleTimelineEvent); + return () => { + room.removeListener(RoomEvent.Timeline, handleTimelineEvent); + }; + }, [room, hideMembershipEvents, hideNickAvatarEvents, showHiddenEvents]); + + return latestEvent; +}; diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 03f72a37..b3902d8b 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -167,7 +167,7 @@ export const getFirstLinkedTimeline = ( export const getLinkedTimelines = (timeline: EventTimeline): EventTimeline[] => { const firstTimeline = getFirstLinkedTimeline(timeline, Direction.Backward); - const timelines = []; + const timelines: EventTimeline[] = []; for ( let nextTimeline: EventTimeline | null = firstTimeline; diff --git a/src/app/organisms/room/RoomViewFollowing.tsx b/src/app/organisms/room/RoomViewFollowing.tsx index cd62c429..a49f70d9 100644 --- a/src/app/organisms/room/RoomViewFollowing.tsx +++ b/src/app/organisms/room/RoomViewFollowing.tsx @@ -19,7 +19,7 @@ import { getMemberDisplayName } from '../../utils/room'; import { getMxIdLocalPart } from '../../utils/matrix'; import * as css from './RoomViewFollowing.css'; import { useMatrixClient } from '../../hooks/useMatrixClient'; -import { useRoomLatestEvent } from '../../hooks/useRoomLatestEvent'; +import { useRoomLatestRenderedEvent } from '../../hooks/useRoomLatestRenderedEvent'; import { useRoomEventReaders } from '../../hooks/useRoomEventReaders'; import { EventReaders } from '../../components/event-readers'; @@ -30,7 +30,7 @@ export const RoomViewFollowing = as<'div', RoomViewFollowingProps>( ({ className, room, ...props }, ref) => { const mx = useMatrixClient(); const [open, setOpen] = useState(false); - const latestEvent = useRoomLatestEvent(room); + const latestEvent = useRoomLatestRenderedEvent(room); const latestEventReaders = useRoomEventReaders(room, latestEvent?.getId()); const followingMembers = latestEventReaders .map((readerId) => room.getMember(readerId)) diff --git a/src/app/organisms/room/RoomViewTyping.css.ts b/src/app/organisms/room/RoomViewTyping.css.ts index ef07316f..9def1aee 100644 --- a/src/app/organisms/room/RoomViewTyping.css.ts +++ b/src/app/organisms/room/RoomViewTyping.css.ts @@ -22,3 +22,6 @@ export const RoomViewTyping = style([ animation: `${SlideUpAnime} 100ms ease-in-out`, }, ]); +export const TypingText = style({ + flexGrow: 1, +}); diff --git a/src/app/organisms/room/RoomViewTyping.tsx b/src/app/organisms/room/RoomViewTyping.tsx index c7c15ea5..c393f3ae 100644 --- a/src/app/organisms/room/RoomViewTyping.tsx +++ b/src/app/organisms/room/RoomViewTyping.tsx @@ -1,8 +1,8 @@ import React, { useMemo } from 'react'; -import { Box, Text, as } from 'folds'; +import { Box, Icon, IconButton, Icons, Text, as } from 'folds'; import { Room } from 'matrix-js-sdk'; import classNames from 'classnames'; -import { useAtomValue } from 'jotai'; +import { useAtomValue, useSetAtom } from 'jotai'; import { roomIdToTypingMembersAtom, selectRoomTypingMembersAtom } from '../../state/typingMembers'; import { TypingIndicator } from '../../components/typing-indicator'; import { getMemberDisplayName } from '../../utils/room'; @@ -15,6 +15,7 @@ export type RoomViewTypingProps = { }; export const RoomViewTyping = as<'div', RoomViewTypingProps>( ({ className, room, ...props }, ref) => { + const setTypingMembers = useSetAtom(roomIdToTypingMembersAtom); const mx = useMatrixClient(); const typingMembers = useAtomValue( useMemo(() => selectRoomTypingMembersAtom(room.roomId, roomIdToTypingMembersAtom), [room]) @@ -29,6 +30,18 @@ export const RoomViewTyping = as<'div', RoomViewTypingProps>( return null; } + const handleDropAll = () => { + // some homeserver does not timeout typing status + // we have given option so user can drop their typing status + typingMembers.forEach((member) => + setTypingMembers({ + type: 'DELETE', + roomId: room.roomId, + member, + }) + ); + }; + return ( ( ref={ref} > - + {typingNames.length === 1 && ( <> {typingNames[0]} @@ -96,6 +109,9 @@ export const RoomViewTyping = as<'div', RoomViewTypingProps>( )} + + + ); } diff --git a/src/app/organisms/room/message/FileContent.tsx b/src/app/organisms/room/message/FileContent.tsx index 8484d849..c6bd45d4 100644 --- a/src/app/organisms/room/message/FileContent.tsx +++ b/src/app/organisms/room/message/FileContent.tsx @@ -94,7 +94,7 @@ function ReadTextFile({ body, mimeType, url, encInfo }: Omit - + evt.stopPropagation()}> - + evt.stopPropagation()}> ( clickOutsideDeactivates: true, }} > - + evt.stopPropagation()}> ( const senderId = mEvent.getSender(); if (!senderId) return null; const member = room.getMember(senderId); - if (!member) return null; - const name = getName(member); + const name = (member ? getName(member) : getMxIdLocalPart(senderId)) ?? senderId; - const avatarUrl = member.getAvatarUrl( + const avatarUrl = member?.getAvatarUrl( mx.baseUrl, 100, 100, @@ -113,12 +112,12 @@ export const ReactionViewer = as<'div', ReactionViewerProps>( return ( { requestClose(); - openProfileViewer(member.userId, room.roomId); + openProfileViewer(senderId, room.roomId); }} before={ @@ -127,7 +126,7 @@ export const ReactionViewer = as<'div', ReactionViewerProps>( ) : ( diff --git a/src/client/state/settings.js b/src/client/state/settings.js index cc1193ce..d39b2ca1 100644 --- a/src/client/state/settings.js +++ b/src/client/state/settings.js @@ -4,6 +4,7 @@ import appDispatcher from '../dispatcher'; import cons from './cons'; import { darkTheme, butterTheme, silverTheme } from '../../colors.css'; +import { onLightFontWeight, onDarkFontWeight } from '../../config.css'; function getSettings() { const settings = localStorage.getItem('settings'); @@ -23,6 +24,7 @@ class Settings extends EventEmitter { super(); this.themeClasses = [lightTheme, silverTheme, darkTheme, butterTheme]; + this.fontWeightClasses = [onLightFontWeight, onLightFontWeight, onDarkFontWeight, onDarkFontWeight] this.themes = ['', 'silver-theme', 'dark-theme', 'butter-theme']; this.themeIndex = this.getThemeIndex(); @@ -59,6 +61,7 @@ class Settings extends EventEmitter { this.themes.forEach((themeName, index) => { if (themeName !== '') document.body.classList.remove(themeName); document.body.classList.remove(this.themeClasses[index]); + document.body.classList.remove(this.fontWeightClasses[index]); document.body.classList.remove('prism-light') document.body.classList.remove('prism-dark') }); @@ -71,6 +74,7 @@ class Settings extends EventEmitter { if (this.themes[themeIndex] === undefined) return if (this.themes[themeIndex]) document.body.classList.add(this.themes[themeIndex]); document.body.classList.add(this.themeClasses[themeIndex]); + document.body.classList.add(this.fontWeightClasses[themeIndex]); document.body.classList.add(themeIndex < 2 ? 'prism-light' : 'prism-dark'); } diff --git a/src/config.css.ts b/src/config.css.ts new file mode 100644 index 00000000..df04b909 --- /dev/null +++ b/src/config.css.ts @@ -0,0 +1,26 @@ +import { createTheme } from '@vanilla-extract/css'; +import { config } from 'folds'; + +export const onLightFontWeight = createTheme(config.fontWeight, { + W100: '100', + W200: '200', + W300: '300', + W400: '420', + W500: '500', + W600: '600', + W700: '700', + W800: '800', + W900: '900', +}); + +export const onDarkFontWeight = createTheme(config.fontWeight, { + W100: '100', + W200: '200', + W300: '300', + W400: '350', + W500: '450', + W600: '550', + W700: '650', + W800: '750', + W900: '850', +}); diff --git a/src/font.js b/src/font.js deleted file mode 100644 index 94b1f478..00000000 --- a/src/font.js +++ /dev/null @@ -1,5 +0,0 @@ -import '@fontsource/roboto/300.css'; -import '@fontsource/roboto/400.css'; -import '@fontsource/roboto/500.css'; -import '@fontsource/roboto/700.css'; -import '@fontsource/inter/variable.css'; diff --git a/src/index.jsx b/src/index.jsx index e7256e25..a8a76570 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -8,7 +8,6 @@ import { configClass, varsClass } from 'folds'; enableMapSet(); -import './font'; import './index.scss'; import settings from './client/state/settings'; diff --git a/src/index.scss b/src/index.scss index 04125a1c..90ce60a8 100644 --- a/src/index.scss +++ b/src/index.scss @@ -158,7 +158,7 @@ /* font-weight */ --fw-light: 300; - --fw-normal: 400; + --fw-normal: 420; --fw-medium: 500; --fw-bold: 700; @@ -193,8 +193,8 @@ --fluid-slide-up: cubic-bezier(0.13, 0.56, 0.25, 0.99); --font-emoji: 'Twemoji'; - --font-primary: 'Roboto', var(--font-emoji), sans-serif; - --font-secondary: 'Roboto', var(--font-emoji), sans-serif; + --font-primary: 'InterVariable', var(--font-emoji), sans-serif; + --font-secondary: 'InterVariable', var(--font-emoji), sans-serif; } .silver-theme { @@ -291,8 +291,10 @@ /* override normal font weight for dark mode */ --fw-normal: 350; + --fw-medium: 450; + --fw-bold: 550; - --font-secondary: 'InterVariable', 'Roboto', var(--font-emoji), sans-serif; + --font-secondary: 'InterVariable', var(--font-emoji), sans-serif; } .butter-theme { From 13573f4b3f562d785a498af162a181267150133e Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 7 Oct 2023 20:21:35 +1100 Subject: [PATCH 365/717] Fix space mention (#1439) * open space on space mention click * fix styles * fix message options sticks * revert last changes --- src/app/organisms/room/RoomTimeline.tsx | 10 ++++++++-- src/app/organisms/room/RoomViewTyping.css.ts | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index b3902d8b..c41bfbb8 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -86,7 +86,12 @@ import { } from '../../utils/room'; import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; -import { openJoinAlias, openProfileViewer, selectRoom } from '../../../client/action/navigation'; +import { + openJoinAlias, + openProfileViewer, + selectRoom, + selectSpace, +} from '../../../client/action/navigation'; import { useForceUpdate } from '../../hooks/useForceUpdate'; import { parseGeoUri, scaleYDimension } from '../../utils/common'; import { useMatrixEventRenderer } from '../../hooks/useMatrixEventRenderer'; @@ -536,7 +541,8 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli return; } if (isRoomId(mentionId) && mx.getRoom(mentionId)) { - selectRoom(mentionId); + if (mx.getRoom(mentionId)?.isSpaceRoom()) selectSpace(mentionId); + else selectRoom(mentionId); return; } openJoinAlias(mentionId); diff --git a/src/app/organisms/room/RoomViewTyping.css.ts b/src/app/organisms/room/RoomViewTyping.css.ts index 9def1aee..5c90a178 100644 --- a/src/app/organisms/room/RoomViewTyping.css.ts +++ b/src/app/organisms/room/RoomViewTyping.css.ts @@ -13,7 +13,7 @@ const SlideUpAnime = keyframes({ export const RoomViewTyping = style([ DefaultReset, { - padding: `${config.space.S100} ${config.space.S500}`, + padding: `0 ${config.space.S500}`, width: '100%', backgroundColor: color.Surface.Container, color: color.Surface.OnContainer, From bffd27ae5b6a99ea13823cbe7181e38dc9d44b45 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 8 Oct 2023 00:09:43 +1100 Subject: [PATCH 366/717] Fix-jump-latest-senstivity (#1440) * fix jump to latest sensitivity * select mention space as tab --- src/app/hooks/useVirtualPaginator.ts | 2 +- src/app/organisms/room/RoomTimeline.tsx | 33 ++++++++++++++----------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/app/hooks/useVirtualPaginator.ts b/src/app/hooks/useVirtualPaginator.ts index 550e11c0..9ffc7f91 100644 --- a/src/app/hooks/useVirtualPaginator.ts +++ b/src/app/hooks/useVirtualPaginator.ts @@ -319,7 +319,7 @@ export const useVirtualPaginator = ( const intersectionObserver = useIntersectionObserver( handlePaginatorElIntersection, - useMemo( + useCallback( () => ({ root: getScrollElement(), }), diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index c41bfbb8..96555f3d 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -90,7 +90,7 @@ import { openJoinAlias, openProfileViewer, selectRoom, - selectSpace, + selectTab, } from '../../../client/action/navigation'; import { useForceUpdate } from '../../hooks/useForceUpdate'; import { parseGeoUri, scaleYDimension } from '../../utils/common'; @@ -115,7 +115,6 @@ import { useMemberEventParser } from '../../hooks/useMemberEventParser'; import * as customHtmlCss from '../../styles/CustomHtml.css'; import { RoomIntro } from '../../components/room-intro'; import { - OnIntersectionCallback, getIntersectionObserverEntry, useIntersectionObserver, } from '../../hooks/useIntersectionObserver'; @@ -541,7 +540,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli return; } if (isRoomId(mentionId) && mx.getRoom(mentionId)) { - if (mx.getRoom(mentionId)?.isSpaceRoom()) selectSpace(mentionId); + if (mx.getRoom(mentionId)?.isSpaceRoom()) selectTab(mentionId); else selectRoom(mentionId); return; } @@ -674,18 +673,24 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli useCallback(() => roomInputRef.current, [roomInputRef]) ); - const handleAtBottomIntersection: OnIntersectionCallback = useCallback((entries) => { - const target = atBottomAnchorRef.current; - if (!target) return; - const targetEntry = getIntersectionObserverEntry(target, entries); - - setAtBottom(targetEntry?.isIntersecting === true); - }, []); + const debounceSetAtBottom = useDebounce( + useCallback((entry: IntersectionObserverEntry) => { + if (!entry.isIntersecting) setAtBottom(false); + }, []), + { wait: 1000 } + ); useIntersectionObserver( - useDebounce(handleAtBottomIntersection, { - wait: 200, - }), - useMemo( + useCallback( + (entries) => { + const target = atBottomAnchorRef.current; + if (!target) return; + const targetEntry = getIntersectionObserverEntry(target, entries); + if (targetEntry) debounceSetAtBottom(targetEntry); + if (targetEntry?.isIntersecting) setAtBottom(true); + }, + [debounceSetAtBottom] + ), + useCallback( () => ({ root: getScrollElement(), rootMargin: '100px', From 60b5b5d312e9e82bdd5480424686f78cfd02d293 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 8 Oct 2023 16:35:16 +1100 Subject: [PATCH 367/717] consider membership change with reason change (#1441) --- src/app/hooks/useMemberEventParser.tsx | 3 ++- src/app/hooks/useRoomLatestRenderedEvent.ts | 3 ++- src/app/organisms/room/RoomTimeline.tsx | 4 ++-- src/app/utils/room.ts | 4 ++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/app/hooks/useMemberEventParser.tsx b/src/app/hooks/useMemberEventParser.tsx index ecb6f66b..367e76d9 100644 --- a/src/app/hooks/useMemberEventParser.tsx +++ b/src/app/hooks/useMemberEventParser.tsx @@ -3,6 +3,7 @@ import { IconSrc, Icons } from 'folds'; import { MatrixEvent } from 'matrix-js-sdk'; import { IMemberContent, Membership } from '../../types/matrix/room'; import { getMxIdLocalPart } from '../utils/matrix'; +import { isMembershipChanged } from '../utils/room'; export type ParsedResult = { icon: IconSrc; @@ -27,7 +28,7 @@ export const useMemberEventParser = (): MemberEventParser => { const senderName = getMxIdLocalPart(senderId); const userName = content.displayname || getMxIdLocalPart(userId); - if (content.membership !== prevContent.membership) { + if (isMembershipChanged(mEvent)) { if (content.membership === Membership.Invite) { if (prevContent.membership === Membership.Knock) { return { diff --git a/src/app/hooks/useRoomLatestRenderedEvent.ts b/src/app/hooks/useRoomLatestRenderedEvent.ts index 295d1030..428e7b52 100644 --- a/src/app/hooks/useRoomLatestRenderedEvent.ts +++ b/src/app/hooks/useRoomLatestRenderedEvent.ts @@ -4,6 +4,7 @@ import { useEffect, useState } from 'react'; import { settingsAtom } from '../state/settings'; import { useSetting } from '../state/hooks/settings'; import { MessageEvent, StateEvent } from '../../types/matrix/room'; +import { isMembershipChanged } from '../utils/room'; export const useRoomLatestRenderedEvent = (room: Room) => { const [hideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); @@ -20,7 +21,7 @@ export const useRoomLatestRenderedEvent = (room: Room) => { if (!evt) continue; if (evt.isRelation()) continue; if (evt.getType() === StateEvent.RoomMember) { - const membershipChanged = evt.getContent().membership !== evt.getPrevContent().membership; + const membershipChanged = isMembershipChanged(evt); if (membershipChanged && hideMembershipEvents) continue; if (!membershipChanged && hideNickAvatarEvents) continue; return evt; diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 96555f3d..03744c33 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -83,6 +83,7 @@ import { decryptAllTimelineEvent, getMemberDisplayName, getReactionContent, + isMembershipChanged, } from '../../utils/room'; import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; @@ -1311,8 +1312,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli ); }, renderRoomMember: (mEventId, mEvent, item) => { - const membershipChanged = - mEvent.getContent().membership !== mEvent.getPrevContent().membership; + const membershipChanged = isMembershipChanged(mEvent); if (membershipChanged && hideMembershipEvents) return null; if (!membershipChanged && hideNickAvatarEvents) return null; diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts index f8637833..af9505d4 100644 --- a/src/app/utils/room.ts +++ b/src/app/utils/room.ts @@ -278,6 +278,10 @@ export const getMemberAvatarMxc = (room: Room, userId: string): string | undefin return member?.getMxcAvatarUrl(); }; +export const isMembershipChanged = (mEvent: MatrixEvent): boolean => + mEvent.getContent().membership !== mEvent.getPrevContent().membership || + mEvent.getContent().reason !== mEvent.getPrevContent().reason; + export const decryptAllTimelineEvent = async (mx: MatrixClient, timeline: EventTimeline) => { const crypto = mx.getCrypto(); if (!crypto) return; From 5940cf24a0ed86149202496bba4a23ad923134f2 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 9 Oct 2023 22:26:54 +1100 Subject: [PATCH 368/717] Inline markdown in editor (#1442) * add inline markdown in editor * send markdown re-generative data in tags * enable vscode format on save * fix match italic and diff order * prevent formatting in code block * make code md rule highest * improve inline markdown parsing * add comment * improve code logic --- src/app/components/editor/output.ts | 43 ++++-- src/app/organisms/room/RoomInput.tsx | 10 +- src/app/organisms/settings/Settings.jsx | 11 +- src/app/utils/markdown.ts | 191 ++++++++++++++++++++++++ 4 files changed, 237 insertions(+), 18 deletions(-) create mode 100644 src/app/utils/markdown.ts diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 5d0443fa..92c86dd8 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -2,15 +2,28 @@ import { Descendant, Text } from 'slate'; import { sanitizeText } from '../../utils/sanitize'; import { BlockType } from './Elements'; import { CustomElement, FormattedText } from './slate'; +import { parseInlineMD } from '../../utils/markdown'; -const textToCustomHtml = (node: FormattedText): string => { +export type OutputOptions = { + allowTextFormatting?: boolean; + allowMarkdown?: boolean; +}; + +const textToCustomHtml = (node: FormattedText, opts: OutputOptions): string => { let string = sanitizeText(node.text); - if (node.bold) string = `${string}`; - if (node.italic) string = `${string}`; - if (node.underline) string = `${string}`; - if (node.strikeThrough) string = `${string}`; - if (node.code) string = `${string}`; - if (node.spoiler) string = `${string}`; + if (opts.allowTextFormatting) { + if (node.bold) string = `${string}`; + if (node.italic) string = `${string}`; + if (node.underline) string = `${string}`; + if (node.strikeThrough) string = `${string}`; + if (node.code) string = `${string}`; + if (node.spoiler) string = `${string}`; + } + + if (opts.allowMarkdown && string === sanitizeText(node.text)) { + string = parseInlineMD(string); + } + return string; }; @@ -47,11 +60,19 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { } }; -export const toMatrixCustomHTML = (node: Descendant | Descendant[]): string => { - if (Array.isArray(node)) return node.map((n) => toMatrixCustomHTML(n)).join(''); - if (Text.isText(node)) return textToCustomHtml(node); +export const toMatrixCustomHTML = ( + node: Descendant | Descendant[], + opts: OutputOptions +): string => { + const parseNode = (n: Descendant) => { + const isCodeLine = 'type' in n && n.type === BlockType.CodeLine; + if (isCodeLine) return toMatrixCustomHTML(n, {}); + return toMatrixCustomHTML(n, opts); + }; + if (Array.isArray(node)) return node.map(parseNode).join(''); + if (Text.isText(node)) return textToCustomHtml(node, opts); - const children = node.children.map((n) => toMatrixCustomHTML(n)).join(''); + const children = node.children.map(parseNode).join(''); return elementToCustomHtml(node, children); }; diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index efef03a2..7564d5f4 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -108,6 +108,7 @@ export const RoomInput = forwardRef( ({ editor, roomViewRef, roomId }, ref) => { const mx = useMatrixClient(); const room = mx.getRoom(roomId); + const [isMarkdown] = useSetting(settingsAtom, 'isMarkdown'); const [msgDraft, setMsgDraft] = useAtom(roomIdToMsgDraftAtomFamily(roomId)); const [replyDraft, setReplyDraft] = useAtom(roomIdToReplyDraftAtomFamily(roomId)); @@ -251,7 +252,12 @@ export const RoomInput = forwardRef( uploadBoardHandlers.current?.handleSend(); const plainText = toPlainText(editor.children).trim(); - const customHtml = trimCustomHtml(toMatrixCustomHTML(editor.children)); + const customHtml = trimCustomHtml( + toMatrixCustomHTML(editor.children, { + allowTextFormatting: true, + allowMarkdown: isMarkdown, + }) + ); if (plainText === '') return; @@ -288,7 +294,7 @@ export const RoomInput = forwardRef( resetEditorHistory(editor); setReplyDraft(); sendTypingStatus(false); - }, [mx, roomId, editor, replyDraft, sendTypingStatus, setReplyDraft]); + }, [mx, roomId, editor, replyDraft, sendTypingStatus, setReplyDraft, isMarkdown]); const handleKeyDown: KeyboardEventHandler = useCallback( (evt) => { diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index fef15867..bd9ce044 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -6,7 +6,7 @@ import cons from '../../../client/state/cons'; import settings from '../../../client/state/settings'; import navigation from '../../../client/state/navigation'; import { - toggleSystemTheme, toggleMarkdown, + toggleSystemTheme, toggleNotifications, toggleNotificationSounds, } from '../../../client/action/settings'; import { usePermission } from '../../hooks/usePermission'; @@ -52,6 +52,7 @@ function AppearanceSection() { const [messageLayout, setMessageLayout] = useSetting(settingsAtom, 'messageLayout'); const [messageSpacing, setMessageSpacing] = useSetting(settingsAtom, 'messageSpacing'); const [useSystemEmoji, setUseSystemEmoji] = useSetting(settingsAtom, 'useSystemEmoji'); + const [isMarkdown, setIsMarkdown] = useSetting(settingsAtom, 'isMarkdown'); const [hideMembershipEvents, setHideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); const [hideNickAvatarEvents, setHideNickAvatarEvents] = useSetting(settingsAtom, 'hideNickAvatarEvents'); const [mediaAutoLoad, setMediaAutoLoad] = useSetting(settingsAtom, 'mediaAutoLoad'); @@ -138,14 +139,14 @@ function AppearanceSection() { } /> { toggleMarkdown(); updateState({}); }} + isActive={isMarkdown} + onToggle={() => setIsMarkdown(!isMarkdown) } /> )} - content={Format messages with markdown syntax before sending.} + content={Format messages with inline markdown syntax before sending.} /> string; +export type MatchResult = RegExpMatchArray | RegExpExecArray; +export type RuleMatch = (text: string) => MatchResult | null; +export type MatchConverter = (parse: PlainMDParser, match: MatchResult) => string; + +export type MDRule = { + match: RuleMatch; + html: MatchConverter; +}; + +export type MatchReplacer = ( + parse: PlainMDParser, + text: string, + match: MatchResult, + content: string +) => string; + +export type RuleRunner = (parse: PlainMDParser, text: string, rule: MDRule) => string | undefined; +export type RulesRunner = ( + parse: PlainMDParser, + text: string, + rules: MDRule[] +) => string | undefined; + +const MIN_ANY = '(.+?)'; + +const BOLD_MD_1 = '**'; +const BOLD_PREFIX_1 = '\\*{2}'; +const BOLD_NEG_LA_1 = '(?!\\*)'; +const BOLD_REG_1 = new RegExp(`${BOLD_PREFIX_1}${MIN_ANY}${BOLD_PREFIX_1}${BOLD_NEG_LA_1}`); +const BoldRule: MDRule = { + match: (text) => text.match(BOLD_REG_1), + html: (parse, match) => { + const [, g1] = match; + const child = parse(g1); + return `${child}`; + }, +}; + +const ITALIC_MD_1 = '*'; +const ITALIC_PREFIX_1 = '\\*'; +const ITALIC_NEG_LA_1 = '(?!\\*)'; +const ITALIC_REG_1 = new RegExp(`${ITALIC_PREFIX_1}${MIN_ANY}${ITALIC_PREFIX_1}${ITALIC_NEG_LA_1}`); +const ItalicRule1: MDRule = { + match: (text) => text.match(ITALIC_REG_1), + html: (parse, match) => { + const [, g1] = match; + return `${parse(g1)}`; + }, +}; + +const ITALIC_MD_2 = '_'; +const ITALIC_PREFIX_2 = '_'; +const ITALIC_NEG_LA_2 = '(?!_)'; +const ITALIC_REG_2 = new RegExp(`${ITALIC_PREFIX_2}${MIN_ANY}${ITALIC_PREFIX_2}${ITALIC_NEG_LA_2}`); +const ItalicRule2: MDRule = { + match: (text) => text.match(ITALIC_REG_2), + html: (parse, match) => { + const [, g1] = match; + return `${parse(g1)}`; + }, +}; + +const UNDERLINE_MD_1 = '__'; +const UNDERLINE_PREFIX_1 = '_{2}'; +const UNDERLINE_NEG_LA_1 = '(?!_)'; +const UNDERLINE_REG_1 = new RegExp( + `${UNDERLINE_PREFIX_1}${MIN_ANY}${UNDERLINE_PREFIX_1}${UNDERLINE_NEG_LA_1}` +); +const UnderlineRule: MDRule = { + match: (text) => text.match(UNDERLINE_REG_1), + html: (parse, match) => { + const [, g1] = match; + return `${parse(g1)}`; + }, +}; + +const STRIKE_MD_1 = '~~'; +const STRIKE_PREFIX_1 = '~{2}'; +const STRIKE_NEG_LA_1 = '(?!~)'; +const STRIKE_REG_1 = new RegExp(`${STRIKE_PREFIX_1}${MIN_ANY}${STRIKE_PREFIX_1}${STRIKE_NEG_LA_1}`); +const StrikeRule: MDRule = { + match: (text) => text.match(STRIKE_REG_1), + html: (parse, match) => { + const [, g1] = match; + return `${parse(g1)}`; + }, +}; + +const CODE_MD_1 = '`'; +const CODE_PREFIX_1 = '`'; +const CODE_NEG_LA_1 = '(?!`)'; +const CODE_REG_1 = new RegExp(`${CODE_PREFIX_1}${MIN_ANY}${CODE_PREFIX_1}${CODE_NEG_LA_1}`); +const CodeRule: MDRule = { + match: (text) => text.match(CODE_REG_1), + html: (parse, match) => { + const [, g1] = match; + return `${g1}`; + }, +}; + +const SPOILER_MD_1 = '||'; +const SPOILER_PREFIX_1 = '\\|{2}'; +const SPOILER_NEG_LA_1 = '(?!\\|)'; +const SPOILER_REG_1 = new RegExp( + `${SPOILER_PREFIX_1}${MIN_ANY}${SPOILER_PREFIX_1}${SPOILER_NEG_LA_1}` +); +const SpoilerRule: MDRule = { + match: (text) => text.match(SPOILER_REG_1), + html: (parse, match) => { + const [, g1] = match; + return `${parse(g1)}`; + }, +}; + +const LINK_ALT = `\\[${MIN_ANY}\\]`; +const LINK_URL = `\\((https?:\\/\\/.+?)\\)`; +const LINK_REG_1 = new RegExp(`${LINK_ALT}${LINK_URL}`); +const LinkRule: MDRule = { + match: (text) => text.match(LINK_REG_1), + html: (parse, match) => { + const [, g1, g2] = match; + return `${parse(g1)}`; + }, +}; + +const beforeMatch = (text: string, match: RegExpMatchArray | RegExpExecArray): string => + text.slice(0, match.index); +const afterMatch = (text: string, match: RegExpMatchArray | RegExpExecArray): string => + text.slice((match.index ?? 0) + match[0].length); + +const replaceMatch: MatchReplacer = (parse, text, match, content) => + `${parse(beforeMatch(text, match))}${content}${parse(afterMatch(text, match))}`; + +const runRule: RuleRunner = (parse, text, rule) => { + const matchResult = rule.match(text); + if (matchResult) { + const content = rule.html(parse, matchResult); + return replaceMatch(parse, text, matchResult, content); + } + return undefined; +}; + +/** + * Runs multiple rules at the same time to better handle nested rules. + * Rules will be run in the order they appear. + */ +const runRules: RulesRunner = (parse, text, rules) => { + const matchResults = rules.map((rule) => rule.match(text)); + + let targetRule: MDRule | undefined; + let targetResult: MatchResult | undefined; + + for (let i = 0; i < matchResults.length; i += 1) { + const currentResult = matchResults[i]; + if (currentResult && typeof currentResult.index === 'number') { + if ( + !targetResult || + (typeof targetResult?.index === 'number' && currentResult.index < targetResult.index) + ) { + targetResult = currentResult; + targetRule = rules[i]; + } + } + } + + if (targetRule && targetResult) { + const content = targetRule.html(parse, targetResult); + return replaceMatch(parse, text, targetResult, content); + } + return undefined; +}; + +const LeveledRules = [ + BoldRule, + ItalicRule1, + UnderlineRule, + ItalicRule2, + StrikeRule, + SpoilerRule, + LinkRule, +]; + +export const parseInlineMD = (text: string): string => { + let result: string | undefined; + if (!result) result = runRule(parseInlineMD, text, CodeRule); + + if (!result) result = runRules(parseInlineMD, text, LeveledRules); + + return result ?? text; +}; From d0f2a865bc57e7d41cce99acb2ad47b226983e8b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:07:03 +1100 Subject: [PATCH 369/717] make file, image viewer wide (#1444) --- src/app/organisms/room/message/FileContent.tsx | 13 +++++++++++-- src/app/organisms/room/message/ImageContent.tsx | 6 +++++- src/app/organisms/room/message/styles.css.ts | 5 +++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/app/organisms/room/message/FileContent.tsx b/src/app/organisms/room/message/FileContent.tsx index c6bd45d4..303c4534 100644 --- a/src/app/organisms/room/message/FileContent.tsx +++ b/src/app/organisms/room/message/FileContent.tsx @@ -25,6 +25,7 @@ import { bytesToSize } from '../../../utils/common'; import { TextViewer } from '../../../components/text-viewer'; import { READABLE_TEXT_MIME_TYPES } from '../../../utils/mimeTypes'; import { PdfViewer } from '../../../components/Pdf-viewer'; +import * as css from './styles.css'; export type FileContentProps = { body: string; @@ -94,7 +95,11 @@ function ReadTextFile({ body, mimeType, url, encInfo }: Omit - evt.stopPropagation()}> + evt.stopPropagation()} + > - evt.stopPropagation()}> + evt.stopPropagation()} + > ( clickOutsideDeactivates: true, }} > - evt.stopPropagation()}> + evt.stopPropagation()} + > Date: Tue, 10 Oct 2023 17:07:15 +1100 Subject: [PATCH 370/717] show missing member in read receipt (#1445) --- .../components/event-readers/EventReaders.tsx | 30 +++++++------------ src/app/organisms/room/RoomViewFollowing.tsx | 14 ++++----- 2 files changed, 17 insertions(+), 27 deletions(-) diff --git a/src/app/components/event-readers/EventReaders.tsx b/src/app/components/event-readers/EventReaders.tsx index c05efc50..a5a2646f 100644 --- a/src/app/components/event-readers/EventReaders.tsx +++ b/src/app/components/event-readers/EventReaders.tsx @@ -15,7 +15,7 @@ import { as, config, } from 'folds'; -import { Room, RoomMember } from 'matrix-js-sdk'; +import { Room } from 'matrix-js-sdk'; import { useRoomEventReaders } from '../../hooks/useRoomEventReaders'; import { getMemberDisplayName } from '../../utils/room'; import { getMxIdLocalPart } from '../../utils/matrix'; @@ -33,12 +33,9 @@ export const EventReaders = as<'div', EventReadersProps>( ({ className, room, eventId, requestClose, ...props }, ref) => { const mx = useMatrixClient(); const latestEventReaders = useRoomEventReaders(room, eventId); - const followingMembers = latestEventReaders - .map((readerId) => room.getMember(readerId)) - .filter((member) => member) as RoomMember[]; - const getName = (member: RoomMember) => - getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) ?? member.userId; + const getName = (userId: string) => + getMemberDisplayName(room, userId) ?? getMxIdLocalPart(userId) ?? userId; return ( ( - {followingMembers.map((member) => { - const name = getName(member); - const avatarUrl = member.getAvatarUrl( - mx.baseUrl, - 100, - 100, - 'crop', - undefined, - false - ); + {latestEventReaders.map((readerId) => { + const name = getName(readerId); + const avatarUrl = room + .getMember(readerId) + ?.getAvatarUrl(mx.baseUrl, 100, 100, 'crop', undefined, false); return ( { requestClose(); - openProfileViewer(member.userId, room.roomId); + openProfileViewer(readerId, room.roomId); }} before={ @@ -85,7 +77,7 @@ export const EventReaders = as<'div', EventReadersProps>( ) : ( diff --git a/src/app/organisms/room/RoomViewFollowing.tsx b/src/app/organisms/room/RoomViewFollowing.tsx index a49f70d9..2f7a583e 100644 --- a/src/app/organisms/room/RoomViewFollowing.tsx +++ b/src/app/organisms/room/RoomViewFollowing.tsx @@ -11,7 +11,7 @@ import { as, config, } from 'folds'; -import { Room, RoomMember } from 'matrix-js-sdk'; +import { Room } from 'matrix-js-sdk'; import classNames from 'classnames'; import FocusTrap from 'focus-trap-react'; @@ -32,13 +32,11 @@ export const RoomViewFollowing = as<'div', RoomViewFollowingProps>( const [open, setOpen] = useState(false); const latestEvent = useRoomLatestRenderedEvent(room); const latestEventReaders = useRoomEventReaders(room, latestEvent?.getId()); - const followingMembers = latestEventReaders - .map((readerId) => room.getMember(readerId)) - .filter((member) => member && member.userId !== mx.getUserId()) as RoomMember[]; - - const names = followingMembers.map( - (member) => getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) - ); + const names = latestEventReaders + .filter((readerId) => readerId !== mx.getUserId()) + .map( + (readerId) => getMemberDisplayName(room, readerId) ?? getMxIdLocalPart(readerId) ?? readerId + ); const eventId = latestEvent?.getId(); From 152576e85d46dd9d47296dc2e61491fe24bc735e Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:07:28 +1100 Subject: [PATCH 371/717] Render file as readable with ext (#1446) --- src/app/components/text-viewer/TextViewer.tsx | 10 ++--- .../organisms/room/message/FileContent.tsx | 16 ++++++-- src/app/organisms/room/message/Message.tsx | 2 +- src/app/utils/mimeTypes.ts | 41 +++++++++++++++++++ 4 files changed, 58 insertions(+), 11 deletions(-) diff --git a/src/app/components/text-viewer/TextViewer.tsx b/src/app/components/text-viewer/TextViewer.tsx index 37642dbf..7829fb35 100644 --- a/src/app/components/text-viewer/TextViewer.tsx +++ b/src/app/components/text-viewer/TextViewer.tsx @@ -4,7 +4,6 @@ import classNames from 'classnames'; import { Box, Chip, Header, Icon, IconButton, Icons, Scroll, Text, as } from 'folds'; import { ErrorBoundary } from 'react-error-boundary'; import * as css from './TextViewer.css'; -import { mimeTypeToExt } from '../../utils/mimeTypes'; import { copyToClipboard } from '../../utils/dom'; const ReactPrism = lazy(() => import('../../plugins/react-prism/ReactPrism')); @@ -12,12 +11,12 @@ const ReactPrism = lazy(() => import('../../plugins/react-prism/ReactPrism')); export type TextViewerProps = { name: string; text: string; - mimeType: string; + langName: string; requestClose: () => void; }; export const TextViewer = as<'div', TextViewerProps>( - ({ className, name, text, mimeType, requestClose, ...props }, ref) => { + ({ className, name, text, langName, requestClose, ...props }, ref) => { const handleCopy = () => { copyToClipboard(text); }; @@ -51,10 +50,7 @@ export const TextViewer = as<'div', TextViewerProps>( alignItems="Center" > - + {text}}> {text}}> {(codeRef) => {text}} diff --git a/src/app/organisms/room/message/FileContent.tsx b/src/app/organisms/room/message/FileContent.tsx index 303c4534..9c659667 100644 --- a/src/app/organisms/room/message/FileContent.tsx +++ b/src/app/organisms/room/message/FileContent.tsx @@ -23,7 +23,12 @@ import { useMatrixClient } from '../../../hooks/useMatrixClient'; import { getFileSrcUrl, getSrcFile } from './util'; import { bytesToSize } from '../../../utils/common'; import { TextViewer } from '../../../components/text-viewer'; -import { READABLE_TEXT_MIME_TYPES } from '../../../utils/mimeTypes'; +import { + READABLE_EXT_TO_MIME_TYPE, + READABLE_TEXT_MIME_TYPES, + getFileNameExt, + mimeTypeToExt, +} from '../../../utils/mimeTypes'; import { PdfViewer } from '../../../components/Pdf-viewer'; import * as css from './styles.css'; @@ -103,7 +108,11 @@ function ReadTextFile({ body, mimeType, url, encInfo }: Omit setTextViewer(false)} /> @@ -247,7 +256,8 @@ function DownloadFile({ body, mimeType, url, info, encInfo }: FileContentProps) export const FileContent = as<'div', FileContentProps>( ({ body, mimeType, url, info, encInfo, ...props }, ref) => ( - {READABLE_TEXT_MIME_TYPES.includes(mimeType) && ( + {(READABLE_TEXT_MIME_TYPES.includes(mimeType) || + READABLE_EXT_TO_MIME_TYPE[getFileNameExt(body)]) && ( )} {mimeType === 'application/pdf' && ( diff --git a/src/app/organisms/room/message/Message.tsx b/src/app/organisms/room/message/Message.tsx index 8f25861e..13e43260 100644 --- a/src/app/organisms/room/message/Message.tsx +++ b/src/app/organisms/room/message/Message.tsx @@ -246,7 +246,7 @@ export const MessageSourceCodeItem = as< diff --git a/src/app/utils/mimeTypes.ts b/src/app/utils/mimeTypes.ts index c883ddb9..2a923677 100644 --- a/src/app/utils/mimeTypes.ts +++ b/src/app/utils/mimeTypes.ts @@ -57,6 +57,43 @@ export const READABLE_TEXT_MIME_TYPES = [ ...TEXT_MIME_TYPE, ]; +export const READABLE_EXT_TO_MIME_TYPE: Record = { + go: 'text/go', + rs: 'text/rust', + py: 'text/python', + swift: 'text/swift', + c: 'text/c', + cpp: 'text/cpp', + java: 'text/java', + kt: 'text/kotlin', + lua: 'text/lua', + php: 'text/php', + ts: 'text/typescript', + js: 'text/javascript', + jsx: 'text/jsx', + tsx: 'text/tsx', + html: 'text/html', + xhtml: 'text/xhtml', + xht: 'text/xhtml', + css: 'text/css', + scss: 'text/scss', + sass: 'text/sass', + json: 'text/json', + md: 'text/markdown', + yaml: 'text/yaml', + yni: 'text/yni', + xml: 'text/xml', + txt: 'text/plain', + text: 'text/plain', + conf: 'text/conf', + cfg: 'text/conf', + cnf: 'text/conf', + log: 'text/log', + me: 'text/me', + cvs: 'text/cvs', + tvs: 'text/tvs', +}; + export const ALLOWED_BLOB_MIME_TYPES = [ ...IMAGE_MIME_TYPES, ...VIDEO_MIME_TYPES, @@ -92,3 +129,7 @@ export const mimeTypeToExt = (mimeType: string): string => { const extStart = mimeType.lastIndexOf('/') + 1; return mimeType.slice(extStart); }; +export const getFileNameExt = (fileName: string): string => { + const extStart = fileName.lastIndexOf('.') + 1; + return fileName.slice(extStart); +}; From f5bcc9b851dc7799c56449d4bd90bbe7c68733a7 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 14 Oct 2023 16:08:43 +1100 Subject: [PATCH 372/717] Edit option (#1447) * add func to parse html to editor input * add plain to html input function * re-construct markdown * fix missing return * fix falsy condition * fix reading href instead of src of emoji * add message editor - WIP * fix plain to editor input func * add save edit message functionality * show edited event source code * focus message input on after editing message * use del tag for strike-through instead of s * prevent autocomplete from re-opening after esc * scroll out of view msg editor in view * handle up arrow edit * handle scroll to message editor without effect * revert prev commit: effect run after editor render * ignore relation event from editable * allow data-md tag for del and em in sanitize html * prevent edit without changes * ignore previous reply when replying to msg * fix up arrow edit not working sometime --- package-lock.json | 2 + package.json | 2 + src/app/components/editor/Editor.tsx | 5 +- src/app/components/editor/common.ts | 9 + src/app/components/editor/index.ts | 1 + src/app/components/editor/input.ts | 327 ++++++++++++++++++ src/app/components/editor/output.ts | 8 +- src/app/components/editor/slate.d.ts | 19 +- src/app/organisms/room/RoomInput.tsx | 53 ++- src/app/organisms/room/RoomTimeline.tsx | 134 ++++--- src/app/organisms/room/message/Message.tsx | 104 +++++- .../organisms/room/message/MessageEditor.tsx | 295 ++++++++++++++++ src/app/organisms/room/message/Reactions.tsx | 9 +- src/app/utils/dom.ts | 6 +- src/app/utils/markdown.ts | 2 +- src/app/utils/matrix.ts | 9 + src/app/utils/room.ts | 69 ++++ src/app/utils/sanitize.ts | 11 +- 18 files changed, 957 insertions(+), 108 deletions(-) create mode 100644 src/app/components/editor/input.ts create mode 100644 src/app/organisms/room/message/MessageEditor.tsx diff --git a/package-lock.json b/package-lock.json index 6213a1df..70c90a9a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "classnames": "2.3.2", "dateformat": "5.0.3", "dayjs": "1.11.10", + "domhandler": "5.0.3", "emojibase": "6.1.0", "emojibase-data": "7.0.1", "file-saver": "2.0.5", @@ -30,6 +31,7 @@ "focus-trap-react": "10.0.2", "folds": "1.5.0", "formik": "2.2.9", + "html-dom-parser": "4.0.0", "html-react-parser": "4.2.0", "immer": "9.0.16", "is-hotkey": "0.2.0", diff --git a/package.json b/package.json index 8ee5cc54..7467126e 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "classnames": "2.3.2", "dateformat": "5.0.3", "dayjs": "1.11.10", + "domhandler": "5.0.3", "emojibase": "6.1.0", "emojibase-data": "7.0.1", "file-saver": "2.0.5", @@ -40,6 +41,7 @@ "focus-trap-react": "10.0.2", "folds": "1.5.0", "formik": "2.2.9", + "html-dom-parser": "4.0.0", "html-react-parser": "4.2.0", "immer": "9.0.16", "is-hotkey": "0.2.0", diff --git a/src/app/components/editor/Editor.tsx b/src/app/components/editor/Editor.tsx index e5377f2f..62b41345 100644 --- a/src/app/components/editor/Editor.tsx +++ b/src/app/components/editor/Editor.tsx @@ -50,12 +50,13 @@ const withVoid = (editor: Editor): Editor => { }; export const useEditor = (): Editor => { - const [editor] = useState(withInline(withVoid(withReact(withHistory(createEditor()))))); + const [editor] = useState(() => withInline(withVoid(withReact(withHistory(createEditor()))))); return editor; }; export type EditorChangeHandler = (value: Descendant[]) => void; type CustomEditorProps = { + editableName?: string; top?: ReactNode; bottom?: ReactNode; before?: ReactNode; @@ -71,6 +72,7 @@ type CustomEditorProps = { export const CustomEditor = forwardRef( ( { + editableName, top, bottom, before, @@ -137,6 +139,7 @@ export const CustomEditor = forwardRef( hideTrack > { }); return worldStartPoint && Editor.range(editor, worldStartPoint, cursorPoint); }; + +export const isEmptyEditor = (editor: Editor): boolean => { + const firstChildren = editor.children[0]; + if (firstChildren && Element.isElement(firstChildren)) { + const isEmpty = editor.children.length === 1 && Editor.isEmpty(editor, firstChildren); + return isEmpty; + } + return false; +}; diff --git a/src/app/components/editor/index.ts b/src/app/components/editor/index.ts index 76ccf562..7c63ce61 100644 --- a/src/app/components/editor/index.ts +++ b/src/app/components/editor/index.ts @@ -5,3 +5,4 @@ export * from './Elements'; export * from './keyboard'; export * from './output'; export * from './Toolbar'; +export * from './input'; diff --git a/src/app/components/editor/input.ts b/src/app/components/editor/input.ts new file mode 100644 index 00000000..39db0e1b --- /dev/null +++ b/src/app/components/editor/input.ts @@ -0,0 +1,327 @@ +/* eslint-disable no-param-reassign */ +import { Descendant, Text } from 'slate'; +import parse from 'html-dom-parser'; +import { ChildNode, Element, isText, isTag } from 'domhandler'; + +import { sanitizeCustomHtml } from '../../utils/sanitize'; +import { BlockType, MarkType } from './Elements'; +import { + BlockQuoteElement, + CodeBlockElement, + CodeLineElement, + EmoticonElement, + HeadingElement, + HeadingLevel, + InlineElement, + ListItemElement, + MentionElement, + OrderedListElement, + ParagraphElement, + QuoteLineElement, + UnorderedListElement, +} from './slate'; +import { parseMatrixToUrl } from '../../utils/matrix'; +import { createEmoticonElement, createMentionElement } from './common'; + +const markNodeToType: Record = { + b: MarkType.Bold, + strong: MarkType.Bold, + i: MarkType.Italic, + em: MarkType.Italic, + u: MarkType.Underline, + s: MarkType.StrikeThrough, + del: MarkType.StrikeThrough, + code: MarkType.Code, + span: MarkType.Spoiler, +}; + +const elementToTextMark = (node: Element): MarkType | undefined => { + const markType = markNodeToType[node.name]; + if (!markType) return undefined; + + if (markType === MarkType.Spoiler && node.attribs['data-mx-spoiler'] === undefined) { + return undefined; + } + if ( + markType === MarkType.Code && + node.parent && + 'name' in node.parent && + node.parent.name === 'pre' + ) { + return undefined; + } + return markType; +}; + +const parseNodeText = (node: ChildNode): string => { + if (isText(node)) { + return node.data; + } + if (isTag(node)) { + return node.children.map((child) => parseNodeText(child)).join(''); + } + return ''; +}; + +const elementToInlineNode = (node: Element): MentionElement | EmoticonElement | undefined => { + if (node.name === 'img' && node.attribs['data-mx-emoticon'] !== undefined) { + const { src, alt } = node.attribs; + if (!src) return undefined; + return createEmoticonElement(src, alt || 'Unknown Emoji'); + } + if (node.name === 'a') { + const { href } = node.attribs; + if (typeof href !== 'string') return undefined; + const [mxId] = parseMatrixToUrl(href); + if (mxId) { + return createMentionElement(mxId, mxId, false); + } + } + return undefined; +}; + +const parseInlineNodes = (node: ChildNode): InlineElement[] => { + if (isText(node)) { + return [{ text: node.data }]; + } + if (isTag(node)) { + const markType = elementToTextMark(node); + if (markType) { + const children = node.children.flatMap(parseInlineNodes); + if (node.attribs['data-md'] !== undefined) { + children.unshift({ text: node.attribs['data-md'] }); + children.push({ text: node.attribs['data-md'] }); + } else { + children.forEach((child) => { + if (Text.isText(child)) { + child[markType] = true; + } + }); + } + return children; + } + + const inlineNode = elementToInlineNode(node); + if (inlineNode) return [inlineNode]; + + if (node.name === 'a') { + const children = node.childNodes.flatMap(parseInlineNodes); + children.unshift({ text: '[' }); + children.push({ text: `](${node.attribs.href})` }); + return children; + } + + return node.childNodes.flatMap(parseInlineNodes); + } + + return []; +}; + +const parseBlockquoteNode = (node: Element): BlockQuoteElement => { + const children: QuoteLineElement[] = []; + let lineHolder: InlineElement[] = []; + + const appendLine = () => { + if (lineHolder.length === 0) return; + + children.push({ + type: BlockType.QuoteLine, + children: lineHolder, + }); + lineHolder = []; + }; + + node.children.forEach((child) => { + if (isText(child)) { + lineHolder.push({ text: child.data }); + return; + } + if (isTag(child)) { + if (child.name === 'br') { + appendLine(); + return; + } + + if (child.name === 'p') { + appendLine(); + children.push({ + type: BlockType.QuoteLine, + children: child.children.flatMap((c) => parseInlineNodes(c)), + }); + return; + } + + parseInlineNodes(child).forEach((inlineNode) => lineHolder.push(inlineNode)); + } + }); + appendLine(); + + return { + type: BlockType.BlockQuote, + children, + }; +}; +const parseCodeBlockNode = (node: Element): CodeBlockElement => { + const children: CodeLineElement[] = []; + + const code = parseNodeText(node).trim(); + code.split('\n').forEach((lineTxt) => + children.push({ + type: BlockType.CodeLine, + children: [ + { + text: lineTxt, + }, + ], + }) + ); + + return { + type: BlockType.CodeBlock, + children, + }; +}; +const parseListNode = (node: Element): OrderedListElement | UnorderedListElement => { + const children: ListItemElement[] = []; + let lineHolder: InlineElement[] = []; + + const appendLine = () => { + if (lineHolder.length === 0) return; + + children.push({ + type: BlockType.ListItem, + children: lineHolder, + }); + lineHolder = []; + }; + + node.children.forEach((child) => { + if (isText(child)) { + lineHolder.push({ text: child.data }); + return; + } + if (isTag(child)) { + if (child.name === 'br') { + appendLine(); + return; + } + + if (child.name === 'li') { + appendLine(); + children.push({ + type: BlockType.ListItem, + children: child.children.flatMap((c) => parseInlineNodes(c)), + }); + return; + } + + parseInlineNodes(child).forEach((inlineNode) => lineHolder.push(inlineNode)); + } + }); + appendLine(); + + return { + type: node.name === 'ol' ? BlockType.OrderedList : BlockType.UnorderedList, + children, + }; +}; +const parseHeadingNode = (node: Element): HeadingElement => { + const children = node.children.flatMap((child) => parseInlineNodes(child)); + + const headingMatch = node.name.match(/^h([123456])$/); + const [, g1AsLevel] = headingMatch ?? ['h3', '3']; + const level = parseInt(g1AsLevel, 10); + return { + type: BlockType.Heading, + level: (level <= 3 ? level : 3) as HeadingLevel, + children, + }; +}; + +export const domToEditorInput = (domNodes: ChildNode[]): Descendant[] => { + const children: Descendant[] = []; + + let lineHolder: InlineElement[] = []; + + const appendLine = () => { + if (lineHolder.length === 0) return; + + children.push({ + type: BlockType.Paragraph, + children: lineHolder, + }); + lineHolder = []; + }; + + domNodes.forEach((node) => { + if (isText(node)) { + lineHolder.push({ text: node.data }); + return; + } + if (isTag(node)) { + if (node.name === 'br') { + appendLine(); + return; + } + + if (node.name === 'p') { + appendLine(); + children.push({ + type: BlockType.Paragraph, + children: node.children.flatMap((child) => parseInlineNodes(child)), + }); + return; + } + + if (node.name === 'blockquote') { + appendLine(); + children.push(parseBlockquoteNode(node)); + return; + } + if (node.name === 'pre') { + appendLine(); + children.push(parseCodeBlockNode(node)); + return; + } + if (node.name === 'ol' || node.name === 'ul') { + appendLine(); + children.push(parseListNode(node)); + return; + } + + if (node.name.match(/^h[123456]$/)) { + appendLine(); + children.push(parseHeadingNode(node)); + return; + } + + parseInlineNodes(node).forEach((inlineNode) => lineHolder.push(inlineNode)); + } + }); + appendLine(); + + return children; +}; + +export const htmlToEditorInput = (unsafeHtml: string): Descendant[] => { + const sanitizedHtml = sanitizeCustomHtml(unsafeHtml); + + const domNodes = parse(sanitizedHtml); + const editorNodes = domToEditorInput(domNodes); + return editorNodes; +}; + +export const plainToEditorInput = (text: string): Descendant[] => { + const editorNodes: Descendant[] = text.split('\n').map((lineText) => { + const paragraphNode: ParagraphElement = { + type: BlockType.Paragraph, + children: [ + { + text: lineText, + }, + ], + }; + return paragraphNode; + }); + return editorNodes; +}; diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 92c86dd8..89a5f7c5 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -1,7 +1,8 @@ import { Descendant, Text } from 'slate'; + import { sanitizeText } from '../../utils/sanitize'; import { BlockType } from './Elements'; -import { CustomElement, FormattedText } from './slate'; +import { CustomElement } from './slate'; import { parseInlineMD } from '../../utils/markdown'; export type OutputOptions = { @@ -9,13 +10,13 @@ export type OutputOptions = { allowMarkdown?: boolean; }; -const textToCustomHtml = (node: FormattedText, opts: OutputOptions): string => { +const textToCustomHtml = (node: Text, opts: OutputOptions): string => { let string = sanitizeText(node.text); if (opts.allowTextFormatting) { if (node.bold) string = `${string}`; if (node.italic) string = `${string}`; if (node.underline) string = `${string}`; - if (node.strikeThrough) string = `${string}`; + if (node.strikeThrough) string = `${string}`; if (node.code) string = `${string}`; if (node.spoiler) string = `${string}`; } @@ -47,6 +48,7 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { return `
    ${children}
`; case BlockType.UnorderedList: return `
    ${children}
`; + case BlockType.Mention: return `${node.name}`; case BlockType.Emoticon: diff --git a/src/app/components/editor/slate.d.ts b/src/app/components/editor/slate.d.ts index 74b20708..ee046a08 100644 --- a/src/app/components/editor/slate.d.ts +++ b/src/app/components/editor/slate.d.ts @@ -23,13 +23,9 @@ export type FormattedText = Text & { export type LinkElement = { type: BlockType.Link; href: string; - children: FormattedText[]; -}; -export type SpoilerElement = { - type: 'spoiler'; - alert?: string; - children: FormattedText[]; + children: Text[]; }; + export type MentionElement = { type: BlockType.Mention; id: string; @@ -44,14 +40,16 @@ export type EmoticonElement = { children: Text[]; }; +export type InlineElement = Text | LinkElement | MentionElement | EmoticonElement; + export type ParagraphElement = { type: BlockType.Paragraph; - children: FormattedText[]; + children: InlineElement[]; }; export type HeadingElement = { type: BlockType.Heading; level: HeadingLevel; - children: FormattedText[]; + children: InlineElement[]; }; export type CodeLineElement = { type: BlockType.CodeLine; @@ -63,7 +61,7 @@ export type CodeBlockElement = { }; export type QuoteLineElement = { type: BlockType.QuoteLine; - children: FormattedText[]; + children: InlineElement[]; }; export type BlockQuoteElement = { type: BlockType.BlockQuote; @@ -71,7 +69,7 @@ export type BlockQuoteElement = { }; export type ListItemElement = { type: BlockType.ListItem; - children: FormattedText[]; + children: InlineElement[]; }; export type OrderedListElement = { type: BlockType.OrderedList; @@ -84,7 +82,6 @@ export type UnorderedListElement = { export type CustomElement = | LinkElement - // | SpoilerElement | MentionElement | EmoticonElement | ParagraphElement diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index 7564d5f4..acb45b32 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -12,7 +12,7 @@ import { useAtom } from 'jotai'; import isHotkey from 'is-hotkey'; import { EventType, IContent, MsgType, Room } from 'matrix-js-sdk'; import { ReactEditor } from 'slate-react'; -import { Transforms, Range, Editor, Element } from 'slate'; +import { Transforms, Range, Editor } from 'slate'; import { Box, Dialog, @@ -51,6 +51,7 @@ import { resetEditorHistory, customHtmlEqualsPlainText, trimCustomHtml, + isEmptyEditor, } from '../../components/editor'; import { EmojiBoard, EmojiBoardTab } from '../../components/emoji-board'; import { UseStateProvider } from '../../components/UseStateProvider'; @@ -95,7 +96,12 @@ import navigation from '../../../client/state/navigation'; import cons from '../../../client/state/cons'; import { MessageReply } from '../../molecules/message/Message'; import colorMXID from '../../../util/colorMXID'; -import { parseReplyBody, parseReplyFormattedBody } from '../../utils/room'; +import { + parseReplyBody, + parseReplyFormattedBody, + trimReplyFromBody, + trimReplyFromFormattedBody, +} from '../../utils/room'; import { sanitizeText } from '../../utils/sanitize'; import { useScreenSize } from '../../hooks/useScreenSize'; @@ -264,13 +270,15 @@ export const RoomInput = forwardRef( let body = plainText; let formattedBody = customHtml; if (replyDraft) { - body = parseReplyBody(replyDraft.userId, replyDraft.userId) + body; + body = parseReplyBody(replyDraft.userId, trimReplyFromBody(replyDraft.body)) + body; formattedBody = parseReplyFormattedBody( roomId, replyDraft.userId, replyDraft.eventId, - replyDraft.formattedBody ?? sanitizeText(replyDraft.body) + replyDraft.formattedBody + ? trimReplyFromFormattedBody(replyDraft.formattedBody) + : sanitizeText(replyDraft.body) ) + formattedBody; } @@ -321,19 +329,25 @@ export const RoomInput = forwardRef( [submit, editor, setReplyDraft] ); - const handleKeyUp: KeyboardEventHandler = useCallback(() => { - const firstChildren = editor.children[0]; - if (firstChildren && Element.isElement(firstChildren)) { - const isEmpty = editor.children.length === 1 && Editor.isEmpty(editor, firstChildren); - sendTypingStatus(!isEmpty); - } + const handleKeyUp: KeyboardEventHandler = useCallback( + (evt) => { + if (isHotkey('escape', evt)) { + evt.preventDefault(); + return; + } - const prevWordRange = getPrevWorldRange(editor); - const query = prevWordRange - ? getAutocompleteQuery(editor, prevWordRange, AUTOCOMPLETE_PREFIXES) - : undefined; - setAutocompleteQuery(query); - }, [editor, sendTypingStatus]); + sendTypingStatus(!isEmptyEditor(editor)); + + const prevWordRange = getPrevWorldRange(editor); + const query = prevWordRange + ? getAutocompleteQuery(editor, prevWordRange, AUTOCOMPLETE_PREFIXES) + : undefined; + setAutocompleteQuery(query); + }, + [editor, sendTypingStatus] + ); + + const handleCloseAutocomplete = useCallback(() => setAutocompleteQuery(undefined), []); const handleEmoticonSelect = (key: string, shortcode: string) => { editor.insertNode(createEmoticonElement(key, shortcode)); @@ -419,7 +433,7 @@ export const RoomInput = forwardRef( roomId={roomId} editor={editor} query={autocompleteQuery} - requestClose={() => setAutocompleteQuery(undefined)} + requestClose={handleCloseAutocomplete} /> )} {autocompleteQuery?.prefix === AutocompletePrefix.UserMention && ( @@ -427,7 +441,7 @@ export const RoomInput = forwardRef( roomId={roomId} editor={editor} query={autocompleteQuery} - requestClose={() => setAutocompleteQuery(undefined)} + requestClose={handleCloseAutocomplete} /> )} {autocompleteQuery?.prefix === AutocompletePrefix.Emoticon && ( @@ -435,10 +449,11 @@ export const RoomInput = forwardRef( imagePackRooms={imagePackRooms} editor={editor} query={autocompleteQuery} - requestClose={() => setAutocompleteQuery(undefined)} + requestClose={handleCloseAutocomplete} /> )} ( ({ position, className, ...props }, ref) => ( @@ -226,34 +229,6 @@ export const getEventIdAbsoluteIndex = ( return baseIndex + eventIndex; }; -export const getEventReactions = (timelineSet: EventTimelineSet, eventId: string) => - timelineSet.relations.getChildEventsForEvent( - eventId, - RelationType.Annotation, - EventType.Reaction - ); - -export const getEventEdits = (timelineSet: EventTimelineSet, eventId: string, eventType: string) => - timelineSet.relations.getChildEventsForEvent(eventId, RelationType.Replace, eventType); - -export const getLatestEdit = ( - targetEvent: MatrixEvent, - editEvents: MatrixEvent[] -): MatrixEvent | undefined => { - const eventByTargetSender = (rEvent: MatrixEvent) => - rEvent.getSender() === targetEvent.getSender(); - return editEvents.sort(matrixEventByRecency).find(eventByTargetSender); -}; - -export const getEditedEvent = ( - mEventId: string, - mEvent: MatrixEvent, - timelineSet: EventTimelineSet -): MatrixEvent | undefined => { - const edits = getEventEdits(timelineSet, mEventId, mEvent.getType()); - return edits && getLatestEdit(mEvent, edits.getRelations()); -}; - export const factoryGetFileSrcUrl = (httpUrl: string, mimeType: string, encFile?: IEncryptedFile) => async (): Promise => { if (encFile) { @@ -483,6 +458,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli const myPowerLevel = getPowerLevel(mx.getUserId() ?? ''); const canRedact = canDoAction('redact', myPowerLevel); const canSendReaction = canSendEvent(MessageEvent.Reaction, myPowerLevel); + const [editId, setEditId] = useState(); const imagePackRooms: Room[] = useMemo(() => { const allParentSpaces = [ @@ -572,20 +548,21 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli const getScrollElement = useCallback(() => scrollRef.current, []); - const { getItems, scrollToItem, observeBackAnchor, observeFrontAnchor } = useVirtualPaginator({ - count: eventsLength, - limit: PAGINATION_LIMIT, - range: timeline.range, - onRangeChange: useCallback((r) => setTimeline((cs) => ({ ...cs, range: r })), []), - getScrollElement, - getItemElement: useCallback( - (index: number) => - (scrollRef.current?.querySelector(`[data-message-item="${index}"]`) as HTMLElement) ?? - undefined, - [] - ), - onEnd: handleTimelinePagination, - }); + const { getItems, scrollToItem, scrollToElement, observeBackAnchor, observeFrontAnchor } = + useVirtualPaginator({ + count: eventsLength, + limit: PAGINATION_LIMIT, + range: timeline.range, + onRangeChange: useCallback((r) => setTimeline((cs) => ({ ...cs, range: r })), []), + getScrollElement, + getItemElement: useCallback( + (index: number) => + (scrollRef.current?.querySelector(`[data-message-item="${index}"]`) as HTMLElement) ?? + undefined, + [] + ), + onEnd: handleTimelinePagination, + }); const loadEventTimeline = useEventTimelineLoader( mx, @@ -701,6 +678,29 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli useCallback(() => atBottomAnchorRef.current, []) ); + // Handle up arrow edit + useKeyDown( + window, + useCallback( + (evt) => { + if ( + isHotkey('arrowup', evt) && + editableActiveElement() && + document.activeElement?.getAttribute('data-editable-name') === 'RoomInput' && + isEmptyEditor(editor) + ) { + const editableEvt = getLatestEditableEvt(room.getLiveTimeline(), (mEvt) => + canEditEvent(mx, mEvt) + ); + const editableEvtId = editableEvt?.getId(); + if (!editableEvtId) return; + setEditId(editableEvtId); + } + }, + [mx, room, editor] + ) + ); + useEffect(() => { if (eventId) { setTimeline(getEmptyTimeline()); @@ -771,6 +771,22 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli } }, [room, unreadInfo, liveTimelineLinked, rangeAtEnd, atBottom]); + // scroll out of view msg editor in view. + useEffect(() => { + if (editId) { + const editMsgElement = + (scrollRef.current?.querySelector(`[data-message-id="${editId}"]`) as HTMLElement) ?? + undefined; + if (editMsgElement) { + scrollToElement(editMsgElement, { + align: 'center', + behavior: 'smooth', + stopInView: true, + }); + } + } + }, [scrollToElement, editId]); + const handleJumpToLatest = () => { setTimeline(getInitialTimeline(room)); scrollToBottomRef.current.count += 1; @@ -901,6 +917,17 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli }, [mx, room] ); + const handleEdit = useCallback( + (editEvtId?: string) => { + if (editEvtId) { + setEditId(editEvtId); + return; + } + setEditId(undefined); + ReactEditor.focus(editor); + }, + [editor] + ); const renderBody = (body: string, customBody?: string) => { if (body === '') ; @@ -1153,12 +1180,14 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli void; @@ -211,21 +217,40 @@ export const MessageReadReceiptItem = as< export const MessageSourceCodeItem = as< 'button', { + room: Room; mEvent: MatrixEvent; onClose?: () => void; } ->(({ mEvent, onClose, ...props }, ref) => { +>(({ room, mEvent, onClose, ...props }, ref) => { const [open, setOpen] = useState(false); - const text = JSON.stringify( - mEvent.isEncrypted() + + const getContent = (evt: MatrixEvent) => + evt.isEncrypted() ? { - [`<== DECRYPTED_EVENT ==>`]: mEvent.getEffectiveEvent(), - [`<== ORIGINAL_EVENT ==>`]: mEvent.event, + [`<== DECRYPTED_EVENT ==>`]: evt.getEffectiveEvent(), + [`<== ORIGINAL_EVENT ==>`]: evt.event, } - : mEvent.event, - null, - 2 - ); + : evt.event; + + const getText = (): string => { + const evtId = mEvent.getId()!; + const evtTimeline = room.getTimelineForEvent(evtId); + const edits = + evtTimeline && + getEventEdits(evtTimeline.getTimelineSet(), evtId, mEvent.getType())?.getRelations(); + + if (!edits) return JSON.stringify(getContent(mEvent), null, 2); + + const content: Record = { + '<== MAIN_EVENT ==>': getContent(mEvent), + }; + + edits.forEach((editEvt, index) => { + content[`<== REPLACEMENT_EVENT_${index + 1} ==>`] = getContent(editEvt); + }); + + return JSON.stringify(content, null, 2); + }; const handleClose = () => { setOpen(false); @@ -247,7 +272,7 @@ export const MessageSourceCodeItem = as<
@@ -537,6 +562,7 @@ export type MessageProps = { mEvent: MatrixEvent; collapse: boolean; highlight: boolean; + edit?: boolean; canDelete?: boolean; canSendReaction?: boolean; imagePackRooms?: Room[]; @@ -546,6 +572,7 @@ export type MessageProps = { onUserClick: MouseEventHandler; onUsernameClick: MouseEventHandler; onReplyClick: MouseEventHandler; + onEditId?: (eventId?: string) => void; onReactionToggle: (targetEventId: string, key: string, shortcode?: string) => void; reply?: ReactNode; reactions?: ReactNode; @@ -558,6 +585,7 @@ export const Message = as<'div', MessageProps>( mEvent, collapse, highlight, + edit, canDelete, canSendReaction, imagePackRooms, @@ -568,6 +596,7 @@ export const Message = as<'div', MessageProps>( onUsernameClick, onReplyClick, onReactionToggle, + onEditId, reply, reactions, children, @@ -644,7 +673,21 @@ export const Message = as<'div', MessageProps>( const msgContentJSX = ( {reply} - {children} + {edit && onEditId ? ( + onEditId()} + /> + ) : ( + children + )} {reactions} ); @@ -677,7 +720,7 @@ export const Message = as<'div', MessageProps>( onMouseLeave={hideOptions} ref={ref} > - {(hover || menu || emojiBoard) && ( + {!edit && (hover || menu || emojiBoard) && (
@@ -728,6 +771,16 @@ export const Message = as<'div', MessageProps>( > + {canEditEvent(mx, mEvent) && onEditId && ( + onEditId(mEvent.getId())} + variant="SurfaceVariant" + size="300" + radii="300" + > + + + )} ( Reply + {canEditEvent(mx, mEvent) && onEditId && ( + } + radii="300" + data-event-id={mEvent.getId()} + onClick={() => { + onEditId(mEvent.getId()); + closeMenu(); + }} + > + + Edit Message + + + )} - + {((!mEvent.isRedacted() && canDelete) || mEvent.getSender() !== mx.getUserId()) && ( @@ -941,7 +1015,7 @@ export const Event = as<'div', EventProps>( eventId={mEvent.getId() ?? ''} onClose={closeMenu} /> - + {((!mEvent.isRedacted() && canDelete && !stateEvent) || (mEvent.getSender() !== mx.getUserId() && !stateEvent)) && ( diff --git a/src/app/organisms/room/message/MessageEditor.tsx b/src/app/organisms/room/message/MessageEditor.tsx new file mode 100644 index 00000000..90357479 --- /dev/null +++ b/src/app/organisms/room/message/MessageEditor.tsx @@ -0,0 +1,295 @@ +import React, { KeyboardEventHandler, useCallback, useEffect, useState } from 'react'; +import { Box, Chip, Icon, IconButton, Icons, Line, PopOut, Spinner, Text, as, config } from 'folds'; +import { Editor, Transforms } from 'slate'; +import { ReactEditor } from 'slate-react'; +import { IContent, MatrixEvent, RelationType, Room } from 'matrix-js-sdk'; +import isHotkey from 'is-hotkey'; +import { + AUTOCOMPLETE_PREFIXES, + AutocompletePrefix, + AutocompleteQuery, + CustomEditor, + EmoticonAutocomplete, + RoomMentionAutocomplete, + Toolbar, + UserMentionAutocomplete, + createEmoticonElement, + customHtmlEqualsPlainText, + getAutocompleteQuery, + getPrevWorldRange, + htmlToEditorInput, + moveCursor, + plainToEditorInput, + toMatrixCustomHTML, + toPlainText, + trimCustomHtml, + useEditor, +} from '../../../components/editor'; +import { useSetting } from '../../../state/hooks/settings'; +import { settingsAtom } from '../../../state/settings'; +import { UseStateProvider } from '../../../components/UseStateProvider'; +import { EmojiBoard } from '../../../components/emoji-board'; +import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback'; +import { useMatrixClient } from '../../../hooks/useMatrixClient'; +import { getEditedEvent, trimReplyFromFormattedBody } from '../../../utils/room'; + +type MessageEditorProps = { + roomId: string; + room: Room; + mEvent: MatrixEvent; + imagePackRooms?: Room[]; + onCancel: () => void; +}; +export const MessageEditor = as<'div', MessageEditorProps>( + ({ room, roomId, mEvent, imagePackRooms, onCancel, ...props }, ref) => { + const mx = useMatrixClient(); + const editor = useEditor(); + const [globalToolbar] = useSetting(settingsAtom, 'editorToolbar'); + const [isMarkdown] = useSetting(settingsAtom, 'isMarkdown'); + const [toolbar, setToolbar] = useState(globalToolbar); + + const [autocompleteQuery, setAutocompleteQuery] = + useState>(); + + const getPrevBodyAndFormattedBody = useCallback(() => { + const evtId = mEvent.getId()!; + const evtTimeline = room.getTimelineForEvent(evtId); + const editedEvent = + evtTimeline && getEditedEvent(evtId, mEvent, evtTimeline.getTimelineSet()); + + const { body, formatted_body: customHtml }: Record = + editedEvent?.getContent()['m.new.content'] ?? mEvent.getContent(); + + return [body, customHtml]; + }, [room, mEvent]); + + const [saveState, save] = useAsyncCallback( + useCallback(async () => { + const plainText = toPlainText(editor.children).trim(); + const customHtml = trimCustomHtml( + toMatrixCustomHTML(editor.children, { + allowTextFormatting: true, + allowMarkdown: isMarkdown, + }) + ); + + const [prevBody, prevCustomHtml] = getPrevBodyAndFormattedBody(); + + if (plainText === '') return undefined; + if ( + typeof prevCustomHtml === 'string' && + trimReplyFromFormattedBody(prevCustomHtml) === customHtml + ) { + return undefined; + } + if (!prevCustomHtml && typeof prevBody === 'string' && prevBody === plainText) { + return undefined; + } + + const newContent: IContent = { + msgtype: mEvent.getContent().msgtype, + body: plainText, + }; + + if (!customHtmlEqualsPlainText(customHtml, plainText)) { + newContent.format = 'org.matrix.custom.html'; + newContent.formatted_body = customHtml; + } + + const content: IContent = { + ...newContent, + body: `* ${plainText}`, + 'm.new_content': newContent, + 'm.relates_to': { + event_id: mEvent.getId(), + rel_type: RelationType.Replace, + }, + }; + + return mx.sendMessage(roomId, content); + }, [mx, editor, roomId, mEvent, isMarkdown, getPrevBodyAndFormattedBody]) + ); + + const handleSave = useCallback(() => { + if (saveState.status !== AsyncStatus.Loading) { + save(); + } + }, [saveState, save]); + + const handleKeyDown: KeyboardEventHandler = useCallback( + (evt) => { + if (isHotkey('enter', evt)) { + evt.preventDefault(); + handleSave(); + } + if (isHotkey('escape', evt)) { + evt.preventDefault(); + onCancel(); + } + }, + [onCancel, handleSave] + ); + + const handleKeyUp: KeyboardEventHandler = useCallback( + (evt) => { + if (isHotkey('escape', evt)) { + evt.preventDefault(); + return; + } + + const prevWordRange = getPrevWorldRange(editor); + const query = prevWordRange + ? getAutocompleteQuery(editor, prevWordRange, AUTOCOMPLETE_PREFIXES) + : undefined; + setAutocompleteQuery(query); + }, + [editor] + ); + + const handleCloseAutocomplete = useCallback(() => setAutocompleteQuery(undefined), []); + + const handleEmoticonSelect = (key: string, shortcode: string) => { + editor.insertNode(createEmoticonElement(key, shortcode)); + moveCursor(editor); + }; + + useEffect(() => { + const [body, customHtml] = getPrevBodyAndFormattedBody(); + + const initialValue = + typeof customHtml === 'string' + ? htmlToEditorInput(customHtml) + : plainToEditorInput(typeof body === 'string' ? body : ''); + + Transforms.select(editor, { + anchor: Editor.start(editor, []), + focus: Editor.end(editor, []), + }); + + editor.insertFragment(initialValue); + ReactEditor.focus(editor); + }, [editor, getPrevBodyAndFormattedBody]); + + useEffect(() => { + if (saveState.status === AsyncStatus.Success) { + onCancel(); + } + }, [saveState, onCancel]); + + return ( +
+ {autocompleteQuery?.prefix === AutocompletePrefix.RoomMention && ( + + )} + {autocompleteQuery?.prefix === AutocompletePrefix.UserMention && ( + + )} + {autocompleteQuery?.prefix === AutocompletePrefix.Emoticon && ( + + )} + + + + + ) : undefined + } + > + Save + + + Cancel + + + + setToolbar(!toolbar)} + > + + + + {(emojiBoard: boolean, setEmojiBoard) => ( + { + setEmojiBoard(false); + ReactEditor.focus(editor); + }} + /> + } + > + {(anchorRef) => ( + setEmojiBoard(true)} + variant="SurfaceVariant" + size="300" + radii="300" + > + + + )} + + )} + + + + {toolbar && ( +
+ + +
+ )} + + } + /> +
+ ); + } +); diff --git a/src/app/organisms/room/message/Reactions.tsx b/src/app/organisms/room/message/Reactions.tsx index 354820cd..bc32c1a3 100644 --- a/src/app/organisms/room/message/Reactions.tsx +++ b/src/app/organisms/room/message/Reactions.tsx @@ -12,7 +12,7 @@ import { toRem, } from 'folds'; import classNames from 'classnames'; -import { EventTimelineSet, EventType, RelationType, Room } from 'matrix-js-sdk'; +import { Room } from 'matrix-js-sdk'; import { type Relations } from 'matrix-js-sdk/lib/models/relations'; import FocusTrap from 'focus-trap-react'; import { useMatrixClient } from '../../../hooks/useMatrixClient'; @@ -22,13 +22,6 @@ import { useRelations } from '../../../hooks/useRelations'; import * as css from './styles.css'; import { ReactionViewer } from '../reaction-viewer'; -export const getEventReactions = (timelineSet: EventTimelineSet, eventId: string) => - timelineSet.relations.getChildEventsForEvent( - eventId, - RelationType.Annotation, - EventType.Reaction - ); - export type ReactionsProps = { room: Room; mEventId: string; diff --git a/src/app/utils/dom.ts b/src/app/utils/dom.ts index a8dc4be2..f39fe623 100644 --- a/src/app/utils/dom.ts +++ b/src/app/utils/dom.ts @@ -5,7 +5,11 @@ export const targetFromEvent = (evt: Event, selector: string): Element | undefin export const editableActiveElement = (): boolean => !!document.activeElement && - /^(input)|(textarea)$/.test(document.activeElement.nodeName.toLowerCase()); + (document.activeElement.nodeName.toLowerCase() === 'input' || + document.activeElement.nodeName.toLowerCase() === 'textbox' || + document.activeElement.getAttribute('contenteditable') === 'true' || + document.activeElement.getAttribute('role') === 'input' || + document.activeElement.getAttribute('role') === 'textbox'); export const isIntersectingScrollView = ( scrollElement: HTMLElement, diff --git a/src/app/utils/markdown.ts b/src/app/utils/markdown.ts index e4294d7d..6db7a349 100644 --- a/src/app/utils/markdown.ts +++ b/src/app/utils/markdown.ts @@ -83,7 +83,7 @@ const StrikeRule: MDRule = { match: (text) => text.match(STRIKE_REG_1), html: (parse, match) => { const [, g1] = match; - return `${parse(g1)}`; + return `${parse(g1)}`; }, }; diff --git a/src/app/utils/matrix.ts b/src/app/utils/matrix.ts index 91bd80f3..ba27879e 100644 --- a/src/app/utils/matrix.ts +++ b/src/app/utils/matrix.ts @@ -28,6 +28,15 @@ export const isRoomId = (id: string): boolean => validMxId(id) && id.startsWith( export const isRoomAlias = (id: string): boolean => validMxId(id) && id.startsWith('#'); +export const parseMatrixToUrl = (url: string): [string | undefined, string | undefined] => { + const href = decodeURIComponent(url); + + const match = href.match(/^https?:\/\/matrix.to\/#\/([@!$+#]\S+:[^\\?|^\s|^\\/]+)(\?(via=\S+))?/); + if (!match) return [undefined, undefined]; + const [, g1AsMxId, , g3AsVia] = match; + return [g1AsMxId, g3AsVia]; +}; + export const getRoomWithCanonicalAlias = (mx: MatrixClient, alias: string): Room | undefined => mx.getRooms()?.find((room) => room.getCanonicalAlias() === alias); diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts index af9505d4..1dabdc07 100644 --- a/src/app/utils/room.ts +++ b/src/app/utils/room.ts @@ -2,17 +2,22 @@ import { IconName, IconSrc } from 'folds'; import { EventTimeline, + EventTimelineSet, + EventType, IPushRule, IPushRules, JoinRule, MatrixClient, MatrixEvent, + MsgType, NotificationCountType, + RelationType, Room, } from 'matrix-js-sdk'; import { CryptoBackend } from 'matrix-js-sdk/lib/common-crypto/CryptoBackend'; import { AccountDataEvent } from '../../types/matrix/accountData'; import { + MessageEvent, NotificationType, RoomToParents, RoomType, @@ -249,6 +254,21 @@ export const getRoomAvatarUrl = (mx: MatrixClient, room: Room): string | undefin return room.getAvatarUrl(mx.baseUrl, 32, 32, 'crop') ?? undefined; }; +export const trimReplyFromBody = (body: string): string => { + const match = body.match(/^>\s<.+?>\s.+\n\n/); + if (!match) return body; + return body.slice(match[0].length); +}; + +export const trimReplyFromFormattedBody = (formattedBody: string): string => { + const suffix = ''; + const i = formattedBody.lastIndexOf(suffix); + if (i < 0) { + return formattedBody; + } + return formattedBody.slice(i + suffix.length); +}; + export const parseReplyBody = (userId: string, body: string) => `> <${userId}> ${body.replace(/\n/g, '\n> ')}\n\n`; @@ -301,3 +321,52 @@ export const getReactionContent = (eventId: string, key: string, shortcode?: str }, shortcode, }); + +export const getEventReactions = (timelineSet: EventTimelineSet, eventId: string) => + timelineSet.relations.getChildEventsForEvent( + eventId, + RelationType.Annotation, + EventType.Reaction + ); + +export const getEventEdits = (timelineSet: EventTimelineSet, eventId: string, eventType: string) => + timelineSet.relations.getChildEventsForEvent(eventId, RelationType.Replace, eventType); + +export const getLatestEdit = ( + targetEvent: MatrixEvent, + editEvents: MatrixEvent[] +): MatrixEvent | undefined => { + const eventByTargetSender = (rEvent: MatrixEvent) => + rEvent.getSender() === targetEvent.getSender(); + return editEvents.sort((m1, m2) => m2.getTs() - m1.getTs()).find(eventByTargetSender); +}; + +export const getEditedEvent = ( + mEventId: string, + mEvent: MatrixEvent, + timelineSet: EventTimelineSet +): MatrixEvent | undefined => { + const edits = getEventEdits(timelineSet, mEventId, mEvent.getType()); + return edits && getLatestEdit(mEvent, edits.getRelations()); +}; + +export const canEditEvent = (mx: MatrixClient, mEvent: MatrixEvent) => + mEvent.getSender() === mx.getUserId() && + !mEvent.isRelation() && + mEvent.getType() === MessageEvent.RoomMessage && + (mEvent.getContent().msgtype === MsgType.Text || + mEvent.getContent().msgtype === MsgType.Emote || + mEvent.getContent().msgtype === MsgType.Notice); + +export const getLatestEditableEvt = ( + timeline: EventTimeline, + canEdit: (mEvent: MatrixEvent) => boolean +): MatrixEvent | undefined => { + const events = timeline.getEvents(); + + for (let i = events.length - 1; i >= 0; i -= 1) { + const evt = events[i]; + if (canEdit(evt)) return evt; + } + return undefined; +}; diff --git a/src/app/utils/sanitize.ts b/src/app/utils/sanitize.ts index 6a03ca7d..8e7c1283 100644 --- a/src/app/utils/sanitize.ts +++ b/src/app/utils/sanitize.ts @@ -56,12 +56,19 @@ const permittedTagToAttributes = { 'data-mx-maths', 'data-mx-pill', 'data-mx-ping', + 'data-md', ], div: ['data-mx-maths'], - a: ['name', 'target', 'href', 'rel'], + a: ['name', 'target', 'href', 'rel', 'data-md'], img: ['width', 'height', 'alt', 'title', 'src', 'data-mx-emoticon'], ol: ['start'], - code: ['class'], + code: ['class', 'data-md'], + strong: ['data-md'], + i: ['data-md'], + em: ['data-md'], + u: ['data-md'], + s: ['data-md'], + del: ['data-md'], }; const transformFontTag: Transformer = (tagName, attribs) => ({ From 4d0b6b93bc1cece068fe1a081bee3ab8324800bd Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Wed, 18 Oct 2023 13:15:08 +1100 Subject: [PATCH 373/717] Fix verification notice not to display when CS is not setup (#1451) --- src/app/organisms/settings/DeviceManage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/settings/DeviceManage.jsx b/src/app/organisms/settings/DeviceManage.jsx index 74738ea8..7689f0f9 100644 --- a/src/app/organisms/settings/DeviceManage.jsx +++ b/src/app/organisms/settings/DeviceManage.jsx @@ -217,7 +217,7 @@ function DeviceManage() {
Unverified sessions - {!isMeVerified && ( + {!isMeVerified && isCSEnabled && (
Date: Wed, 18 Oct 2023 13:15:30 +1100 Subject: [PATCH 374/717] Editor Commands (#1450) * add commands hook * add commands in editor * add command auto complete menu * add commands in room input * remove old reply code from room input * fix video component css * do not auto focus input on android or ios * fix crash on enable block after selection * fix circular deps in editor * fix autocomplete return focus move editor cursor * remove unwanted keydown from room input * fix emoji alignment in editor * test ipad user agent * refactor isAndroidOrIOS to mobileOrTablet * update slate & slate-react * downgrade slate-react to 0.98.4 0.99.0 has breaking changes with ReactEditor.focus * add sql to readable ext mimetype * fix empty editor formatting gets saved as draft * add option to use enter for newline * remove empty msg draft from atom family * prevent msg ctx menu from open on text selection --- package-lock.json | 16 +- package.json | 4 +- src/app/components/editor/Editor.css.ts | 5 +- src/app/components/editor/Editor.tsx | 13 +- src/app/components/editor/Elements.tsx | 65 +++--- src/app/components/editor/Toolbar.tsx | 4 +- .../editor/autocomplete/AutocompleteMenu.tsx | 1 + .../autocomplete/EmoticonAutocomplete.tsx | 2 +- .../autocomplete/RoomMentionAutocomplete.tsx | 2 +- .../autocomplete/UserMentionAutocomplete.tsx | 2 +- .../editor/autocomplete/autocompleteQuery.ts | 2 + src/app/components/editor/index.ts | 3 +- src/app/components/editor/input.ts | 4 +- src/app/components/editor/keyboard.ts | 4 +- src/app/components/editor/output.ts | 16 +- src/app/components/editor/slate.d.ts | 10 +- src/app/components/editor/types.ts | 24 ++ .../components/editor/{common.ts => utils.ts} | 45 +++- src/app/components/emoji-board/EmojiBoard.tsx | 3 +- src/app/components/media/Video.tsx | 2 +- src/app/components/media/media.css.ts | 2 +- src/app/components/message/Reply.tsx | 4 +- src/app/hooks/useCommands.ts | 219 ++++++++++++++++++ .../organisms/room/CommandAutocomplete.tsx | 109 +++++++++ src/app/organisms/room/RoomInput.tsx | 109 +++++---- src/app/organisms/room/RoomView.jsx | 1 + src/app/organisms/room/message/Message.tsx | 4 +- .../organisms/room/message/MessageEditor.tsx | 15 +- src/app/organisms/settings/Settings.jsx | 11 + src/app/state/settings.ts | 2 + src/app/styles/CustomHtml.css.ts | 27 ++- src/app/utils/matrix.ts | 12 +- src/app/utils/mimeTypes.ts | 1 + src/app/utils/user-agent.ts | 8 + 34 files changed, 620 insertions(+), 131 deletions(-) create mode 100644 src/app/components/editor/types.ts rename src/app/components/editor/{common.ts => utils.ts} (82%) create mode 100644 src/app/hooks/useCommands.ts create mode 100644 src/app/organisms/room/CommandAutocomplete.tsx diff --git a/package-lock.json b/package-lock.json index 70c90a9a..1ef2fd4f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -56,9 +56,9 @@ "react-modal": "3.16.1", "react-range": "1.8.14", "sanitize-html": "2.8.0", - "slate": "0.90.0", + "slate": "0.94.1", "slate-history": "0.93.0", - "slate-react": "0.90.0", + "slate-react": "0.98.4", "tippy.js": "6.3.7", "twemoji": "14.0.2", "ua-parser-js": "1.0.35" @@ -5766,9 +5766,9 @@ } }, "node_modules/slate": { - "version": "0.90.0", - "resolved": "https://registry.npmjs.org/slate/-/slate-0.90.0.tgz", - "integrity": "sha512-dv8idv0JjYyHiAJcVKf5yWKPDMTDi+PSZyfjsnquEI8VB5nmTVGjeJab06lc3o69O7aN05ROwO9/OY8mU1IUPA==", + "version": "0.94.1", + "resolved": "https://registry.npmjs.org/slate/-/slate-0.94.1.tgz", + "integrity": "sha512-GH/yizXr1ceBoZ9P9uebIaHe3dC/g6Plpf9nlUwnvoyf6V1UOYrRwkabtOCd3ZfIGxomY4P7lfgLr7FPH8/BKA==", "dependencies": { "immer": "^9.0.6", "is-plain-object": "^5.0.0", @@ -5787,9 +5787,9 @@ } }, "node_modules/slate-react": { - "version": "0.90.0", - "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.90.0.tgz", - "integrity": "sha512-z6pGd6jjU5VazLxlDi6zL3a6yaPBPJ+A2VyIlE/h/rvDywaLYGvk0xcrA9NrK71Dr47HK5ZN2zFEZNleh6wlPA==", + "version": "0.98.4", + "resolved": "https://registry.npmjs.org/slate-react/-/slate-react-0.98.4.tgz", + "integrity": "sha512-8Of3v9hFuX8rIRc86LuuBhU9t8ps+9ARKL4yyhCrKQYZ93Ep/LFA3GvPGvtf3zYuVadZ8tkhRH8tbHOGNAndLw==", "dependencies": { "@juggle/resize-observer": "^3.4.0", "@types/is-hotkey": "^0.1.1", diff --git a/package.json b/package.json index 7467126e..f7bce7cf 100644 --- a/package.json +++ b/package.json @@ -66,9 +66,9 @@ "react-modal": "3.16.1", "react-range": "1.8.14", "sanitize-html": "2.8.0", - "slate": "0.90.0", + "slate": "0.94.1", "slate-history": "0.93.0", - "slate-react": "0.90.0", + "slate-react": "0.98.4", "tippy.js": "6.3.7", "twemoji": "14.0.2", "ua-parser-js": "1.0.35" diff --git a/src/app/components/editor/Editor.css.ts b/src/app/components/editor/Editor.css.ts index 9ec8cfaf..edce743f 100644 --- a/src/app/components/editor/Editor.css.ts +++ b/src/app/components/editor/Editor.css.ts @@ -26,7 +26,7 @@ export const EditorTextarea = style([ { flexGrow: 1, height: '100%', - padding: `${toRem(13)} 0`, + padding: `${toRem(13)} ${toRem(1)}`, selectors: { [`${EditorTextareaScroll}:first-child &`]: { paddingLeft: toRem(13), @@ -34,6 +34,9 @@ export const EditorTextarea = style([ [`${EditorTextareaScroll}:last-child &`]: { paddingRight: toRem(13), }, + '&:focus': { + outline: 'none', + }, }, }, ]); diff --git a/src/app/components/editor/Editor.tsx b/src/app/components/editor/Editor.tsx index 62b41345..044d0837 100644 --- a/src/app/components/editor/Editor.tsx +++ b/src/app/components/editor/Editor.tsx @@ -18,7 +18,8 @@ import { RenderPlaceholderProps, } from 'slate-react'; import { withHistory } from 'slate-history'; -import { BlockType, RenderElement, RenderLeaf } from './Elements'; +import { BlockType } from './types'; +import { RenderElement, RenderLeaf } from './Elements'; import { CustomElement } from './slate'; import * as css from './Editor.css'; import { toggleKeyboardShortcut } from './keyboard'; @@ -34,8 +35,9 @@ const withInline = (editor: Editor): Editor => { const { isInline } = editor; editor.isInline = (element) => - [BlockType.Mention, BlockType.Emoticon, BlockType.Link].includes(element.type) || - isInline(element); + [BlockType.Mention, BlockType.Emoticon, BlockType.Link, BlockType.Command].includes( + element.type + ) || isInline(element); return editor; }; @@ -44,7 +46,8 @@ const withVoid = (editor: Editor): Editor => { const { isVoid } = editor; editor.isVoid = (element) => - [BlockType.Mention, BlockType.Emoticon].includes(element.type) || isVoid(element); + [BlockType.Mention, BlockType.Emoticon, BlockType.Command].includes(element.type) || + isVoid(element); return editor; }; @@ -122,7 +125,7 @@ export const CustomEditor = forwardRef( return (
- + {top} {before && ( diff --git a/src/app/components/editor/Elements.tsx b/src/app/components/editor/Elements.tsx index 2df80993..c4767ab9 100644 --- a/src/app/components/editor/Elements.tsx +++ b/src/app/components/editor/Elements.tsx @@ -1,34 +1,18 @@ import { Scroll, Text } from 'folds'; import React from 'react'; -import { RenderElementProps, RenderLeafProps, useFocused, useSelected } from 'slate-react'; +import { + RenderElementProps, + RenderLeafProps, + useFocused, + useSelected, + useSlate, +} from 'slate-react'; import * as css from '../../styles/CustomHtml.css'; -import { EmoticonElement, LinkElement, MentionElement } from './slate'; +import { CommandElement, EmoticonElement, LinkElement, MentionElement } from './slate'; import { useMatrixClient } from '../../hooks/useMatrixClient'; - -export enum MarkType { - Bold = 'bold', - Italic = 'italic', - Underline = 'underline', - StrikeThrough = 'strikeThrough', - Code = 'code', - Spoiler = 'spoiler', -} - -export enum BlockType { - Paragraph = 'paragraph', - Heading = 'heading', - CodeLine = 'code-line', - CodeBlock = 'code-block', - QuoteLine = 'quote-line', - BlockQuote = 'block-quote', - ListItem = 'list-item', - OrderedList = 'ordered-list', - UnorderedList = 'unordered-list', - Mention = 'mention', - Emoticon = 'emoticon', - Link = 'link', -} +import { getBeginCommand } from './utils'; +import { BlockType } from './types'; // Put this at the start and end of an inline component to work around this Chromium bug: // https://bugs.chromium.org/p/chromium/issues/detail?id=1249405 @@ -62,6 +46,29 @@ function RenderMentionElement({ ); } +function RenderCommandElement({ + attributes, + element, + children, +}: { element: CommandElement } & RenderElementProps) { + const selected = useSelected(); + const focused = useFocused(); + const editor = useSlate(); + + return ( + + {`/${element.command}`} + {children} + + ); +} function RenderEmoticonElement({ attributes, @@ -200,6 +207,12 @@ export function RenderElement({ attributes, element, children }: RenderElementPr {children} ); + case BlockType.Command: + return ( + + {children} + + ); default: return ( diff --git a/src/app/components/editor/Toolbar.tsx b/src/app/components/editor/Toolbar.tsx index 72e2c38c..342dd106 100644 --- a/src/app/components/editor/Toolbar.tsx +++ b/src/app/components/editor/Toolbar.tsx @@ -25,9 +25,9 @@ import { removeAllMark, toggleBlock, toggleMark, -} from './common'; +} from './utils'; import * as css from './Editor.css'; -import { BlockType, MarkType } from './Elements'; +import { BlockType, MarkType } from './types'; import { HeadingLevel } from './slate'; import { isMacOS } from '../../utils/user-agent'; import { KeySymbol } from '../../utils/key-symbol'; diff --git a/src/app/components/editor/autocomplete/AutocompleteMenu.tsx b/src/app/components/editor/autocomplete/AutocompleteMenu.tsx index d89cda09..e7c8df38 100644 --- a/src/app/components/editor/autocomplete/AutocompleteMenu.tsx +++ b/src/app/components/editor/autocomplete/AutocompleteMenu.tsx @@ -19,6 +19,7 @@ export function AutocompleteMenu({ headerContent, requestClose, children }: Auto focusTrapOptions={{ initialFocus: false, onDeactivate: () => requestClose(), + returnFocusOnDeactivate: false, clickOutsideDeactivates: true, allowOutsideClick: true, isKeyForward: (evt: KeyboardEvent) => isHotkey('arrowdown', evt), diff --git a/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx b/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx index 2e556000..bc98667e 100644 --- a/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/EmoticonAutocomplete.tsx @@ -12,7 +12,7 @@ import { useAsyncSearch, } from '../../../hooks/useAsyncSearch'; import { onTabPress } from '../../../utils/keyboard'; -import { createEmoticonElement, moveCursor, replaceWithElement } from '../common'; +import { createEmoticonElement, moveCursor, replaceWithElement } from '../utils'; import { useRecentEmoji } from '../../../hooks/useRecentEmoji'; import { useRelevantImagePacks } from '../../../hooks/useImagePacks'; import { IEmoji, emojis } from '../../../plugins/emoji'; diff --git a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx index baa217ca..31acd2c5 100644 --- a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx @@ -3,7 +3,7 @@ import { Editor } from 'slate'; import { Avatar, AvatarFallback, AvatarImage, Icon, Icons, MenuItem, Text, color } from 'folds'; import { MatrixClient } from 'matrix-js-sdk'; -import { createMentionElement, moveCursor, replaceWithElement } from '../common'; +import { createMentionElement, moveCursor, replaceWithElement } from '../utils'; import { getRoomAvatarUrl, joinRuleToIconSrc } from '../../../utils/room'; import { roomIdByActivity } from '../../../../util/sort'; import initMatrix from '../../../../client/initMatrix'; diff --git a/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx b/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx index 00ecb015..a99274a5 100644 --- a/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/UserMentionAutocomplete.tsx @@ -13,7 +13,7 @@ import { useAsyncSearch, } from '../../../hooks/useAsyncSearch'; import { onTabPress } from '../../../utils/keyboard'; -import { createMentionElement, moveCursor, replaceWithElement } from '../common'; +import { createMentionElement, moveCursor, replaceWithElement } from '../utils'; import { useKeyDown } from '../../../hooks/useKeyDown'; import { getMxIdLocalPart, getMxIdServer, validMxId } from '../../../utils/matrix'; diff --git a/src/app/components/editor/autocomplete/autocompleteQuery.ts b/src/app/components/editor/autocomplete/autocompleteQuery.ts index 96dabc57..1baa44a1 100644 --- a/src/app/components/editor/autocomplete/autocompleteQuery.ts +++ b/src/app/components/editor/autocomplete/autocompleteQuery.ts @@ -4,11 +4,13 @@ export enum AutocompletePrefix { RoomMention = '#', UserMention = '@', Emoticon = ':', + Command = '/', } export const AUTOCOMPLETE_PREFIXES: readonly AutocompletePrefix[] = [ AutocompletePrefix.RoomMention, AutocompletePrefix.UserMention, AutocompletePrefix.Emoticon, + AutocompletePrefix.Command, ]; export type AutocompleteQuery = { diff --git a/src/app/components/editor/index.ts b/src/app/components/editor/index.ts index 7c63ce61..aae0137d 100644 --- a/src/app/components/editor/index.ts +++ b/src/app/components/editor/index.ts @@ -1,8 +1,9 @@ export * from './autocomplete'; -export * from './common'; +export * from './utils'; export * from './Editor'; export * from './Elements'; export * from './keyboard'; export * from './output'; export * from './Toolbar'; export * from './input'; +export * from './types'; diff --git a/src/app/components/editor/input.ts b/src/app/components/editor/input.ts index 39db0e1b..37aa7244 100644 --- a/src/app/components/editor/input.ts +++ b/src/app/components/editor/input.ts @@ -4,7 +4,7 @@ import parse from 'html-dom-parser'; import { ChildNode, Element, isText, isTag } from 'domhandler'; import { sanitizeCustomHtml } from '../../utils/sanitize'; -import { BlockType, MarkType } from './Elements'; +import { BlockType, MarkType } from './types'; import { BlockQuoteElement, CodeBlockElement, @@ -21,7 +21,7 @@ import { UnorderedListElement, } from './slate'; import { parseMatrixToUrl } from '../../utils/matrix'; -import { createEmoticonElement, createMentionElement } from './common'; +import { createEmoticonElement, createMentionElement } from './utils'; const markNodeToType: Record = { b: MarkType.Bold, diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index b6e1c3f4..b6d4d692 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -1,8 +1,8 @@ import { isHotkey } from 'is-hotkey'; import { KeyboardEvent } from 'react'; import { Editor } from 'slate'; -import { isAnyMarkActive, isBlockActive, removeAllMark, toggleBlock, toggleMark } from './common'; -import { BlockType, MarkType } from './Elements'; +import { isAnyMarkActive, isBlockActive, removeAllMark, toggleBlock, toggleMark } from './utils'; +import { BlockType, MarkType } from './types'; export const INLINE_HOTKEYS: Record = { 'mod+b': MarkType.Bold, diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 89a5f7c5..307ef8a2 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -1,7 +1,7 @@ import { Descendant, Text } from 'slate'; import { sanitizeText } from '../../utils/sanitize'; -import { BlockType } from './Elements'; +import { BlockType } from './types'; import { CustomElement } from './slate'; import { parseInlineMD } from '../../utils/markdown'; @@ -57,6 +57,8 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { : node.key; case BlockType.Link: return `${node.children}`; + case BlockType.Command: + return `/${node.command}`; default: return children; } @@ -104,6 +106,8 @@ const elementToPlainText = (node: CustomElement, children: string): string => { return node.key.startsWith('mxc://') ? `:${node.shortcode}:` : node.key; case BlockType.Link: return `[${node.children}](${node.href})`; + case BlockType.Command: + return `/${node.command}`; default: return children; } @@ -129,4 +133,12 @@ export const toPlainText = (node: Descendant | Descendant[]): string => { export const customHtmlEqualsPlainText = (customHtml: string, plain: string): boolean => customHtml.replace(//g, '\n') === sanitizeText(plain); -export const trimCustomHtml = (customHtml: string) => customHtml.replace(/$/g, ''); +export const trimCustomHtml = (customHtml: string) => customHtml.replace(/$/g, '').trim(); + +export const trimCommand = (cmdName: string, str: string) => { + const cmdRegX = new RegExp(`^(\\s+)?(\\/${cmdName})([^\\S\n]+)?`); + + const match = str.match(cmdRegX); + if (!match) return str; + return str.slice(match[0].length); +}; diff --git a/src/app/components/editor/slate.d.ts b/src/app/components/editor/slate.d.ts index ee046a08..1b08ae88 100644 --- a/src/app/components/editor/slate.d.ts +++ b/src/app/components/editor/slate.d.ts @@ -1,7 +1,7 @@ import { BaseEditor } from 'slate'; import { ReactEditor } from 'slate-react'; import { HistoryEditor } from 'slate-history'; -import { BlockType } from './Elements'; +import { BlockType } from './types'; export type HeadingLevel = 1 | 2 | 3; @@ -39,8 +39,13 @@ export type EmoticonElement = { shortcode: string; children: Text[]; }; +export type CommandElement = { + type: BlockType.Command; + command: string; + children: Text[]; +}; -export type InlineElement = Text | LinkElement | MentionElement | EmoticonElement; +export type InlineElement = Text | LinkElement | MentionElement | EmoticonElement | CommandElement; export type ParagraphElement = { type: BlockType.Paragraph; @@ -84,6 +89,7 @@ export type CustomElement = | LinkElement | MentionElement | EmoticonElement + | CommandElement | ParagraphElement | HeadingElement | CodeLineElement diff --git a/src/app/components/editor/types.ts b/src/app/components/editor/types.ts new file mode 100644 index 00000000..9a108ec7 --- /dev/null +++ b/src/app/components/editor/types.ts @@ -0,0 +1,24 @@ +export enum MarkType { + Bold = 'bold', + Italic = 'italic', + Underline = 'underline', + StrikeThrough = 'strikeThrough', + Code = 'code', + Spoiler = 'spoiler', +} + +export enum BlockType { + Paragraph = 'paragraph', + Heading = 'heading', + CodeLine = 'code-line', + CodeBlock = 'code-block', + QuoteLine = 'quote-line', + BlockQuote = 'block-quote', + ListItem = 'list-item', + OrderedList = 'ordered-list', + UnorderedList = 'unordered-list', + Mention = 'mention', + Emoticon = 'emoticon', + Link = 'link', + Command = 'command', +} diff --git a/src/app/components/editor/common.ts b/src/app/components/editor/utils.ts similarity index 82% rename from src/app/components/editor/common.ts rename to src/app/components/editor/utils.ts index 68717b38..9bdfde18 100644 --- a/src/app/components/editor/common.ts +++ b/src/app/components/editor/utils.ts @@ -1,6 +1,13 @@ -import { BasePoint, BaseRange, Editor, Element, Point, Range, Transforms } from 'slate'; -import { BlockType, MarkType } from './Elements'; -import { EmoticonElement, FormattedText, HeadingLevel, LinkElement, MentionElement } from './slate'; +import { BasePoint, BaseRange, Editor, Element, Point, Range, Text, Transforms } from 'slate'; +import { BlockType, MarkType } from './types'; +import { + CommandElement, + EmoticonElement, + FormattedText, + HeadingLevel, + LinkElement, + MentionElement, +} from './slate'; const ALL_MARK_TYPE: MarkType[] = [ MarkType.Bold, @@ -54,6 +61,9 @@ const NESTED_BLOCK = [ ]; export const toggleBlock = (editor: Editor, format: BlockType, option?: BlockOption) => { + Transforms.collapse(editor, { + edge: 'end', + }); const isActive = isBlockActive(editor, format); Transforms.unwrapNodes(editor, { @@ -163,17 +173,23 @@ export const createLinkElement = ( children: typeof children === 'string' ? [{ text: children }] : children, }); +export const createCommandElement = (command: string): CommandElement => ({ + type: BlockType.Command, + command, + children: [{ text: '' }], +}); + export const replaceWithElement = (editor: Editor, selectRange: BaseRange, element: Element) => { Transforms.select(editor, selectRange); Transforms.insertNodes(editor, element); + Transforms.collapse(editor, { + edge: 'end', + }); }; export const moveCursor = (editor: Editor, withSpace?: boolean) => { - // without timeout move cursor doesn't works properly. - setTimeout(() => { - Transforms.move(editor); - if (withSpace) editor.insertText(' '); - }, 100); + Transforms.move(editor); + if (withSpace) editor.insertText(' '); }; interface PointUntilCharOptions { @@ -230,3 +246,16 @@ export const isEmptyEditor = (editor: Editor): boolean => { } return false; }; + +export const getBeginCommand = (editor: Editor): string | undefined => { + const lineBlock = editor.children[0]; + if (!Element.isElement(lineBlock)) return undefined; + if (lineBlock.type !== BlockType.Paragraph) return undefined; + + const [firstInline, secondInline] = lineBlock.children; + const isEmptyText = Text.isText(firstInline) && firstInline.text.trim() === ''; + if (!isEmptyText) return undefined; + if (Element.isElement(secondInline) && secondInline.type === BlockType.Command) + return secondInline.command; + return undefined; +}; diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 81730e3d..067ebe39 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -47,6 +47,7 @@ import { useAsyncSearch, UseAsyncSearchOptions } from '../../hooks/useAsyncSearc import { useDebounce } from '../../hooks/useDebounce'; import { useThrottle } from '../../hooks/useThrottle'; import { addRecentEmoji } from '../../plugins/recent-emoji'; +import { mobileOrTablet } from '../../utils/user-agent'; const RECENT_GROUP_ID = 'recent_group'; const SEARCH_GROUP_ID = 'search_group'; @@ -782,7 +783,7 @@ export function EmojiBoard({ maxLength={50} after={} onChange={handleOnChange} - autoFocus + autoFocus={!mobileOrTablet()} /> diff --git a/src/app/components/media/Video.tsx b/src/app/components/media/Video.tsx index ab13c5bd..03108c32 100644 --- a/src/app/components/media/Video.tsx +++ b/src/app/components/media/Video.tsx @@ -5,6 +5,6 @@ import * as css from './media.css'; export const Video = forwardRef>( ({ className, ...props }, ref) => ( // eslint-disable-next-line jsx-a11y/media-has-caption -
diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index 81c29b03..ae12afb0 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -443,7 +443,7 @@ export const RoomInput = forwardRef( )} {autocompleteQuery?.prefix === AutocompletePrefix.UserMention && ( ( )} {autocompleteQuery?.prefix === AutocompletePrefix.UserMention && ( string +): string[] => [ + member.rawDisplayName === member.userId ? mxIdToName(member.userId) : member.rawDisplayName, + query.startsWith('@') || query.indexOf(':') > -1 ? member.userId : mxIdToName(member.userId), +]; + export const getMemberAvatarMxc = (room: Room, userId: string): string | undefined => { const member = room.getMember(userId); return member?.getMxcAvatarUrl(); From ed3d14b131ee39f4c530681df3de42ae93e34c0c Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 19 Oct 2023 17:43:37 +1100 Subject: [PATCH 379/717] fix recursive state updates (#1458) --- src/app/organisms/room/RoomInput.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index ae12afb0..a1fa6c26 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -187,7 +187,7 @@ export const RoomInput = forwardRef( const parsedDraft = JSON.parse(JSON.stringify(editor.children)); setMsgDraft(parsedDraft); } else { - roomIdToMsgDraftAtomFamily.remove(roomId); + setMsgDraft([]); } resetEditor(editor); resetEditorHistory(editor); From a2692e1469c57430545421b616f5f1d648415464 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 19 Oct 2023 17:43:54 +1100 Subject: [PATCH 380/717] Fix room mention (#1459) * create room mention with alias if possible * display room mention text as they were sent --- .../autocomplete/RoomMentionAutocomplete.tsx | 14 ++++++++------ src/app/components/editor/input.ts | 2 +- src/app/plugins/react-custom-html-parser.tsx | 5 +---- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx index 31acd2c5..b9fee878 100644 --- a/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx +++ b/src/app/components/editor/autocomplete/RoomMentionAutocomplete.tsx @@ -32,14 +32,14 @@ function UnknownRoomMentionItem({ const mx = useMatrixClient(); const roomAlias: string = roomAliasFromQueryText(mx, query.text); + const handleSelect = () => handleAutocomplete(roomAlias, roomAlias); + return ( ) => - onTabPress(evt, () => handleAutocomplete(roomAlias, roomAlias)) - } - onClick={() => handleAutocomplete(roomAlias, roomAlias)} + onKeyDown={(evt: ReactKeyboardEvent) => onTabPress(evt, handleSelect)} + onClick={handleSelect} before={ @@ -140,15 +140,17 @@ export function RoomMentionAutocomplete({ const avatarUrl = getRoomAvatarUrl(mx, room); const iconSrc = !dm && joinRuleToIconSrc(Icons, room.getJoinRule(), room.isSpaceRoom()); + const handleSelect = () => handleAutocomplete(room.getCanonicalAlias() ?? rId, room.name); + return ( ) => - onTabPress(evt, () => handleAutocomplete(rId, room.name)) + onTabPress(evt, handleSelect) } - onClick={() => handleAutocomplete(room.getCanonicalAlias() ?? rId, room.name)} + onClick={handleSelect} after={ {room.getCanonicalAlias() ?? ''} diff --git a/src/app/components/editor/input.ts b/src/app/components/editor/input.ts index 37aa7244..91386a87 100644 --- a/src/app/components/editor/input.ts +++ b/src/app/components/editor/input.ts @@ -74,7 +74,7 @@ const elementToInlineNode = (node: Element): MentionElement | EmoticonElement | if (typeof href !== 'string') return undefined; const [mxId] = parseMatrixToUrl(href); if (mxId) { - return createMentionElement(mxId, mxId, false); + return createMentionElement(mxId, parseNodeText(node) || mxId, false); } } return undefined; diff --git a/src/app/plugins/react-custom-html-parser.tsx b/src/app/plugins/react-custom-html-parser.tsx index aba5997d..09f09d8f 100644 --- a/src/app/plugins/react-custom-html-parser.tsx +++ b/src/app/plugins/react-custom-html-parser.tsx @@ -180,10 +180,7 @@ export const getReactCustomHtmlParser = ( mentionPrefix === '#' ? getRoomWithCanonicalAlias(mx, mentionId) : mx.getRoom(mentionId); - const mentionName = mentionRoom?.name; - const mentionDisplayName = - mentionName && (mentionName.startsWith('#') ? mentionName : `#${mentionName}`); return ( - {mentionDisplayName ?? mentionId} + {domToReact(children, opts)} ); } From 1d86c6da01bbab2ef6a7c268f17c9bcd6cfdd424 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 19 Oct 2023 17:44:18 +1100 Subject: [PATCH 381/717] remove twemoji & katex usage (#1460) --- src/util/twemojify.jsx | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/src/util/twemojify.jsx b/src/util/twemojify.jsx index abe82a66..ad203a91 100644 --- a/src/util/twemojify.jsx +++ b/src/util/twemojify.jsx @@ -1,60 +1,31 @@ /* eslint-disable import/prefer-default-export */ -import React, { lazy, Suspense } from 'react'; - import linkifyHtml from 'linkify-html'; import parse from 'html-react-parser'; -import twemoji from 'twemoji'; import { sanitizeText } from './sanitize'; export const TWEMOJI_BASE_URL = 'https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/'; -const Math = lazy(() => import('../app/atoms/math/Math')); - -const mathOptions = { - replace: (node) => { - const maths = node.attribs?.['data-mx-maths']; - if (maths) { - return ( - {maths}}> - - - ); - } - return null; - }, -}; - /** * @param {string} text - text to twemojify - * @param {object|undefined} opts - options for tweomoji.parse + * @param {object|undefined} opts - DEPRECATED - options for tweomoji.parse * @param {boolean} [linkify=false] - convert links to html tags (default: false) * @param {boolean} [sanitize=true] - sanitize html text (default: true) - * @param {boolean} [maths=false] - render maths (default: false) + * @param {boolean} [maths=false] - DEPRECATED - render maths (default: false) * @returns React component */ -export function twemojify(text, opts, linkify = false, sanitize = true, maths = false) { +export function twemojify(text, opts, linkify = false, sanitize = true) { if (typeof text !== 'string') return text; let content = text; - const options = opts ?? { base: TWEMOJI_BASE_URL }; - if (!options.base) { - options.base = TWEMOJI_BASE_URL; - } if (sanitize) { content = sanitizeText(content); } - content = twemoji.parse(content, options); if (linkify) { content = linkifyHtml(content, { target: '_blank', rel: 'noreferrer noopener', }); } - return parse(content, maths ? mathOptions : null); + return parse(content); } From 5eafa37cddab363cd348c08dc7242d5eeedb5f88 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 19 Oct 2023 21:41:31 +1100 Subject: [PATCH 382/717] Change loading session message (#1461) --- src/app/organisms/settings/DeviceManage.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/organisms/settings/DeviceManage.jsx b/src/app/organisms/settings/DeviceManage.jsx index 7689f0f9..4a4f141c 100644 --- a/src/app/organisms/settings/DeviceManage.jsx +++ b/src/app/organisms/settings/DeviceManage.jsx @@ -91,7 +91,7 @@ function DeviceManage() {
- Loading devices... + Loading sessions...
); From 144cf7136887e2a31522511d42c3065ba17ade58 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 19 Oct 2023 22:20:38 +1100 Subject: [PATCH 383/717] Add text reaction (#1462) --- src/app/components/emoji-board/EmojiBoard.tsx | 27 ++++++++++++++++++- src/app/organisms/room/message/Message.tsx | 1 + 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 067ebe39..94ba14c1 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -13,6 +13,7 @@ import React, { import { Badge, Box, + Chip, Icon, IconButton, Icons, @@ -623,6 +624,7 @@ export function EmojiBoard({ onEmojiSelect, onCustomEmojiSelect, onStickerSelect, + allowTextCustomEmoji, }: { tab?: EmojiBoardTab; onTabChange?: (tab: EmojiBoardTab) => void; @@ -632,6 +634,7 @@ export function EmojiBoard({ onEmojiSelect?: (unicode: string, shortcode: string) => void; onCustomEmojiSelect?: (mxc: string, shortcode: string) => void; onStickerSelect?: (mxc: string, shortcode: string) => void; + allowTextCustomEmoji?: boolean; }) { const emojiTab = tab === EmojiBoardTab.Emoji; const stickerTab = tab === EmojiBoardTab.Sticker; @@ -777,11 +780,33 @@ export function EmojiBoard({ {onTabChange && } } + after={ + allowTextCustomEmoji && result?.query ? ( + } + onClick={() => { + const searchInput = document.querySelector( + '[data-emoji-board-search="true"]' + ); + const textReaction = searchInput?.value.trim(); + if (!textReaction) return; + onCustomEmojiSelect?.(textReaction, textReaction); + requestClose(); + }} + > + React + + ) : ( + + ) + } onChange={handleOnChange} autoFocus={!mobileOrTablet()} /> diff --git a/src/app/organisms/room/message/Message.tsx b/src/app/organisms/room/message/Message.tsx index f5d25503..e26f3662 100644 --- a/src/app/organisms/room/message/Message.tsx +++ b/src/app/organisms/room/message/Message.tsx @@ -734,6 +734,7 @@ export const Message = as<'div', MessageProps>( { onReactionToggle(mEvent.getId()!, key); setEmojiBoard(false); From 03af183fb3e1d4fc52a5e96a4005eca32a1c0617 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 20 Oct 2023 19:39:47 +1100 Subject: [PATCH 384/717] fix wrong following member count on message sent (#1464) --- src/app/hooks/useRoomEventReaders.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/app/hooks/useRoomEventReaders.ts b/src/app/hooks/useRoomEventReaders.ts index f6bac27e..6222bf92 100644 --- a/src/app/hooks/useRoomEventReaders.ts +++ b/src/app/hooks/useRoomEventReaders.ts @@ -3,6 +3,11 @@ import { useEffect, useState } from 'react'; const getEventReaders = (room: Room, evtId?: string) => { if (!evtId) return []; + + // if eventId is locally generated + // we don't have read receipt for it yet + if (!evtId.startsWith('$')) return []; + const liveEvents = room.getLiveTimeline().getEvents(); const userIds: string[] = []; @@ -25,9 +30,25 @@ export const useRoomEventReaders = (room: Room, eventId?: string): string[] => { setReaders(getEventReaders(room, eventId)); }; + const handleLocalEcho: RoomEventHandlerMap[RoomEvent.LocalEchoUpdated] = ( + event, + r, + oldEventId + ) => { + // update members on local event id replaced + // with server generated id + if (r.roomId !== room.roomId || !oldEventId) return; + if (oldEventId.startsWith('$')) return; + if (oldEventId !== eventId) return; + + setReaders(getEventReaders(room, event.getId())); + }; + room.on(RoomEvent.Receipt, handleReceipt); + room.on(RoomEvent.LocalEchoUpdated, handleLocalEcho); return () => { room.removeListener(RoomEvent.Receipt, handleReceipt); + room.removeListener(RoomEvent.LocalEchoUpdated, handleLocalEcho); }; }, [room, eventId]); From 5dc613cd7957e06f2c29692a3b0d6d7e79311860 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 21 Oct 2023 18:14:21 +1100 Subject: [PATCH 385/717] Fix auto read (#1466) * add height to bottom anchor * add width to bottom anchor * add make bottom anchor inline-block * try mark as read on focus receive --- src/app/hooks/useDocumentFocusChange.ts | 25 +++++++++++++++++++++ src/app/organisms/room/RoomTimeline.tsx | 30 ++++++++++++++++++------- 2 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 src/app/hooks/useDocumentFocusChange.ts diff --git a/src/app/hooks/useDocumentFocusChange.ts b/src/app/hooks/useDocumentFocusChange.ts new file mode 100644 index 00000000..ae171b64 --- /dev/null +++ b/src/app/hooks/useDocumentFocusChange.ts @@ -0,0 +1,25 @@ +import { useEffect } from 'react'; + +export const useDocumentFocusChange = (onChange: (focus: boolean) => void) => { + useEffect(() => { + let localFocus = document.hasFocus(); + + const handleFocus = () => { + if (document.hasFocus()) { + if (localFocus) return; + localFocus = true; + onChange(localFocus); + } else if (localFocus) { + localFocus = false; + onChange(localFocus); + } + }; + + document.addEventListener('focusin', handleFocus); + document.addEventListener('focusout', handleFocus); + return () => { + document.removeEventListener('focusin', handleFocus); + document.removeEventListener('focusout', handleFocus); + }; + }, [onChange]); +}; diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index bc810812..2a22245a 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -133,6 +133,7 @@ import { MessageEvent } from '../../../types/matrix/room'; import initMatrix from '../../../client/initMatrix'; import { useKeyDown } from '../../hooks/useKeyDown'; import cons from '../../../client/state/cons'; +import { useDocumentFocusChange } from '../../hooks/useDocumentFocusChange'; const TimelineFloat = as<'div', css.TimelineFloatVariants>( ({ position, className, ...props }, ref) => ( @@ -606,13 +607,15 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli // keep paginating timeline and conditionally mark as read // otherwise we update timeline without paginating // so timeline can be updated with evt like: edits, reactions etc - if (atBottomRef.current && document.hasFocus()) { - if (!unreadInfo) { - markAsRead(mEvt.getRoomId()); + if (atBottomRef.current) { + if (document.hasFocus() && (!unreadInfo || mEvt.getSender() === mx.getUserId())) { + requestAnimationFrame(() => markAsRead(mEvt.getRoomId())); } - scrollToBottomRef.current.count += 1; - scrollToBottomRef.current.smooth = true; + if (document.hasFocus()) { + scrollToBottomRef.current.count += 1; + scrollToBottomRef.current.smooth = true; + } setTimeline((ct) => ({ ...ct, range: { @@ -627,7 +630,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli setUnreadInfo(getRoomUnreadInfo(room)); } }, - [room, unreadInfo] + [mx, room, unreadInfo] ) ); @@ -665,13 +668,13 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli const tryAutoMarkAsRead = useCallback(() => { if (!unreadInfo) { - markAsRead(room.roomId); + requestAnimationFrame(() => markAsRead(room.roomId)); return; } const evtTimeline = getEventTimeline(room, unreadInfo.readUptoEventId); const latestTimeline = evtTimeline && getFirstLinkedTimeline(evtTimeline, Direction.Forward); if (latestTimeline === room.getLiveTimeline()) { - markAsRead(room.roomId); + requestAnimationFrame(() => markAsRead(room.roomId)); } }, [room, unreadInfo]); @@ -705,6 +708,17 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli useCallback(() => atBottomAnchorRef.current, []) ); + useDocumentFocusChange( + useCallback( + (inFocus) => { + if (inFocus && atBottomRef.current) { + tryAutoMarkAsRead(); + } + }, + [tryAutoMarkAsRead] + ) + ); + // Handle up arrow edit useKeyDown( window, From d5ff55e23ed0ade6979e2d87bb48be9349e1ef98 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 21 Oct 2023 18:14:33 +1100 Subject: [PATCH 386/717] Fix hotkeys (#1468) * use hotkey using key instead of which (default) * remove shift from block formatting hotkeys * smartly exit formatting with backspace * set markdown to off by default * exit formatting with escape --- src/app/components/editor/Toolbar.tsx | 23 +++------ .../editor/autocomplete/AutocompleteMenu.tsx | 6 +-- src/app/components/editor/keyboard.ts | 47 +++++++++++++++---- src/app/components/emoji-board/EmojiBoard.tsx | 6 +-- src/app/organisms/room/RoomInput.tsx | 8 ++-- src/app/organisms/room/RoomTimeline.tsx | 4 +- .../organisms/room/message/MessageEditor.tsx | 8 ++-- src/app/state/settings.ts | 2 +- src/app/utils/keyboard.ts | 6 +-- 9 files changed, 65 insertions(+), 45 deletions(-) diff --git a/src/app/components/editor/Toolbar.tsx b/src/app/components/editor/Toolbar.tsx index 342dd106..766a1d83 100644 --- a/src/app/components/editor/Toolbar.tsx +++ b/src/app/components/editor/Toolbar.tsx @@ -261,33 +261,22 @@ export function Toolbar() { - } + tooltip={} /> - } + tooltip={} /> - } + tooltip={} /> - } + tooltip={} /> @@ -296,7 +285,9 @@ export function Toolbar() { } + tooltip={ + + } /> diff --git a/src/app/components/editor/autocomplete/AutocompleteMenu.tsx b/src/app/components/editor/autocomplete/AutocompleteMenu.tsx index e7c8df38..fc4327da 100644 --- a/src/app/components/editor/autocomplete/AutocompleteMenu.tsx +++ b/src/app/components/editor/autocomplete/AutocompleteMenu.tsx @@ -1,6 +1,6 @@ import React, { ReactNode } from 'react'; import FocusTrap from 'focus-trap-react'; -import isHotkey from 'is-hotkey'; +import { isKeyHotkey } from 'is-hotkey'; import { Header, Menu, Scroll, config } from 'folds'; import * as css from './AutocompleteMenu.css'; @@ -22,8 +22,8 @@ export function AutocompleteMenu({ headerContent, requestClose, children }: Auto returnFocusOnDeactivate: false, clickOutsideDeactivates: true, allowOutsideClick: true, - isKeyForward: (evt: KeyboardEvent) => isHotkey('arrowdown', evt), - isKeyBackward: (evt: KeyboardEvent) => isHotkey('arrowup', evt), + isKeyForward: (evt: KeyboardEvent) => isKeyHotkey('arrowdown', evt), + isKeyBackward: (evt: KeyboardEvent) => isKeyHotkey('arrowup', evt), }} > diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index b6d4d692..7031749e 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -1,6 +1,6 @@ -import { isHotkey } from 'is-hotkey'; +import { isKeyHotkey } from 'is-hotkey'; import { KeyboardEvent } from 'react'; -import { Editor } from 'slate'; +import { Editor, Range } from 'slate'; import { isAnyMarkActive, isBlockActive, removeAllMark, toggleBlock, toggleMark } from './utils'; import { BlockType, MarkType } from './types'; @@ -15,10 +15,10 @@ export const INLINE_HOTKEYS: Record = { const INLINE_KEYS = Object.keys(INLINE_HOTKEYS); export const BLOCK_HOTKEYS: Record = { - 'mod+shift+7': BlockType.OrderedList, - 'mod+shift+8': BlockType.UnorderedList, - "mod+shift+'": BlockType.BlockQuote, - 'mod+shift+;': BlockType.CodeBlock, + 'mod+7': BlockType.OrderedList, + 'mod+8': BlockType.UnorderedList, + "mod+'": BlockType.BlockQuote, + 'mod+;': BlockType.CodeBlock, }; const BLOCK_KEYS = Object.keys(BLOCK_HOTKEYS); @@ -26,7 +26,36 @@ const BLOCK_KEYS = Object.keys(BLOCK_HOTKEYS); * @return boolean true if shortcut is toggled. */ export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent): boolean => { - if (isHotkey('mod+e', event)) { + if (isKeyHotkey('backspace', event) && editor.selection && Range.isCollapsed(editor.selection)) { + const startPoint = Range.start(editor.selection); + if (startPoint.offset !== 0) return false; + + const [parentNode, parentPath] = Editor.parent(editor, startPoint); + + if (Editor.isEditor(parentNode)) return false; + + if (parentNode.type === BlockType.Heading) { + toggleBlock(editor, BlockType.Paragraph); + return true; + } + if ( + parentNode.type === BlockType.CodeLine || + parentNode.type === BlockType.QuoteLine || + parentNode.type === BlockType.ListItem + ) { + // exit formatting only when line block + // is first of last of it's parent + const parentLocation = { at: parentPath }; + const [previousNode] = Editor.previous(editor, parentLocation) ?? []; + const [nextNode] = Editor.next(editor, parentLocation) ?? []; + if (!previousNode || !nextNode) { + toggleBlock(editor, BlockType.Paragraph); + return true; + } + } + } + + if (isKeyHotkey('mod+e', event) || isKeyHotkey('escape', event)) { if (isAnyMarkActive(editor)) { removeAllMark(editor); return true; @@ -40,7 +69,7 @@ export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent { - if (isHotkey(hotkey, event)) { + if (isKeyHotkey(hotkey, event)) { event.preventDefault(); toggleBlock(editor, BLOCK_HOTKEYS[hotkey]); return true; @@ -52,7 +81,7 @@ export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent { - if (isHotkey(hotkey, event)) { + if (isKeyHotkey(hotkey, event)) { event.preventDefault(); toggleMark(editor, INLINE_HOTKEYS[hotkey]); return true; diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 94ba14c1..52df9258 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -28,7 +28,7 @@ import { toRem, } from 'folds'; import FocusTrap from 'focus-trap-react'; -import isHotkey from 'is-hotkey'; +import { isKeyHotkey } from 'is-hotkey'; import classNames from 'classnames'; import { MatrixClient, Room } from 'matrix-js-sdk'; import { atom, useAtomValue, useSetAtom } from 'jotai'; @@ -769,9 +769,9 @@ export function EmojiBoard({ clickOutsideDeactivates: true, allowOutsideClick: true, isKeyForward: (evt: KeyboardEvent) => - !editableActiveElement() && isHotkey(['arrowdown', 'arrowright'], evt), + !editableActiveElement() && isKeyHotkey(['arrowdown', 'arrowright'], evt), isKeyBackward: (evt: KeyboardEvent) => - !editableActiveElement() && isHotkey(['arrowup', 'arrowleft'], evt), + !editableActiveElement() && isKeyHotkey(['arrowup', 'arrowleft'], evt), }} > ( const handleKeyDown: KeyboardEventHandler = useCallback( (evt) => { - if (enterForNewline ? isHotkey('shift+enter', evt) : isHotkey('enter', evt)) { + if (enterForNewline ? isKeyHotkey('shift+enter', evt) : isKeyHotkey('enter', evt)) { evt.preventDefault(); submit(); } - if (isHotkey('escape', evt)) { + if (isKeyHotkey('escape', evt)) { evt.preventDefault(); setReplyDraft(); } @@ -333,7 +333,7 @@ export const RoomInput = forwardRef( const handleKeyUp: KeyboardEventHandler = useCallback( (evt) => { - if (isHotkey('escape', evt)) { + if (isKeyHotkey('escape', evt)) { evt.preventDefault(); return; } diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 2a22245a..0852ecf7 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -43,7 +43,7 @@ import { config, toRem, } from 'folds'; -import isHotkey from 'is-hotkey'; +import { isKeyHotkey } from 'is-hotkey'; import Linkify from 'linkify-react'; import { decryptFile, @@ -725,7 +725,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli useCallback( (evt) => { if ( - isHotkey('arrowup', evt) && + isKeyHotkey('arrowup', evt) && editableActiveElement() && document.activeElement?.getAttribute('data-editable-name') === 'RoomInput' && isEmptyEditor(editor) diff --git a/src/app/organisms/room/message/MessageEditor.tsx b/src/app/organisms/room/message/MessageEditor.tsx index f38cfbef..385042ec 100644 --- a/src/app/organisms/room/message/MessageEditor.tsx +++ b/src/app/organisms/room/message/MessageEditor.tsx @@ -3,7 +3,7 @@ import { Box, Chip, Icon, IconButton, Icons, Line, PopOut, Spinner, Text, as, co import { Editor, Transforms } from 'slate'; import { ReactEditor } from 'slate-react'; import { IContent, MatrixEvent, RelationType, Room } from 'matrix-js-sdk'; -import isHotkey from 'is-hotkey'; +import { isKeyHotkey } from 'is-hotkey'; import { AUTOCOMPLETE_PREFIXES, AutocompletePrefix, @@ -120,11 +120,11 @@ export const MessageEditor = as<'div', MessageEditorProps>( const handleKeyDown: KeyboardEventHandler = useCallback( (evt) => { - if (enterForNewline ? isHotkey('shift+enter', evt) : isHotkey('enter', evt)) { + if (enterForNewline ? isKeyHotkey('shift+enter', evt) : isKeyHotkey('enter', evt)) { evt.preventDefault(); handleSave(); } - if (isHotkey('escape', evt)) { + if (isKeyHotkey('escape', evt)) { evt.preventDefault(); onCancel(); } @@ -134,7 +134,7 @@ export const MessageEditor = as<'div', MessageEditorProps>( const handleKeyUp: KeyboardEventHandler = useCallback( (evt) => { - if (isHotkey('escape', evt)) { + if (isKeyHotkey('escape', evt)) { evt.preventDefault(); return; } diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 7770a758..26e3431d 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -28,7 +28,7 @@ export interface Settings { const defaultSettings: Settings = { themeIndex: 0, useSystemTheme: true, - isMarkdown: true, + isMarkdown: false, editorToolbar: false, useSystemEmoji: false, diff --git a/src/app/utils/keyboard.ts b/src/app/utils/keyboard.ts index 56eeb9fc..78aa2521 100644 --- a/src/app/utils/keyboard.ts +++ b/src/app/utils/keyboard.ts @@ -1,4 +1,4 @@ -import isHotkey from 'is-hotkey'; +import { isKeyHotkey } from 'is-hotkey'; import { KeyboardEventHandler } from 'react'; export interface KeyboardEventLike { @@ -12,14 +12,14 @@ export interface KeyboardEventLike { } export const onTabPress = (evt: KeyboardEventLike, callback: () => void) => { - if (isHotkey('tab', evt)) { + if (isKeyHotkey('tab', evt)) { evt.preventDefault(); callback(); } }; export const preventScrollWithArrowKey: KeyboardEventHandler = (evt) => { - if (isHotkey(['arrowup', 'arrowright', 'arrowdown', 'arrowleft'], evt)) { + if (isKeyHotkey(['arrowup', 'arrowright', 'arrowdown', 'arrowleft'], evt)) { evt.preventDefault(); } }; From 9200e22a7e0a8a1b15067bd8f4cc09295879452d Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sat, 21 Oct 2023 21:16:36 +1100 Subject: [PATCH 387/717] fix backward delete with previous empty line (#1469) --- src/app/components/editor/keyboard.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index 7031749e..2ea2dbe1 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -1,6 +1,6 @@ import { isKeyHotkey } from 'is-hotkey'; import { KeyboardEvent } from 'react'; -import { Editor, Range } from 'slate'; +import { Editor, Element as SlateElement, Range, Transforms } from 'slate'; import { isAnyMarkActive, isBlockActive, removeAllMark, toggleBlock, toggleMark } from './utils'; import { BlockType, MarkType } from './types'; @@ -31,6 +31,9 @@ export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent Date: Sat, 21 Oct 2023 21:36:13 +1100 Subject: [PATCH 388/717] Update default server list in config.json (#1467) * Remove halogen.city * Update config.json * Update config.json --- config.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config.json b/config.json index c919882f..ac7b1f32 100644 --- a/config.json +++ b/config.json @@ -1,11 +1,13 @@ { "defaultHomeserver": 3, "homeserverList": [ + "0wnz.at", "converser.eu", "envs.net", - "halogen.city", "matrix.org", - "mozilla.org" + "monero.social", + "mozilla.org", + "xmr.se" ], "allowCustomHomeservers": true } From b80f801d235f1253acfae8db87b00a687b246a06 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sat, 21 Oct 2023 21:37:30 +1100 Subject: [PATCH 389/717] Release v3.0.0 (#1463) * Release v3.0.0 * Update package-lock.json * Update cons.js --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7354f3d5..8c2e80d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "2.2.6", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "2.2.6", + "version": "3.0.0", "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index 8f37636c..0f1bfa75 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "2.2.6", + "version": "3.0.0", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 873c4e33..5d29d1df 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '2.2.6', + version: '3.0.0', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 1ff312d236bc8ad9cad02bd421d0e8e3a00a47e2 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:42:27 +1100 Subject: [PATCH 390/717] Fix edit related bugs (#1477) * fix missing empty line on edit * fix edit save after adding formatting to plaintext * fix reading edit content with wrong key --- src/app/components/editor/input.ts | 3 ++ src/app/organisms/room/RoomTimeline.tsx | 10 +++--- .../organisms/room/message/MessageEditor.tsx | 31 ++++++++++++------- 3 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/app/components/editor/input.ts b/src/app/components/editor/input.ts index 91386a87..5860df04 100644 --- a/src/app/components/editor/input.ts +++ b/src/app/components/editor/input.ts @@ -138,6 +138,7 @@ const parseBlockquoteNode = (node: Element): BlockQuoteElement => { } if (isTag(child)) { if (child.name === 'br') { + lineHolder.push({ text: '' }); appendLine(); return; } @@ -202,6 +203,7 @@ const parseListNode = (node: Element): OrderedListElement | UnorderedListElement } if (isTag(child)) { if (child.name === 'br') { + lineHolder.push({ text: '' }); appendLine(); return; } @@ -260,6 +262,7 @@ export const domToEditorInput = (domNodes: ChildNode[]): Descendant[] => { } if (isTag(node)) { if (node.name === 'br') { + lineHolder.push({ text: '' }); appendLine(); return; } diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 0852ecf7..2cfbd658 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -615,6 +615,8 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli if (document.hasFocus()) { scrollToBottomRef.current.count += 1; scrollToBottomRef.current.smooth = true; + } else if (!unreadInfo) { + setUnreadInfo(getRoomUnreadInfo(room)); } setTimeline((ct) => ({ ...ct, @@ -919,7 +921,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli if (!replyEvt) return; const editedReply = getEditedEvent(replyId, replyEvt, room.getUnfilteredTimelineSet()); const { body, formatted_body: formattedBody }: Record = - editedReply?.getContent()['m.new.content'] ?? replyEvt.getContent(); + editedReply?.getContent()['m.new_content'] ?? replyEvt.getContent(); const senderId = replyEvt.getSender(); if (senderId && typeof body === 'string') { setReplyDraft({ @@ -982,7 +984,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli renderText: (mEventId, mEvent, timelineSet) => { const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); const { body, formatted_body: customBody }: Record = - editedEvent?.getContent()['m.new.content'] ?? mEvent.getContent(); + editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); if (typeof body !== 'string') return null; return ( @@ -1002,7 +1004,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli renderEmote: (mEventId, mEvent, timelineSet) => { const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); const { body, formatted_body: customBody } = - editedEvent?.getContent()['m.new.content'] ?? mEvent.getContent(); + editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); const senderId = mEvent.getSender() ?? ''; const senderDisplayName = @@ -1027,7 +1029,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli renderNotice: (mEventId, mEvent, timelineSet) => { const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); const { body, formatted_body: customBody }: Record = - editedEvent?.getContent()['m.new.content'] ?? mEvent.getContent(); + editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); if (typeof body !== 'string') return null; return ( diff --git a/src/app/organisms/room/message/MessageEditor.tsx b/src/app/organisms/room/message/MessageEditor.tsx index 385042ec..776e1d4d 100644 --- a/src/app/organisms/room/message/MessageEditor.tsx +++ b/src/app/organisms/room/message/MessageEditor.tsx @@ -53,16 +53,22 @@ export const MessageEditor = as<'div', MessageEditorProps>( const [autocompleteQuery, setAutocompleteQuery] = useState>(); - const getPrevBodyAndFormattedBody = useCallback(() => { + const getPrevBodyAndFormattedBody = useCallback((): [ + string | undefined, + string | undefined + ] => { const evtId = mEvent.getId()!; const evtTimeline = room.getTimelineForEvent(evtId); const editedEvent = evtTimeline && getEditedEvent(evtId, mEvent, evtTimeline.getTimelineSet()); const { body, formatted_body: customHtml }: Record = - editedEvent?.getContent()['m.new.content'] ?? mEvent.getContent(); + editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); - return [body, customHtml]; + return [ + typeof body === 'string' ? body : undefined, + typeof customHtml === 'string' ? customHtml : undefined, + ]; }, [room, mEvent]); const [saveState, save] = useAsyncCallback( @@ -78,14 +84,17 @@ export const MessageEditor = as<'div', MessageEditorProps>( const [prevBody, prevCustomHtml] = getPrevBodyAndFormattedBody(); if (plainText === '') return undefined; - if ( - typeof prevCustomHtml === 'string' && - trimReplyFromFormattedBody(prevCustomHtml) === customHtml - ) { - return undefined; - } - if (!prevCustomHtml && typeof prevBody === 'string' && prevBody === plainText) { - return undefined; + if (prevBody) { + if (prevCustomHtml && trimReplyFromFormattedBody(prevCustomHtml) === customHtml) { + return undefined; + } + if ( + !prevCustomHtml && + prevBody === plainText && + customHtmlEqualsPlainText(customHtml, plainText) + ) { + return undefined; + } } const newContent: IContent = { From c0abb0d50da8ae03fa184514c4dfdf4479635f99 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:43:07 +1100 Subject: [PATCH 391/717] fix thread fallback (#1478) --- src/app/hooks/useRoomLatestRenderedEvent.ts | 4 ++-- src/app/organisms/room/RoomTimeline.tsx | 3 ++- src/app/utils/room.ts | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/app/hooks/useRoomLatestRenderedEvent.ts b/src/app/hooks/useRoomLatestRenderedEvent.ts index 428e7b52..fd0ed9e5 100644 --- a/src/app/hooks/useRoomLatestRenderedEvent.ts +++ b/src/app/hooks/useRoomLatestRenderedEvent.ts @@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'; import { settingsAtom } from '../state/settings'; import { useSetting } from '../state/hooks/settings'; import { MessageEvent, StateEvent } from '../../types/matrix/room'; -import { isMembershipChanged } from '../utils/room'; +import { isMembershipChanged, reactionOrEditEvent } from '../utils/room'; export const useRoomLatestRenderedEvent = (room: Room) => { const [hideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); @@ -19,7 +19,7 @@ export const useRoomLatestRenderedEvent = (room: Room) => { const evt = liveEvents[i]; if (!evt) continue; - if (evt.isRelation()) continue; + if (reactionOrEditEvent(evt)) continue; if (evt.getType() === StateEvent.RoomMember) { const membershipChanged = isMembershipChanged(evt); if (membershipChanged && hideMembershipEvents) continue; diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 2cfbd658..09f33260 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -86,6 +86,7 @@ import { getMemberDisplayName, getReactionContent, isMembershipChanged, + reactionOrEditEvent, } from '../../utils/room'; import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; @@ -1632,7 +1633,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli prevEvent.getType() === mEvent.getType() && minuteDifference(prevEvent.getTs(), mEvent.getTs()) < 2; - const eventJSX = mEvent.isRelation() + const eventJSX = reactionOrEditEvent(mEvent) ? null : renderMatrixEvent(mEventId, mEvent, item, timelineSet, collapsed); prevEvent = mEvent; diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts index 1c015a1f..adb6dc08 100644 --- a/src/app/utils/room.ts +++ b/src/app/utils/room.ts @@ -380,3 +380,7 @@ export const getLatestEditableEvt = ( } return undefined; }; + +export const reactionOrEditEvent = (mEvent: MatrixEvent) => + mEvent.getRelation()?.rel_type === RelationType.Annotation || + mEvent.getRelation()?.rel_type === RelationType.Replace; From 122ff2d21670b715d2b1d16f7832bf43364ed3fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:49:38 +1100 Subject: [PATCH 392/717] Bump thollander/actions-comment-pull-request from 2.4.0 to 2.4.3 (#1480) Bumps [thollander/actions-comment-pull-request](https://github.com/thollander/actions-comment-pull-request) from 2.4.0 to 2.4.3. - [Release notes](https://github.com/thollander/actions-comment-pull-request/releases) - [Commits](https://github.com/thollander/actions-comment-pull-request/compare/dadb7667129e23f12ca3925c90dc5cd7121ab57e...1d3973dc4b8e1399c0620d3f2b1aa5e795465308) --- updated-dependencies: - dependency-name: thollander/actions-comment-pull-request dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index c4d82436..3ea1d6b0 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -45,7 +45,7 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_PR_CINNY }} timeout-minutes: 1 - name: Comment preview on PR - uses: thollander/actions-comment-pull-request@dadb7667129e23f12ca3925c90dc5cd7121ab57e + uses: thollander/actions-comment-pull-request@1d3973dc4b8e1399c0620d3f2b1aa5e795465308 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From 7b64258af6be85036fa051d7bd09cfcc6533aa15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 22:03:00 +1100 Subject: [PATCH 393/717] Bump actions/setup-node from 3.6.0 to 3.8.1 (#1401) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.6.0 to 3.8.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.6.0...v3.8.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index d7731055..f2f93feb 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -14,7 +14,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Setup node - uses: actions/setup-node@v3.6.0 + uses: actions/setup-node@v3.8.1 with: node-version: 18.12.1 cache: "npm" diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 8935c510..15698e17 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Setup node - uses: actions/setup-node@v3.6.0 + uses: actions/setup-node@v3.8.1 with: node-version: 18.12.1 cache: "npm" diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 66f40523..d42eef8e 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v3.5.3 - name: Setup node - uses: actions/setup-node@v3.6.0 + uses: actions/setup-node@v3.8.1 with: node-version: 18.12.1 cache: "npm" From 8731f58948dcd015c5880d42a5fe6eb832519a0c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Oct 2023 22:05:38 +1100 Subject: [PATCH 394/717] Bump nwtgck/actions-netlify from 2.0.0 to 2.1.0 (#1402) Bumps [nwtgck/actions-netlify](https://github.com/nwtgck/actions-netlify) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/nwtgck/actions-netlify/releases) - [Changelog](https://github.com/nwtgck/actions-netlify/blob/develop/CHANGELOG.md) - [Commits](https://github.com/nwtgck/actions-netlify/compare/5da65c9f74c7961c5501a3ba329b8d0912f39c03...7a92f00dde8c92a5a9e8385ec2919775f7647352) --- updated-dependencies: - dependency-name: nwtgck/actions-netlify dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 3ea1d6b0..12eabbe4 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -32,7 +32,7 @@ jobs: path: dist - name: Deploy to Netlify id: netlify - uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 + uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 with: publish-dir: dist deploy-message: "Deploy PR ${{ steps.pr.outputs.id }}" diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 15698e17..411b6e3e 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -24,7 +24,7 @@ jobs: NODE_OPTIONS: "--max_old_space_size=4096" run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 + uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 with: publish-dir: dist deploy-message: "Dev deploy ${{ github.sha }}" diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index d42eef8e..63fc342c 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -23,7 +23,7 @@ jobs: NODE_OPTIONS: "--max_old_space_size=4096" run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@5da65c9f74c7961c5501a3ba329b8d0912f39c03 + uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 with: publish-dir: dist deploy-message: "Prod deploy ${{ github.ref_name }}" From c7e5c1fce813af88eba15d62c9294d53d2b858b8 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 24 Oct 2023 22:21:39 +1100 Subject: [PATCH 395/717] Fix reply username overflow (#1501) * fix reply overflow * fix shrinkable typing indicator * fix message avatar hover & cursor --- src/app/components/message/Reply.tsx | 6 +++++- src/app/components/message/layout/layout.css.ts | 2 +- src/app/components/typing-indicator/TypingIndicator.tsx | 1 + src/app/organisms/room/message/Message.tsx | 8 +++++++- src/app/organisms/room/message/styles.css.ts | 4 ++++ 5 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/app/components/message/Reply.tsx b/src/app/components/message/Reply.tsx index a8800fa8..6eaab31e 100644 --- a/src/app/components/message/Reply.tsx +++ b/src/app/components/message/Reply.tsx @@ -67,7 +67,11 @@ export const Reply = as<'div', ReplyProps>( {...props} ref={ref} > - + {sender && ( diff --git a/src/app/components/message/layout/layout.css.ts b/src/app/components/message/layout/layout.css.ts index ff31baa5..7b1a267d 100644 --- a/src/app/components/message/layout/layout.css.ts +++ b/src/app/components/message/layout/layout.css.ts @@ -118,8 +118,8 @@ export const CompactHeader = style([ export const AvatarBase = style({ paddingTop: toRem(4), - cursor: 'pointer', transition: 'transform 200ms cubic-bezier(0, 0.8, 0.67, 0.97)', + alignSelf: 'start', selectors: { '&:hover': { diff --git a/src/app/components/typing-indicator/TypingIndicator.tsx b/src/app/components/typing-indicator/TypingIndicator.tsx index 33690359..e5255873 100644 --- a/src/app/components/typing-indicator/TypingIndicator.tsx +++ b/src/app/components/typing-indicator/TypingIndicator.tsx @@ -10,6 +10,7 @@ export const TypingIndicator = as<'div', TypingIndicatorProps>(({ size, style, . ( const avatarJSX = !collapse && messageLayout !== 1 && ( - + {senderAvatarMxc ? ( Date: Wed, 25 Oct 2023 16:50:38 +1100 Subject: [PATCH 396/717] Room input improvements (#1502) * prevent context menu when editing message * send sticker body (#1479) * update emojiboard search text reaction input label * stop generating upload image thumbnail (#1475) * maintain upload order * Fix message options spinner variant * add markdown toggle in editor toolbar * fix heading toggle icon update with cursor move * add hotkeys for heading * change editor markdown btn style * use Ctrl + Enter to send message (#1470) * fix reaction tooltip word-break * add shift in editor hokeys with number * stop parsing markdown in link --- src/app/components/editor/Editor.css.ts | 4 + src/app/components/editor/Toolbar.tsx | 92 ++++++++++++++++--- src/app/components/editor/keyboard.ts | 19 +++- src/app/components/editor/utils.ts | 10 ++ src/app/components/emoji-board/EmojiBoard.tsx | 12 ++- src/app/organisms/room/RoomInput.tsx | 37 +++----- src/app/organisms/room/message/Message.tsx | 6 +- .../organisms/room/message/MessageEditor.tsx | 2 +- src/app/organisms/room/message/Reactions.tsx | 2 +- src/app/organisms/room/message/styles.css.ts | 4 + src/app/organisms/room/msgContent.ts | 13 --- src/app/organisms/settings/Settings.jsx | 4 +- src/app/utils/markdown.ts | 28 ++++-- 13 files changed, 162 insertions(+), 71 deletions(-) diff --git a/src/app/components/editor/Editor.css.ts b/src/app/components/editor/Editor.css.ts index edce743f..09a444ec 100644 --- a/src/app/components/editor/Editor.css.ts +++ b/src/app/components/editor/Editor.css.ts @@ -66,3 +66,7 @@ export const EditorToolbarBase = style({ export const EditorToolbar = style({ padding: config.space.S100, }); + +export const MarkdownBtnBox = style({ + paddingRight: config.space.S100, +}); diff --git a/src/app/components/editor/Toolbar.tsx b/src/app/components/editor/Toolbar.tsx index 766a1d83..6feae009 100644 --- a/src/app/components/editor/Toolbar.tsx +++ b/src/app/components/editor/Toolbar.tsx @@ -19,6 +19,7 @@ import { import React, { ReactNode, useState } from 'react'; import { ReactEditor, useSlate } from 'slate-react'; import { + headingLevel, isAnyMarkActive, isBlockActive, isMarkActive, @@ -31,6 +32,8 @@ import { BlockType, MarkType } from './types'; import { HeadingLevel } from './slate'; import { isMacOS } from '../../utils/user-agent'; import { KeySymbol } from '../../utils/key-symbol'; +import { useSetting } from '../../state/hooks/settings'; +import { settingsAtom } from '../../state/settings'; function BtnTooltip({ text, shortCode }: { text: string; shortCode?: string }) { return ( @@ -115,13 +118,13 @@ export function BlockButton({ format, icon, tooltip }: BlockButtonProps) { export function HeadingBlockButton() { const editor = useSlate(); - const [level, setLevel] = useState(1); + const level = headingLevel(editor); const [open, setOpen] = useState(false); const isActive = isBlockActive(editor, BlockType.Heading); + const modKey = isMacOS() ? KeySymbol.Command : 'Ctrl'; const handleMenuSelect = (selectedLevel: HeadingLevel) => { setOpen(false); - setLevel(selectedLevel); toggleBlock(editor, BlockType.Heading, { level: selectedLevel }); ReactEditor.focus(editor); }; @@ -130,7 +133,6 @@ export function HeadingBlockButton() { - handleMenuSelect(1)} size="400" radii="300"> - - - handleMenuSelect(2)} size="400" radii="300"> - - - handleMenuSelect(3)} size="400" radii="300"> - - + } + delay={500} + > + {(triggerRef) => ( + handleMenuSelect(1)} + size="400" + radii="300" + > + + + )} + + } + delay={500} + > + {(triggerRef) => ( + handleMenuSelect(2)} + size="400" + radii="300" + > + + + )} + + } + delay={500} + > + {(triggerRef) => ( + handleMenuSelect(3)} + size="400" + radii="300" + > + + + )} + @@ -169,7 +207,7 @@ export function HeadingBlockButton() { size="400" radii="300" > - + )} @@ -210,8 +248,10 @@ export function ExitFormatting({ tooltip }: ExitFormattingProps) { export function Toolbar() { const editor = useSlate(); const modKey = isMacOS() ? KeySymbol.Command : 'Ctrl'; + const disableInline = isBlockActive(editor, BlockType.CodeBlock); const canEscape = isAnyMarkActive(editor) || !isBlockActive(editor, BlockType.Paragraph); + const [isMarkdown, setIsMarkdown] = useSetting(settingsAtom, 'isMarkdown'); return ( @@ -271,12 +311,12 @@ export function Toolbar() { } + tooltip={} /> } + tooltip={} /> @@ -292,6 +332,28 @@ export function Toolbar() { )} + + } + delay={500} + > + {(triggerRef) => ( + setIsMarkdown(!isMarkdown)} + aria-pressed={isMarkdown} + size="300" + radii="300" + disabled={disableInline || !!isAnyMarkActive(editor)} + > + + + )} + + + diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index 2ea2dbe1..370f3e82 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -15,12 +15,15 @@ export const INLINE_HOTKEYS: Record = { const INLINE_KEYS = Object.keys(INLINE_HOTKEYS); export const BLOCK_HOTKEYS: Record = { - 'mod+7': BlockType.OrderedList, - 'mod+8': BlockType.UnorderedList, + 'mod+shift+7': BlockType.OrderedList, + 'mod+shift+8': BlockType.UnorderedList, "mod+'": BlockType.BlockQuote, 'mod+;': BlockType.CodeBlock, }; const BLOCK_KEYS = Object.keys(BLOCK_HOTKEYS); +const isHeading1 = isKeyHotkey('mod+shift+1'); +const isHeading2 = isKeyHotkey('mod+shift+2'); +const isHeading3 = isKeyHotkey('mod+shift+3'); /** * @return boolean true if shortcut is toggled. @@ -86,6 +89,18 @@ export const toggleKeyboardShortcut = (editor: Editor, event: KeyboardEvent { return !!match; }; +export const headingLevel = (editor: Editor): HeadingLevel | undefined => { + const [nodeEntry] = Editor.nodes(editor, { + match: (node) => Element.isElement(node) && node.type === BlockType.Heading, + }); + const [node] = nodeEntry ?? []; + if (!node) return undefined; + if ('level' in node) return node.level; + return undefined; +}; + type BlockOption = { level: HeadingLevel }; const NESTED_BLOCK = [ BlockType.OrderedList, diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 52df9258..5452722f 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -68,6 +68,7 @@ export type EmojiItemInfo = { type: EmojiType; data: string; shortcode: string; + label: string; }; const getDOMGroupId = (id: string): string => `EmojiBoardGroup-${id}`; @@ -75,13 +76,15 @@ const getDOMGroupId = (id: string): string => `EmojiBoardGroup-${id}`; const getEmojiItemInfo = (element: Element): EmojiItemInfo | undefined => { const type = element.getAttribute('data-emoji-type') as EmojiType | undefined; const data = element.getAttribute('data-emoji-data'); + const label = element.getAttribute('title'); const shortcode = element.getAttribute('data-emoji-shortcode'); - if (type && data && shortcode) + if (type && data && shortcode && label) return { type, data, shortcode, + label, }; return undefined; }; @@ -633,7 +636,7 @@ export function EmojiBoard({ returnFocusOnDeactivate?: boolean; onEmojiSelect?: (unicode: string, shortcode: string) => void; onCustomEmojiSelect?: (mxc: string, shortcode: string) => void; - onStickerSelect?: (mxc: string, shortcode: string) => void; + onStickerSelect?: (mxc: string, shortcode: string, label: string) => void; allowTextCustomEmoji?: boolean; }) { const emojiTab = tab === EmojiBoardTab.Emoji; @@ -712,7 +715,7 @@ export function EmojiBoard({ if (!evt.altKey && !evt.shiftKey) requestClose(); } if (emojiInfo.type === EmojiType.Sticker) { - onStickerSelect?.(emojiInfo.data, emojiInfo.shortcode); + onStickerSelect?.(emojiInfo.data, emojiInfo.shortcode, emojiInfo.label); if (!evt.altKey && !evt.shiftKey) requestClose(); } }; @@ -783,7 +786,7 @@ export function EmojiBoard({ data-emoji-board-search variant="SurfaceVariant" size="400" - placeholder="Search" + placeholder={allowTextCustomEmoji ? 'Search or Text Reaction ' : 'Search'} maxLength={50} after={ allowTextCustomEmoji && result?.query ? ( @@ -791,6 +794,7 @@ export function EmojiBoard({ variant="Primary" radii="Pill" after={} + outlined onClick={() => { const searchInput = document.querySelector( '[data-emoji-board-search="true"]' diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/organisms/room/RoomInput.tsx index f7b219be..8dc4e644 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/organisms/room/RoomInput.tsx @@ -29,7 +29,6 @@ import { config, toRem, } from 'folds'; -import to from 'await-to-js'; import { useMatrixClient } from '../../hooks/useMatrixClient'; import { @@ -216,30 +215,24 @@ export const RoomInput = forwardRef( }; const handleSendUpload = async (uploads: UploadSuccess[]) => { - const sendPromises = uploads.map(async (upload) => { + const contentsPromises = uploads.map(async (upload) => { const fileItem = selectedFiles.find((f) => f.file === upload.file); - if (fileItem && fileItem.file.type.startsWith('image')) { - const [imgError, imgContent] = await to(getImageMsgContent(mx, fileItem, upload.mxc)); - if (imgError) console.warn(imgError); - if (imgContent) mx.sendMessage(roomId, imgContent); - return; + if (!fileItem) throw new Error('Broken upload'); + + if (fileItem.file.type.startsWith('image')) { + return getImageMsgContent(mx, fileItem, upload.mxc); } - if (fileItem && fileItem.file.type.startsWith('video')) { - const [videoError, videoContent] = await to(getVideoMsgContent(mx, fileItem, upload.mxc)); - if (videoError) console.warn(videoError); - if (videoContent) mx.sendMessage(roomId, videoContent); - return; + if (fileItem.file.type.startsWith('video')) { + return getVideoMsgContent(mx, fileItem, upload.mxc); } - if (fileItem && fileItem.file.type.startsWith('audio')) { - mx.sendMessage(roomId, getAudioMsgContent(fileItem, upload.mxc)); - return; - } - if (fileItem) { - mx.sendMessage(roomId, getFileMsgContent(fileItem, upload.mxc)); + if (fileItem.file.type.startsWith('audio')) { + return getAudioMsgContent(fileItem, upload.mxc); } + return getFileMsgContent(fileItem, upload.mxc); }); handleCancelUpload(uploads); - await Promise.allSettled(sendPromises); + const contents = fulfilledPromiseSettledResult(await Promise.allSettled(contentsPromises)); + contents.forEach((content) => mx.sendMessage(roomId, content)); }; const submit = useCallback(() => { @@ -319,7 +312,7 @@ export const RoomInput = forwardRef( const handleKeyDown: KeyboardEventHandler = useCallback( (evt) => { - if (enterForNewline ? isKeyHotkey('shift+enter', evt) : isKeyHotkey('enter', evt)) { + if (isKeyHotkey('mod+enter', evt) || (!enterForNewline && isKeyHotkey('enter', evt))) { evt.preventDefault(); submit(); } @@ -359,7 +352,7 @@ export const RoomInput = forwardRef( moveCursor(editor); }; - const handleStickerSelect = async (mxc: string, shortcode: string) => { + const handleStickerSelect = async (mxc: string, shortcode: string, label: string) => { const stickerUrl = mx.mxcUrlToHttp(mxc); if (!stickerUrl) return; @@ -369,7 +362,7 @@ export const RoomInput = forwardRef( ); mx.sendEvent(roomId, EventType.Sticker, { - body: shortcode, + body: label, url: mxc, info, }); diff --git a/src/app/organisms/room/message/Message.tsx b/src/app/organisms/room/message/Message.tsx index 14996a9a..25d894f3 100644 --- a/src/app/organisms/room/message/Message.tsx +++ b/src/app/organisms/room/message/Message.tsx @@ -392,7 +392,7 @@ export const MessageDeleteItem = as< variant="Critical" before={ deleteState.status === AsyncStatus.Loading ? ( - + ) : undefined } aria-disabled={deleteState.status === AsyncStatus.Loading} @@ -522,7 +522,7 @@ export const MessageReportItem = as< variant="Critical" before={ reportState.status === AsyncStatus.Loading ? ( - + ) : undefined } aria-disabled={ @@ -702,7 +702,7 @@ export const Message = as<'div', MessageProps>( ); const handleContextMenu: MouseEventHandler = (evt) => { - if (evt.altKey || !window.getSelection()?.isCollapsed) return; + if (evt.altKey || !window.getSelection()?.isCollapsed || edit) return; const tag = (evt.target as any).tagName; if (typeof tag === 'string' && tag.toLowerCase() === 'a') return; evt.preventDefault(); diff --git a/src/app/organisms/room/message/MessageEditor.tsx b/src/app/organisms/room/message/MessageEditor.tsx index 776e1d4d..0756c38e 100644 --- a/src/app/organisms/room/message/MessageEditor.tsx +++ b/src/app/organisms/room/message/MessageEditor.tsx @@ -129,7 +129,7 @@ export const MessageEditor = as<'div', MessageEditorProps>( const handleKeyDown: KeyboardEventHandler = useCallback( (evt) => { - if (enterForNewline ? isKeyHotkey('shift+enter', evt) : isKeyHotkey('enter', evt)) { + if (isKeyHotkey('mod+enter', evt) || (!enterForNewline && isKeyHotkey('enter', evt))) { evt.preventDefault(); handleSave(); } diff --git a/src/app/organisms/room/message/Reactions.tsx b/src/app/organisms/room/message/Reactions.tsx index bc32c1a3..17b914e5 100644 --- a/src/app/organisms/room/message/Reactions.tsx +++ b/src/app/organisms/room/message/Reactions.tsx @@ -68,7 +68,7 @@ export const Reactions = as<'div', ReactionsProps>( position="Top" tooltip={ - + diff --git a/src/app/organisms/room/message/styles.css.ts b/src/app/organisms/room/message/styles.css.ts index 9cb0f2ef..a5f2f6b5 100644 --- a/src/app/organisms/room/message/styles.css.ts +++ b/src/app/organisms/room/message/styles.css.ts @@ -79,3 +79,7 @@ export const ReactionsContainer = style({ }, }, }); + +export const ReactionsTooltipText = style({ + wordBreak: 'break-all', +}); diff --git a/src/app/organisms/room/msgContent.ts b/src/app/organisms/room/msgContent.ts index e4cf1cbc..0760ec9e 100644 --- a/src/app/organisms/room/msgContent.ts +++ b/src/app/organisms/room/msgContent.ts @@ -54,23 +54,10 @@ export const getImageMsgContent = async ( }; if (imgEl) { const blurHash = encodeBlurHash(imgEl, 512, scaleYDimension(imgEl.width, 512, imgEl.height)); - const [thumbError, thumbContent] = await to( - generateThumbnailContent( - mx, - imgEl, - getThumbnailDimensions(imgEl.width, imgEl.height), - !!encInfo - ) - ); - if (thumbContent && thumbContent.thumbnail_info) { - thumbContent.thumbnail_info[MATRIX_BLUR_HASH_PROPERTY_NAME] = blurHash; - } - if (thumbError) console.warn(thumbError); content.info = { ...getImageInfo(imgEl, file), [MATRIX_BLUR_HASH_PROPERTY_NAME]: blurHash, - ...thumbContent, }; } if (encInfo) { diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index 962a80b6..ae094eff 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -45,6 +45,8 @@ import CinnySVG from '../../../../public/res/svg/cinny.svg'; import { confirmDialog } from '../../molecules/confirm-dialog/ConfirmDialog'; import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; +import { isMacOS } from '../../utils/user-agent'; +import { KeySymbol } from '../../utils/key-symbol'; function AppearanceSection() { const [, updateState] = useState({}); @@ -147,7 +149,7 @@ function AppearanceSection() { onToggle={() => setEnterForNewline(!enterForNewline) } /> )} - content={Use SHIFT + ENTER to send message and ENTER for newline.} + content={{`Use ${isMacOS() ? KeySymbol.Command : 'Ctrl'} + ENTER to send message and ENTER for newline.`}} /> string | undefined; const MIN_ANY = '(.+?)'; +const URL_NEG_LB = '(? text.match(BOLD_REG_1), html: (parse, match) => { const [, g1] = match; - const child = parse(g1); - return `${child}`; + return `${parse(g1)}`; }, }; const ITALIC_MD_1 = '*'; const ITALIC_PREFIX_1 = '\\*'; const ITALIC_NEG_LA_1 = '(?!\\*)'; -const ITALIC_REG_1 = new RegExp(`${ITALIC_PREFIX_1}${MIN_ANY}${ITALIC_PREFIX_1}${ITALIC_NEG_LA_1}`); +const ITALIC_REG_1 = new RegExp( + `${URL_NEG_LB}${ITALIC_PREFIX_1}${MIN_ANY}${ITALIC_PREFIX_1}${ITALIC_NEG_LA_1}` +); const ItalicRule1: MDRule = { match: (text) => text.match(ITALIC_REG_1), html: (parse, match) => { @@ -52,7 +56,9 @@ const ItalicRule1: MDRule = { const ITALIC_MD_2 = '_'; const ITALIC_PREFIX_2 = '_'; const ITALIC_NEG_LA_2 = '(?!_)'; -const ITALIC_REG_2 = new RegExp(`${ITALIC_PREFIX_2}${MIN_ANY}${ITALIC_PREFIX_2}${ITALIC_NEG_LA_2}`); +const ITALIC_REG_2 = new RegExp( + `${URL_NEG_LB}${ITALIC_PREFIX_2}${MIN_ANY}${ITALIC_PREFIX_2}${ITALIC_NEG_LA_2}` +); const ItalicRule2: MDRule = { match: (text) => text.match(ITALIC_REG_2), html: (parse, match) => { @@ -65,7 +71,7 @@ const UNDERLINE_MD_1 = '__'; const UNDERLINE_PREFIX_1 = '_{2}'; const UNDERLINE_NEG_LA_1 = '(?!_)'; const UNDERLINE_REG_1 = new RegExp( - `${UNDERLINE_PREFIX_1}${MIN_ANY}${UNDERLINE_PREFIX_1}${UNDERLINE_NEG_LA_1}` + `${URL_NEG_LB}${UNDERLINE_PREFIX_1}${MIN_ANY}${UNDERLINE_PREFIX_1}${UNDERLINE_NEG_LA_1}` ); const UnderlineRule: MDRule = { match: (text) => text.match(UNDERLINE_REG_1), @@ -78,7 +84,9 @@ const UnderlineRule: MDRule = { const STRIKE_MD_1 = '~~'; const STRIKE_PREFIX_1 = '~{2}'; const STRIKE_NEG_LA_1 = '(?!~)'; -const STRIKE_REG_1 = new RegExp(`${STRIKE_PREFIX_1}${MIN_ANY}${STRIKE_PREFIX_1}${STRIKE_NEG_LA_1}`); +const STRIKE_REG_1 = new RegExp( + `${URL_NEG_LB}${STRIKE_PREFIX_1}${MIN_ANY}${STRIKE_PREFIX_1}${STRIKE_NEG_LA_1}` +); const StrikeRule: MDRule = { match: (text) => text.match(STRIKE_REG_1), html: (parse, match) => { @@ -90,7 +98,9 @@ const StrikeRule: MDRule = { const CODE_MD_1 = '`'; const CODE_PREFIX_1 = '`'; const CODE_NEG_LA_1 = '(?!`)'; -const CODE_REG_1 = new RegExp(`${CODE_PREFIX_1}${MIN_ANY}${CODE_PREFIX_1}${CODE_NEG_LA_1}`); +const CODE_REG_1 = new RegExp( + `${URL_NEG_LB}${CODE_PREFIX_1}${MIN_ANY}${CODE_PREFIX_1}${CODE_NEG_LA_1}` +); const CodeRule: MDRule = { match: (text) => text.match(CODE_REG_1), html: (parse, match) => { @@ -103,7 +113,7 @@ const SPOILER_MD_1 = '||'; const SPOILER_PREFIX_1 = '\\|{2}'; const SPOILER_NEG_LA_1 = '(?!\\|)'; const SPOILER_REG_1 = new RegExp( - `${SPOILER_PREFIX_1}${MIN_ANY}${SPOILER_PREFIX_1}${SPOILER_NEG_LA_1}` + `${URL_NEG_LB}${SPOILER_PREFIX_1}${MIN_ANY}${SPOILER_PREFIX_1}${SPOILER_NEG_LA_1}` ); const SpoilerRule: MDRule = { match: (text) => text.match(SPOILER_REG_1), From f53bb28b66cfb56ce7549608283dd6004745e6ce Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Thu, 26 Oct 2023 09:09:27 +1100 Subject: [PATCH 397/717] Fix emoji and other related bugs (#1504) * make system-emoji default & twitter emoji optional * add mozilla twemoji-colr credit * fix wrong audio duration * set locales to empty in member count millify * render system emoji as same size of custom emoji --- src/app/organisms/room/MembersDrawer.tsx | 2 +- src/app/organisms/room/RoomTimeline.tsx | 8 ++- .../organisms/room/message/AudioContent.tsx | 3 +- src/app/organisms/settings/Settings.jsx | 14 ++-- src/app/plugins/react-custom-html-parser.tsx | 70 +++++++++++++------ src/app/state/settings.ts | 4 +- src/app/styles/CustomHtml.css.ts | 4 +- src/app/templates/client/Client.jsx | 8 +-- src/app/utils/regex.ts | 4 ++ src/index.scss | 2 +- 10 files changed, 78 insertions(+), 41 deletions(-) create mode 100644 src/app/utils/regex.ts diff --git a/src/app/organisms/room/MembersDrawer.tsx b/src/app/organisms/room/MembersDrawer.tsx index 365dc62d..b4ba6b79 100644 --- a/src/app/organisms/room/MembersDrawer.tsx +++ b/src/app/organisms/room/MembersDrawer.tsx @@ -271,7 +271,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { - {`${millify(room.getJoinedMemberCount(), { precision: 1 })} Members`} + {`${millify(room.getJoinedMemberCount(), { precision: 1, locales: [] })} Members`} diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 09f33260..742971d1 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -44,7 +44,6 @@ import { toRem, } from 'folds'; import { isKeyHotkey } from 'is-hotkey'; -import Linkify from 'linkify-react'; import { decryptFile, eventWithShortcode, @@ -76,7 +75,10 @@ import { MessageBadEncryptedContent, MessageNotDecryptedContent, } from '../../components/message'; -import { LINKIFY_OPTS, getReactCustomHtmlParser } from '../../plugins/react-custom-html-parser'; +import { + emojifyAndLinkify, + getReactCustomHtmlParser, +} from '../../plugins/react-custom-html-parser'; import { canEditEvent, decryptAllTimelineEvent, @@ -978,7 +980,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli if (customBody === '') ; return parse(sanitizeCustomHtml(customBody), htmlReactParserOptions); } - return {body}; + return emojifyAndLinkify(body, true); }; const renderRoomMsgContent = useRoomMsgContentRenderer<[EventTimelineSet]>({ diff --git a/src/app/organisms/room/message/AudioContent.tsx b/src/app/organisms/room/message/AudioContent.tsx index b5873f35..eae5447b 100644 --- a/src/app/organisms/room/message/AudioContent.tsx +++ b/src/app/organisms/room/message/AudioContent.tsx @@ -44,7 +44,8 @@ export const AudioContent = as<'div', AudioContentProps>( const audioRef = useRef(null); const [currentTime, setCurrentTime] = useState(0); - const [duration, setDuration] = useState(info.duration ?? 0); + // duration in seconds. (NOTE: info.duration is in milliseconds) + const [duration, setDuration] = useState((info.duration ?? 0) / 1000); const getAudioRef = useCallback(() => audioRef.current, []); const { loading } = useMediaLoading(getAudioRef); diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index ae094eff..2b706eda 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -54,7 +54,7 @@ function AppearanceSection() { const [enterForNewline, setEnterForNewline] = useSetting(settingsAtom, 'enterForNewline'); const [messageLayout, setMessageLayout] = useSetting(settingsAtom, 'messageLayout'); const [messageSpacing, setMessageSpacing] = useSetting(settingsAtom, 'messageSpacing'); - const [useSystemEmoji, setUseSystemEmoji] = useSetting(settingsAtom, 'useSystemEmoji'); + const [twitterEmoji, setTwitterEmoji] = useSetting(settingsAtom, 'twitterEmoji'); const [isMarkdown, setIsMarkdown] = useSetting(settingsAtom, 'isMarkdown'); const [hideMembershipEvents, setHideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); const [hideNickAvatarEvents, setHideNickAvatarEvents] = useSetting(settingsAtom, 'hideNickAvatarEvents'); @@ -96,14 +96,14 @@ function AppearanceSection() { )} /> setUseSystemEmoji(!useSystemEmoji)} + isActive={twitterEmoji} + onToggle={() => setTwitterEmoji(!twitterEmoji)} /> )} - content={Use system emoji instead of Twitter emojis.} + content={Use Twitter emoji instead of system emoji.} />
@@ -339,6 +339,10 @@ function AboutSection() { {/* eslint-disable-next-line react/jsx-one-expression-per-line */ } The matrix-js-sdk is © The Matrix.org Foundation C.I.C used under the terms of Apache 2.0. +
  • + {/* eslint-disable-next-line react/jsx-one-expression-per-line */ } + The twemoji-colr font is © Mozilla Foundation used under the terms of Apache 2.0. +
  • {/* eslint-disable-next-line react/jsx-one-expression-per-line */ } The Twemoji emoji art is © Twitter, Inc and other contributors used under the terms of CC-BY 4.0. diff --git a/src/app/plugins/react-custom-html-parser.tsx b/src/app/plugins/react-custom-html-parser.tsx index 09f09d8f..478a8a3b 100644 --- a/src/app/plugins/react-custom-html-parser.tsx +++ b/src/app/plugins/react-custom-html-parser.tsx @@ -1,6 +1,6 @@ /* eslint-disable jsx-a11y/alt-text */ import React, { ReactEventHandler, Suspense, lazy } from 'react'; -import { +import parse, { Element, Text as DOMText, HTMLReactParserOptions, @@ -16,9 +16,14 @@ import { ErrorBoundary } from 'react-error-boundary'; import * as css from '../styles/CustomHtml.css'; import { getMxIdLocalPart, getRoomWithCanonicalAlias } from '../utils/matrix'; import { getMemberDisplayName } from '../utils/room'; +import { EMOJI_PATTERN, URL_NEG_LB } from '../utils/regex'; +import { sanitizeText } from '../utils/sanitize'; +import { getHexcodeForEmoji, getShortcodeFor } from './emoji'; const ReactPrism = lazy(() => import('./react-prism/ReactPrism')); +const EMOJI_REG = new RegExp(`${URL_NEG_LB}(${EMOJI_PATTERN})`, 'g'); + export const LINKIFY_OPTS: LinkifyOpts = { attributes: { target: '_blank', @@ -27,6 +32,28 @@ export const LINKIFY_OPTS: LinkifyOpts = { validate: { url: (value) => /^(https|http|ftp|mailto|magnet)?:/.test(value), }, + ignoreTags: ['span'], +}; + +const emojifyParserOptions: HTMLReactParserOptions = { + replace: (domNode) => { + if (domNode instanceof DOMText) { + return {domNode.data}; + } + return undefined; + }, +}; + +export const emojifyAndLinkify = (unsafeText: string, linkify?: boolean) => { + const emojifyHtml = sanitizeText(unsafeText).replace( + EMOJI_REG, + (emoji) => + `${emoji}` + ); + + return <>{parse(emojifyHtml, linkify ? emojifyParserOptions : undefined)}; }; export const getReactCustomHtmlParser = ( @@ -45,7 +72,7 @@ export const getReactCustomHtmlParser = ( if (name === 'h1') { return ( - + {domToReact(children, opts)} ); @@ -53,7 +80,7 @@ export const getReactCustomHtmlParser = ( if (name === 'h2') { return ( - + {domToReact(children, opts)} ); @@ -61,7 +88,7 @@ export const getReactCustomHtmlParser = ( if (name === 'h3') { return ( - + {domToReact(children, opts)} ); @@ -69,7 +96,7 @@ export const getReactCustomHtmlParser = ( if (name === 'h4') { return ( - + {domToReact(children, opts)} ); @@ -77,7 +104,7 @@ export const getReactCustomHtmlParser = ( if (name === 'h5') { return ( - + {domToReact(children, opts)} ); @@ -85,7 +112,7 @@ export const getReactCustomHtmlParser = ( if (name === 'h6') { return ( - + {domToReact(children, opts)} ); @@ -93,7 +120,7 @@ export const getReactCustomHtmlParser = ( if (name === 'p') { return ( - + {domToReact(children, opts)} ); @@ -101,7 +128,7 @@ export const getReactCustomHtmlParser = ( if (name === 'pre') { return ( - + + {domToReact(children, opts)} ); @@ -125,14 +152,14 @@ export const getReactCustomHtmlParser = ( if (name === 'ul') { return ( -
      +
        {domToReact(children, opts)}
      ); } if (name === 'ol') { return ( -
        +
          {domToReact(children, opts)}
        ); @@ -240,29 +267,28 @@ export const getReactCustomHtmlParser = ( if (htmlSrc && props.src.startsWith('mxc://') === false) { return ( - {props.alt && htmlSrc} + {props.alt || props.title || htmlSrc} ); } if (htmlSrc && 'data-mx-emoticon' in props) { return ( - - + + ); } - if (htmlSrc) return ; + if (htmlSrc) return ; } } - if ( - domNode instanceof DOMText && - !(domNode.parent && 'name' in domNode.parent && domNode.parent.name === 'code') && - !(domNode.parent && 'name' in domNode.parent && domNode.parent.name === 'a') - ) { - return {domNode.data}; + if (domNode instanceof DOMText) { + const linkify = + !(domNode.parent && 'name' in domNode.parent && domNode.parent.name === 'code') && + !(domNode.parent && 'name' in domNode.parent && domNode.parent.name === 'a'); + return emojifyAndLinkify(domNode.data, linkify); } return undefined; }, diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 26e3431d..3a7832cd 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -9,7 +9,7 @@ export interface Settings { useSystemTheme: boolean; isMarkdown: boolean; editorToolbar: boolean; - useSystemEmoji: boolean; + twitterEmoji: boolean; isPeopleDrawer: boolean; memberSortFilterIndex: number; @@ -30,7 +30,7 @@ const defaultSettings: Settings = { useSystemTheme: true, isMarkdown: false, editorToolbar: false, - useSystemEmoji: false, + twitterEmoji: false, isPeopleDrawer: true, memberSortFilterIndex: 0, diff --git a/src/app/styles/CustomHtml.css.ts b/src/app/styles/CustomHtml.css.ts index 2a06c0fb..076bbb61 100644 --- a/src/app/styles/CustomHtml.css.ts +++ b/src/app/styles/CustomHtml.css.ts @@ -187,11 +187,11 @@ export const Emoticon = recipe({ height: '1em', minWidth: '1em', - fontSize: '1.47em', + fontSize: '1.33em', lineHeight: '1em', verticalAlign: 'middle', position: 'relative', - top: '-0.32em', + top: '-0.35em', borderRadius: config.radii.R300, }, ], diff --git a/src/app/templates/client/Client.jsx b/src/app/templates/client/Client.jsx index 77db4115..e9be6b16 100644 --- a/src/app/templates/client/Client.jsx +++ b/src/app/templates/client/Client.jsx @@ -24,12 +24,12 @@ import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; function SystemEmojiFeature() { - const [systemEmoji] = useSetting(settingsAtom, 'useSystemEmoji'); + const [twitterEmoji] = useSetting(settingsAtom, 'twitterEmoji'); - if (systemEmoji) { - document.documentElement.style.setProperty('--font-emoji', 'Twemoji_DISABLED'); - } else { + if (twitterEmoji) { document.documentElement.style.setProperty('--font-emoji', 'Twemoji'); + } else { + document.documentElement.style.setProperty('--font-emoji', 'Twemoji_DISABLED'); } return null; diff --git a/src/app/utils/regex.ts b/src/app/utils/regex.ts new file mode 100644 index 00000000..73da664e --- /dev/null +++ b/src/app/utils/regex.ts @@ -0,0 +1,4 @@ +export const URL_NEG_LB = '(? Date: Thu, 26 Oct 2023 16:21:55 +1100 Subject: [PATCH 398/717] Fix-timeline-loading (#1506) * fix timeline jump to search item after markAsRead * improve pagination logic * add jumbo emoji support in msg rendering --- src/app/organisms/room/RoomTimeline.tsx | 17 +++++++++++++++-- src/app/utils/regex.ts | 3 +++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 742971d1..2d382454 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -137,6 +137,13 @@ import initMatrix from '../../../client/initMatrix'; import { useKeyDown } from '../../hooks/useKeyDown'; import cons from '../../../client/state/cons'; import { useDocumentFocusChange } from '../../hooks/useDocumentFocusChange'; +import { EMOJI_PATTERN, VARIATION_SELECTOR_PATTERN } from '../../utils/regex'; + +// Thumbs up emoji found to have Variation Selector 16 at the end +// so included variation selector pattern in regex +const JUMBO_EMOJI_REG = new RegExp( + `^(((${EMOJI_PATTERN})|(:.+?:))(${VARIATION_SELECTOR_PATTERN}|\\s)*){1,10}$` +); const TimelineFloat = as<'div', css.TimelineFloatVariants>( ({ position, className, ...props }, ref) => ( @@ -334,6 +341,7 @@ const useTimelinePagination = ( return async (backwards: boolean) => { if (fetching) return; + const targetTimeline = timelineRef.current; const { linkedTimelines: lTimelines } = timelineRef.current; const timelinesEventsCount = lTimelines.map(timelineToEventsCount); @@ -373,6 +381,7 @@ const useTimelinePagination = ( } fetching = false; + if (targetTimeline !== timelineRef.current) return; if (alive()) { recalibratePagination(lTimelines, timelinesEventsCount, backwards); } @@ -582,7 +591,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli focusItem.current = { index: evtAbsIndex, scrollTo: true, - highlight: evtId !== unreadInfo?.readUptoEventId, + highlight: evtId !== readUptoEventIdRef.current, }; setTimeline({ linkedTimelines: lTimelines, @@ -592,7 +601,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli }, }); }, - [unreadInfo, alive] + [alive] ), useCallback(() => { if (!alive()) return; @@ -990,12 +999,16 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); if (typeof body !== 'string') return null; + const jumboEmoji = JUMBO_EMOJI_REG.test(body); + return ( diff --git a/src/app/utils/regex.ts b/src/app/utils/regex.ts index 73da664e..3b0e9815 100644 --- a/src/app/utils/regex.ts +++ b/src/app/utils/regex.ts @@ -1,4 +1,7 @@ export const URL_NEG_LB = '(? Date: Fri, 27 Oct 2023 21:27:22 +1100 Subject: [PATCH 399/717] Improve Editor related bugs and add multiline md (#1507) * remove shift from editor hotkeys * fix inline markdown not working * add block md parser - WIP * emojify and linkify text without react-parser * no need to sanitize text when emojify * parse block markdown in editor output - WIP * add inline parser option in block md parser * improve codeblock regex * ignore html tag when parsing inline md in block md * add list markdown rule in block parser * re-generate block markdown on edit * change copy from inline markdown to markdown * fix trim reply from body regex * fix jumbo emoji in reply message * fix broken list regex in block markdown * enable markdown by defualt --- src/app/components/editor/Toolbar.tsx | 19 +- src/app/components/editor/input.ts | 151 +++++++--- src/app/components/editor/keyboard.ts | 12 +- src/app/components/editor/output.ts | 41 ++- src/app/components/message/Reply.tsx | 9 +- src/app/organisms/room/RoomInput.tsx | 3 +- src/app/organisms/room/RoomTimeline.tsx | 3 +- .../organisms/room/message/MessageEditor.tsx | 3 +- src/app/organisms/room/message/styles.css.ts | 2 +- src/app/organisms/settings/Settings.jsx | 4 +- src/app/plugins/react-custom-html-parser.tsx | 46 +-- src/app/state/settings.ts | 2 +- src/app/utils/markdown.ts | 277 ++++++++++++++---- src/app/utils/room.ts | 2 +- src/app/utils/sanitize.ts | 11 +- 15 files changed, 425 insertions(+), 160 deletions(-) diff --git a/src/app/components/editor/Toolbar.tsx b/src/app/components/editor/Toolbar.tsx index 6feae009..5d5e9894 100644 --- a/src/app/components/editor/Toolbar.tsx +++ b/src/app/components/editor/Toolbar.tsx @@ -148,7 +148,7 @@ export function HeadingBlockButton() { } + tooltip={} delay={500} > {(triggerRef) => ( @@ -163,7 +163,7 @@ export function HeadingBlockButton() { )} } + tooltip={} delay={500} > {(triggerRef) => ( @@ -178,7 +178,7 @@ export function HeadingBlockButton() { )} } + tooltip={} delay={500} > {(triggerRef) => ( @@ -277,12 +277,7 @@ export function Toolbar() { - } + tooltip={} /> } + tooltip={} /> } + tooltip={} /> @@ -335,7 +330,7 @@ export function Toolbar() { } + tooltip={} delay={500} > {(triggerRef) => ( diff --git a/src/app/components/editor/input.ts b/src/app/components/editor/input.ts index 5860df04..272b9707 100644 --- a/src/app/components/editor/input.ts +++ b/src/app/components/editor/input.ts @@ -13,11 +13,9 @@ import { HeadingElement, HeadingLevel, InlineElement, - ListItemElement, MentionElement, OrderedListElement, ParagraphElement, - QuoteLineElement, UnorderedListElement, } from './slate'; import { parseMatrixToUrl } from '../../utils/matrix'; @@ -117,17 +115,14 @@ const parseInlineNodes = (node: ChildNode): InlineElement[] => { return []; }; -const parseBlockquoteNode = (node: Element): BlockQuoteElement => { - const children: QuoteLineElement[] = []; +const parseBlockquoteNode = (node: Element): BlockQuoteElement[] | ParagraphElement[] => { + const quoteLines: Array = []; let lineHolder: InlineElement[] = []; const appendLine = () => { if (lineHolder.length === 0) return; - children.push({ - type: BlockType.QuoteLine, - children: lineHolder, - }); + quoteLines.push(lineHolder); lineHolder = []; }; @@ -145,10 +140,7 @@ const parseBlockquoteNode = (node: Element): BlockQuoteElement => { if (child.name === 'p') { appendLine(); - children.push({ - type: BlockType.QuoteLine, - children: child.children.flatMap((c) => parseInlineNodes(c)), - }); + quoteLines.push(child.children.flatMap((c) => parseInlineNodes(c))); return; } @@ -157,42 +149,71 @@ const parseBlockquoteNode = (node: Element): BlockQuoteElement => { }); appendLine(); - return { - type: BlockType.BlockQuote, - children, - }; -}; -const parseCodeBlockNode = (node: Element): CodeBlockElement => { - const children: CodeLineElement[] = []; + if (node.attribs['data-md'] !== undefined) { + return quoteLines.map((lineChildren) => ({ + type: BlockType.Paragraph, + children: [{ text: `${node.attribs['data-md']} ` }, ...lineChildren], + })); + } - const code = parseNodeText(node).trim(); - code.split('\n').forEach((lineTxt) => - children.push({ - type: BlockType.CodeLine, + return [ + { + type: BlockType.BlockQuote, + children: quoteLines.map((lineChildren) => ({ + type: BlockType.QuoteLine, + children: lineChildren, + })), + }, + ]; +}; +const parseCodeBlockNode = (node: Element): CodeBlockElement[] | ParagraphElement[] => { + const codeLines = parseNodeText(node).trim().split('\n'); + + if (node.attribs['data-md'] !== undefined) { + const pLines = codeLines.map((lineText) => ({ + type: BlockType.Paragraph, children: [ { - text: lineTxt, + text: lineText, }, ], - }) - ); + })); + const childCode = node.children[0]; + const className = + isTag(childCode) && childCode.tagName === 'code' ? childCode.attribs.class ?? '' : ''; + const prefix = { text: `${node.attribs['data-md']}${className.replace('language-', '')}` }; + const suffix = { text: node.attribs['data-md'] }; + return [ + { type: BlockType.Paragraph, children: [prefix] }, + ...pLines, + { type: BlockType.Paragraph, children: [suffix] }, + ]; + } - return { - type: BlockType.CodeBlock, - children, - }; + return [ + { + type: BlockType.CodeBlock, + children: codeLines.map((lineTxt) => ({ + type: BlockType.CodeLine, + children: [ + { + text: lineTxt, + }, + ], + })), + }, + ]; }; -const parseListNode = (node: Element): OrderedListElement | UnorderedListElement => { - const children: ListItemElement[] = []; +const parseListNode = ( + node: Element +): OrderedListElement[] | UnorderedListElement[] | ParagraphElement[] => { + const listLines: Array = []; let lineHolder: InlineElement[] = []; const appendLine = () => { if (lineHolder.length === 0) return; - children.push({ - type: BlockType.ListItem, - children: lineHolder, - }); + listLines.push(lineHolder); lineHolder = []; }; @@ -210,10 +231,7 @@ const parseListNode = (node: Element): OrderedListElement | UnorderedListElement if (child.name === 'li') { appendLine(); - children.push({ - type: BlockType.ListItem, - children: child.children.flatMap((c) => parseInlineNodes(c)), - }); + listLines.push(child.children.flatMap((c) => parseInlineNodes(c))); return; } @@ -222,17 +240,54 @@ const parseListNode = (node: Element): OrderedListElement | UnorderedListElement }); appendLine(); - return { - type: node.name === 'ol' ? BlockType.OrderedList : BlockType.UnorderedList, - children, - }; + if (node.attribs['data-md'] !== undefined) { + const prefix = node.attribs['data-md'] || '-'; + const [starOrHyphen] = prefix.match(/^\*|-$/) ?? []; + return listLines.map((lineChildren) => ({ + type: BlockType.Paragraph, + children: [ + { text: `${starOrHyphen ? `${starOrHyphen} ` : `${prefix}. `} ` }, + ...lineChildren, + ], + })); + } + + if (node.name === 'ol') { + return [ + { + type: BlockType.OrderedList, + children: listLines.map((lineChildren) => ({ + type: BlockType.ListItem, + children: lineChildren, + })), + }, + ]; + } + + return [ + { + type: BlockType.UnorderedList, + children: listLines.map((lineChildren) => ({ + type: BlockType.ListItem, + children: lineChildren, + })), + }, + ]; }; -const parseHeadingNode = (node: Element): HeadingElement => { +const parseHeadingNode = (node: Element): HeadingElement | ParagraphElement => { const children = node.children.flatMap((child) => parseInlineNodes(child)); const headingMatch = node.name.match(/^h([123456])$/); const [, g1AsLevel] = headingMatch ?? ['h3', '3']; const level = parseInt(g1AsLevel, 10); + + if (node.attribs['data-md'] !== undefined) { + return { + type: BlockType.Paragraph, + children: [{ text: `${node.attribs['data-md']} ` }, ...children], + }; + } + return { type: BlockType.Heading, level: (level <= 3 ? level : 3) as HeadingLevel, @@ -278,17 +333,17 @@ export const domToEditorInput = (domNodes: ChildNode[]): Descendant[] => { if (node.name === 'blockquote') { appendLine(); - children.push(parseBlockquoteNode(node)); + children.push(...parseBlockquoteNode(node)); return; } if (node.name === 'pre') { appendLine(); - children.push(parseCodeBlockNode(node)); + children.push(...parseCodeBlockNode(node)); return; } if (node.name === 'ol' || node.name === 'ul') { appendLine(); - children.push(parseListNode(node)); + children.push(...parseListNode(node)); return; } diff --git a/src/app/components/editor/keyboard.ts b/src/app/components/editor/keyboard.ts index 370f3e82..19c05bac 100644 --- a/src/app/components/editor/keyboard.ts +++ b/src/app/components/editor/keyboard.ts @@ -8,22 +8,22 @@ export const INLINE_HOTKEYS: Record = { 'mod+b': MarkType.Bold, 'mod+i': MarkType.Italic, 'mod+u': MarkType.Underline, - 'mod+shift+u': MarkType.StrikeThrough, + 'mod+s': MarkType.StrikeThrough, 'mod+[': MarkType.Code, 'mod+h': MarkType.Spoiler, }; const INLINE_KEYS = Object.keys(INLINE_HOTKEYS); export const BLOCK_HOTKEYS: Record = { - 'mod+shift+7': BlockType.OrderedList, - 'mod+shift+8': BlockType.UnorderedList, + 'mod+7': BlockType.OrderedList, + 'mod+8': BlockType.UnorderedList, "mod+'": BlockType.BlockQuote, 'mod+;': BlockType.CodeBlock, }; const BLOCK_KEYS = Object.keys(BLOCK_HOTKEYS); -const isHeading1 = isKeyHotkey('mod+shift+1'); -const isHeading2 = isKeyHotkey('mod+shift+2'); -const isHeading3 = isKeyHotkey('mod+shift+3'); +const isHeading1 = isKeyHotkey('mod+1'); +const isHeading2 = isKeyHotkey('mod+2'); +const isHeading3 = isKeyHotkey('mod+3'); /** * @return boolean true if shortcut is toggled. diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 307ef8a2..fa15bb58 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -3,11 +3,12 @@ import { Descendant, Text } from 'slate'; import { sanitizeText } from '../../utils/sanitize'; import { BlockType } from './types'; import { CustomElement } from './slate'; -import { parseInlineMD } from '../../utils/markdown'; +import { parseBlockMD, parseInlineMD, replaceMatch } from '../../utils/markdown'; export type OutputOptions = { allowTextFormatting?: boolean; - allowMarkdown?: boolean; + allowInlineMarkdown?: boolean; + allowBlockMarkdown?: boolean; }; const textToCustomHtml = (node: Text, opts: OutputOptions): string => { @@ -21,7 +22,7 @@ const textToCustomHtml = (node: Text, opts: OutputOptions): string => { if (node.spoiler) string = `${string}`; } - if (opts.allowMarkdown && string === sanitizeText(node.text)) { + if (opts.allowInlineMarkdown && string === sanitizeText(node.text)) { string = parseInlineMD(string); } @@ -64,14 +65,42 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { } }; +const HTML_TAG_REG = /<([a-z]+)(?![^>]*\/>)[^<]*<\/\1>/; +const ignoreHTMLParseInlineMD = (text: string): string => { + if (text === '') return text; + const match = text.match(HTML_TAG_REG); + if (!match) return parseInlineMD(text); + const [matchedTxt] = match; + return replaceMatch((txt) => [ignoreHTMLParseInlineMD(txt)], text, match, matchedTxt).join(''); +}; + export const toMatrixCustomHTML = ( node: Descendant | Descendant[], opts: OutputOptions ): string => { - const parseNode = (n: Descendant) => { + let markdownLines = ''; + const parseNode = (n: Descendant, index: number, targetNodes: Descendant[]) => { + if (opts.allowBlockMarkdown && 'type' in n && n.type === BlockType.Paragraph) { + const line = toMatrixCustomHTML(n, { + ...opts, + allowInlineMarkdown: false, + allowBlockMarkdown: false, + }) + .replace(/$/, '\n') + .replace(/^>/, '>'); + markdownLines += line; + if (index === targetNodes.length - 1) { + return parseBlockMD(markdownLines, ignoreHTMLParseInlineMD); + } + return ''; + } + + const parsedMarkdown = parseBlockMD(markdownLines, ignoreHTMLParseInlineMD); + markdownLines = ''; const isCodeLine = 'type' in n && n.type === BlockType.CodeLine; - if (isCodeLine) return toMatrixCustomHTML(n, {}); - return toMatrixCustomHTML(n, opts); + if (isCodeLine) return `${parsedMarkdown}${toMatrixCustomHTML(n, {})}`; + + return `${parsedMarkdown}${toMatrixCustomHTML(n, { ...opts, allowBlockMarkdown: false })}`; }; if (Array.isArray(node)) return node.map(parseNode).join(''); if (Text.isText(node)) return textToCustomHtml(node, opts); diff --git a/src/app/components/message/Reply.tsx b/src/app/components/message/Reply.tsx index 6eaab31e..c9b6b8d8 100644 --- a/src/app/components/message/Reply.tsx +++ b/src/app/components/message/Reply.tsx @@ -59,6 +59,9 @@ export const Reply = as<'div', ReplyProps>( }; }, [replyEvent, mx, room, eventId]); + const badEncryption = replyEvent?.getContent().msgtype === 'm.bad.encrypted'; + const bodyJSX = body ? trimReplyFromBody(body) : fallbackBody; + return ( ( {replyEvent !== undefined ? ( - {replyEvent?.getContent().msgtype === 'm.bad.encrypted' ? ( - - ) : ( - (body && trimReplyFromBody(body)) ?? fallbackBody - )} + {badEncryption ? : bodyJSX} ) : ( ( let customHtml = trimCustomHtml( toMatrixCustomHTML(editor.children, { allowTextFormatting: true, - allowMarkdown: isMarkdown, + allowBlockMarkdown: isMarkdown, + allowInlineMarkdown: isMarkdown, }) ); let msgType = MsgType.Text; diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 2d382454..c1b04458 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -89,6 +89,7 @@ import { getReactionContent, isMembershipChanged, reactionOrEditEvent, + trimReplyFromBody, } from '../../utils/room'; import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; @@ -999,7 +1000,7 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); if (typeof body !== 'string') return null; - const jumboEmoji = JUMBO_EMOJI_REG.test(body); + const jumboEmoji = JUMBO_EMOJI_REG.test(trimReplyFromBody(body)); return ( ( const customHtml = trimCustomHtml( toMatrixCustomHTML(editor.children, { allowTextFormatting: true, - allowMarkdown: isMarkdown, + allowBlockMarkdown: isMarkdown, + allowInlineMarkdown: isMarkdown, }) ); diff --git a/src/app/organisms/room/message/styles.css.ts b/src/app/organisms/room/message/styles.css.ts index a5f2f6b5..801f698d 100644 --- a/src/app/organisms/room/message/styles.css.ts +++ b/src/app/organisms/room/message/styles.css.ts @@ -81,5 +81,5 @@ export const ReactionsContainer = style({ }); export const ReactionsTooltipText = style({ - wordBreak: 'break-all', + wordBreak: 'break-word', }); diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index 2b706eda..1b04669c 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -152,14 +152,14 @@ function AppearanceSection() { content={{`Use ${isMacOS() ? KeySymbol.Command : 'Ctrl'} + ENTER to send message and ENTER for newline.`}} /> setIsMarkdown(!isMarkdown) } /> )} - content={Format messages with inline markdown syntax before sending.} + content={Format messages with markdown syntax before sending.} /> import('./react-prism/ReactPrism')); -const EMOJI_REG = new RegExp(`${URL_NEG_LB}(${EMOJI_PATTERN})`, 'g'); +const EMOJI_REG = new RegExp(`${URL_NEG_LB}(${EMOJI_PATTERN})`); export const LINKIFY_OPTS: LinkifyOpts = { attributes: { @@ -35,25 +35,31 @@ export const LINKIFY_OPTS: LinkifyOpts = { ignoreTags: ['span'], }; -const emojifyParserOptions: HTMLReactParserOptions = { - replace: (domNode) => { - if (domNode instanceof DOMText) { - return {domNode.data}; - } - return undefined; - }, +const stringToEmojifyJSX = (text: string): (string | JSX.Element)[] => { + const match = text.match(EMOJI_REG); + if (!match) return [text]; + + const [emoji] = match; + + return replaceMatch( + stringToEmojifyJSX, + text, + match, + + + {emoji} + + + ); }; -export const emojifyAndLinkify = (unsafeText: string, linkify?: boolean) => { - const emojifyHtml = sanitizeText(unsafeText).replace( - EMOJI_REG, - (emoji) => - `${emoji}` - ); +export const emojifyAndLinkify = (text: string, linkify?: boolean) => { + const emojifyJSX = stringToEmojifyJSX(text); - return <>{parse(emojifyHtml, linkify ? emojifyParserOptions : undefined)}; + if (linkify) { + return {emojifyJSX}; + } + return emojifyJSX; }; export const getReactCustomHtmlParser = ( @@ -171,6 +177,8 @@ export const getReactCustomHtmlParser = ( if (typeof codeReact === 'string') { let lang = props.className; if (lang === 'language-rs') lang = 'language-rust'; + else if (lang === 'language-js') lang = 'language-javascript'; + else if (lang === 'language-ts') lang = 'language-typescript'; return ( {codeReact}}> {codeReact}}> diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 3a7832cd..4393b64d 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -28,7 +28,7 @@ export interface Settings { const defaultSettings: Settings = { themeIndex: 0, useSystemTheme: true, - isMarkdown: false, + isMarkdown: true, editorToolbar: false, twitterEmoji: false, diff --git a/src/app/utils/markdown.ts b/src/app/utils/markdown.ts index 9fda6794..c6bb3914 100644 --- a/src/app/utils/markdown.ts +++ b/src/app/utils/markdown.ts @@ -1,25 +1,46 @@ -export type PlainMDParser = (text: string) => string; export type MatchResult = RegExpMatchArray | RegExpExecArray; export type RuleMatch = (text: string) => MatchResult | null; -export type MatchConverter = (parse: PlainMDParser, match: MatchResult) => string; -export type MDRule = { - match: RuleMatch; - html: MatchConverter; -}; +export const beforeMatch = (text: string, match: RegExpMatchArray | RegExpExecArray): string => + text.slice(0, match.index); +export const afterMatch = (text: string, match: RegExpMatchArray | RegExpExecArray): string => + text.slice((match.index ?? 0) + match[0].length); -export type MatchReplacer = ( - parse: PlainMDParser, +export const replaceMatch = ( + convertPart: (txt: string) => Array, text: string, match: MatchResult, - content: string -) => string; + content: C +): Array => [ + ...convertPart(beforeMatch(text, match)), + content, + ...convertPart(afterMatch(text, match)), +]; -export type RuleRunner = (parse: PlainMDParser, text: string, rule: MDRule) => string | undefined; -export type RulesRunner = ( - parse: PlainMDParser, +/* + ***************** + * INLINE PARSER * + ***************** + */ + +export type InlineMDParser = (text: string) => string; + +export type InlineMatchConverter = (parse: InlineMDParser, match: MatchResult) => string; + +export type InlineMDRule = { + match: RuleMatch; + html: InlineMatchConverter; +}; + +export type InlineRuleRunner = ( + parse: InlineMDParser, text: string, - rules: MDRule[] + rule: InlineMDRule +) => string | undefined; +export type InlineRulesRunner = ( + parse: InlineMDParser, + text: string, + rules: InlineMDRule[] ) => string | undefined; const MIN_ANY = '(.+?)'; @@ -31,11 +52,11 @@ const BOLD_NEG_LA_1 = '(?!\\*)'; const BOLD_REG_1 = new RegExp( `${URL_NEG_LB}${BOLD_PREFIX_1}${MIN_ANY}${BOLD_PREFIX_1}${BOLD_NEG_LA_1}` ); -const BoldRule: MDRule = { +const BoldRule: InlineMDRule = { match: (text) => text.match(BOLD_REG_1), html: (parse, match) => { - const [, g1] = match; - return `${parse(g1)}`; + const [, , g2] = match; + return `${parse(g2)}`; }, }; @@ -45,11 +66,11 @@ const ITALIC_NEG_LA_1 = '(?!\\*)'; const ITALIC_REG_1 = new RegExp( `${URL_NEG_LB}${ITALIC_PREFIX_1}${MIN_ANY}${ITALIC_PREFIX_1}${ITALIC_NEG_LA_1}` ); -const ItalicRule1: MDRule = { +const ItalicRule1: InlineMDRule = { match: (text) => text.match(ITALIC_REG_1), html: (parse, match) => { - const [, g1] = match; - return `${parse(g1)}`; + const [, , g2] = match; + return `${parse(g2)}`; }, }; @@ -59,11 +80,11 @@ const ITALIC_NEG_LA_2 = '(?!_)'; const ITALIC_REG_2 = new RegExp( `${URL_NEG_LB}${ITALIC_PREFIX_2}${MIN_ANY}${ITALIC_PREFIX_2}${ITALIC_NEG_LA_2}` ); -const ItalicRule2: MDRule = { +const ItalicRule2: InlineMDRule = { match: (text) => text.match(ITALIC_REG_2), html: (parse, match) => { - const [, g1] = match; - return `${parse(g1)}`; + const [, , g2] = match; + return `${parse(g2)}`; }, }; @@ -73,11 +94,11 @@ const UNDERLINE_NEG_LA_1 = '(?!_)'; const UNDERLINE_REG_1 = new RegExp( `${URL_NEG_LB}${UNDERLINE_PREFIX_1}${MIN_ANY}${UNDERLINE_PREFIX_1}${UNDERLINE_NEG_LA_1}` ); -const UnderlineRule: MDRule = { +const UnderlineRule: InlineMDRule = { match: (text) => text.match(UNDERLINE_REG_1), html: (parse, match) => { - const [, g1] = match; - return `${parse(g1)}`; + const [, , g2] = match; + return `${parse(g2)}`; }, }; @@ -87,25 +108,23 @@ const STRIKE_NEG_LA_1 = '(?!~)'; const STRIKE_REG_1 = new RegExp( `${URL_NEG_LB}${STRIKE_PREFIX_1}${MIN_ANY}${STRIKE_PREFIX_1}${STRIKE_NEG_LA_1}` ); -const StrikeRule: MDRule = { +const StrikeRule: InlineMDRule = { match: (text) => text.match(STRIKE_REG_1), html: (parse, match) => { - const [, g1] = match; - return `${parse(g1)}`; + const [, , g2] = match; + return `${parse(g2)}`; }, }; const CODE_MD_1 = '`'; const CODE_PREFIX_1 = '`'; const CODE_NEG_LA_1 = '(?!`)'; -const CODE_REG_1 = new RegExp( - `${URL_NEG_LB}${CODE_PREFIX_1}${MIN_ANY}${CODE_PREFIX_1}${CODE_NEG_LA_1}` -); -const CodeRule: MDRule = { +const CODE_REG_1 = new RegExp(`${URL_NEG_LB}${CODE_PREFIX_1}(.+?)${CODE_PREFIX_1}${CODE_NEG_LA_1}`); +const CodeRule: InlineMDRule = { match: (text) => text.match(CODE_REG_1), html: (parse, match) => { - const [, g1] = match; - return `${g1}`; + const [, , g2] = match; + return `${g2}`; }, }; @@ -115,18 +134,18 @@ const SPOILER_NEG_LA_1 = '(?!\\|)'; const SPOILER_REG_1 = new RegExp( `${URL_NEG_LB}${SPOILER_PREFIX_1}${MIN_ANY}${SPOILER_PREFIX_1}${SPOILER_NEG_LA_1}` ); -const SpoilerRule: MDRule = { +const SpoilerRule: InlineMDRule = { match: (text) => text.match(SPOILER_REG_1), html: (parse, match) => { - const [, g1] = match; - return `${parse(g1)}`; + const [, , g2] = match; + return `${parse(g2)}`; }, }; const LINK_ALT = `\\[${MIN_ANY}\\]`; const LINK_URL = `\\((https?:\\/\\/.+?)\\)`; const LINK_REG_1 = new RegExp(`${LINK_ALT}${LINK_URL}`); -const LinkRule: MDRule = { +const LinkRule: InlineMDRule = { match: (text) => text.match(LINK_REG_1), html: (parse, match) => { const [, g1, g2] = match; @@ -134,19 +153,11 @@ const LinkRule: MDRule = { }, }; -const beforeMatch = (text: string, match: RegExpMatchArray | RegExpExecArray): string => - text.slice(0, match.index); -const afterMatch = (text: string, match: RegExpMatchArray | RegExpExecArray): string => - text.slice((match.index ?? 0) + match[0].length); - -const replaceMatch: MatchReplacer = (parse, text, match, content) => - `${parse(beforeMatch(text, match))}${content}${parse(afterMatch(text, match))}`; - -const runRule: RuleRunner = (parse, text, rule) => { +const runInlineRule: InlineRuleRunner = (parse, text, rule) => { const matchResult = rule.match(text); if (matchResult) { const content = rule.html(parse, matchResult); - return replaceMatch(parse, text, matchResult, content); + return replaceMatch((txt) => [parse(txt)], text, matchResult, content).join(''); } return undefined; }; @@ -155,10 +166,10 @@ const runRule: RuleRunner = (parse, text, rule) => { * Runs multiple rules at the same time to better handle nested rules. * Rules will be run in the order they appear. */ -const runRules: RulesRunner = (parse, text, rules) => { +const runInlineRules: InlineRulesRunner = (parse, text, rules) => { const matchResults = rules.map((rule) => rule.match(text)); - let targetRule: MDRule | undefined; + let targetRule: InlineMDRule | undefined; let targetResult: MatchResult | undefined; for (let i = 0; i < matchResults.length; i += 1) { @@ -176,7 +187,7 @@ const runRules: RulesRunner = (parse, text, rules) => { if (targetRule && targetResult) { const content = targetRule.html(parse, targetResult); - return replaceMatch(parse, text, targetResult, content); + return replaceMatch((txt) => [parse(txt)], text, targetResult, content).join(''); } return undefined; }; @@ -191,11 +202,167 @@ const LeveledRules = [ LinkRule, ]; -export const parseInlineMD = (text: string): string => { +export const parseInlineMD: InlineMDParser = (text) => { + if (text === '') return text; let result: string | undefined; - if (!result) result = runRule(parseInlineMD, text, CodeRule); + if (!result) result = runInlineRule(parseInlineMD, text, CodeRule); - if (!result) result = runRules(parseInlineMD, text, LeveledRules); + if (!result) result = runInlineRules(parseInlineMD, text, LeveledRules); + + return result ?? text; +}; + +/* + **************** + * BLOCK PARSER * + **************** + */ + +export type BlockMDParser = (test: string, parseInline?: (txt: string) => string) => string; + +export type BlockMatchConverter = ( + match: MatchResult, + parseInline?: (txt: string) => string +) => string; + +export type BlockMDRule = { + match: RuleMatch; + html: BlockMatchConverter; +}; + +export type BlockRuleRunner = ( + parse: BlockMDParser, + text: string, + rule: BlockMDRule, + parseInline?: (txt: string) => string +) => string | undefined; + +const HEADING_REG_1 = /^(#{1,6}) +(.+)\n?/m; +const HeadingRule: BlockMDRule = { + match: (text) => text.match(HEADING_REG_1), + html: (match, parseInline) => { + const [, g1, g2] = match; + const level = g1.length; + return `${parseInline ? parseInline(g2) : g2}`; + }, +}; + +const CODEBLOCK_MD_1 = '```'; +const CODEBLOCK_REG_1 = /^`{3}(\S*)\n((.+\n)+)`{3} *(?!.)\n?/m; +const CodeBlockRule: BlockMDRule = { + match: (text) => text.match(CODEBLOCK_REG_1), + html: (match) => { + const [, g1, g2] = match; + const classNameAtt = g1 ? ` class="language-${g1}"` : ''; + return `
        ${g2}
        `; + }, +}; + +const BLOCKQUOTE_MD_1 = '>'; +const QUOTE_LINE_PREFIX = /^> */; +const BLOCKQUOTE_TRAILING_NEWLINE = /\n$/; +const BLOCKQUOTE_REG_1 = /(^>.*\n?)+/m; +const BlockQuoteRule: BlockMDRule = { + match: (text) => text.match(BLOCKQUOTE_REG_1), + html: (match, parseInline) => { + const [blockquoteText] = match; + + const lines = blockquoteText + .replace(BLOCKQUOTE_TRAILING_NEWLINE, '') + .split('\n') + .map((lineText) => { + const line = lineText.replace(QUOTE_LINE_PREFIX, ''); + if (parseInline) return `${parseInline(line)}
        `; + return `${line}
        `; + }) + .join(''); + return `
        ${lines}
        `; + }, +}; + +const ORDERED_LIST_MD_1 = '-'; +const O_LIST_ITEM_PREFIX = /^(-|[\da-zA-Z]\.) */; +const O_LIST_START = /^([\d])\./; +const O_LIST_TYPE = /^([aAiI])\./; +const O_LIST_TRAILING_NEWLINE = /\n$/; +const ORDERED_LIST_REG_1 = /(^(-|[\da-zA-Z]\.) +.+\n?)+/m; +const OrderedListRule: BlockMDRule = { + match: (text) => text.match(ORDERED_LIST_REG_1), + html: (match, parseInline) => { + const [listText] = match; + const [, listStart] = listText.match(O_LIST_START) ?? []; + const [, listType] = listText.match(O_LIST_TYPE) ?? []; + + const lines = listText + .replace(O_LIST_TRAILING_NEWLINE, '') + .split('\n') + .map((lineText) => { + const line = lineText.replace(O_LIST_ITEM_PREFIX, ''); + const txt = parseInline ? parseInline(line) : line; + return `
      1. ${txt}

      2. `; + }) + .join(''); + + const dataMdAtt = `data-md="${listType || listStart || ORDERED_LIST_MD_1}"`; + const startAtt = listStart ? ` start="${listStart}"` : ''; + const typeAtt = listType ? ` type="${listType}"` : ''; + return `
          ${lines}
        `; + }, +}; + +const UNORDERED_LIST_MD_1 = '*'; +const U_LIST_ITEM_PREFIX = /^\* */; +const U_LIST_TRAILING_NEWLINE = /\n$/; +const UNORDERED_LIST_REG_1 = /(^\* +.+\n?)+/m; +const UnorderedListRule: BlockMDRule = { + match: (text) => text.match(UNORDERED_LIST_REG_1), + html: (match, parseInline) => { + const [listText] = match; + + const lines = listText + .replace(U_LIST_TRAILING_NEWLINE, '') + .split('\n') + .map((lineText) => { + const line = lineText.replace(U_LIST_ITEM_PREFIX, ''); + const txt = parseInline ? parseInline(line) : line; + return `
      3. ${txt}

      4. `; + }) + .join(''); + + return `
          ${lines}
        `; + }, +}; + +const runBlockRule: BlockRuleRunner = (parse, text, rule, parseInline) => { + const matchResult = rule.match(text); + if (matchResult) { + const content = rule.html(matchResult, parseInline); + return replaceMatch((txt) => [parse(txt, parseInline)], text, matchResult, content).join(''); + } + return undefined; +}; + +export const parseBlockMD: BlockMDParser = (text, parseInline) => { + if (text === '') return text; + let result: string | undefined; + + if (!result) result = runBlockRule(parseBlockMD, text, CodeBlockRule, parseInline); + if (!result) result = runBlockRule(parseBlockMD, text, BlockQuoteRule, parseInline); + if (!result) result = runBlockRule(parseBlockMD, text, OrderedListRule, parseInline); + if (!result) result = runBlockRule(parseBlockMD, text, UnorderedListRule, parseInline); + if (!result) result = runBlockRule(parseBlockMD, text, HeadingRule, parseInline); + + // replace \n with
        because want to preserve empty lines + if (!result) { + if (parseInline) { + result = text + .split('\n') + .map((lineText) => parseInline(lineText)) + .join('
        '); + } else { + result = text.replace(/\n/g, '
        '); + } + } return result ?? text; }; diff --git a/src/app/utils/room.ts b/src/app/utils/room.ts index adb6dc08..a2cb3a9f 100644 --- a/src/app/utils/room.ts +++ b/src/app/utils/room.ts @@ -256,7 +256,7 @@ export const getRoomAvatarUrl = (mx: MatrixClient, room: Room): string | undefin }; export const trimReplyFromBody = (body: string): string => { - const match = body.match(/^>\s<.+?>\s.+\n\n/); + const match = body.match(/^> <.+?> .+\n(>.*\n)*?\n/m); if (!match) return body; return body.slice(match[0].length); }; diff --git a/src/app/utils/sanitize.ts b/src/app/utils/sanitize.ts index 8e7c1283..48ab0b8d 100644 --- a/src/app/utils/sanitize.ts +++ b/src/app/utils/sanitize.ts @@ -59,9 +59,18 @@ const permittedTagToAttributes = { 'data-md', ], div: ['data-mx-maths'], + blockquote: ['data-md'], + h1: ['data-md'], + h2: ['data-md'], + h3: ['data-md'], + h4: ['data-md'], + h5: ['data-md'], + h6: ['data-md'], + pre: ['data-md', 'class'], + ol: ['start', 'type', 'data-md'], + ul: ['data-md'], a: ['name', 'target', 'href', 'rel', 'data-md'], img: ['width', 'height', 'alt', 'title', 'src', 'data-mx-emoticon'], - ol: ['start'], code: ['class', 'data-md'], strong: ['data-md'], i: ['data-md'], From 3cef074c9ef6744278e84b97580049a427d81121 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Fri, 27 Oct 2023 22:11:08 +1100 Subject: [PATCH 400/717] Release v3.1.0 (#1510) * Update package.json * Update cons.js * Update package-lock.json --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8c2e80d0..6e581863 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "3.0.0", + "version": "3.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "3.0.0", + "version": "3.1.0", "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index 0f1bfa75..17fbf168 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "3.0.0", + "version": "3.1.0", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index 5d29d1df..b8074d90 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '3.0.0', + version: '3.1.0', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From a2cbe797875ca96394c5af1e69093c32b169eff0 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 29 Oct 2023 21:53:44 +1100 Subject: [PATCH 401/717] Fix broken emoji with md pattern in shortcode (#1514) * fix broken emoji with md pattern in shortcode * fix html regex when generating editor output --- src/app/components/editor/output.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index fa15bb58..1fb2d590 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -51,21 +51,25 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { return `
          ${children}
        `; case BlockType.Mention: - return `${node.name}`; + return `${sanitizeText( + node.name + )}`; case BlockType.Emoticon: return node.key.startsWith('mxc://') - ? `${node.shortcode}` - : node.key; + ? `${sanitizeText(
+            node.shortcode
+          )}` + : sanitizeText(node.key); case BlockType.Link: - return `${node.children}`; + return `${node.children}`; case BlockType.Command: - return `/${node.command}`; + return `/${sanitizeText(node.command)}`; default: return children; } }; -const HTML_TAG_REG = /<([a-z]+)(?![^>]*\/>)[^<]*<\/\1>/; +const HTML_TAG_REG = /<([\w-]+)(?:[^/>]*)(?:(?:\/>)|(?:>.*?<\/\1>))/; const ignoreHTMLParseInlineMD = (text: string): string => { if (text === '') return text; const match = text.match(HTML_TAG_REG); From a98903a85b81d5d799bb65dee9713499ea0ac029 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 29 Oct 2023 22:42:05 +1100 Subject: [PATCH 402/717] Fix regex to ignore html tag in editor output (#1515) --- src/app/components/editor/output.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 1fb2d590..9a03604c 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -69,7 +69,7 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { } }; -const HTML_TAG_REG = /<([\w-]+)(?:[^/>]*)(?:(?:\/>)|(?:>.*?<\/\1>))/; +const HTML_TAG_REG = /<([\w-]+)(?: [^>]*)?(?:(?:\/>)|(?:>.*?<\/\1>))/; const ignoreHTMLParseInlineMD = (text: string): string => { if (text === '') return text; const match = text.match(HTML_TAG_REG); From 9f9173c691aa61d3dff87aa2d26e4231452ab755 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 30 Oct 2023 07:14:58 +1100 Subject: [PATCH 403/717] Add URL preview (#1511) * URL preview - WIP * fix url preview regex * update url match regex * add url preview components * add scroll btn url preview holder * add message body component * add url preview toggle in settings * update url regex * improve url regex * increase thumbnail size in url preview * hide url preview in encrypted rooms * add encrypted room url preview toggle --- src/app/components/message/layout/Base.tsx | 15 +- .../components/message/layout/layout.css.ts | 27 +++ .../components/url-preview/UrlPreview.css.tsx | 45 +++++ src/app/components/url-preview/UrlPreview.tsx | 27 +++ src/app/components/url-preview/index.ts | 1 + src/app/organisms/room/RoomTimeline.tsx | 112 +++++++---- .../organisms/room/message/UrlPreviewCard.tsx | 183 ++++++++++++++++++ src/app/organisms/room/message/styles.css.ts | 48 ++++- src/app/organisms/settings/Settings.jsx | 22 +++ src/app/state/settings.ts | 4 + src/app/utils/regex.ts | 2 + 11 files changed, 444 insertions(+), 42 deletions(-) create mode 100644 src/app/components/url-preview/UrlPreview.css.tsx create mode 100644 src/app/components/url-preview/UrlPreview.tsx create mode 100644 src/app/components/url-preview/index.ts create mode 100644 src/app/organisms/room/message/UrlPreviewCard.tsx diff --git a/src/app/components/message/layout/Base.tsx b/src/app/components/message/layout/Base.tsx index 9439ec57..1ce764b5 100644 --- a/src/app/components/message/layout/Base.tsx +++ b/src/app/components/message/layout/Base.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { as } from 'folds'; +import { Text, as } from 'folds'; import classNames from 'classnames'; import * as css from './layout.css'; @@ -23,3 +23,16 @@ export const AvatarBase = as<'span'>(({ className, ...props }, ref) => ( export const Username = as<'span'>(({ as: AsUsername = 'span', className, ...props }, ref) => ( )); + +export const MessageTextBody = as<'div', css.MessageTextBodyVariants & { notice?: boolean }>( + ({ as: asComp = 'div', className, preWrap, jumboEmoji, emote, notice, ...props }, ref) => ( + + ) +); diff --git a/src/app/components/message/layout/layout.css.ts b/src/app/components/message/layout/layout.css.ts index 7b1a267d..a6b7db0d 100644 --- a/src/app/components/message/layout/layout.css.ts +++ b/src/app/components/message/layout/layout.css.ts @@ -153,3 +153,30 @@ export const Username = style({ }, }, }); + +export const MessageTextBody = recipe({ + base: { + wordBreak: 'break-word', + }, + variants: { + preWrap: { + true: { + whiteSpace: 'pre-wrap', + }, + }, + jumboEmoji: { + true: { + fontSize: '1.504em', + lineHeight: '1.4962em', + }, + }, + emote: { + true: { + color: color.Success.Main, + fontStyle: 'italic', + }, + }, + }, +}); + +export type MessageTextBodyVariants = RecipeVariants; diff --git a/src/app/components/url-preview/UrlPreview.css.tsx b/src/app/components/url-preview/UrlPreview.css.tsx new file mode 100644 index 00000000..3e97c116 --- /dev/null +++ b/src/app/components/url-preview/UrlPreview.css.tsx @@ -0,0 +1,45 @@ +import { style } from '@vanilla-extract/css'; +import { DefaultReset, color, config, toRem } from 'folds'; + +export const UrlPreview = style([ + DefaultReset, + { + width: toRem(400), + minHeight: toRem(102), + backgroundColor: color.SurfaceVariant.Container, + color: color.SurfaceVariant.OnContainer, + border: `${config.borderWidth.B300} solid ${color.SurfaceVariant.ContainerLine}`, + borderRadius: config.radii.R300, + overflow: 'hidden', + }, +]); + +export const UrlPreviewImg = style([ + DefaultReset, + { + width: toRem(100), + height: toRem(100), + objectFit: 'cover', + objectPosition: 'left', + backgroundPosition: 'start', + flexShrink: 0, + overflow: 'hidden', + }, +]); + +export const UrlPreviewContent = style([ + DefaultReset, + { + padding: config.space.S200, + }, +]); + +export const UrlPreviewDescription = style([ + DefaultReset, + { + display: '-webkit-box', + WebkitLineClamp: 2, + WebkitBoxOrient: 'vertical', + overflow: 'hidden', + }, +]); diff --git a/src/app/components/url-preview/UrlPreview.tsx b/src/app/components/url-preview/UrlPreview.tsx new file mode 100644 index 00000000..4ba3e4e2 --- /dev/null +++ b/src/app/components/url-preview/UrlPreview.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import classNames from 'classnames'; +import { Box, as } from 'folds'; +import * as css from './UrlPreview.css'; + +export const UrlPreview = as<'div'>(({ className, ...props }, ref) => ( + +)); + +export const UrlPreviewImg = as<'img'>(({ className, alt, ...props }, ref) => ( + {alt} +)); + +export const UrlPreviewContent = as<'div'>(({ className, ...props }, ref) => ( + +)); + +export const UrlPreviewDescription = as<'span'>(({ className, ...props }, ref) => ( + +)); diff --git a/src/app/components/url-preview/index.ts b/src/app/components/url-preview/index.ts new file mode 100644 index 00000000..6d4dc333 --- /dev/null +++ b/src/app/components/url-preview/index.ts @@ -0,0 +1 @@ +export * from './UrlPreview'; diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index c1b04458..9603209d 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -74,6 +74,7 @@ import { Time, MessageBadEncryptedContent, MessageNotDecryptedContent, + MessageTextBody, } from '../../components/message'; import { emojifyAndLinkify, @@ -138,13 +139,15 @@ import initMatrix from '../../../client/initMatrix'; import { useKeyDown } from '../../hooks/useKeyDown'; import cons from '../../../client/state/cons'; import { useDocumentFocusChange } from '../../hooks/useDocumentFocusChange'; -import { EMOJI_PATTERN, VARIATION_SELECTOR_PATTERN } from '../../utils/regex'; +import { EMOJI_PATTERN, HTTP_URL_PATTERN, VARIATION_SELECTOR_PATTERN } from '../../utils/regex'; +import { UrlPreviewCard, UrlPreviewHolder } from './message/UrlPreviewCard'; // Thumbs up emoji found to have Variation Selector 16 at the end // so included variation selector pattern in regex const JUMBO_EMOJI_REG = new RegExp( `^(((${EMOJI_PATTERN})|(:.+?:))(${VARIATION_SELECTOR_PATTERN}|\\s)*){1,10}$` ); +const URL_REG = new RegExp(HTTP_URL_PATTERN, 'g'); const TimelineFloat = as<'div', css.TimelineFloatVariants>( ({ position, className, ...props }, ref) => ( @@ -462,11 +465,15 @@ const getRoomUnreadInfo = (room: Room, scrollTo = false) => { export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimelineProps) { const mx = useMatrixClient(); + const encryptedRoom = mx.isRoomEncrypted(room.roomId); const [messageLayout] = useSetting(settingsAtom, 'messageLayout'); const [messageSpacing] = useSetting(settingsAtom, 'messageSpacing'); const [hideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); const [hideNickAvatarEvents] = useSetting(settingsAtom, 'hideNickAvatarEvents'); const [mediaAutoLoad] = useSetting(settingsAtom, 'mediaAutoLoad'); + const [urlPreview] = useSetting(settingsAtom, 'urlPreview'); + const [encUrlPreview] = useSetting(settingsAtom, 'encUrlPreview'); + const showUrlPreview = encryptedRoom ? encUrlPreview : urlPreview; const [showHiddenEvents] = useSetting(settingsAtom, 'showHiddenEvents'); const setReplyDraft = useSetAtom(roomIdToReplyDraftAtomFamily(room.roomId)); const { canDoAction, canSendEvent, getPowerLevel } = usePowerLevelsAPI(); @@ -1000,22 +1007,27 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); if (typeof body !== 'string') return null; - const jumboEmoji = JUMBO_EMOJI_REG.test(trimReplyFromBody(body)); + const trimmedBody = trimReplyFromBody(body); + const urlsMatch = showUrlPreview && trimmedBody.match(URL_REG); + const urls = urlsMatch ? [...new Set(urlsMatch)] : undefined; return ( - - {renderBody(body, typeof customBody === 'string' ? customBody : undefined)} - {!!editedEvent && } - + <> + + {renderBody(trimmedBody, typeof customBody === 'string' ? customBody : undefined)} + {!!editedEvent && } + + {urls && urls.length > 0 && ( + + {urls.map((url) => ( + + ))} + + )} + ); }, renderEmote: (mEventId, mEvent, timelineSet) => { @@ -1026,21 +1038,31 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli const senderDisplayName = getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId; + + if (typeof body !== 'string') return null; + const trimmedBody = trimReplyFromBody(body); + const urlsMatch = showUrlPreview && trimmedBody.match(URL_REG); + const urls = urlsMatch ? [...new Set(urlsMatch)] : undefined; + return ( - - {`${senderDisplayName} `} - {renderBody(body, typeof customBody === 'string' ? customBody : undefined)} - {!!editedEvent && } - + <> + + {`${senderDisplayName} `} + {renderBody(trimmedBody, typeof customBody === 'string' ? customBody : undefined)} + {!!editedEvent && } + + {urls && urls.length > 0 && ( + + {urls.map((url) => ( + + ))} + + )} + ); }, renderNotice: (mEventId, mEvent, timelineSet) => { @@ -1049,18 +1071,28 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); if (typeof body !== 'string') return null; + const trimmedBody = trimReplyFromBody(body); + const urlsMatch = showUrlPreview && trimmedBody.match(URL_REG); + const urls = urlsMatch ? [...new Set(urlsMatch)] : undefined; + return ( - - {renderBody(body, typeof customBody === 'string' ? customBody : undefined)} - {!!editedEvent && } - + <> + + {renderBody(trimmedBody, typeof customBody === 'string' ? customBody : undefined)} + {!!editedEvent && } + + {urls && urls.length > 0 && ( + + {urls.map((url) => ( + + ))} + + )} + ); }, renderImage: (mEventId, mEvent) => { diff --git a/src/app/organisms/room/message/UrlPreviewCard.tsx b/src/app/organisms/room/message/UrlPreviewCard.tsx new file mode 100644 index 00000000..9ae4d298 --- /dev/null +++ b/src/app/organisms/room/message/UrlPreviewCard.tsx @@ -0,0 +1,183 @@ +import React, { useCallback, useEffect, useRef, useState } from 'react'; +import { IPreviewUrlResponse } from 'matrix-js-sdk'; +import { Box, Icon, IconButton, Icons, Scroll, Spinner, Text, as, color, config } from 'folds'; +import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback'; +import { useMatrixClient } from '../../../hooks/useMatrixClient'; +import { + UrlPreview, + UrlPreviewContent, + UrlPreviewDescription, + UrlPreviewImg, +} from '../../../components/url-preview'; +import { + getIntersectionObserverEntry, + useIntersectionObserver, +} from '../../../hooks/useIntersectionObserver'; +import * as css from './styles.css'; + +const linkStyles = { color: color.Success.Main }; + +export const UrlPreviewCard = as<'div', { url: string; ts: number }>( + ({ url, ts, ...props }, ref) => { + const mx = useMatrixClient(); + const [previewStatus, loadPreview] = useAsyncCallback( + useCallback(() => mx.getUrlPreview(url, ts), [url, ts, mx]) + ); + if (previewStatus.status === AsyncStatus.Idle) loadPreview(); + + if (previewStatus.status === AsyncStatus.Error) return null; + + const renderContent = (prev: IPreviewUrlResponse) => { + const imgUrl = mx.mxcUrlToHttp(prev['og:image'] || '', 256, 256, 'scale', false); + + return ( + <> + {imgUrl && } + + + {typeof prev['og:site_name'] === 'string' && `${prev['og:site_name']} | `} + {decodeURIComponent(url)} + + + {prev['og:title']} + + + {prev['og:description']} + + + + ); + }; + + return ( + + {previewStatus.status === AsyncStatus.Success ? ( + renderContent(previewStatus.data) + ) : ( + + + + )} + + ); + } +); + +export const UrlPreviewHolder = as<'div'>(({ children, ...props }, ref) => { + const scrollRef = useRef(null); + const backAnchorRef = useRef(null); + const frontAnchorRef = useRef(null); + const [backVisible, setBackVisible] = useState(true); + const [frontVisible, setFrontVisible] = useState(true); + + const intersectionObserver = useIntersectionObserver( + useCallback((entries) => { + const backAnchor = backAnchorRef.current; + const frontAnchor = frontAnchorRef.current; + const backEntry = backAnchor && getIntersectionObserverEntry(backAnchor, entries); + const frontEntry = frontAnchor && getIntersectionObserverEntry(frontAnchor, entries); + if (backEntry) { + setBackVisible(backEntry.isIntersecting); + } + if (frontEntry) { + setFrontVisible(frontEntry.isIntersecting); + } + }, []), + useCallback( + () => ({ + root: scrollRef.current, + rootMargin: '10px', + }), + [] + ) + ); + + useEffect(() => { + const backAnchor = backAnchorRef.current; + const frontAnchor = frontAnchorRef.current; + if (backAnchor) intersectionObserver?.observe(backAnchor); + if (frontAnchor) intersectionObserver?.observe(frontAnchor); + return () => { + if (backAnchor) intersectionObserver?.unobserve(backAnchor); + if (frontAnchor) intersectionObserver?.unobserve(frontAnchor); + }; + }, [intersectionObserver]); + + const handleScrollBack = () => { + const scroll = scrollRef.current; + if (!scroll) return; + const { offsetWidth, scrollLeft } = scroll; + scroll.scrollTo({ + left: scrollLeft - offsetWidth / 1.3, + behavior: 'smooth', + }); + }; + const handleScrollFront = () => { + const scroll = scrollRef.current; + if (!scroll) return; + const { offsetWidth, scrollLeft } = scroll; + scroll.scrollTo({ + left: scrollLeft + offsetWidth / 1.3, + behavior: 'smooth', + }); + }; + + return ( + + + +
        + {!backVisible && ( + <> +
        + + + + + )} + + {children} + + {!frontVisible && ( + <> +
        + + + + + )} +
        + + + + + ); +}); diff --git a/src/app/organisms/room/message/styles.css.ts b/src/app/organisms/room/message/styles.css.ts index 801f698d..d42cf05b 100644 --- a/src/app/organisms/room/message/styles.css.ts +++ b/src/app/organisms/room/message/styles.css.ts @@ -1,5 +1,6 @@ import { style } from '@vanilla-extract/css'; -import { DefaultReset, config, toRem } from 'folds'; +import { recipe } from '@vanilla-extract/recipes'; +import { DefaultReset, color, config, toRem } from 'folds'; export const RelativeBase = style([ DefaultReset, @@ -83,3 +84,48 @@ export const ReactionsContainer = style({ export const ReactionsTooltipText = style({ wordBreak: 'break-word', }); + +export const UrlPreviewHolderGradient = recipe({ + base: [ + DefaultReset, + { + position: 'absolute', + height: '100%', + width: toRem(10), + zIndex: 1, + }, + ], + variants: { + position: { + Left: { + left: 0, + background: `linear-gradient(to right,${color.Surface.Container} , rgba(116,116,116,0))`, + }, + Right: { + right: 0, + background: `linear-gradient(to left,${color.Surface.Container} , rgba(116,116,116,0))`, + }, + }, + }, +}); +export const UrlPreviewHolderBtn = recipe({ + base: [ + DefaultReset, + { + position: 'absolute', + zIndex: 1, + }, + ], + variants: { + position: { + Left: { + left: 0, + transform: 'translateX(-25%)', + }, + Right: { + right: 0, + transform: 'translateX(25%)', + }, + }, + }, +}); diff --git a/src/app/organisms/settings/Settings.jsx b/src/app/organisms/settings/Settings.jsx index 1b04669c..47abb45c 100644 --- a/src/app/organisms/settings/Settings.jsx +++ b/src/app/organisms/settings/Settings.jsx @@ -59,6 +59,8 @@ function AppearanceSection() { const [hideMembershipEvents, setHideMembershipEvents] = useSetting(settingsAtom, 'hideMembershipEvents'); const [hideNickAvatarEvents, setHideNickAvatarEvents] = useSetting(settingsAtom, 'hideNickAvatarEvents'); const [mediaAutoLoad, setMediaAutoLoad] = useSetting(settingsAtom, 'mediaAutoLoad'); + const [urlPreview, setUrlPreview] = useSetting(settingsAtom, 'urlPreview'); + const [encUrlPreview, setEncUrlPreview] = useSetting(settingsAtom, 'encUrlPreview'); const [showHiddenEvents, setShowHiddenEvents] = useSetting(settingsAtom, 'showHiddenEvents'); const spacings = ['0', '100', '200', '300', '400', '500'] @@ -191,6 +193,26 @@ function AppearanceSection() { )} content={Prevent images and videos from auto loading to save bandwidth.} /> + setUrlPreview(!urlPreview)} + /> + )} + content={Show url preview for link in messages.} + /> + setEncUrlPreview(!encUrlPreview)} + /> + )} + content={Show url preview for link in encrypted messages.} + /> Date: Mon, 30 Oct 2023 16:58:30 +1100 Subject: [PATCH 404/717] Fix grammer in membership event messages (#1520) --- src/app/hooks/useMemberEventParser.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/hooks/useMemberEventParser.tsx b/src/app/hooks/useMemberEventParser.tsx index 367e76d9..6ceca1b1 100644 --- a/src/app/hooks/useMemberEventParser.tsx +++ b/src/app/hooks/useMemberEventParser.tsx @@ -90,13 +90,13 @@ export const useMemberEventParser = (): MemberEventParser => { senderId === userId ? ( <> {userName} - {' reject the invitation '} + {' rejected the invitation '} {content.reason} ) : ( <> {senderName} - {' reject '} + {' rejected '} {userName} {`'s join request `} {content.reason} From c854c7f9d2167e1e38baf90d17afa0ee1f77033b Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 30 Oct 2023 16:58:47 +1100 Subject: [PATCH 405/717] Timeline Perf Improvement (#1521) * emojify msg txt find&replace instead of recursion * move findAndReplace func in its own file * improve find and replace * move markdown file to plugins * make find and replace work without g flag regex * fix pagination stop on msg arrive * render blurhash in small size --- src/app/components/editor/output.ts | 19 ++++++------ src/app/organisms/room/RoomTimeline.tsx | 2 -- .../organisms/room/message/ImageContent.tsx | 8 ++++- .../organisms/room/message/VideoContent.tsx | 8 ++++- src/app/{utils => plugins}/markdown.ts | 0 src/app/plugins/react-custom-html-parser.tsx | 30 ++++++++----------- src/app/utils/findAndReplace.ts | 28 +++++++++++++++++ 7 files changed, 65 insertions(+), 30 deletions(-) rename src/app/{utils => plugins}/markdown.ts (100%) create mode 100644 src/app/utils/findAndReplace.ts diff --git a/src/app/components/editor/output.ts b/src/app/components/editor/output.ts index 9a03604c..53ee6ddf 100644 --- a/src/app/components/editor/output.ts +++ b/src/app/components/editor/output.ts @@ -3,7 +3,8 @@ import { Descendant, Text } from 'slate'; import { sanitizeText } from '../../utils/sanitize'; import { BlockType } from './types'; import { CustomElement } from './slate'; -import { parseBlockMD, parseInlineMD, replaceMatch } from '../../utils/markdown'; +import { parseBlockMD, parseInlineMD } from '../../plugins/markdown'; +import { findAndReplace } from '../../utils/findAndReplace'; export type OutputOptions = { allowTextFormatting?: boolean; @@ -69,14 +70,14 @@ const elementToCustomHtml = (node: CustomElement, children: string): string => { } }; -const HTML_TAG_REG = /<([\w-]+)(?: [^>]*)?(?:(?:\/>)|(?:>.*?<\/\1>))/; -const ignoreHTMLParseInlineMD = (text: string): string => { - if (text === '') return text; - const match = text.match(HTML_TAG_REG); - if (!match) return parseInlineMD(text); - const [matchedTxt] = match; - return replaceMatch((txt) => [ignoreHTMLParseInlineMD(txt)], text, match, matchedTxt).join(''); -}; +const HTML_TAG_REG_G = /<([\w-]+)(?: [^>]*)?(?:(?:\/>)|(?:>.*?<\/\1>))/g; +const ignoreHTMLParseInlineMD = (text: string): string => + findAndReplace( + text, + HTML_TAG_REG_G, + (match) => match[0], + (txt) => parseInlineMD(txt) + ).join(''); export const toMatrixCustomHTML = ( node: Descendant | Descendant[], diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/organisms/room/RoomTimeline.tsx index 9603209d..0c74de52 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/organisms/room/RoomTimeline.tsx @@ -345,7 +345,6 @@ const useTimelinePagination = ( return async (backwards: boolean) => { if (fetching) return; - const targetTimeline = timelineRef.current; const { linkedTimelines: lTimelines } = timelineRef.current; const timelinesEventsCount = lTimelines.map(timelineToEventsCount); @@ -385,7 +384,6 @@ const useTimelinePagination = ( } fetching = false; - if (targetTimeline !== timelineRef.current) return; if (alive()) { recalibratePagination(lTimelines, timelinesEventsCount, backwards); } diff --git a/src/app/organisms/room/message/ImageContent.tsx b/src/app/organisms/room/message/ImageContent.tsx index c8b32cc1..6e288026 100644 --- a/src/app/organisms/room/message/ImageContent.tsx +++ b/src/app/organisms/room/message/ImageContent.tsx @@ -98,7 +98,13 @@ export const ImageContent = as<'div', ImageContentProps>( )} {typeof blurHash === 'string' && !load && ( - + )} {!autoPlay && srcState.status === AsyncStatus.Idle && ( diff --git a/src/app/organisms/room/message/VideoContent.tsx b/src/app/organisms/room/message/VideoContent.tsx index 107d5f9a..8b3bd34d 100644 --- a/src/app/organisms/room/message/VideoContent.tsx +++ b/src/app/organisms/room/message/VideoContent.tsx @@ -88,7 +88,13 @@ export const VideoContent = as<'div', VideoContentProps>( return ( {typeof blurHash === 'string' && !load && ( - + )} {thumbSrcState.status === AsyncStatus.Success && !load && ( diff --git a/src/app/utils/markdown.ts b/src/app/plugins/markdown.ts similarity index 100% rename from src/app/utils/markdown.ts rename to src/app/plugins/markdown.ts diff --git a/src/app/plugins/react-custom-html-parser.tsx b/src/app/plugins/react-custom-html-parser.tsx index 928419c5..ee41687d 100644 --- a/src/app/plugins/react-custom-html-parser.tsx +++ b/src/app/plugins/react-custom-html-parser.tsx @@ -18,11 +18,11 @@ import { getMxIdLocalPart, getRoomWithCanonicalAlias } from '../utils/matrix'; import { getMemberDisplayName } from '../utils/room'; import { EMOJI_PATTERN, URL_NEG_LB } from '../utils/regex'; import { getHexcodeForEmoji, getShortcodeFor } from './emoji'; -import { replaceMatch } from '../utils/markdown'; +import { findAndReplace } from '../utils/findAndReplace'; const ReactPrism = lazy(() => import('./react-prism/ReactPrism')); -const EMOJI_REG = new RegExp(`${URL_NEG_LB}(${EMOJI_PATTERN})`); +const EMOJI_REG_G = new RegExp(`${URL_NEG_LB}(${EMOJI_PATTERN})`, 'g'); export const LINKIFY_OPTS: LinkifyOpts = { attributes: { @@ -35,26 +35,22 @@ export const LINKIFY_OPTS: LinkifyOpts = { ignoreTags: ['span'], }; -const stringToEmojifyJSX = (text: string): (string | JSX.Element)[] => { - const match = text.match(EMOJI_REG); - if (!match) return [text]; - - const [emoji] = match; - - return replaceMatch( - stringToEmojifyJSX, +const textToEmojifyJSX = (text: string): (string | JSX.Element)[] => + findAndReplace( text, - match, - - - {emoji} + EMOJI_REG_G, + (match, pushIndex) => ( + + + {match[0]} + - + ), + (txt) => txt ); -}; export const emojifyAndLinkify = (text: string, linkify?: boolean) => { - const emojifyJSX = stringToEmojifyJSX(text); + const emojifyJSX = textToEmojifyJSX(text); if (linkify) { return {emojifyJSX}; diff --git a/src/app/utils/findAndReplace.ts b/src/app/utils/findAndReplace.ts new file mode 100644 index 00000000..a4bd1edb --- /dev/null +++ b/src/app/utils/findAndReplace.ts @@ -0,0 +1,28 @@ +export type ReplaceCallback = ( + match: RegExpExecArray | RegExpMatchArray, + pushIndex: number +) => R; +export type ConvertPartCallback = (text: string, pushIndex: number) => R; + +export const findAndReplace = ( + text: string, + regex: RegExp, + replace: ReplaceCallback, + convertPart: ConvertPartCallback +): Array => { + const result: Array = []; + let lastEnd = 0; + + let match: RegExpExecArray | RegExpMatchArray | null = regex.exec(text); + while (match !== null && typeof match.index === 'number') { + result.push(convertPart(text.slice(lastEnd, match.index), result.length)); + result.push(replace(match, result.length)); + + lastEnd = match.index + match[0].length; + if (regex.global) match = regex.exec(text); + } + + result.push(convertPart(text.slice(lastEnd), result.length)); + + return result; +}; From c3f564605fd9653a593d0685cc8b8e2addd1281e Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 31 Oct 2023 14:17:57 +1100 Subject: [PATCH 406/717] Render reaction with string only key (#1522) --- src/app/organisms/room/message/Reactions.tsx | 3 +- .../room/reaction-viewer/ReactionViewer.tsx | 30 ++++++++++++------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/app/organisms/room/message/Reactions.tsx b/src/app/organisms/room/message/Reactions.tsx index 17b914e5..728cf810 100644 --- a/src/app/organisms/room/message/Reactions.tsx +++ b/src/app/organisms/room/message/Reactions.tsx @@ -43,7 +43,6 @@ export const Reactions = as<'div', ReactionsProps>( evt.stopPropagation(); evt.preventDefault(); const key = evt.currentTarget.getAttribute('data-reaction-key'); - console.log(key); if (!key) setViewer(true); else setViewer(key); }; @@ -58,7 +57,7 @@ export const Reactions = as<'div', ReactionsProps>( > {reactions.map(([key, events]) => { const rEvents = Array.from(events); - if (rEvents.length === 0) return null; + if (rEvents.length === 0 || typeof key !== 'string') return null; const myREvent = myUserId ? rEvents.find(factoryEventSentBy(myUserId)) : undefined; const isPressed = !!myREvent?.getRelation(); diff --git a/src/app/organisms/room/reaction-viewer/ReactionViewer.tsx b/src/app/organisms/room/reaction-viewer/ReactionViewer.tsx index 5626981e..7bcc0ccf 100644 --- a/src/app/organisms/room/reaction-viewer/ReactionViewer.tsx +++ b/src/app/organisms/room/reaction-viewer/ReactionViewer.tsx @@ -41,7 +41,12 @@ export const ReactionViewer = as<'div', ReactionViewerProps>( relations, useCallback((rel) => [...(rel.getSortedAnnotationsByKey() ?? [])], []) ); - const [selectedKey, setSelectedKey] = useState(initialKey ?? reactions[0][0]); + + const [selectedKey, setSelectedKey] = useState(() => { + if (initialKey) return initialKey; + const defaultReaction = reactions.find((reaction) => typeof reaction[0] === 'string'); + return defaultReaction ? defaultReaction[0] : ''; + }); const getName = (member: RoomMember) => getMemberDisplayName(room, member.userId) ?? getMxIdLocalPart(member.userId) ?? member.userId; @@ -68,16 +73,19 @@ export const ReactionViewer = as<'div', ReactionViewerProps>( - {reactions.map(([key, evts]) => ( - setSelectedKey(key)} - /> - ))} + {reactions.map(([key, evts]) => { + if (typeof key !== 'string') return null; + return ( + setSelectedKey(key)} + /> + ); + })} From 687ad8d0f0b30146d4cad585d73e79dba57ed729 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 31 Oct 2023 14:18:30 +1100 Subject: [PATCH 407/717] Fix blockcode with empty lines not rendered (#1524) --- src/app/plugins/markdown.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/plugins/markdown.ts b/src/app/plugins/markdown.ts index c6bb3914..40427a7f 100644 --- a/src/app/plugins/markdown.ts +++ b/src/app/plugins/markdown.ts @@ -248,7 +248,7 @@ const HeadingRule: BlockMDRule = { }; const CODEBLOCK_MD_1 = '```'; -const CODEBLOCK_REG_1 = /^`{3}(\S*)\n((.+\n)+)`{3} *(?!.)\n?/m; +const CODEBLOCK_REG_1 = /^`{3}(\S*)\n((?:.*\n)+?)`{3} *(?!.)\n?/m; const CodeBlockRule: BlockMDRule = { match: (text) => text.match(CODEBLOCK_REG_1), html: (match) => { @@ -285,7 +285,7 @@ const O_LIST_ITEM_PREFIX = /^(-|[\da-zA-Z]\.) */; const O_LIST_START = /^([\d])\./; const O_LIST_TYPE = /^([aAiI])\./; const O_LIST_TRAILING_NEWLINE = /\n$/; -const ORDERED_LIST_REG_1 = /(^(-|[\da-zA-Z]\.) +.+\n?)+/m; +const ORDERED_LIST_REG_1 = /(^(?:-|[\da-zA-Z]\.) +.+\n?)+/m; const OrderedListRule: BlockMDRule = { match: (text) => text.match(ORDERED_LIST_REG_1), html: (match, parseInline) => { From 1db0a9eaa8349bb19b545c7827bc37dacbb1b868 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Tue, 31 Oct 2023 08:57:59 +0530 Subject: [PATCH 408/717] fix typo in codeblock markdown output --- src/app/plugins/markdown.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/plugins/markdown.ts b/src/app/plugins/markdown.ts index 40427a7f..9b3b82f7 100644 --- a/src/app/plugins/markdown.ts +++ b/src/app/plugins/markdown.ts @@ -254,7 +254,7 @@ const CodeBlockRule: BlockMDRule = { html: (match) => { const [, g1, g2] = match; const classNameAtt = g1 ? ` class="language-${g1}"` : ''; - return `
        ${g2}
        `; + return `
        ${g2}
        `; }, }; From 9ecb233763048c730d24ddacecc8c002d3c8fc89 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Tue, 31 Oct 2023 21:20:49 +1100 Subject: [PATCH 409/717] Release v3.2.0 (#1531) * Release v3.2.0 * Update cons.js --- package-lock.json | 4 ++-- package.json | 2 +- src/client/state/cons.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6e581863..67784823 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "cinny", - "version": "3.1.0", + "version": "3.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "cinny", - "version": "3.1.0", + "version": "3.2.0", "license": "AGPL-3.0-only", "dependencies": { "@fontsource/inter": "4.5.14", diff --git a/package.json b/package.json index 17fbf168..69bcd8f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cinny", - "version": "3.1.0", + "version": "3.2.0", "description": "Yet another matrix client", "main": "index.js", "engines": { diff --git a/src/client/state/cons.js b/src/client/state/cons.js index b8074d90..62c0cacc 100644 --- a/src/client/state/cons.js +++ b/src/client/state/cons.js @@ -1,5 +1,5 @@ const cons = { - version: '3.1.0', + version: '3.2.0', secretKey: { ACCESS_TOKEN: 'cinny_access_token', DEVICE_ID: 'cinny_device_id', From 2889a72b8171191b98eb3e4ef7bf98a2ba3b8781 Mon Sep 17 00:00:00 2001 From: Jan Jurzitza Date: Tue, 28 Nov 2023 15:52:20 +0100 Subject: [PATCH 410/717] Make small images not scale up in image viewer (#1554) Instead show them in real resolution --- src/app/components/image-viewer/ImageViewer.css.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/components/image-viewer/ImageViewer.css.ts b/src/app/components/image-viewer/ImageViewer.css.ts index fc2f5088..d688afcb 100644 --- a/src/app/components/image-viewer/ImageViewer.css.ts +++ b/src/app/components/image-viewer/ImageViewer.css.ts @@ -32,8 +32,10 @@ export const ImageViewerImg = style([ DefaultReset, { objectFit: 'contain', - width: '100%', - height: '100%', + width: 'auto', + height: 'auto', + maxWidth: '100%', + maxHeight: '100%', backgroundColor: color.Surface.Container, transition: 'transform 100ms linear', }, From 2a1bf4a42ad6ed887c7e1c47538e61a77d7c86f1 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 3 Dec 2023 14:58:01 +1100 Subject: [PATCH 411/717] Update default server list (#1571) Remvoe 0wnz.at from list as it seems to need registeration token which we don't support. --- config.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config.json b/config.json index ac7b1f32..0ff493a1 100644 --- a/config.json +++ b/config.json @@ -1,7 +1,6 @@ { - "defaultHomeserver": 3, + "defaultHomeserver": 2, "homeserverList": [ - "0wnz.at", "converser.eu", "envs.net", "matrix.org", From bb88eb715484ffb46b9e56368f1d92651dc4c6bb Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Mon, 25 Dec 2023 01:08:17 +1100 Subject: [PATCH 412/717] Up-mx-js-sdk-29 (#1533) * update matrix-js-sdk * replace deprecated resolveRoomAlias --- package-lock.json | 58 +++++++++++++++------- package.json | 2 +- src/app/organisms/join-alias/JoinAlias.jsx | 2 +- src/util/matrixUtil.js | 2 +- 4 files changed, 44 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67784823..6c944cea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "linkify-html": "4.0.2", "linkify-react": "4.1.1", "linkifyjs": "4.0.2", - "matrix-js-sdk": "24.1.0", + "matrix-js-sdk": "29.1.0", "millify": "6.1.0", "pdfjs-dist": "3.10.111", "prismjs": "1.29.0", @@ -1106,10 +1106,10 @@ "node": ">=10" } }, - "node_modules/@matrix-org/matrix-sdk-crypto-js": { - "version": "0.1.0-alpha.5", - "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-js/-/matrix-sdk-crypto-js-0.1.0-alpha.5.tgz", - "integrity": "sha512-2KjAgWNGfuGLNjJwsrs6gGX157vmcTfNrA4u249utgnMPbJl7QwuUqh1bGxQ0PpK06yvZjgPlkna0lTbuwtuQw==", + "node_modules/@matrix-org/matrix-sdk-crypto-wasm": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@matrix-org/matrix-sdk-crypto-wasm/-/matrix-sdk-crypto-wasm-2.2.0.tgz", + "integrity": "sha512-txmvaTiZpVV0/kWCRcE7tZvRESCEc1ynLJDVh9OUsFlaXfl13c7qdD3E6IJEJ8YiPMIn+PHogdfBZsO84reaMg==", "engines": { "node": ">= 10" } @@ -2712,9 +2712,9 @@ "dev": true }, "node_modules/@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.2.tgz", + "integrity": "sha512-v4Mr60wJuF069iZZCdY5DKhfj0l6eXNJtbSM/oMDNdRLoBEUsktmKnswkz0X3OAic5W8Qy/YU6owKE4A66Y46A==" }, "node_modules/@types/file-saver": { "version": "2.0.5", @@ -3843,6 +3843,11 @@ "node": ">= 8" } }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, "node_modules/css-what": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-5.1.0.tgz", @@ -5894,6 +5899,11 @@ "node": ">=4.0" } }, + "node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, "node_modules/katex": { "version": "0.16.4", "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.4.tgz", @@ -6098,31 +6108,33 @@ "integrity": "sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA==" }, "node_modules/matrix-js-sdk": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-24.1.0.tgz", - "integrity": "sha512-xEx2ZoNsS56dwgqLJ3rIv2SUpFxdQLrLKmJCpMatMUKCAg+NGuZfpQ3QXblIbGaqFNQZCH7fC7S48AeTMZp1Jw==", + "version": "29.1.0", + "resolved": "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-29.1.0.tgz", + "integrity": "sha512-nF+ACFioDltGCf2KFfXK7QoJ70Ytnzm4Jse2UI+BDXeR9WCjtKefXJtboN2rmU4MFmLCTHcnBTmu6yig67YUqw==", "dependencies": { "@babel/runtime": "^7.12.5", - "@matrix-org/matrix-sdk-crypto-js": "^0.1.0-alpha.5", + "@matrix-org/matrix-sdk-crypto-wasm": "^2.0.0", "another-json": "^0.2.0", "bs58": "^5.0.0", "content-type": "^1.0.4", + "jwt-decode": "^3.1.2", "loglevel": "^1.7.1", "matrix-events-sdk": "0.0.1", - "matrix-widget-api": "^1.3.1", + "matrix-widget-api": "^1.6.0", + "oidc-client-ts": "^2.2.4", "p-retry": "4", "sdp-transform": "^2.14.1", "unhomoglyph": "^1.0.6", "uuid": "9" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/matrix-widget-api": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.4.0.tgz", - "integrity": "sha512-dw0dRylGQzDUoiaY/g5xx1tBbS7aoov31PRtFMAvG58/4uerYllV9Gfou7w+I1aglwB6hihTREzKltVjARWV6A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/matrix-widget-api/-/matrix-widget-api-1.6.0.tgz", + "integrity": "sha512-VXIJyAZ/WnBmT4C7ePqevgMYGneKMCP/0JuCOqntSsaNlCRHJvwvTxmqUU+ufOpzIF5gYNyIrAjbgrEbK3iqJQ==", "dependencies": { "@types/events": "^3.0.0", "events": "^3.2.0" @@ -6462,6 +6474,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/oidc-client-ts": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/oidc-client-ts/-/oidc-client-ts-2.4.0.tgz", + "integrity": "sha512-WijhkTrlXK2VvgGoakWJiBdfIsVGz6CFzgjNNqZU1hPKV2kyeEaJgLs7RwuiSp2WhLfWBQuLvr2SxVlZnk3N1w==", + "dependencies": { + "crypto-js": "^4.2.0", + "jwt-decode": "^3.1.2" + }, + "engines": { + "node": ">=12.13.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", diff --git a/package.json b/package.json index 69bcd8f0..cb6111b5 100644 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "linkify-html": "4.0.2", "linkify-react": "4.1.1", "linkifyjs": "4.0.2", - "matrix-js-sdk": "24.1.0", + "matrix-js-sdk": "29.1.0", "millify": "6.1.0", "pdfjs-dist": "3.10.111", "prismjs": "1.29.0", diff --git a/src/app/organisms/join-alias/JoinAlias.jsx b/src/app/organisms/join-alias/JoinAlias.jsx index bb90bf35..bc0a8adb 100644 --- a/src/app/organisms/join-alias/JoinAlias.jsx +++ b/src/app/organisms/join-alias/JoinAlias.jsx @@ -62,7 +62,7 @@ function JoinAliasContent({ term, requestClose }) { let via; if (alias.startsWith('#')) { try { - const aliasData = await mx.resolveRoomAlias(alias); + const aliasData = await mx.getRoomIdForAlias(alias); via = aliasData?.servers.slice(0, 3) || []; if (mountStore.getItem()) { setProcess(`Joining ${alias}...`); diff --git a/src/util/matrixUtil.js b/src/util/matrixUtil.js index 54ee31bb..a776fb2b 100644 --- a/src/util/matrixUtil.js +++ b/src/util/matrixUtil.js @@ -41,7 +41,7 @@ export function getUsernameOfRoomMember(roomMember) { export async function isRoomAliasAvailable(alias) { try { - const result = await initMatrix.matrixClient.resolveRoomAlias(alias); + const result = await initMatrix.matrixClient.getRoomIdForAlias(alias); if (result.room_id) return false; return false; } catch (e) { From 20db27fa7ef1cbb9682780ecb4dbdf96cc4540ec Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Sun, 21 Jan 2024 23:50:56 +1100 Subject: [PATCH 413/717] feat: URL navigation in auth (#1603) * bump to react 18 and install react-router-dom * Upgrade to react 18 root * update vite * add cs api's * convert state/auth to ts * add client config context * add auto discovery context * add spec version context * add auth flow context * add background dot pattern css * add promise utils * init url based routing * update auth route server path as effect * add auth server hook * always use server from discovery info in context * login - WIP * upgrade jotai to v2 * add atom with localStorage util * add multi account sessions atom * add default IGNORE res to auto discovery * add error type in async callback hook * handle password login error * fix async callback hook * allow password login * Show custom server not allowed error in mxId login * add sso login component * add token login * fix hardcoded m.login.password in login func * update server input on url change * Improve sso login labels * update folds * fix async callback batching state update in safari * wrap async callback set state in queueMicrotask * wip * wip - register * arrange auth file structure * add error codes * extract filed error component form password login * add register util function * handle register flow - WIP * update unsupported auth flow method reasons * improve password input styles * Improve UIA flow next stage calculation complete stages can have any order so we will look for first stage which is not in completed * process register UIA flow stages * Extract register UIA stages component * improve register error messages * add focus trap & step count in UIA stages * add reset password path and path utils * add path with origin hook * fix sso redirect url * rename register token query param to token * restyle auth screen header * add reset password component - WIP * add reset password form * add netlify rewrites * fix netlify file indentation * test netlify redirect * fix vite to include netlify toml * add more netlify redirects * add splat to public and assets path * fix vite base name * add option to use hash router in config and remove appVersion * add splash screen component * add client config loading and error screen * fix server picker bug * fix reset password email input type * make auth page small screen responsive * fix typo in reset password screen --- _redirects | 3 - build.config.ts | 3 + config.json | 7 +- index.html | 2 +- netlify.toml | 34 + package-lock.json | 1018 ++++++++++------- package.json | 22 +- src/app/components/AuthFlowsLoader.tsx | 64 ++ src/app/components/ClientConfigLoader.tsx | 38 + src/app/components/ConfirmPasswordMatch.tsx | 35 + src/app/components/SpecVersionsLoader.tsx | 32 + .../components/SupportedUIAFlowsLoader.tsx | 17 + src/app/components/UIAFlowOverlay.tsx | 72 ++ .../password-input/PasswordInput.tsx | 45 + .../splash-screen/SplashScreen.css.ts | 12 + .../components/splash-screen/SplashScreen.tsx | 29 + src/app/components/splash-screen/index.ts | 1 + src/app/components/uia-stages/DummyStage.tsx | 65 ++ src/app/components/uia-stages/EmailStage.tsx | 172 +++ .../components/uia-stages/ReCaptchaStage.tsx | 64 ++ .../uia-stages/RegistrationTokenStage.tsx | 117 ++ src/app/components/uia-stages/TermsStage.tsx | 69 ++ src/app/components/uia-stages/index.ts | 6 + src/app/components/uia-stages/types.ts | 8 + src/app/cs-api.ts | 115 ++ src/app/cs-errorcode.ts | 37 + src/app/hooks/types.ts | 12 + src/app/hooks/useAsyncCallback.ts | 48 +- src/app/hooks/useAuthFlows.ts | 59 + src/app/hooks/useAuthServer.ts | 14 + src/app/hooks/useAutoDiscoveryInfo.ts | 15 + src/app/hooks/useClientConfig.ts | 33 + src/app/hooks/useCrossSigningStatus.js | 2 +- src/app/hooks/useParsedLoginFlows.ts | 38 + src/app/hooks/usePasswordEmail.ts | 32 + src/app/hooks/usePathWithOrigin.ts | 26 + src/app/hooks/useRegisterEmail.ts | 32 + src/app/hooks/useSpecVersions.ts | 12 + src/app/hooks/useUIAFlows.ts | 96 ++ .../molecules/room-aliases/RoomAliases.jsx | 4 +- .../RoomHistoryVisibility.jsx | 4 +- .../room-notification/RoomNotification.jsx | 4 +- src/app/molecules/room-search/RoomSearch.jsx | 4 +- .../room-visibility/RoomVisibility.jsx | 4 +- .../emoji-verification/EmojiVerification.jsx | 2 +- .../organisms/room/message/UrlPreviewCard.tsx | 5 +- .../organisms/space-manage/SpaceManage.jsx | 4 +- src/app/pages/App.jsx | 17 - src/app/pages/App.tsx | 82 ++ src/app/pages/ConfigConfig.tsx | 53 + src/app/pages/auth/AuthFooter.tsx | 28 + src/app/pages/auth/AuthLayout.tsx | 215 ++++ src/app/pages/auth/FiledError.tsx | 13 + src/app/pages/auth/OrDivider.tsx | 12 + src/app/pages/auth/SSOLogin.tsx | 68 ++ src/app/pages/auth/ServerPicker.tsx | 140 +++ src/app/pages/auth/index.ts | 4 + src/app/pages/auth/login/Login.tsx | 73 ++ .../pages/auth/login/PasswordLoginForm.tsx | 272 +++++ src/app/pages/auth/login/TokenLogin.tsx | 94 ++ src/app/pages/auth/login/index.ts | 1 + src/app/pages/auth/login/loginUtil.ts | 118 ++ .../auth/register/PasswordRegisterForm.tsx | 420 +++++++ src/app/pages/auth/register/Register.tsx | 95 ++ src/app/pages/auth/register/index.ts | 1 + src/app/pages/auth/register/registerUtil.ts | 125 ++ .../auth/reset-password/PasswordResetForm.tsx | 274 +++++ .../auth/reset-password/ResetPassword.tsx | 36 + src/app/pages/auth/reset-password/index.ts | 1 + .../auth/reset-password/resetPasswordUtil.ts | 23 + src/app/pages/auth/styles.css.ts | 53 + src/app/pages/pathUtils.ts | 28 + src/app/pages/paths.ts | 17 + src/app/state/hooks/inviteList.ts | 37 +- src/app/state/hooks/roomList.ts | 34 +- src/app/state/hooks/settings.ts | 20 +- src/app/state/inviteList.ts | 4 +- src/app/state/list.ts | 2 +- src/app/state/mDirectList.ts | 9 +- src/app/state/mutedRoomList.ts | 9 +- src/app/state/roomList.ts | 9 +- src/app/state/roomToParents.ts | 6 +- src/app/state/roomToUnread.ts | 6 +- src/app/state/sessions.ts | 129 +++ src/app/state/settings.ts | 2 +- src/app/state/tabToRoom.ts | 2 +- src/app/state/typingMembers.ts | 6 +- src/app/state/upload.ts | 2 +- src/app/state/utils.ts | 2 +- src/app/state/utils/atomWithLocalStorage.ts | 51 + src/app/styles/Patterns.css.ts | 9 + src/app/utils/common.ts | 18 + src/app/utils/matrix-uia.ts | 84 ++ src/app/utils/regex.ts | 3 + src/client/action/auth.js | 2 +- src/client/initMatrix.js | 3 +- src/client/state/auth.js | 19 - src/client/state/auth.ts | 12 + src/ext.d.ts | 7 + src/{index.jsx => index.tsx} | 17 +- src/types/utils.ts | 3 + tsconfig.json | 1 + vite.config.js | 7 +- 103 files changed, 4772 insertions(+), 543 deletions(-) delete mode 100644 _redirects create mode 100644 build.config.ts create mode 100644 netlify.toml create mode 100644 src/app/components/AuthFlowsLoader.tsx create mode 100644 src/app/components/ClientConfigLoader.tsx create mode 100644 src/app/components/ConfirmPasswordMatch.tsx create mode 100644 src/app/components/SpecVersionsLoader.tsx create mode 100644 src/app/components/SupportedUIAFlowsLoader.tsx create mode 100644 src/app/components/UIAFlowOverlay.tsx create mode 100644 src/app/components/password-input/PasswordInput.tsx create mode 100644 src/app/components/splash-screen/SplashScreen.css.ts create mode 100644 src/app/components/splash-screen/SplashScreen.tsx create mode 100644 src/app/components/splash-screen/index.ts create mode 100644 src/app/components/uia-stages/DummyStage.tsx create mode 100644 src/app/components/uia-stages/EmailStage.tsx create mode 100644 src/app/components/uia-stages/ReCaptchaStage.tsx create mode 100644 src/app/components/uia-stages/RegistrationTokenStage.tsx create mode 100644 src/app/components/uia-stages/TermsStage.tsx create mode 100644 src/app/components/uia-stages/index.ts create mode 100644 src/app/components/uia-stages/types.ts create mode 100644 src/app/cs-api.ts create mode 100644 src/app/cs-errorcode.ts create mode 100644 src/app/hooks/types.ts create mode 100644 src/app/hooks/useAuthFlows.ts create mode 100644 src/app/hooks/useAuthServer.ts create mode 100644 src/app/hooks/useAutoDiscoveryInfo.ts create mode 100644 src/app/hooks/useClientConfig.ts create mode 100644 src/app/hooks/useParsedLoginFlows.ts create mode 100644 src/app/hooks/usePasswordEmail.ts create mode 100644 src/app/hooks/usePathWithOrigin.ts create mode 100644 src/app/hooks/useRegisterEmail.ts create mode 100644 src/app/hooks/useSpecVersions.ts create mode 100644 src/app/hooks/useUIAFlows.ts delete mode 100644 src/app/pages/App.jsx create mode 100644 src/app/pages/App.tsx create mode 100644 src/app/pages/ConfigConfig.tsx create mode 100644 src/app/pages/auth/AuthFooter.tsx create mode 100644 src/app/pages/auth/AuthLayout.tsx create mode 100644 src/app/pages/auth/FiledError.tsx create mode 100644 src/app/pages/auth/OrDivider.tsx create mode 100644 src/app/pages/auth/SSOLogin.tsx create mode 100644 src/app/pages/auth/ServerPicker.tsx create mode 100644 src/app/pages/auth/index.ts create mode 100644 src/app/pages/auth/login/Login.tsx create mode 100644 src/app/pages/auth/login/PasswordLoginForm.tsx create mode 100644 src/app/pages/auth/login/TokenLogin.tsx create mode 100644 src/app/pages/auth/login/index.ts create mode 100644 src/app/pages/auth/login/loginUtil.ts create mode 100644 src/app/pages/auth/register/PasswordRegisterForm.tsx create mode 100644 src/app/pages/auth/register/Register.tsx create mode 100644 src/app/pages/auth/register/index.ts create mode 100644 src/app/pages/auth/register/registerUtil.ts create mode 100644 src/app/pages/auth/reset-password/PasswordResetForm.tsx create mode 100644 src/app/pages/auth/reset-password/ResetPassword.tsx create mode 100644 src/app/pages/auth/reset-password/index.ts create mode 100644 src/app/pages/auth/reset-password/resetPasswordUtil.ts create mode 100644 src/app/pages/auth/styles.css.ts create mode 100644 src/app/pages/pathUtils.ts create mode 100644 src/app/pages/paths.ts create mode 100644 src/app/state/sessions.ts create mode 100644 src/app/state/utils/atomWithLocalStorage.ts create mode 100644 src/app/styles/Patterns.css.ts create mode 100644 src/app/utils/matrix-uia.ts delete mode 100644 src/client/state/auth.js create mode 100644 src/client/state/auth.ts rename src/{index.jsx => index.tsx} (57%) create mode 100644 src/types/utils.ts diff --git a/_redirects b/_redirects deleted file mode 100644 index 270cd338..00000000 --- a/_redirects +++ /dev/null @@ -1,3 +0,0 @@ -# Redirects from what the browser requests to what we serve -/login / -/register / diff --git a/build.config.ts b/build.config.ts new file mode 100644 index 00000000..ec8a41d0 --- /dev/null +++ b/build.config.ts @@ -0,0 +1,3 @@ +export default { + base: '/', +}; diff --git a/config.json b/config.json index 0ff493a1..484c7cd7 100644 --- a/config.json +++ b/config.json @@ -8,5 +8,10 @@ "mozilla.org", "xmr.se" ], - "allowCustomHomeservers": true + "allowCustomHomeservers": true, + + "hashRouter": { + "enabled": false, + "basename": "/" + } } diff --git a/index.html b/index.html index 6bc955c1..48f8e69e 100644 --- a/index.html +++ b/index.html @@ -96,6 +96,6 @@ - + diff --git a/netlify.toml b/netlify.toml new file mode 100644 index 00000000..e7d948e6 --- /dev/null +++ b/netlify.toml @@ -0,0 +1,34 @@ +[[redirects]] + from = "/config.json" + to = "/config.json" + status = 200 + +[[redirects]] + from = "/manifest.json" + to = "/manifest.json" + status = 200 + +[[redirects]] + from = "/olm.wasm" + to = "/olm.wasm" + status = 200 + +[[redirects]] + from = "/pdf.worker.min.js" + to = "/pdf.worker.min.js" + status = 200 + +[[redirects]] + from = "/public/*" + to = "/public/:splat" + status = 200 + +[[redirects]] + from = "/assets/*" + to = "/assets/:splat" + status = 200 + +[[redirects]] + from = "/*" + to = "/index.html" + status = 200 \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6c944cea..fba4072e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -29,13 +29,13 @@ "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.5.0", + "folds": "1.5.1", "formik": "2.2.9", "html-dom-parser": "4.0.0", "html-react-parser": "4.2.0", "immer": "9.0.16", "is-hotkey": "0.2.0", - "jotai": "1.12.0", + "jotai": "2.6.0", "katex": "0.16.4", "linkify-html": "4.0.2", "linkify-react": "4.1.1", @@ -45,17 +45,18 @@ "pdfjs-dist": "3.10.111", "prismjs": "1.29.0", "prop-types": "15.8.1", - "react": "17.0.2", + "react": "18.2.0", "react-aria": "3.29.1", "react-autosize-textarea": "7.1.0", "react-blurhash": "0.2.0", - "react-dnd": "15.1.2", - "react-dnd-html5-backend": "15.1.3", - "react-dom": "17.0.2", + "react-dnd": "16.0.1", + "react-dnd-html5-backend": "16.0.1", + "react-dom": "18.2.0", "react-error-boundary": "4.0.10", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", "react-range": "1.8.14", + "react-router-dom": "6.20.0", "sanitize-html": "2.8.0", "slate": "0.94.1", "slate-history": "0.93.0", @@ -71,13 +72,14 @@ "@types/file-saver": "2.0.5", "@types/node": "18.11.18", "@types/prismjs": "1.26.0", - "@types/react": "18.0.26", - "@types/react-dom": "18.0.9", + "@types/react": "18.2.39", + "@types/react-dom": "18.2.17", + "@types/react-google-recaptcha": "2.1.8", "@types/sanitize-html": "2.9.0", "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", - "@vitejs/plugin-react": "3.0.0", + "@vitejs/plugin-react": "4.2.0", "buffer": "6.0.3", "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", @@ -90,7 +92,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "4.3.9", + "vite": "5.0.8", "vite-plugin-static-copy": "0.13.0" }, "engines": { @@ -110,44 +112,45 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", + "integrity": "sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/highlight": "^7.23.4", + "chalk": "^2.4.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.20.10", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.10.tgz", - "integrity": "sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.20.12", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.20.12.tgz", - "integrity": "sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", "dependencies": { - "@ampproject/remapping": "^2.1.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.20.11", - "@babel/helpers": "^7.20.7", - "@babel/parser": "^7.20.7", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.12", - "@babel/types": "^7.20.7", - "convert-source-map": "^1.7.0", + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -158,12 +161,13 @@ } }, "node_modules/@babel/generator": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.20.7.tgz", - "integrity": "sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.4.tgz", + "integrity": "sha512-esuS49Cga3HcThFNebGhlgsrVLkvhqvYDTzgjfFFlHJcIfLe5jFmRRfCQ1KuBfc4Jrtn3ndLgKWAKjBE+IraYQ==", "dependencies": { - "@babel/types": "^7.20.7", + "@babel/types": "^7.23.4", "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "engines": { @@ -171,9 +175,9 @@ } }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -184,21 +188,18 @@ } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -215,139 +216,139 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-function-name": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", - "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", "dependencies": { - "@babel/template": "^7.18.10", - "@babel/types": "^7.19.0" + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.20.11", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz", - "integrity": "sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.10", - "@babel/types": "^7.20.7" + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", "dependencies": { - "@babel/types": "^7.20.2" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.22.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.13.tgz", - "integrity": "sha512-nzJ0DWCL3gB5RCXbUO3KIMMsBY2Eqbx8mBpKGE/02PgyRQFcPQLbkQ1vyy596mZLaP+dAfD+R4ckASzNVmW3jg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.4.tgz", + "integrity": "sha512-HfcMizYz10cr3h29VqyfGL6ZWIjTwWfvYBMsBVGwpcbhNGe3wQ1ZXZRPzZoAHhd9OqHadHqjQ89iVKINXnbzuw==", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.20.13", - "@babel/types": "^7.20.7" + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", + "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", "js-tokens": "^4.0.0" }, "engines": { @@ -355,9 +356,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.13.tgz", - "integrity": "sha512-gFDLKMfpiXCsjt4za2JA9oTMn70CeseCehb11kRZgvd7+F67Hih3OHOK24cRrWECJ/ljfPGac6ygXAs/C8kIvw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.4.tgz", + "integrity": "sha512-vf3Xna6UEprW+7t6EtOmFpHNAuxw3xqPZghy+brsnusscJRW5BMUzzHZc5ICjULee81WeUV2jjakG09MDglJXQ==", "bin": { "parser": "bin/babel-parser.js" }, @@ -380,12 +381,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-self": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.18.6.tgz", - "integrity": "sha512-A0LQGx4+4Jv7u/tWzoJF7alZwnBDQd6cGLh9P+Ttk4dpiL+J5p7NSNv/9tlEFFJDq3kjxOavWmbm6t0Gk+A3Ig==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.23.3.tgz", + "integrity": "sha512-qXRvbeKDSfwnlJnanVRp0SfuWE5DQhwQr5xtLBzp56Wabyo+4CMosF6Kfp+eOD/4FYpql64XVJ2W0pVLlJZxOQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -395,12 +396,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-source": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", - "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.23.3.tgz", + "integrity": "sha512-91RS0MDnAWDNvGC6Wio5XYkyWI39FMFO+JK9+4AlgaTH+yWwVTsw7/sn6LK0lH7c5F+TFkpv/3LfCJ1Ydwof/g==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.22.5" }, "engines": { "node": ">=6.9.0" @@ -445,31 +446,31 @@ "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.20.13.tgz", - "integrity": "sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.4.tgz", + "integrity": "sha512-IYM8wSUwunWTB6tFC2dkKZhxbIjHoWemdK+3f8/wq8aKhbUscxD5MX72ubd90fxvFknaLPeGw5ycU84V1obHJg==", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.20.7", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.20.13", - "@babel/types": "^7.20.7", + "@babel/code-frame": "^7.23.4", + "@babel/generator": "^7.23.4", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.4", + "@babel/types": "^7.23.4", "debug": "^4.1.0", "globals": "^11.1.0" }, @@ -478,12 +479,12 @@ } }, "node_modules/@babel/types": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.7.tgz", - "integrity": "sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.4.tgz", + "integrity": "sha512-7uIFwVYpoplT5jp/kVv6EF93VaJ8H+Yn5IczYiaAi98ajzjfoZfslet/e0sLh+wVBjb2qqIut1b0S26VSafsSQ==", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -1893,19 +1894,19 @@ } }, "node_modules/@react-dnd/asap": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz", - "integrity": "sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/asap/-/asap-5.0.2.tgz", + "integrity": "sha512-WLyfoHvxhs0V9U+GTsGilGgf2QsPl6ZZ44fnv0/b8T3nQyvzxidxsg/ZltbWssbsRDlYW8UKSQMTGotuTotZ6A==" }, "node_modules/@react-dnd/invariant": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-3.0.1.tgz", - "integrity": "sha512-blqduwV86oiKw2Gr44wbe3pj3Z/OsXirc7ybCv9F/pLAR+Aih8F3rjeJzK0ANgtYKv5lCpkGVoZAeKitKDaD/g==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/invariant/-/invariant-4.0.2.tgz", + "integrity": "sha512-xKCTqAK/FFauOM9Ta2pswIyT3D8AQlfrYdOi/toTPEhqCuAs1v5tcJ3Y08Izh1cJ5Jchwy9SeAXmMg6zrKs2iw==" }, "node_modules/@react-dnd/shallowequal": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-3.0.1.tgz", - "integrity": "sha512-XjDVbs3ZU16CO1h5Q3Ew2RPJqmZBDE/EVf1LYp6ePEffs3V/MX9ZbL5bJr8qiK5SbGmUMuDoaFgyKacYz8prRA==" + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz", + "integrity": "sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==" }, "node_modules/@react-stately/calendar": { "version": "3.4.1", @@ -2583,6 +2584,14 @@ "react": "^16.8.0 || ^17.0.0-rc.1 || ^18.0.0" } }, + "node_modules/@remix-run/router": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.13.0.tgz", + "integrity": "sha512-5dMOnVnefRsl4uRnAdoWjtVTdh8e6aZqgM4puy9nmEADH72ck+uXwzpJLEKE9Q6F8ZljNewLgmTfkxUrBdv4WA==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/@rollup/plugin-inject": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz", @@ -2656,6 +2665,175 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.8.0.tgz", + "integrity": "sha512-zdTObFRoNENrdPpnTNnhOljYIcOX7aI7+7wyrSpPFFIOf/nRdedE6IYsjaBE7tjukphh1tMTojgJ7p3lKY8x6Q==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.8.0.tgz", + "integrity": "sha512-aiItwP48BiGpMFS9Znjo/xCNQVwTQVcRKkFKsO81m8exrGjHkCBDvm9PHay2kpa8RPnZzzKcD1iQ9KaLY4fPQQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.8.0.tgz", + "integrity": "sha512-zhNIS+L4ZYkYQUjIQUR6Zl0RXhbbA0huvNIWjmPc2SL0cB1h5Djkcy+RZ3/Bwszfb6vgwUvcVJYD6e6Zkpsi8g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.8.0.tgz", + "integrity": "sha512-A/FAHFRNQYrELrb/JHncRWzTTXB2ticiRFztP4ggIUAfa9Up1qfW8aG2w/mN9jNiZ+HB0t0u0jpJgFXG6BfRTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.8.0.tgz", + "integrity": "sha512-JsidBnh3p2IJJA4/2xOF2puAYqbaczB3elZDT0qHxn362EIoIkq7hrR43Xa8RisgI6/WPfvb2umbGsuvf7E37A==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.8.0.tgz", + "integrity": "sha512-hBNCnqw3EVCkaPB0Oqd24bv8SklETptQWcJz06kb9OtiShn9jK1VuTgi7o4zPSt6rNGWQOTDEAccbk0OqJmS+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.8.0.tgz", + "integrity": "sha512-Fw9ChYfJPdltvi9ALJ9wzdCdxGw4wtq4t1qY028b2O7GwB5qLNSGtqMsAel1lfWTZvf4b6/+4HKp0GlSYg0ahA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.8.0.tgz", + "integrity": "sha512-BH5xIh7tOzS9yBi8dFrCTG8Z6iNIGWGltd3IpTSKp6+pNWWO6qy8eKoRxOtwFbMrid5NZaidLYN6rHh9aB8bEw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.8.0.tgz", + "integrity": "sha512-PmvAj8k6EuWiyLbkNpd6BLv5XeYFpqWuRvRNRl80xVfpGXK/z6KYXmAgbI4ogz7uFiJxCnYcqyvZVD0dgFog7Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.8.0.tgz", + "integrity": "sha512-mdxnlW2QUzXwY+95TuxZ+CurrhgrPAMveDWI97EQlA9bfhR8tw3Pt7SUlc/eSlCNxlWktpmT//EAA8UfCHOyXg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.8.0.tgz", + "integrity": "sha512-ge7saUz38aesM4MA7Cad8CHo0Fyd1+qTaqoIo+Jtk+ipBi4ATSrHWov9/S4u5pbEQmLjgUjB7BJt+MiKG2kzmA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.8.0.tgz", + "integrity": "sha512-p9E3PZlzurhlsN5h9g7zIP1DnqKXJe8ZUkFwAazqSvHuWfihlIISPxG9hCHCoA+dOOspL/c7ty1eeEVFTE0UTw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.8.0.tgz", + "integrity": "sha512-kb4/auKXkYKqlUYTE8s40FcJIj5soOyRLHKd4ugR0dCq0G2EfcF54eYcfQiGkHzjidZ40daB4ulsFdtqNKZtBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@swc/helpers": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", @@ -2705,6 +2883,47 @@ "react-dom": ">=16.8" } }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.7", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", + "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.4", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", + "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, "node_modules/@types/estree": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.0.tgz", @@ -2762,9 +2981,9 @@ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==" }, "node_modules/@types/react": { - "version": "18.0.26", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.26.tgz", - "integrity": "sha512-hCR3PJQsAIXyxhTNSiDFY//LhnMZWpNNr5etoCqx/iUfGc5gXWtQR2Phl908jVR6uPXacojQWTg4qRpkxTuGug==", + "version": "18.2.39", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.39.tgz", + "integrity": "sha512-Oiw+ppED6IremMInLV4HXGbfbG6GyziY3kqAwJYOR0PNbkYDmLWQA3a95EhdSmamsvbkJN96ZNN+YD+fGjzSBA==", "dependencies": { "@types/prop-types": "*", "@types/scheduler": "*", @@ -2772,9 +2991,18 @@ } }, "node_modules/@types/react-dom": { - "version": "18.0.9", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.9.tgz", - "integrity": "sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==", + "version": "18.2.17", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.17.tgz", + "integrity": "sha512-rvrT/M7Df5eykWFxn6MYt5Pem/Dbyc1N8Y0S9Mrkw2WFCRiqUgw9P7ul2NpwsXCSM1DVdENzdG9J5SreqfAIWg==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/react-google-recaptcha": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@types/react-google-recaptcha/-/react-google-recaptcha-2.1.8.tgz", + "integrity": "sha512-nYI3ZDoteZ0g4FYusyKWqz7AZqRdu70R3wDkosCcN0peb2WLn57i0Alm4IPiCRIx59yTUVPTiOELZH08gV1wXA==", "dev": true, "dependencies": { "@types/react": "*" @@ -3208,22 +3436,22 @@ } }, "node_modules/@vitejs/plugin-react": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-3.0.0.tgz", - "integrity": "sha512-1mvyPc0xYW5G8CHQvJIJXLoMjl5Ct3q2g5Y2s6Ccfgwm45y48LBvsla7az+GkkAtYikWQ4Lxqcsq5RHLcZgtNQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.2.0.tgz", + "integrity": "sha512-+MHTH/e6H12kRp5HUkzOGqPMksezRMmW+TNzlh/QXfI8rRf6l2Z2yH/v12no1UvTwhZgEDMuQ7g7rrfMseU6FQ==", "dev": true, "dependencies": { - "@babel/core": "^7.20.5", - "@babel/plugin-transform-react-jsx-self": "^7.18.6", - "@babel/plugin-transform-react-jsx-source": "^7.19.6", - "magic-string": "^0.27.0", + "@babel/core": "^7.23.3", + "@babel/plugin-transform-react-jsx-self": "^7.23.3", + "@babel/plugin-transform-react-jsx-source": "^7.23.3", + "@types/babel__core": "^7.20.4", "react-refresh": "^0.14.0" }, "engines": { "node": "^14.18.0 || >=16.0.0" }, "peerDependencies": { - "vite": "^4.0.0" + "vite": "^4.2.0 || ^5.0.0" } }, "node_modules/abbrev": { @@ -3550,9 +3778,9 @@ "integrity": "sha512-L7siI766UCH6+arP9yT5wpA5AFxnmGbKiGSsxEVACl1tE0pvDJeQvMmbY2UmJiuffrr0ZJ2+U6Om46wQBqh1Lw==" }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", "funding": [ { "type": "opencollective", @@ -3561,13 +3789,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -3631,9 +3863,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001446", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001446.tgz", - "integrity": "sha512-fEoga4PrImGcwUUGEol/PoFCSBnSkA9drgdkxXkJLsUBOnJ8rs3zDv6ApqYXGQFOyMPsjh79naWhF4DAxbF8rw==", + "version": "1.0.30001565", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001565.tgz", + "integrity": "sha512-xrE//a3O7TP0vaJ8ikzkD2c2NgcVUvsEe2IvFTntV4Yd1Z9FVzh+gW+enX96L0psrbaFMcVcH2l90xNuGDWc8w==", "funding": [ { "type": "opencollective", @@ -3642,6 +3874,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -3806,9 +4042,9 @@ } }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" }, "node_modules/core-js-pure": { "version": "3.26.1", @@ -3997,13 +4233,13 @@ } }, "node_modules/dnd-core": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-15.1.2.tgz", - "integrity": "sha512-EOec1LyJUuGRFg0LDa55rSRAUe97uNVKVkUo8iyvzQlcECYTuPblVQfRWXWj1OyPseFIeebWpNmKFy0h6BcF1A==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/dnd-core/-/dnd-core-16.0.1.tgz", + "integrity": "sha512-HK294sl7tbw6F6IeuK16YSBUoorvHpY8RHO+9yFfaJyCDVb6n7PRcezrOEOa2SBCqiYpemh5Jx20ZcjKdFAVng==", "dependencies": { - "@react-dnd/asap": "4.0.1", - "@react-dnd/invariant": "3.0.1", - "redux": "^4.1.2" + "@react-dnd/asap": "^5.0.1", + "@react-dnd/invariant": "^4.0.1", + "redux": "^4.2.0" } }, "node_modules/doctrine": { @@ -4070,9 +4306,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" + "version": "1.4.596", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.596.tgz", + "integrity": "sha512-zW3zbZ40Icb2BCWjm47nxwcFGYlIgdXkAx85XDO7cyky9J4QQfq8t0W19/TLZqq3JPQXtlv8BPIGmfa9Jb4scg==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -4959,9 +5195,9 @@ } }, "node_modules/folds": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/folds/-/folds-1.5.0.tgz", - "integrity": "sha512-1QNHzD57OxFZT5SOe0nWcrKQvWmfMRv1f5sTF8xhGtwx9rajjv36T9SwCcj9Fh58PbERqOdBiwvpdhu+BQTVjg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/folds/-/folds-1.5.1.tgz", + "integrity": "sha512-2QxyA+FRKjPKXDTMDoD7NmOUiReWrKYO0Msg44QqlzTkTrRVEzJgyPIfC/Ia4/u0ByQpk6dbq8UQxomKmneJ/g==", "peerDependencies": { "@vanilla-extract/css": "^1.9.2", "@vanilla-extract/recipes": "^0.3.0", @@ -5045,9 +5281,9 @@ "devOptional": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -5762,54 +5998,21 @@ "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==" }, "node_modules/jotai": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/jotai/-/jotai-1.12.0.tgz", - "integrity": "sha512-IhyBmjxU1sE2Ni/MUK7gQAb8QvCM6yd1/K5jtQzgQBmmjCjgfXZkkk1rYlQAIRp2KoQk0Y+yzhm1f5cZ7kegnw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/jotai/-/jotai-2.6.0.tgz", + "integrity": "sha512-Vt6hsc04Km4j03l+Ax+Sc+FVft5cRJhqgxt6GTz6GM2eM3DyX3CdBdzcG0z2FrlZToL1/0OAkqDghIyARWnSuQ==", "engines": { "node": ">=12.20.0" }, "peerDependencies": { - "@babel/core": "*", - "@babel/template": "*", - "jotai-immer": "*", - "jotai-optics": "*", - "jotai-redux": "*", - "jotai-tanstack-query": "*", - "jotai-urql": "*", - "jotai-valtio": "*", - "jotai-xstate": "*", - "jotai-zustand": "*", - "react": ">=16.8" + "@types/react": ">=17.0.0", + "react": ">=17.0.0" }, "peerDependenciesMeta": { - "@babel/core": { + "@types/react": { "optional": true }, - "@babel/template": { - "optional": true - }, - "jotai-immer": { - "optional": true - }, - "jotai-optics": { - "optional": true - }, - "jotai-redux": { - "optional": true - }, - "jotai-tanstack-query": { - "optional": true - }, - "jotai-urql": { - "optional": true - }, - "jotai-valtio": { - "optional": true - }, - "jotai-xstate": { - "optional": true - }, - "jotai-zustand": { + "react": { "optional": true } } @@ -6281,9 +6484,9 @@ "optional": true }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "funding": [ { "type": "github", @@ -6329,9 +6532,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz", - "integrity": "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==" }, "node_modules/nopt": { "version": "5.0.0", @@ -6654,9 +6857,9 @@ } }, "node_modules/postcss": { - "version": "8.4.24", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz", - "integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==", + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", "funding": [ { "type": "opencollective", @@ -6672,7 +6875,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -6788,12 +6991,11 @@ ] }, "node_modules/react": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", - "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" @@ -6882,13 +7084,13 @@ } }, "node_modules/react-dnd": { - "version": "15.1.2", - "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-15.1.2.tgz", - "integrity": "sha512-EaSbMD9iFJDY/o48T3c8wn3uWU+2uxfFojhesZN3LhigJoAIvH2iOjxofSA9KbqhAKP6V9P853G6XG8JngKVtA==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd/-/react-dnd-16.0.1.tgz", + "integrity": "sha512-QeoM/i73HHu2XF9aKksIUuamHPDvRglEwdHL4jsp784BgUuWcg6mzfxT0QDdQz8Wj0qyRKx2eMg8iZtWvU4E2Q==", "dependencies": { - "@react-dnd/invariant": "3.0.1", - "@react-dnd/shallowequal": "3.0.1", - "dnd-core": "15.1.2", + "@react-dnd/invariant": "^4.0.1", + "@react-dnd/shallowequal": "^4.0.1", + "dnd-core": "^16.0.1", "fast-deep-equal": "^3.1.3", "hoist-non-react-statics": "^3.3.2" }, @@ -6911,24 +7113,23 @@ } }, "node_modules/react-dnd-html5-backend": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-15.1.3.tgz", - "integrity": "sha512-HH/8nOEmrrcRGHMqJR91FOwhnLlx5SRLXmsQwZT3IPcBjx88WT+0pWC5A4tDOYDdoooh9k+KMPvWfxooR5TcOA==", + "version": "16.0.1", + "resolved": "https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-16.0.1.tgz", + "integrity": "sha512-Wu3dw5aDJmOGw8WjH1I1/yTH+vlXEL4vmjk5p+MHxP8HuHJS1lAGeIdG/hze1AvNeXWo/JgULV87LyQOr+r5jw==", "dependencies": { - "dnd-core": "15.1.2" + "dnd-core": "^16.0.1" } }, "node_modules/react-dom": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz", - "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==", + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "dependencies": { "loose-envify": "^1.1.0", - "object-assign": "^4.1.1", - "scheduler": "^0.20.2" + "scheduler": "^0.23.0" }, "peerDependencies": { - "react": "17.0.2" + "react": "^18.2.0" } }, "node_modules/react-error-boundary": { @@ -7010,6 +7211,36 @@ "node": ">=0.10.0" } }, + "node_modules/react-router": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.20.0.tgz", + "integrity": "sha512-pVvzsSsgUxxtuNfTHC4IxjATs10UaAtvLGVSA1tbUE4GDaOSU1Esu2xF5nWLz7KPiMuW8BJWuPFdlGYJ7/rW0w==", + "dependencies": { + "@remix-run/router": "1.13.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.20.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.20.0.tgz", + "integrity": "sha512-CbcKjEyiSVpA6UtCHOIYLUYn/UJfwzp55va4yEfpk7JBN3GPqWfHrdLkAvNCcpXr8QoihcDMuk0dzWZxtlB/mQ==", + "dependencies": { + "@remix-run/router": "1.13.0", + "react-router": "6.20.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -7037,9 +7268,9 @@ } }, "node_modules/redux": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.0.tgz", - "integrity": "sha512-oSBmcKKIuIR4ME29/AeNUnl5L+hvBq7OaJWzaptTQJAntaPvxIJqfnjbaEiCzzaIz+XmVILfqAM3Ob0aXLPfjA==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz", + "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==", "dependencies": { "@babel/runtime": "^7.9.2" } @@ -7149,18 +7380,31 @@ } }, "node_modules/rollup": { - "version": "3.25.1", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.1.tgz", - "integrity": "sha512-tywOR+rwIt5m2ZAWSe5AIJcTat8vGlnPFAv15ycCrw33t6iFsXZ6mzHVFh2psSjxQPmI+xgzMZZizUAukBI4aQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.8.0.tgz", + "integrity": "sha512-NpsklK2fach5CdI+PScmlE5R4Ao/FSWtF7LkoIrHDxPACY/xshNasPsbpG0VVHxUTbf74tJbVT4PrP8JsJ6ZDA==", "dev": true, "bin": { "rollup": "dist/bin/rollup" }, "engines": { - "node": ">=14.18.0", + "node": ">=18.0.0", "npm": ">=8.0.0" }, "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.8.0", + "@rollup/rollup-android-arm64": "4.8.0", + "@rollup/rollup-darwin-arm64": "4.8.0", + "@rollup/rollup-darwin-x64": "4.8.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.8.0", + "@rollup/rollup-linux-arm64-gnu": "4.8.0", + "@rollup/rollup-linux-arm64-musl": "4.8.0", + "@rollup/rollup-linux-riscv64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-gnu": "4.8.0", + "@rollup/rollup-linux-x64-musl": "4.8.0", + "@rollup/rollup-win32-arm64-msvc": "4.8.0", + "@rollup/rollup-win32-ia32-msvc": "4.8.0", + "@rollup/rollup-win32-x64-msvc": "4.8.0", "fsevents": "~2.3.2" } }, @@ -7271,12 +7515,11 @@ } }, "node_modules/scheduler": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz", - "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dependencies": { - "loose-envify": "^1.1.0", - "object-assign": "^4.1.1" + "loose-envify": "^1.1.0" } }, "node_modules/scroll-into-view-if-needed": { @@ -7296,9 +7539,9 @@ } }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "bin": { "semver": "bin/semver.js" } @@ -7810,9 +8053,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "funding": [ { "type": "opencollective", @@ -7821,6 +8064,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -7828,7 +8075,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -7858,27 +8105,31 @@ } }, "node_modules/vite": { - "version": "4.3.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz", - "integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.8.tgz", + "integrity": "sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==", "dev": true, "dependencies": { - "esbuild": "^0.17.5", - "postcss": "^8.4.23", - "rollup": "^3.21.0" + "esbuild": "^0.19.3", + "postcss": "^8.4.32", + "rollup": "^4.2.0" }, "bin": { "vite": "bin/vite.js" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" }, "optionalDependencies": { - "fsevents": "~2.3.2" + "fsevents": "~2.3.3" }, "peerDependencies": { - "@types/node": ">= 14", + "@types/node": "^18.0.0 || >=20.0.0", "less": "*", + "lightningcss": "^1.21.0", "sass": "*", "stylus": "*", "sugarss": "*", @@ -7891,6 +8142,9 @@ "less": { "optional": true }, + "lightningcss": { + "optional": true + }, "sass": { "optional": true }, @@ -7959,9 +8213,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.19.tgz", - "integrity": "sha512-rIKddzqhmav7MSmoFCmDIb6e2W57geRsM94gV2l38fzhXMwq7hZoClug9USI2pFRGL06f4IOPHHpFNOkWieR8A==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", + "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", "cpu": [ "arm" ], @@ -7975,9 +8229,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz", - "integrity": "sha512-KBMWvEZooR7+kzY0BtbTQn0OAYY7CsiydT63pVEaPtVYF0hXbUaOyZog37DKxK7NF3XacBJOpYT4adIJh+avxA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", + "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", "cpu": [ "arm64" ], @@ -7991,9 +8245,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.19.tgz", - "integrity": "sha512-uUTTc4xGNDT7YSArp/zbtmbhO0uEEK9/ETW29Wk1thYUJBz3IVnvgEiEwEa9IeLyvnpKrWK64Utw2bgUmDveww==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", + "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", "cpu": [ "x64" ], @@ -8007,9 +8261,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.19.tgz", - "integrity": "sha512-80wEoCfF/hFKM6WE1FyBHc9SfUblloAWx6FJkFWTWiCoht9Mc0ARGEM47e67W9rI09YoUxJL68WHfDRYEAvOhg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", + "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", "cpu": [ "arm64" ], @@ -8023,9 +8277,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.19.tgz", - "integrity": "sha512-IJM4JJsLhRYr9xdtLytPLSH9k/oxR3boaUIYiHkAawtwNOXKE8KoU8tMvryogdcT8AU+Bflmh81Xn6Q0vTZbQw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", + "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", "cpu": [ "x64" ], @@ -8039,9 +8293,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.19.tgz", - "integrity": "sha512-pBwbc7DufluUeGdjSU5Si+P3SoMF5DQ/F/UmTSb8HXO80ZEAJmrykPyzo1IfNbAoaqw48YRpv8shwd1NoI0jcQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", + "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", "cpu": [ "arm64" ], @@ -8055,9 +8309,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.19.tgz", - "integrity": "sha512-4lu+n8Wk0XlajEhbEffdy2xy53dpR06SlzvhGByyg36qJw6Kpfk7cp45DR/62aPH9mtJRmIyrXAS5UWBrJT6TQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", + "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", "cpu": [ "x64" ], @@ -8071,9 +8325,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.19.tgz", - "integrity": "sha512-cdmT3KxjlOQ/gZ2cjfrQOtmhG4HJs6hhvm3mWSRDPtZ/lP5oe8FWceS10JaSJC13GBd4eH/haHnqf7hhGNLerA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", + "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", "cpu": [ "arm" ], @@ -8087,9 +8341,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.19.tgz", - "integrity": "sha512-ct1Tg3WGwd3P+oZYqic+YZF4snNl2bsnMKRkb3ozHmnM0dGWuxcPTTntAF6bOP0Sp4x0PjSF+4uHQ1xvxfRKqg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", + "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", "cpu": [ "arm64" ], @@ -8103,9 +8357,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.19.tgz", - "integrity": "sha512-w4IRhSy1VbsNxHRQpeGCHEmibqdTUx61Vc38APcsRbuVgK0OPEnQ0YD39Brymn96mOx48Y2laBQGqgZ0j9w6SQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", + "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", "cpu": [ "ia32" ], @@ -8119,9 +8373,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.19.tgz", - "integrity": "sha512-2iAngUbBPMq439a+z//gE+9WBldoMp1s5GWsUSgqHLzLJ9WoZLZhpwWuym0u0u/4XmZ3gpHmzV84PonE+9IIdQ==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", + "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", "cpu": [ "loong64" ], @@ -8135,9 +8389,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.19.tgz", - "integrity": "sha512-LKJltc4LVdMKHsrFe4MGNPp0hqDFA1Wpt3jE1gEyM3nKUvOiO//9PheZZHfYRfYl6AwdTH4aTcXSqBerX0ml4A==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", + "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", "cpu": [ "mips64el" ], @@ -8151,9 +8405,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.19.tgz", - "integrity": "sha512-/c/DGybs95WXNS8y3Ti/ytqETiW7EU44MEKuCAcpPto3YjQbyK3IQVKfF6nbghD7EcLUGl0NbiL5Rt5DMhn5tg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", + "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", "cpu": [ "ppc64" ], @@ -8167,9 +8421,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.19.tgz", - "integrity": "sha512-FC3nUAWhvFoutlhAkgHf8f5HwFWUL6bYdvLc/TTuxKlvLi3+pPzdZiFKSWz/PF30TB1K19SuCxDTI5KcqASJqA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", + "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", "cpu": [ "riscv64" ], @@ -8183,9 +8437,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.19.tgz", - "integrity": "sha512-IbFsFbxMWLuKEbH+7sTkKzL6NJmG2vRyy6K7JJo55w+8xDk7RElYn6xvXtDW8HCfoKBFK69f3pgBJSUSQPr+4Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", + "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", "cpu": [ "s390x" ], @@ -8199,9 +8453,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.19.tgz", - "integrity": "sha512-68ngA9lg2H6zkZcyp22tsVt38mlhWde8l3eJLWkyLrp4HwMUr3c1s/M2t7+kHIhvMjglIBrFpncX1SzMckomGw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", + "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", "cpu": [ "x64" ], @@ -8215,9 +8469,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.19.tgz", - "integrity": "sha512-CwFq42rXCR8TYIjIfpXCbRX0rp1jo6cPIUPSaWwzbVI4aOfX96OXY8M6KNmtPcg7QjYeDmN+DD0Wp3LaBOLf4Q==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", + "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", "cpu": [ "x64" ], @@ -8231,9 +8485,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.19.tgz", - "integrity": "sha512-cnq5brJYrSZ2CF6c35eCmviIN3k3RczmHz8eYaVlNasVqsNY+JKohZU5MKmaOI+KkllCdzOKKdPs762VCPC20g==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", + "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", "cpu": [ "x64" ], @@ -8247,9 +8501,9 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.19.tgz", - "integrity": "sha512-vCRT7yP3zX+bKWFeP/zdS6SqdWB8OIpaRq/mbXQxTGHnIxspRtigpkUcDMlSCOejlHowLqII7K2JKevwyRP2rg==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", + "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", "cpu": [ "x64" ], @@ -8263,9 +8517,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.19.tgz", - "integrity": "sha512-yYx+8jwowUstVdorcMdNlzklLYhPxjniHWFKgRqH7IFlUEa0Umu3KuYplf1HUZZ422e3NU9F4LGb+4O0Kdcaag==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", + "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", "cpu": [ "arm64" ], @@ -8279,9 +8533,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.19.tgz", - "integrity": "sha512-eggDKanJszUtCdlVs0RB+h35wNlb5v4TWEkq4vZcmVt5u/HiDZrTXe2bWFQUez3RgNHwx/x4sk5++4NSSicKkw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", + "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", "cpu": [ "ia32" ], @@ -8295,9 +8549,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.19.tgz", - "integrity": "sha512-lAhycmKnVOuRYNtRtatQR1LPQf2oYCkRGkSFnseDAKPl8lu5SOsK/e1sXe5a0Pc5kHIHe6P2I/ilntNv2xf3cA==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", + "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", "cpu": [ "x64" ], @@ -8311,9 +8565,9 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.17.19", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.19.tgz", - "integrity": "sha512-XQ0jAPFkK/u3LcVRcvVHQcTIqD6E2H1fvZMA5dQPSOWb3suUbWbfbRf94pjc0bNzRYLfIrDRQXr7X+LHIm5oHw==", + "version": "0.19.9", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", + "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", "dev": true, "hasInstallScript": true, "bin": { @@ -8323,28 +8577,28 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.17.19", - "@esbuild/android-arm64": "0.17.19", - "@esbuild/android-x64": "0.17.19", - "@esbuild/darwin-arm64": "0.17.19", - "@esbuild/darwin-x64": "0.17.19", - "@esbuild/freebsd-arm64": "0.17.19", - "@esbuild/freebsd-x64": "0.17.19", - "@esbuild/linux-arm": "0.17.19", - "@esbuild/linux-arm64": "0.17.19", - "@esbuild/linux-ia32": "0.17.19", - "@esbuild/linux-loong64": "0.17.19", - "@esbuild/linux-mips64el": "0.17.19", - "@esbuild/linux-ppc64": "0.17.19", - "@esbuild/linux-riscv64": "0.17.19", - "@esbuild/linux-s390x": "0.17.19", - "@esbuild/linux-x64": "0.17.19", - "@esbuild/netbsd-x64": "0.17.19", - "@esbuild/openbsd-x64": "0.17.19", - "@esbuild/sunos-x64": "0.17.19", - "@esbuild/win32-arm64": "0.17.19", - "@esbuild/win32-ia32": "0.17.19", - "@esbuild/win32-x64": "0.17.19" + "@esbuild/android-arm": "0.19.9", + "@esbuild/android-arm64": "0.19.9", + "@esbuild/android-x64": "0.19.9", + "@esbuild/darwin-arm64": "0.19.9", + "@esbuild/darwin-x64": "0.19.9", + "@esbuild/freebsd-arm64": "0.19.9", + "@esbuild/freebsd-x64": "0.19.9", + "@esbuild/linux-arm": "0.19.9", + "@esbuild/linux-arm64": "0.19.9", + "@esbuild/linux-ia32": "0.19.9", + "@esbuild/linux-loong64": "0.19.9", + "@esbuild/linux-mips64el": "0.19.9", + "@esbuild/linux-ppc64": "0.19.9", + "@esbuild/linux-riscv64": "0.19.9", + "@esbuild/linux-s390x": "0.19.9", + "@esbuild/linux-x64": "0.19.9", + "@esbuild/netbsd-x64": "0.19.9", + "@esbuild/openbsd-x64": "0.19.9", + "@esbuild/sunos-x64": "0.19.9", + "@esbuild/win32-arm64": "0.19.9", + "@esbuild/win32-ia32": "0.19.9", + "@esbuild/win32-x64": "0.19.9" } }, "node_modules/warning": { diff --git a/package.json b/package.json index cb6111b5..56e7b8c0 100644 --- a/package.json +++ b/package.json @@ -39,13 +39,13 @@ "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.5.0", + "folds": "1.5.1", "formik": "2.2.9", "html-dom-parser": "4.0.0", "html-react-parser": "4.2.0", "immer": "9.0.16", "is-hotkey": "0.2.0", - "jotai": "1.12.0", + "jotai": "2.6.0", "katex": "0.16.4", "linkify-html": "4.0.2", "linkify-react": "4.1.1", @@ -55,17 +55,18 @@ "pdfjs-dist": "3.10.111", "prismjs": "1.29.0", "prop-types": "15.8.1", - "react": "17.0.2", + "react": "18.2.0", "react-aria": "3.29.1", "react-autosize-textarea": "7.1.0", "react-blurhash": "0.2.0", - "react-dnd": "15.1.2", - "react-dnd-html5-backend": "15.1.3", - "react-dom": "17.0.2", + "react-dnd": "16.0.1", + "react-dnd-html5-backend": "16.0.1", + "react-dom": "18.2.0", "react-error-boundary": "4.0.10", "react-google-recaptcha": "2.1.0", "react-modal": "3.16.1", "react-range": "1.8.14", + "react-router-dom": "6.20.0", "sanitize-html": "2.8.0", "slate": "0.94.1", "slate-history": "0.93.0", @@ -81,13 +82,14 @@ "@types/file-saver": "2.0.5", "@types/node": "18.11.18", "@types/prismjs": "1.26.0", - "@types/react": "18.0.26", - "@types/react-dom": "18.0.9", + "@types/react": "18.2.39", + "@types/react-dom": "18.2.17", + "@types/react-google-recaptcha": "2.1.8", "@types/sanitize-html": "2.9.0", "@types/ua-parser-js": "0.7.36", "@typescript-eslint/eslint-plugin": "5.46.1", "@typescript-eslint/parser": "5.46.1", - "@vitejs/plugin-react": "3.0.0", + "@vitejs/plugin-react": "4.2.0", "buffer": "6.0.3", "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", @@ -100,7 +102,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "4.3.9", + "vite": "5.0.8", "vite-plugin-static-copy": "0.13.0" } } diff --git a/src/app/components/AuthFlowsLoader.tsx b/src/app/components/AuthFlowsLoader.tsx new file mode 100644 index 00000000..f21bad04 --- /dev/null +++ b/src/app/components/AuthFlowsLoader.tsx @@ -0,0 +1,64 @@ +import { ReactNode, useCallback, useEffect, useMemo } from 'react'; +import { MatrixError, createClient } from 'matrix-js-sdk'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { useAutoDiscoveryInfo } from '../hooks/useAutoDiscoveryInfo'; +import { promiseFulfilledResult, promiseRejectedResult } from '../utils/common'; +import { + AuthFlows, + RegisterFlowStatus, + RegisterFlowsResponse, + parseRegisterErrResp, +} from '../hooks/useAuthFlows'; + +type AuthFlowsLoaderProps = { + fallback?: () => ReactNode; + error?: (err: unknown) => ReactNode; + children: (authFlows: AuthFlows) => ReactNode; +}; +export function AuthFlowsLoader({ fallback, error, children }: AuthFlowsLoaderProps) { + const autoDiscoveryInfo = useAutoDiscoveryInfo(); + const baseUrl = autoDiscoveryInfo['m.homeserver'].base_url; + + const mx = useMemo(() => createClient({ baseUrl }), [baseUrl]); + + const [state, load] = useAsyncCallback( + useCallback(async () => { + const result = await Promise.allSettled([mx.loginFlows(), mx.registerRequest({})]); + const loginFlows = promiseFulfilledResult(result[0]); + const registerResp = promiseRejectedResult(result[1]) as MatrixError | undefined; + let registerFlows: RegisterFlowsResponse = { status: RegisterFlowStatus.InvalidRequest }; + + if (typeof registerResp === 'object' && registerResp.httpStatus) { + registerFlows = parseRegisterErrResp(registerResp); + } + + if (!loginFlows) { + throw new Error('Missing auth flow!'); + } + if ('errcode' in loginFlows) { + throw new Error('Failed to load auth flow!'); + } + + const authFlows: AuthFlows = { + loginFlows, + registerFlows, + }; + + return authFlows; + }, [mx]) + ); + + useEffect(() => { + load(); + }, [load]); + + if (state.status === AsyncStatus.Idle || state.status === AsyncStatus.Loading) { + return fallback?.(); + } + + if (state.status === AsyncStatus.Error) { + return error?.(state.error); + } + + return children(state.data); +} diff --git a/src/app/components/ClientConfigLoader.tsx b/src/app/components/ClientConfigLoader.tsx new file mode 100644 index 00000000..72d367c0 --- /dev/null +++ b/src/app/components/ClientConfigLoader.tsx @@ -0,0 +1,38 @@ +import { ReactNode, useCallback, useEffect, useState } from 'react'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { ClientConfig } from '../hooks/useClientConfig'; +import { trimTrailingSlash } from '../utils/common'; + +const getClientConfig = async (): Promise => { + const url = `${trimTrailingSlash(import.meta.env.BASE_URL)}/config.json`; + const config = await fetch(url, { method: 'GET' }); + return config.json(); +}; + +type ClientConfigLoaderProps = { + fallback?: () => ReactNode; + error?: (err: unknown, retry: () => void, ignore: () => void) => ReactNode; + children: (config: ClientConfig) => ReactNode; +}; +export function ClientConfigLoader({ fallback, error, children }: ClientConfigLoaderProps) { + const [state, load] = useAsyncCallback(getClientConfig); + const [ignoreError, setIgnoreError] = useState(false); + + const ignoreCallback = useCallback(() => setIgnoreError(true), []); + + useEffect(() => { + load(); + }, [load]); + + if (state.status === AsyncStatus.Idle || state.status === AsyncStatus.Loading) { + return fallback?.(); + } + + if (!ignoreError && state.status === AsyncStatus.Error) { + return error?.(state.error, load, ignoreCallback); + } + + const config: ClientConfig = state.status === AsyncStatus.Success ? state.data : {}; + + return children(config); +} diff --git a/src/app/components/ConfirmPasswordMatch.tsx b/src/app/components/ConfirmPasswordMatch.tsx new file mode 100644 index 00000000..bb50eb60 --- /dev/null +++ b/src/app/components/ConfirmPasswordMatch.tsx @@ -0,0 +1,35 @@ +import { ReactNode, RefObject, useCallback, useRef, useState } from 'react'; +import { useDebounce } from '../hooks/useDebounce'; + +type ConfirmPasswordMatchProps = { + initialValue: boolean; + children: ( + match: boolean, + doMatch: () => void, + passRef: RefObject, + confPassRef: RefObject + ) => ReactNode; +}; +export function ConfirmPasswordMatch({ initialValue, children }: ConfirmPasswordMatchProps) { + const [match, setMatch] = useState(initialValue); + const passRef = useRef(null); + const confPassRef = useRef(null); + + const doMatch = useDebounce( + useCallback(() => { + const pass = passRef.current?.value; + const confPass = confPassRef.current?.value; + if (!confPass) { + setMatch(initialValue); + return; + } + setMatch(pass === confPass); + }, [initialValue]), + { + wait: 500, + immediate: false, + } + ); + + return children(match, doMatch, passRef, confPassRef); +} diff --git a/src/app/components/SpecVersionsLoader.tsx b/src/app/components/SpecVersionsLoader.tsx new file mode 100644 index 00000000..56d7f8b0 --- /dev/null +++ b/src/app/components/SpecVersionsLoader.tsx @@ -0,0 +1,32 @@ +import { ReactNode, useCallback, useEffect } from 'react'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { SpecVersions, specVersions } from '../cs-api'; +import { useAutoDiscoveryInfo } from '../hooks/useAutoDiscoveryInfo'; + +type SpecVersionsLoaderProps = { + fallback?: () => ReactNode; + error?: (err: unknown) => ReactNode; + children: (versions: SpecVersions) => ReactNode; +}; +export function SpecVersionsLoader({ fallback, error, children }: SpecVersionsLoaderProps) { + const autoDiscoveryInfo = useAutoDiscoveryInfo(); + const baseUrl = autoDiscoveryInfo['m.homeserver'].base_url; + + const [state, load] = useAsyncCallback( + useCallback(() => specVersions(fetch, baseUrl), [baseUrl]) + ); + + useEffect(() => { + load(); + }, [load]); + + if (state.status === AsyncStatus.Idle || state.status === AsyncStatus.Loading) { + return fallback?.(); + } + + if (state.status === AsyncStatus.Error) { + return error?.(state.error); + } + + return children(state.data); +} diff --git a/src/app/components/SupportedUIAFlowsLoader.tsx b/src/app/components/SupportedUIAFlowsLoader.tsx new file mode 100644 index 00000000..442eb572 --- /dev/null +++ b/src/app/components/SupportedUIAFlowsLoader.tsx @@ -0,0 +1,17 @@ +import { ReactNode } from 'react'; +import { UIAFlow } from 'matrix-js-sdk'; +import { useSupportedUIAFlows } from '../hooks/useUIAFlows'; + +export function SupportedUIAFlowsLoader({ + flows, + supportedStages, + children, +}: { + supportedStages: string[]; + flows: UIAFlow[]; + children: (supportedFlows: UIAFlow[]) => ReactNode; +}) { + const supportedFlows = useSupportedUIAFlows(flows, supportedStages); + + return children(supportedFlows); +} diff --git a/src/app/components/UIAFlowOverlay.tsx b/src/app/components/UIAFlowOverlay.tsx new file mode 100644 index 00000000..f788eb0f --- /dev/null +++ b/src/app/components/UIAFlowOverlay.tsx @@ -0,0 +1,72 @@ +import React, { ReactNode } from 'react'; +import { + Overlay, + OverlayBackdrop, + Box, + config, + Text, + TooltipProvider, + Tooltip, + Icons, + Icon, + Chip, + IconButton, +} from 'folds'; +import FocusTrap from 'focus-trap-react'; + +export type UIAFlowOverlayProps = { + currentStep: number; + stepCount: number; + children: ReactNode; + onCancel: () => void; +}; +export function UIAFlowOverlay({ + currentStep, + stepCount, + children, + onCancel, +}: UIAFlowOverlayProps) { + return ( + }> + + + + {children} + + + + {`Step ${currentStep}/${stepCount}`} + + + Exit + + } + position="Top" + > + {(anchorRef) => ( + + + + )} + + + + + + ); +} diff --git a/src/app/components/password-input/PasswordInput.tsx b/src/app/components/password-input/PasswordInput.tsx new file mode 100644 index 00000000..184a097c --- /dev/null +++ b/src/app/components/password-input/PasswordInput.tsx @@ -0,0 +1,45 @@ +import React, { ComponentProps, forwardRef } from 'react'; +import { Icon, IconButton, Input, config, Icons } from 'folds'; +import { UseStateProvider } from '../UseStateProvider'; + +type PasswordInputProps = Omit, 'type' | 'size'> & { + size: '400' | '500'; +}; +export const PasswordInput = forwardRef( + ({ variant, size, style, after, ...props }, ref) => { + const paddingRight: string = size === '500' ? config.space.S300 : config.space.S200; + + return ( + + {(visible, setVisible) => ( + + {after} + setVisible(!visible)} + type="button" + variant={visible ? 'Warning' : variant} + size="300" + radii="300" + > + + + + } + /> + )} + + ); + } +); diff --git a/src/app/components/splash-screen/SplashScreen.css.ts b/src/app/components/splash-screen/SplashScreen.css.ts new file mode 100644 index 00000000..bd3c300a --- /dev/null +++ b/src/app/components/splash-screen/SplashScreen.css.ts @@ -0,0 +1,12 @@ +import { style } from '@vanilla-extract/css'; +import { color, config } from 'folds'; + +export const SplashScreen = style({ + minHeight: '100%', + backgroundColor: color.Background.Container, + color: color.Background.OnContainer, +}); + +export const SplashScreenFooter = style({ + padding: config.space.S400, +}); diff --git a/src/app/components/splash-screen/SplashScreen.tsx b/src/app/components/splash-screen/SplashScreen.tsx new file mode 100644 index 00000000..27adadba --- /dev/null +++ b/src/app/components/splash-screen/SplashScreen.tsx @@ -0,0 +1,29 @@ +import { Box, Text } from 'folds'; +import React, { ReactNode } from 'react'; +import classNames from 'classnames'; +import * as patternsCSS from '../../styles/Patterns.css'; +import * as css from './SplashScreen.css'; + +type SplashScreenProps = { + children: ReactNode; +}; +export function SplashScreen({ children }: SplashScreenProps) { + return ( + + {children} + + + Cinny + + + + ); +} diff --git a/src/app/components/splash-screen/index.ts b/src/app/components/splash-screen/index.ts new file mode 100644 index 00000000..e3e5dd34 --- /dev/null +++ b/src/app/components/splash-screen/index.ts @@ -0,0 +1 @@ +export * from './SplashScreen'; diff --git a/src/app/components/uia-stages/DummyStage.tsx b/src/app/components/uia-stages/DummyStage.tsx new file mode 100644 index 00000000..7e0f8586 --- /dev/null +++ b/src/app/components/uia-stages/DummyStage.tsx @@ -0,0 +1,65 @@ +import React, { useEffect, useCallback } from 'react'; +import { Dialog, Text, Box, Button, config } from 'folds'; +import { AuthType } from 'matrix-js-sdk'; +import { StageComponentProps } from './types'; + +function DummyErrorDialog({ + title, + message, + onRetry, + onCancel, +}: { + title: string; + message: string; + onRetry: () => void; + onCancel: () => void; +}) { + return ( + + + + {title} + {message} + + + + + + ); +} + +export function AutoDummyStageDialog({ stageData, submitAuthDict, onCancel }: StageComponentProps) { + const { errorCode, error, session } = stageData; + + const handleSubmit = useCallback(() => { + submitAuthDict({ + type: AuthType.Dummy, + session, + }); + }, [session, submitAuthDict]); + + useEffect(() => { + if (!errorCode) handleSubmit(); + }, [handleSubmit, errorCode]); + + if (errorCode) { + return ( + + ); + } + + return null; +} diff --git a/src/app/components/uia-stages/EmailStage.tsx b/src/app/components/uia-stages/EmailStage.tsx new file mode 100644 index 00000000..fdc2b61a --- /dev/null +++ b/src/app/components/uia-stages/EmailStage.tsx @@ -0,0 +1,172 @@ +import React, { useEffect, useCallback, FormEventHandler } from 'react'; +import { Dialog, Text, Box, Button, config, Input, color, Spinner } from 'folds'; +import { AuthType, MatrixError } from 'matrix-js-sdk'; +import { StageComponentProps } from './types'; +import { AsyncState, AsyncStatus } from '../../hooks/useAsyncCallback'; +import { RequestEmailTokenCallback, RequestEmailTokenResponse } from '../../hooks/types'; + +function EmailErrorDialog({ + title, + message, + defaultEmail, + onRetry, + onCancel, +}: { + title: string; + message: string; + defaultEmail?: string; + onRetry: (email: string) => void; + onCancel: () => void; +}) { + const handleFormSubmit: FormEventHandler = (evt) => { + evt.preventDefault(); + const { retryEmailInput } = evt.target as HTMLFormElement & { + retryEmailInput: HTMLInputElement; + }; + const t = retryEmailInput.value; + onRetry(t); + }; + + return ( + + + + {title} + {message} + + Email + + + + + + + + ); +} + +export function EmailStageDialog({ + email, + clientSecret, + stageData, + emailTokenState, + requestEmailToken, + submitAuthDict, + onCancel, +}: StageComponentProps & { + email?: string; + clientSecret: string; + emailTokenState: AsyncState; + requestEmailToken: RequestEmailTokenCallback; +}) { + const { errorCode, error, session } = stageData; + + const handleSubmit = useCallback( + (sessionId: string) => { + const threepIDCreds = { + sid: sessionId, + client_secret: clientSecret, + }; + submitAuthDict({ + type: AuthType.Email, + threepid_creds: threepIDCreds, + threepidCreds: threepIDCreds, + session, + }); + }, + [submitAuthDict, session, clientSecret] + ); + + const handleEmailSubmit = useCallback( + (userEmail: string) => { + requestEmailToken(userEmail, clientSecret); + }, + [clientSecret, requestEmailToken] + ); + + useEffect(() => { + if (email && !errorCode && emailTokenState.status === AsyncStatus.Idle) { + requestEmailToken(email, clientSecret); + } + }, [email, errorCode, clientSecret, emailTokenState, requestEmailToken]); + + if (emailTokenState.status === AsyncStatus.Loading) { + return ( + + + Sending verification email... + + ); + } + + if (emailTokenState.status === AsyncStatus.Error) { + return ( + + ); + } + + if (emailTokenState.status === AsyncStatus.Success) { + return ( + + + + Verification Request Sent + {`Please check your email "${emailTokenState.data.email}" and validate before continuing further.`} + + {errorCode && ( + {`${errorCode}: ${error}`} + )} + + + + + ); + } + + if (!email) { + return ( + + ); + } + + return null; +} diff --git a/src/app/components/uia-stages/ReCaptchaStage.tsx b/src/app/components/uia-stages/ReCaptchaStage.tsx new file mode 100644 index 00000000..68b3fcf4 --- /dev/null +++ b/src/app/components/uia-stages/ReCaptchaStage.tsx @@ -0,0 +1,64 @@ +import React from 'react'; +import { Dialog, Text, Box, Button, config } from 'folds'; +import { AuthType } from 'matrix-js-sdk'; +import ReCAPTCHA from 'react-google-recaptcha'; +import { StageComponentProps } from './types'; + +function ReCaptchaErrorDialog({ + title, + message, + onCancel, +}: { + title: string; + message: string; + onCancel: () => void; +}) { + return ( + + + + {title} + {message} + + + + + ); +} + +export function ReCaptchaStageDialog({ stageData, submitAuthDict, onCancel }: StageComponentProps) { + const { info, session } = stageData; + + const publicKey = info?.public_key; + + const handleChange = (token: string | null) => { + submitAuthDict({ + type: AuthType.Recaptcha, + response: token, + session, + }); + }; + + if (typeof publicKey !== 'string' || !session) { + return ( + + ); + } + + return ( + + + Please check the box below to proceed. + + + + ); +} diff --git a/src/app/components/uia-stages/RegistrationTokenStage.tsx b/src/app/components/uia-stages/RegistrationTokenStage.tsx new file mode 100644 index 00000000..ed8a3045 --- /dev/null +++ b/src/app/components/uia-stages/RegistrationTokenStage.tsx @@ -0,0 +1,117 @@ +import React, { useEffect, useCallback, FormEventHandler } from 'react'; +import { Dialog, Text, Box, Button, config, Input } from 'folds'; +import { AuthType } from 'matrix-js-sdk'; +import { StageComponentProps } from './types'; + +function RegistrationTokenErrorDialog({ + title, + message, + defaultToken, + onRetry, + onCancel, +}: { + title: string; + message: string; + defaultToken?: string; + onRetry: (token: string) => void; + onCancel: () => void; +}) { + const handleFormSubmit: FormEventHandler = (evt) => { + evt.preventDefault(); + const { retryTokenInput } = evt.target as HTMLFormElement & { + retryTokenInput: HTMLInputElement; + }; + const t = retryTokenInput.value; + onRetry(t); + }; + + return ( + + + + {title} + {message} + + Registration Token + + + + + + + + ); +} + +export function RegistrationTokenStageDialog({ + token, + stageData, + submitAuthDict, + onCancel, +}: StageComponentProps & { + token?: string; +}) { + const { errorCode, error, session } = stageData; + + const handleSubmit = useCallback( + (t: string) => { + submitAuthDict({ + type: AuthType.RegistrationToken, + token: t, + session, + }); + }, + [session, submitAuthDict] + ); + + useEffect(() => { + if (token && !errorCode) handleSubmit(token); + }, [handleSubmit, token, errorCode]); + + if (errorCode) { + return ( + + ); + } + + if (!token) { + return ( + + ); + } + + return null; +} diff --git a/src/app/components/uia-stages/TermsStage.tsx b/src/app/components/uia-stages/TermsStage.tsx new file mode 100644 index 00000000..f6977053 --- /dev/null +++ b/src/app/components/uia-stages/TermsStage.tsx @@ -0,0 +1,69 @@ +import React, { useEffect, useCallback } from 'react'; +import { Dialog, Text, Box, Button, config } from 'folds'; +import { AuthType } from 'matrix-js-sdk'; +import { StageComponentProps } from './types'; + +function TermsErrorDialog({ + title, + message, + onRetry, + onCancel, +}: { + title: string; + message: string; + onRetry: () => void; + onCancel: () => void; +}) { + return ( + + + + {title} + {message} + + + + + + ); +} + +export function AutoTermsStageDialog({ stageData, submitAuthDict, onCancel }: StageComponentProps) { + const { errorCode, error, session } = stageData; + + const handleSubmit = useCallback( + () => + submitAuthDict({ + type: AuthType.Terms, + session, + }), + [session, submitAuthDict] + ); + + useEffect(() => { + if (!errorCode) { + handleSubmit(); + } + }, [session, errorCode, handleSubmit]); + + if (errorCode) { + return ( + + ); + } + + return null; +} diff --git a/src/app/components/uia-stages/index.ts b/src/app/components/uia-stages/index.ts new file mode 100644 index 00000000..95c19a79 --- /dev/null +++ b/src/app/components/uia-stages/index.ts @@ -0,0 +1,6 @@ +export * from './types'; +export * from './DummyStage'; +export * from './EmailStage'; +export * from './ReCaptchaStage'; +export * from './RegistrationTokenStage'; +export * from './TermsStage'; diff --git a/src/app/components/uia-stages/types.ts b/src/app/components/uia-stages/types.ts new file mode 100644 index 00000000..cc6674c5 --- /dev/null +++ b/src/app/components/uia-stages/types.ts @@ -0,0 +1,8 @@ +import { AuthDict } from 'matrix-js-sdk'; +import { AuthStageData } from '../../hooks/useUIAFlows'; + +export type StageComponentProps = { + stageData: AuthStageData; + submitAuthDict: (authDict: AuthDict) => void; + onCancel: () => void; +}; diff --git a/src/app/cs-api.ts b/src/app/cs-api.ts new file mode 100644 index 00000000..b9c67719 --- /dev/null +++ b/src/app/cs-api.ts @@ -0,0 +1,115 @@ +import to from 'await-to-js'; +import { trimTrailingSlash } from './utils/common'; + +export enum AutoDiscoveryAction { + PROMPT = 'PROMPT', + IGNORE = 'IGNORE', + FAIL_PROMPT = 'FAIL_PROMPT', + FAIL_ERROR = 'FAIL_ERROR', +} + +export type AutoDiscoveryError = { + host: string; + action: AutoDiscoveryAction; +}; + +export type AutoDiscoveryInfo = Record & { + 'm.homeserver': { + base_url: string; + }; + 'm.identity_server'?: { + base_url: string; + }; +}; + +export const autoDiscovery = async ( + request: typeof fetch, + server: string +): Promise<[AutoDiscoveryError, undefined] | [undefined, AutoDiscoveryInfo]> => { + const host = /^https?:\/\//.test(server) ? trimTrailingSlash(server) : `https://${server}`; + const autoDiscoveryUrl = `${host}/.well-known/matrix/client`; + + const [err, response] = await to(request(autoDiscoveryUrl, { method: 'GET' })); + + if (err || response.status === 404) { + // AutoDiscoveryAction.IGNORE + // We will use default value for IGNORE action + return [ + undefined, + { + 'm.homeserver': { + base_url: host, + }, + }, + ]; + } + if (response.status !== 200) { + return [ + { + host, + action: AutoDiscoveryAction.FAIL_PROMPT, + }, + undefined, + ]; + } + + const [contentErr, content] = await to(response.json()); + + if (contentErr || typeof content !== 'object') { + return [ + { + host, + action: AutoDiscoveryAction.FAIL_PROMPT, + }, + undefined, + ]; + } + + const baseUrl = content['m.homeserver']?.base_url; + if (typeof baseUrl !== 'string') { + return [ + { + host, + action: AutoDiscoveryAction.FAIL_PROMPT, + }, + undefined, + ]; + } + + if (/^https?:\/\//.test(baseUrl) === false) { + return [ + { + host, + action: AutoDiscoveryAction.FAIL_ERROR, + }, + undefined, + ]; + } + + content['m.homeserver'].base_url = trimTrailingSlash(baseUrl); + if (content['m.identity_server']) { + content['m.identity_server'].base_url = trimTrailingSlash( + content['m.identity_server'].base_url + ); + } + + return [undefined, content]; +}; + +export type SpecVersions = { + versions: string[]; + unstable_features?: Record; +}; +export const specVersions = async ( + request: typeof fetch, + baseUrl: string +): Promise => { + const res = await request(`${baseUrl}/_matrix/client/versions`); + + const data = (await res.json()) as unknown; + + if (data && typeof data === 'object' && 'versions' in data && Array.isArray(data.versions)) { + return data as SpecVersions; + } + throw new Error('Homeserver URL does not appear to be a valid Matrix homeserver'); +}; diff --git a/src/app/cs-errorcode.ts b/src/app/cs-errorcode.ts new file mode 100644 index 00000000..6c21d670 --- /dev/null +++ b/src/app/cs-errorcode.ts @@ -0,0 +1,37 @@ +export enum ErrorCode { + M_FORBIDDEN = 'M_FORBIDDEN', + M_UNKNOWN_TOKEN = 'M_UNKNOWN_TOKEN', + M_MISSING_TOKEN = 'M_MISSING_TOKEN', + M_BAD_JSON = 'M_BAD_JSON', + M_NOT_JSON = 'M_NOT_JSON', + M_NOT_FOUND = 'M_NOT_FOUND', + M_LIMIT_EXCEEDED = 'M_LIMIT_EXCEEDED', + M_UNRECOGNIZED = 'M_UNRECOGNIZED', + M_UNKNOWN = 'M_UNKNOWN', + + M_UNAUTHORIZED = 'M_UNAUTHORIZED', + M_USER_DEACTIVATED = 'M_USER_DEACTIVATED', + M_USER_IN_USE = 'M_USER_IN_USE', + M_INVALID_USERNAME = 'M_INVALID_USERNAME', + M_WEAK_PASSWORD = 'M_WEAK_PASSWORD', + M_PASSWORD_TOO_SHORT = 'M_PASSWORD_TOO_SHORT', + M_ROOM_IN_USE = 'M_ROOM_IN_USE', + M_INVALID_ROOM_STATE = 'M_INVALID_ROOM_STATE', + M_THREEPID_IN_USE = 'M_THREEPID_IN_USE', + M_THREEPID_NOT_FOUND = 'M_THREEPID_NOT_FOUND', + M_THREEPID_AUTH_FAILED = 'M_THREEPID_AUTH_FAILED', + M_THREEPID_DENIED = 'M_THREEPID_DENIED', + M_SERVER_NOT_TRUSTED = 'M_SERVER_NOT_TRUSTED', + M_UNSUPPORTED_ROOM_VERSION = 'M_UNSUPPORTED_ROOM_VERSION', + M_INCOMPATIBLE_ROOM_VERSION = 'M_INCOMPATIBLE_ROOM_VERSION', + M_BAD_STATE = 'M_BAD_STATE', + M_GUEST_ACCESS_FORBIDDEN = 'M_GUEST_ACCESS_FORBIDDEN', + M_CAPTCHA_NEEDED = 'M_CAPTCHA_NEEDED', + M_CAPTCHA_INVALID = 'M_CAPTCHA_INVALID', + M_MISSING_PARAM = 'M_MISSING_PARAM', + M_INVALID_PARAM = 'M_INVALID_PARAM', + M_TOO_LARGE = 'M_TOO_LARGE', + M_EXCLUSIVE = 'M_EXCLUSIVE', + M_RESOURCE_LIMIT_EXCEEDED = 'M_RESOURCE_LIMIT_EXCEEDED', + M_CANNOT_LEAVE_SERVER_NOTICE_ROOM = 'M_CANNOT_LEAVE_SERVER_NOTICE_ROOM', +} diff --git a/src/app/hooks/types.ts b/src/app/hooks/types.ts new file mode 100644 index 00000000..9aac2b31 --- /dev/null +++ b/src/app/hooks/types.ts @@ -0,0 +1,12 @@ +import { IRequestTokenResponse } from 'matrix-js-sdk'; + +export type RequestEmailTokenResponse = { + email: string; + clientSecret: string; + result: IRequestTokenResponse; +}; +export type RequestEmailTokenCallback = ( + email: string, + clientSecret: string, + nextLink?: string +) => Promise; diff --git a/src/app/hooks/useAsyncCallback.ts b/src/app/hooks/useAsyncCallback.ts index 18b63ecc..fc7dca63 100644 --- a/src/app/hooks/useAsyncCallback.ts +++ b/src/app/hooks/useAsyncCallback.ts @@ -1,4 +1,5 @@ -import { useCallback, useState } from 'react'; +import { useCallback, useRef, useState } from 'react'; +import { flushSync } from 'react-dom'; import { useAlive } from './useAlive'; export enum AsyncStatus { @@ -16,36 +17,56 @@ export type AsyncLoading = { status: AsyncStatus.Loading; }; -export type AsyncSuccess = { +export type AsyncSuccess = { status: AsyncStatus.Success; - data: T; + data: D; }; -export type AsyncError = { +export type AsyncError = { status: AsyncStatus.Error; - error: unknown; + error: E; }; -export type AsyncState = AsyncIdle | AsyncLoading | AsyncSuccess | AsyncError; +export type AsyncState = AsyncIdle | AsyncLoading | AsyncSuccess | AsyncError; export type AsyncCallback = (...args: TArgs) => Promise; -export const useAsyncCallback = ( +export const useAsyncCallback = ( asyncCallback: AsyncCallback -): [AsyncState, AsyncCallback] => { - const [state, setState] = useState>({ +): [AsyncState, AsyncCallback] => { + const [state, setState] = useState>({ status: AsyncStatus.Idle, }); const alive = useAlive(); + // Tracks the request number. + // If two or more requests are made subsequently + // we will throw all old request's response after they resolved. + const reqNumberRef = useRef(0); + const callback: AsyncCallback = useCallback( async (...args) => { - setState({ - status: AsyncStatus.Loading, + queueMicrotask(() => { + // Warning: flushSync was called from inside a lifecycle method. + // React cannot flush when React is already rendering. + // Consider moving this call to a scheduler task or micro task. + flushSync(() => { + // flushSync because + // https://github.com/facebook/react/issues/26713#issuecomment-1872085134 + setState({ + status: AsyncStatus.Loading, + }); + }); }); + reqNumberRef.current += 1; + + const currentReqNumber = reqNumberRef.current; try { const data = await asyncCallback(...args); + if (currentReqNumber !== reqNumberRef.current) { + throw new Error('AsyncCallbackHook: Request replaced!'); + } if (alive()) { setState({ status: AsyncStatus.Success, @@ -54,10 +75,13 @@ export const useAsyncCallback = ( } return data; } catch (e) { + if (currentReqNumber !== reqNumberRef.current) { + throw new Error('AsyncCallbackHook: Request replaced!'); + } if (alive()) { setState({ status: AsyncStatus.Error, - error: e, + error: e as TError, }); } throw e; diff --git a/src/app/hooks/useAuthFlows.ts b/src/app/hooks/useAuthFlows.ts new file mode 100644 index 00000000..7bb7ddc5 --- /dev/null +++ b/src/app/hooks/useAuthFlows.ts @@ -0,0 +1,59 @@ +import { createContext, useContext } from 'react'; +import { IAuthData, MatrixError } from 'matrix-js-sdk'; +import { ILoginFlowsResponse } from 'matrix-js-sdk/lib/@types/auth'; + +export enum RegisterFlowStatus { + FlowRequired = 401, + InvalidRequest = 400, + RegistrationDisabled = 403, + RateLimited = 429, +} + +export type RegisterFlowsResponse = + | { + status: RegisterFlowStatus.FlowRequired; + data: IAuthData; + } + | { + status: Exclude; + }; + +export const parseRegisterErrResp = (matrixError: MatrixError): RegisterFlowsResponse => { + switch (matrixError.httpStatus) { + case RegisterFlowStatus.InvalidRequest: { + return { status: RegisterFlowStatus.InvalidRequest }; + } + case RegisterFlowStatus.RateLimited: { + return { status: RegisterFlowStatus.RateLimited }; + } + case RegisterFlowStatus.RegistrationDisabled: { + return { status: RegisterFlowStatus.RegistrationDisabled }; + } + case RegisterFlowStatus.FlowRequired: { + return { + status: RegisterFlowStatus.FlowRequired, + data: matrixError.data as IAuthData, + }; + } + default: { + return { status: RegisterFlowStatus.InvalidRequest }; + } + } +}; + +export type AuthFlows = { + loginFlows: ILoginFlowsResponse; + registerFlows: RegisterFlowsResponse; +}; + +const AuthFlowsContext = createContext(null); + +export const AuthFlowsProvider = AuthFlowsContext.Provider; + +export const useAuthFlows = (): AuthFlows => { + const authFlows = useContext(AuthFlowsContext); + if (!authFlows) { + throw new Error('Auth Flow info is not loaded!'); + } + return authFlows; +}; diff --git a/src/app/hooks/useAuthServer.ts b/src/app/hooks/useAuthServer.ts new file mode 100644 index 00000000..f77566f5 --- /dev/null +++ b/src/app/hooks/useAuthServer.ts @@ -0,0 +1,14 @@ +import { createContext, useContext } from 'react'; + +const AuthServerContext = createContext(null); + +export const AuthServerProvider = AuthServerContext.Provider; + +export const useAuthServer = (): string => { + const server = useContext(AuthServerContext); + if (server === null) { + throw new Error('Auth server is not provided!'); + } + + return server; +}; diff --git a/src/app/hooks/useAutoDiscoveryInfo.ts b/src/app/hooks/useAutoDiscoveryInfo.ts new file mode 100644 index 00000000..b2f8bcb5 --- /dev/null +++ b/src/app/hooks/useAutoDiscoveryInfo.ts @@ -0,0 +1,15 @@ +import { createContext, useContext } from 'react'; +import { AutoDiscoveryInfo } from '../cs-api'; + +const AutoDiscoverInfoContext = createContext(null); + +export const AutoDiscoveryInfoProvider = AutoDiscoverInfoContext.Provider; + +export const useAutoDiscoveryInfo = (): AutoDiscoveryInfo => { + const autoDiscoveryInfo = useContext(AutoDiscoverInfoContext); + if (!autoDiscoveryInfo) { + throw new Error('Auto Discovery Info not loaded'); + } + + return autoDiscoveryInfo; +}; diff --git a/src/app/hooks/useClientConfig.ts b/src/app/hooks/useClientConfig.ts new file mode 100644 index 00000000..8406668d --- /dev/null +++ b/src/app/hooks/useClientConfig.ts @@ -0,0 +1,33 @@ +import { createContext, useContext } from 'react'; + +export type ClientConfig = { + defaultHomeserver?: number; + homeserverList?: string[]; + allowCustomHomeservers?: boolean; + + hashRouter?: { + enabled?: boolean; + basename?: string; + }; +}; + +const ClientConfigContext = createContext(null); + +export const ClientConfigProvider = ClientConfigContext.Provider; + +export function useClientConfig(): ClientConfig { + const config = useContext(ClientConfigContext); + if (!config) throw new Error('Client config are not provided!'); + return config; +} + +export const clientDefaultServer = (clientConfig: ClientConfig): string => + clientConfig.homeserverList?.[clientConfig.defaultHomeserver ?? 0] ?? 'matrix.org'; + +export const clientAllowedServer = (clientConfig: ClientConfig, server: string): boolean => { + const { homeserverList, allowCustomHomeservers } = clientConfig; + + if (allowCustomHomeservers) return true; + + return homeserverList?.includes(server) === true; +}; diff --git a/src/app/hooks/useCrossSigningStatus.js b/src/app/hooks/useCrossSigningStatus.js index 61b69d1d..845c5462 100644 --- a/src/app/hooks/useCrossSigningStatus.js +++ b/src/app/hooks/useCrossSigningStatus.js @@ -9,7 +9,7 @@ export function useCrossSigningStatus() { const [isCSEnabled, setIsCSEnabled] = useState(hasCrossSigningAccountData()); useEffect(() => { - if (isCSEnabled) return null; + if (isCSEnabled) return undefined; const handleAccountData = (event) => { if (event.getType() === 'm.cross_signing.master') { setIsCSEnabled(true); diff --git a/src/app/hooks/useParsedLoginFlows.ts b/src/app/hooks/useParsedLoginFlows.ts new file mode 100644 index 00000000..14ecfb9d --- /dev/null +++ b/src/app/hooks/useParsedLoginFlows.ts @@ -0,0 +1,38 @@ +import { useMemo } from 'react'; +import { ILoginFlow, IPasswordFlow, ISSOFlow, LoginFlow } from 'matrix-js-sdk/lib/@types/auth'; +import { WithRequiredProp } from '../../types/utils'; + +export type Required_SSOFlow = WithRequiredProp; +export const getSSOFlow = (loginFlows: LoginFlow[]): Required_SSOFlow | undefined => + loginFlows.find( + (flow) => + (flow.type === 'm.login.sso' || flow.type === 'm.login.cas') && + 'identity_providers' in flow && + Array.isArray(flow.identity_providers) && + flow.identity_providers.length > 0 + ) as Required_SSOFlow | undefined; + +export const getPasswordFlow = (loginFlows: LoginFlow[]): IPasswordFlow | undefined => + loginFlows.find((flow) => flow.type === 'm.login.password') as IPasswordFlow; +export const getTokenFlow = (loginFlows: LoginFlow[]): LoginFlow | undefined => + loginFlows.find((flow) => flow.type === 'm.login.token') as ILoginFlow & { + type: 'm.login.token'; + }; + +export type ParsedLoginFlows = { + password?: LoginFlow; + token?: LoginFlow; + sso?: Required_SSOFlow; +}; +export const useParsedLoginFlows = (loginFlows: LoginFlow[]) => { + const parsedFlow: ParsedLoginFlows = useMemo( + () => ({ + password: getPasswordFlow(loginFlows), + token: getTokenFlow(loginFlows), + sso: getSSOFlow(loginFlows), + }), + [loginFlows] + ); + + return parsedFlow; +}; diff --git a/src/app/hooks/usePasswordEmail.ts b/src/app/hooks/usePasswordEmail.ts new file mode 100644 index 00000000..37e96433 --- /dev/null +++ b/src/app/hooks/usePasswordEmail.ts @@ -0,0 +1,32 @@ +import { MatrixClient, MatrixError } from 'matrix-js-sdk'; +import { useCallback, useRef } from 'react'; +import { AsyncState, useAsyncCallback } from './useAsyncCallback'; +import { RequestEmailTokenCallback, RequestEmailTokenResponse } from './types'; + +export const usePasswordEmail = ( + mx: MatrixClient +): [AsyncState, RequestEmailTokenCallback] => { + const sendAttemptRef = useRef(1); + + const passwordEmailCallback: RequestEmailTokenCallback = useCallback( + async (email, clientSecret, nextLink) => { + const sendAttempt = sendAttemptRef.current; + sendAttemptRef.current += 1; + const result = await mx.requestPasswordEmailToken(email, clientSecret, sendAttempt, nextLink); + return { + email, + clientSecret, + result, + }; + }, + [mx] + ); + + const [passwordEmailState, passwordEmail] = useAsyncCallback< + RequestEmailTokenResponse, + MatrixError, + Parameters + >(passwordEmailCallback); + + return [passwordEmailState, passwordEmail]; +}; diff --git a/src/app/hooks/usePathWithOrigin.ts b/src/app/hooks/usePathWithOrigin.ts new file mode 100644 index 00000000..4430d06c --- /dev/null +++ b/src/app/hooks/usePathWithOrigin.ts @@ -0,0 +1,26 @@ +import { useMemo } from 'react'; +import { useClientConfig } from './useClientConfig'; +import { trimLeadingSlash, trimSlash, trimTrailingSlash } from '../utils/common'; + +export const usePathWithOrigin = (path: string): string => { + const { hashRouter } = useClientConfig(); + const { origin } = window.location; + + const pathWithOrigin = useMemo(() => { + let url: string = trimSlash(origin); + + url += `/${trimSlash(import.meta.env.BASE_URL ?? '')}`; + url = trimTrailingSlash(url); + + if (hashRouter?.enabled) { + url += `/#/${trimSlash(hashRouter.basename ?? '')}`; + url = trimTrailingSlash(url); + } + + url += `/${trimLeadingSlash(path)}`; + + return url; + }, [path, hashRouter, origin]); + + return pathWithOrigin; +}; diff --git a/src/app/hooks/useRegisterEmail.ts b/src/app/hooks/useRegisterEmail.ts new file mode 100644 index 00000000..d29c9e6d --- /dev/null +++ b/src/app/hooks/useRegisterEmail.ts @@ -0,0 +1,32 @@ +import { MatrixClient, MatrixError } from 'matrix-js-sdk'; +import { useCallback, useRef } from 'react'; +import { AsyncState, useAsyncCallback } from './useAsyncCallback'; +import { RequestEmailTokenCallback, RequestEmailTokenResponse } from './types'; + +export const useRegisterEmail = ( + mx: MatrixClient +): [AsyncState, RequestEmailTokenCallback] => { + const sendAttemptRef = useRef(1); + + const registerEmailCallback: RequestEmailTokenCallback = useCallback( + async (email, clientSecret, nextLink) => { + const sendAttempt = sendAttemptRef.current; + sendAttemptRef.current += 1; + const result = await mx.requestRegisterEmailToken(email, clientSecret, sendAttempt, nextLink); + return { + email, + clientSecret, + result, + }; + }, + [mx] + ); + + const [registerEmailState, registerEmail] = useAsyncCallback< + RequestEmailTokenResponse, + MatrixError, + Parameters + >(registerEmailCallback); + + return [registerEmailState, registerEmail]; +}; diff --git a/src/app/hooks/useSpecVersions.ts b/src/app/hooks/useSpecVersions.ts new file mode 100644 index 00000000..42403c61 --- /dev/null +++ b/src/app/hooks/useSpecVersions.ts @@ -0,0 +1,12 @@ +import { createContext, useContext } from 'react'; +import { SpecVersions } from '../cs-api'; + +const SpecVersionsContext = createContext(null); + +export const SpecVersionsProvider = SpecVersionsContext.Provider; + +export function useSpecVersions(): SpecVersions { + const versions = useContext(SpecVersionsContext); + if (!versions) throw new Error('Server versions are not provided!'); + return versions; +} diff --git a/src/app/hooks/useUIAFlows.ts b/src/app/hooks/useUIAFlows.ts new file mode 100644 index 00000000..22acd6ba --- /dev/null +++ b/src/app/hooks/useUIAFlows.ts @@ -0,0 +1,96 @@ +import { AuthType, IAuthData, UIAFlow } from 'matrix-js-sdk'; +import { useCallback, useMemo } from 'react'; +import { + getSupportedUIAFlows, + getUIACompleted, + getUIAError, + getUIAErrorCode, + getUIAParams, + getUIASession, +} from '../utils/matrix-uia'; + +export const SUPPORTED_FLOW_TYPES = [ + AuthType.Dummy, + AuthType.Password, + AuthType.Email, + AuthType.Terms, + AuthType.Recaptcha, + AuthType.RegistrationToken, +] as const; + +export const useSupportedUIAFlows = (uiaFlows: UIAFlow[], supportedStages: string[]): UIAFlow[] => + useMemo(() => getSupportedUIAFlows(uiaFlows, supportedStages), [uiaFlows, supportedStages]); + +export const useUIACompleted = (authData: IAuthData): string[] => + useMemo(() => getUIACompleted(authData), [authData]); + +export const useUIAParams = (authData: IAuthData) => + useMemo(() => getUIAParams(authData), [authData]); + +export const useUIASession = (authData: IAuthData) => + useMemo(() => getUIASession(authData), [authData]); + +export const useUIAErrorCode = (authData: IAuthData) => + useMemo(() => getUIAErrorCode(authData), [authData]); + +export const useUIAError = (authData: IAuthData) => + useMemo(() => getUIAError(authData), [authData]); + +export type StageInfo = Record; +export type AuthStageData = { + type: string; + info?: StageInfo; + session?: string; + errorCode?: string; + error?: string; +}; +export type AuthStageDataGetter = () => AuthStageData | undefined; + +export type UIAFlowInterface = { + getStageToComplete: AuthStageDataGetter; + hasStage: (stageType: string) => boolean; + getStageInfo: (stageType: string) => StageInfo | undefined; +}; +export const useUIAFlow = (authData: IAuthData, uiaFlow: UIAFlow): UIAFlowInterface => { + const completed = useUIACompleted(authData); + const params = useUIAParams(authData); + const session = useUIASession(authData); + const errorCode = useUIAErrorCode(authData); + const error = useUIAError(authData); + + const getStageToComplete: AuthStageDataGetter = useCallback(() => { + const { stages } = uiaFlow; + const nextStage = stages.find((stage) => !completed.includes(stage)); + if (!nextStage) return undefined; + + const info = params[nextStage]; + + return { + type: nextStage, + info, + session, + errorCode, + error, + }; + }, [uiaFlow, completed, params, errorCode, error, session]); + + const hasStage = useCallback( + (stageType: string): boolean => uiaFlow.stages.includes(stageType), + [uiaFlow] + ); + + const getStageInfo = useCallback( + (stageType: string): StageInfo | undefined => { + if (!hasStage(stageType)) return undefined; + + return params[stageType]; + }, + [hasStage, params] + ); + + return { + getStageToComplete, + hasStage, + getStageInfo, + }; +}; diff --git a/src/app/molecules/room-aliases/RoomAliases.jsx b/src/app/molecules/room-aliases/RoomAliases.jsx index 201c523a..d573f7d6 100644 --- a/src/app/molecules/room-aliases/RoomAliases.jsx +++ b/src/app/molecules/room-aliases/RoomAliases.jsx @@ -110,7 +110,9 @@ function RoomAliases({ roomId }) { const canPublishAlias = room.currentState.maySendStateEvent('m.room.canonical_alias', userId); - useEffect(() => isMountedStore.setItem(true), []); + useEffect(() => { + isMountedStore.setItem(true) + }, []); useEffect(() => { let isUnmounted = false; diff --git a/src/app/molecules/room-history-visibility/RoomHistoryVisibility.jsx b/src/app/molecules/room-history-visibility/RoomHistoryVisibility.jsx index 6a72a99b..d9dd9540 100644 --- a/src/app/molecules/room-history-visibility/RoomHistoryVisibility.jsx +++ b/src/app/molecules/room-history-visibility/RoomHistoryVisibility.jsx @@ -49,7 +49,9 @@ function useVisibility(roomId) { const room = mx.getRoom(roomId); const [activeType, setActiveType] = useState(room.getHistoryVisibility()); - useEffect(() => setActiveType(room.getHistoryVisibility()), [roomId]); + useEffect(() => { + setActiveType(room.getHistoryVisibility()); + }, [roomId]); const setVisibility = useCallback((item) => { if (item.type === activeType.type) return; diff --git a/src/app/molecules/room-notification/RoomNotification.jsx b/src/app/molecules/room-notification/RoomNotification.jsx index 1c088e5f..4adb1169 100644 --- a/src/app/molecules/room-notification/RoomNotification.jsx +++ b/src/app/molecules/room-notification/RoomNotification.jsx @@ -103,7 +103,9 @@ function setRoomNotifType(roomId, newType) { function useNotifications(roomId) { const { notifications } = initMatrix; const [activeType, setActiveType] = useState(notifications.getNotiType(roomId)); - useEffect(() => setActiveType(notifications.getNotiType(roomId)), [roomId]); + useEffect(() => { + setActiveType(notifications.getNotiType(roomId)); + }, [roomId]); const setNotification = useCallback((item) => { if (item.type === activeType.type) return; diff --git a/src/app/molecules/room-search/RoomSearch.jsx b/src/app/molecules/room-search/RoomSearch.jsx index 2612aed1..6009649f 100644 --- a/src/app/molecules/room-search/RoomSearch.jsx +++ b/src/app/molecules/room-search/RoomSearch.jsx @@ -29,7 +29,9 @@ function useRoomSearch(roomId) { const mountStore = useStore(roomId); const mx = initMatrix.matrixClient; - useEffect(() => mountStore.setItem(true), [roomId]); + useEffect(() => { + mountStore.setItem(true) + }, [roomId]); useEffect(() => { if (searchData?.results?.length > 0) { diff --git a/src/app/molecules/room-visibility/RoomVisibility.jsx b/src/app/molecules/room-visibility/RoomVisibility.jsx index 7a852876..a5e8e2d0 100644 --- a/src/app/molecules/room-visibility/RoomVisibility.jsx +++ b/src/app/molecules/room-visibility/RoomVisibility.jsx @@ -50,7 +50,9 @@ function useVisibility(roomId) { const room = mx.getRoom(roomId); const [activeType, setActiveType] = useState(room.getJoinRule()); - useEffect(() => setActiveType(room.getJoinRule()), [roomId]); + useEffect(() => { + setActiveType(room.getJoinRule()); + }, [roomId]); const setNotification = useCallback((item) => { if (item.type === activeType.type) return; diff --git a/src/app/organisms/emoji-verification/EmojiVerification.jsx b/src/app/organisms/emoji-verification/EmojiVerification.jsx index 6fe81cdd..3ae1f294 100644 --- a/src/app/organisms/emoji-verification/EmojiVerification.jsx +++ b/src/app/organisms/emoji-verification/EmojiVerification.jsx @@ -80,7 +80,7 @@ function EmojiVerificationContent({ data, requestClose }) { } }; - if (request === null) return null; + if (request === null) return undefined; const req = request; req.on('change', handleChange); return () => { diff --git a/src/app/organisms/room/message/UrlPreviewCard.tsx b/src/app/organisms/room/message/UrlPreviewCard.tsx index 9ae4d298..b085e184 100644 --- a/src/app/organisms/room/message/UrlPreviewCard.tsx +++ b/src/app/organisms/room/message/UrlPreviewCard.tsx @@ -23,7 +23,10 @@ export const UrlPreviewCard = as<'div', { url: string; ts: number }>( const [previewStatus, loadPreview] = useAsyncCallback( useCallback(() => mx.getUrlPreview(url, ts), [url, ts, mx]) ); - if (previewStatus.status === AsyncStatus.Idle) loadPreview(); + + useEffect(() => { + loadPreview(); + }, [loadPreview]); if (previewStatus.status === AsyncStatus.Error) return null; diff --git a/src/app/organisms/space-manage/SpaceManage.jsx b/src/app/organisms/space-manage/SpaceManage.jsx index cf042da4..60f00ad3 100644 --- a/src/app/organisms/space-manage/SpaceManage.jsx +++ b/src/app/organisms/space-manage/SpaceManage.jsx @@ -302,7 +302,9 @@ function SpaceManageContent({ roomId, requestClose }) { }; }, [roomId]); - useEffect(() => setSelected([]), [spacePath]); + useEffect(() => { + setSelected([]); + }, [spacePath]); const handleSelected = (selectedRoomId) => { const newSelected = [...selected]; diff --git a/src/app/pages/App.jsx b/src/app/pages/App.jsx deleted file mode 100644 index 2828d7be..00000000 --- a/src/app/pages/App.jsx +++ /dev/null @@ -1,17 +0,0 @@ -import React, { StrictMode } from 'react'; -import { Provider } from 'jotai'; - -import { isAuthenticated } from '../../client/state/auth'; - -import Auth from '../templates/auth/Auth'; -import Client from '../templates/client/Client'; - -function App() { - return ( - - {isAuthenticated() ? : } - - ); -} - -export default App; diff --git a/src/app/pages/App.tsx b/src/app/pages/App.tsx new file mode 100644 index 00000000..6cefe999 --- /dev/null +++ b/src/app/pages/App.tsx @@ -0,0 +1,82 @@ +import React from 'react'; +import { Provider as JotaiProvider } from 'jotai'; +import { + Route, + RouterProvider, + createBrowserRouter, + createHashRouter, + createRoutesFromElements, + redirect, +} from 'react-router-dom'; + +import { ClientConfigLoader } from '../components/ClientConfigLoader'; +import { ClientConfig, ClientConfigProvider } from '../hooks/useClientConfig'; +import { AuthLayout, Login, Register, ResetPassword, authLayoutLoader } from './auth'; +import { LOGIN_PATH, REGISTER_PATH, RESET_PASSWORD_PATH, ROOT_PATH } from './paths'; +import { isAuthenticated } from '../../client/state/auth'; +import Client from '../templates/client/Client'; +import { getLoginPath } from './pathUtils'; +import { ConfigConfigError, ConfigConfigLoading } from './ConfigConfig'; + +const createRouter = (clientConfig: ClientConfig) => { + const { hashRouter } = clientConfig; + + const routes = createRoutesFromElements( + + { + if (isAuthenticated()) return redirect('/home'); + return redirect(getLoginPath()); + }} + /> + }> + } /> + } /> + } /> + + + { + if (!isAuthenticated()) return redirect(getLoginPath()); + return null; + }} + > + } /> + direct

        } /> + :spaceIdOrAlias

        } /> + explore

        } /> +
        + Page not found

        } /> +
        + ); + + if (hashRouter?.enabled) { + return createHashRouter(routes, { basename: hashRouter.basename }); + } + return createBrowserRouter(routes, { + basename: import.meta.env.BASE_URL, + }); +}; + +// TODO: app crash boundary +function App() { + return ( + } + error={(err, retry, ignore) => ( + + )} + > + {(clientConfig) => ( + + + + + + )} + + ); +} + +export default App; diff --git a/src/app/pages/ConfigConfig.tsx b/src/app/pages/ConfigConfig.tsx new file mode 100644 index 00000000..dbcdca73 --- /dev/null +++ b/src/app/pages/ConfigConfig.tsx @@ -0,0 +1,53 @@ +import { Box, Button, Dialog, Spinner, Text, color, config } from 'folds'; +import React from 'react'; +import { SplashScreen } from '../components/splash-screen'; + +export function ConfigConfigLoading() { + return ( + + + + Heating up + + + ); +} + +type ConfigConfigErrorProps = { + error: unknown; + retry: () => void; + ignore: () => void; +}; +export function ConfigConfigError({ error, retry, ignore }: ConfigConfigErrorProps) { + return ( + + + + + + Failed to load client configuration file. + {typeof error === 'object' && + error && + 'message' in error && + typeof error.message === 'string' && ( + + {error.message} + + )} + + + + + + + + ); +} diff --git a/src/app/pages/auth/AuthFooter.tsx b/src/app/pages/auth/AuthFooter.tsx new file mode 100644 index 00000000..64541618 --- /dev/null +++ b/src/app/pages/auth/AuthFooter.tsx @@ -0,0 +1,28 @@ +import React from 'react'; +import { Box, Text } from 'folds'; +import * as css from './styles.css'; + +export function AuthFooter() { + return ( + + + About + + + v3.2.0 + + + Twitter + + + Powered by Matrix + + + ); +} diff --git a/src/app/pages/auth/AuthLayout.tsx b/src/app/pages/auth/AuthLayout.tsx new file mode 100644 index 00000000..c58ecdd5 --- /dev/null +++ b/src/app/pages/auth/AuthLayout.tsx @@ -0,0 +1,215 @@ +import React, { useCallback, useEffect } from 'react'; +import { Box, Header, Scroll, Spinner, Text, color } from 'folds'; +import { + LoaderFunction, + Outlet, + generatePath, + matchPath, + redirect, + useLocation, + useNavigate, + useParams, +} from 'react-router-dom'; +import classNames from 'classnames'; + +import { AuthFooter } from './AuthFooter'; +import * as css from './styles.css'; +import * as PatternsCss from '../../styles/Patterns.css'; +import { isAuthenticated } from '../../../client/state/auth'; +import { + clientAllowedServer, + clientDefaultServer, + useClientConfig, +} from '../../hooks/useClientConfig'; +import { AsyncStatus, useAsyncCallback } from '../../hooks/useAsyncCallback'; +import { LOGIN_PATH, REGISTER_PATH } from '../paths'; +import CinnySVG from '../../../../public/res/svg/cinny.svg'; +import { ServerPicker } from './ServerPicker'; +import { AutoDiscoveryAction, autoDiscovery } from '../../cs-api'; +import { SpecVersionsLoader } from '../../components/SpecVersionsLoader'; +import { SpecVersionsProvider } from '../../hooks/useSpecVersions'; +import { AutoDiscoveryInfoProvider } from '../../hooks/useAutoDiscoveryInfo'; +import { AuthFlowsLoader } from '../../components/AuthFlowsLoader'; +import { AuthFlowsProvider } from '../../hooks/useAuthFlows'; +import { AuthServerProvider } from '../../hooks/useAuthServer'; + +export const authLayoutLoader: LoaderFunction = () => { + if (isAuthenticated()) { + return redirect('/'); + } + + return null; +}; + +const currentAuthPath = (pathname: string): string => { + if (matchPath(LOGIN_PATH, pathname)) { + return LOGIN_PATH; + } + if (matchPath(REGISTER_PATH, pathname)) { + return REGISTER_PATH; + } + return LOGIN_PATH; +}; + +function AuthLayoutLoading({ message }: { message: string }) { + return ( + + + + {message} + + + ); +} + +function AuthLayoutError({ message }: { message: string }) { + return ( + + + {message} + + + ); +} + +export function AuthLayout() { + const navigate = useNavigate(); + const location = useLocation(); + const { server: urlEncodedServer } = useParams(); + + const clientConfig = useClientConfig(); + + const defaultServer = clientDefaultServer(clientConfig); + let server: string = urlEncodedServer ? decodeURIComponent(urlEncodedServer) : defaultServer; + + if (!clientAllowedServer(clientConfig, server)) { + server = defaultServer; + } + + const [discoveryState, discoverServer] = useAsyncCallback( + useCallback(async (serverName: string) => { + const response = await autoDiscovery(fetch, serverName); + return { + serverName, + response, + }; + }, []) + ); + + useEffect(() => { + if (server) discoverServer(server); + }, [discoverServer, server]); + + // if server is mismatches with path server, update path + useEffect(() => { + if (!urlEncodedServer || decodeURIComponent(urlEncodedServer) !== server) { + navigate( + generatePath(currentAuthPath(location.pathname), { + server: encodeURIComponent(server), + }), + { replace: true } + ); + } + }, [urlEncodedServer, navigate, location, server]); + + const selectServer = useCallback( + (newServer: string) => { + if (newServer === server) { + if (discoveryState.status === AsyncStatus.Loading) return; + discoverServer(server); + return; + } + navigate( + generatePath(currentAuthPath(location.pathname), { server: encodeURIComponent(newServer) }) + ); + }, + [navigate, location, discoveryState, server, discoverServer] + ); + + const [autoDiscoveryError, autoDiscoveryInfo] = + discoveryState.status === AsyncStatus.Success ? discoveryState.data.response : []; + + return ( + + + +
        + + Cinny Logo + Cinny + +
        + + + + Homeserver + + + + {discoveryState.status === AsyncStatus.Loading && ( + + )} + {discoveryState.status === AsyncStatus.Error && ( + + )} + {autoDiscoveryError?.action === AutoDiscoveryAction.FAIL_PROMPT && ( + + )} + {autoDiscoveryError?.action === AutoDiscoveryAction.FAIL_ERROR && ( + + )} + {discoveryState.status === AsyncStatus.Success && autoDiscoveryInfo && ( + + + ( + + )} + error={() => ( + + )} + > + {(specVersions) => ( + + ( + + )} + error={() => ( + + )} + > + {(authFlows) => ( + + + + )} + + + )} + + + + )} + +
        + +
        +
        + ); +} diff --git a/src/app/pages/auth/FiledError.tsx b/src/app/pages/auth/FiledError.tsx new file mode 100644 index 00000000..d96fc872 --- /dev/null +++ b/src/app/pages/auth/FiledError.tsx @@ -0,0 +1,13 @@ +import React from 'react'; +import { Box, Icon, Icons, color, Text } from 'folds'; + +export function FieldError({ message }: { message: string }) { + return ( + + + + {message} + + + ); +} diff --git a/src/app/pages/auth/OrDivider.tsx b/src/app/pages/auth/OrDivider.tsx new file mode 100644 index 00000000..629d3f52 --- /dev/null +++ b/src/app/pages/auth/OrDivider.tsx @@ -0,0 +1,12 @@ +import React from 'react'; +import { Box, Line, Text } from 'folds'; + +export function OrDivider() { + return ( + + + OR + + + ); +} diff --git a/src/app/pages/auth/SSOLogin.tsx b/src/app/pages/auth/SSOLogin.tsx new file mode 100644 index 00000000..a9c1c54b --- /dev/null +++ b/src/app/pages/auth/SSOLogin.tsx @@ -0,0 +1,68 @@ +import { Avatar, AvatarImage, Box, Button, Text } from 'folds'; +import { IIdentityProvider, createClient } from 'matrix-js-sdk'; +import React, { useMemo } from 'react'; +import { useAutoDiscoveryInfo } from '../../hooks/useAutoDiscoveryInfo'; + +type SSOLoginProps = { + providers: IIdentityProvider[]; + asIcons?: boolean; + redirectUrl: string; +}; +export function SSOLogin({ providers, redirectUrl, asIcons }: SSOLoginProps) { + const discovery = useAutoDiscoveryInfo(); + const baseUrl = discovery['m.homeserver'].base_url; + const mx = useMemo(() => createClient({ baseUrl }), [baseUrl]); + + const getSSOIdUrl = (ssoId: string): string => mx.getSsoLoginUrl(redirectUrl, 'sso', ssoId); + + return ( + + {providers.map((provider) => { + const { id, name, icon } = provider; + const iconUrl = icon && mx.mxcUrlToHttp(icon, 96, 96, 'crop', false); + + const buttonTitle = `Continue with ${name}`; + + if (iconUrl && asIcons) { + return ( + + + + ); + } + + return ( + + ); + })} + + ); +} diff --git a/src/app/pages/auth/ServerPicker.tsx b/src/app/pages/auth/ServerPicker.tsx new file mode 100644 index 00000000..5f5dcf65 --- /dev/null +++ b/src/app/pages/auth/ServerPicker.tsx @@ -0,0 +1,140 @@ +import React, { + ChangeEventHandler, + KeyboardEventHandler, + MouseEventHandler, + useEffect, + useRef, + useState, +} from 'react'; +import { + Header, + Icon, + IconButton, + Icons, + Input, + Menu, + MenuItem, + PopOut, + Text, + config, +} from 'folds'; +import FocusTrap from 'focus-trap-react'; + +import { useDebounce } from '../../hooks/useDebounce'; + +export function ServerPicker({ + server, + serverList, + allowCustomServer, + onServerChange, +}: { + server: string; + serverList: string[]; + allowCustomServer?: boolean; + onServerChange: (server: string) => void; +}) { + const [serverMenu, setServerMenu] = useState(false); + const serverInputRef = useRef(null); + + useEffect(() => { + // sync input with it outside server changes + if (serverInputRef.current && serverInputRef.current.value !== server) { + serverInputRef.current.value = server; + } + }, [server]); + + const debounceServerSelect = useDebounce(onServerChange, { wait: 700 }); + + const handleServerChange: ChangeEventHandler = (evt) => { + const inputServer = evt.target.value.trim(); + if (inputServer) debounceServerSelect(inputServer); + }; + + const handleKeyDown: KeyboardEventHandler = (evt) => { + if (evt.key === 'ArrowDown') { + evt.preventDefault(); + setServerMenu(true); + } + if (evt.key === 'Enter') { + evt.preventDefault(); + const inputServer = evt.currentTarget.value.trim(); + if (inputServer) onServerChange(inputServer); + } + }; + + const handleServerSelect: MouseEventHandler = (evt) => { + const selectedServer = evt.currentTarget.getAttribute('data-server'); + if (selectedServer) { + onServerChange(selectedServer); + } + setServerMenu(false); + }; + + return ( + setServerMenu(true)} + after={ + serverList.length === 0 || (serverList.length === 1 && !allowCustomServer) ? undefined : ( + setServerMenu(false), + clickOutsideDeactivates: true, + isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', + isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', + }} + > + +
        + Homeserver List +
        +
        + {serverList?.map((serverName) => ( + + {serverName} + + ))} +
        +
        + + } + > + {(anchorRef) => ( + setServerMenu(true)} + variant={allowCustomServer ? 'Background' : 'Surface'} + size="300" + aria-pressed={serverMenu} + radii="300" + > + + + )} +
        + ) + } + /> + ); +} diff --git a/src/app/pages/auth/index.ts b/src/app/pages/auth/index.ts new file mode 100644 index 00000000..c4bd0476 --- /dev/null +++ b/src/app/pages/auth/index.ts @@ -0,0 +1,4 @@ +export * from './AuthLayout'; +export * from './login'; +export * from './register'; +export * from './reset-password'; diff --git a/src/app/pages/auth/login/Login.tsx b/src/app/pages/auth/login/Login.tsx new file mode 100644 index 00000000..29a7b0ce --- /dev/null +++ b/src/app/pages/auth/login/Login.tsx @@ -0,0 +1,73 @@ +import React from 'react'; +import { Box, Text, color } from 'folds'; +import { Link, useSearchParams } from 'react-router-dom'; +import { useAuthFlows } from '../../../hooks/useAuthFlows'; +import { useAuthServer } from '../../../hooks/useAuthServer'; +import { useParsedLoginFlows } from '../../../hooks/useParsedLoginFlows'; +import { PasswordLoginForm } from './PasswordLoginForm'; +import { SSOLogin } from '../SSOLogin'; +import { TokenLogin } from './TokenLogin'; +import { OrDivider } from '../OrDivider'; +import { getLoginPath, getRegisterPath } from '../../pathUtils'; +import { usePathWithOrigin } from '../../../hooks/usePathWithOrigin'; +import { LoginPathSearchParams } from '../../paths'; + +const getLoginSearchParams = (searchParams: URLSearchParams): LoginPathSearchParams => ({ + username: searchParams.get('username') ?? undefined, + email: searchParams.get('email') ?? undefined, + loginToken: searchParams.get('loginToken') ?? undefined, +}); + +export function Login() { + const server = useAuthServer(); + const { loginFlows } = useAuthFlows(); + const [searchParams] = useSearchParams(); + const loginSearchParams = getLoginSearchParams(searchParams); + const ssoRedirectUrl = usePathWithOrigin(getLoginPath(server)); + + const parsedFlows = useParsedLoginFlows(loginFlows.flows); + + return ( + + + Login + + {parsedFlows.token && loginSearchParams.loginToken && ( + + )} + {parsedFlows.password && ( + <> + + + {parsedFlows.sso && } + + )} + {parsedFlows.sso && ( + <> + 2 + } + /> + + + )} + {!parsedFlows.password && !parsedFlows.sso && ( + <> + + {`This client does not support login on "${server}" homeserver. Password and SSO based login method not found.`} + + + + )} + + Do not have an account? Register + + + ); +} diff --git a/src/app/pages/auth/login/PasswordLoginForm.tsx b/src/app/pages/auth/login/PasswordLoginForm.tsx new file mode 100644 index 00000000..ea52aad8 --- /dev/null +++ b/src/app/pages/auth/login/PasswordLoginForm.tsx @@ -0,0 +1,272 @@ +import React, { FormEventHandler, useCallback, useState } from 'react'; +import { + Box, + Button, + Header, + Icon, + IconButton, + Icons, + Input, + Menu, + Overlay, + OverlayBackdrop, + OverlayCenter, + PopOut, + Spinner, + Text, + config, +} from 'folds'; +import FocusTrap from 'focus-trap-react'; +import { Link } from 'react-router-dom'; +import { MatrixError } from 'matrix-js-sdk'; +import { getMxIdLocalPart, getMxIdServer, isUserId } from '../../../utils/matrix'; +import { EMAIL_REGEX } from '../../../utils/regex'; +import { useAutoDiscoveryInfo } from '../../../hooks/useAutoDiscoveryInfo'; +import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback'; +import { useAuthServer } from '../../../hooks/useAuthServer'; +import { useClientConfig } from '../../../hooks/useClientConfig'; +import { + CustomLoginResponse, + LoginError, + factoryGetBaseUrl, + login, + useLoginComplete, +} from './loginUtil'; +import { PasswordInput } from '../../../components/password-input/PasswordInput'; +import { FieldError } from '../FiledError'; +import { getResetPasswordPath } from '../../pathUtils'; + +function UsernameHint({ server }: { server: string }) { + const [open, setOpen] = useState(false); + return ( + setOpen(false), + clickOutsideDeactivates: true, + }} + > + +
        + Hint +
        + + + + Username: + {' '} + johndoe + + + + Matrix ID: + + {` @johndoe:${server}`} + + + + Email: + + {` johndoe@${server}`} + + +
        + + } + > + {(targetRef) => ( + setOpen(true)} + ref={targetRef} + type="button" + variant="Background" + size="300" + radii="300" + aria-pressed={open} + > + + + )} +
        + ); +} + +type PasswordLoginFormProps = { + defaultUsername?: string; + defaultEmail?: string; +}; +export function PasswordLoginForm({ defaultUsername, defaultEmail }: PasswordLoginFormProps) { + const server = useAuthServer(); + const clientConfig = useClientConfig(); + + const serverDiscovery = useAutoDiscoveryInfo(); + const baseUrl = serverDiscovery['m.homeserver'].base_url; + + const [loginState, startLogin] = useAsyncCallback< + CustomLoginResponse, + MatrixError, + Parameters + >(useCallback(login, [])); + + useLoginComplete(loginState.status === AsyncStatus.Success ? loginState.data : undefined); + + const handleUsernameLogin = (username: string, password: string) => { + startLogin(baseUrl, { + type: 'm.login.password', + identifier: { + type: 'm.id.user', + user: username, + }, + password, + initial_device_display_name: 'Cinny Web', + }); + }; + + const handleMxIdLogin = async (mxId: string, password: string) => { + const mxIdServer = getMxIdServer(mxId); + const mxIdUsername = getMxIdLocalPart(mxId); + if (!mxIdServer || !mxIdUsername) return; + + const getBaseUrl = factoryGetBaseUrl(clientConfig, mxIdServer); + + startLogin(getBaseUrl, { + type: 'm.login.password', + identifier: { + type: 'm.id.user', + user: mxIdUsername, + }, + password, + initial_device_display_name: 'Cinny Web', + }); + }; + const handleEmailLogin = (email: string, password: string) => { + startLogin(baseUrl, { + type: 'm.login.password', + identifier: { + type: 'm.id.thirdparty', + medium: 'email', + address: email, + }, + password, + initial_device_display_name: 'Cinny Web', + }); + }; + + const handleSubmit: FormEventHandler = (evt) => { + evt.preventDefault(); + const { usernameInput, passwordInput } = evt.target as HTMLFormElement & { + usernameInput: HTMLInputElement; + passwordInput: HTMLInputElement; + }; + + const username = usernameInput.value.trim(); + const password = passwordInput.value; + if (!username) { + usernameInput.focus(); + return; + } + if (!password) { + passwordInput.focus(); + return; + } + + if (isUserId(username)) { + handleMxIdLogin(username, password); + return; + } + if (EMAIL_REGEX.test(username)) { + handleEmailLogin(username, password); + return; + } + handleUsernameLogin(username, password); + }; + + return ( + + + + Username + + } + /> + {loginState.status === AsyncStatus.Error && ( + <> + {loginState.error.errcode === LoginError.ServerNotAllowed && ( + + )} + {loginState.error.errcode === LoginError.InvalidServer && ( + + )} + + )} + + + + Password + + + + {loginState.status === AsyncStatus.Error && ( + <> + {loginState.error.errcode === LoginError.Forbidden && ( + + )} + {loginState.error.errcode === LoginError.UserDeactivated && ( + + )} + {loginState.error.errcode === LoginError.InvalidRequest && ( + + )} + {loginState.error.errcode === LoginError.RateLimited && ( + + )} + {loginState.error.errcode === LoginError.Unknown && ( + + )} + + )} + + + Forget Password? + + + + + + + } + > + + + + + + ); +} diff --git a/src/app/pages/auth/login/TokenLogin.tsx b/src/app/pages/auth/login/TokenLogin.tsx new file mode 100644 index 00000000..761d5dc5 --- /dev/null +++ b/src/app/pages/auth/login/TokenLogin.tsx @@ -0,0 +1,94 @@ +import { + Box, + Icon, + Icons, + Overlay, + OverlayBackdrop, + OverlayCenter, + Spinner, + Text, + color, + config, +} from 'folds'; +import React, { useCallback, useEffect } from 'react'; +import { MatrixError } from 'matrix-js-sdk'; +import { useAutoDiscoveryInfo } from '../../../hooks/useAutoDiscoveryInfo'; +import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback'; +import { CustomLoginResponse, LoginError, login, useLoginComplete } from './loginUtil'; + +function LoginTokenError({ message }: { message: string }) { + return ( + + + + Token Login + + {message} + + + + ); +} + +type TokenLoginProps = { + token: string; +}; +export function TokenLogin({ token }: TokenLoginProps) { + const discovery = useAutoDiscoveryInfo(); + const baseUrl = discovery['m.homeserver'].base_url; + + const [loginState, startLogin] = useAsyncCallback< + CustomLoginResponse, + MatrixError, + Parameters + >(useCallback(login, [])); + + useEffect(() => { + startLogin(baseUrl, { + type: 'm.login.token', + token, + initial_device_display_name: 'Cinny Web', + }); + }, [baseUrl, token, startLogin]); + + useLoginComplete(loginState.status === AsyncStatus.Success ? loginState.data : undefined); + + return ( + <> + {loginState.status === AsyncStatus.Error && ( + <> + {loginState.error.errcode === LoginError.Forbidden && ( + + )} + {loginState.error.errcode === LoginError.UserDeactivated && ( + + )} + {loginState.error.errcode === LoginError.InvalidRequest && ( + + )} + {loginState.error.errcode === LoginError.RateLimited && ( + + )} + {loginState.error.errcode === LoginError.Unknown && ( + + )} + + )} + }> + + + + + + ); +} diff --git a/src/app/pages/auth/login/index.ts b/src/app/pages/auth/login/index.ts new file mode 100644 index 00000000..a10c3a83 --- /dev/null +++ b/src/app/pages/auth/login/index.ts @@ -0,0 +1 @@ +export * from './Login'; diff --git a/src/app/pages/auth/login/loginUtil.ts b/src/app/pages/auth/login/loginUtil.ts new file mode 100644 index 00000000..b2fd3870 --- /dev/null +++ b/src/app/pages/auth/login/loginUtil.ts @@ -0,0 +1,118 @@ +import to from 'await-to-js'; +import { LoginRequest, LoginResponse, MatrixError, createClient } from 'matrix-js-sdk'; +import { useEffect } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { ClientConfig, clientAllowedServer } from '../../../hooks/useClientConfig'; +import { autoDiscovery, specVersions } from '../../../cs-api'; +import { updateLocalStore } from '../../../../client/action/auth'; +import { ROOT_PATH } from '../../paths'; +import { ErrorCode } from '../../../cs-errorcode'; + +export enum GetBaseUrlError { + NotAllow = 'NotAllow', + NotFound = 'NotFound', +} +export const factoryGetBaseUrl = (clientConfig: ClientConfig, server: string) => { + const getBaseUrl = async (): Promise => { + if (!clientAllowedServer(clientConfig, server)) { + throw new Error(GetBaseUrlError.NotAllow); + } + + const [, discovery] = await to(autoDiscovery(fetch, server)); + + let mxIdBaseUrl: string | undefined; + const [, discoveryInfo] = discovery ?? []; + + if (discoveryInfo) { + mxIdBaseUrl = discoveryInfo['m.homeserver'].base_url; + } + + if (!mxIdBaseUrl) { + throw new Error(GetBaseUrlError.NotFound); + } + const [, versions] = await to(specVersions(fetch, mxIdBaseUrl)); + if (!versions) { + throw new Error(GetBaseUrlError.NotFound); + } + return mxIdBaseUrl; + }; + return getBaseUrl; +}; + +export enum LoginError { + ServerNotAllowed = 'ServerNotAllowed', + InvalidServer = 'InvalidServer', + Forbidden = 'Forbidden', + UserDeactivated = 'UserDeactivated', + InvalidRequest = 'InvalidRequest', + RateLimited = 'RateLimited', + Unknown = 'Unknown', +} + +export type CustomLoginResponse = { + baseUrl: string; + response: LoginResponse; +}; +export const login = async ( + serverBaseUrl: string | (() => Promise), + data: LoginRequest +): Promise => { + const [urlError, url] = + typeof serverBaseUrl === 'function' ? await to(serverBaseUrl()) : [undefined, serverBaseUrl]; + if (urlError) { + throw new MatrixError({ + errcode: + urlError.message === GetBaseUrlError.NotAllow + ? LoginError.ServerNotAllowed + : LoginError.InvalidServer, + }); + } + + const mx = createClient({ baseUrl: url }); + const [err, res] = await to(mx.login(data.type, data)); + + if (err) { + if (err.httpStatus === 400) { + throw new MatrixError({ + errcode: LoginError.InvalidRequest, + }); + } + if (err.httpStatus === 429) { + throw new MatrixError({ + errcode: LoginError.RateLimited, + }); + } + if (err.errcode === ErrorCode.M_USER_DEACTIVATED) { + throw new MatrixError({ + errcode: LoginError.UserDeactivated, + }); + } + + if (err.httpStatus === 403) { + throw new MatrixError({ + errcode: LoginError.Forbidden, + }); + } + + throw new MatrixError({ + errcode: LoginError.Unknown, + }); + } + return { + baseUrl: url, + response: res, + }; +}; + +export const useLoginComplete = (data?: CustomLoginResponse) => { + const navigate = useNavigate(); + + useEffect(() => { + if (data) { + const { response: loginRes, baseUrl: loginBaseUrl } = data; + updateLocalStore(loginRes.access_token, loginRes.device_id, loginRes.user_id, loginBaseUrl); + // TODO: add after login redirect url + navigate(ROOT_PATH, { replace: true }); + } + }, [data, navigate]); +}; diff --git a/src/app/pages/auth/register/PasswordRegisterForm.tsx b/src/app/pages/auth/register/PasswordRegisterForm.tsx new file mode 100644 index 00000000..f4439dd6 --- /dev/null +++ b/src/app/pages/auth/register/PasswordRegisterForm.tsx @@ -0,0 +1,420 @@ +import { + Box, + Button, + Checkbox, + Input, + Overlay, + OverlayBackdrop, + OverlayCenter, + Spinner, + Text, + color, +} from 'folds'; +import React, { ChangeEventHandler, useCallback, useMemo, useState } from 'react'; +import { + AuthDict, + AuthType, + IAuthData, + MatrixError, + RegisterRequest, + UIAFlow, + createClient, +} from 'matrix-js-sdk'; +import { PasswordInput } from '../../../components/password-input/PasswordInput'; +import { + getLoginTermUrl, + getUIAFlowForStages, + hasStageInFlows, + requiredStageInFlows, +} from '../../../utils/matrix-uia'; +import { useUIACompleted, useUIAFlow, useUIAParams } from '../../../hooks/useUIAFlows'; +import { AsyncState, AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback'; +import { useAutoDiscoveryInfo } from '../../../hooks/useAutoDiscoveryInfo'; +import { RegisterError, RegisterResult, register, useRegisterComplete } from './registerUtil'; +import { FieldError } from '../FiledError'; +import { + AutoDummyStageDialog, + AutoTermsStageDialog, + EmailStageDialog, + ReCaptchaStageDialog, + RegistrationTokenStageDialog, +} from '../../../components/uia-stages'; +import { useRegisterEmail } from '../../../hooks/useRegisterEmail'; +import { ConfirmPasswordMatch } from '../../../components/ConfirmPasswordMatch'; +import { UIAFlowOverlay } from '../../../components/UIAFlowOverlay'; +import { RequestEmailTokenCallback, RequestEmailTokenResponse } from '../../../hooks/types'; + +export const SUPPORTED_REGISTER_STAGES = [ + AuthType.RegistrationToken, + AuthType.Terms, + AuthType.Recaptcha, + AuthType.Email, + AuthType.Dummy, +]; +type RegisterFormInputs = { + usernameInput: HTMLInputElement; + passwordInput: HTMLInputElement; + confirmPasswordInput: HTMLInputElement; + tokenInput?: HTMLInputElement; + emailInput?: HTMLInputElement; + termsInput?: HTMLInputElement; +}; + +type FormData = { + username: string; + password: string; + token?: string; + email?: string; + terms?: boolean; + clientSecret: string; +}; + +const pickStages = (uiaFlows: UIAFlow[], formData: FormData): string[] => { + const pickedStages: string[] = []; + if (formData.token) pickedStages.push(AuthType.RegistrationToken); + if (formData.email) pickedStages.push(AuthType.Email); + if (formData.terms) pickedStages.push(AuthType.Terms); + if (hasStageInFlows(uiaFlows, AuthType.Recaptcha)) { + pickedStages.push(AuthType.Recaptcha); + } + + return pickedStages; +}; + +type RegisterUIAFlowProps = { + formData: FormData; + flow: UIAFlow; + authData: IAuthData; + registerEmailState: AsyncState; + registerEmail: RequestEmailTokenCallback; + onRegister: (registerReqData: RegisterRequest) => void; +}; +function RegisterUIAFlow({ + formData, + flow, + authData, + registerEmailState, + registerEmail, + onRegister, +}: RegisterUIAFlowProps) { + const completed = useUIACompleted(authData); + const { getStageToComplete } = useUIAFlow(authData, flow); + + const stageToComplete = getStageToComplete(); + + const handleAuthDict = useCallback( + (authDict: AuthDict) => { + const { password, username } = formData; + onRegister({ + auth: authDict, + password, + username, + initial_device_display_name: 'Cinny Web', + }); + }, + [onRegister, formData] + ); + + const handleCancel = useCallback(() => { + window.location.reload(); + }, []); + + if (!stageToComplete) return null; + return ( + + {stageToComplete.type === AuthType.RegistrationToken && ( + + )} + {stageToComplete.type === AuthType.Terms && ( + + )} + {stageToComplete.type === AuthType.Recaptcha && ( + + )} + {stageToComplete.type === AuthType.Email && ( + + )} + {stageToComplete.type === AuthType.Dummy && ( + + )} + + ); +} + +type PasswordRegisterFormProps = { + authData: IAuthData; + uiaFlows: UIAFlow[]; + defaultUsername?: string; + defaultEmail?: string; + defaultRegisterToken?: string; +}; +export function PasswordRegisterForm({ + authData, + uiaFlows, + defaultUsername, + defaultEmail, + defaultRegisterToken, +}: PasswordRegisterFormProps) { + const serverDiscovery = useAutoDiscoveryInfo(); + const baseUrl = serverDiscovery['m.homeserver'].base_url; + const mx = useMemo(() => createClient({ baseUrl }), [baseUrl]); + const params = useUIAParams(authData); + const termUrl = getLoginTermUrl(params); + const [formData, setFormData] = useState(); + + const [ongoingFlow, setOngoingFlow] = useState(); + + const [registerEmailState, registerEmail] = useRegisterEmail(mx); + + const [registerState, handleRegister] = useAsyncCallback< + RegisterResult, + MatrixError, + [RegisterRequest] + >(useCallback(async (registerReqData) => register(mx, registerReqData), [mx])); + const [ongoingAuthData, customRegisterResp] = + registerState.status === AsyncStatus.Success ? registerState.data : []; + const registerError = + registerState.status === AsyncStatus.Error ? registerState.error : undefined; + + useRegisterComplete(customRegisterResp); + + const handleSubmit: ChangeEventHandler = (evt) => { + evt.preventDefault(); + const { + usernameInput, + passwordInput, + confirmPasswordInput, + emailInput, + tokenInput, + termsInput, + } = evt.target as HTMLFormElement & RegisterFormInputs; + const token = tokenInput?.value.trim(); + const username = usernameInput.value.trim(); + const password = passwordInput.value; + const confirmPassword = confirmPasswordInput.value; + if (password !== confirmPassword) { + return; + } + const email = emailInput?.value.trim(); + const terms = termsInput?.value === 'on'; + + if (!username) { + usernameInput.focus(); + return; + } + + const fData: FormData = { + username, + password, + token, + email, + terms, + clientSecret: mx.generateClientSecret(), + }; + const pickedStages = pickStages(uiaFlows, fData); + const pickedFlow = getUIAFlowForStages(uiaFlows, pickedStages); + setOngoingFlow(pickedFlow); + setFormData(fData); + handleRegister({ + username, + password, + auth: { + session: authData.session, + }, + initial_device_display_name: 'Cinny Web', + }); + }; + + return ( + <> + + + + Username + + + {registerError?.errcode === RegisterError.UserTaken && ( + + )} + {registerError?.errcode === RegisterError.UserInvalid && ( + + )} + {registerError?.errcode === RegisterError.UserExclusive && ( + + )} + + + {(match, doMatch, passRef, confPassRef) => ( + <> + + + Password + + + {registerError?.errcode === RegisterError.PasswordWeak && ( + + )} + {registerError?.errcode === RegisterError.PasswordShort && ( + + )} + + + + Confirm Password + + + + + )} + + {hasStageInFlows(uiaFlows, AuthType.RegistrationToken) && ( + + + {requiredStageInFlows(uiaFlows, AuthType.RegistrationToken) + ? 'Registration Token' + : 'Registration Token (Optional)'} + + + + )} + {hasStageInFlows(uiaFlows, AuthType.Email) && ( + + + {requiredStageInFlows(uiaFlows, AuthType.Email) ? 'Email' : 'Email (Optional)'} + + + + )} + + {hasStageInFlows(uiaFlows, AuthType.Terms) && termUrl && ( + + + + I accept server{' '} + + Terms and Conditions + + . + + + )} + {registerError?.errcode === RegisterError.RateLimited && ( + + )} + {registerError?.errcode === RegisterError.Forbidden && ( + + )} + {registerError?.errcode === RegisterError.InvalidRequest && ( + + )} + {registerError?.errcode === RegisterError.Unknown && ( + + )} + + + + {registerState.status === AsyncStatus.Success && + formData && + ongoingFlow && + ongoingAuthData && ( + + )} + {registerState.status === AsyncStatus.Loading && ( + }> + + + + + )} + + ); +} diff --git a/src/app/pages/auth/register/Register.tsx b/src/app/pages/auth/register/Register.tsx new file mode 100644 index 00000000..756b13b3 --- /dev/null +++ b/src/app/pages/auth/register/Register.tsx @@ -0,0 +1,95 @@ +import React from 'react'; +import { Box, Text, color } from 'folds'; +import { Link, useSearchParams } from 'react-router-dom'; +import { useAuthServer } from '../../../hooks/useAuthServer'; +import { RegisterFlowStatus, useAuthFlows } from '../../../hooks/useAuthFlows'; +import { useParsedLoginFlows } from '../../../hooks/useParsedLoginFlows'; +import { PasswordRegisterForm, SUPPORTED_REGISTER_STAGES } from '../register/PasswordRegisterForm'; +import { OrDivider } from '../OrDivider'; +import { SSOLogin } from '../SSOLogin'; +import { SupportedUIAFlowsLoader } from '../../../components/SupportedUIAFlowsLoader'; +import { getLoginPath } from '../../pathUtils'; +import { usePathWithOrigin } from '../../../hooks/usePathWithOrigin'; +import { RegisterPathSearchParams } from '../../paths'; + +const getRegisterSearchParams = (searchParams: URLSearchParams): RegisterPathSearchParams => ({ + username: searchParams.get('username') ?? undefined, + email: searchParams.get('email') ?? undefined, + token: searchParams.get('token') ?? undefined, +}); + +export function Register() { + const server = useAuthServer(); + const { loginFlows, registerFlows } = useAuthFlows(); + const [searchParams] = useSearchParams(); + const registerSearchParams = getRegisterSearchParams(searchParams); + const { sso } = useParsedLoginFlows(loginFlows.flows); + + // redirect to /login because only that path handle m.login.token + const ssoRedirectUrl = usePathWithOrigin(getLoginPath(server)); + + return ( + + + Register + + {registerFlows.status === RegisterFlowStatus.RegistrationDisabled && !sso && ( + + Registration has been disabled on this homeserver. + + )} + {registerFlows.status === RegisterFlowStatus.RateLimited && !sso && ( + + You have been rate-limited! Please try after some time. + + )} + {registerFlows.status === RegisterFlowStatus.InvalidRequest && !sso && ( + + Invalid Request! Failed to get any registration options. + + )} + {registerFlows.status === RegisterFlowStatus.FlowRequired && ( + <> + + {(supportedFlows) => + supportedFlows.length === 0 ? ( + + This application does not support registration on this homeserver. + + ) : ( + + ) + } + + + {sso && } + + )} + {sso && ( + <> + 2 + } + /> + + + )} + + Already have an account? Login + + + ); +} diff --git a/src/app/pages/auth/register/index.ts b/src/app/pages/auth/register/index.ts new file mode 100644 index 00000000..7eb55fd5 --- /dev/null +++ b/src/app/pages/auth/register/index.ts @@ -0,0 +1 @@ +export * from './Register'; diff --git a/src/app/pages/auth/register/registerUtil.ts b/src/app/pages/auth/register/registerUtil.ts new file mode 100644 index 00000000..23c3d6a1 --- /dev/null +++ b/src/app/pages/auth/register/registerUtil.ts @@ -0,0 +1,125 @@ +import to from 'await-to-js'; +import { + IAuthData, + MatrixClient, + MatrixError, + RegisterRequest, + RegisterResponse, +} from 'matrix-js-sdk'; +import { useEffect } from 'react'; +import { useNavigate } from 'react-router-dom'; +import { updateLocalStore } from '../../../../client/action/auth'; +import { ROOT_PATH } from '../../paths'; +import { ErrorCode } from '../../../cs-errorcode'; + +export enum RegisterError { + UserTaken = 'UserTaken', + UserInvalid = 'UserInvalid', + UserExclusive = 'UserExclusive', + PasswordWeak = 'PasswordWeak', + PasswordShort = 'PasswordShort', + InvalidRequest = 'InvalidRequest', + Forbidden = 'Forbidden', + RateLimited = 'RateLimited', + Unknown = 'Unknown', +} + +export type CustomRegisterResponse = { + baseUrl: string; + response: RegisterResponse; +}; +export type RegisterResult = [IAuthData, undefined] | [undefined, CustomRegisterResponse]; +export const register = async ( + mx: MatrixClient, + requestData: RegisterRequest +): Promise => { + const [err, res] = await to(mx.registerRequest(requestData)); + + if (err) { + if (err.httpStatus === 401) { + const authData = err.data as IAuthData; + return [authData, undefined]; + } + + if (err.errcode === ErrorCode.M_USER_IN_USE) { + throw new MatrixError({ + errcode: RegisterError.UserTaken, + }); + } + if (err.errcode === ErrorCode.M_INVALID_USERNAME) { + throw new MatrixError({ + errcode: RegisterError.UserInvalid, + }); + } + if (err.errcode === ErrorCode.M_EXCLUSIVE) { + throw new MatrixError({ + errcode: RegisterError.UserExclusive, + }); + } + if (err.errcode === ErrorCode.M_WEAK_PASSWORD) { + throw new MatrixError({ + errcode: RegisterError.PasswordWeak, + error: err.data.error, + }); + } + if (err.errcode === ErrorCode.M_PASSWORD_TOO_SHORT) { + throw new MatrixError({ + errcode: RegisterError.PasswordShort, + error: err.data.error, + }); + } + + if (err.httpStatus === 429) { + throw new MatrixError({ + errcode: RegisterError.RateLimited, + }); + } + + if (err.httpStatus === 400) { + throw new MatrixError({ + errcode: RegisterError.InvalidRequest, + }); + } + + if (err.httpStatus === 403) { + throw new MatrixError({ + errcode: RegisterError.Forbidden, + }); + } + + throw new MatrixError({ + errcode: RegisterError.Unknown, + error: err.data.error, + }); + } + return [ + undefined, + { + baseUrl: mx.baseUrl, + response: res, + }, + ]; +}; + +export const useRegisterComplete = (data?: CustomRegisterResponse) => { + const navigate = useNavigate(); + + useEffect(() => { + if (data) { + const { response, baseUrl } = data; + + const userId = response.user_id; + const accessToken = response.access_token; + const deviceId = response.device_id; + + if (accessToken && deviceId) { + updateLocalStore(accessToken, deviceId, userId, baseUrl); + // TODO: add after register redirect url + navigate(ROOT_PATH, { replace: true }); + } else { + // TODO: navigate to login with userId + navigate(ROOT_PATH, { replace: true }); + } + } + }, [data, navigate]); +}; diff --git a/src/app/pages/auth/reset-password/PasswordResetForm.tsx b/src/app/pages/auth/reset-password/PasswordResetForm.tsx new file mode 100644 index 00000000..7c71de02 --- /dev/null +++ b/src/app/pages/auth/reset-password/PasswordResetForm.tsx @@ -0,0 +1,274 @@ +import React, { FormEventHandler, useCallback, useEffect, useMemo, useState } from 'react'; +import { + Box, + Button, + Dialog, + Input, + Overlay, + OverlayBackdrop, + OverlayCenter, + Spinner, + Text, + color, + config, +} from 'folds'; +import { useNavigate } from 'react-router-dom'; +import FocusTrap from 'focus-trap-react'; +import { AuthDict, AuthType, MatrixError, createClient } from 'matrix-js-sdk'; +import { useAutoDiscoveryInfo } from '../../../hooks/useAutoDiscoveryInfo'; +import { AsyncStatus, useAsyncCallback } from '../../../hooks/useAsyncCallback'; +import { useAuthServer } from '../../../hooks/useAuthServer'; +import { usePasswordEmail } from '../../../hooks/usePasswordEmail'; +import { PasswordInput } from '../../../components/password-input/PasswordInput'; +import { ConfirmPasswordMatch } from '../../../components/ConfirmPasswordMatch'; +import { FieldError } from '../FiledError'; +import { UIAFlowOverlay } from '../../../components/UIAFlowOverlay'; +import { EmailStageDialog } from '../../../components/uia-stages'; +import { ResetPasswordResult, resetPassword } from './resetPasswordUtil'; +import { getLoginPath, withSearchParam } from '../../pathUtils'; +import { LoginPathSearchParams } from '../../paths'; +import { getUIAError, getUIAErrorCode } from '../../../utils/matrix-uia'; + +type FormData = { + email: string; + password: string; + clientSecret: string; +}; + +function ResetPasswordComplete({ email }: { email?: string }) { + const server = useAuthServer(); + + const navigate = useNavigate(); + + const handleClick = () => { + const path = getLoginPath(server); + if (email) { + navigate(withSearchParam(path, { email })); + return; + } + navigate(path); + }; + + return ( + }> + + + + + + Password has been reset successfully. Please login with your new password. + + + + + + + + ); +} + +type PasswordResetFormProps = { + defaultEmail?: string; +}; +export function PasswordResetForm({ defaultEmail }: PasswordResetFormProps) { + const server = useAuthServer(); + + const serverDiscovery = useAutoDiscoveryInfo(); + const baseUrl = serverDiscovery['m.homeserver'].base_url; + const mx = useMemo(() => createClient({ baseUrl }), [baseUrl]); + + const [formData, setFormData] = useState(); + + const [passwordEmailState, passwordEmail] = usePasswordEmail(mx); + + const [resetPasswordState, handleResetPassword] = useAsyncCallback< + ResetPasswordResult, + MatrixError, + [AuthDict, string] + >(useCallback(async (authDict, newPassword) => resetPassword(mx, authDict, newPassword), [mx])); + + const [ongoingAuthData, resetPasswordResult] = + resetPasswordState.status === AsyncStatus.Success ? resetPasswordState.data : []; + const resetPasswordError = + resetPasswordState.status === AsyncStatus.Error ? resetPasswordState.error : undefined; + + const flowErrorCode = ongoingAuthData && getUIAErrorCode(ongoingAuthData); + const flowError = ongoingAuthData && getUIAError(ongoingAuthData); + + let waitingToVerifyEmail = true; + if (resetPasswordResult) waitingToVerifyEmail = false; + if (ongoingAuthData && flowErrorCode === undefined) waitingToVerifyEmail = false; + if (resetPasswordError) waitingToVerifyEmail = false; + if (resetPasswordState.status === AsyncStatus.Loading) waitingToVerifyEmail = false; + + // We only support UIA m.login.password stage for reset password + // So we will assume to process it as soon as + // we have 401 with no error on initial request. + useEffect(() => { + if (formData && ongoingAuthData && !flowErrorCode) { + handleResetPassword( + { + type: AuthType.Password, + identifier: { + type: 'm.id.thirdparty', + medium: 'email', + address: formData.email, + }, + password: formData.password, + }, + formData.password + ); + } + }, [ongoingAuthData, flowErrorCode, formData, handleResetPassword]); + + const handleSubmit: FormEventHandler = (evt) => { + evt.preventDefault(); + const { emailInput, passwordInput, confirmPasswordInput } = evt.target as HTMLFormElement & { + emailInput: HTMLInputElement; + passwordInput: HTMLInputElement; + confirmPasswordInput: HTMLInputElement; + }; + + const email = emailInput.value.trim(); + const password = passwordInput.value; + const confirmPassword = confirmPasswordInput.value; + if (!email) { + emailInput.focus(); + return; + } + if (password !== confirmPassword) return; + + const clientSecret = mx.generateClientSecret(); + passwordEmail(email, clientSecret); + setFormData({ + email, + password, + clientSecret, + }); + }; + + const handleCancel = () => { + window.location.reload(); + }; + + const handleSubmitRequest = useCallback( + (authDict: AuthDict) => { + if (!formData) return; + const { password } = formData; + handleResetPassword(authDict, password); + }, + [formData, handleResetPassword] + ); + + return ( + + + Homeserver {server} will send you an email to let you reset your password. + + + + Email + + + {passwordEmailState.status === AsyncStatus.Error && ( + + )} + + + {(match, doMatch, passRef, confPassRef) => ( + <> + + + New Password + + + + + + Confirm Password + + + + + )} + + {resetPasswordError && ( + + )} + + + + {resetPasswordResult && } + + {passwordEmailState.status === AsyncStatus.Success && formData && waitingToVerifyEmail && ( + + + + )} + + } + > + + + + + + ); +} diff --git a/src/app/pages/auth/reset-password/ResetPassword.tsx b/src/app/pages/auth/reset-password/ResetPassword.tsx new file mode 100644 index 00000000..1ada9afd --- /dev/null +++ b/src/app/pages/auth/reset-password/ResetPassword.tsx @@ -0,0 +1,36 @@ +import { Box, Text } from 'folds'; +import React from 'react'; +import { Link, useSearchParams } from 'react-router-dom'; +import { getLoginPath } from '../../pathUtils'; +import { useAuthServer } from '../../../hooks/useAuthServer'; +import { PasswordResetForm } from './PasswordResetForm'; + +export type ResetPasswordSearchParams = { + email?: string; +}; + +const getResetPasswordSearchParams = ( + searchParams: URLSearchParams +): ResetPasswordSearchParams => ({ + email: searchParams.get('email') ?? undefined, +}); + +export function ResetPassword() { + const server = useAuthServer(); + const [searchParams] = useSearchParams(); + const resetPasswordSearchParams = getResetPasswordSearchParams(searchParams); + + return ( + + + Reset Password + + + + + + Remember your password? Login + + + ); +} diff --git a/src/app/pages/auth/reset-password/index.ts b/src/app/pages/auth/reset-password/index.ts new file mode 100644 index 00000000..0e85ecf3 --- /dev/null +++ b/src/app/pages/auth/reset-password/index.ts @@ -0,0 +1 @@ +export * from './ResetPassword'; diff --git a/src/app/pages/auth/reset-password/resetPasswordUtil.ts b/src/app/pages/auth/reset-password/resetPasswordUtil.ts new file mode 100644 index 00000000..5eb436fa --- /dev/null +++ b/src/app/pages/auth/reset-password/resetPasswordUtil.ts @@ -0,0 +1,23 @@ +import to from 'await-to-js'; +import { AuthDict, IAuthData, MatrixClient, MatrixError } from 'matrix-js-sdk'; + +export type ResetPasswordResponse = Record; +export type ResetPasswordResult = [IAuthData, undefined] | [undefined, ResetPasswordResponse]; +export const resetPassword = async ( + mx: MatrixClient, + authDict: AuthDict, + newPassword: string +): Promise => { + const [err, res] = await to( + mx.setPassword(authDict, newPassword, false) + ); + + if (err) { + if (err.httpStatus === 401) { + const authData = err.data as IAuthData; + return [authData, undefined]; + } + throw err; + } + return [undefined, res]; +}; diff --git a/src/app/pages/auth/styles.css.ts b/src/app/pages/auth/styles.css.ts new file mode 100644 index 00000000..5834ad84 --- /dev/null +++ b/src/app/pages/auth/styles.css.ts @@ -0,0 +1,53 @@ +import { style } from '@vanilla-extract/css'; +import { DefaultReset, color, config, toRem } from 'folds'; + +export const AuthLayout = style({ + minHeight: '100%', + backgroundColor: color.Background.Container, + color: color.Background.OnContainer, + padding: config.space.S400, + paddingRight: config.space.S200, + paddingBottom: 0, + position: 'relative', +}); + +export const AuthCard = style({ + marginTop: '1vh', + maxWidth: toRem(460), + width: '100%', + backgroundColor: color.Surface.Container, + color: color.Surface.OnContainer, + borderRadius: config.radii.R400, + boxShadow: config.shadow.E100, + border: `${config.borderWidth.B300} solid ${color.Surface.ContainerLine}`, + overflow: 'hidden', +}); + +export const AuthLogo = style([ + DefaultReset, + { + width: toRem(26), + height: toRem(26), + + borderRadius: '50%', + }, +]); + +export const AuthHeader = style({ + padding: `0 ${config.space.S400}`, + borderBottomWidth: config.borderWidth.B300, +}); + +export const AuthCardContent = style({ + maxWidth: toRem(402), + width: '100%', + margin: 'auto', + padding: config.space.S400, + paddingTop: config.space.S700, + paddingBottom: toRem(44), + gap: toRem(44), +}); + +export const AuthFooter = style({ + padding: config.space.S200, +}); diff --git a/src/app/pages/pathUtils.ts b/src/app/pages/pathUtils.ts new file mode 100644 index 00000000..db39ce39 --- /dev/null +++ b/src/app/pages/pathUtils.ts @@ -0,0 +1,28 @@ +import { generatePath } from 'react-router-dom'; +import { LOGIN_PATH, REGISTER_PATH, RESET_PASSWORD_PATH, ROOT_PATH } from './paths'; + +export const withSearchParam = >( + path: string, + searchParam: T +): string => { + const params = new URLSearchParams(searchParam); + + return `${path}?${params}`; +}; + +export const getRootPath = (): string => ROOT_PATH; + +export const getLoginPath = (server?: string): string => { + const params = server ? { server: encodeURIComponent(server) } : undefined; + return generatePath(LOGIN_PATH, params); +}; + +export const getRegisterPath = (server?: string): string => { + const params = server ? { server: encodeURIComponent(server) } : undefined; + return generatePath(REGISTER_PATH, params); +}; + +export const getResetPasswordPath = (server?: string): string => { + const params = server ? { server: encodeURIComponent(server) } : undefined; + return generatePath(RESET_PASSWORD_PATH, params); +}; diff --git a/src/app/pages/paths.ts b/src/app/pages/paths.ts new file mode 100644 index 00000000..cd622641 --- /dev/null +++ b/src/app/pages/paths.ts @@ -0,0 +1,17 @@ +export const ROOT_PATH = '/'; + +export type LoginPathSearchParams = { + username?: string; + email?: string; + loginToken?: string; +}; +export const LOGIN_PATH = '/login/:server?/'; + +export type RegisterPathSearchParams = { + username?: string; + email?: string; + token?: string; +}; +export const REGISTER_PATH = '/register/:server?/'; + +export const RESET_PASSWORD_PATH = '/reset-password/:server?/'; diff --git a/src/app/state/hooks/inviteList.ts b/src/app/state/hooks/inviteList.ts index f8b7e057..ffe44445 100644 --- a/src/app/state/hooks/inviteList.ts +++ b/src/app/state/hooks/inviteList.ts @@ -1,28 +1,26 @@ -import { useAtomValue, WritableAtom } from 'jotai'; +import { useAtomValue } from 'jotai'; import { selectAtom } from 'jotai/utils'; import { MatrixClient } from 'matrix-js-sdk'; import { useCallback } from 'react'; import { isDirectInvite, isRoom, isSpace, isUnsupportedRoom } from '../../utils/room'; -import { compareRoomsEqual, RoomsAction } from '../utils'; -import { MDirectAction } from '../mDirectList'; +import { compareRoomsEqual } from '../utils'; +import { mDirectAtom } from '../mDirectList'; +import { allInvitesAtom } from '../inviteList'; -export const useSpaceInvites = ( - mx: MatrixClient, - allInvitesAtom: WritableAtom -) => { +export const useSpaceInvites = (mx: MatrixClient, invitesAtom: typeof allInvitesAtom) => { const selector = useCallback( (rooms: string[]) => rooms.filter((roomId) => isSpace(mx.getRoom(roomId))), [mx] ); - return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(invitesAtom, selector, compareRoomsEqual)); }; export const useRoomInvites = ( mx: MatrixClient, - allInvitesAtom: WritableAtom, - mDirectAtom: WritableAtom, MDirectAction> + invitesAtom: typeof allInvitesAtom, + directAtom: typeof mDirectAtom ) => { - const mDirects = useAtomValue(mDirectAtom); + const mDirects = useAtomValue(directAtom); const selector = useCallback( (rooms: string[]) => rooms.filter( @@ -32,15 +30,15 @@ export const useRoomInvites = ( ), [mx, mDirects] ); - return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(invitesAtom, selector, compareRoomsEqual)); }; export const useDirectInvites = ( mx: MatrixClient, - allInvitesAtom: WritableAtom, - mDirectAtom: WritableAtom, MDirectAction> + invitesAtom: typeof allInvitesAtom, + directAtom: typeof mDirectAtom ) => { - const mDirects = useAtomValue(mDirectAtom); + const mDirects = useAtomValue(directAtom); const selector = useCallback( (rooms: string[]) => rooms.filter( @@ -48,16 +46,13 @@ export const useDirectInvites = ( ), [mx, mDirects] ); - return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(invitesAtom, selector, compareRoomsEqual)); }; -export const useUnsupportedInvites = ( - mx: MatrixClient, - allInvitesAtom: WritableAtom -) => { +export const useUnsupportedInvites = (mx: MatrixClient, invitesAtom: typeof allInvitesAtom) => { const selector = useCallback( (rooms: string[]) => rooms.filter((roomId) => isUnsupportedRoom(mx.getRoom(roomId))), [mx] ); - return useAtomValue(selectAtom(allInvitesAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(invitesAtom, selector, compareRoomsEqual)); }; diff --git a/src/app/state/hooks/roomList.ts b/src/app/state/hooks/roomList.ts index 5d0890bd..c0a7bfb8 100644 --- a/src/app/state/hooks/roomList.ts +++ b/src/app/state/hooks/roomList.ts @@ -1,54 +1,52 @@ -import { useAtomValue, WritableAtom } from 'jotai'; +import { useAtomValue } from 'jotai'; import { selectAtom } from 'jotai/utils'; import { MatrixClient } from 'matrix-js-sdk'; import { useCallback } from 'react'; import { isRoom, isSpace, isUnsupportedRoom } from '../../utils/room'; -import { compareRoomsEqual, RoomsAction } from '../utils'; -import { MDirectAction } from '../mDirectList'; +import { compareRoomsEqual } from '../utils'; +import { mDirectAtom } from '../mDirectList'; +import { allRoomsAtom } from '../roomList'; -export const useSpaces = (mx: MatrixClient, allRoomsAtom: WritableAtom) => { +export const useSpaces = (mx: MatrixClient, roomsAtom: typeof allRoomsAtom) => { const selector = useCallback( (rooms: string[]) => rooms.filter((roomId) => isSpace(mx.getRoom(roomId))), [mx] ); - return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(roomsAtom, selector, compareRoomsEqual)); }; export const useRooms = ( mx: MatrixClient, - allRoomsAtom: WritableAtom, - mDirectAtom: WritableAtom, MDirectAction> + roomsAtom: typeof allRoomsAtom, + directAtom: typeof mDirectAtom ) => { - const mDirects = useAtomValue(mDirectAtom); + const mDirects = useAtomValue(directAtom); const selector = useCallback( (rooms: string[]) => rooms.filter((roomId) => isRoom(mx.getRoom(roomId)) && !mDirects.has(roomId)), [mx, mDirects] ); - return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(roomsAtom, selector, compareRoomsEqual)); }; export const useDirects = ( mx: MatrixClient, - allRoomsAtom: WritableAtom, - mDirectAtom: WritableAtom, MDirectAction> + roomsAtom: typeof allRoomsAtom, + directAtom: typeof mDirectAtom ) => { - const mDirects = useAtomValue(mDirectAtom); + const mDirects = useAtomValue(directAtom); const selector = useCallback( (rooms: string[]) => rooms.filter((roomId) => isRoom(mx.getRoom(roomId)) && mDirects.has(roomId)), [mx, mDirects] ); - return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(roomsAtom, selector, compareRoomsEqual)); }; -export const useUnsupportedRooms = ( - mx: MatrixClient, - allRoomsAtom: WritableAtom -) => { +export const useUnsupportedRooms = (mx: MatrixClient, roomsAtom: typeof allRoomsAtom) => { const selector = useCallback( (rooms: string[]) => rooms.filter((roomId) => isUnsupportedRoom(mx.getRoom(roomId))), [mx] ); - return useAtomValue(selectAtom(allRoomsAtom, selector, compareRoomsEqual)); + return useAtomValue(selectAtom(roomsAtom, selector, compareRoomsEqual)); }; diff --git a/src/app/state/hooks/settings.ts b/src/app/state/hooks/settings.ts index 43b56553..d90c7664 100644 --- a/src/app/state/hooks/settings.ts +++ b/src/app/state/hooks/settings.ts @@ -1,16 +1,16 @@ -import { atom, useAtomValue, useSetAtom, WritableAtom } from 'jotai'; -import { SetAtom } from 'jotai/core/atom'; +import { atom, useAtomValue, useSetAtom } from 'jotai'; import { selectAtom } from 'jotai/utils'; import { useMemo } from 'react'; -import { Settings } from '../settings'; +import { Settings, settingsAtom as sAtom } from '../settings'; -export const useSetSetting = ( - settingsAtom: WritableAtom, - key: K -) => { +export type SettingSetter = + | Settings[K] + | ((s: Settings[K]) => Settings[K]); + +export const useSetSetting = (settingsAtom: typeof sAtom, key: K) => { const setterAtom = useMemo( () => - atom Settings[K])>(null, (get, set, value) => { + atom], undefined>(null, (get, set, value) => { const s = { ...get(settingsAtom) }; s[key] = typeof value === 'function' ? value(s[key]) : value; set(settingsAtom, s); @@ -22,9 +22,9 @@ export const useSetSetting = ( }; export const useSetting = ( - settingsAtom: WritableAtom, + settingsAtom: typeof sAtom, key: K -): [Settings[K], SetAtom Settings[K]), void>] => { +): [Settings[K], ReturnType>] => { const selector = useMemo(() => (s: Settings) => s[key], [key]); const setting = useAtomValue(selectAtom(settingsAtom, selector)); diff --git a/src/app/state/inviteList.ts b/src/app/state/inviteList.ts index 463fd352..a6dc7966 100644 --- a/src/app/state/inviteList.ts +++ b/src/app/state/inviteList.ts @@ -5,7 +5,7 @@ import { Membership } from '../../types/matrix/room'; import { RoomsAction, useBindRoomsWithMembershipsAtom } from './utils'; const baseRoomsAtom = atom([]); -export const allInvitesAtom = atom( +export const allInvitesAtom = atom( (get) => get(baseRoomsAtom), (get, set, action) => { if (action.type === 'INITIALIZE') { @@ -22,7 +22,7 @@ export const allInvitesAtom = atom( export const useBindAllInvitesAtom = ( mx: MatrixClient, - allRooms: WritableAtom + allRooms: WritableAtom ) => { useBindRoomsWithMembershipsAtom( mx, diff --git a/src/app/state/list.ts b/src/app/state/list.ts index 4f5a6191..670e6db1 100644 --- a/src/app/state/list.ts +++ b/src/app/state/list.ts @@ -12,7 +12,7 @@ export type ListAction = export const createListAtom = () => { const baseListAtom = atom([]); - return atom>( + return atom], undefined>( (get) => get(baseListAtom), (get, set, action) => { const items = get(baseListAtom); diff --git a/src/app/state/mDirectList.ts b/src/app/state/mDirectList.ts index 96e2f0d0..1fa8311f 100644 --- a/src/app/state/mDirectList.ts +++ b/src/app/state/mDirectList.ts @@ -1,4 +1,4 @@ -import { atom, useSetAtom, WritableAtom } from 'jotai'; +import { atom, useSetAtom } from 'jotai'; import { ClientEvent, MatrixClient, MatrixEvent } from 'matrix-js-sdk'; import { useEffect } from 'react'; import { AccountDataEvent } from '../../types/matrix/accountData'; @@ -10,17 +10,14 @@ export type MDirectAction = { }; const baseMDirectAtom = atom(new Set()); -export const mDirectAtom = atom, MDirectAction>( +export const mDirectAtom = atom, [MDirectAction], undefined>( (get) => get(baseMDirectAtom), (get, set, action) => { set(baseMDirectAtom, action.rooms); } ); -export const useBindMDirectAtom = ( - mx: MatrixClient, - mDirect: WritableAtom, MDirectAction> -) => { +export const useBindMDirectAtom = (mx: MatrixClient, mDirect: typeof mDirectAtom) => { const setMDirect = useSetAtom(mDirect); useEffect(() => { diff --git a/src/app/state/mutedRoomList.ts b/src/app/state/mutedRoomList.ts index d456f853..f818450b 100644 --- a/src/app/state/mutedRoomList.ts +++ b/src/app/state/mutedRoomList.ts @@ -1,4 +1,4 @@ -import { atom, WritableAtom, useSetAtom } from 'jotai'; +import { atom, useSetAtom } from 'jotai'; import { ClientEvent, IPushRule, IPushRules, MatrixClient, MatrixEvent } from 'matrix-js-sdk'; import { useEffect } from 'react'; import { MuteChanges } from '../../types/matrix/room'; @@ -21,7 +21,7 @@ export const muteChangesAtom = atom({ }); const baseMutedRoomsAtom = atom(new Set()); -export const mutedRoomsAtom = atom, MutedRoomsUpdate>( +export const mutedRoomsAtom = atom, [MutedRoomsUpdate], undefined>( (get) => get(baseMutedRoomsAtom), (get, set, action) => { const mutedRooms = new Set([...get(mutedRoomsAtom)]); @@ -45,10 +45,7 @@ export const mutedRoomsAtom = atom, MutedRoomsUpdate>( } ); -export const useBindMutedRoomsAtom = ( - mx: MatrixClient, - mutedAtom: WritableAtom, MutedRoomsUpdate> -) => { +export const useBindMutedRoomsAtom = (mx: MatrixClient, mutedAtom: typeof mutedRoomsAtom) => { const setMuted = useSetAtom(mutedAtom); useEffect(() => { diff --git a/src/app/state/roomList.ts b/src/app/state/roomList.ts index 7a793d8c..e0fa170f 100644 --- a/src/app/state/roomList.ts +++ b/src/app/state/roomList.ts @@ -1,11 +1,11 @@ -import { atom, WritableAtom } from 'jotai'; +import { atom } from 'jotai'; import { MatrixClient } from 'matrix-js-sdk'; import { useMemo } from 'react'; import { Membership } from '../../types/matrix/room'; import { RoomsAction, useBindRoomsWithMembershipsAtom } from './utils'; const baseRoomsAtom = atom([]); -export const allRoomsAtom = atom( +export const allRoomsAtom = atom( (get) => get(baseRoomsAtom), (get, set, action) => { if (action.type === 'INITIALIZE') { @@ -19,10 +19,7 @@ export const allRoomsAtom = atom( }); } ); -export const useBindAllRoomsAtom = ( - mx: MatrixClient, - allRooms: WritableAtom -) => { +export const useBindAllRoomsAtom = (mx: MatrixClient, allRooms: typeof allRoomsAtom) => { useBindRoomsWithMembershipsAtom( mx, allRooms, diff --git a/src/app/state/roomToParents.ts b/src/app/state/roomToParents.ts index 374ddd57..1e2ef18c 100644 --- a/src/app/state/roomToParents.ts +++ b/src/app/state/roomToParents.ts @@ -1,5 +1,5 @@ import produce from 'immer'; -import { atom, useSetAtom, WritableAtom } from 'jotai'; +import { atom, useSetAtom } from 'jotai'; import { ClientEvent, MatrixClient, @@ -34,7 +34,7 @@ export type RoomToParentsAction = }; const baseRoomToParents = atom(new Map()); -export const roomToParentsAtom = atom( +export const roomToParentsAtom = atom( (get) => get(baseRoomToParents), (get, set, action) => { if (action.type === 'INITIALIZE') { @@ -69,7 +69,7 @@ export const roomToParentsAtom = atom( export const useBindRoomToParentsAtom = ( mx: MatrixClient, - roomToParents: WritableAtom + roomToParents: typeof roomToParentsAtom ) => { const setRoomToParents = useSetAtom(roomToParents); diff --git a/src/app/state/roomToUnread.ts b/src/app/state/roomToUnread.ts index 0c7b6bd6..ad388763 100644 --- a/src/app/state/roomToUnread.ts +++ b/src/app/state/roomToUnread.ts @@ -1,5 +1,5 @@ import produce from 'immer'; -import { atom, useSetAtom, PrimitiveAtom, WritableAtom, useAtomValue } from 'jotai'; +import { atom, useSetAtom, PrimitiveAtom, useAtomValue } from 'jotai'; import { IRoomTimelineData, MatrixClient, MatrixEvent, Room, RoomEvent } from 'matrix-js-sdk'; import { ReceiptContent, ReceiptType } from 'matrix-js-sdk/lib/@types/read_receipts'; import { useEffect } from 'react'; @@ -82,7 +82,7 @@ const deleteUnreadInfo = (roomToUnread: RoomToUnread, allParents: Set, r }; const baseRoomToUnread = atom(new Map()); -export const roomToUnreadAtom = atom( +export const roomToUnreadAtom = atom( (get) => get(baseRoomToUnread), (get, set, action) => { if (action.type === 'RESET') { @@ -127,7 +127,7 @@ export const roomToUnreadAtom = atom( export const useBindRoomToUnreadAtom = ( mx: MatrixClient, - unreadAtom: WritableAtom, + unreadAtom: typeof roomToUnreadAtom, muteChangesAtom: PrimitiveAtom ) => { const setUnreadAtom = useSetAtom(unreadAtom); diff --git a/src/app/state/sessions.ts b/src/app/state/sessions.ts new file mode 100644 index 00000000..85bcd10e --- /dev/null +++ b/src/app/state/sessions.ts @@ -0,0 +1,129 @@ +import { atom } from 'jotai'; +import { + atomWithLocalStorage, + getLocalStorageItem, + setLocalStorageItem, +} from './utils/atomWithLocalStorage'; + +export type Session = { + baseUrl: string; + userId: string; + deviceId: string; + accessToken: string; + expiresInMs?: number; + refreshToken?: string; + fallbackSdkStores?: boolean; +}; + +export type Sessions = Session[]; +export type SessionStoreName = { + sync: string; + crypto: string; +}; + +/** + * Migration code for old session + */ +const FALLBACK_STORE_NAME: SessionStoreName = { + sync: 'web-sync-store', + crypto: 'crypto-store', +} as const; + +const removeFallbackSession = () => { + localStorage.removeItem('cinny_hs_base_url'); + localStorage.removeItem('cinny_user_id'); + localStorage.removeItem('cinny_device_id'); + localStorage.removeItem('cinny_access_token'); +}; +const getFallbackSession = (): Session | undefined => { + const baseUrl = localStorage.getItem('cinny_hs_base_url'); + const userId = localStorage.getItem('cinny_user_id'); + const deviceId = localStorage.getItem('cinny_device_id'); + const accessToken = localStorage.getItem('cinny_access_token'); + + if (baseUrl && userId && deviceId && accessToken) { + const session: Session = { + baseUrl, + userId, + deviceId, + accessToken, + fallbackSdkStores: true, + }; + + return session; + } + + return undefined; +}; +/** + * End of migration code for old session + */ + +export const getSessionStoreName = (session: Session): SessionStoreName => { + if (session.fallbackSdkStores) { + return FALLBACK_STORE_NAME; + } + + return { + sync: `sync${session.userId}`, + crypto: `crypto${session.userId}`, + }; +}; + +export const MATRIX_SESSIONS_KEY = 'matrixSessions'; +const baseSessionsAtom = atomWithLocalStorage( + MATRIX_SESSIONS_KEY, + (key) => { + const defaultSessions: Sessions = []; + const sessions = getLocalStorageItem(key, defaultSessions); + + // Before multi account support session was stored + // as multiple item in local storage. + // So we need these migration code. + const fallbackSession = getFallbackSession(); + if (fallbackSession) { + removeFallbackSession(); + sessions.push(fallbackSession); + setLocalStorageItem(key, sessions); + } + return sessions; + }, + (key, value) => { + setLocalStorageItem(key, value); + } +); + +export type SessionsAction = + | { + type: 'PUT'; + session: Session; + } + | { + type: 'DELETE'; + session: Session; + }; + +export const sessionsAtom = atom( + (get) => get(baseSessionsAtom), + (get, set, action) => { + if (action.type === 'PUT') { + const sessions = [...get(baseSessionsAtom)]; + const sessionIndex = sessions.findIndex( + (session) => session.userId === action.session.userId + ); + if (sessionIndex === -1) { + sessions.push(action.session); + } else { + sessions.splice(sessionIndex, 1, action.session); + } + set(baseSessionsAtom, sessions); + return; + } + if (action.type === 'DELETE') { + const sessions = get(baseSessionsAtom).filter( + (session) => session.userId !== action.session.userId + ); + set(baseSessionsAtom, sessions); + } + } +); diff --git a/src/app/state/settings.ts b/src/app/state/settings.ts index 92d40ff8..061931ea 100644 --- a/src/app/state/settings.ts +++ b/src/app/state/settings.ts @@ -64,7 +64,7 @@ export const setSettings = (settings: Settings) => { }; const baseSettings = atom(getSettings()); -export const settingsAtom = atom( +export const settingsAtom = atom( (get) => get(baseSettings), (get, set, update) => { set(baseSettings, update); diff --git a/src/app/state/tabToRoom.ts b/src/app/state/tabToRoom.ts index 2f4ee92a..b9472d9f 100644 --- a/src/app/state/tabToRoom.ts +++ b/src/app/state/tabToRoom.ts @@ -14,7 +14,7 @@ type TabToRoomAction = { }; const baseTabToRoom = atom(new Map()); -export const tabToRoomAtom = atom( +export const tabToRoomAtom = atom( (get) => get(baseTabToRoom), (get, set, action) => { if (action.type === 'PUT') { diff --git a/src/app/state/typingMembers.ts b/src/app/state/typingMembers.ts index b87817d1..c77c91be 100644 --- a/src/app/state/typingMembers.ts +++ b/src/app/state/typingMembers.ts @@ -23,7 +23,11 @@ export type IRoomIdToTypingMembersAction = }; const baseRoomIdToTypingMembersAtom = atom(new Map()); -export const roomIdToTypingMembersAtom = atom( +export const roomIdToTypingMembersAtom = atom< + IRoomIdToTypingMembers, + [IRoomIdToTypingMembersAction], + undefined +>( (get) => get(baseRoomIdToTypingMembersAtom), (get, set, action) => { const roomIdToTypingMembers = get(baseRoomIdToTypingMembersAtom); diff --git a/src/app/state/upload.ts b/src/app/state/upload.ts index d92b93d3..13869afb 100644 --- a/src/app/state/upload.ts +++ b/src/app/state/upload.ts @@ -57,7 +57,7 @@ export const createUploadAtom = (file: TUploadContent) => { file, status: UploadStatus.Idle, }); - return atom( + return atom( (get) => get(baseUploadAtom), (get, set, update) => { const uploadState = get(baseUploadAtom); diff --git a/src/app/state/utils.ts b/src/app/state/utils.ts index 355c9411..4c4caa5c 100644 --- a/src/app/state/utils.ts +++ b/src/app/state/utils.ts @@ -15,7 +15,7 @@ export type RoomsAction = export const useBindRoomsWithMembershipsAtom = ( mx: MatrixClient, - roomsAtom: WritableAtom, + roomsAtom: WritableAtom, memberships: Membership[] ) => { const setRoomsAtom = useSetAtom(roomsAtom); diff --git a/src/app/state/utils/atomWithLocalStorage.ts b/src/app/state/utils/atomWithLocalStorage.ts new file mode 100644 index 00000000..f17d3a3d --- /dev/null +++ b/src/app/state/utils/atomWithLocalStorage.ts @@ -0,0 +1,51 @@ +import { atom } from 'jotai'; + +export const getLocalStorageItem = (key: string, defaultValue: T): T => { + const item = localStorage.getItem(key); + if (item === null) return defaultValue; + if (item === 'undefined') return undefined as T; + try { + return JSON.parse(item) as T; + } catch { + return defaultValue; + } +}; + +export const setLocalStorageItem = (key: string, value: T) => { + localStorage.setItem(key, JSON.stringify(value)); +}; + +export type GetLocalStorageItem = (key: string) => T; +export type SetLocalStorageItem = (key: string, value: T) => void; + +export const atomWithLocalStorage = ( + key: string, + getItem: GetLocalStorageItem, + setItem: SetLocalStorageItem +) => { + const value = getItem(key); + + const baseAtom = atom(value); + + baseAtom.onMount = (setAtom) => { + const handleChange = (evt: StorageEvent) => { + if (evt.key !== key) return; + setAtom(getItem(key)); + }; + + window.addEventListener('storage', handleChange); + return () => { + window.removeEventListener('storage', handleChange); + }; + }; + + const localStorageAtom = atom( + (get) => get(baseAtom), + (get, set, newValue) => { + set(baseAtom, newValue); + setItem(key, newValue); + } + ); + + return localStorageAtom; +}; diff --git a/src/app/styles/Patterns.css.ts b/src/app/styles/Patterns.css.ts new file mode 100644 index 00000000..e4559416 --- /dev/null +++ b/src/app/styles/Patterns.css.ts @@ -0,0 +1,9 @@ +import { style } from '@vanilla-extract/css'; +import { color, toRem } from 'folds'; + +export const BackgroundDotPattern = style({ + backgroundImage: `radial-gradient(${color.Background.ContainerActive} ${toRem(2)}, ${ + color.Background.Container + } ${toRem(2)})`, + backgroundSize: `${toRem(40)} ${toRem(40)}`, +}); diff --git a/src/app/utils/common.ts b/src/app/utils/common.ts index e007f222..5cbe3806 100644 --- a/src/app/utils/common.ts +++ b/src/app/utils/common.ts @@ -44,6 +44,17 @@ export const fulfilledPromiseSettledResult = (prs: PromiseSettledResult[]) return values; }, []); +export const promiseFulfilledResult = ( + settledResult: PromiseSettledResult +): T | undefined => { + if (settledResult.status === 'fulfilled') return settledResult.value; + return undefined; +}; +export const promiseRejectedResult = (settledResult: PromiseSettledResult): any => { + if (settledResult.status === 'rejected') return settledResult.reason; + return undefined; +}; + export const binarySearch = (items: T[], match: (item: T) => -1 | 0 | 1): T | undefined => { const search = (start: number, end: number): T | undefined => { if (start > end) return undefined; @@ -77,3 +88,10 @@ export const parseGeoUri = (location: string) => { longitude, }; }; + +const START_SLASHES_REG = /^\/+/g; +const END_SLASHES_REG = /\/+$/g; +export const trimLeadingSlash = (str: string): string => str.replace(START_SLASHES_REG, ''); +export const trimTrailingSlash = (str: string): string => str.replace(END_SLASHES_REG, ''); + +export const trimSlash = (str: string): string => trimLeadingSlash(trimTrailingSlash(str)); diff --git a/src/app/utils/matrix-uia.ts b/src/app/utils/matrix-uia.ts new file mode 100644 index 00000000..15c5799c --- /dev/null +++ b/src/app/utils/matrix-uia.ts @@ -0,0 +1,84 @@ +import { AuthType, IAuthData, UIAFlow } from 'matrix-js-sdk'; + +export const getSupportedUIAFlows = (uiaFlows: UIAFlow[], supportedStages: string[]): UIAFlow[] => { + const supportedUIAFlows = uiaFlows.filter((flow) => + flow.stages.every((stage) => supportedStages.includes(stage)) + ); + + return supportedUIAFlows; +}; + +export const getUIACompleted = (authData: IAuthData): string[] => { + const completed = authData.completed ?? []; + return completed; +}; + +export type UIAParams = Record>; +export const getUIAParams = (authData: IAuthData): UIAParams => { + const params = authData.params ?? {}; + return params; +}; + +export const getUIASession = (authData: IAuthData): string | undefined => { + const session = authData.session ?? undefined; + return session; +}; + +export const getUIAErrorCode = (authData: IAuthData): string | undefined => { + const errorCode = + 'errcode' in authData && typeof authData.errcode === 'string' ? authData.errcode : undefined; + + return errorCode; +}; + +export const getUIAError = (authData: IAuthData): string | undefined => { + const errorCode = + 'error' in authData && typeof authData.error === 'string' ? authData.error : undefined; + + return errorCode; +}; + +export const getUIAFlowForStages = (uiaFlows: UIAFlow[], stages: string[]): UIAFlow | undefined => { + const matchedFlows = uiaFlows + .filter((flow) => { + if (flow.stages.length < stages.length) return false; + if (flow.stages.length > stages.length) { + // As a valid flow can also have m.login.dummy type, + // we will pick one extra length flow only if it has dummy + if (flow.stages.length > stages.length + 1) return false; + if (stages.includes(AuthType.Dummy)) return false; + if (flow.stages.includes(AuthType.Dummy)) return true; + return false; + } + return true; + }) + .filter((flow) => stages.every((stage) => flow.stages.includes(stage))); + + if (matchedFlows.length === 0) return undefined; + + matchedFlows.sort((a, b) => a.stages.length - b.stages.length); + return matchedFlows[0]; +}; + +export const hasStageInFlows = (uiaFlows: UIAFlow[], stage: string) => + uiaFlows.some((flow) => flow.stages.includes(stage)); + +export const requiredStageInFlows = (uiaFlows: UIAFlow[], stage: string) => + uiaFlows.every((flow) => flow.stages.includes(stage)); + +export const getLoginTermUrl = (params: UIAParams): string | undefined => { + const terms = params[AuthType.Terms]; + if (terms && 'policies' in terms && typeof terms.policies === 'object') { + if (terms.policies === null) return undefined; + if ('privacy_policy' in terms.policies && typeof terms.policies.privacy_policy === 'object') { + if (terms.policies.privacy_policy === null) return undefined; + const langToPolicy = terms.policies.privacy_policy as Record; + const url = langToPolicy.en?.url; + if (typeof url === 'string') return url; + + const firstKey = Object.keys(langToPolicy)[0]; + return langToPolicy[firstKey]?.url; + } + } + return undefined; +}; diff --git a/src/app/utils/regex.ts b/src/app/utils/regex.ts index 5188bef0..281f1200 100644 --- a/src/app/utils/regex.ts +++ b/src/app/utils/regex.ts @@ -1,5 +1,8 @@ export const HTTP_URL_PATTERN = `https?:\\/\\/(?:www\\.)?(?:[^\\s)]*)(?()[\]\\.,;:\s@\\"]+(\.[^<>()[\]\\.,;:\s@\\"]+)*)|(\\".+\\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + export const URL_NEG_LB = '(? getSecret(cons.secretKey.ACCESS_TOKEN) !== null; - -const secret = { - accessToken: getSecret(cons.secretKey.ACCESS_TOKEN), - deviceId: getSecret(cons.secretKey.DEVICE_ID), - userId: getSecret(cons.secretKey.USER_ID), - baseUrl: getSecret(cons.secretKey.BASE_URL), -}; - -export { - isAuthenticated, - secret, -}; diff --git a/src/client/state/auth.ts b/src/client/state/auth.ts new file mode 100644 index 00000000..9536a927 --- /dev/null +++ b/src/client/state/auth.ts @@ -0,0 +1,12 @@ +import cons from './cons'; + +const isAuthenticated = () => localStorage.getItem(cons.secretKey.ACCESS_TOKEN) !== null; + +const getSecret = () => ({ + accessToken: localStorage.getItem(cons.secretKey.ACCESS_TOKEN), + deviceId: localStorage.getItem(cons.secretKey.DEVICE_ID), + userId: localStorage.getItem(cons.secretKey.USER_ID), + baseUrl: localStorage.getItem(cons.secretKey.BASE_URL), +}); + +export { isAuthenticated, getSecret }; diff --git a/src/ext.d.ts b/src/ext.d.ts index 5593b6e7..72acc587 100644 --- a/src/ext.d.ts +++ b/src/ext.d.ts @@ -1,3 +1,5 @@ +/// + declare module 'browser-encrypt-attachment' { export interface EncryptedAttachmentInfo { v: string; @@ -26,3 +28,8 @@ declare module 'browser-encrypt-attachment' { info: EncryptedAttachmentInfo ): Promise; } + +declare module '*.svg' { + const content: string; + export default content; +} diff --git a/src/index.jsx b/src/index.tsx similarity index 57% rename from src/index.jsx rename to src/index.tsx index a8a76570..1d864203 100644 --- a/src/index.jsx +++ b/src/index.tsx @@ -1,6 +1,6 @@ /* eslint-disable import/first */ import React from 'react'; -import ReactDom from 'react-dom'; +import { createRoot } from 'react-dom/client'; import { enableMapSet } from 'immer'; import '@fontsource/inter/variable.css'; import 'folds/dist/style.css'; @@ -15,7 +15,18 @@ import settings from './client/state/settings'; import App from './app/pages/App'; document.body.classList.add(configClass, varsClass); - settings.applyTheme(); -ReactDom.render(, document.getElementById('root')); +const mountApp = () => { + const rootContainer = document.getElementById('root'); + + if (rootContainer === null) { + console.error('Root container element not found!'); + return; + } + + const root = createRoot(rootContainer); + root.render(); +}; + +mountApp(); diff --git a/src/types/utils.ts b/src/types/utils.ts new file mode 100644 index 00000000..353ace6e --- /dev/null +++ b/src/types/utils.ts @@ -0,0 +1,3 @@ +export type WithRequiredProp = Type & { + [Property in Key]-?: Type[Property]; +}; diff --git a/tsconfig.json b/tsconfig.json index d2f1e8a1..60ff1853 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,6 +8,7 @@ "strict": true, "esModuleInterop": true, "moduleResolution": "Node", + "resolveJsonModule": true, "outDir": "dist", "skipLibCheck": true }, diff --git a/vite.config.js b/vite.config.js index 83573398..20c7765c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -5,7 +5,8 @@ import { viteStaticCopy } from 'vite-plugin-static-copy'; import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; import inject from '@rollup/plugin-inject'; -import { svgLoader } from './viteSvgLoader'; +import { svgLoader } from './viteSvgLoader' +import buildConfig from "./build.config" const copyFiles = { targets: [ @@ -18,7 +19,7 @@ const copyFiles = { dest: '', }, { - src: '_redirects', + src: 'netlify.toml', dest: '', }, { @@ -39,7 +40,7 @@ const copyFiles = { export default defineConfig({ appType: 'spa', publicDir: false, - base: "", + base: buildConfig.base, server: { port: 8080, host: true, From ef2733df4803aeedd6ff34832c62144cc6de0ca0 Mon Sep 17 00:00:00 2001 From: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com> Date: Tue, 23 Jan 2024 14:05:50 +0100 Subject: [PATCH 414/717] Load assets from relative path (#1588) --- public/manifest.json | 20 ++++++++++---------- src/app/plugins/pdfjs-dist.ts | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/public/manifest.json b/public/manifest.json index f1d4a882..acdcd004 100644 --- a/public/manifest.json +++ b/public/manifest.json @@ -6,52 +6,52 @@ "lang": "en-US", "display": "standalone", "orientation": "portrait", - "start_url": "/", + "start_url": "./", "background_color": "#fff", "theme_color": "#fff", "icons": [ { - "src": "/public/android/android-chrome-36x36.png", + "src": "./public/android/android-chrome-36x36.png", "sizes": "36x36", "type": "image/png" }, { - "src": "/public/android/android-chrome-48x48.png", + "src": "./public/android/android-chrome-48x48.png", "sizes": "48x48", "type": "image/png" }, { - "src": "/public/android/android-chrome-72x72.png", + "src": "./public/android/android-chrome-72x72.png", "sizes": "72x72", "type": "image/png" }, { - "src": "/public/android/android-chrome-96x96.png", + "src": "./public/android/android-chrome-96x96.png", "sizes": "96x96", "type": "image/png" }, { - "src": "/public/android/android-chrome-144x144.png", + "src": "./public/android/android-chrome-144x144.png", "sizes": "144x144", "type": "image/png" }, { - "src": "/public/android/android-chrome-192x192.png", + "src": "./public/android/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" }, { - "src": "/public/android/android-chrome-256x256.png", + "src": "./public/android/android-chrome-256x256.png", "sizes": "256x256", "type": "image/png" }, { - "src": "/public/android/android-chrome-384x384.png", + "src": "./public/android/android-chrome-384x384.png", "sizes": "384x384", "type": "image/png" }, { - "src": "/public/android/android-chrome-512x512.png", + "src": "./public/android/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" } diff --git a/src/app/plugins/pdfjs-dist.ts b/src/app/plugins/pdfjs-dist.ts index ccdef5e5..5412ea45 100644 --- a/src/app/plugins/pdfjs-dist.ts +++ b/src/app/plugins/pdfjs-dist.ts @@ -7,7 +7,7 @@ export const usePdfJSLoader = () => useAsyncCallback( useCallback(async () => { const pdf = await import('pdfjs-dist'); - pdf.GlobalWorkerOptions.workerSrc = '/pdf.worker.min.js'; + pdf.GlobalWorkerOptions.workerSrc = 'pdf.worker.min.js'; return pdf; }, []) ); From 983d533452b337b4dc4c9e496a08791193b2818f Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 24 Jan 2024 00:06:55 +1100 Subject: [PATCH 415/717] feat: check IndexedDB support (#1630) * check indexed db support and display message * fix typo --- src/app/pages/App.tsx | 31 +++++++++++++------------ src/app/pages/FeatureCheck.tsx | 42 ++++++++++++++++++++++++++++++++++ src/app/utils/featureCheck.ts | 21 +++++++++++++++++ 3 files changed, 80 insertions(+), 14 deletions(-) create mode 100644 src/app/pages/FeatureCheck.tsx create mode 100644 src/app/utils/featureCheck.ts diff --git a/src/app/pages/App.tsx b/src/app/pages/App.tsx index 6cefe999..62c173f9 100644 --- a/src/app/pages/App.tsx +++ b/src/app/pages/App.tsx @@ -17,6 +17,7 @@ import { isAuthenticated } from '../../client/state/auth'; import Client from '../templates/client/Client'; import { getLoginPath } from './pathUtils'; import { ConfigConfigError, ConfigConfigLoading } from './ConfigConfig'; +import { FeatureCheck } from './FeatureCheck'; const createRouter = (clientConfig: ClientConfig) => { const { hashRouter } = clientConfig; @@ -62,20 +63,22 @@ const createRouter = (clientConfig: ClientConfig) => { // TODO: app crash boundary function App() { return ( - } - error={(err, retry, ignore) => ( - - )} - > - {(clientConfig) => ( - - - - - - )} - + + } + error={(err, retry, ignore) => ( + + )} + > + {(clientConfig) => ( + + + + + + )} + + ); } diff --git a/src/app/pages/FeatureCheck.tsx b/src/app/pages/FeatureCheck.tsx new file mode 100644 index 00000000..abb366a8 --- /dev/null +++ b/src/app/pages/FeatureCheck.tsx @@ -0,0 +1,42 @@ +import React, { ReactNode, useEffect } from 'react'; +import { Box, Dialog, Text, config } from 'folds'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { checkIndexedDBSupport } from '../utils/featureCheck'; +import { SplashScreen } from '../components/splash-screen'; + +export function FeatureCheck({ children }: { children: ReactNode }) { + const [idbSupportState, checkIDBSupport] = useAsyncCallback(checkIndexedDBSupport); + + useEffect(() => { + checkIDBSupport(); + }, [checkIDBSupport]); + + if (idbSupportState.status === AsyncStatus.Success && idbSupportState.data === false) { + return ( + + + + + Missing Browser Feature + + No IndexedDB support found. This application requires IndexedDB to store session + data locally. Please make sure your browser support IndexedDB and have it enabled. + + + + What is IndexedDB? + + + + + + + ); + } + + return children; +} diff --git a/src/app/utils/featureCheck.ts b/src/app/utils/featureCheck.ts new file mode 100644 index 00000000..a9474c31 --- /dev/null +++ b/src/app/utils/featureCheck.ts @@ -0,0 +1,21 @@ +export const checkIndexedDBSupport = async (): Promise => { + const ts = new Date().getTime(); + const dbName = `checkIndexedDBSupport-${ts}`; + return new Promise((resolve) => { + let db; + try { + db = indexedDB.open(dbName); + } catch { + resolve(false); + return; + } + db.onsuccess = () => { + resolve(true); + indexedDB.deleteDatabase(dbName); + }; + db.onerror = () => { + resolve(false); + indexedDB.deleteDatabase(dbName); + }; + }); +}; From 689adde8ae148d2de76bab0d11d7e0e8f35b7439 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 24 Jan 2024 00:07:22 +1100 Subject: [PATCH 416/717] fix: login with sso when app using hash router (#1631) * fix login with sso when app using hash router * disable hash router --- src/app/pages/auth/login/Login.tsx | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/app/pages/auth/login/Login.tsx b/src/app/pages/auth/login/Login.tsx index 29a7b0ce..901b19cb 100644 --- a/src/app/pages/auth/login/Login.tsx +++ b/src/app/pages/auth/login/Login.tsx @@ -8,9 +8,20 @@ import { PasswordLoginForm } from './PasswordLoginForm'; import { SSOLogin } from '../SSOLogin'; import { TokenLogin } from './TokenLogin'; import { OrDivider } from '../OrDivider'; -import { getLoginPath, getRegisterPath } from '../../pathUtils'; +import { getLoginPath, getRegisterPath, withSearchParam } from '../../pathUtils'; import { usePathWithOrigin } from '../../../hooks/usePathWithOrigin'; import { LoginPathSearchParams } from '../../paths'; +import { useClientConfig } from '../../../hooks/useClientConfig'; + +const getLoginTokenSearchParam = () => { + // when using hasRouter query params in existing route + // gets ignored by react-router, so we need to read it ourself + // we only need to read loginToken as it's the only param that + // is provided by external entity. example: SSO login + const parmas = new URLSearchParams(window.location.search); + const loginToken = parmas.get('loginToken'); + return loginToken ?? undefined; +}; const getLoginSearchParams = (searchParams: URLSearchParams): LoginPathSearchParams => ({ username: searchParams.get('username') ?? undefined, @@ -20,10 +31,21 @@ const getLoginSearchParams = (searchParams: URLSearchParams): LoginPathSearchPar export function Login() { const server = useAuthServer(); + const { hashRouter } = useClientConfig(); const { loginFlows } = useAuthFlows(); const [searchParams] = useSearchParams(); const loginSearchParams = getLoginSearchParams(searchParams); const ssoRedirectUrl = usePathWithOrigin(getLoginPath(server)); + const loginTokenForHashRouter = getLoginTokenSearchParam(); + const absoluteLoginPath = usePathWithOrigin(getLoginPath(server)); + + if (hashRouter?.enabled && loginTokenForHashRouter) { + window.location.replace( + withSearchParam(absoluteLoginPath, { + loginToken: loginTokenForHashRouter, + }) + ); + } const parsedFlows = useParsedLoginFlows(loginFlows.flows); From b0796f72d3d1c746825e728ff0e5369f78ed1e1e Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 30 Mar 2024 12:57:56 +1100 Subject: [PATCH 417/717] fix(deps): update dependency katex to v0.16.10 [security] (#1654) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 26 +++++++++++++------------- package.json | 2 +- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index fba4072e..d3578935 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,7 +36,7 @@ "immer": "9.0.16", "is-hotkey": "0.2.0", "jotai": "2.6.0", - "katex": "0.16.4", + "katex": "0.16.10", "linkify-html": "4.0.2", "linkify-react": "4.1.1", "linkifyjs": "4.0.2", @@ -4005,6 +4005,14 @@ "color-support": "bin.js" } }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "engines": { + "node": ">= 12" + } + }, "node_modules/compute-scroll-into-view": { "version": "1.0.20", "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz", @@ -6108,28 +6116,20 @@ "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" }, "node_modules/katex": { - "version": "0.16.4", - "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.4.tgz", - "integrity": "sha512-WudRKUj8yyBeVDI4aYMNxhx5Vhh2PjpzQw1GRu/LVGqL4m1AxwD1GcUp0IMbdJaf5zsjtj8ghP0DOQRYhroNkw==", + "version": "0.16.10", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.16.10.tgz", + "integrity": "sha512-ZiqaC04tp2O5utMsl2TEZTXxa6WSC4yo0fv5ML++D3QZv/vx2Mct0mTlRx3O+uUkjfuAgOkzsCmq5MiUEsDDdA==", "funding": [ "https://opencollective.com/katex", "https://github.com/sponsors/katex" ], "dependencies": { - "commander": "^8.0.0" + "commander": "^8.3.0" }, "bin": { "katex": "cli.js" } }, - "node_modules/katex/node_modules/commander": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", - "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", - "engines": { - "node": ">= 12" - } - }, "node_modules/language-subtag-registry": { "version": "0.3.22", "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", diff --git a/package.json b/package.json index 56e7b8c0..84b1868d 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "immer": "9.0.16", "is-hotkey": "0.2.0", "jotai": "2.6.0", - "katex": "0.16.4", + "katex": "0.16.10", "linkify-html": "4.0.2", "linkify-react": "4.1.1", "linkifyjs": "4.0.2", From 372d4d5c3455b5c61e9a82ec8d64780e3d9caf49 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 15:18:29 +1000 Subject: [PATCH 418/717] chore(deps): update dependency vite to v5.0.13 [security] (#1680) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 207 +++++++++++++++++++++++++--------------------- package.json | 2 +- 2 files changed, 113 insertions(+), 96 deletions(-) diff --git a/package-lock.json b/package-lock.json index d3578935..5b3ebdc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,7 +92,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "5.0.8", + "vite": "5.0.13", "vite-plugin-static-copy": "0.13.0" }, "engines": { @@ -505,6 +505,22 @@ "esbuild": "*" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz", + "integrity": "sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/android-arm": { "version": "0.16.9", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.9.tgz", @@ -8105,9 +8121,9 @@ } }, "node_modules/vite": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.8.tgz", - "integrity": "sha512-jYMALd8aeqR3yS9xlHd0OzQJndS9fH5ylVgWdB+pxTwxLKdO1pgC5Dlb398BUxpfaBxa4M9oT7j1g503Gaj5IQ==", + "version": "5.0.13", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.0.13.tgz", + "integrity": "sha512-/9ovhv2M2dGTuA+dY93B9trfyWMDRQw2jdVBhHNP6wr0oF34wG2i/N55801iZIpgUpnHDm4F/FabGQLyc+eOgg==", "dev": true, "dependencies": { "esbuild": "^0.19.3", @@ -8213,9 +8229,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.9.tgz", - "integrity": "sha512-jkYjjq7SdsWuNI6b5quymW0oC83NN5FdRPuCbs9HZ02mfVdAP8B8eeqLSYU3gb6OJEaY5CQabtTFbqBf26H3GA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", + "integrity": "sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==", "cpu": [ "arm" ], @@ -8229,9 +8245,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.9.tgz", - "integrity": "sha512-q4cR+6ZD0938R19MyEW3jEsMzbb/1rulLXiNAJQADD/XYp7pT+rOS5JGxvpRW8dFDEfjW4wLgC/3FXIw4zYglQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz", + "integrity": "sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==", "cpu": [ "arm64" ], @@ -8245,9 +8261,9 @@ } }, "node_modules/vite/node_modules/@esbuild/android-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.9.tgz", - "integrity": "sha512-KOqoPntWAH6ZxDwx1D6mRntIgZh9KodzgNOy5Ebt9ghzffOk9X2c1sPwtM9P+0eXbefnDhqYfkh5PLP5ULtWFA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.12.tgz", + "integrity": "sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==", "cpu": [ "x64" ], @@ -8261,9 +8277,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.9.tgz", - "integrity": "sha512-KBJ9S0AFyLVx2E5D8W0vExqRW01WqRtczUZ8NRu+Pi+87opZn5tL4Y0xT0mA4FtHctd0ZgwNoN639fUUGlNIWw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz", + "integrity": "sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==", "cpu": [ "arm64" ], @@ -8277,9 +8293,9 @@ } }, "node_modules/vite/node_modules/@esbuild/darwin-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.9.tgz", - "integrity": "sha512-vE0VotmNTQaTdX0Q9dOHmMTao6ObjyPm58CHZr1UK7qpNleQyxlFlNCaHsHx6Uqv86VgPmR4o2wdNq3dP1qyDQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz", + "integrity": "sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==", "cpu": [ "x64" ], @@ -8293,9 +8309,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.9.tgz", - "integrity": "sha512-uFQyd/o1IjiEk3rUHSwUKkqZwqdvuD8GevWF065eqgYfexcVkxh+IJgwTaGZVu59XczZGcN/YMh9uF1fWD8j1g==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz", + "integrity": "sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==", "cpu": [ "arm64" ], @@ -8309,9 +8325,9 @@ } }, "node_modules/vite/node_modules/@esbuild/freebsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.9.tgz", - "integrity": "sha512-WMLgWAtkdTbTu1AWacY7uoj/YtHthgqrqhf1OaEWnZb7PQgpt8eaA/F3LkV0E6K/Lc0cUr/uaVP/49iE4M4asA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz", + "integrity": "sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==", "cpu": [ "x64" ], @@ -8325,9 +8341,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.9.tgz", - "integrity": "sha512-C/ChPohUYoyUaqn1h17m/6yt6OB14hbXvT8EgM1ZWaiiTYz7nWZR0SYmMnB5BzQA4GXl3BgBO1l8MYqL/He3qw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz", + "integrity": "sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==", "cpu": [ "arm" ], @@ -8341,9 +8357,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.9.tgz", - "integrity": "sha512-PiPblfe1BjK7WDAKR1Cr9O7VVPqVNpwFcPWgfn4xu0eMemzRp442hXyzF/fSwgrufI66FpHOEJk0yYdPInsmyQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz", + "integrity": "sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==", "cpu": [ "arm64" ], @@ -8357,9 +8373,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.9.tgz", - "integrity": "sha512-f37i/0zE0MjDxijkPSQw1CO/7C27Eojqb+r3BbHVxMLkj8GCa78TrBZzvPyA/FNLUMzP3eyHCVkAopkKVja+6Q==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz", + "integrity": "sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==", "cpu": [ "ia32" ], @@ -8373,9 +8389,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-loong64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.9.tgz", - "integrity": "sha512-t6mN147pUIf3t6wUt3FeumoOTPfmv9Cc6DQlsVBpB7eCpLOqQDyWBP1ymXn1lDw4fNUSb/gBcKAmvTP49oIkaA==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz", + "integrity": "sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==", "cpu": [ "loong64" ], @@ -8389,9 +8405,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-mips64el": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.9.tgz", - "integrity": "sha512-jg9fujJTNTQBuDXdmAg1eeJUL4Jds7BklOTkkH80ZgQIoCTdQrDaHYgbFZyeTq8zbY+axgptncko3v9p5hLZtw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz", + "integrity": "sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==", "cpu": [ "mips64el" ], @@ -8405,9 +8421,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-ppc64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.9.tgz", - "integrity": "sha512-tkV0xUX0pUUgY4ha7z5BbDS85uI7ABw3V1d0RNTii7E9lbmV8Z37Pup2tsLV46SQWzjOeyDi1Q7Wx2+QM8WaCQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz", + "integrity": "sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==", "cpu": [ "ppc64" ], @@ -8421,9 +8437,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-riscv64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.9.tgz", - "integrity": "sha512-DfLp8dj91cufgPZDXr9p3FoR++m3ZJ6uIXsXrIvJdOjXVREtXuQCjfMfvmc3LScAVmLjcfloyVtpn43D56JFHg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz", + "integrity": "sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==", "cpu": [ "riscv64" ], @@ -8437,9 +8453,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-s390x": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.9.tgz", - "integrity": "sha512-zHbglfEdC88KMgCWpOl/zc6dDYJvWGLiUtmPRsr1OgCViu3z5GncvNVdf+6/56O2Ca8jUU+t1BW261V6kp8qdw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz", + "integrity": "sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==", "cpu": [ "s390x" ], @@ -8453,9 +8469,9 @@ } }, "node_modules/vite/node_modules/@esbuild/linux-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.9.tgz", - "integrity": "sha512-JUjpystGFFmNrEHQnIVG8hKwvA2DN5o7RqiO1CVX8EN/F/gkCjkUMgVn6hzScpwnJtl2mPR6I9XV1oW8k9O+0A==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz", + "integrity": "sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==", "cpu": [ "x64" ], @@ -8469,9 +8485,9 @@ } }, "node_modules/vite/node_modules/@esbuild/netbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.9.tgz", - "integrity": "sha512-GThgZPAwOBOsheA2RUlW5UeroRfESwMq/guy8uEe3wJlAOjpOXuSevLRd70NZ37ZrpO6RHGHgEHvPg1h3S1Jug==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz", + "integrity": "sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==", "cpu": [ "x64" ], @@ -8485,9 +8501,9 @@ } }, "node_modules/vite/node_modules/@esbuild/openbsd-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.9.tgz", - "integrity": "sha512-Ki6PlzppaFVbLnD8PtlVQfsYw4S9n3eQl87cqgeIw+O3sRr9IghpfSKY62mggdt1yCSZ8QWvTZ9jo9fjDSg9uw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz", + "integrity": "sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==", "cpu": [ "x64" ], @@ -8501,9 +8517,9 @@ } }, "node_modules/vite/node_modules/@esbuild/sunos-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.9.tgz", - "integrity": "sha512-MLHj7k9hWh4y1ddkBpvRj2b9NCBhfgBt3VpWbHQnXRedVun/hC7sIyTGDGTfsGuXo4ebik2+3ShjcPbhtFwWDw==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz", + "integrity": "sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==", "cpu": [ "x64" ], @@ -8517,9 +8533,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-arm64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.9.tgz", - "integrity": "sha512-GQoa6OrQ8G08guMFgeXPH7yE/8Dt0IfOGWJSfSH4uafwdC7rWwrfE6P9N8AtPGIjUzdo2+7bN8Xo3qC578olhg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz", + "integrity": "sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==", "cpu": [ "arm64" ], @@ -8533,9 +8549,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-ia32": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.9.tgz", - "integrity": "sha512-UOozV7Ntykvr5tSOlGCrqU3NBr3d8JqPes0QWN2WOXfvkWVGRajC+Ym0/Wj88fUgecUCLDdJPDF0Nna2UK3Qtg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz", + "integrity": "sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==", "cpu": [ "ia32" ], @@ -8549,9 +8565,9 @@ } }, "node_modules/vite/node_modules/@esbuild/win32-x64": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.9.tgz", - "integrity": "sha512-oxoQgglOP7RH6iasDrhY+R/3cHrfwIDvRlT4CGChflq6twk8iENeVvMJjmvBb94Ik1Z+93iGO27err7w6l54GQ==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz", + "integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==", "cpu": [ "x64" ], @@ -8565,9 +8581,9 @@ } }, "node_modules/vite/node_modules/esbuild": { - "version": "0.19.9", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.9.tgz", - "integrity": "sha512-U9CHtKSy+EpPsEBa+/A2gMs/h3ylBC0H0KSqIg7tpztHerLi6nrrcoUJAkNCEPumx8yJ+Byic4BVwHgRbN0TBg==", + "version": "0.19.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz", + "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, "bin": { @@ -8577,28 +8593,29 @@ "node": ">=12" }, "optionalDependencies": { - "@esbuild/android-arm": "0.19.9", - "@esbuild/android-arm64": "0.19.9", - "@esbuild/android-x64": "0.19.9", - "@esbuild/darwin-arm64": "0.19.9", - "@esbuild/darwin-x64": "0.19.9", - "@esbuild/freebsd-arm64": "0.19.9", - "@esbuild/freebsd-x64": "0.19.9", - "@esbuild/linux-arm": "0.19.9", - "@esbuild/linux-arm64": "0.19.9", - "@esbuild/linux-ia32": "0.19.9", - "@esbuild/linux-loong64": "0.19.9", - "@esbuild/linux-mips64el": "0.19.9", - "@esbuild/linux-ppc64": "0.19.9", - "@esbuild/linux-riscv64": "0.19.9", - "@esbuild/linux-s390x": "0.19.9", - "@esbuild/linux-x64": "0.19.9", - "@esbuild/netbsd-x64": "0.19.9", - "@esbuild/openbsd-x64": "0.19.9", - "@esbuild/sunos-x64": "0.19.9", - "@esbuild/win32-arm64": "0.19.9", - "@esbuild/win32-ia32": "0.19.9", - "@esbuild/win32-x64": "0.19.9" + "@esbuild/aix-ppc64": "0.19.12", + "@esbuild/android-arm": "0.19.12", + "@esbuild/android-arm64": "0.19.12", + "@esbuild/android-x64": "0.19.12", + "@esbuild/darwin-arm64": "0.19.12", + "@esbuild/darwin-x64": "0.19.12", + "@esbuild/freebsd-arm64": "0.19.12", + "@esbuild/freebsd-x64": "0.19.12", + "@esbuild/linux-arm": "0.19.12", + "@esbuild/linux-arm64": "0.19.12", + "@esbuild/linux-ia32": "0.19.12", + "@esbuild/linux-loong64": "0.19.12", + "@esbuild/linux-mips64el": "0.19.12", + "@esbuild/linux-ppc64": "0.19.12", + "@esbuild/linux-riscv64": "0.19.12", + "@esbuild/linux-s390x": "0.19.12", + "@esbuild/linux-x64": "0.19.12", + "@esbuild/netbsd-x64": "0.19.12", + "@esbuild/openbsd-x64": "0.19.12", + "@esbuild/sunos-x64": "0.19.12", + "@esbuild/win32-arm64": "0.19.12", + "@esbuild/win32-ia32": "0.19.12", + "@esbuild/win32-x64": "0.19.12" } }, "node_modules/warning": { diff --git a/package.json b/package.json index 84b1868d..7660b174 100644 --- a/package.json +++ b/package.json @@ -102,7 +102,7 @@ "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", - "vite": "5.0.8", + "vite": "5.0.13", "vite-plugin-static-copy": "0.13.0" } } From 8c5a1d15cb899cbac78641d5027390c1e40f9747 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Wed, 24 Apr 2024 18:12:52 +0530 Subject: [PATCH 419/717] fix negative audio duration info crash react-range (#1701) --- src/app/organisms/room/message/AudioContent.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/organisms/room/message/AudioContent.tsx b/src/app/organisms/room/message/AudioContent.tsx index eae5447b..83e5dc01 100644 --- a/src/app/organisms/room/message/AudioContent.tsx +++ b/src/app/organisms/room/message/AudioContent.tsx @@ -45,7 +45,8 @@ export const AudioContent = as<'div', AudioContentProps>( const [currentTime, setCurrentTime] = useState(0); // duration in seconds. (NOTE: info.duration is in milliseconds) - const [duration, setDuration] = useState((info.duration ?? 0) / 1000); + const infoDuration = info.duration ?? 0; + const [duration, setDuration] = useState((infoDuration >= 0 ? infoDuration : 0) / 1000); const getAudioRef = useCallback(() => audioRef.current, []); const { loading } = useMediaLoading(getAudioRef); From 743e916d12ba14cba5b2ee75cc02a7a65dd37db1 Mon Sep 17 00:00:00 2001 From: Arnaldo Gabriel <5076526+agmm@users.noreply.github.com> Date: Wed, 24 Apr 2024 08:44:32 -0400 Subject: [PATCH 420/717] Fix placement of emoji/sticker buttons (#1693) --- src/app/components/emoji-board/EmojiBoard.tsx | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/app/components/emoji-board/EmojiBoard.tsx b/src/app/components/emoji-board/EmojiBoard.tsx index 5452722f..408ce85d 100644 --- a/src/app/components/emoji-board/EmojiBoard.tsx +++ b/src/app/components/emoji-board/EmojiBoard.tsx @@ -174,18 +174,6 @@ function EmojiBoardTabs({ }) { return ( - onTabChange(EmojiBoardTab.Emoji)} - > - - Emoji - - + onTabChange(EmojiBoardTab.Emoji)} + > + + Emoji + + ); } From 3025133d18057075f34d0b7b7f20a75b55924bb8 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Thu, 25 Apr 2024 00:31:01 +1000 Subject: [PATCH 421/717] Update node to latest LTS (#1687) * Update node to latest LTS * Update node in Dockerfile --- .github/workflows/build-pull-request.yml | 6 +++--- .github/workflows/netlify-dev.yml | 10 +++++----- .github/workflows/prod-deploy.yml | 8 ++++---- Dockerfile | 2 +- README.md | 2 +- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index f2f93feb..5346a762 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -16,13 +16,13 @@ jobs: - name: Setup node uses: actions/setup-node@v3.8.1 with: - node-version: 18.12.1 - cache: "npm" + node-version: 20.12.2 + cache: 'npm' - name: Install dependencies run: npm ci - name: Build app env: - NODE_OPTIONS: "--max_old_space_size=4096" + NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build - name: Upload artifact uses: actions/upload-artifact@v3.1.2 diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 411b6e3e..c3de8811 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -3,7 +3,7 @@ name: Deploy to Netlify (dev) on: push: branches: - - dev + - dev jobs: deploy-to-netlify: @@ -15,19 +15,19 @@ jobs: - name: Setup node uses: actions/setup-node@v3.8.1 with: - node-version: 18.12.1 - cache: "npm" + node-version: 20.12.2 + cache: 'npm' - name: Install dependencies run: npm ci - name: Build app env: - NODE_OPTIONS: "--max_old_space_size=4096" + NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build - name: Deploy to Netlify uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 with: publish-dir: dist - deploy-message: "Dev deploy ${{ github.sha }}" + deploy-message: 'Dev deploy ${{ github.sha }}' enable-commit-comment: false github-token: ${{ secrets.GITHUB_TOKEN }} production-deploy: true diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 63fc342c..83e6ed8f 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -14,19 +14,19 @@ jobs: - name: Setup node uses: actions/setup-node@v3.8.1 with: - node-version: 18.12.1 - cache: "npm" + node-version: 20.12.2 + cache: 'npm' - name: Install dependencies run: npm ci - name: Build app env: - NODE_OPTIONS: "--max_old_space_size=4096" + NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build - name: Deploy to Netlify uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 with: publish-dir: dist - deploy-message: "Prod deploy ${{ github.ref_name }}" + deploy-message: 'Prod deploy ${{ github.ref_name }}' enable-commit-comment: false github-token: ${{ secrets.GITHUB_TOKEN }} production-deploy: true diff --git a/Dockerfile b/Dockerfile index da04492c..b0d2a935 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ ## Builder -FROM node:18.12.1-alpine3.15 as builder +FROM node:20.12.2-alpine3.18 as builder WORKDIR /src diff --git a/README.md b/README.md index 0910dfbb..0fc928b6 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ UeGsouhyuITLwEhScounZDqop+Dx ## Local development > We recommend using a version manager as versions change very quickly. You will likely need to switch -between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Also recommended nodejs version Hydrogen LTS (v18). +between multiple Node.js versions based on the needs of different projects you're working on. [NVM on windows](https://github.com/coreybutler/nvm-windows#installation--upgrades) on Windows and [nvm](https://github.com/nvm-sh/nvm) on Linux/macOS are pretty good choices. Recommended nodejs version is Iron LTS (v20). Execute the following commands to start a development server: ```sh From a18c2e5be18eb37bdd63a0edb61d1f0faa125605 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 00:32:24 +1000 Subject: [PATCH 422/717] Bump actions/checkout from 3.5.3 to 4.1.3 (#1699) Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.3 to 4.1.3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.5.3...v4.1.3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 5346a762..72ffd0e4 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.3 - name: Setup node uses: actions/setup-node@v3.8.1 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 30235157..7d1f2b8d 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.3 - name: Build Docker image uses: docker/build-push-action@v4.1.1 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index 30d00760..1b116b5a 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.3 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index c3de8811..0eb4ed72 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.3 - name: Setup node uses: actions/setup-node@v3.8.1 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 83e6ed8f..70e40c07 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.3 - name: Setup node uses: actions/setup-node@v3.8.1 with: @@ -66,7 +66,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v3.5.3 + uses: actions/checkout@v4.1.3 - name: Set up QEMU uses: docker/setup-qemu-action@v2.2.0 - name: Set up Docker Buildx From b97f410731847a4a82763b76483aa46dae3f6bc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 00:34:04 +1000 Subject: [PATCH 423/717] Bump nginx from 1.25.1-alpine to 1.25.5-alpine (#1700) Bumps nginx from 1.25.1-alpine to 1.25.5-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b0d2a935..6cd3ebf6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN npm run build ## App -FROM nginx:1.25.1-alpine +FROM nginx:1.25.5-alpine COPY --from=builder /src/dist /app From 1d799185d61f60c22903f55346c92548c862c411 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:26:46 +1000 Subject: [PATCH 424/717] Bump actions/upload-artifact from 3.1.2 to 4.3.3 (#1698) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.2 to 4.3.3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v3.1.2...v4.3.3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 72ffd0e4..8163c6af 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -25,7 +25,7 @@ jobs: NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build - name: Upload artifact - uses: actions/upload-artifact@v3.1.2 + uses: actions/upload-artifact@v4.3.3 with: name: preview path: dist @@ -33,7 +33,7 @@ jobs: - name: Save pr number run: echo ${PR_NUMBER} > ./pr.txt - name: Upload pr number - uses: actions/upload-artifact@v3.1.2 + uses: actions/upload-artifact@v4.3.3 with: name: pr path: ./pr.txt From 71b2859440e8f0e95815e790af96284f90641357 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:28:46 +1000 Subject: [PATCH 425/717] Bump docker/setup-qemu-action from 2.2.0 to 3.0.0 (#1662) Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.2.0 to 3.0.0. - [Release notes](https://github.com/docker/setup-qemu-action/releases) - [Commits](https://github.com/docker/setup-qemu-action/compare/v2.2.0...v3.0.0) --- updated-dependencies: - dependency-name: docker/setup-qemu-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 70e40c07..e6de54f9 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -68,7 +68,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4.1.3 - name: Set up QEMU - uses: docker/setup-qemu-action@v2.2.0 + uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.7.0 - name: Login to Docker Hub From 2c1e51a8b8caa9dbb1af32f97b50bc692ac7bf63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:30:16 +1000 Subject: [PATCH 426/717] Bump docker/login-action from 2.2.0 to 3.1.0 (#1661) Bumps [docker/login-action](https://github.com/docker/login-action) from 2.2.0 to 3.1.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/v2.2.0...v3.1.0) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index e6de54f9..7f24295c 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -72,12 +72,12 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.7.0 - name: Login to Docker Hub - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.1.0 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Login to the Container registry - uses: docker/login-action@v2.2.0 + uses: docker/login-action@v3.1.0 with: registry: ghcr.io username: ${{ github.actor }} From ca3535b1a5d3214b22b6d48d30889ea48a89bb3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:31:41 +1000 Subject: [PATCH 427/717] Bump docker/metadata-action from 4.6.0 to 5.5.1 (#1658) Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4.6.0 to 5.5.1. - [Release notes](https://github.com/docker/metadata-action/releases) - [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md) - [Commits](https://github.com/docker/metadata-action/compare/v4.6.0...v5.5.1) --- updated-dependencies: - dependency-name: docker/metadata-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 7f24295c..35f6d0f2 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -84,7 +84,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4.6.0 + uses: docker/metadata-action@v5.5.1 with: images: | ${{ secrets.DOCKER_USERNAME }}/cinny From da5ebf7ab36a2c704986b120dd42768373e2eef9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:56:29 +1000 Subject: [PATCH 428/717] Bump actions/setup-node from 3.8.1 to 4.0.2 (#1707) Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3.8.1 to 4.0.2. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v3.8.1...v4.0.2) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index 8163c6af..a574c678 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -14,7 +14,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4.1.3 - name: Setup node - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v4.0.2 with: node-version: 20.12.2 cache: 'npm' diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 0eb4ed72..7c90aec7 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4.1.3 - name: Setup node - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v4.0.2 with: node-version: 20.12.2 cache: 'npm' diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 35f6d0f2..bec41af3 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -12,7 +12,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4.1.3 - name: Setup node - uses: actions/setup-node@v3.8.1 + uses: actions/setup-node@v4.0.2 with: node-version: 20.12.2 cache: 'npm' From 53cd08f0da500f656ce2ee32e132a64d1b78570a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:57:14 +1000 Subject: [PATCH 429/717] Bump dawidd6/action-download-artifact from 2.27.0 to 3.1.4 (#1706) Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 2.27.0 to 3.1.4. - [Release notes](https://github.com/dawidd6/action-download-artifact/releases) - [Commits](https://github.com/dawidd6/action-download-artifact/compare/246dbf436b23d7c49e21a7ab8204ca9ecd1fe615...09f2f74827fd3a8607589e5ad7f9398816f540fe) --- updated-dependencies: - dependency-name: dawidd6/action-download-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 12eabbe4..e7399316 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -15,7 +15,7 @@ jobs: if: ${{ github.event.workflow_run.conclusion == 'success' }} steps: - name: Download pr number - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} @@ -24,7 +24,7 @@ jobs: id: pr run: echo "id=$(> $GITHUB_OUTPUT - name: Download artifact - uses: dawidd6/action-download-artifact@246dbf436b23d7c49e21a7ab8204ca9ecd1fe615 + uses: dawidd6/action-download-artifact@09f2f74827fd3a8607589e5ad7f9398816f540fe with: workflow: ${{ github.event.workflow.id }} run_id: ${{ github.event.workflow_run.id }} From d3f97ef93e990f83f2381ecb0597e1d732fd1108 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:57:30 +1000 Subject: [PATCH 430/717] Bump cla-assistant/github-action from 2.3.0 to 2.3.2 (#1705) Bumps [cla-assistant/github-action](https://github.com/cla-assistant/github-action) from 2.3.0 to 2.3.2. - [Release notes](https://github.com/cla-assistant/github-action/releases) - [Commits](https://github.com/cla-assistant/github-action/compare/v2.3.0...v2.3.2) --- updated-dependencies: - dependency-name: cla-assistant/github-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cla.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 1b9461b6..259ee514 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -12,7 +12,7 @@ jobs: - name: 'CLA Assistant' if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' # Beta Release - uses: cla-assistant/github-action@v2.3.0 + uses: cla-assistant/github-action@v2.3.2 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # the below token should have repo scope and must be manually added by you in the repository's secret From ce347a0ff4bd769db2cf7977f618ba75702ff866 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 22:58:56 +1000 Subject: [PATCH 431/717] Bump docker/build-push-action from 4.1.1 to 5.3.0 (#1704) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.1.1 to 5.3.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v4.1.1...v5.3.0) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/docker-pr.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 7d1f2b8d..f9a6eefe 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -13,7 +13,7 @@ jobs: - name: Checkout repository uses: actions/checkout@v4.1.3 - name: Build Docker image - uses: docker/build-push-action@v4.1.1 + uses: docker/build-push-action@v5.3.0 with: context: . push: false diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index bec41af3..56593834 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -90,7 +90,7 @@ jobs: ${{ secrets.DOCKER_USERNAME }}/cinny ghcr.io/${{ github.repository }} - name: Build and push Docker image - uses: docker/build-push-action@v4.1.1 + uses: docker/build-push-action@v5.3.0 with: context: . platforms: linux/amd64,linux/arm64 From 3ae1e58ff2389d107f8a61442cd179882714887a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 23:00:52 +1000 Subject: [PATCH 432/717] Bump softprops/action-gh-release from 1 to 2 (#1703) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 1 to 2. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/de2c0eb89ae2a093876385947365aca7b0e5f844...9d7c94cfd0a1f3ed45544c887983e9fa900f0564) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 56593834..790e0c75 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -52,7 +52,7 @@ jobs: gpg --export | xxd -p echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz - name: Upload tagged release - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 + uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 with: files: | cinny-${{ steps.vars.outputs.tag }}.tar.gz From b803ce99e3d8d7c2e14f7b3deeae6e0275a5871c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 23:06:24 +1000 Subject: [PATCH 433/717] Bump nwtgck/actions-netlify from 2.1.0 to 3.0.0 (#1708) Bumps [nwtgck/actions-netlify](https://github.com/nwtgck/actions-netlify) from 2.1.0 to 3.0.0. - [Release notes](https://github.com/nwtgck/actions-netlify/releases) - [Changelog](https://github.com/nwtgck/actions-netlify/blob/develop/CHANGELOG.md) - [Commits](https://github.com/nwtgck/actions-netlify/compare/7a92f00dde8c92a5a9e8385ec2919775f7647352...4cbaf4c08f1a7bfa537d6113472ef4424e4eb654) --- updated-dependencies: - dependency-name: nwtgck/actions-netlify dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index e7399316..0768e185 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -32,7 +32,7 @@ jobs: path: dist - name: Deploy to Netlify id: netlify - uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 + uses: nwtgck/actions-netlify@4cbaf4c08f1a7bfa537d6113472ef4424e4eb654 with: publish-dir: dist deploy-message: "Deploy PR ${{ steps.pr.outputs.id }}" diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 7c90aec7..e8371ff9 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -24,7 +24,7 @@ jobs: NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 + uses: nwtgck/actions-netlify@4cbaf4c08f1a7bfa537d6113472ef4424e4eb654 with: publish-dir: dist deploy-message: 'Dev deploy ${{ github.sha }}' diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 790e0c75..4a355a94 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -23,7 +23,7 @@ jobs: NODE_OPTIONS: '--max_old_space_size=4096' run: npm run build - name: Deploy to Netlify - uses: nwtgck/actions-netlify@7a92f00dde8c92a5a9e8385ec2919775f7647352 + uses: nwtgck/actions-netlify@4cbaf4c08f1a7bfa537d6113472ef4424e4eb654 with: publish-dir: dist deploy-message: 'Prod deploy ${{ github.ref_name }}' From e5b980fbc78a3b1de2e6a7a893601d7f7fcdae05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 23:06:48 +1000 Subject: [PATCH 434/717] Bump thollander/actions-comment-pull-request from 2.4.3 to 2.5.0 (#1711) Bumps [thollander/actions-comment-pull-request](https://github.com/thollander/actions-comment-pull-request) from 2.4.3 to 2.5.0. - [Release notes](https://github.com/thollander/actions-comment-pull-request/releases) - [Commits](https://github.com/thollander/actions-comment-pull-request/compare/1d3973dc4b8e1399c0620d3f2b1aa5e795465308...fabd468d3a1a0b97feee5f6b9e499eab0dd903f6) --- updated-dependencies: - dependency-name: thollander/actions-comment-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/deploy-pull-request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-pull-request.yml b/.github/workflows/deploy-pull-request.yml index 0768e185..66e648b0 100644 --- a/.github/workflows/deploy-pull-request.yml +++ b/.github/workflows/deploy-pull-request.yml @@ -45,7 +45,7 @@ jobs: NETLIFY_SITE_ID: ${{ secrets.NETLIFY_SITE_ID_PR_CINNY }} timeout-minutes: 1 - name: Comment preview on PR - uses: thollander/actions-comment-pull-request@1d3973dc4b8e1399c0620d3f2b1aa5e795465308 + uses: thollander/actions-comment-pull-request@fabd468d3a1a0b97feee5f6b9e499eab0dd903f6 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: From e8020acabfebd761d2eaa1182d1355339e301760 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 23:07:12 +1000 Subject: [PATCH 435/717] Bump actions/checkout from 4.1.3 to 4.1.4 (#1709) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.3 to 4.1.4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.3...v4.1.4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index a574c678..f2af6b6f 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Setup node uses: actions/setup-node@v4.0.2 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index f9a6eefe..adfc7912 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Build Docker image uses: docker/build-push-action@v5.3.0 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index 1b116b5a..0d58b254 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index e8371ff9..07c0f50d 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Setup node uses: actions/setup-node@v4.0.2 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 4a355a94..ac4db5fc 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Setup node uses: actions/setup-node@v4.0.2 with: @@ -66,7 +66,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v4.1.3 + uses: actions/checkout@v4.1.4 - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx From 8267990e6f4c1cc9cef1326d1c7769ec527d9319 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Apr 2024 23:07:32 +1000 Subject: [PATCH 436/717] Bump docker/setup-buildx-action from 2.7.0 to 3.3.0 (#1710) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.7.0 to 3.3.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/v2.7.0...v3.3.0) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index ac4db5fc..c9cc111f 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -70,7 +70,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2.7.0 + uses: docker/setup-buildx-action@v3.3.0 - name: Login to Docker Hub uses: docker/login-action@v3.1.0 with: From 565a6563e16ced2ffdf420fa29b6794045e69da2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 14:06:53 +1000 Subject: [PATCH 437/717] Bump pdfjs-dist from 3.10.111 to 4.2.67 (#1717) * Bump pdfjs-dist from 3.10.111 to 4.2.67 Bumps [pdfjs-dist](https://github.com/mozilla/pdfjs-dist) from 3.10.111 to 4.2.67. - [Commits](https://github.com/mozilla/pdfjs-dist/commits) --- updated-dependencies: - dependency-name: pdfjs-dist dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Fix pdfjs top level await --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- package-lock.json | 277 +++++++++++++++++++++++++++++++++++++++++++--- package.json | 5 +- vite.config.js | 43 +++---- 3 files changed, 290 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5b3ebdc0..f6583b06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "linkifyjs": "4.0.2", "matrix-js-sdk": "29.1.0", "millify": "6.1.0", - "pdfjs-dist": "3.10.111", + "pdfjs-dist": "4.2.67", "prismjs": "1.29.0", "prop-types": "15.8.1", "react": "18.2.0", @@ -93,7 +93,8 @@ "sass": "1.56.2", "typescript": "4.9.4", "vite": "5.0.13", - "vite-plugin-static-copy": "0.13.0" + "vite-plugin-static-copy": "0.13.0", + "vite-plugin-top-level-await": "1.4.1" }, "engines": { "node": ">=16.0.0" @@ -2636,6 +2637,23 @@ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, + "node_modules/@rollup/plugin-virtual": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-virtual/-/plugin-virtual-3.0.2.tgz", + "integrity": "sha512-10monEYsBp3scM4/ND4LNH5Rxvh3e/cVeL3jWTgZ2SrQ+BmUoQcopVQvnaMcOnykb1VkxUFuDAN+0FnpTFRy2A==", + "dev": true, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@rollup/plugin-wasm": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/@rollup/plugin-wasm/-/plugin-wasm-6.1.1.tgz", @@ -2850,6 +2868,210 @@ "win32" ] }, + "node_modules/@swc/core": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.5.5.tgz", + "integrity": "sha512-M8O22EEgdSONLd+7KRrXj8pn+RdAZZ7ISnPjE9KCQQlI0kkFNEquWR+uFdlFxQfwlyCe/Zb6uGXGDvtcov4IMg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.2", + "@swc/types": "^0.1.5" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.5.5", + "@swc/core-darwin-x64": "1.5.5", + "@swc/core-linux-arm-gnueabihf": "1.5.5", + "@swc/core-linux-arm64-gnu": "1.5.5", + "@swc/core-linux-arm64-musl": "1.5.5", + "@swc/core-linux-x64-gnu": "1.5.5", + "@swc/core-linux-x64-musl": "1.5.5", + "@swc/core-win32-arm64-msvc": "1.5.5", + "@swc/core-win32-ia32-msvc": "1.5.5", + "@swc/core-win32-x64-msvc": "1.5.5" + }, + "peerDependencies": { + "@swc/helpers": "^0.5.0" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.5.5.tgz", + "integrity": "sha512-Ol5ZwZYdTOZsv2NwjcT/qVVALKzVFeh+IJ4GNarr3P99+38Dkwi81OqCI1o/WaDXQYKAQC/V+CzMbkEuJJfq9Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.5.5.tgz", + "integrity": "sha512-XHWpKBIPKYLgh5/lV2PYjO84lkzf5JR51kjiloyz2Pa9HIV8tHoAP8bYdJwm4nUp2I7KcEh3pPH0AVu5LpxMKw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.5.5.tgz", + "integrity": "sha512-vtoWNCWAe+CNSqtqIwFnIH48qgPPlUZKoQ4EVFeMM+7/kDi6SeNxoh5TierJs5bKAWxD49VkPvRoWFCk6V62mA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.5.5.tgz", + "integrity": "sha512-L4l7M78U6h/rCAxId+y5Vu+1KfDRF6dJZtitFcaT293guiUQFwJv8gLxI4Jh5wFtZ0fYd0QaCuvh2Ip79CzGMg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.5.5.tgz", + "integrity": "sha512-DkzJc13ukXa7oJpyn24BjIgsiOybYrc+IxjsQyfNlDrrs1QXP4elStcpkD02SsIuSyHjZV8Hw2HFBMQB3OHPrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.5.5.tgz", + "integrity": "sha512-kj4ZwWJGeBEUzHrRQP2VudN+kkkYH7OI1dPVDc6kWQx5X4329JeKOas4qY0l7gDVjBbRwN9IbbPI6TIn2KfAug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.5.5.tgz", + "integrity": "sha512-6pTorCs4mYhPhYtC4jNOnhGgjNd3DZcRoZ9P0tzXXP69aCbYjvlgNH/NRvAROp9AaVFeZ7a7PmCWb6+Rbe7NKg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.5.5.tgz", + "integrity": "sha512-o0/9pstmEjwZyrY/bA+mymF0zH7E+GT/XCVqdKeWW9Wn3gTTyWa5MZnrFgI2THQ+AXwdglMB/Zo76ARQPaz/+A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.5.5.tgz", + "integrity": "sha512-B+nypUwsmCuaH6RtKWgiPCb+ENjxstJPPJeMJvBqlJqyCaIkZzN4M07Ozi3xVv1VG21SRkd6G3xIqRoalrNc0Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.5.5.tgz", + "integrity": "sha512-ry83ki9ZX0Q+GWGnqc2J618Z+FvKE8Ajn42F8EYi8Wj0q6Jz3mj+pJzgzakk2INm2ldEZ+FaRPipn4ozsZDcBg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, "node_modules/@swc/helpers": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.3.tgz", @@ -2863,6 +3085,15 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/@swc/types": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.6.tgz", + "integrity": "sha512-/JLo/l2JsT/LRd80C3HfbmVpxOAJ11FO2RCEslFrgzLltoP9j8XIbsyDcfCt2WWyX+CM96rBoNM+IToAkFOugg==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, "node_modules/@tanstack/react-virtual": { "version": "3.0.0-beta.54", "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.0.0-beta.54.tgz", @@ -6834,25 +7065,25 @@ "node": ">=8" } }, - "node_modules/path2d-polyfill": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path2d-polyfill/-/path2d-polyfill-2.0.1.tgz", - "integrity": "sha512-ad/3bsalbbWhmBo0D6FZ4RNMwsLsPpL6gnvhuSaU5Vm7b06Kr5ubSltQQ0T7YKsiJQO+g22zJ4dJKNTXIyOXtA==", + "node_modules/path2d": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/path2d/-/path2d-0.2.0.tgz", + "integrity": "sha512-KdPAykQX6kmLSOO6Jpu2KNcCED7CKjmaBNGGNuctOsG0hgYO1OdYQaan6cYXJiG0WmXOwZZPILPBimu5QAIw3A==", "optional": true, "engines": { - "node": ">=8" + "node": ">=6" } }, "node_modules/pdfjs-dist": { - "version": "3.10.111", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-3.10.111.tgz", - "integrity": "sha512-+SXXGN/3YTNQSK5Ae7EyqQuR+4IAsNunJq/Us5ByOkRJ45qBXXOwkiWi3RIDU+CyF+ak5eSWXl2FQW2PKBrsRA==", + "version": "4.2.67", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.2.67.tgz", + "integrity": "sha512-rJmuBDFpD7cqC8WIkQUEClyB4UAH05K4AsyewToMTp2gSy3Rrx8c1ydAVqlJlGv3yZSOrhEERQU/4ScQQFlLHA==", "engines": { "node": ">=18" }, "optionalDependencies": { "canvas": "^2.11.2", - "path2d-polyfill": "^2.0.1" + "path2d": "^0.2.0" } }, "node_modules/picocolors": { @@ -8113,9 +8344,13 @@ "optional": true }, "node_modules/uuid": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", - "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } @@ -8228,6 +8463,20 @@ "node": ">= 10.0.0" } }, + "node_modules/vite-plugin-top-level-await": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/vite-plugin-top-level-await/-/vite-plugin-top-level-await-1.4.1.tgz", + "integrity": "sha512-hogbZ6yT7+AqBaV6lK9JRNvJDn4/IJvHLu6ET06arNfo0t2IsyCaon7el9Xa8OumH+ESuq//SDf8xscZFE0rWw==", + "dev": true, + "dependencies": { + "@rollup/plugin-virtual": "^3.0.2", + "@swc/core": "^1.3.100", + "uuid": "^9.0.1" + }, + "peerDependencies": { + "vite": ">=2.8" + } + }, "node_modules/vite/node_modules/@esbuild/android-arm": { "version": "0.19.12", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.12.tgz", diff --git a/package.json b/package.json index 7660b174..8c35e802 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "linkifyjs": "4.0.2", "matrix-js-sdk": "29.1.0", "millify": "6.1.0", - "pdfjs-dist": "3.10.111", + "pdfjs-dist": "4.2.67", "prismjs": "1.29.0", "prop-types": "15.8.1", "react": "18.2.0", @@ -103,6 +103,7 @@ "sass": "1.56.2", "typescript": "4.9.4", "vite": "5.0.13", - "vite-plugin-static-copy": "0.13.0" + "vite-plugin-static-copy": "0.13.0", + "vite-plugin-top-level-await": "1.4.1" } } diff --git a/vite.config.js b/vite.config.js index 20c7765c..e6ae956d 100644 --- a/vite.config.js +++ b/vite.config.js @@ -2,11 +2,12 @@ import { defineConfig } from 'vite'; import react from '@vitejs/plugin-react'; import { wasm } from '@rollup/plugin-wasm'; import { viteStaticCopy } from 'vite-plugin-static-copy'; -import { vanillaExtractPlugin } from "@vanilla-extract/vite-plugin"; +import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin'; import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; import inject from '@rollup/plugin-inject'; -import { svgLoader } from './viteSvgLoader' -import buildConfig from "./build.config" +import topLevelAwait from 'vite-plugin-top-level-await'; +import { svgLoader } from './viteSvgLoader'; +import buildConfig from './build.config'; const copyFiles = { targets: [ @@ -35,7 +36,7 @@ const copyFiles = { dest: 'public/', }, ], -} +}; export default defineConfig({ appType: 'spa', @@ -46,6 +47,12 @@ export default defineConfig({ host: true, }, plugins: [ + topLevelAwait({ + // The export name of top-level await promise for each chunk module + promiseExportName: '__tla', + // The function to generate import names of top-level await promise in each chunk module + promiseImportName: (i) => `__tla_${i}`, + }), viteStaticCopy(copyFiles), vanillaExtractPlugin(), svgLoader(), @@ -54,26 +61,24 @@ export default defineConfig({ ], optimizeDeps: { esbuildOptions: { - define: { - global: 'globalThis' - }, - plugins: [ - // Enable esbuild polyfill plugins - NodeGlobalsPolyfillPlugin({ - process: false, - buffer: true, - }), - ] - } + define: { + global: 'globalThis', + }, + plugins: [ + // Enable esbuild polyfill plugins + NodeGlobalsPolyfillPlugin({ + process: false, + buffer: true, + }), + ], + }, }, build: { outDir: 'dist', sourcemap: true, copyPublicDir: false, rollupOptions: { - plugins: [ - inject({ Buffer: ['buffer', 'Buffer'] }) - ] - } + plugins: [inject({ Buffer: ['buffer', 'Buffer'] })], + }, }, }); From 5259f1167908b4ddc193f22c90153287a7575d7f Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 12 May 2024 14:17:41 +1000 Subject: [PATCH 438/717] Remove svg loader as available in Vite by default (#1728) --- package-lock.json | 10 ---------- package.json | 1 - vite.config.js | 2 -- viteSvgLoader.ts | 16 ---------------- 4 files changed, 29 deletions(-) delete mode 100644 viteSvgLoader.ts diff --git a/package-lock.json b/package-lock.json index f6583b06..d8bd7588 100644 --- a/package-lock.json +++ b/package-lock.json @@ -88,7 +88,6 @@ "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", - "mini-svg-data-uri": "1.4.4", "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", @@ -6643,15 +6642,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/mini-svg-data-uri": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz", - "integrity": "sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==", - "dev": true, - "bin": { - "mini-svg-data-uri": "cli.js" - } - }, "node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", diff --git a/package.json b/package.json index 8c35e802..70dd6b52 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,6 @@ "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", - "mini-svg-data-uri": "1.4.4", "prettier": "2.8.1", "sass": "1.56.2", "typescript": "4.9.4", diff --git a/vite.config.js b/vite.config.js index e6ae956d..f77abfc5 100644 --- a/vite.config.js +++ b/vite.config.js @@ -6,7 +6,6 @@ import { vanillaExtractPlugin } from '@vanilla-extract/vite-plugin'; import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'; import inject from '@rollup/plugin-inject'; import topLevelAwait from 'vite-plugin-top-level-await'; -import { svgLoader } from './viteSvgLoader'; import buildConfig from './build.config'; const copyFiles = { @@ -55,7 +54,6 @@ export default defineConfig({ }), viteStaticCopy(copyFiles), vanillaExtractPlugin(), - svgLoader(), wasm(), react(), ], diff --git a/viteSvgLoader.ts b/viteSvgLoader.ts deleted file mode 100644 index a119e3ed..00000000 --- a/viteSvgLoader.ts +++ /dev/null @@ -1,16 +0,0 @@ -import svgToMiniDataURI from 'mini-svg-data-uri'; -import type { Plugin } from 'rollup'; -import fs from 'fs'; - -// TODO: remove this once https://github.com/vitejs/vite/pull/2909 gets merged -export const svgLoader = (): Plugin => ({ - name: 'vite-svg-patch-plugin', - transform: (code, id) => { - if (id.endsWith('.svg')) { - const extractedSvg = fs.readFileSync(id, 'utf8'); - const datauri = svgToMiniDataURI.toSrcset(extractedSvg); - return `export default "${datauri}"`; - } - return code; - }, -}); From f1c4a38a49ca1990d63539bc40d2ec2781704a78 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 14:25:07 +1000 Subject: [PATCH 439/717] Update dependency sanitize-html to v2.12.1 [SECURITY] (#1729) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index d8bd7588..478320ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,7 +57,7 @@ "react-modal": "3.16.1", "react-range": "1.8.14", "react-router-dom": "6.20.0", - "sanitize-html": "2.8.0", + "sanitize-html": "2.12.1", "slate": "0.94.1", "slate-history": "0.93.0", "slate-react": "0.98.4", @@ -7703,9 +7703,9 @@ } }, "node_modules/sanitize-html": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.8.0.tgz", - "integrity": "sha512-ZsGyc6avnqgvEm3eMKrcy8xa7WM1MrGrfkGsUgQee2CU+vg3PCfNCexXwBDF/6dEPvaQ4k/QqRjnYKHL8xgNjg==", + "version": "2.12.1", + "resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.12.1.tgz", + "integrity": "sha512-Plh+JAn0UVDpBRP/xEjsk+xDCoOvMBwQUf/K+/cBAVuTbtX8bj2VB7S1sL1dssVpykqp0/KPSesHrqXtokVBpA==", "dependencies": { "deepmerge": "^4.2.2", "escape-string-regexp": "^4.0.0", @@ -7716,9 +7716,9 @@ } }, "node_modules/sanitize-html/node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "engines": { "node": ">=0.10.0" } diff --git a/package.json b/package.json index 70dd6b52..f7ba24dc 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "react-modal": "3.16.1", "react-range": "1.8.14", "react-router-dom": "6.20.0", - "sanitize-html": "2.8.0", + "sanitize-html": "2.12.1", "slate": "0.94.1", "slate-history": "0.93.0", "slate-react": "0.98.4", From ec65b98874f517d479c2e96f6b24c4feac3f4904 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 14:27:02 +1000 Subject: [PATCH 440/717] Update dependency eslint-plugin-import to v2.29.1 (#1730) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- package-lock.json | 888 ++++++++++++++++++++++++++++++++++++---------- package.json | 2 +- 2 files changed, 705 insertions(+), 185 deletions(-) diff --git a/package-lock.json b/package-lock.json index 478320ad..90da965b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -84,7 +84,7 @@ "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", "eslint-config-prettier": "8.5.0", - "eslint-plugin-import": "2.26.0", + "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", @@ -3835,16 +3835,33 @@ "node": ">=6.0" } }, - "node_modules/array-includes": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.6.tgz", - "integrity": "sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==", + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", "is-string": "^1.0.7" }, "engines": { @@ -3863,15 +3880,35 @@ "node": ">=8" } }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", + "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array.prototype.flat": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.1.tgz", - "integrity": "sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3882,14 +3919,14 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.1.tgz", - "integrity": "sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", "es-shim-unscopables": "^1.0.0" }, "engines": { @@ -3912,6 +3949,28 @@ "get-intrinsic": "^1.1.3" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asap": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", @@ -3928,6 +3987,21 @@ "resolved": "https://registry.npmjs.org/autosize/-/autosize-4.0.4.tgz", "integrity": "sha512-5yxLQ22O0fCRGoxGfeLSNt3J8LB1v+umtpMnPW6XjkTWXKoN0AmXAIhelJcDtFT/Y/wYWmfE+oqU10Q0b8FhaQ==" }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/await-to-js": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/await-to-js/-/await-to-js-3.0.0.tgz", @@ -4087,13 +4161,19 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4371,6 +4451,57 @@ "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/dateformat": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-5.0.3.tgz", @@ -4431,12 +4562,30 @@ "node": ">=0.10.0" } }, - "node_modules/define-properties": { + "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -4603,36 +4752,57 @@ } }, "node_modules/es-abstract": { - "version": "1.20.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.5.tgz", - "integrity": "sha512-7h8MM2EQhsCA7pU/Nv78qOXFpD8Rhqd12gYiSJVkrH9+e8VuA8JlPJK/hQjjlLv6pJvx/z1iRFKzYb0XT/RuAQ==", + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.6", - "string.prototype.trimstart": "^1.0.6", - "unbox-primitive": "^1.0.2" + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" }, "engines": { "node": ">= 0.4" @@ -4641,13 +4811,60 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/es-shim-unscopables": { + "node_modules/es-define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", "dev": true, "dependencies": { - "has": "^1.0.3" + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" } }, "node_modules/es-to-primitive": { @@ -4828,13 +5045,14 @@ } }, "node_modules/eslint-import-resolver-node": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", - "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "dev": true, "dependencies": { "debug": "^3.2.7", - "resolve": "^1.20.0" + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" } }, "node_modules/eslint-import-resolver-node/node_modules/debug": { @@ -4847,9 +5065,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", - "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -4873,24 +5091,28 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.26.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", - "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", "dev": true, "dependencies": { - "array-includes": "^3.1.4", - "array.prototype.flat": "^1.2.5", - "debug": "^2.6.9", + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.3", - "has": "^1.0.3", - "is-core-module": "^2.8.1", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.values": "^1.1.5", - "resolve": "^1.22.0", - "tsconfig-paths": "^3.14.1" + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" @@ -4900,12 +5122,12 @@ } }, "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "node_modules/eslint-plugin-import/node_modules/doctrine": { @@ -4920,12 +5142,6 @@ "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-import/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - }, "node_modules/eslint-plugin-jsx-a11y": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz", @@ -5460,6 +5676,15 @@ "react-dom": "^17.0.0" } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/formik": { "version": "2.2.9", "resolved": "https://registry.npmjs.org/formik/-/formik-2.2.9.tgz", @@ -5549,21 +5774,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -5618,27 +5846,33 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -5687,6 +5921,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -5760,12 +6010,24 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5784,12 +6046,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5804,6 +6066,18 @@ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "optional": true }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -5975,13 +6249,13 @@ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, "node_modules/internal-slot": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.4.tgz", - "integrity": "sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -6004,6 +6278,22 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", @@ -6057,12 +6347,27 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6118,9 +6423,9 @@ "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -6187,12 +6492,15 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6228,6 +6536,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -6240,6 +6563,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -6655,9 +6984,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6818,9 +7147,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6836,13 +7165,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -6868,14 +7197,15 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.6.tgz", - "integrity": "sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==", + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -6884,6 +7214,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/object.groupby": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/object.hasown": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.2.tgz", @@ -6898,14 +7242,14 @@ } }, "node_modules/object.values": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.6.tgz", - "integrity": "sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -7093,6 +7437,15 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.32", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", @@ -7513,14 +7866,15 @@ } }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -7558,12 +7912,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -7668,6 +8022,24 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7689,15 +8061,18 @@ "optional": true }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7789,6 +8164,38 @@ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "optional": true }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -7976,29 +8383,50 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz", - "integrity": "sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==", + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz", - "integrity": "sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.20.4" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8147,21 +8575,21 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" }, "node_modules/tsconfig-paths": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", - "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "dev": true, "dependencies": { "@types/json5": "^0.0.29", - "json5": "^1.0.1", + "json5": "^1.0.2", "minimist": "^1.2.6", "strip-bom": "^3.0.0" } }, "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "dev": true, "dependencies": { "minimist": "^1.2.0" @@ -8230,6 +8658,79 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typescript": { "version": "4.9.4", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.4.tgz", @@ -8910,6 +9411,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", diff --git a/package.json b/package.json index f7ba24dc..8c8b87e7 100644 --- a/package.json +++ b/package.json @@ -94,7 +94,7 @@ "eslint": "8.29.0", "eslint-config-airbnb": "19.0.4", "eslint-config-prettier": "8.5.0", - "eslint-plugin-import": "2.26.0", + "eslint-plugin-import": "2.29.1", "eslint-plugin-jsx-a11y": "6.6.1", "eslint-plugin-react": "7.31.11", "eslint-plugin-react-hooks": "4.6.0", From 215537a26177558c61eb608866ce224953726f58 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 12 May 2024 14:36:35 +1000 Subject: [PATCH 441/717] Fix crash when img without src tag (#1731) --- src/app/utils/sanitize.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/utils/sanitize.ts b/src/app/utils/sanitize.ts index 48ab0b8d..985c47b1 100644 --- a/src/app/utils/sanitize.ts +++ b/src/app/utils/sanitize.ts @@ -107,7 +107,7 @@ const transformATag: Transformer = (tagName, attribs) => ({ const transformImgTag: Transformer = (tagName, attribs) => { const { src } = attribs; - if (src.startsWith('mxc://') === false) { + if (typeof src === 'string' && src.startsWith('mxc://') === false) { return { tagName: 'a', attribs: { From fe2332ee877e147b954f3b20b23a24d953f527d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 12 May 2024 14:39:43 +1000 Subject: [PATCH 442/717] Bump actions/checkout from 4.1.4 to 4.1.5 (#1721) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.4 to 4.1.5. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.4...v4.1.5) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index f2af6b6f..e651a344 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Setup node uses: actions/setup-node@v4.0.2 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index adfc7912..7deb40d1 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Build Docker image uses: docker/build-push-action@v5.3.0 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index 0d58b254..dda75783 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 07c0f50d..518d554a 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Setup node uses: actions/setup-node@v4.0.2 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index c9cc111f..eddae352 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Setup node uses: actions/setup-node@v4.0.2 with: @@ -66,7 +66,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v4.1.4 + uses: actions/checkout@v4.1.5 - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx From cd5d8e1c20532109a4d5a4738e4d2dfde1e288d7 Mon Sep 17 00:00:00 2001 From: Krishan <33421343+kfiven@users.noreply.github.com> Date: Sun, 12 May 2024 16:14:34 +1000 Subject: [PATCH 443/717] Fix pdf opening (#1732) --- vite.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vite.config.js b/vite.config.js index f77abfc5..97f40500 100644 --- a/vite.config.js +++ b/vite.config.js @@ -15,8 +15,9 @@ const copyFiles = { dest: '', }, { - src: 'node_modules/pdfjs-dist/build/pdf.worker.min.js', + src: 'node_modules/pdfjs-dist/build/pdf.worker.min.mjs', dest: '', + rename: 'pdf.worker.min.js', }, { src: 'netlify.toml', From 2d6dd3b0b25db632fb1f2d93830ef1e1fff6d64b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 13:33:58 +1000 Subject: [PATCH 444/717] Bump cla-assistant/github-action from 2.3.2 to 2.4.0 (#1735) Bumps [cla-assistant/github-action](https://github.com/cla-assistant/github-action) from 2.3.2 to 2.4.0. - [Release notes](https://github.com/cla-assistant/github-action/releases) - [Commits](https://github.com/cla-assistant/github-action/compare/v2.3.2...v2.4.0) --- updated-dependencies: - dependency-name: cla-assistant/github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/cla.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index 259ee514..2ad3d145 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -12,7 +12,7 @@ jobs: - name: 'CLA Assistant' if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' # Beta Release - uses: cla-assistant/github-action@v2.3.2 + uses: cla-assistant/github-action@v2.4.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # the below token should have repo scope and must be manually added by you in the repository's secret From 5817186129a4776f02ef69d03e5bdc391b98f639 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 13:34:57 +1000 Subject: [PATCH 445/717] Bump softprops/action-gh-release from 2.0.4 to 2.0.5 (#1734) Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2.0.4 to 2.0.5. - [Release notes](https://github.com/softprops/action-gh-release/releases) - [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md) - [Commits](https://github.com/softprops/action-gh-release/compare/9d7c94cfd0a1f3ed45544c887983e9fa900f0564...69320dbe05506a9a39fc8ae11030b214ec2d1f87) --- updated-dependencies: - dependency-name: softprops/action-gh-release dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/prod-deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index eddae352..3d2f1094 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -52,7 +52,7 @@ jobs: gpg --export | xxd -p echo '${{ secrets.GNUPG_PASSPHRASE }}' | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --armor --detach-sign cinny-${{ steps.vars.outputs.tag }}.tar.gz - name: Upload tagged release - uses: softprops/action-gh-release@9d7c94cfd0a1f3ed45544c887983e9fa900f0564 + uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 with: files: | cinny-${{ steps.vars.outputs.tag }}.tar.gz From 97d02fd7c84457b25a80e18974435ee8f8bb7b86 Mon Sep 17 00:00:00 2001 From: aceArt-GmbH <33117017+aceArt-GmbH@users.noreply.github.com> Date: Tue, 14 May 2024 05:49:04 +0200 Subject: [PATCH 446/717] Scroll tab target into view (#1580) --- src/app/atoms/tabs/Tabs.jsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/app/atoms/tabs/Tabs.jsx b/src/app/atoms/tabs/Tabs.jsx index 39800ce3..bcdc8ef7 100644 --- a/src/app/atoms/tabs/Tabs.jsx +++ b/src/app/atoms/tabs/Tabs.jsx @@ -41,8 +41,9 @@ TabItem.propTypes = { function Tabs({ items, defaultSelected, onSelect }) { const [selectedItem, setSelectedItem] = useState(items[defaultSelected]); - const handleTabSelection = (item, index) => { + const handleTabSelection = (item, index, target) => { if (selectedItem === item) return; + target.scrollIntoView({ behavior: 'smooth', block: 'nearest', inline: 'center' }); setSelectedItem(item); onSelect(item, index); }; @@ -57,7 +58,7 @@ function Tabs({ items, defaultSelected, onSelect }) { selected={selectedItem.text === item.text} iconSrc={item.iconSrc} disabled={item.disabled} - onClick={() => handleTabSelection(item, index)} + onClick={(e) => handleTabSelection(item, index, e.currentTarget)} > {item.text} From 76d60b09581f735cc774db4110dba8ee02920902 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 14:01:45 +1000 Subject: [PATCH 447/717] Bump vite-plugin-static-copy from 0.13.0 to 1.0.4 (#1722) * Bump vite-plugin-static-copy from 0.13.0 to 1.0.4 Bumps [vite-plugin-static-copy](https://github.com/sapphi-red/vite-plugin-static-copy) from 0.13.0 to 1.0.4. - [Release notes](https://github.com/sapphi-red/vite-plugin-static-copy/releases) - [Changelog](https://github.com/sapphi-red/vite-plugin-static-copy/blob/main/CHANGELOG.md) - [Commits](https://github.com/sapphi-red/vite-plugin-static-copy/compare/v0.13.0...vite-plugin-static-copy@1.0.4) --- updated-dependencies: - dependency-name: vite-plugin-static-copy dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Change type to module --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Krishan <33421343+kfiven@users.noreply.github.com> --- package-lock.json | 12 ++++++------ package.json | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 90da965b..2eec2912 100644 --- a/package-lock.json +++ b/package-lock.json @@ -92,7 +92,7 @@ "sass": "1.56.2", "typescript": "4.9.4", "vite": "5.0.13", - "vite-plugin-static-copy": "0.13.0", + "vite-plugin-static-copy": "1.0.4", "vite-plugin-top-level-await": "1.4.1" }, "engines": { @@ -8902,9 +8902,9 @@ } }, "node_modules/vite-plugin-static-copy": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-0.13.0.tgz", - "integrity": "sha512-cln+fvKMgwNBjxQ59QVblmExZrc9gGEdRmfqcPOOGpxT5KInfpkGMvmK4L+kCAeHHSSGNU1bM7BA9PQgaAJc6g==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-1.0.4.tgz", + "integrity": "sha512-UtyOttgoeotSCwmBugsEZCZJZcIpjE9NGO7jlZ9OeedYpBueBdspD8waRZrjE+yQLH6qGNU2CvYB2FILviCQjg==", "dev": true, "dependencies": { "chokidar": "^3.5.3", @@ -8913,10 +8913,10 @@ "picocolors": "^1.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": "^18.0.0 || >=20.0.0" }, "peerDependencies": { - "vite": "^3.0.0 || ^4.0.0" + "vite": "^5.0.0" } }, "node_modules/vite-plugin-static-copy/node_modules/fs-extra": { diff --git a/package.json b/package.json index 8c8b87e7..44c28d34 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "3.2.0", "description": "Yet another matrix client", "main": "index.js", + "type": "module", "engines": { "node": ">=16.0.0" }, @@ -102,7 +103,7 @@ "sass": "1.56.2", "typescript": "4.9.4", "vite": "5.0.13", - "vite-plugin-static-copy": "0.13.0", + "vite-plugin-static-copy": "1.0.4", "vite-plugin-top-level-await": "1.4.1" } } From e15b16b19b7c95a4053dbbfa5ed1e7dffcc5320f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 14:18:40 +1000 Subject: [PATCH 448/717] Bump nginx from 1.25.5-alpine to 1.26.0-alpine (#1718) Bumps nginx from 1.25.5-alpine to 1.26.0-alpine. --- updated-dependencies: - dependency-name: nginx dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 6cd3ebf6..f843fbf1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,7 @@ RUN npm run build ## App -FROM nginx:1.25.5-alpine +FROM nginx:1.26.0-alpine COPY --from=builder /src/dist /app From 07bfa0cf104608b74be1254b3870b8186b10730e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 May 2024 21:54:48 +1000 Subject: [PATCH 449/717] --- (#1741) updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/build-pull-request.yml | 2 +- .github/workflows/docker-pr.yml | 2 +- .github/workflows/lockfile.yml | 2 +- .github/workflows/netlify-dev.yml | 2 +- .github/workflows/prod-deploy.yml | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-pull-request.yml b/.github/workflows/build-pull-request.yml index e651a344..133729f7 100644 --- a/.github/workflows/build-pull-request.yml +++ b/.github/workflows/build-pull-request.yml @@ -12,7 +12,7 @@ jobs: PR_NUMBER: ${{github.event.number}} steps: - name: Checkout repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Setup node uses: actions/setup-node@v4.0.2 with: diff --git a/.github/workflows/docker-pr.yml b/.github/workflows/docker-pr.yml index 7deb40d1..de29ff35 100644 --- a/.github/workflows/docker-pr.yml +++ b/.github/workflows/docker-pr.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Build Docker image uses: docker/build-push-action@v5.3.0 with: diff --git a/.github/workflows/lockfile.yml b/.github/workflows/lockfile.yml index dda75783..af91698e 100644 --- a/.github/workflows/lockfile.yml +++ b/.github/workflows/lockfile.yml @@ -14,7 +14,7 @@ jobs: pull-requests: write steps: - name: Checkout - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: NPM Lockfile Changes uses: codepunkt/npm-lockfile-changes@b40543471c36394409466fdb277a73a0856d7891 with: diff --git a/.github/workflows/netlify-dev.yml b/.github/workflows/netlify-dev.yml index 518d554a..9252e3e4 100644 --- a/.github/workflows/netlify-dev.yml +++ b/.github/workflows/netlify-dev.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Setup node uses: actions/setup-node@v4.0.2 with: diff --git a/.github/workflows/prod-deploy.yml b/.github/workflows/prod-deploy.yml index 3d2f1094..a203ea34 100644 --- a/.github/workflows/prod-deploy.yml +++ b/.github/workflows/prod-deploy.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Setup node uses: actions/setup-node@v4.0.2 with: @@ -66,7 +66,7 @@ jobs: packages: write steps: - name: Checkout repository - uses: actions/checkout@v4.1.5 + uses: actions/checkout@v4.1.6 - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx From 2b7d8256943c2d2da5089b2626fd038c056672eb Mon Sep 17 00:00:00 2001 From: Majan Paul Date: Wed, 22 May 2024 04:56:44 -0700 Subject: [PATCH 450/717] Ignroe webstorm idea folder (#1638) --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 397d2434..1af58a97 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ node_modules devAssets .DS_Store +.idea \ No newline at end of file From 4c76a7fd180c56daacae3fc3c01706aa3ea92bd2 Mon Sep 17 00:00:00 2001 From: Ajay Bura <32841439+ajbura@users.noreply.github.com> Date: Fri, 31 May 2024 19:49:46 +0530 Subject: [PATCH 451/717] URL navigation in interface and other improvements (#1633) * load room on url change * add direct room list * render space room list * fix css syntax error * update scroll virtualizer * render subspaces room list * improve sidebar notification badge perf * add nav category components * add space recursive direct component * use nav category component in home, direct and space room list * add empty home and direct list layout * fix unread room menu ref * add more navigation items in room, direct and space tab * add more navigation * fix unread room menu to links * fix space lobby and search link * add explore navigation section * add notifications navigation menu * redirect to initial path after login * include unsupported room in rooms * move router hooks in hooks/router folder * add featured explore - WIP * load featured room with room summary * fix room card topic line clamp * add react query * load room summary using react query * add join button in room card * add content component * use content component in featured community content * fix content width * add responsive room card grid * fix async callback error status * add room card error button * fix client drawer shrink * add room topic viewer * open room card topic in viewer * fix room topic close btn * add get orphan parent util * add room card error dialog * add view featured room or space btn * refactor orphanParent to orphanParents * WIP - explore server * show space hint in room card * add room type filters * add per page item limit popout * reset scroll on public rooms load * refactor explore ui * refactor public rooms component * reset search on server change * fix typo * add empty featured section info * display user server on top * make server room card view btn clickable * add user server as default redirect for explore path * make home empty btn clickable * add thirdparty instance filter in server explore * remove since param on instance change * add server button in explore menu * rename notifications path to inbox * update react-virtual * Add notification messages inbox - WIP * add scroll top container component * add useInterval hook * add visibility change callback prop to scroll top container component * auto refresh notifications every 10 seconds * make message related component reusable * refactor matrix event renderer hoook * render notification message content * refactor matrix event renderer hook * update sequence card styles * move room navigate hook in global hooks * add open message button in notifications * add mark room as read button in notification group * show error in notification messages * add more featured spaces * render reply in notification messages * make notification message reply clickable * add outline prop for attachments * make old settings dialog viewable * add open featured communities as default config option * add invite count notification badge in sidebar and inbox menu * add element size observer hook * improve element size observer hook props * improve screen size hook * fix room avatar util function * allow Text props in Time component * fix dm room util function * add invitations * add no invites and notification cards * fix inbox tab unread badge visible without invite count * update folds and change inbox icon * memo search param construction * add message search in home * fix default message search order * fix display edited message new content * highlight search text in search messages * fix message search loading * disable log in production * add use space context * add useRoom context * fix space room list * fix inbox tab active state * add hook to get space child room recursive * add search for space * add virtual tile component * virtualize home and directs room list * update nav category component * use virtual tile component in more places * fix message highlight when click on reply twice * virtualize space room list * fix space room list lag issue * update folds * add room nav item component in space room list * use room nav item in home and direct room list * make space categories closable and save it in local storage * show unread room when category is collapsed * make home and direct room list category closable * rename room nav item show avatar prop * fix explore server category text alignment * rename closedRoomCategories to closedNavCategories * add nav category handler hook * save and restore last navigation path on space select * filter space rooms category by activity when it is closed * save and restore home and direct nav path state * save and restore inbox active path on open * save and restore explore tab active path * remove notification badge unread menu * add join room or space before navigate screen * move room component to features folder and add new room header * update folds * add room header menu * fix home room list activity sorting * do not hide selected room item on category closed in home and direct tab * replace old select room/tab call with navigate hook * improve state event hooks * show room card summary for joined rooms * prevent room from opening in wrong tab * only show message sender id on hover in modern layout * revert state event hooks changes * add key prop to room provider components * add welcome page * prevent excessive redirects * fix sidebar style with no spaces * move room settings in popup window * remove invite option from room settings * fix open room list search * add leave room prompt * standardize room and user avatar * fix avatar text size * add new reply layout * rename space hierarchy hook * add room topic hook * add room name hook * add room avatar hook and add direct room avatar util * space lobby - WIP * hide invalid space child event from space hierarchy in lobby * move lobby to features * fix element size observer hook width and height * add lobby header and hero section * add hierarchy room item error and loading state * add first and last child prop in sequence card * redirect to lobby from index path * memo and retry hierarchy room summary error * fix hierarchy room item styles * rename lobby hierarchy item card to room item card * show direct room avatar in space lobby * add hierarchy space item * add space item unknown room join button * fix space hierarchy hook refresh after new space join * change user avatar color and fallback render to user icon * change room avatar fallback to room icon * rename room/user avatar renderInitial prop to renderFallback * add room join and view button in space lobby * make power level api more reusable * fix space hierarchy not updating on child update * add menu to suggest or remove space children * show reply arrow in place of reply bend in message * fix typeerror in search because of wrong js-sdk t.ds * do not refetch hierarchy room summary on window focus * make room/user avatar un-draggable * change welcome page support button copy * drag-and-drop ordering of lobby spaces/rooms - WIP * add ASCIILexicalTable algorithms * fix wrong power level check in lobby items options * fix lobby can drop checks * fix join button error crash * fix reply spacing * fix m direct updated with other account data * add option to open room/space settings from lobby * add option in lobby to add new or existing room/spaces * fix room nav item selected styles * add space children reorder mechanism * fix space child reorder bug * fix hierarchy item sort function * Apply reorder of lobby into room list * add and improve space lobby menu items * add existing spaces menu in lobby * change restricted room allow params when dragging outside space * move featured servers config from homeserver list * removed unused features from space settings * add canonical alias as name fallback in lobby item * fix unreliable unread count update bug * fix after login redirect * fix room card topic hover style * Add dnd and folders in sidebar spaces * fix orphan space not visible in sidebar * fix sso login has mix of icon and button * fix space children not visible in home upon leaving space * recalculate notification on updating any space child * fix user color saturation/lightness * add user color to user avatar * add background colors to room avatar * show 2 length initial in sidebar space avatar * improve link color * add nav button component * open legacy create room and create direct * improve page route structure * handle hash router in path utils * mobile friendly router and navigation * make room header member drawer icon mobile friendly * setup index redirect for inbox and explore server route * add leave space prompt * improve member drawer filter menu * add space context menu * add context menu in home * add leave button in lobby items * render user tab avatar on sidebar * force overwrite netlify - test * netlify test * fix reset-password path without server redirected to login * add message link copy button in message menu * reset unread on sync prepared * fix stuck typing notifications * show typing indication in room nav item * refactor closedNavCategories atom to use userId in store key * refactor closedLobbyCategoriesAtom to include userId in store key * refactor navToActivePathAtom to use userId in storage key * remove unused file * refactor openedSidebarFolderAtom to include userId in storage key * add context menu for sidebar space tab * fix eslint not working * add option to pin/unpin child spaces * add context menu for directs tab * add context menu for direct and home tab * show lock icon for non-public space in header * increase matrix max listener count * wrap lobby add space room in callback hook --- .eslintrc.js => .eslintrc.cjs | 0 config.json | 20 + netlify.toml | 6 +- package-lock.json | 121 +- package.json | 9 +- .../CapabilitiesAndMediaConfigLoader.tsx | 36 + src/app/components/CapabilitiesLoader.tsx | 19 + src/app/components/MediaConfigLoader.tsx | 19 + src/app/components/Pdf-viewer/PdfViewer.tsx | 34 +- src/app/components/RenderMessageContent.tsx | 245 ++++ src/app/components/RoomSummaryLoader.tsx | 90 ++ src/app/components/RoomUnreadProvider.tsx | 24 + .../components/SpaceChildDirectsProvider.tsx | 28 + .../components/SpaceChildRoomsProvider.tsx | 28 + src/app/components/SpecVersionsLoader.tsx | 31 +- src/app/components/editor/Toolbar.tsx | 43 +- .../autocomplete/RoomMentionAutocomplete.tsx | 56 +- .../autocomplete/UserMentionAutocomplete.tsx | 37 +- .../components/event-readers/EventReaders.tsx | 22 +- .../leave-room-prompt/LeaveRoomPrompt.tsx | 106 ++ src/app/components/leave-room-prompt/index.ts | 1 + .../leave-space-prompt/LeaveSpacePrompt.tsx | 106 ++ .../components/leave-space-prompt/index.ts | 1 + .../message/FileHeader.tsx | 2 +- .../components/message/MsgTypeRenderers.tsx | 398 ++++++ src/app/components/message/RenderBody.tsx | 37 + src/app/components/message/Reply.css.ts | 15 +- src/app/components/message/Reply.tsx | 171 +-- src/app/components/message/Time.tsx | 38 +- .../message/content/AudioContent.tsx | 199 +++ .../message/content}/EventContent.tsx | 2 +- .../FallbackContent.tsx} | 0 .../message/content}/FileContent.tsx | 99 +- .../message/content}/ImageContent.tsx | 67 +- .../message/content/ThumbnailContent.tsx | 34 + .../message/content}/VideoContent.tsx | 71 +- src/app/components/message/content/index.ts | 7 + .../components/message/content/style.css.ts | 37 + .../message/content}/util.ts | 0 src/app/components/message/index.ts | 5 +- .../components/message/layout/layout.css.ts | 7 +- src/app/components/nav/NavCategory.tsx | 11 + src/app/components/nav/NavCategoryHeader.tsx | 19 + src/app/components/nav/NavEmptyLayout.tsx | 40 + src/app/components/nav/NavItem.tsx | 33 + src/app/components/nav/NavItemContent.tsx | 10 + src/app/components/nav/NavItemOptions.tsx | 17 + src/app/components/nav/index.ts | 6 + src/app/components/nav/styles.css.ts | 127 ++ src/app/components/page/Page.tsx | 146 +++ src/app/components/page/index.tsx | 1 + src/app/components/page/style.css.ts | 69 ++ .../components/room-avatar/RoomAvatar.css.ts | 14 + src/app/components/room-avatar/RoomAvatar.tsx | 56 + src/app/components/room-avatar/index.ts | 1 + src/app/components/room-card/RoomCard.tsx | 314 +++++ src/app/components/room-card/index.ts | 1 + src/app/components/room-card/style.css.ts | 36 + src/app/components/room-intro/RoomIntro.tsx | 49 +- .../room-topic-viewer/RoomTopicViewer.tsx | 41 + src/app/components/room-topic-viewer/index.ts | 1 + .../components/room-topic-viewer/style.css.ts | 23 + .../ScrollTopContainer.tsx | 39 + .../components/scroll-top-container/index.ts | 1 + .../scroll-top-container/style.css.ts | 20 + .../components/sequence-card/SequenceCard.tsx | 18 + src/app/components/sequence-card/index.ts | 1 + src/app/components/sequence-card/style.css.ts | 52 + src/app/components/sidebar/Sidebar.css.ts | 162 ++- src/app/components/sidebar/SidebarAvatar.tsx | 75 -- src/app/components/sidebar/SidebarContent.tsx | 6 +- src/app/components/sidebar/SidebarItem.tsx | 81 ++ src/app/components/sidebar/index.ts | 2 +- .../typing-indicator/TypingIndicator.css.ts | 7 +- .../typing-indicator/TypingIndicator.tsx | 31 +- .../components/unread-badge/UnreadBadge.tsx | 36 + src/app/components/unread-badge/index.ts | 1 + .../url-preview/UrlPreviewCard.css.tsx | 47 + .../url-preview}/UrlPreviewCard.tsx | 15 +- src/app/components/url-preview/index.ts | 1 + .../components/user-avatar/UserAvatar.css.ts | 14 + src/app/components/user-avatar/UserAvatar.tsx | 40 + src/app/components/user-avatar/index.ts | 1 + .../components/virtualizer/VirtualTile.tsx | 20 + src/app/components/virtualizer/index.ts | 1 + src/app/components/virtualizer/style.css.ts | 11 + src/app/cs-api.ts | 2 +- .../JoinBeforeNavigate.tsx | 61 + .../features/join-before-navigate/index.ts | 1 + src/app/features/lobby/DnD.css.ts | 91 ++ src/app/features/lobby/DnD.tsx | 146 +++ src/app/features/lobby/HierarchyItemMenu.tsx | 306 +++++ src/app/features/lobby/Lobby.tsx | 528 ++++++++ src/app/features/lobby/LobbyHeader.css.ts | 13 + src/app/features/lobby/LobbyHeader.tsx | 214 ++++ src/app/features/lobby/LobbyHero.css.tsx | 15 + src/app/features/lobby/LobbyHero.tsx | 77 ++ src/app/features/lobby/RoomItem.css.ts | 22 + src/app/features/lobby/RoomItem.tsx | 441 +++++++ src/app/features/lobby/SpaceItem.css.ts | 39 + src/app/features/lobby/SpaceItem.tsx | 493 ++++++++ src/app/features/lobby/index.ts | 1 + src/app/features/lobby/style.css.ts | 15 + .../features/message-search/MessageSearch.tsx | 329 +++++ .../features/message-search/SearchFilters.tsx | 413 +++++++ .../features/message-search/SearchInput.tsx | 66 + .../message-search/SearchResultGroup.tsx | 262 ++++ src/app/features/message-search/index.ts | 1 + .../message-search/useMessageSearch.ts | 115 ++ .../room-nav/RoomNavCategoryButton.tsx | 27 + src/app/features/room-nav/RoomNavItem.tsx | 297 +++++ src/app/features/room-nav/index.ts | 2 + src/app/features/room-nav/styles.css.ts | 9 + .../room/CommandAutocomplete.tsx | 0 .../room/MembersDrawer.css.ts | 0 .../room/MembersDrawer.tsx | 174 ++- src/app/features/room/Room.tsx | 33 + .../room/RoomInput.tsx | 122 +- .../room/RoomInputPlaceholder.css.ts | 0 .../room/RoomInputPlaceholder.tsx | 0 .../room/RoomTimeline.css.ts | 0 .../room/RoomTimeline.tsx | 1085 +++++++---------- .../room/RoomTombstone.css.ts | 0 .../room/RoomTombstone.tsx | 8 +- src/app/features/room/RoomView.tsx | 84 ++ .../room/RoomViewFollowing.css.ts | 0 .../room/RoomViewFollowing.tsx | 0 src/app/features/room/RoomViewHeader.css.ts | 10 + src/app/features/room/RoomViewHeader.tsx | 348 ++++++ .../room/RoomViewTyping.css.ts | 0 src/app/features/room/RoomViewTyping.tsx | 121 ++ src/app/features/room/index.ts | 1 + .../room/message/EncryptedContent.tsx | 0 .../room/message/Message.tsx | 247 ++-- .../room/message/MessageEditor.tsx | 57 +- .../room/message/Reactions.tsx | 0 src/app/features/room/message/index.ts | 3 + src/app/features/room/message/styles.css.ts | 50 + .../room/msgContent.ts | 2 +- .../reaction-viewer/ReactionViewer.css.ts | 0 .../room/reaction-viewer/ReactionViewer.tsx | 22 +- .../room/reaction-viewer/index.ts | 0 src/app/hooks/router/useDirectSelected.ts | 22 + src/app/hooks/router/useExploreSelected.ts | 28 + src/app/hooks/router/useHomeSelected.ts | 47 + src/app/hooks/router/useInbox.ts | 36 + src/app/hooks/router/useSelectedRoom.ts | 15 + src/app/hooks/router/useSelectedSpace.ts | 37 + src/app/hooks/useAccountDataCallback.ts | 14 + src/app/hooks/useAsyncCallback.ts | 17 +- src/app/hooks/useCapabilities.ts | 12 + src/app/hooks/useCategoryHandler.ts | 27 + src/app/hooks/useClientConfig.ts | 15 +- src/app/hooks/useCommands.ts | 14 +- src/app/hooks/useElementSizeObserver.ts | 23 + src/app/hooks/useInterval.ts | 24 + src/app/hooks/useJoinedRoomId.ts | 19 + src/app/hooks/useLocalRoomSummary.ts | 44 + src/app/hooks/useMatrixEventRenderer.ts | 81 +- src/app/hooks/useMediaConfig.ts | 16 + src/app/hooks/useNavToActivePathMapper.ts | 18 + src/app/hooks/usePowerLevels.ts | 167 ++- src/app/hooks/useRoom.ts | 12 + src/app/hooks/useRoomMeta.ts | 41 + src/app/hooks/useRoomMsgContentRenderer.ts | 68 -- src/app/hooks/useRoomNavigate.ts | 55 + src/app/hooks/useRoomTypingMembers.ts | 10 + src/app/hooks/useScreenSize.ts | 35 +- src/app/hooks/useSidebarItems.ts | 138 +++ src/app/hooks/useSpace.ts | 17 + src/app/hooks/useSpaceHierarchy.ts | 253 ++++ src/app/hooks/useSyncState.ts | 14 + src/app/hooks/useTypingStatusUpdater.ts | 3 +- .../space-add-existing/SpaceAddExisting.jsx | 175 +-- src/app/organisms/navigation/Drawer.jsx | 12 +- src/app/organisms/navigation/Sidebar1.tsx | 125 -- src/app/organisms/pw/Windows.jsx | 14 +- src/app/organisms/room/Room.scss | 1 + src/app/organisms/room/Room.tsx | 46 - src/app/organisms/room/RoomSettings.jsx | 162 ++- src/app/organisms/room/RoomSettings.scss | 65 +- src/app/organisms/room/RoomView.jsx | 118 -- src/app/organisms/room/RoomViewTyping.tsx | 118 -- .../organisms/room/message/AudioContent.tsx | 194 --- .../organisms/room/message/StickerContent.tsx | 48 - .../organisms/room/message/fileRenderer.tsx | 45 - src/app/organisms/room/message/index.ts | 10 - src/app/organisms/room/message/styles.css.ts | 131 -- src/app/organisms/search/Search.jsx | 30 +- .../space-settings/SpaceSettings.jsx | 79 +- src/app/pages/App.tsx | 101 +- src/app/pages/MobileFriendly.tsx | 44 + src/app/pages/Router.tsx | 269 ++++ src/app/pages/afterLoginRedirectPath.ts | 12 + src/app/pages/auth/AuthLayout.tsx | 17 +- src/app/pages/auth/SSOLogin.tsx | 6 +- src/app/pages/auth/ServerPicker.tsx | 39 +- src/app/pages/auth/login/Login.tsx | 18 +- .../pages/auth/login/PasswordLoginForm.tsx | 38 +- src/app/pages/auth/login/loginUtil.ts | 11 +- src/app/pages/auth/register/Register.tsx | 18 +- src/app/pages/auth/register/registerUtil.ts | 23 +- .../auth/reset-password/ResetPassword.tsx | 21 +- src/app/pages/client/ClientBindAtoms.ts | 14 + .../pages/client/ClientInitStorageAtom.tsx | 38 + src/app/pages/client/ClientLayout.tsx | 15 + src/app/pages/client/ClientRoot.tsx | 87 ++ src/app/pages/client/SidebarNav.tsx | 76 ++ src/app/pages/client/SpecVersions.tsx | 46 + src/app/pages/client/WelcomePage.tsx | 64 + src/app/pages/client/direct/Direct.tsx | 263 ++++ src/app/pages/client/direct/RoomProvider.tsx | 26 + src/app/pages/client/direct/index.ts | 2 + src/app/pages/client/direct/useDirectRooms.ts | 12 + src/app/pages/client/explore/Explore.tsx | 269 ++++ src/app/pages/client/explore/Featured.tsx | 121 ++ src/app/pages/client/explore/Server.tsx | 645 ++++++++++ src/app/pages/client/explore/index.ts | 3 + src/app/pages/client/explore/style.css.ts | 19 + src/app/pages/client/home/Home.tsx | 315 +++++ src/app/pages/client/home/RoomProvider.tsx | 26 + src/app/pages/client/home/Search.tsx | 37 + src/app/pages/client/home/index.ts | 3 + src/app/pages/client/home/useHomeRooms.ts | 14 + src/app/pages/client/inbox/Inbox.tsx | 87 ++ src/app/pages/client/inbox/Invites.tsx | 288 +++++ src/app/pages/client/inbox/Notifications.tsx | 609 +++++++++ src/app/pages/client/inbox/index.ts | 3 + src/app/pages/client/index.ts | 3 + src/app/pages/client/sidebar/DirectTab.tsx | 132 ++ src/app/pages/client/sidebar/ExploreTab.tsx | 64 + src/app/pages/client/sidebar/HomeTab.tsx | 134 ++ src/app/pages/client/sidebar/InboxTab.tsx | 62 + src/app/pages/client/sidebar/SpaceTabs.tsx | 844 +++++++++++++ src/app/pages/client/sidebar/UserTab.tsx | 63 + src/app/pages/client/sidebar/index.ts | 6 + src/app/pages/client/space/RoomProvider.tsx | 37 + src/app/pages/client/space/Search.tsx | 52 + src/app/pages/client/space/Space.tsx | 417 +++++++ src/app/pages/client/space/SpaceProvider.tsx | 30 + src/app/pages/client/space/index.ts | 4 + src/app/pages/pathUtils.ts | 133 +- src/app/pages/paths.ts | 65 + src/app/plugins/millify.ts | 9 + src/app/plugins/pdfjs-dist.ts | 5 +- src/app/plugins/react-custom-html-parser.tsx | 56 +- src/app/state/closedLobbyCategories.ts | 68 ++ src/app/state/closedNavCategories.ts | 68 ++ src/app/state/hooks/closedLobbyCategories.ts | 15 + src/app/state/hooks/closedNavCategories.ts | 15 + src/app/state/hooks/inviteList.ts | 11 +- src/app/state/hooks/navToActivePath.ts | 15 + src/app/state/hooks/openedSidebarFolder.ts | 15 + src/app/state/hooks/roomList.ts | 189 ++- src/app/state/hooks/unread.ts | 46 + src/app/state/hooks/useBindAtoms.ts | 13 +- src/app/state/mDirectList.ts | 10 +- src/app/state/navToActivePath.ts | 66 + src/app/state/openedSidebarFolder.ts | 66 + src/app/state/{ => room-list}/inviteList.ts | 2 +- .../state/{ => room-list}/mutedRoomList.ts | 4 +- src/app/state/{ => room-list}/roomList.ts | 2 +- src/app/state/{ => room-list}/utils.ts | 6 +- src/app/state/{ => room}/roomInputDrafts.ts | 6 +- src/app/state/{ => room}/roomToParents.ts | 8 +- src/app/state/{ => room}/roomToUnread.ts | 94 +- src/app/state/selectedRoom.ts | 3 - src/app/state/selectedTab.ts | 8 - src/app/state/spaceRooms.ts | 54 + src/app/state/tabToRoom.ts | 34 - src/app/state/typingMembers.ts | 133 +- src/app/styles/ContainerColor.css.ts | 33 + src/app/styles/CustomHtml.css.ts | 8 + src/app/templates/client/Client.jsx | 94 +- src/app/templates/client/Client.scss | 3 +- src/app/templates/client/ClientContent.jsx | 2 +- src/app/utils/ASCIILexicalTable.ts | 393 ++++++ src/app/utils/common.ts | 17 + src/app/utils/keyboard.ts | 7 + src/app/utils/matrix.ts | 89 +- src/app/utils/regex.ts | 8 + src/app/utils/room.ts | 61 +- src/app/utils/sort.ts | 59 + src/client/action/navigation.js | 8 +- src/client/event/hotkeys.js | 6 +- src/client/initMatrix.js | 21 +- src/client/state/navigation.js | 12 +- src/index.scss | 40 +- src/types/matrix/room.ts | 22 +- vite.config.js | 6 + 290 files changed, 17447 insertions(+), 3224 deletions(-) rename .eslintrc.js => .eslintrc.cjs (100%) create mode 100644 src/app/components/CapabilitiesAndMediaConfigLoader.tsx create mode 100644 src/app/components/CapabilitiesLoader.tsx create mode 100644 src/app/components/MediaConfigLoader.tsx create mode 100644 src/app/components/RenderMessageContent.tsx create mode 100644 src/app/components/RoomSummaryLoader.tsx create mode 100644 src/app/components/RoomUnreadProvider.tsx create mode 100644 src/app/components/SpaceChildDirectsProvider.tsx create mode 100644 src/app/components/SpaceChildRoomsProvider.tsx create mode 100644 src/app/components/leave-room-prompt/LeaveRoomPrompt.tsx create mode 100644 src/app/components/leave-room-prompt/index.ts create mode 100644 src/app/components/leave-space-prompt/LeaveSpacePrompt.tsx create mode 100644 src/app/components/leave-space-prompt/index.ts rename src/app/{organisms/room => components}/message/FileHeader.tsx (91%) create mode 100644 src/app/components/message/MsgTypeRenderers.tsx create mode 100644 src/app/components/message/RenderBody.tsx create mode 100644 src/app/components/message/content/AudioContent.tsx rename src/app/{organisms/room/message => components/message/content}/EventContent.tsx (93%) rename src/app/components/message/{MessageContentFallback.tsx => content/FallbackContent.tsx} (100%) rename src/app/{organisms/room/message => components/message/content}/FileContent.tsx (76%) rename src/app/{organisms/room/message => components/message/content}/ImageContent.tsx (81%) create mode 100644 src/app/components/message/content/ThumbnailContent.tsx rename src/app/{organisms/room/message => components/message/content}/VideoContent.tsx (77%) create mode 100644 src/app/components/message/content/index.ts create mode 100644 src/app/components/message/content/style.css.ts rename src/app/{organisms/room/message => components/message/content}/util.ts (100%) create mode 100644 src/app/components/nav/NavCategory.tsx create mode 100644 src/app/components/nav/NavCategoryHeader.tsx create mode 100644 src/app/components/nav/NavEmptyLayout.tsx create mode 100644 src/app/components/nav/NavItem.tsx create mode 100644 src/app/components/nav/NavItemContent.tsx create mode 100644 src/app/components/nav/NavItemOptions.tsx create mode 100644 src/app/components/nav/index.ts create mode 100644 src/app/components/nav/styles.css.ts create mode 100644 src/app/components/page/Page.tsx create mode 100644 src/app/components/page/index.tsx create mode 100644 src/app/components/page/style.css.ts create mode 100644 src/app/components/room-avatar/RoomAvatar.css.ts create mode 100644 src/app/components/room-avatar/RoomAvatar.tsx create mode 100644 src/app/components/room-avatar/index.ts create mode 100644 src/app/components/room-card/RoomCard.tsx create mode 100644 src/app/components/room-card/index.ts create mode 100644 src/app/components/room-card/style.css.ts create mode 100644 src/app/components/room-topic-viewer/RoomTopicViewer.tsx create mode 100644 src/app/components/room-topic-viewer/index.ts create mode 100644 src/app/components/room-topic-viewer/style.css.ts create mode 100644 src/app/components/scroll-top-container/ScrollTopContainer.tsx create mode 100644 src/app/components/scroll-top-container/index.ts create mode 100644 src/app/components/scroll-top-container/style.css.ts create mode 100644 src/app/components/sequence-card/SequenceCard.tsx create mode 100644 src/app/components/sequence-card/index.ts create mode 100644 src/app/components/sequence-card/style.css.ts delete mode 100644 src/app/components/sidebar/SidebarAvatar.tsx create mode 100644 src/app/components/sidebar/SidebarItem.tsx create mode 100644 src/app/components/unread-badge/UnreadBadge.tsx create mode 100644 src/app/components/unread-badge/index.ts create mode 100644 src/app/components/url-preview/UrlPreviewCard.css.tsx rename src/app/{organisms/room/message => components/url-preview}/UrlPreviewCard.tsx (94%) create mode 100644 src/app/components/user-avatar/UserAvatar.css.ts create mode 100644 src/app/components/user-avatar/UserAvatar.tsx create mode 100644 src/app/components/user-avatar/index.ts create mode 100644 src/app/components/virtualizer/VirtualTile.tsx create mode 100644 src/app/components/virtualizer/index.ts create mode 100644 src/app/components/virtualizer/style.css.ts create mode 100644 src/app/features/join-before-navigate/JoinBeforeNavigate.tsx create mode 100644 src/app/features/join-before-navigate/index.ts create mode 100644 src/app/features/lobby/DnD.css.ts create mode 100644 src/app/features/lobby/DnD.tsx create mode 100644 src/app/features/lobby/HierarchyItemMenu.tsx create mode 100644 src/app/features/lobby/Lobby.tsx create mode 100644 src/app/features/lobby/LobbyHeader.css.ts create mode 100644 src/app/features/lobby/LobbyHeader.tsx create mode 100644 src/app/features/lobby/LobbyHero.css.tsx create mode 100644 src/app/features/lobby/LobbyHero.tsx create mode 100644 src/app/features/lobby/RoomItem.css.ts create mode 100644 src/app/features/lobby/RoomItem.tsx create mode 100644 src/app/features/lobby/SpaceItem.css.ts create mode 100644 src/app/features/lobby/SpaceItem.tsx create mode 100644 src/app/features/lobby/index.ts create mode 100644 src/app/features/lobby/style.css.ts create mode 100644 src/app/features/message-search/MessageSearch.tsx create mode 100644 src/app/features/message-search/SearchFilters.tsx create mode 100644 src/app/features/message-search/SearchInput.tsx create mode 100644 src/app/features/message-search/SearchResultGroup.tsx create mode 100644 src/app/features/message-search/index.ts create mode 100644 src/app/features/message-search/useMessageSearch.ts create mode 100644 src/app/features/room-nav/RoomNavCategoryButton.tsx create mode 100644 src/app/features/room-nav/RoomNavItem.tsx create mode 100644 src/app/features/room-nav/index.ts create mode 100644 src/app/features/room-nav/styles.css.ts rename src/app/{organisms => features}/room/CommandAutocomplete.tsx (100%) rename src/app/{organisms => features}/room/MembersDrawer.css.ts (100%) rename src/app/{organisms => features}/room/MembersDrawer.tsx (79%) create mode 100644 src/app/features/room/Room.tsx rename src/app/{organisms => features}/room/RoomInput.tsx (85%) rename src/app/{organisms => features}/room/RoomInputPlaceholder.css.ts (100%) rename src/app/{organisms => features}/room/RoomInputPlaceholder.tsx (100%) rename src/app/{organisms => features}/room/RoomTimeline.css.ts (100%) rename src/app/{organisms => features}/room/RoomTimeline.tsx (62%) rename src/app/{organisms => features}/room/RoomTombstone.css.ts (100%) rename src/app/{organisms => features}/room/RoomTombstone.tsx (90%) create mode 100644 src/app/features/room/RoomView.tsx rename src/app/{organisms => features}/room/RoomViewFollowing.css.ts (100%) rename src/app/{organisms => features}/room/RoomViewFollowing.tsx (100%) create mode 100644 src/app/features/room/RoomViewHeader.css.ts create mode 100644 src/app/features/room/RoomViewHeader.tsx rename src/app/{organisms => features}/room/RoomViewTyping.css.ts (100%) create mode 100644 src/app/features/room/RoomViewTyping.tsx create mode 100644 src/app/features/room/index.ts rename src/app/{organisms => features}/room/message/EncryptedContent.tsx (100%) rename src/app/{organisms => features}/room/message/Message.tsx (84%) rename src/app/{organisms => features}/room/message/MessageEditor.tsx (89%) rename src/app/{organisms => features}/room/message/Reactions.tsx (100%) create mode 100644 src/app/features/room/message/index.ts create mode 100644 src/app/features/room/message/styles.css.ts rename src/app/{organisms => features}/room/msgContent.ts (98%) rename src/app/{organisms => features}/room/reaction-viewer/ReactionViewer.css.ts (100%) rename src/app/{organisms => features}/room/reaction-viewer/ReactionViewer.tsx (89%) rename src/app/{organisms => features}/room/reaction-viewer/index.ts (100%) create mode 100644 src/app/hooks/router/useDirectSelected.ts create mode 100644 src/app/hooks/router/useExploreSelected.ts create mode 100644 src/app/hooks/router/useHomeSelected.ts create mode 100644 src/app/hooks/router/useInbox.ts create mode 100644 src/app/hooks/router/useSelectedRoom.ts create mode 100644 src/app/hooks/router/useSelectedSpace.ts create mode 100644 src/app/hooks/useAccountDataCallback.ts create mode 100644 src/app/hooks/useCapabilities.ts create mode 100644 src/app/hooks/useCategoryHandler.ts create mode 100644 src/app/hooks/useElementSizeObserver.ts create mode 100644 src/app/hooks/useInterval.ts create mode 100644 src/app/hooks/useJoinedRoomId.ts create mode 100644 src/app/hooks/useLocalRoomSummary.ts create mode 100644 src/app/hooks/useMediaConfig.ts create mode 100644 src/app/hooks/useNavToActivePathMapper.ts create mode 100644 src/app/hooks/useRoom.ts create mode 100644 src/app/hooks/useRoomMeta.ts delete mode 100644 src/app/hooks/useRoomMsgContentRenderer.ts create mode 100644 src/app/hooks/useRoomNavigate.ts create mode 100644 src/app/hooks/useRoomTypingMembers.ts create mode 100644 src/app/hooks/useSidebarItems.ts create mode 100644 src/app/hooks/useSpace.ts create mode 100644 src/app/hooks/useSpaceHierarchy.ts create mode 100644 src/app/hooks/useSyncState.ts delete mode 100644 src/app/organisms/navigation/Sidebar1.tsx delete mode 100644 src/app/organisms/room/Room.tsx delete mode 100644 src/app/organisms/room/RoomView.jsx delete mode 100644 src/app/organisms/room/RoomViewTyping.tsx delete mode 100644 src/app/organisms/room/message/AudioContent.tsx delete mode 100644 src/app/organisms/room/message/StickerContent.tsx delete mode 100644 src/app/organisms/room/message/fileRenderer.tsx delete mode 100644 src/app/organisms/room/message/index.ts delete mode 100644 src/app/organisms/room/message/styles.css.ts create mode 100644 src/app/pages/MobileFriendly.tsx create mode 100644 src/app/pages/Router.tsx create mode 100644 src/app/pages/afterLoginRedirectPath.ts create mode 100644 src/app/pages/client/ClientBindAtoms.ts create mode 100644 src/app/pages/client/ClientInitStorageAtom.tsx create mode 100644 src/app/pages/client/ClientLayout.tsx create mode 100644 src/app/pages/client/ClientRoot.tsx create mode 100644 src/app/pages/client/SidebarNav.tsx create mode 100644 src/app/pages/client/SpecVersions.tsx create mode 100644 src/app/pages/client/WelcomePage.tsx create mode 100644 src/app/pages/client/direct/Direct.tsx create mode 100644 src/app/pages/client/direct/RoomProvider.tsx create mode 100644 src/app/pages/client/direct/index.ts create mode 100644 src/app/pages/client/direct/useDirectRooms.ts create mode 100644 src/app/pages/client/explore/Explore.tsx create mode 100644 src/app/pages/client/explore/Featured.tsx create mode 100644 src/app/pages/client/explore/Server.tsx create mode 100644 src/app/pages/client/explore/index.ts create mode 100644 src/app/pages/client/explore/style.css.ts create mode 100644 src/app/pages/client/home/Home.tsx create mode 100644 src/app/pages/client/home/RoomProvider.tsx create mode 100644 src/app/pages/client/home/Search.tsx create mode 100644 src/app/pages/client/home/index.ts create mode 100644 src/app/pages/client/home/useHomeRooms.ts create mode 100644 src/app/pages/client/inbox/Inbox.tsx create mode 100644 src/app/pages/client/inbox/Invites.tsx create mode 100644 src/app/pages/client/inbox/Notifications.tsx create mode 100644 src/app/pages/client/inbox/index.ts create mode 100644 src/app/pages/client/index.ts create mode 100644 src/app/pages/client/sidebar/DirectTab.tsx create mode 100644 src/app/pages/client/sidebar/ExploreTab.tsx create mode 100644 src/app/pages/client/sidebar/HomeTab.tsx create mode 100644 src/app/pages/client/sidebar/InboxTab.tsx create mode 100644 src/app/pages/client/sidebar/SpaceTabs.tsx create mode 100644 src/app/pages/client/sidebar/UserTab.tsx create mode 100644 src/app/pages/client/sidebar/index.ts create mode 100644 src/app/pages/client/space/RoomProvider.tsx create mode 100644 src/app/pages/client/space/Search.tsx create mode 100644 src/app/pages/client/space/Space.tsx create mode 100644 src/app/pages/client/space/SpaceProvider.tsx create mode 100644 src/app/pages/client/space/index.ts create mode 100644 src/app/plugins/millify.ts create mode 100644 src/app/state/closedLobbyCategories.ts create mode 100644 src/app/state/closedNavCategories.ts create mode 100644 src/app/state/hooks/closedLobbyCategories.ts create mode 100644 src/app/state/hooks/closedNavCategories.ts create mode 100644 src/app/state/hooks/navToActivePath.ts create mode 100644 src/app/state/hooks/openedSidebarFolder.ts create mode 100644 src/app/state/hooks/unread.ts create mode 100644 src/app/state/navToActivePath.ts create mode 100644 src/app/state/openedSidebarFolder.ts rename src/app/state/{ => room-list}/inviteList.ts (94%) rename src/app/state/{ => room-list}/mutedRoomList.ts (96%) rename src/app/state/{ => room-list}/roomList.ts (93%) rename src/app/state/{ => room-list}/utils.ts (91%) rename src/app/state/{ => room}/roomInputDrafts.ts (88%) rename src/app/state/{ => room}/roomToParents.ts (93%) rename src/app/state/{ => room}/roomToUnread.ts (74%) delete mode 100644 src/app/state/selectedRoom.ts delete mode 100644 src/app/state/selectedTab.ts create mode 100644 src/app/state/spaceRooms.ts delete mode 100644 src/app/state/tabToRoom.ts create mode 100644 src/app/styles/ContainerColor.css.ts create mode 100644 src/app/utils/ASCIILexicalTable.ts create mode 100644 src/app/utils/sort.ts diff --git a/.eslintrc.js b/.eslintrc.cjs similarity index 100% rename from .eslintrc.js rename to .eslintrc.cjs diff --git a/config.json b/config.json index 484c7cd7..762c3a3b 100644 --- a/config.json +++ b/config.json @@ -10,6 +10,26 @@ ], "allowCustomHomeservers": true, + "featuredCommunities": { + "openAsDefault": false, + "spaces": [ + "#cinny-space:matrix.org", + "#community:matrix.org", + "#space:envs.net", + "#science-space:matrix.org", + "#libregaming-games:tchncs.de", + "#mathematics-on:matrix.org" + ], + "rooms": [ + "#cinny:matrix.org", + "#foundation-office:matrix.org", + "#thisweekinmatrix:matrix.org", + "#matrix-dev:matrix.org", + "#matrix:matrix.org" + ], + "servers": ["envs.net", "matrix.org", "monero.social", "mozilla.org"] + }, + "hashRouter": { "enabled": false, "basename": "/" diff --git a/netlify.toml b/netlify.toml index e7d948e6..d79aa91c 100644 --- a/netlify.toml +++ b/netlify.toml @@ -9,9 +9,10 @@ status = 200 [[redirects]] - from = "/olm.wasm" + from = "*/olm.wasm" to = "/olm.wasm" status = 200 + force = true [[redirects]] from = "/pdf.worker.min.js" @@ -31,4 +32,5 @@ [[redirects]] from = "/*" to = "/index.html" - status = 200 \ No newline at end of file + status = 200 + force = true \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2eec2912..17e4dd50 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,10 +9,15 @@ "version": "3.2.0", "license": "AGPL-3.0-only", "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "1.1.6", + "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "1.3.0", + "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3", "@fontsource/inter": "4.5.14", "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", - "@tanstack/react-virtual": "3.0.0-beta.54", + "@tanstack/react-query": "5.24.1", + "@tanstack/react-query-devtools": "5.24.1", + "@tanstack/react-virtual": "3.2.0", "@tippyjs/react": "4.2.6", "@vanilla-extract/css": "1.9.3", "@vanilla-extract/recipes": "0.3.0", @@ -29,7 +34,7 @@ "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.5.1", + "folds": "2.0.0", "formik": "2.2.9", "html-dom-parser": "4.0.0", "html-react-parser": "4.2.0", @@ -111,6 +116,34 @@ "node": ">=6.0.0" } }, + "node_modules/@atlaskit/pragmatic-drag-and-drop": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop/-/pragmatic-drag-and-drop-1.1.6.tgz", + "integrity": "sha512-+jGspaRMyHWB6g9w+N1KImS5I+xt0ML89pwUyCueEhf2KGsl6zyH9ZxjTVKfrbY89FyZvuuXT9oFRHTUKGBi/w==", + "dependencies": { + "@babel/runtime": "^7.0.0", + "bind-event-listener": "^3.0.0", + "raf-schd": "^4.0.3" + } + }, + "node_modules/@atlaskit/pragmatic-drag-and-drop-auto-scroll": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-auto-scroll/-/pragmatic-drag-and-drop-auto-scroll-1.3.0.tgz", + "integrity": "sha512-8wjKAI5qSrLojt8ZJ2WhoS5P75oBu5g0yMpAnTDgfqFyQnkt5Uc1txCRWpG26SS1mv19nm8ak9XHF2DOugVfpw==", + "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "^1.1.0", + "@babel/runtime": "^7.0.0" + } + }, + "node_modules/@atlaskit/pragmatic-drag-and-drop-hitbox": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@atlaskit/pragmatic-drag-and-drop-hitbox/-/pragmatic-drag-and-drop-hitbox-1.0.3.tgz", + "integrity": "sha512-/Sbu/HqN2VGLYBhnsG7SbRNg98XKkbF6L7XDdBi+izRybfaK1FeMfodPpm/xnBHPJzwYMdkE0qtLyv6afhgMUA==", + "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "^1.1.0", + "@babel/runtime": "^7.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.23.4", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.4.tgz", @@ -3093,25 +3126,75 @@ "@swc/counter": "^0.1.3" } }, - "node_modules/@tanstack/react-virtual": { - "version": "3.0.0-beta.54", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.0.0-beta.54.tgz", - "integrity": "sha512-D1mDMf4UPbrtHRZZriCly5bXTBMhylslm4dhcHqTtDJ6brQcgGmk8YD9JdWBGWfGSWPKoh2x1H3e7eh+hgPXtQ==", + "node_modules/@tanstack/query-core": { + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.24.1.tgz", + "integrity": "sha512-DZ6Nx9p7BhjkG50ayJ+MKPgff+lMeol7QYXkvuU5jr2ryW/4ok5eanaS9W5eooA4xN0A/GPHdLGOZGzArgf5Cg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/query-devtools": { + "version": "5.24.0", + "resolved": "https://registry.npmjs.org/@tanstack/query-devtools/-/query-devtools-5.24.0.tgz", + "integrity": "sha512-pThim455t69zrZaQKa7IRkEIK8UBTS+gHVAdNfhO72Xh4rWpMc63ovRje5/n6iw63+d6QiJzVadsJVdPoodSeQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.24.1.tgz", + "integrity": "sha512-4+09JEdO4d6+Gc8Y/g2M/MuxDK5IY0QV8+2wL2304wPKJgJ54cBbULd3nciJ5uvh/as8rrxx6s0mtIwpRuGd1g==", "dependencies": { - "@tanstack/virtual-core": "3.0.0-beta.54" + "@tanstack/query-core": "5.24.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^18.0.0" + } + }, + "node_modules/@tanstack/react-query-devtools": { + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/@tanstack/react-query-devtools/-/react-query-devtools-5.24.1.tgz", + "integrity": "sha512-qa4SEugN+EF8JJXcpsM9Lu05HfUv5cvHvLuB0uw/81eJZyNHFdtHFBi5RLCgpBrOyVMDfH8UQ3VBMqXzFKV68A==", + "dependencies": { + "@tanstack/query-devtools": "5.24.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "@tanstack/react-query": "^5.24.1", + "react": "^18.0.0" + } + }, + "node_modules/@tanstack/react-virtual": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.2.0.tgz", + "integrity": "sha512-OEdMByf2hEfDa6XDbGlZN8qO6bTjlNKqjM3im9JG+u3mCL8jALy0T/67oDI001raUUPh1Bdmfn4ZvPOV5knpcg==", + "dependencies": { + "@tanstack/virtual-core": "3.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" } }, "node_modules/@tanstack/virtual-core": { - "version": "3.0.0-beta.54", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.0.0-beta.54.tgz", - "integrity": "sha512-jtkwqdP2rY2iCCDVAFuaNBH3fiEi29aTn2RhtIoky8DTTiCdc48plpHHreLwmv1PICJ4AJUUESaq3xa8fZH8+g==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.2.0.tgz", + "integrity": "sha512-P5XgYoAw/vfW65byBbJQCw+cagdXDT/qH6wmABiLt4v4YBT2q2vqCOhihe+D1Nt325F/S/0Tkv6C5z0Lv+VBQQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" @@ -4065,6 +4148,11 @@ "node": ">=8" } }, + "node_modules/bind-event-listener": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bind-event-listener/-/bind-event-listener-3.0.0.tgz", + "integrity": "sha512-PJvH288AWQhKs2v9zyfYdPzlPqf5bXbGMmhmUIY9x4dAUGIWgomO771oBQNwJnMQSnUIXhKu6sgzpBRXTlvb8Q==" + }, "node_modules/blurhash": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.4.tgz", @@ -5665,9 +5753,9 @@ } }, "node_modules/folds": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/folds/-/folds-1.5.1.tgz", - "integrity": "sha512-2QxyA+FRKjPKXDTMDoD7NmOUiReWrKYO0Msg44QqlzTkTrRVEzJgyPIfC/Ia4/u0ByQpk6dbq8UQxomKmneJ/g==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/folds/-/folds-2.0.0.tgz", + "integrity": "sha512-lKv31vij4GEpEzGKWk5c3ar78fMZ9Di5n1XFR14Z2wnnpqhiiM5JTIzr127Gk5dOfy4mJkjnv/ZfMZvM2k+OQg==", "peerDependencies": { "@vanilla-extract/css": "^1.9.2", "@vanilla-extract/recipes": "^0.3.0", @@ -7580,6 +7668,11 @@ } ] }, + "node_modules/raf-schd": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz", + "integrity": "sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ==" + }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", diff --git a/package.json b/package.json index 44c28d34..e626e837 100644 --- a/package.json +++ b/package.json @@ -20,10 +20,15 @@ "author": "Ajay Bura", "license": "AGPL-3.0-only", "dependencies": { + "@atlaskit/pragmatic-drag-and-drop": "1.1.6", + "@atlaskit/pragmatic-drag-and-drop-auto-scroll": "1.3.0", + "@atlaskit/pragmatic-drag-and-drop-hitbox": "1.0.3", "@fontsource/inter": "4.5.14", "@khanacademy/simple-markdown": "0.8.6", "@matrix-org/olm": "3.2.14", - "@tanstack/react-virtual": "3.0.0-beta.54", + "@tanstack/react-query": "5.24.1", + "@tanstack/react-query-devtools": "5.24.1", + "@tanstack/react-virtual": "3.2.0", "@tippyjs/react": "4.2.6", "@vanilla-extract/css": "1.9.3", "@vanilla-extract/recipes": "0.3.0", @@ -40,7 +45,7 @@ "file-saver": "2.0.5", "flux": "4.0.3", "focus-trap-react": "10.0.2", - "folds": "1.5.1", + "folds": "2.0.0", "formik": "2.2.9", "html-dom-parser": "4.0.0", "html-react-parser": "4.2.0", diff --git a/src/app/components/CapabilitiesAndMediaConfigLoader.tsx b/src/app/components/CapabilitiesAndMediaConfigLoader.tsx new file mode 100644 index 00000000..338e5280 --- /dev/null +++ b/src/app/components/CapabilitiesAndMediaConfigLoader.tsx @@ -0,0 +1,36 @@ +import { ReactNode, useCallback, useEffect } from 'react'; +import { Capabilities } from 'matrix-js-sdk'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { useMatrixClient } from '../hooks/useMatrixClient'; +import { MediaConfig } from '../hooks/useMediaConfig'; +import { promiseFulfilledResult } from '../utils/common'; + +type CapabilitiesAndMediaConfigLoaderProps = { + children: (capabilities?: Capabilities, mediaConfig?: MediaConfig) => ReactNode; +}; +export function CapabilitiesAndMediaConfigLoader({ + children, +}: CapabilitiesAndMediaConfigLoaderProps) { + const mx = useMatrixClient(); + + const [state, load] = useAsyncCallback< + [Capabilities | undefined, MediaConfig | undefined], + unknown, + [] + >( + useCallback(async () => { + const result = await Promise.allSettled([mx.getCapabilities(true), mx.getMediaConfig()]); + const capabilities = promiseFulfilledResult(result[0]); + const mediaConfig = promiseFulfilledResult(result[1]); + return [capabilities, mediaConfig]; + }, [mx]) + ); + + useEffect(() => { + load(); + }, [load]); + + const [capabilities, mediaConfig] = + state.status === AsyncStatus.Success ? state.data : [undefined, undefined]; + return children(capabilities, mediaConfig); +} diff --git a/src/app/components/CapabilitiesLoader.tsx b/src/app/components/CapabilitiesLoader.tsx new file mode 100644 index 00000000..dad59ec8 --- /dev/null +++ b/src/app/components/CapabilitiesLoader.tsx @@ -0,0 +1,19 @@ +import { ReactNode, useCallback, useEffect } from 'react'; +import { Capabilities } from 'matrix-js-sdk'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { useMatrixClient } from '../hooks/useMatrixClient'; + +type CapabilitiesLoaderProps = { + children: (capabilities: Capabilities | undefined) => ReactNode; +}; +export function CapabilitiesLoader({ children }: CapabilitiesLoaderProps) { + const mx = useMatrixClient(); + + const [state, load] = useAsyncCallback(useCallback(() => mx.getCapabilities(true), [mx])); + + useEffect(() => { + load(); + }, [load]); + + return children(state.status === AsyncStatus.Success ? state.data : undefined); +} diff --git a/src/app/components/MediaConfigLoader.tsx b/src/app/components/MediaConfigLoader.tsx new file mode 100644 index 00000000..9fd99330 --- /dev/null +++ b/src/app/components/MediaConfigLoader.tsx @@ -0,0 +1,19 @@ +import { ReactNode, useCallback, useEffect } from 'react'; +import { AsyncStatus, useAsyncCallback } from '../hooks/useAsyncCallback'; +import { useMatrixClient } from '../hooks/useMatrixClient'; +import { MediaConfig } from '../hooks/useMediaConfig'; + +type MediaConfigLoaderProps = { + children: (mediaConfig: MediaConfig | undefined) => ReactNode; +}; +export function MediaConfigLoader({ children }: MediaConfigLoaderProps) { + const mx = useMatrixClient(); + + const [state, load] = useAsyncCallback(useCallback(() => mx.getMediaConfig(), [mx])); + + useEffect(() => { + load(); + }, [load]); + + return children(state.status === AsyncStatus.Success ? state.data : undefined); +} diff --git a/src/app/components/Pdf-viewer/PdfViewer.tsx b/src/app/components/Pdf-viewer/PdfViewer.tsx index c440cce9..a78c13f2 100644 --- a/src/app/components/Pdf-viewer/PdfViewer.tsx +++ b/src/app/components/Pdf-viewer/PdfViewer.tsx @@ -1,6 +1,6 @@ /* eslint-disable no-param-reassign */ /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */ -import React, { FormEventHandler, useEffect, useRef, useState } from 'react'; +import React, { FormEventHandler, MouseEventHandler, useEffect, useRef, useState } from 'react'; import classNames from 'classnames'; import { Box, @@ -13,6 +13,7 @@ import { Input, Menu, PopOut, + RectCords, Scroll, Spinner, Text, @@ -48,7 +49,7 @@ export const PdfViewer = as<'div', PdfViewerProps>( const isError = pdfJSState.status === AsyncStatus.Error || docState.status === AsyncStatus.Error; const [pageNo, setPageNo] = useState(1); - const [openJump, setOpenJump] = useState(false); + const [jumpAnchor, setJumpAnchor] = useState(); useEffect(() => { loadPdfJS(); @@ -86,7 +87,7 @@ export const PdfViewer = as<'div', PdfViewerProps>( if (!jumpInput) return; const jumpTo = parseInt(jumpInput.value, 10); setPageNo(Math.max(1, Math.min(docState.data.numPages, jumpTo))); - setOpenJump(false); + setJumpAnchor(undefined); }; const handlePrevPage = () => { @@ -98,6 +99,10 @@ export const PdfViewer = as<'div', PdfViewerProps>( setPageNo((n) => Math.min(n + 1, docState.data.numPages)); }; + const handleOpenJump: MouseEventHandler = (evt) => { + setJumpAnchor(evt.currentTarget.getBoundingClientRect()); + }; + return (
        @@ -187,14 +192,14 @@ export const PdfViewer = as<'div', PdfViewerProps>( setOpenJump(false), + onDeactivate: () => setJumpAnchor(undefined), clickOutsideDeactivates: true, }} > @@ -227,17 +232,14 @@ export const PdfViewer = as<'div', PdfViewerProps>( } > - {(anchorRef) => ( - setOpenJump(!openJump)} - ref={anchorRef} - variant="SurfaceVariant" - radii="300" - aria-pressed={openJump} - > - {`${pageNo}/${docState.data.numPages}`} - - )} + + {`${pageNo}/${docState.data.numPages}`} + () => T; + mediaAutoLoad?: boolean; + urlPreview?: boolean; + highlightRegex?: RegExp; + htmlReactParserOptions: HTMLReactParserOptions; + outlineAttachment?: boolean; +}; +export function RenderMessageContent({ + displayName, + msgType, + ts, + edited, + getContent, + mediaAutoLoad, + urlPreview, + highlightRegex, + htmlReactParserOptions, + outlineAttachment, +}: RenderMessageContentProps) { + const renderFile = () => ( + ( + ( + } + /> + )} + renderAsTextFile={() => ( + } + /> + )} + > + + + )} + outlined={outlineAttachment} + /> + ); + + if (msgType === MsgType.Text) { + return ( + ( + + )} + renderUrlsPreview={ + urlPreview + ? (urls) => ( + + {urls.map((url) => ( + + ))} + + ) + : undefined + } + /> + ); + } + + if (msgType === MsgType.Emote) { + return ( + ( + + )} + renderUrlsPreview={ + urlPreview + ? (urls) => ( + + {urls.map((url) => ( + + ))} + + ) + : undefined + } + /> + ); + } + + if (msgType === MsgType.Notice) { + return ( + ( + + )} + renderUrlsPreview={ + urlPreview + ? (urls) => ( + + {urls.map((url) => ( + + ))} + + ) + : undefined + } + /> + ); + } + + if (msgType === MsgType.Image) { + return ( + ( + } + renderViewer={(p) => } + /> + )} + outlined={outlineAttachment} + /> + ); + } + + if (msgType === MsgType.Video) { + return ( + ( + ( + ( + {body} + )} + /> + ) + : undefined + } + renderVideo={(p) =>
        + + } + > + } + > + Select Rooms + + + ); +} + +type SearchFiltersProps = { + defaultRoomsFilterName: string; + allowGlobal?: boolean; + roomList: string[]; + selectedRooms?: string[]; + onSelectedRoomsChange: (selectedRooms?: string[]) => void; + global?: boolean; + onGlobalChange: (global?: boolean) => void; + order?: string; + onOrderChange: (order?: string) => void; +}; +export function SearchFilters({ + defaultRoomsFilterName, + allowGlobal, + roomList, + selectedRooms, + onSelectedRoomsChange, + global, + order, + onGlobalChange, + onOrderChange, +}: SearchFiltersProps) { + const mx = useMatrixClient(); + + return ( + + Filter + + } + outlined + onClick={() => onGlobalChange()} + > + {defaultRoomsFilterName} + + {allowGlobal && ( + } + outlined + onClick={() => onGlobalChange(true)} + > + Global + + )} + + {selectedRooms?.map((roomId) => { + const room = mx.getRoom(roomId); + if (!room) return null; + + return ( + onSelectedRoomsChange(selectedRooms.filter((rId) => rId !== roomId))} + radii="Pill" + before={ + + } + after={} + > + {room.name} + + ); + })} + + + + + + ); +} diff --git a/src/app/features/message-search/SearchInput.tsx b/src/app/features/message-search/SearchInput.tsx new file mode 100644 index 00000000..db646c26 --- /dev/null +++ b/src/app/features/message-search/SearchInput.tsx @@ -0,0 +1,66 @@ +import React, { FormEventHandler, RefObject } from 'react'; +import { Box, Text, Input, Icon, Icons, Spinner, Chip, config } from 'folds'; + +type SearchProps = { + active?: boolean; + loading?: boolean; + searchInputRef: RefObject; + onSearch: (term: string) => void; + onReset: () => void; +}; +export function SearchInput({ active, loading, searchInputRef, onSearch, onReset }: SearchProps) { + const handleSearchSubmit: FormEventHandler = (evt) => { + evt.preventDefault(); + const { searchInput } = evt.target as HTMLFormElement & { + searchInput: HTMLInputElement; + }; + + const searchTerm = searchInput.value.trim() || undefined; + if (searchTerm) { + onSearch(searchTerm); + } + }; + + return ( + + + Search + + ) : ( + + ) + } + after={ + active ? ( + } + onClick={onReset} + > + Clear + + ) : ( + + Enter + + ) + } + /> + + ); +} diff --git a/src/app/features/message-search/SearchResultGroup.tsx b/src/app/features/message-search/SearchResultGroup.tsx new file mode 100644 index 00000000..6f84f621 --- /dev/null +++ b/src/app/features/message-search/SearchResultGroup.tsx @@ -0,0 +1,262 @@ +/* eslint-disable react/destructuring-assignment */ +import React, { MouseEventHandler, useMemo } from 'react'; +import { IEventWithRoomId, JoinRule, RelationType, Room } from 'matrix-js-sdk'; +import { HTMLReactParserOptions } from 'html-react-parser'; +import { Avatar, Box, Chip, Header, Icon, Icons, Text, config } from 'folds'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; +import { + getReactCustomHtmlParser, + makeHighlightRegex, +} from '../../plugins/react-custom-html-parser'; +import { getMxIdLocalPart, isRoomId, isUserId } from '../../utils/matrix'; +import { openJoinAlias, openProfileViewer } from '../../../client/action/navigation'; +import { useMatrixEventRenderer } from '../../hooks/useMatrixEventRenderer'; +import { GetContentCallback, MessageEvent, StateEvent } from '../../../types/matrix/room'; +import { + AvatarBase, + ImageContent, + MSticker, + ModernLayout, + RedactedContent, + Reply, + Time, + Username, +} from '../../components/message'; +import { RenderMessageContent } from '../../components/RenderMessageContent'; +import { Image } from '../../components/media'; +import { ImageViewer } from '../../components/image-viewer'; +import * as customHtmlCss from '../../styles/CustomHtml.css'; +import { RoomAvatar, RoomIcon } from '../../components/room-avatar'; +import { getMemberAvatarMxc, getMemberDisplayName, getRoomAvatarUrl } from '../../utils/room'; +import colorMXID from '../../../util/colorMXID'; +import { ResultItem } from './useMessageSearch'; +import { SequenceCard } from '../../components/sequence-card'; +import { useRoomNavigate } from '../../hooks/useRoomNavigate'; +import { UserAvatar } from '../../components/user-avatar'; + +type SearchResultGroupProps = { + room: Room; + highlights: string[]; + items: ResultItem[]; + mediaAutoLoad?: boolean; + urlPreview?: boolean; + onOpen: (roomId: string, eventId: string) => void; +}; +export function SearchResultGroup({ + room, + highlights, + items, + mediaAutoLoad, + urlPreview, + onOpen, +}: SearchResultGroupProps) { + const mx = useMatrixClient(); + const { navigateRoom, navigateSpace } = useRoomNavigate(); + const highlightRegex = useMemo(() => makeHighlightRegex(highlights), [highlights]); + + const htmlReactParserOptions = useMemo( + () => + getReactCustomHtmlParser(mx, room, { + highlightRegex, + handleSpoilerClick: (evt) => { + const target = evt.currentTarget; + if (target.getAttribute('aria-pressed') === 'true') { + evt.stopPropagation(); + target.setAttribute('aria-pressed', 'false'); + target.style.cursor = 'initial'; + } + }, + handleMentionClick: (evt) => { + const target = evt.currentTarget; + const mentionId = target.getAttribute('data-mention-id'); + if (typeof mentionId !== 'string') return; + if (isUserId(mentionId)) { + openProfileViewer(mentionId, room.roomId); + return; + } + if (isRoomId(mentionId) && mx.getRoom(mentionId)) { + if (mx.getRoom(mentionId)?.isSpaceRoom()) navigateSpace(mentionId); + else navigateRoom(mentionId); + return; + } + openJoinAlias(mentionId); + }, + }), + [mx, room, highlightRegex, navigateRoom, navigateSpace] + ); + + const renderMatrixEvent = useMatrixEventRenderer<[IEventWithRoomId, string, GetContentCallback]>( + { + [MessageEvent.RoomMessage]: (event, displayName, getContent) => { + if (event.unsigned?.redacted_because) { + return ; + } + + return ( + + ); + }, + [MessageEvent.Reaction]: (event, displayName, getContent) => { + if (event.unsigned?.redacted_because) { + return ; + } + return ( + ( + } + renderViewer={(p) => } + /> + )} + /> + ); + }, + [StateEvent.RoomTombstone]: (event) => { + const { content } = event; + return ( + + + Room Tombstone. {content.body} + + + ); + }, + }, + undefined, + (event) => { + if (event.unsigned?.redacted_because) { + return ; + } + return ( + + + {event.type} + {' event'} + + + ); + } + ); + + const handleOpenClick: MouseEventHandler = (evt) => { + const eventId = evt.currentTarget.getAttribute('data-event-id'); + if (!eventId) return; + onOpen(room.roomId, eventId); + }; + + return ( + +
        + + + ( + + )} + /> + + + {room.name} + + +
        + + {items.map((item) => { + const { event } = item; + + const displayName = + getMemberDisplayName(room, event.sender) ?? + getMxIdLocalPart(event.sender) ?? + event.sender; + const senderAvatarMxc = getMemberAvatarMxc(room, event.sender); + + const mainEventId = + event.content['m.relates_to']?.rel_type === RelationType.Replace + ? event.content['m.relates_to'].event_id + : event.event_id; + + const getContent = (() => + event.content['m.new_content'] ?? event.content) as GetContentCallback; + + const replyEventId = event.content['m.relates_to']?.['m.in_reply_to']?.event_id; + + return ( + + + + } + /> + + + } + > + + + + + {displayName} + + + + + + Open + + + + {replyEventId && ( + + )} + {renderMatrixEvent(event.type, false, event, displayName, getContent)} + + + ); + })} + +
        + ); +} diff --git a/src/app/features/message-search/index.ts b/src/app/features/message-search/index.ts new file mode 100644 index 00000000..5160d12f --- /dev/null +++ b/src/app/features/message-search/index.ts @@ -0,0 +1 @@ +export * from './MessageSearch'; diff --git a/src/app/features/message-search/useMessageSearch.ts b/src/app/features/message-search/useMessageSearch.ts new file mode 100644 index 00000000..ded6d4b7 --- /dev/null +++ b/src/app/features/message-search/useMessageSearch.ts @@ -0,0 +1,115 @@ +import { + IEventWithRoomId, + IResultContext, + ISearchRequestBody, + ISearchResponse, + ISearchResult, + SearchOrderBy, +} from 'matrix-js-sdk'; +import { useCallback } from 'react'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; + +export type ResultItem = { + rank: number; + event: IEventWithRoomId; + context: IResultContext; +}; + +export type ResultGroup = { + roomId: string; + items: ResultItem[]; +}; + +export type SearchResult = { + nextToken?: string; + highlights: string[]; + groups: ResultGroup[]; +}; + +const groupSearchResult = (results: ISearchResult[]): ResultGroup[] => { + const groups: ResultGroup[] = []; + + results.forEach((item) => { + const roomId = item.result.room_id; + const resultItem: ResultItem = { + rank: item.rank, + event: item.result, + context: item.context, + }; + + const lastAddedGroup: ResultGroup | undefined = groups[groups.length - 1]; + if (lastAddedGroup && roomId === lastAddedGroup.roomId) { + lastAddedGroup.items.push(resultItem); + return; + } + groups.push({ + roomId, + items: [resultItem], + }); + }); + + return groups; +}; + +const parseSearchResult = (result: ISearchResponse): SearchResult => { + const roomEvents = result.search_categories.room_events; + + const searchResult: SearchResult = { + nextToken: roomEvents?.next_batch, + highlights: roomEvents?.highlights ?? [], + groups: groupSearchResult(roomEvents?.results ?? []), + }; + + return searchResult; +}; + +export type MessageSearchParams = { + term?: string; + order?: string; + rooms?: string[]; + senders?: string[]; +}; +export const useMessageSearch = (params: MessageSearchParams) => { + const mx = useMatrixClient(); + const { term, order, rooms, senders } = params; + + const searchMessages = useCallback( + async (nextBatch?: string) => { + if (!term) + return { + highlights: [], + groups: [], + }; + const limit = 20; + + const requestBody: ISearchRequestBody = { + search_categories: { + room_events: { + event_context: { + before_limit: 0, + after_limit: 0, + include_profile: false, + }, + filter: { + limit, + rooms, + senders, + }, + include_state: false, + order_by: order as SearchOrderBy.Recent, + search_term: term, + }, + }, + }; + + const r = await mx.search({ + body: requestBody, + next_batch: nextBatch === '' ? undefined : nextBatch, + }); + return parseSearchResult(r); + }, + [mx, term, order, rooms, senders] + ); + + return searchMessages; +}; diff --git a/src/app/features/room-nav/RoomNavCategoryButton.tsx b/src/app/features/room-nav/RoomNavCategoryButton.tsx new file mode 100644 index 00000000..7acbbe28 --- /dev/null +++ b/src/app/features/room-nav/RoomNavCategoryButton.tsx @@ -0,0 +1,27 @@ +import React from 'react'; +import { as, Chip, Icon, Icons, Text } from 'folds'; +import classNames from 'classnames'; +import * as css from './styles.css'; + +export const RoomNavCategoryButton = as<'button', { closed?: boolean }>( + ({ className, closed, children, ...props }, ref) => ( + + } + {...props} + ref={ref} + > + + {children} + + + ) +); diff --git a/src/app/features/room-nav/RoomNavItem.tsx b/src/app/features/room-nav/RoomNavItem.tsx new file mode 100644 index 00000000..fce62375 --- /dev/null +++ b/src/app/features/room-nav/RoomNavItem.tsx @@ -0,0 +1,297 @@ +import React, { MouseEventHandler, forwardRef, useState } from 'react'; +import { Room } from 'matrix-js-sdk'; +import { + Avatar, + Box, + Icon, + IconButton, + Icons, + Text, + Menu, + MenuItem, + config, + PopOut, + toRem, + Line, + RectCords, + Badge, +} from 'folds'; +import { useFocusWithin, useHover } from 'react-aria'; +import FocusTrap from 'focus-trap-react'; +import { NavItem, NavItemContent, NavItemOptions, NavLink } from '../../components/nav'; +import { UnreadBadge, UnreadBadgeCenter } from '../../components/unread-badge'; +import { RoomAvatar, RoomIcon } from '../../components/room-avatar'; +import { getDirectRoomAvatarUrl, getRoomAvatarUrl } from '../../utils/room'; +import { nameInitials } from '../../utils/common'; +import { useMatrixClient } from '../../hooks/useMatrixClient'; +import { useRoomUnread } from '../../state/hooks/unread'; +import { roomToUnreadAtom } from '../../state/room/roomToUnread'; +import { usePowerLevels, usePowerLevelsAPI } from '../../hooks/usePowerLevels'; +import { copyToClipboard } from '../../utils/dom'; +import { getOriginBaseUrl, withOriginBaseUrl } from '../../pages/pathUtils'; +import { markAsRead } from '../../../client/action/notifications'; +import { openInviteUser, toggleRoomSettings } from '../../../client/action/navigation'; +import { UseStateProvider } from '../../components/UseStateProvider'; +import { LeaveRoomPrompt } from '../../components/leave-room-prompt'; +import { useClientConfig } from '../../hooks/useClientConfig'; +import { useRoomTypingMember } from '../../hooks/useRoomTypingMembers'; +import { TypingIndicator } from '../../components/typing-indicator'; + +type RoomNavItemMenuProps = { + room: Room; + linkPath: string; + requestClose: () => void; +}; +const RoomNavItemMenu = forwardRef( + ({ room, linkPath, requestClose }, ref) => { + const mx = useMatrixClient(); + const { hashRouter } = useClientConfig(); + const unread = useRoomUnread(room.roomId, roomToUnreadAtom); + const powerLevels = usePowerLevels(room); + const { getPowerLevel, canDoAction } = usePowerLevelsAPI(powerLevels); + const canInvite = canDoAction('invite', getPowerLevel(mx.getUserId() ?? '')); + + const handleMarkAsRead = () => { + markAsRead(room.roomId); + requestClose(); + }; + + const handleInvite = () => { + openInviteUser(room.roomId); + requestClose(); + }; + + const handleCopyLink = () => { + copyToClipboard(withOriginBaseUrl(getOriginBaseUrl(hashRouter), linkPath)); + requestClose(); + }; + + const handleRoomSettings = () => { + toggleRoomSettings(room.roomId); + requestClose(); + }; + + return ( + + + } + radii="300" + disabled={!unread} + > + + Mark as Read + + + + + + } + radii="300" + disabled={!canInvite} + > + + Invite + + + } + radii="300" + > + + Copy Link + + + } + radii="300" + > + + Room Settings + + + + + + + {(promptLeave, setPromptLeave) => ( + <> + setPromptLeave(true)} + variant="Critical" + fill="None" + size="300" + after={} + radii="300" + aria-pressed={promptLeave} + > + + Leave Room + + + {promptLeave && ( + setPromptLeave(false)} + /> + )} + + )} + + + + ); + } +); + +type RoomNavItemProps = { + room: Room; + selected: boolean; + linkPath: string; + muted?: boolean; + showAvatar?: boolean; + direct?: boolean; +}; +export function RoomNavItem({ + room, + selected, + showAvatar, + direct, + muted, + linkPath, +}: RoomNavItemProps) { + const mx = useMatrixClient(); + const [hover, setHover] = useState(false); + const { hoverProps } = useHover({ onHoverChange: setHover }); + const { focusWithinProps } = useFocusWithin({ onFocusWithinChange: setHover }); + const [menuAnchor, setMenuAnchor] = useState(); + const unread = useRoomUnread(room.roomId, roomToUnreadAtom); + const typingMember = useRoomTypingMember(room.roomId); + + const handleContextMenu: MouseEventHandler = (evt) => { + evt.preventDefault(); + setMenuAnchor({ + x: evt.clientX, + y: evt.clientY, + width: 0, + height: 0, + }); + }; + + const handleOpenMenu: MouseEventHandler = (evt) => { + setMenuAnchor(evt.currentTarget.getBoundingClientRect()); + }; + + const optionsVisible = hover || !!menuAnchor; + + return ( + + + + + + {showAvatar ? ( + ( + + {nameInitials(room.name)} + + )} + /> + ) : ( + + )} + + + + {room.name} + + + {!optionsVisible && !unread && !selected && typingMember.length > 0 && ( + + + + )} + {!optionsVisible && unread && ( + + 0} count={unread.total} /> + + )} + {muted && !optionsVisible && } + + + + {optionsVisible && ( + + setMenuAnchor(undefined), + clickOutsideDeactivates: true, + isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', + isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', + }} + > + setMenuAnchor(undefined)} + /> + + } + > + + + + + + )} + + ); +} diff --git a/src/app/features/room-nav/index.ts b/src/app/features/room-nav/index.ts new file mode 100644 index 00000000..d1ea3ec7 --- /dev/null +++ b/src/app/features/room-nav/index.ts @@ -0,0 +1,2 @@ +export * from './RoomNavItem'; +export * from './RoomNavCategoryButton'; diff --git a/src/app/features/room-nav/styles.css.ts b/src/app/features/room-nav/styles.css.ts new file mode 100644 index 00000000..b5701a6f --- /dev/null +++ b/src/app/features/room-nav/styles.css.ts @@ -0,0 +1,9 @@ +import { style } from '@vanilla-extract/css'; +import { config } from 'folds'; + +export const CategoryButton = style({ + flexGrow: 1, +}); +export const CategoryButtonIcon = style({ + opacity: config.opacity.P400, +}); diff --git a/src/app/organisms/room/CommandAutocomplete.tsx b/src/app/features/room/CommandAutocomplete.tsx similarity index 100% rename from src/app/organisms/room/CommandAutocomplete.tsx rename to src/app/features/room/CommandAutocomplete.tsx diff --git a/src/app/organisms/room/MembersDrawer.css.ts b/src/app/features/room/MembersDrawer.css.ts similarity index 100% rename from src/app/organisms/room/MembersDrawer.css.ts rename to src/app/features/room/MembersDrawer.css.ts diff --git a/src/app/organisms/room/MembersDrawer.tsx b/src/app/features/room/MembersDrawer.tsx similarity index 79% rename from src/app/organisms/room/MembersDrawer.tsx rename to src/app/features/room/MembersDrawer.tsx index b4ba6b79..8a96b84a 100644 --- a/src/app/organisms/room/MembersDrawer.tsx +++ b/src/app/features/room/MembersDrawer.tsx @@ -8,8 +8,6 @@ import React, { } from 'react'; import { Avatar, - AvatarFallback, - AvatarImage, Badge, Box, Chip, @@ -22,6 +20,7 @@ import { Menu, MenuItem, PopOut, + RectCords, Scroll, Spinner, Text, @@ -32,18 +31,12 @@ import { import { Room, RoomMember } from 'matrix-js-sdk'; import { useVirtualizer } from '@tanstack/react-virtual'; import FocusTrap from 'focus-trap-react'; -import millify from 'millify'; import classNames from 'classnames'; -import { useAtomValue } from 'jotai'; -import { openInviteUser, openProfileViewer } from '../../../client/action/navigation'; +import { openProfileViewer } from '../../../client/action/navigation'; import * as css from './MembersDrawer.css'; import { useRoomMembers } from '../../hooks/useRoomMembers'; import { useMatrixClient } from '../../hooks/useMatrixClient'; -import { - getIntersectionObserverEntry, - useIntersectionObserver, -} from '../../hooks/useIntersectionObserver'; import { Membership } from '../../../types/matrix/room'; import { UseStateProvider } from '../../components/UseStateProvider'; import { @@ -52,14 +45,16 @@ import { useAsyncSearch, } from '../../hooks/useAsyncSearch'; import { useDebounce } from '../../hooks/useDebounce'; -import colorMXID from '../../../util/colorMXID'; import { usePowerLevelTags, PowerLevelTag } from '../../hooks/usePowerLevelTags'; -import { roomIdToTypingMembersAtom, selectRoomTypingMembersAtom } from '../../state/typingMembers'; import { TypingIndicator } from '../../components/typing-indicator'; import { getMemberDisplayName, getMemberSearchStr } from '../../utils/room'; import { getMxIdLocalPart } from '../../utils/matrix'; -import { useSetting } from '../../state/hooks/settings'; +import { useSetSetting, useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; +import { millify } from '../../plugins/millify'; +import { ScrollTopContainer } from '../../components/scroll-top-container'; +import { UserAvatar } from '../../components/user-avatar'; +import { useRoomTypingMember } from '../../hooks/useRoomTypingMembers'; export const MembershipFilters = { filterJoined: (m: RoomMember) => m.membership === Membership.Join, @@ -181,6 +176,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { const members = useRoomMembers(mx, room.roomId); const getPowerLevelTag = usePowerLevelTags(); const fetchingMembers = members.length < room.getJoinedMemberCount(); + const setPeopleDrawer = useSetSetting(settingsAtom, 'isPeopleDrawer'); const membershipFilterMenu = useMembershipFilterMenu(); const sortFilterMenu = useSortFilterMenu(); @@ -190,11 +186,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { const membershipFilter = membershipFilterMenu[membershipFilterIndex] ?? membershipFilterMenu[0]; const sortFilter = sortFilterMenu[sortFilterIndex] ?? sortFilterMenu[0]; - const [onTop, setOnTop] = useState(true); - - const typingMembers = useAtomValue( - useMemo(() => selectRoomTypingMembersAtom(room.roomId, roomIdToTypingMembersAtom), [room]) - ); + const typingMembers = useRoomTypingMember(room.roomId); const filteredMembers = useMemo( () => @@ -235,16 +227,6 @@ export function MembersDrawer({ room }: MembersDrawerProps) { overscan: 10, }); - useIntersectionObserver( - useCallback((intersectionEntries) => { - if (!scrollTopAnchorRef.current) return; - const entry = getIntersectionObserverEntry(scrollTopAnchorRef.current, intersectionEntries); - if (entry) setOnTop(entry.isIntersecting); - }, []), - useCallback(() => ({ root: scrollRef.current }), []), - useCallback(() => scrollTopAnchorRef.current, []) - ); - const handleSearchChange: ChangeEventHandler = useDebounce( useCallback( (evt) => { @@ -266,12 +248,12 @@ export function MembersDrawer({ room }: MembersDrawerProps) { }; return ( - +
        - - {`${millify(room.getJoinedMemberCount(), { precision: 1, locales: [] })} Members`} + + {`${millify(room.getJoinedMemberCount())} Members`} @@ -281,7 +263,7 @@ export function MembersDrawer({ room }: MembersDrawerProps) { offset={4} tooltip={ - Invite Member + Close } > @@ -289,9 +271,9 @@ export function MembersDrawer({ room }: MembersDrawerProps) { openInviteUser(room.roomId)} + onClick={() => setPeopleDrawer(false)} > - + )} @@ -299,14 +281,14 @@ export function MembersDrawer({ room }: MembersDrawerProps) {
        - + - - {(open, setOpen) => ( + + {(anchor: RectCords | undefined, setAnchor) => ( setOpen(false), + onDeactivate: () => setAnchor(undefined), clickOutsideDeactivates: true, isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', @@ -330,38 +312,41 @@ export function MembersDrawer({ room }: MembersDrawerProps) { : 'Surface' } aria-pressed={menuItem.name === membershipFilter.name} + size="300" radii="300" onClick={() => { setMembershipFilterIndex(index); - setOpen(false); + setAnchor(undefined); }} > - {menuItem.name} + {menuItem.name} ))}
  • } > - {(anchorRef) => ( - setOpen(!open)} - variant={membershipFilter.color} - size="400" - radii="300" - before={} - > - {membershipFilter.name} - - )} + + setAnchor( + evt.currentTarget.getBoundingClientRect() + )) as MouseEventHandler + } + variant={membershipFilter.color} + size="400" + radii="300" + before={} + > + {membershipFilter.name} + )} - - {(open, setOpen) => ( + + {(anchor: RectCords | undefined, setAnchor) => ( setOpen(false), + onDeactivate: () => setAnchor(undefined), clickOutsideDeactivates: true, isKeyForward: (evt: KeyboardEvent) => evt.key === 'ArrowDown', isKeyBackward: (evt: KeyboardEvent) => evt.key === 'ArrowUp', @@ -381,31 +366,34 @@ export function MembersDrawer({ room }: MembersDrawerProps) { key={menuItem.name} variant="Surface" aria-pressed={menuItem.name === sortFilter.name} + size="300" radii="300" onClick={() => { setSortFilterIndex(index); - setOpen(false); + setAnchor(undefined); }} > - {menuItem.name} + {menuItem.name} ))} } > - {(anchorRef) => ( - setOpen(!open)} - variant="Background" - size="400" - radii="300" - after={} - > - {sortFilter.name} - - )} + + setAnchor( + evt.currentTarget.getBoundingClientRect() + )) as MouseEventHandler + } + variant="Background" + size="400" + radii="300" + after={} + > + {sortFilter.name} + )} @@ -446,20 +434,18 @@ export function MembersDrawer({ room }: MembersDrawerProps) { - {!onTop && ( - - virtualizer.scrollToOffset(0)} - variant="Surface" - radii="Pill" - outlined - size="300" - aria-label="Scroll to Top" - > - - - - )} + + virtualizer.scrollToOffset(0)} + variant="Surface" + radii="Pill" + outlined + size="300" + aria-label="Scroll to Top" + > + + + {!fetchingMembers && !result && processMembers.length === 0 && ( @@ -520,22 +506,16 @@ export function MembersDrawer({ room }: MembersDrawerProps) { onClick={handleMemberClick} before={ - {avatarUrl ? ( - - ) : ( - - {name[0]} - - )} + } + /> } after={ - typingMembers.find((tm) => tm.userId === member.userId) && ( + typingMembers.find((receipt) => receipt.userId === member.userId) && ( diff --git a/src/app/features/room/Room.tsx b/src/app/features/room/Room.tsx new file mode 100644 index 00000000..764e9686 --- /dev/null +++ b/src/app/features/room/Room.tsx @@ -0,0 +1,33 @@ +import React from 'react'; +import { Box, Line } from 'folds'; +import { useParams } from 'react-router-dom'; +import { RoomView } from './RoomView'; +import { MembersDrawer } from './MembersDrawer'; +import { ScreenSize, useScreenSizeContext } from '../../hooks/useScreenSize'; +import { useSetting } from '../../state/hooks/settings'; +import { settingsAtom } from '../../state/settings'; +import { PowerLevelsContextProvider, usePowerLevels } from '../../hooks/usePowerLevels'; +import { useRoom } from '../../hooks/useRoom'; + +export function Room() { + const { eventId } = useParams(); + const room = useRoom(); + + const [isDrawer] = useSetting(settingsAtom, 'isPeopleDrawer'); + const screenSize = useScreenSizeContext(); + const powerLevels = usePowerLevels(room); + + return ( + + + + {screenSize === ScreenSize.Desktop && isDrawer && ( + <> + + + + )} + + + ); +} diff --git a/src/app/organisms/room/RoomInput.tsx b/src/app/features/room/RoomInput.tsx similarity index 85% rename from src/app/organisms/room/RoomInput.tsx rename to src/app/features/room/RoomInput.tsx index e6c4fb73..6f9a2495 100644 --- a/src/app/organisms/room/RoomInput.tsx +++ b/src/app/features/room/RoomInput.tsx @@ -57,7 +57,7 @@ import { import { EmojiBoard, EmojiBoardTab } from '../../components/emoji-board'; import { UseStateProvider } from '../../components/UseStateProvider'; import initMatrix from '../../../client/initMatrix'; -import { TUploadContent, encryptFile, getImageInfo } from '../../utils/matrix'; +import { TUploadContent, encryptFile, getImageInfo, getMxIdLocalPart } from '../../utils/matrix'; import { useTypingStatusUpdater } from '../../hooks/useTypingStatusUpdater'; import { useFilePicker } from '../../hooks/useFilePicker'; import { useFilePasteHandler } from '../../hooks/useFilePasteHandler'; @@ -68,7 +68,7 @@ import { roomIdToReplyDraftAtomFamily, roomIdToUploadItemsAtomFamily, roomUploadAtomFamily, -} from '../../state/roomInputDrafts'; +} from '../../state/room/roomInputDrafts'; import { UploadCardRenderer } from '../../components/upload-card'; import { UploadBoard, @@ -93,32 +93,34 @@ import { getImageMsgContent, getVideoMsgContent, } from './msgContent'; -import { MessageReply } from '../../molecules/message/Message'; import colorMXID from '../../../util/colorMXID'; import { + getMemberDisplayName, parseReplyBody, parseReplyFormattedBody, trimReplyFromBody, trimReplyFromFormattedBody, } from '../../utils/room'; import { sanitizeText } from '../../utils/sanitize'; -import { useScreenSize } from '../../hooks/useScreenSize'; import { CommandAutocomplete } from './CommandAutocomplete'; import { Command, SHRUG, useCommands } from '../../hooks/useCommands'; import { mobileOrTablet } from '../../utils/user-agent'; +import { useElementSizeObserver } from '../../hooks/useElementSizeObserver'; +import { ReplyLayout } from '../../components/message'; interface RoomInputProps { editor: Editor; - roomViewRef: RefObject; + fileDropContainerRef: RefObject; roomId: string; room: Room; } export const RoomInput = forwardRef( - ({ editor, roomViewRef, roomId, room }, ref) => { + ({ editor, fileDropContainerRef, roomId, room }, ref) => { const mx = useMatrixClient(); const [enterForNewline] = useSetting(settingsAtom, 'enterForNewline'); const [isMarkdown] = useSetting(settingsAtom, 'isMarkdown'); const commands = useCommands(mx, room); + const emojiBtnRef = useRef(null); const [msgDraft, setMsgDraft] = useAtom(roomIdToMsgDraftAtomFamily(roomId)); const [replyDraft, setReplyDraft] = useAtom(roomIdToReplyDraftAtomFamily(roomId)); @@ -170,10 +172,13 @@ export const RoomInput = forwardRef( ); const pickFile = useFilePicker(handleFiles, true); const handlePaste = useFilePasteHandler(handleFiles); - const dropZoneVisible = useFileDropZone(roomViewRef, handleFiles); + const dropZoneVisible = useFileDropZone(fileDropContainerRef, handleFiles); + const [hideStickerBtn, setHideStickerBtn] = useState(document.body.clientWidth < 500); - const [, screenWidth] = useScreenSize(); - const hideStickerBtn = screenWidth < 500; + useElementSizeObserver( + useCallback(() => document.body, []), + useCallback((width) => setHideStickerBtn(width < 500), []) + ); useEffect(() => { Transforms.insertFragment(editor, msgDraft); @@ -307,7 +312,7 @@ export const RoomInput = forwardRef( mx.sendMessage(roomId, content); resetEditor(editor); resetEditorHistory(editor); - setReplyDraft(); + setReplyDraft(undefined); sendTypingStatus(false); }, [mx, roomId, editor, replyDraft, sendTypingStatus, setReplyDraft, isMarkdown, commands]); @@ -319,7 +324,7 @@ export const RoomInput = forwardRef( } if (isKeyHotkey('escape', evt)) { evt.preventDefault(); - setReplyDraft(); + setReplyDraft(undefined); } }, [submit, setReplyDraft, enterForNewline] @@ -475,18 +480,29 @@ export const RoomInput = forwardRef( style={{ padding: `${config.space.S200} ${config.space.S300} 0` }} > setReplyDraft()} + onClick={() => setReplyDraft(undefined)} variant="SurfaceVariant" size="300" radii="300" > - + + + {getMemberDisplayName(room, replyDraft.userId) ?? + getMxIdLocalPart(replyDraft.userId) ?? + replyDraft.userId} + + + } + > + + {trimReplyFromBody(replyDraft.body)} + +
    ) @@ -518,7 +534,11 @@ export const RoomInput = forwardRef( alignOffset={-44} position="Top" align="End" - open={!!emojiBoardTab} + anchor={ + emojiBoardTab === undefined + ? undefined + : emojiBtnRef.current?.getBoundingClientRect() ?? undefined + } content={ ( /> } > - {(anchorRef) => ( - <> - {!hideStickerBtn && ( - setEmojiBoardTab(EmojiBoardTab.Sticker)} - variant="SurfaceVariant" - size="300" - radii="300" - > - - - )} - setEmojiBoardTab(EmojiBoardTab.Emoji)} - variant="SurfaceVariant" - size="300" - radii="300" - > - - - + {!hideStickerBtn && ( + setEmojiBoardTab(EmojiBoardTab.Sticker)} + variant="SurfaceVariant" + size="300" + radii="300" + > + + )} + setEmojiBoardTab(EmojiBoardTab.Emoji)} + variant="SurfaceVariant" + size="300" + radii="300" + > + + )} diff --git a/src/app/organisms/room/RoomInputPlaceholder.css.ts b/src/app/features/room/RoomInputPlaceholder.css.ts similarity index 100% rename from src/app/organisms/room/RoomInputPlaceholder.css.ts rename to src/app/features/room/RoomInputPlaceholder.css.ts diff --git a/src/app/organisms/room/RoomInputPlaceholder.tsx b/src/app/features/room/RoomInputPlaceholder.tsx similarity index 100% rename from src/app/organisms/room/RoomInputPlaceholder.tsx rename to src/app/features/room/RoomInputPlaceholder.tsx diff --git a/src/app/organisms/room/RoomTimeline.css.ts b/src/app/features/room/RoomTimeline.css.ts similarity index 100% rename from src/app/organisms/room/RoomTimeline.css.ts rename to src/app/features/room/RoomTimeline.css.ts diff --git a/src/app/organisms/room/RoomTimeline.tsx b/src/app/features/room/RoomTimeline.tsx similarity index 62% rename from src/app/organisms/room/RoomTimeline.tsx rename to src/app/features/room/RoomTimeline.tsx index 0c74de52..29b874fc 100644 --- a/src/app/organisms/room/RoomTimeline.tsx +++ b/src/app/features/room/RoomTimeline.tsx @@ -1,3 +1,4 @@ +/* eslint-disable react/destructuring-assignment */ import React, { Dispatch, MouseEventHandler, @@ -22,7 +23,7 @@ import { RoomEvent, RoomEventHandlerMap, } from 'matrix-js-sdk'; -import parse, { HTMLReactParserOptions } from 'html-react-parser'; +import { HTMLReactParserOptions } from 'html-react-parser'; import classNames from 'classnames'; import { ReactEditor } from 'slate-react'; import { Editor } from 'slate'; @@ -52,7 +53,6 @@ import { isRoomId, isUserId, } from '../../utils/matrix'; -import { sanitizeCustomHtml } from '../../utils/sanitize'; import { useMatrixClient } from '../../hooks/useMatrixClient'; import { useVirtualPaginator, ItemRange } from '../../hooks/useVirtualPaginator'; import { useAlive } from '../../hooks/useAlive'; @@ -62,24 +62,15 @@ import { CompactPlaceholder, Reply, MessageBase, - MessageDeletedContent, - MessageBrokenContent, MessageUnsupportedContent, - MessageEditedContent, - MessageEmptyContent, - AttachmentBox, - Attachment, - AttachmentContent, - AttachmentHeader, Time, - MessageBadEncryptedContent, MessageNotDecryptedContent, - MessageTextBody, + RedactedContent, + MSticker, + ImageContent, + EventContent, } from '../../components/message'; -import { - emojifyAndLinkify, - getReactCustomHtmlParser, -} from '../../plugins/react-custom-html-parser'; +import { getReactCustomHtmlParser } from '../../plugins/react-custom-html-parser'; import { canEditEvent, decryptAllTimelineEvent, @@ -90,35 +81,12 @@ import { getReactionContent, isMembershipChanged, reactionOrEditEvent, - trimReplyFromBody, } from '../../utils/room'; import { useSetting } from '../../state/hooks/settings'; import { settingsAtom } from '../../state/settings'; -import { - openJoinAlias, - openProfileViewer, - selectRoom, - selectTab, -} from '../../../client/action/navigation'; -import { useForceUpdate } from '../../hooks/useForceUpdate'; -import { parseGeoUri, scaleYDimension } from '../../utils/common'; +import { openJoinAlias, openProfileViewer } from '../../../client/action/navigation'; import { useMatrixEventRenderer } from '../../hooks/useMatrixEventRenderer'; -import { useRoomMsgContentRenderer } from '../../hooks/useRoomMsgContentRenderer'; -import { IAudioContent, IImageContent, IVideoContent } from '../../../types/matrix/common'; -import { getBlobSafeMimeType } from '../../utils/mimeTypes'; -import { - ImageContent, - VideoContent, - FileHeader, - fileRenderer, - AudioContent, - Reactions, - EventContent, - Message, - Event, - EncryptedContent, - StickerContent, -} from './message'; +import { Reactions, Message, Event, EncryptedContent } from './message'; import { useMemberEventParser } from '../../hooks/useMemberEventParser'; import * as customHtmlCss from '../../styles/CustomHtml.css'; import { RoomIntro } from '../../components/room-intro'; @@ -132,22 +100,17 @@ import { getResizeObserverEntry, useResizeObserver } from '../../hooks/useResize import * as css from './RoomTimeline.css'; import { inSameDay, minuteDifference, timeDayMonthYear, today, yesterday } from '../../utils/time'; import { createMentionElement, isEmptyEditor, moveCursor } from '../../components/editor'; -import { roomIdToReplyDraftAtomFamily } from '../../state/roomInputDrafts'; -import { usePowerLevelsAPI } from '../../hooks/usePowerLevels'; -import { MessageEvent } from '../../../types/matrix/room'; +import { roomIdToReplyDraftAtomFamily } from '../../state/room/roomInputDrafts'; +import { usePowerLevelsAPI, usePowerLevelsContext } from '../../hooks/usePowerLevels'; +import { GetContentCallback, MessageEvent, StateEvent } from '../../../types/matrix/room'; import initMatrix from '../../../client/initMatrix'; import { useKeyDown } from '../../hooks/useKeyDown'; import cons from '../../../client/state/cons'; import { useDocumentFocusChange } from '../../hooks/useDocumentFocusChange'; -import { EMOJI_PATTERN, HTTP_URL_PATTERN, VARIATION_SELECTOR_PATTERN } from '../../utils/regex'; -import { UrlPreviewCard, UrlPreviewHolder } from './message/UrlPreviewCard'; - -// Thumbs up emoji found to have Variation Selector 16 at the end -// so included variation selector pattern in regex -const JUMBO_EMOJI_REG = new RegExp( - `^(((${EMOJI_PATTERN})|(:.+?:))(${VARIATION_SELECTOR_PATTERN}|\\s)*){1,10}$` -); -const URL_REG = new RegExp(HTTP_URL_PATTERN, 'g'); +import { RenderMessageContent } from '../../components/RenderMessageContent'; +import { Image } from '../../components/media'; +import { ImageViewer } from '../../components/image-viewer'; +import { useRoomNavigate } from '../../hooks/useRoomNavigate'; const TimelineFloat = as<'div', css.TimelineFloatVariants>( ({ position, className, ...props }, ref) => ( @@ -474,11 +437,13 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli const showUrlPreview = encryptedRoom ? encUrlPreview : urlPreview; const [showHiddenEvents] = useSetting(settingsAtom, 'showHiddenEvents'); const setReplyDraft = useSetAtom(roomIdToReplyDraftAtomFamily(room.roomId)); - const { canDoAction, canSendEvent, getPowerLevel } = usePowerLevelsAPI(); + const powerLevels = usePowerLevelsContext(); + const { canDoAction, canSendEvent, getPowerLevel } = usePowerLevelsAPI(powerLevels); const myPowerLevel = getPowerLevel(mx.getUserId() ?? ''); const canRedact = canDoAction('redact', myPowerLevel); const canSendReaction = canSendEvent(MessageEvent.Reaction, myPowerLevel); const [editId, setEditId] = useState(); + const { navigateRoom, navigateSpace } = useRoomNavigate(); const imagePackRooms: Room[] = useMemo(() => { const allParentSpaces = [ @@ -509,13 +474,15 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli smooth: true, }); - const focusItem = useRef<{ - index: number; - scrollTo: boolean; - highlight: boolean; - }>(); + const [focusItem, setFocusItem] = useState< + | { + index: number; + scrollTo: boolean; + highlight: boolean; + } + | undefined + >(); const alive = useAlive(); - const [, forceUpdate] = useForceUpdate(); const htmlReactParserOptions = useMemo( () => @@ -537,14 +504,14 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli return; } if (isRoomId(mentionId) && mx.getRoom(mentionId)) { - if (mx.getRoom(mentionId)?.isSpaceRoom()) selectTab(mentionId); - else selectRoom(mentionId); + if (mx.getRoom(mentionId)?.isSpaceRoom()) navigateSpace(mentionId); + else navigateRoom(mentionId); return; } openJoinAlias(mentionId); }, }), - [mx, room] + [mx, room, navigateRoom, navigateSpace] ); const parseMemberEvent = useMemberEventParser(); @@ -594,11 +561,11 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli if (!alive()) return; const evLength = getTimelinesEventsCount(lTimelines); - focusItem.current = { + setFocusItem({ index: evtAbsIndex, scrollTo: true, highlight: evtId !== readUptoEventIdRef.current, - }; + }); setTimeline({ linkedTimelines: lTimelines, range: { @@ -797,18 +764,23 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli }, [room, unreadInfo, scrollToItem]); // scroll to focused message - const focusItm = focusItem.current; useLayoutEffect(() => { - if (focusItm && focusItm.scrollTo) { - scrollToItem(focusItm.index, { + if (focusItem && focusItem.scrollTo) { + scrollToItem(focusItem.index, { behavior: 'instant', align: 'center', stopInView: true, }); } - focusItem.current = undefined; - }, [focusItm, scrollToItem]); + setTimeout(() => { + if (!alive()) return; + setFocusItem((currentItem) => { + if (currentItem === focusItem) return undefined; + return currentItem; + }); + }, 2000); + }, [alive, focusItem, scrollToItem]); // scroll to bottom of timeline const scrollToBottomCount = scrollToBottomRef.current.count; @@ -879,18 +851,17 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli align: 'center', stopInView: true, }); - focusItem.current = { + setFocusItem({ index: absoluteIndex, scrollTo: false, highlight: true, - }; - forceUpdate(); + }); } else { setTimeline(getEmptyTimeline()); loadEventTimeline(replyId); } }, - [room, timeline, scrollToItem, loadEventTimeline, forceUpdate] + [room, timeline, scrollToItem, loadEventTimeline] ); const handleUserClick: MouseEventHandler = useCallback( @@ -989,590 +960,398 @@ export function RoomTimeline({ room, eventId, roomInputRef, editor }: RoomTimeli [editor] ); - const renderBody = (body: string, customBody?: string) => { - if (body === '') ; - if (customBody) { - if (customBody === '') ; - return parse(sanitizeCustomHtml(customBody), htmlReactParserOptions); - } - return emojifyAndLinkify(body, true); - }; + const renderMatrixEvent = useMatrixEventRenderer< + [string, MatrixEvent, number, EventTimelineSet, boolean] + >( + { + [MessageEvent.RoomMessage]: (mEventId, mEvent, item, timelineSet, collapse) => { + const reactionRelations = getEventReactions(timelineSet, mEventId); + const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey(); + const hasReactions = reactions && reactions.length > 0; + const { replyEventId } = mEvent; + const highlighted = focusItem?.index === item && focusItem.highlight; - const renderRoomMsgContent = useRoomMsgContentRenderer<[EventTimelineSet]>({ - renderText: (mEventId, mEvent, timelineSet) => { - const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); - const { body, formatted_body: customBody }: Record = - editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); + const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); + const getContent = (() => + editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent()) as GetContentCallback; - if (typeof body !== 'string') return null; - const trimmedBody = trimReplyFromBody(body); - const urlsMatch = showUrlPreview && trimmedBody.match(URL_REG); - const urls = urlsMatch ? [...new Set(urlsMatch)] : undefined; - - return ( - <> - - {renderBody(trimmedBody, typeof customBody === 'string' ? customBody : undefined)} - {!!editedEvent && } - - {urls && urls.length > 0 && ( - - {urls.map((url) => ( - - ))} - - )} - - ); - }, - renderEmote: (mEventId, mEvent, timelineSet) => { - const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); - const { body, formatted_body: customBody } = - editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); - const senderId = mEvent.getSender() ?? ''; - - const senderDisplayName = - getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId; - - if (typeof body !== 'string') return null; - const trimmedBody = trimReplyFromBody(body); - const urlsMatch = showUrlPreview && trimmedBody.match(URL_REG); - const urls = urlsMatch ? [...new Set(urlsMatch)] : undefined; - - return ( - <> - - {`${senderDisplayName} `} - {renderBody(trimmedBody, typeof customBody === 'string' ? customBody : undefined)} - {!!editedEvent && } - - {urls && urls.length > 0 && ( - - {urls.map((url) => ( - - ))} - - )} - - ); - }, - renderNotice: (mEventId, mEvent, timelineSet) => { - const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); - const { body, formatted_body: customBody }: Record = - editedEvent?.getContent()['m.new_content'] ?? mEvent.getContent(); - - if (typeof body !== 'string') return null; - const trimmedBody = trimReplyFromBody(body); - const urlsMatch = showUrlPreview && trimmedBody.match(URL_REG); - const urls = urlsMatch ? [...new Set(urlsMatch)] : undefined; - - return ( - <> - - {renderBody(trimmedBody, typeof customBody === 'string' ? customBody : undefined)} - {!!editedEvent && } - - {urls && urls.length > 0 && ( - - {urls.map((url) => ( - - ))} - - )} - - ); - }, - renderImage: (mEventId, mEvent) => { - const content = mEvent.getContent(); - const imgInfo = content?.info; - const mxcUrl = content.file?.url ?? content.url; - if (typeof mxcUrl !== 'string') { - return null; - } - const height = scaleYDimension(imgInfo?.w || 400, 400, imgInfo?.h || 400); - - return ( - - - - - - ); - }, - renderVideo: (mEventId, mEvent) => { - const content = mEvent.getContent(); - - const videoInfo = content?.info; - const mxcUrl = content.file?.url ?? content.url; - const safeMimeType = getBlobSafeMimeType(videoInfo?.mimetype ?? ''); - - if (!videoInfo || !safeMimeType.startsWith('video') || typeof mxcUrl !== 'string') { - if (mxcUrl) { - return fileRenderer(mEventId, mEvent); - } - return null; - } - - const height = scaleYDimension(videoInfo.w || 400, 400, videoInfo.h || 400); - - return ( - - - - - - ); - }, - renderAudio: (mEventId, mEvent) => { - const content = mEvent.getContent(); - - const audioInfo = content?.info; - const mxcUrl = content.file?.url ?? content.url; - const safeMimeType = getBlobSafeMimeType(audioInfo?.mimetype ?? ''); - - if (!audioInfo || !safeMimeType.startsWith('audio') || typeof mxcUrl !== 'string') { - if (mxcUrl) { - return fileRenderer(mEventId, mEvent); - } - return null; - } - - return ( - - - - - - - - - - - ); - }, - renderLocation: (mEventId, mEvent) => { - const content = mEvent.getContent(); - const geoUri = content.geo_uri; - if (typeof geoUri !== 'string') return null; - const location = parseGeoUri(geoUri); - return ( - - {geoUri} - } - > - Open Location - - - ); - }, - renderFile: fileRenderer, - renderBadEncrypted: () => ( - - - - ), - renderUnsupported: (mEventId, mEvent) => { - if (mEvent.isRedacted()) { - const redactedEvt = mEvent.getRedactionEvent(); - const reason = - redactedEvt && 'content' in redactedEvt ? redactedEvt.content.reason : undefined; + const senderId = mEvent.getSender() ?? ''; + const senderDisplayName = + getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId; return ( - - - + + ) + } + reactions={ + reactionRelations && ( + + ) + } + > + {mEvent.isRedacted() ? ( + + ) : ( + + )} + ); - } - return ( - - - - ); - }, - renderBrokenFallback: (mEventId, mEvent) => { - if (mEvent.isRedacted()) { - const redactedEvt = mEvent.getRedactionEvent(); - const reason = - redactedEvt && 'content' in redactedEvt ? redactedEvt.content.reason : undefined; + }, + [MessageEvent.RoomMessageEncrypted]: (mEventId, mEvent, item, timelineSet, collapse) => { + const reactionRelations = getEventReactions(timelineSet, mEventId); + const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey(); + const hasReactions = reactions && reactions.length > 0; + const { replyEventId } = mEvent; + const highlighted = focusItem?.index === item && focusItem.highlight; + return ( - - - - ); - } - return ( - - - - ); - }, - }); + + ) + } + reactions={ + reactionRelations && ( + + ) + } + > + + {() => { + if (mEvent.isRedacted()) return ; + if (mEvent.getType() === MessageEvent.Sticker) + return ( + ( + } + renderViewer={(p) => } + /> + )} + /> + ); + if (mEvent.getType() === MessageEvent.RoomMessage) { + const editedEvent = getEditedEvent(mEventId, mEvent, timelineSet); + const getContent = (() => + editedEvent?.getContent()['m.new_content'] ?? + mEvent.getContent()) as GetContentCallback; - const renderMatrixEvent = useMatrixEventRenderer<[number, EventTimelineSet, boolean]>({ - renderRoomMessage: (mEventId, mEvent, item, timelineSet, collapse) => { - const reactionRelations = getEventReactions(timelineSet, mEventId); - const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey(); - const hasReactions = reactions && reactions.length > 0; - const { replyEventId } = mEvent; - const highlighted = focusItem.current?.index === item && focusItem.current.highlight; - - return ( - - ) - } - reactions={ - reactionRelations && ( - - ) - } - > - {renderRoomMsgContent(mEventId, mEvent, timelineSet)} - - ); - }, - renderRoomEncrypted: (mEventId, mEvent, item, timelineSet, collapse) => { - const reactionRelations = getEventReactions(timelineSet, mEventId); - const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey(); - const hasReactions = reactions && reactions.length > 0; - const { replyEventId } = mEvent; - const highlighted = focusItem.current?.index === item && focusItem.current.highlight; - - return ( - - ) - } - reactions={ - reactionRelations && ( - - ) - } - > - - {() => { - if (mEvent.isRedacted()) return ; - if (mEvent.getType() === MessageEvent.Sticker) - return ; - if (mEvent.getType() === MessageEvent.RoomMessage) - return renderRoomMsgContent(mEventId, mEvent, timelineSet); - if (mEvent.getType() === MessageEvent.RoomMessageEncrypted) + const senderId = mEvent.getSender() ?? ''; + const senderDisplayName = + getMemberDisplayName(room, senderId) ?? getMxIdLocalPart(senderId) ?? senderId; + return ( + + ); + } + if (mEvent.getType() === MessageEvent.RoomMessageEncrypted) + return ( + + + + ); return ( - + ); - return ( - - - - ); - }} - - - ); - }, - renderSticker: (mEventId, mEvent, item, timelineSet, collapse) => { - const reactionRelations = getEventReactions(timelineSet, mEventId); - const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey(); - const hasReactions = reactions && reactions.length > 0; - const highlighted = focusItem.current?.index === item && focusItem.current.highlight; + }} + + + ); + }, + [MessageEvent.Sticker]: (mEventId, mEvent, item, timelineSet, collapse) => { + const reactionRelations = getEventReactions(timelineSet, mEventId); + const reactions = reactionRelations && reactionRelations.getSortedAnnotationsByKey(); + const hasReactions = reactions && reactions.length > 0; + const highlighted = focusItem?.index === item && focusItem.highlight; - return ( - + ) + } + > + {mEvent.isRedacted() ? ( + + ) : ( + ( + } + renderViewer={(p) => } + /> + )} /> - ) - } - > - - - ); + )} + + ); + }, + [StateEvent.RoomMember]: (mEventId, mEvent, item) => { + const membershipChanged = isMembershipChanged(mEvent); + if (membershipChanged && hideMembershipEvents) return null; + if (!membershipChanged && hideNickAvatarEvents) return null; + + const highlighted = focusItem?.index === item && focusItem.highlight; + const parsed = parseMemberEvent(mEvent); + + const timeJSX =
    + } + /> + + ); + }, + [StateEvent.RoomName]: (mEventId, mEvent, item) => { + const highlighted = focusItem?.index === item && focusItem.highlight; + const senderId = mEvent.getSender() ?? ''; + const senderName = getMemberDisplayName(room, senderId) || getMxIdLocalPart(senderId); + + const timeJSX =
    + } + /> + + ); + }, + [StateEvent.RoomTopic]: (mEventId, mEvent, item) => { + const highlighted = focusItem?.index === item && focusItem.highlight; + const senderId = mEvent.getSender() ?? ''; + const senderName = getMemberDisplayName(room, senderId) || getMxIdLocalPart(senderId); + + const timeJSX =
    + } + /> + + ); + }, + [StateEvent.RoomAvatar]: (mEventId, mEvent, item) => { + const highlighted = focusItem?.index === item && focusItem.highlight; + const senderId = mEvent.getSender() ?? ''; + const senderName = getMemberDisplayName(room, senderId) || getMxIdLocalPart(senderId); + + const timeJSX =
    + } + /> + + ); + }, }, - renderRoomMember: (mEventId, mEvent, item) => { - const membershipChanged = isMembershipChanged(mEvent); - if (membershipChanged && hideMembershipEvents) return null; - if (!membershipChanged && hideNickAvatarEvents) return null; - - const highlighted = focusItem.current?.index === item && focusItem.current.highlight; - const parsed = parseMemberEvent(mEvent); - - const timeJSX =