diff --git a/.github/deactivated_workflows/backport.yml b/.github/deactivated_workflows/backport.yml index 32deb2f2b57..e10937278f0 100644 --- a/.github/deactivated_workflows/backport.yml +++ b/.github/deactivated_workflows/backport.yml @@ -23,7 +23,7 @@ jobs: ) ) steps: - - uses: tibdex/backport@v2 + - uses: tibdex/backport@2e217641d82d02ba0603f46b1aeedefb258890ac # v2 with: labels_template: "<%= JSON.stringify([...labels, 'X-Release-Blocker']) %>" # We can't use GITHUB_TOKEN here or CI won't run on the new PR diff --git a/.github/deactivated_workflows/build_develop.yml b/.github/deactivated_workflows/build_develop.yml index 45769cfb98d..998d8d80bbc 100644 --- a/.github/deactivated_workflows/build_develop.yml +++ b/.github/deactivated_workflows/build_develop.yml @@ -81,7 +81,7 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_TOKEN }} - name: Wait for other steps to succeed - uses: lewagon/wait-on-check-action@v1.3.1 + uses: t3chguy/wait-on-check-action@05861d3a448898eb33dfce34153bd1ecb9422fb9 # fork with: ref: ${{ github.sha }} running-workflow-name: "Build & Deploy develop.element.io" @@ -102,7 +102,7 @@ jobs: - name: Deploy to Cloudflare Pages id: cfp - uses: cloudflare/pages-action@1 + uses: cloudflare/pages-action@61eafe73baad0195ab582cb447b2c6e15a0df9ce # v1 with: apiToken: ${{ secrets.CF_PAGES_TOKEN }} accountId: ${{ secrets.CF_PAGES_ACCOUNT_ID }} diff --git a/.github/deactivated_workflows/dockerhub.yaml b/.github/deactivated_workflows/dockerhub.yaml index 3b0370fde2a..d1804596cf6 100644 --- a/.github/deactivated_workflows/dockerhub.yaml +++ b/.github/deactivated_workflows/dockerhub.yaml @@ -6,7 +6,7 @@ on: schedule: # This job can take a while, and we have usage limits, so just publish develop only twice a day - cron: "0 7/12 * * *" -concurrency: ${{ github.ref_name }} +concurrency: ${{ github.workflow }}-${{ github.ref_name }} jobs: buildx: name: Docker Buildx @@ -18,22 +18,22 @@ jobs: fetch-depth: 0 # needed for docker-package to be able to calculate the version - name: Set up QEMU - uses: docker/setup-qemu-action@v2 + uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 # v2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@4b4e9c3e2d4531116a6f8ba8e71fc6e2cb6e6c8c # v2 with: install: true - name: Login to Docker Hub - uses: docker/login-action@v2 + uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Docker meta id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@507c2f2dc502c992ad446e3d7a5dfbe311567a96 # v4 with: images: | vectorim/element-web @@ -44,7 +44,7 @@ jobs: latest=${{ contains(github.ref_name, '-rc.') && 'false' || 'auto' }} - name: Build and push - uses: docker/build-push-action@v4 + uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 # v4 with: context: . push: true @@ -53,7 +53,7 @@ jobs: labels: ${{ steps.meta.outputs.labels }} - name: Update repo description - uses: peter-evans/dockerhub-description@v3 + uses: peter-evans/dockerhub-description@202973a37c8a723405c0c5f0a71b6d99db470dae # v3 continue-on-error: true with: username: ${{ secrets.DOCKERHUB_USERNAME }} diff --git a/.github/workflows/static_analysis.yaml b/.github/workflows/static_analysis.yaml index 22a5b03b893..28cae626f98 100644 --- a/.github/workflows/static_analysis.yaml +++ b/.github/workflows/static_analysis.yaml @@ -31,10 +31,58 @@ jobs: # - name: Typecheck # run: "yarn run lint:types" + # - uses: actions/setup-node@v3 + # with: + # cache: "yarn" + + # - name: Install Dependencies + # run: "./scripts/layered.sh" + + # - name: Typecheck + # run: "yarn run lint:types" + + # tsc-strict: + # name: Typescript Strict Error Checker + # if: github.event_name == 'pull_request' + # runs-on: ubuntu-latest + # permissions: + # pull-requests: read + # checks: write + # steps: + # - uses: actions/checkout@v3 + + # - name: Install Deps + # run: "scripts/layered.sh" + + # - name: Get diff lines + # id: diff + # uses: Equip-Collaboration/diff-line-numbers@df70b4b83e05105c15f20dc6cc61f1463411b2a6 # v1.0.0 + # with: + # include: '["\\.tsx?$"]' + + # - name: Detecting files changed + # id: files + # uses: futuratrepadeira/changed-files@96d5fd702a6479d573287ef07381ad59acc390ed # v4.0.0 + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # pattern: '^.*\.tsx?$' + + # - uses: t3chguy/typescript-check-action@main + # with: + # repo-token: ${{ secrets.GITHUB_TOKEN }} + # use-check: false + # check-fail-mode: added + # output-behaviour: annotate + # ts-extra-args: "--strict --noImplicitAny" + # files-changed: ${{ steps.files.outputs.files_updated }} + # files-added: ${{ steps.files.outputs.files_created }} + # files-deleted: ${{ steps.files.outputs.files_deleted }} + # line-numbers: ${{ steps.diff.outputs.lineNumbers }} + # tchap : tchap does not use extensively i18n # i18n_lint: - # name: "i18n Check" - # uses: matrix-org/matrix-react-sdk/.github/workflows/i18n_check.yml@develop + # name: "i18n Check" + # uses: matrix-org/matrix-react-sdk/.github/workflows/i18n_check.yml@develop js_lint: name: "ESLint" @@ -49,7 +97,7 @@ jobs: # Does not need branch matching as only analyses this layer - name: Install Deps - run: "yarn install --pure-lockfile" + run: "yarn install --frozen-lockfile" - name: Run Linter run: "yarn run lint:js" diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index c0c717959f0..1a1b79e113d 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -28,6 +28,10 @@ jobs: - name: Install Dependencies run: "./scripts/tchap/install-yarn-linked-repositories.sh" + - name: Get number of CPU cores + id: cpu-cores + uses: SimenB/github-actions-cpu-cores@410541432439795d30db6501fb1d8178eb41e502 # v1 + - name: Run tests with coverage run: "yarn coverage --ci" diff --git a/.sentryclirc b/.sentryclirc deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/.stylelintrc.js b/.stylelintrc.js index f3d7a268b82..467e1d0e775 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -1,4 +1,4 @@ module.exports = { ...require("matrix-react-sdk/.stylelintrc.js"), - extends: ["stylelint-config-standard", "stylelint-config-prettier"], + extends: ["stylelint-config-standard"], }; diff --git a/CHANGELOG.md b/CHANGELOG.md index 34f15c04df0..7bfb07bf816 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,84 @@ +Changes in [1.11.29](https://github.com/vector-im/element-web/releases/tag/v1.11.29) (2023-04-11) +================================================================================================= + +## ✨ Features + * Allow desktop app to expose recent rooms in UI integrations ([\#16940](https://github.com/vector-im/element-web/pull/16940)). + * Add API params to mute audio and/or video in Jitsi calls by default ([\#24820](https://github.com/vector-im/element-web/pull/24820)). Contributed by @dhenneke. + * Style mentions as pills in rich text editor ([\#10448](https://github.com/matrix-org/matrix-react-sdk/pull/10448)). Contributed by @alunturner. + * Show room create icon if "UIComponent.roomCreation" is enabled ([\#10364](https://github.com/matrix-org/matrix-react-sdk/pull/10364)). Contributed by @maheichyk. + * Mentions as links rte ([\#10463](https://github.com/matrix-org/matrix-react-sdk/pull/10463)). Contributed by @alunturner. + * Better error handling in jump to date ([\#10405](https://github.com/matrix-org/matrix-react-sdk/pull/10405)). Contributed by @MadLittleMods. + * Show "Invite" menu option if "UIComponent.sendInvites" is enabled. ([\#10363](https://github.com/matrix-org/matrix-react-sdk/pull/10363)). Contributed by @maheichyk. + * Added `UserProfilesStore`, `LruCache` and user permalink profile caching ([\#10425](https://github.com/matrix-org/matrix-react-sdk/pull/10425)). Fixes #10559. + * Mentions as links rte ([\#10422](https://github.com/matrix-org/matrix-react-sdk/pull/10422)). Contributed by @alunturner. + * Implement MSC3952: intentional mentions ([\#9983](https://github.com/matrix-org/matrix-react-sdk/pull/9983)). + * Implement MSC3973: Search users in the user directory with the Widget API ([\#10269](https://github.com/matrix-org/matrix-react-sdk/pull/10269)). Contributed by @dhenneke. + * Permalinks to message are now displayed as pills ([\#10392](https://github.com/matrix-org/matrix-react-sdk/pull/10392)). Fixes #24751 and #24706. + * Show search,dial,explore in filterContainer if "UIComponent.filterContainer" is enabled ([\#10381](https://github.com/matrix-org/matrix-react-sdk/pull/10381)). Contributed by @maheichyk. + * Increase space panel collapse clickable area ([\#6084](https://github.com/matrix-org/matrix-react-sdk/pull/6084)). Fixes #17379. Contributed by @jaiwanth-v. + * Add fallback for replies to Polls ([\#10380](https://github.com/matrix-org/matrix-react-sdk/pull/10380)). Fixes #24197. Contributed by @kerryarchibald. + * Permalinks to rooms and users are now pillified ([\#10388](https://github.com/matrix-org/matrix-react-sdk/pull/10388)). Fixes #24825. + * Poll history - access poll history from room settings ([\#10356](https://github.com/matrix-org/matrix-react-sdk/pull/10356)). Contributed by @kerryarchibald. + * Add API params to mute audio and/or video in Jitsi calls by default ([\#10376](https://github.com/matrix-org/matrix-react-sdk/pull/10376)). Contributed by @dhenneke. + * Notifications: inline error message on notifications saving error ([\#10288](https://github.com/matrix-org/matrix-react-sdk/pull/10288)). Contributed by @kerryarchibald. + * Support dynamic room predecessor in SpaceProvider ([\#10348](https://github.com/matrix-org/matrix-react-sdk/pull/10348)). Contributed by @andybalaam. + * Support dynamic room predecessors for RoomProvider ([\#10346](https://github.com/matrix-org/matrix-react-sdk/pull/10346)). Contributed by @andybalaam. + * Support dynamic room predecessors in OwnBeaconStore ([\#10339](https://github.com/matrix-org/matrix-react-sdk/pull/10339)). Contributed by @andybalaam. + * Support dynamic room predecessors in ForwardDialog ([\#10344](https://github.com/matrix-org/matrix-react-sdk/pull/10344)). Contributed by @andybalaam. + * Support dynamic room predecessors in SpaceHierarchy ([\#10341](https://github.com/matrix-org/matrix-react-sdk/pull/10341)). Contributed by @andybalaam. + * Support dynamic room predecessors in AddExistingToSpaceDialog ([\#10342](https://github.com/matrix-org/matrix-react-sdk/pull/10342)). Contributed by @andybalaam. + * Support dynamic room predecessors in leave-behaviour ([\#10340](https://github.com/matrix-org/matrix-react-sdk/pull/10340)). Contributed by @andybalaam. + * Support dynamic room predecessors in StopGapWidgetDriver ([\#10338](https://github.com/matrix-org/matrix-react-sdk/pull/10338)). Contributed by @andybalaam. + * Support dynamic room predecessors in WidgetLayoutStore ([\#10326](https://github.com/matrix-org/matrix-react-sdk/pull/10326)). Contributed by @andybalaam. + * Support dynamic room predecessors in SpaceStore ([\#10332](https://github.com/matrix-org/matrix-react-sdk/pull/10332)). Contributed by @andybalaam. + * Sync polls push rules on changes to account_data ([\#10287](https://github.com/matrix-org/matrix-react-sdk/pull/10287)). Contributed by @kerryarchibald. + * Support dynamic room predecessors in BreadcrumbsStore ([\#10295](https://github.com/matrix-org/matrix-react-sdk/pull/10295)). Contributed by @andybalaam. + * Improved a11y for Field feedback and Secure Phrase input ([\#10320](https://github.com/matrix-org/matrix-react-sdk/pull/10320)). Contributed by @Sebbones. + * Support dynamic room predecessors in RoomNotificationStateStore ([\#10297](https://github.com/matrix-org/matrix-react-sdk/pull/10297)). Contributed by @andybalaam. + +## 🐛 Bug Fixes + * Use a newly generated access_token while joining Jitsi ([\#24646](https://github.com/vector-im/element-web/pull/24646)). Fixes #24687. Contributed by @emrahcom. + * Fix cloudflare action pointing at commit hash instead of tag ([\#24777](https://github.com/vector-im/element-web/pull/24777)). Contributed by @justjanne. + * Allow editing with RTE to overflow for autocomplete visibility ([\#10499](https://github.com/matrix-org/matrix-react-sdk/pull/10499)). Contributed by @alunturner. + * Added auto focus to Github URL on opening of debug logs modal ([\#10479](https://github.com/matrix-org/matrix-react-sdk/pull/10479)). Contributed by @ShivamSpm. + * Fix detection of encryption for all users in a room ([\#10487](https://github.com/matrix-org/matrix-react-sdk/pull/10487)). Fixes #24995. + * Properly generate mentions when editing a reply with MSC3952 ([\#10486](https://github.com/matrix-org/matrix-react-sdk/pull/10486)). Fixes #24924. Contributed by @kerryarchibald. + * Improve performance of rendering a room with many hidden events ([\#10131](https://github.com/matrix-org/matrix-react-sdk/pull/10131)). Contributed by @andybalaam. + * Prevent future date selection in jump to date ([\#10419](https://github.com/matrix-org/matrix-react-sdk/pull/10419)). Fixes #20800. Contributed by @MadLittleMods. + * Add aria labels to message search bar to improve accessibility ([\#10476](https://github.com/matrix-org/matrix-react-sdk/pull/10476)). Fixes #24921. + * Fix decryption failure bar covering the timeline ([\#10360](https://github.com/matrix-org/matrix-react-sdk/pull/10360)). Fixes #24780 #24074 and #24183. Contributed by @luixxiul. + * Improve profile picture settings accessibility ([\#10470](https://github.com/matrix-org/matrix-react-sdk/pull/10470)). Fixes #24919. + * Handle group call redaction ([\#10465](https://github.com/matrix-org/matrix-react-sdk/pull/10465)). + * Display relative timestamp for threads on the same calendar day ([\#10399](https://github.com/matrix-org/matrix-react-sdk/pull/10399)). Fixes #24841. Contributed by @kerryarchibald. + * Fix timeline list and paragraph display issues ([\#10424](https://github.com/matrix-org/matrix-react-sdk/pull/10424)). Fixes #24602. Contributed by @alunturner. + * Use unique keys for voice broadcast pips ([\#10457](https://github.com/matrix-org/matrix-react-sdk/pull/10457)). Fixes #24959. + * Fix "show read receipts sent by other users" not applying to threads ([\#10445](https://github.com/matrix-org/matrix-react-sdk/pull/10445)). Fixes #24910. + * Fix joining public rooms without aliases in search dialog ([\#10437](https://github.com/matrix-org/matrix-react-sdk/pull/10437)). Fixes #23937. + * Add input validation for `m.direct` in `DMRoomMap` ([\#10436](https://github.com/matrix-org/matrix-react-sdk/pull/10436)). Fixes #24909. + * Reduce height reserved for "collapse" button's line on IRC layout ([\#10211](https://github.com/matrix-org/matrix-react-sdk/pull/10211)). Fixes #24605. Contributed by @luixxiul. + * Fix `creatorUserId is required` error when opening sticker picker ([\#10423](https://github.com/matrix-org/matrix-react-sdk/pull/10423)). + * Fix block/inline Element descendants error noise in `NewRoomIntro.tsx` ([\#10412](https://github.com/matrix-org/matrix-react-sdk/pull/10412)). Contributed by @MadLittleMods. + * Fix profile resizer to make first character of a line selectable in IRC layout ([\#10396](https://github.com/matrix-org/matrix-react-sdk/pull/10396)). Fixes #14764. Contributed by @luixxiul. + * Ensure space between wrapped lines of room name on IRC layout ([\#10188](https://github.com/matrix-org/matrix-react-sdk/pull/10188)). Fixes #24742. Contributed by @luixxiul. + * Remove unreadable alt attribute from the room status bar warning icon (nonsense to screenreaders) ([\#10402](https://github.com/matrix-org/matrix-react-sdk/pull/10402)). Contributed by @MadLittleMods. + * Fix big date separators when jump to date is enabled ([\#10404](https://github.com/matrix-org/matrix-react-sdk/pull/10404)). Fixes #22969. Contributed by @MadLittleMods. + * Fixes user authentication when registering via the module API ([\#10257](https://github.com/matrix-org/matrix-react-sdk/pull/10257)). Contributed by @maheichyk. + * Handle more edge cases in Space Hierarchy ([\#10280](https://github.com/matrix-org/matrix-react-sdk/pull/10280)). Contributed by @justjanne. + * Further improve performance with lots of hidden events ([\#10353](https://github.com/matrix-org/matrix-react-sdk/pull/10353)). Fixes #24480. Contributed by @andybalaam. + * Respect user cancelling upload flow by dismissing spinner ([\#10373](https://github.com/matrix-org/matrix-react-sdk/pull/10373)). Fixes #24667. + * When starting a DM, the end-to-end encryption status icon does now only appear if the DM can be encrypted ([\#10394](https://github.com/matrix-org/matrix-react-sdk/pull/10394)). Fixes #24397. + * Fix `[object Object]` in feedback metadata ([\#10390](https://github.com/matrix-org/matrix-react-sdk/pull/10390)). + * Fix pinned messages card saying nothing pinned while loading ([\#10385](https://github.com/matrix-org/matrix-react-sdk/pull/10385)). Fixes #24615. + * Fix import e2e key dialog staying disabled after paste ([\#10375](https://github.com/matrix-org/matrix-react-sdk/pull/10375)). Fixes #24818. + * Show all labs even if incompatible, with appropriate tooltip explaining requirements ([\#10369](https://github.com/matrix-org/matrix-react-sdk/pull/10369)). Fixes #24813. + * Fix UIFeature.Registration not applying to all paths ([\#10371](https://github.com/matrix-org/matrix-react-sdk/pull/10371)). Fixes #24814. + * Clicking on a user pill does now only open the profile in the right panel and no longer navigates to the home view. ([\#10359](https://github.com/matrix-org/matrix-react-sdk/pull/10359)). Fixes #24797. + * Fix start DM with pending third party invite ([\#10347](https://github.com/matrix-org/matrix-react-sdk/pull/10347)). Fixes #24781. + * Fix long display name overflowing reply tile on IRC layout ([\#10343](https://github.com/matrix-org/matrix-react-sdk/pull/10343)). Fixes #24738. Contributed by @luixxiul. + * Display redacted body on ThreadView in the same way as normal messages ([\#9016](https://github.com/matrix-org/matrix-react-sdk/pull/9016)). Fixes #24729. Contributed by @luixxiul. + * Handle more edge cases in ACL updates ([\#10279](https://github.com/matrix-org/matrix-react-sdk/pull/10279)). Contributed by @justjanne. + * Allow parsing png files to fail if thumbnailing is successful ([\#10308](https://github.com/matrix-org/matrix-react-sdk/pull/10308)). + Changes in [1.11.28](https://github.com/vector-im/element-web/releases/tag/v1.11.28) (2023-03-31) ================================================================================================= diff --git a/Dockerfile b/Dockerfile index 617618e9158..492142a555e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ # Builder -FROM --platform=$BUILDPLATFORM node:16-buster as builder +FROM --platform=$BUILDPLATFORM node:16-bullseye as builder # Support custom branches of the react-sdk and js-sdk. This also helps us build # images of element-web develop. @@ -23,7 +23,7 @@ RUN dos2unix /src/scripts/docker-package.sh && bash /src/scripts/docker-package. RUN cp /src/config.sample.json /src/webapp/config.json # App -FROM nginx:alpine +FROM nginx:alpine-slim COPY --from=builder /src/webapp /app diff --git a/README.md b/README.md index 3542a9e83e9..d7ec5b364b8 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,8 @@ Element has several tiers of support for different environments: - Supported - Definition: Issues **actively triaged**, regressions **block** the release - - Last 2 major versions of Chrome, Firefox, Safari, and Edge on desktop OSes + - Last 2 major versions of Chrome, Firefox, and Edge on desktop OSes + - Last 2 versions of Safari - Latest release of official Element Desktop app on desktop OSes - Desktop OSes means macOS, Windows, and Linux versions for desktop devices that are actively supported by the OS vendor and receive security updates @@ -85,7 +86,7 @@ your web server configuration when hosting Element Web: - The `X-Frame-Options: SAMEORIGIN` header, to prevent Element Web from being framed and protect from [clickjacking][owasp-clickjacking]. -- The `frame-ancestors 'none'` directive to your `Content-Security-Policy` +- The `frame-ancestors 'self'` directive to your `Content-Security-Policy` header, as the modern replacement for `X-Frame-Options` (though both should be included since not all browsers support it yet, see [this][owasp-clickjacking-csp]). @@ -113,7 +114,7 @@ For Apache, the configuration looks like: Header set X-Frame-Options SAMEORIGIN Header set X-Content-Type-Options nosniff Header set X-XSS-Protection "1; mode=block" -Header set Content-Security-Policy "frame-ancestors 'none'" +Header set Content-Security-Policy "frame-ancestors 'self'" ``` Note: In case you are already setting a `Content-Security-Policy` header diff --git a/code_style.md b/code_style.md index 144621a4290..f2f7e54cefd 100644 --- a/code_style.md +++ b/code_style.md @@ -59,20 +59,21 @@ Unless otherwise specified, the following applies to all code: 6. Lines are trimmed of all excess whitespace, including blank lines. 7. Long lines are broken up for readability. -## TypeScript / JavaScript {#typescript-javascript} +## TypeScript / JavaScript 1. Write TypeScript. Turn JavaScript into TypeScript when working in the area. -2. Use named exports. -3. Use semicolons for block/line termination. +2. Use [TSDoc](https://tsdoc.org/) to document your code. See [Comments](#comments) below. +3. Use named exports. +4. Use semicolons for block/line termination. 1. Except when defining interfaces, classes, and non-arrow functions specifically. -4. When a statement's body is a single line, it must be written without curly braces, so long as the body is placed on +5. When a statement's body is a single line, it must be written without curly braces, so long as the body is placed on the same line as the statement. ```typescript if (x) doThing(); ``` -5. Blocks for `if`, `for`, `switch` and so on must have a space surrounding the condition, but not +6. Blocks for `if`, `for`, `switch` and so on must have a space surrounding the condition, but not within the condition. ```typescript @@ -81,17 +82,17 @@ Unless otherwise specified, the following applies to all code: } ``` -6. lowerCamelCase is used for function and variable naming. -7. UpperCamelCase is used for general naming. -8. Interface names should not be marked with an uppercase `I`. -9. One variable declaration per line. -10. If a variable is not receiving a value on declaration, its type must be defined. +7. lowerCamelCase is used for function and variable naming. +8. UpperCamelCase is used for general naming. +9. Interface names should not be marked with an uppercase `I`. +10. One variable declaration per line. +11. If a variable is not receiving a value on declaration, its type must be defined. ```typescript let errorMessage: Optional; ``` -11. Objects can use shorthand declarations, including mixing of types. +12. Objects can use shorthand declarations, including mixing of types. ```typescript { @@ -102,7 +103,7 @@ Unless otherwise specified, the following applies to all code: { room, prop: this.prop } ``` -12. Object keys should always be non-strings when possible. +13. Object keys should always be non-strings when possible. ```typescript { @@ -112,23 +113,28 @@ Unless otherwise specified, the following applies to all code: } ``` -13. Explicitly cast to a boolean. +14. Explicitly cast to a boolean, rather than relying on implicit truthiness of non-boolean values: ```typescript - !!stringVar || Boolean(stringVar); + const isRealUser = !!userId && ...; + // ... or ... + const isRealUser = Boolean(userId) && ...; + + // but *not*: + const isRealUser = userId && ...; // invalid implicit cast ``` -14. Use `switch` statements when checking against more than a few enum-like values. -15. Use `const` for constants, `let` for mutability. -16. Describe types exhaustively (ensure noImplictAny would pass). +15. Use `switch` statements when checking against more than a few enum-like values. +16. Use `const` for constants, `let` for mutability. +17. Describe types exhaustively (ensure noImplictAny would pass). 1. Notable exceptions are arrow functions used as parameters, when a void return type is obvious, and when declaring and assigning a variable in the same line. -17. Declare member visibility (public/private/protected). -18. Private members are private and not prefixed unless required for naming conflicts. +18. Declare member visibility (public/private/protected). +19. Private members are private and not prefixed unless required for naming conflicts. 1. Convention is to use an underscore or the word "internal" to denote conflicted member names. 2. "Conflicted" typically refers to a getter which wants the same name as the underlying variable. -19. Prefer readonly members over getters backed by a variable, unless an internal setter is required. -20. Prefer Interfaces for object definitions, and types for parameter-value-only declarations. +20. Prefer readonly members over getters backed by a variable, unless an internal setter is required. +21. Prefer Interfaces for object definitions, and types for parameter-value-only declarations. 1. Note that an explicit type is optional if not expected to be used outside of the function call, unlike in this example: @@ -145,9 +151,9 @@ Unless otherwise specified, the following applies to all code: } ``` -21. Variables/properties which are `public static` should also be `readonly` when possible. -22. Interface and type properties are terminated with semicolons, not commas. -23. Prefer arrow formatting when declaring functions for interfaces/types: +22. Variables/properties which are `public static` should also be `readonly` when possible. +23. Interface and type properties are terminated with semicolons, not commas. +24. Prefer arrow formatting when declaring functions for interfaces/types: ```typescript interface Test { @@ -155,13 +161,13 @@ Unless otherwise specified, the following applies to all code: } ``` -24. Prefer a type definition over an inline type. For example, define an interface. -25. Always prefer to add types or declare a type over the use of `any`. Prefer inferred types +25. Prefer a type definition over an inline type. For example, define an interface. +26. Always prefer to add types or declare a type over the use of `any`. Prefer inferred types when they are not `any`. 1. When using `any`, a comment explaining why must be present. -26. `import` should be used instead of `require`, as `require` does not have types. -27. Export only what can be reused. -28. Prefer a type like `Optional` (`type Optional = T | null | undefined`) instead +27. `import` should be used instead of `require`, as `require` does not have types. +28. Export only what can be reused. +29. Prefer a type like `Optional` (`type Optional = T | null | undefined`) instead of truly optional parameters. 1. A notable exception is when the likelihood of a bug is minimal, such as when a function @@ -179,12 +185,12 @@ Unless otherwise specified, the following applies to all code: } ``` -29. There should be approximately one interface, class, or enum per file unless the file is named +30. There should be approximately one interface, class, or enum per file unless the file is named "types.ts", "global.d.ts", or ends with "-types.ts". 1. The file name should match the interface, class, or enum name. -30. Bulk functions can be declared in a single file, though named as "foo-utils.ts" or "utils/foo.ts". -31. Imports are grouped by external module imports first, then by internal imports. -32. File ordering is not strict, but should generally follow this sequence: +31. Bulk functions can be declared in a single file, though named as "foo-utils.ts" or "utils/foo.ts". +32. Imports are grouped by external module imports first, then by internal imports. +33. File ordering is not strict, but should generally follow this sequence: 1. Licence header 2. Imports 3. Constants @@ -199,16 +205,16 @@ Unless otherwise specified, the following applies to all code: 5. Protected and abstract functions 6. Public/private functions 7. Public/protected/private static functions -33. Variable names should be noticeably unique from their types. For example, "str: string" instead +34. Variable names should be noticeably unique from their types. For example, "str: string" instead of "string: string". -34. Use double quotes to enclose strings. You may use single quotes if the string contains double quotes. +35. Use double quotes to enclose strings. You may use single quotes if the string contains double quotes. ```typescript const example1 = "simple string"; const example2 = 'string containing "double quotes"'; ``` -35. Prefer async-await to promise-chaining +36. Prefer async-await to promise-chaining ```typescript async function () { @@ -255,7 +261,7 @@ Inheriting all the rules of TypeScript, the following additionally apply: if at all possible. 11. A component should only use CSS class names in line with the component name. - 1. When knowingly using a class name from another component, document it. + 1. When knowingly using a class name from another component, document it with a [comment](#comments). 12. Curly braces within JSX should be padded with a space, however properties on those components should not. See above code example. @@ -304,7 +310,7 @@ Note: We use PostCSS + some plugins to process our styles. It looks like SCSS, b 7. Non-shared variables should use $lowerCamelCase. Shared variables use $dashed-naming. 8. Overrides to Z indexes, adjustments of dimensions/padding with pixels, and so on should all be - documented for what the values mean: + [documented](#comments) for what the values mean: ```scss .mx_MyFoo { @@ -314,7 +320,7 @@ Note: We use PostCSS + some plugins to process our styles. It looks like SCSS, b } ``` -9. Avoid the use of `!important`. If necessary, add a comment. +9. Avoid the use of `!important`. If `!important` is necessary, add a [comment](#comments) explaining why. ## Tests @@ -358,3 +364,38 @@ Note: We use PostCSS + some plugins to process our styles. It looks like SCSS, b }); }); ``` + +## Comments + +1. As a general principle: be liberal with comments. This applies to all files: stylesheets as well as + JavaScript/TypeScript. + + Good comments not only help future readers understand and maintain the code; they can also encourage good design + by clearly setting out how different parts of the codebase interact where that would otherwise be implicit and + subject to interpretation. + +2. Aim to document all types, methods, class properties, functions, etc, with [TSDoc](https://tsdoc.org/) doc comments. + This is _especially_ important for public interfaces in `matrix-js-sdk`, but is good practice in general. + + Even very simple interfaces can often benefit from a doc-comment, both as a matter of consistency, and because simple + interfaces have a habit of becoming more complex over time. + +3. React components should be documented in the same way as other classes or functions. The documentation should give + a brief description of how the component should be used, and, especially for more complex components, each of its + properties should be clearly documented. + +4. Inside a function, there is no need to comment every line, but consider: + + - before a particular multiline section of code within the function, give an overview of what it does, + to make it easier for a reader to follow the flow through the function as a whole. + - if it is anything less than obvious, explain _why_ we are doing a particular operation, with particular emphasis + on how this function interacts with other parts of the codebase. + +5. When making changes to existing code, authors are expected to read existing comments and make any necessary changes + to ensure they remain accurate. + +6. Reviewers are encouraged to consider whether more comments would be useful, and to ask the author to add them. + + It is natural for an author to feel that the code they have just written is "obvious" and that comments would be + redundant, whereas in reality it would take some time for reader unfamiliar with the code to understand it. A + reviewer is well-placed to make a more objective judgement. diff --git a/package.json b/package.json index a6b81a898be..e81f52350cc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "element-web", "productName": "Tchap", - "version": "4.3.1-1.11.28", + "version": "4.3.1-1.11.29", "description": "A feature-rich client for Matrix.org", "author": "DINUM", "repository": { @@ -30,6 +30,9 @@ "scripts_comments": { "build:jitsi": "tchap don't need that, deactivate?" }, + "matrix_i18n_extra_translation_funcs": [ + "UserFriendlyError" + ], "scripts": { "i18n": "matrix-gen-i18n", "prunei18n": "matrix-prune-i18n", @@ -78,9 +81,9 @@ "gfm.css": "^1.1.2", "jsrsasign": "^10.5.25", "katex": "^0.16.0", - "matrix-js-sdk": "24.0.0", - "matrix-react-sdk": "3.69.1", - "matrix-widget-api": "^1.1.1", + "matrix-js-sdk": "24.1.0", + "matrix-react-sdk": "3.70.0", + "matrix-widget-api": "^1.3.1", "prop-types": "^15.7.2", "react": "17.0.2", "react-dom": "17.0.2", @@ -122,7 +125,6 @@ "@sentry/webpack-plugin": "^1.18.1", "@svgr/webpack": "^5.5.0", "@testing-library/react": "^12.1.5", - "@types/flux": "^3.1.9", "@types/jest": "^29.0.0", "@types/jsrsasign": "^10.5.4", "@types/modernizr": "^3.5.3", @@ -157,7 +159,7 @@ "eslint-plugin-matrix-org": "^1.0.0", "eslint-plugin-react": "^7.28.0", "eslint-plugin-react-hooks": "^4.3.0", - "eslint-plugin-unicorn": "^45.0.0", + "eslint-plugin-unicorn": "^46.0.0", "extract-text-webpack-plugin": "^4.0.0-beta.0", "fake-indexeddb": "^4.0.0", "fetch-mock-jest": "^1.5.1", @@ -173,7 +175,7 @@ "json-loader": "^0.5.7", "loader-utils": "^3.0.0", "matrix-mock-request": "^2.5.0", - "matrix-web-i18n": "^1.3.0", + "matrix-web-i18n": "^1.4.0", "mini-css-extract-plugin": "^1", "minimist": "^1.2.6", "mkdirp": "^2.0.0", @@ -201,7 +203,6 @@ "string-replace-loader": "3", "style-loader": "2", "stylelint": "^15.0.0", - "stylelint-config-prettier": "^9.0.4", "stylelint-config-standard": "^30.0.0", "stylelint-scss": "^4.2.0", "terser-webpack-plugin": "^4.0.0", diff --git a/patches/README.md b/patches/README.md index 3db27dc4621..4d35725eeb3 100644 --- a/patches/README.md +++ b/patches/README.md @@ -8,6 +8,37 @@ Wwhen you have made edits to the files, recreate the patch by running again : `y Note : if you are making a patch while your local env has yarn links, patch-package will take longer time to run "Diffing your files with clean files". But it does work. +## Merge patches when upgrading element. + +First run the merge command, it takes long if you have multiple patches + +``` +bash ./scripts/merge-patches.sh merge +``` + +If some patches are in conflict, a folder is created in patches_temp/ + +To see the conflicted files run : + +``` +bash ./scripts/merge-patches.sh continue /tchap-web-v4/patches_temp/PATCH_NAME +``` + +Fix the conlicts inside the /tchap-web-v4/patches_temp/PATCH_NAME/node_modules/.... + +After the conflict is solved, run again +bash ./scripts/merge-patches.sh continue /tchap-web-v4/patches_temp/PATCH_NAME + +A notice should be in the log that a new patch has been created in folder : absolute_path>/tchap-web-v4/patches/ + +Compare the old patch and the new patch, if it looks ok to you then delete manually the old patch + +NB : merge command can be used with only one patch also + +``` +bash ./scripts/merge-patches.sh merge /tchap-web-v4/patches/PATCH_NAME/PATCH_FILE.patch +``` + ## How to deal with patch conflicts Patch files are generated by machines, and should not be edited by humans, it will cause errors. diff --git a/patches/activate-cross-signing-and-secure-storage-js/matrix-js-sdk+24.0.0.patch b/patches/activate-cross-signing-and-secure-storage-js/matrix-js-sdk+24.1.0.patch similarity index 85% rename from patches/activate-cross-signing-and-secure-storage-js/matrix-js-sdk+24.0.0.patch rename to patches/activate-cross-signing-and-secure-storage-js/matrix-js-sdk+24.1.0.patch index 4aa806fe46d..b664cffb8aa 100644 --- a/patches/activate-cross-signing-and-secure-storage-js/matrix-js-sdk+24.0.0.patch +++ b/patches/activate-cross-signing-and-secure-storage-js/matrix-js-sdk+24.1.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-js-sdk/src/client.ts b/node_modules/matrix-js-sdk/src/client.ts -index 708abd3..369d221 100644 +index 0e47ff6..a4883e6 100644 --- a/node_modules/matrix-js-sdk/src/client.ts +++ b/node_modules/matrix-js-sdk/src/client.ts @@ -20,6 +20,7 @@ limitations under the License. @@ -10,9 +10,9 @@ index 708abd3..369d221 100644 import type { IDeviceKeys, IMegolmSessionData, IOneTimeKey } from "./@types/crypto"; import { ISyncStateData, SyncApi, SyncApiOptions, SyncState } from "./sync"; import { -@@ -208,6 +209,9 @@ import { CryptoBackend } from "./common-crypto/CryptoBackend"; - import { RUST_SDK_STORE_PREFIX } from "./rust-crypto/constants"; +@@ -209,6 +210,9 @@ import { CryptoApi } from "./crypto-api"; import { DeviceInfoMap } from "./crypto/DeviceList"; + import { SecretStorageKeyDescription } from "./secret-storage"; +import TchapUIFeature from '../../../src/util/TchapUIFeature'; // :TCHAP: + @@ -20,7 +20,7 @@ index 708abd3..369d221 100644 export type Store = IStore; export type ResetTimelineCallback = (roomId: string) => boolean; -@@ -7183,6 +7187,17 @@ export class MatrixClient extends TypedEventEmitter { +@@ -1586,6 +1589,23 @@ export default class MatrixChat extends React.PureComponent { cli.on(HttpApiEvent.SessionLoggedOut, () => dft.stop()); cli.on(MatrixEventEvent.Decrypted, (e, err) => dft.eventDecrypted(e, err as DecryptionError)); @@ -43,7 +43,7 @@ index 00a05b1..af9a5b6 100644 cli.on(ClientEvent.Room, (room) => { if (MatrixClientPeg.get().isCryptoEnabled()) { const blacklistEnabled = SettingsStore.getValueAt( -@@ -1710,6 +1730,15 @@ export default class MatrixChat extends React.PureComponent { +@@ -1715,6 +1735,15 @@ export default class MatrixChat extends React.PureComponent { return; } diff --git a/patches/activate-expired-account-panel/matrix-js-sdk+24.0.0.patch b/patches/activate-expired-account-panel/matrix-js-sdk+24.1.0.patch similarity index 99% rename from patches/activate-expired-account-panel/matrix-js-sdk+24.0.0.patch rename to patches/activate-expired-account-panel/matrix-js-sdk+24.1.0.patch index 14aa393d7f0..ade835ef362 100644 --- a/patches/activate-expired-account-panel/matrix-js-sdk+24.0.0.patch +++ b/patches/activate-expired-account-panel/matrix-js-sdk+24.1.0.patch @@ -41,7 +41,7 @@ index 9946aa3..8cf51ed 100644 export interface UploadProgress { diff --git a/node_modules/matrix-js-sdk/src/sync.ts b/node_modules/matrix-js-sdk/src/sync.ts -index 3fa3616..72cc65e 100644 +index dc5217c..58c7ffc 100644 --- a/node_modules/matrix-js-sdk/src/sync.ts +++ b/node_modules/matrix-js-sdk/src/sync.ts @@ -610,6 +610,14 @@ export class SyncApi { diff --git a/patches/add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq/matrix-react-sdk+3.69.1.patch b/patches/add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq/matrix-react-sdk+3.70.0.patch similarity index 88% rename from patches/add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq/matrix-react-sdk+3.69.1.patch rename to patches/add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq/matrix-react-sdk+3.70.0.patch index f3d9ad7cf66..07daa6e54f6 100644 --- a/patches/add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq/matrix-react-sdk+3.69.1.patch +++ b/patches/add-a-help-tab-in-menu-to-redirect-to-external-tchap-faq/matrix-react-sdk+3.70.0.patch @@ -14,10 +14,10 @@ index 9c9e1ce..6fe1939 100644 mask-image: url("$(res)/img/element-icons/feedback.svg"); } diff --git a/node_modules/matrix-react-sdk/src/components/structures/UserMenu.tsx b/node_modules/matrix-react-sdk/src/components/structures/UserMenu.tsx -index ec6477a..4d94484 100644 +index 0f9569d..0b6290e 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/UserMenu.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/UserMenu.tsx -@@ -244,6 +244,10 @@ export default class UserMenu extends React.Component { +@@ -245,6 +245,10 @@ export default class UserMenu extends React.Component { this.setState({ contextMenuPosition: null }); // also close the menu }; @@ -28,8 +28,8 @@ index ec6477a..4d94484 100644 private onProvideFeedback = (ev: ButtonEvent): void => { ev.preventDefault(); ev.stopPropagation(); -@@ -359,6 +363,11 @@ export default class UserMenu extends React.Component { - onClick={(e) => this.onSettingsOpen(e, null)} +@@ -362,6 +366,11 @@ export default class UserMenu extends React.Component { + onClick={(e) => this.onSettingsOpen(e)} /> {feedbackButton} + void; -@@ -88,12 +89,21 @@ export default class BugReportDialog extends React.Component { +@@ -96,12 +97,21 @@ export default class BugReportDialog extends React.Component { }; private onSubmit = (): void => { @@ -32,7 +32,7 @@ index 4074db6..dc057bc 100644 const userText = (this.state.text.length > 0 ? this.state.text + "\n\n" : "") + -@@ -103,11 +113,24 @@ export default class BugReportDialog extends React.Component { +@@ -111,11 +121,24 @@ export default class BugReportDialog extends React.Component { this.setState({ busy: true, progress: null, err: null }); this.sendProgressCallback(_t("Preparing to send logs")); @@ -62,7 +62,7 @@ index 4074db6..dc057bc 100644 }).then( () => { if (!this.unmounted) { -@@ -142,6 +165,7 @@ export default class BugReportDialog extends React.Component { +@@ -150,6 +173,7 @@ export default class BugReportDialog extends React.Component { sendLogs: true, progressCallback: this.downloadProgressCallback, labels: this.props.label ? [this.props.label] : [], @@ -70,7 +70,7 @@ index 4074db6..dc057bc 100644 }); this.setState({ -@@ -209,7 +233,7 @@ export default class BugReportDialog extends React.Component { +@@ -217,7 +241,7 @@ export default class BugReportDialog extends React.Component {
-@@ -222,6 +246,7 @@ export default class BugReportDialog extends React.Component { +@@ -230,6 +254,7 @@ export default class BugReportDialog extends React.Component { "and the usernames of other users. They do not contain messages.", )}

@@ -87,7 +87,7 @@ index 4074db6..dc057bc 100644

{_t( -@@ -231,7 +256,9 @@ export default class BugReportDialog extends React.Component { +@@ -239,7 +264,9 @@ export default class BugReportDialog extends React.Component { a: (sub) => ( {sub} -@@ -240,22 +267,28 @@ export default class BugReportDialog extends React.Component { +@@ -248,23 +275,28 @@ export default class BugReportDialog extends React.Component { )}

@@ -121,6 +121,7 @@ index 4074db6..dc057bc 100644 onChange={this.onIssueUrlChange} value={this.state.issueUrl} - placeholder="https://github.com/vector-im/element-web/issues/..." +- ref={this.issueRef} - /> + // :TCHAP: placeholder="https://github.com/vector-im/element-web/issues/..." + placeholder="https://github.com/tchapgouv/tchap-web-v4/issues/..." @@ -129,7 +130,7 @@ index 4074db6..dc057bc 100644 { +@@ -281,14 +313,29 @@ export default class BugReportDialog extends React.Component { /> {progress} {error} @@ -167,7 +168,7 @@ index 4074db6..dc057bc 100644 ); } diff --git a/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts b/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts -index dce8799..d34353d 100644 +index f1926b6..5fa6920 100644 --- a/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts +++ b/node_modules/matrix-react-sdk/src/rageshake/submit-rageshake.ts @@ -295,12 +295,13 @@ export async function submitFeedback( @@ -183,12 +184,12 @@ index dce8799..d34353d 100644 - body.append("app", "element-web"); + body.append("app", "tchap-web"); body.append("version", version || "UNKNOWN"); - body.append("platform", PlatformPeg.get().getHumanReadableName()); - body.append("user_id", MatrixClientPeg.get()?.getUserId()); -@@ -309,6 +310,15 @@ export async function submitFeedback( - body.append(k, JSON.stringify(extraData[k])); + body.append("platform", PlatformPeg.get()?.getHumanReadableName() ?? "n/a"); + body.append("user_id", MatrixClientPeg.get()?.getUserId() ?? "n/a"); +@@ -310,6 +311,13 @@ export async function submitFeedback( } + const bugReportEndpointUrl = SdkConfig.get().bug_report_endpoint_url; + //:tchap: add email in body + const client = MatrixClientPeg.get(); + const result = await client.getThreePids();//it generates a API calls which is acceptable because feedbacks submit are not so frequent (unfortunately) @@ -196,8 +197,6 @@ index dce8799..d34353d 100644 + body.append(threepid.medium, threepid.address); + }); + //:tchap: end -+ -+ - await submitReport(SdkConfig.get().bug_report_endpoint_url, body, () => {}); - } + if (bugReportEndpointUrl) { + await submitReport(bugReportEndpointUrl, body, () => {}); diff --git a/patches/better-help-settings/matrix-react-sdk+3.69.1.patch b/patches/better-help-settings/matrix-react-sdk+3.70.0.patch similarity index 99% rename from patches/better-help-settings/matrix-react-sdk+3.69.1.patch rename to patches/better-help-settings/matrix-react-sdk+3.70.0.patch index 8d8ba1c2245..ae515468260 100644 --- a/patches/better-help-settings/matrix-react-sdk+3.69.1.patch +++ b/patches/better-help-settings/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/elements/AccessibleButton.tsx b/node_modules/matrix-react-sdk/src/components/views/elements/AccessibleButton.tsx -index 4bceab5..b7dad05 100644 +index 10f18f1..8d18769 100644 --- a/node_modules/matrix-react-sdk/src/components/views/elements/AccessibleButton.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/elements/AccessibleButton.tsx @@ -75,7 +75,7 @@ type IProps = DynamicHtmlElementProps diff --git a/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.69.1.patch b/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.70.0.patch similarity index 99% rename from patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.69.1.patch rename to patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.70.0.patch index e6f4f4f04d3..279c4c58bdf 100644 --- a/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.69.1.patch +++ b/patches/change-sections-order-in-security-privacy-settings/matrix-react-sdk+3.70.0.patch @@ -52,7 +52,7 @@ index 34b52e4..8085f20 100644
); diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx -index 9697af8..00fcc04 100644 +index 9697af8..efc52f7 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/SecurityUserSettingsTab.tsx @@ -287,7 +287,7 @@ export default class SecurityUserSettingsTab extends React.Component ); } else { -@@ -744,18 +776,24 @@ export default class CreateSecretStorageDialog extends React.PureComponent @@ -91,13 +91,7 @@ index 3e48739..07207de 100644

{_t( "Store your Security Key somewhere safe, like a password manager or a safe, " + - "as it's used to safeguard your encrypted data.", - )} -

-+ -
-
-
+@@ -756,6 +792,7 @@ export default class CreateSecretStorageDialog extends React.PureComponent{this.recoveryKey.encodedPrivateKey}
@@ -105,7 +99,7 @@ index 3e48739..07207de 100644 @@ -155,7 +149,7 @@ index 3171a0e..8751e6b 100644 aria-label={_t("Skip verification for now")} /> diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx -index fe8a24a..f216efe 100644 +index 2cbfbf8..efe6b26 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/SetupEncryptionBody.tsx @@ -28,6 +28,10 @@ import { SetupEncryptionStore, Phase } from "../../../stores/SetupEncryptionStor @@ -183,7 +177,7 @@ index fe8a24a..f216efe 100644 private onUsePassphraseClick = async (): Promise => { const store = SetupEncryptionStore.sharedInstance(); store.usePassPhrase(); -@@ -159,17 +170,28 @@ export default class SetupEncryptionBody extends React.Component +@@ -160,17 +171,27 @@ export default class SetupEncryptionBody extends React.Component return (

@@ -194,10 +188,9 @@ index fe8a24a..f216efe 100644 "In order to verify your identity on this device, you'll need to reset " + "your verification keys.", )} -+ :tchap: end ++ :tchap: end + */} + -+ + {_t( + "

The Tchap team is working on the deployment of a new feature to "+ + "prevent encryption key loss.

"+ @@ -214,30 +207,33 @@ index fe8a24a..f216efe 100644
diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/DecryptionFailureBar.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/DecryptionFailureBar.tsx -index 7849f63..b393746 100644 +index 94cf02d..56447d7 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/DecryptionFailureBar.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/DecryptionFailureBar.tsx -@@ -180,27 +180,37 @@ export const DecryptionFailureBar: React.FC = ({ failures }) => { +@@ -193,6 +193,7 @@ export const DecryptionFailureBar: React.FC = ({ failures }) => { )} ); + /* :tchap: replace reset button by open-security button button = ( - + = ({ failures }) => { {_t("Reset")} ); -+ */ ++ */ + button = ( + + {_t("Security & Privacy")} + + ); -+ /* :tchap: end */ ++ /* :tchap: end */ } } else if (hasOtherVerifiedDevices) { + className = "mx_DecryptionFailureBar mx_DecryptionFailureBar--withEnd"; headline = {_t("Open another device to load encrypted messages")}; -- body = ( +- message = ( - - {_t( - "This device is requesting decryption keys from your other devices. " + @@ -246,12 +242,17 @@ index 7849f63..b393746 100644 - - ); - button = ( -- +- - {_t("View your device list")} - - ); + // :TCHAP: shrink long banner -+ // body = ( ++ // message = ( + // + // {_t( + // "This device is requesting decryption keys from your other devices. " + @@ -260,14 +261,19 @@ index 7849f63..b393746 100644 + // + // ); + // button = ( -+ // ++ // + // {_t("View your device list")} + // + // ); + // end :TCHAP: } else { + className = "mx_DecryptionFailureBar"; headline = {_t("Some messages could not be decrypted")}; - body = ( diff --git a/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts b/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts index 3b60705..aeeaee0 100644 --- a/node_modules/matrix-react-sdk/src/toasts/SetupEncryptionToast.ts diff --git a/patches/disable-access-options/matrix-react-sdk+3.69.1.patch b/patches/disable-access-options/matrix-react-sdk+3.70.0.patch similarity index 100% rename from patches/disable-access-options/matrix-react-sdk+3.69.1.patch rename to patches/disable-access-options/matrix-react-sdk+3.70.0.patch diff --git a/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.69.1.patch b/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.70.0.patch similarity index 97% rename from patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.69.1.patch rename to patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.70.0.patch index f342790d726..2c09b8cb088 100644 --- a/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.69.1.patch +++ b/patches/fix-inviting-a-person-already-present-in-the-room/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts b/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts -index 2ea1a73..a9afd33 100644 +index 45de0e2..956e977 100644 --- a/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts +++ b/node_modules/matrix-react-sdk/src/utils/MultiInviter.ts @@ -212,6 +212,14 @@ export default class MultiInviter { diff --git a/patches/forgot-password/matrix-react-sdk+3.69.1.patch b/patches/forgot-password/matrix-react-sdk+3.70.0.patch similarity index 99% rename from patches/forgot-password/matrix-react-sdk+3.69.1.patch rename to patches/forgot-password/matrix-react-sdk+3.70.0.patch index 249567dba95..3a8a311ee1f 100644 --- a/patches/forgot-password/matrix-react-sdk+3.69.1.patch +++ b/patches/forgot-password/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx -index d7a5195..0be2fd9 100644 +index c4c0834..27e9f28 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/ForgotPassword.tsx @@ -43,6 +43,7 @@ import { VerifyEmailModal } from "./forgot-password/VerifyEmailModal"; diff --git a/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.69.1.patch b/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.70.0.patch similarity index 98% rename from patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.69.1.patch rename to patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.70.0.patch index a00456ca5f7..0f45fbe3e1b 100644 --- a/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.69.1.patch +++ b/patches/hide-discovery-email-phone-settings/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx -index a1c6e60..780f911 100644 +index dc3bf9f..52f191b 100644 --- a/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/settings/tabs/user/GeneralUserSettingsTab.tsx @@ -54,6 +54,7 @@ import SetIdServer from "../../SetIdServer"; diff --git a/patches/hide-location-if-no-map-server/matrix-react-sdk+3.69.1.patch b/patches/hide-location-if-no-map-server/matrix-react-sdk+3.70.0.patch similarity index 94% rename from patches/hide-location-if-no-map-server/matrix-react-sdk+3.69.1.patch rename to patches/hide-location-if-no-map-server/matrix-react-sdk+3.70.0.patch index 3bba4fb0f37..41763f67a9d 100644 --- a/patches/hide-location-if-no-map-server/matrix-react-sdk+3.69.1.patch +++ b/patches/hide-location-if-no-map-server/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/MessageComposer.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/MessageComposer.tsx -index 86e0256..89b1b36 100644 +index 2e4be00..8be4526 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/MessageComposer.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/MessageComposer.tsx @@ -60,6 +60,7 @@ import { setUpVoiceBroadcastPreRecording } from "../../../voice-broadcast/utils/ @@ -10,7 +10,7 @@ index 86e0256..89b1b36 100644 let instanceCount = 0; -@@ -611,7 +612,7 @@ export class MessageComposer extends React.Component { +@@ -613,7 +614,7 @@ export class MessageComposer extends React.Component { relation={this.props.relation} onRecordStartEndClick={this.onRecordStartEndClick} setStickerPickerOpen={this.setStickerPickerOpen} diff --git a/patches/hide-room-alias-settings/matrix-react-sdk+3.69.1.patch b/patches/hide-room-alias-settings/matrix-react-sdk+3.70.0.patch similarity index 100% rename from patches/hide-room-alias-settings/matrix-react-sdk+3.69.1.patch rename to patches/hide-room-alias-settings/matrix-react-sdk+3.70.0.patch diff --git a/patches/in-invite-dialog-add-text-indicating-that-we-can-invite-multiple-people/matrix-react-sdk+3.69.1.patch b/patches/in-invite-dialog-add-text-indicating-that-we-can-invite-multiple-people/matrix-react-sdk+3.70.0.patch similarity index 100% rename from patches/in-invite-dialog-add-text-indicating-that-we-can-invite-multiple-people/matrix-react-sdk+3.69.1.patch rename to patches/in-invite-dialog-add-text-indicating-that-we-can-invite-multiple-people/matrix-react-sdk+3.70.0.patch diff --git a/patches/login/matrix-react-sdk+3.69.1.patch b/patches/login/matrix-react-sdk+3.70.0.patch similarity index 93% rename from patches/login/matrix-react-sdk+3.69.1.patch rename to patches/login/matrix-react-sdk+3.70.0.patch index 5b125266b15..765a8585424 100644 --- a/patches/login/matrix-react-sdk+3.69.1.patch +++ b/patches/login/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/structures/auth/Login.tsx b/node_modules/matrix-react-sdk/src/components/structures/auth/Login.tsx -index 97f3866..318d08b 100644 +index 4314726..0a34f0e 100644 --- a/node_modules/matrix-react-sdk/src/components/structures/auth/Login.tsx +++ b/node_modules/matrix-react-sdk/src/components/structures/auth/Login.tsx @@ -40,6 +40,7 @@ import AuthHeader from "../../views/auth/AuthHeader"; @@ -10,7 +10,7 @@ index 97f3866..318d08b 100644 // These are used in several places, and come from the js-sdk's autodiscovery // stuff. We define them here so that they'll be picked up by i18n. -@@ -166,12 +167,22 @@ export default class LoginComponent extends React.PureComponent +@@ -167,12 +168,22 @@ export default class LoginComponent extends React.PureComponent public isBusy = (): boolean => !!this.state.busy || !!this.props.busy; @@ -33,7 +33,7 @@ index 97f3866..318d08b 100644 if (!this.state.serverIsAlive) { this.setState({ busy: true }); // Do a quick liveliness check on the URLs -@@ -197,6 +208,7 @@ export default class LoginComponent extends React.PureComponent +@@ -198,6 +209,7 @@ export default class LoginComponent extends React.PureComponent return; } } @@ -41,7 +41,7 @@ index 97f3866..318d08b 100644 this.setState({ busy: true, -@@ -205,6 +217,22 @@ export default class LoginComponent extends React.PureComponent +@@ -206,6 +218,22 @@ export default class LoginComponent extends React.PureComponent loginIncorrect: false, }); @@ -64,7 +64,7 @@ index 97f3866..318d08b 100644 this.loginLogic.loginViaPassword(username, phoneCountry, phoneNumber, password).then( (data) => { this.setState({ serverIsAlive: true }); // it must be, we logged in. -@@ -252,6 +280,10 @@ export default class LoginComponent extends React.PureComponent +@@ -253,6 +281,10 @@ export default class LoginComponent extends React.PureComponent } else { errorText = _t("Incorrect username and/or password."); } @@ -75,7 +75,7 @@ index 97f3866..318d08b 100644 } else { // other errors, not specific to doing a password login errorText = this.errorTextFromError(error); -@@ -628,10 +660,12 @@ export default class LoginComponent extends React.PureComponent +@@ -629,10 +661,12 @@ export default class LoginComponent extends React.PureComponent {errorTextSection} {serverDeadSection} diff --git a/patches/password-policy/matrix-react-sdk+3.69.1.patch b/patches/password-policy/matrix-react-sdk+3.70.0.patch similarity index 92% rename from patches/password-policy/matrix-react-sdk+3.69.1.patch rename to patches/password-policy/matrix-react-sdk+3.70.0.patch index b6cf4e5a727..5e5d7900942 100644 --- a/patches/password-policy/matrix-react-sdk+3.69.1.patch +++ b/patches/password-policy/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx b/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx -index 5175de6..9ed1fe0 100644 +index 1050e8f..2c9ef8a 100644 --- a/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/auth/PassphraseField.tsx @@ -22,6 +22,7 @@ import SdkConfig from "../../../SdkConfig"; @@ -8,7 +8,7 @@ index 5175de6..9ed1fe0 100644 import Field, { IInputProps } from "../elements/Field"; +import TchapStrongPassword from "../../../../../../src/util/TchapStrongPassword"; - interface IProps extends Omit { + interface IProps extends Omit { autoFocus?: boolean; @@ -95,7 +96,10 @@ class PassphraseField extends PureComponent { }); diff --git a/patches/public-room-server-list/matrix-react-sdk+3.69.1.patch b/patches/public-room-server-list/matrix-react-sdk+3.70.0.patch similarity index 98% rename from patches/public-room-server-list/matrix-react-sdk+3.69.1.patch rename to patches/public-room-server-list/matrix-react-sdk+3.70.0.patch index c5659d28c6c..242b8d3f3c4 100644 --- a/patches/public-room-server-list/matrix-react-sdk+3.69.1.patch +++ b/patches/public-room-server-list/matrix-react-sdk+3.70.0.patch @@ -26,7 +26,7 @@ index 8dbd7f0..0b9172c 100644 font-size: $font-15px; } diff --git a/node_modules/matrix-react-sdk/src/components/views/directory/NetworkDropdown.tsx b/node_modules/matrix-react-sdk/src/components/views/directory/NetworkDropdown.tsx -index b4f5b5b..03a9dfd 100644 +index c84bb4a..5391e15 100644 --- a/node_modules/matrix-react-sdk/src/components/views/directory/NetworkDropdown.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/directory/NetworkDropdown.tsx @@ -30,6 +30,7 @@ import { GenericDropdownMenu, GenericDropdownMenuItem } from "../../structures/G diff --git a/patches/registration-for-mainlining/matrix-react-sdk+3.69.1.patch b/patches/registration-for-mainlining/matrix-react-sdk+3.70.0.patch similarity index 100% rename from patches/registration-for-mainlining/matrix-react-sdk+3.69.1.patch rename to patches/registration-for-mainlining/matrix-react-sdk+3.70.0.patch diff --git a/patches/remove-thread-buttons/matrix-react-sdk+3.69.1.patch b/patches/remove-thread-buttons/matrix-react-sdk+3.70.0.patch similarity index 96% rename from patches/remove-thread-buttons/matrix-react-sdk+3.69.1.patch rename to patches/remove-thread-buttons/matrix-react-sdk+3.70.0.patch index 92e2112350e..a01a8c9a981 100644 --- a/patches/remove-thread-buttons/matrix-react-sdk+3.69.1.patch +++ b/patches/remove-thread-buttons/matrix-react-sdk+3.70.0.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx b/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx -index ad56409..f9591dc 100644 +index 3ffe63a..c317e33 100644 --- a/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/context_menus/MessageContextMenu.tsx -@@ -678,7 +678,9 @@ export default class MessageContextMenu extends React.Component +@@ -682,7 +682,9 @@ export default class MessageContextMenu extends React.Component {reactButton} {replyButton} @@ -13,7 +13,7 @@ index ad56409..f9591dc 100644 ); diff --git a/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx b/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx -index 1a7d773..4e8f18f 100644 +index 6ac1e74..d298798 100644 --- a/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/messages/MessageActionBar.tsx @@ -367,18 +367,21 @@ export default class MessageActionBar extends React.PureComponent { diff --git a/patches/room-avatars-default-colors/matrix-react-sdk+3.69.1.patch b/patches/room-avatars-default-colors/matrix-react-sdk+3.70.0.patch similarity index 100% rename from patches/room-avatars-default-colors/matrix-react-sdk+3.69.1.patch rename to patches/room-avatars-default-colors/matrix-react-sdk+3.70.0.patch diff --git a/patches/show-icon-on-public-room/matrix-react-sdk+3.69.1.patch b/patches/show-icon-on-public-room/matrix-react-sdk+3.70.0.patch similarity index 100% rename from patches/show-icon-on-public-room/matrix-react-sdk+3.69.1.patch rename to patches/show-icon-on-public-room/matrix-react-sdk+3.70.0.patch diff --git a/patches/simplify-exchange-key-message/matrix-react-sdk+3.69.1.patch b/patches/simplify-exchange-key-message/matrix-react-sdk+3.70.0.patch similarity index 96% rename from patches/simplify-exchange-key-message/matrix-react-sdk+3.69.1.patch rename to patches/simplify-exchange-key-message/matrix-react-sdk+3.70.0.patch index a26e259cd40..af1014091bd 100644 --- a/patches/simplify-exchange-key-message/matrix-react-sdk+3.69.1.patch +++ b/patches/simplify-exchange-key-message/matrix-react-sdk+3.70.0.patch @@ -1,5 +1,5 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/dialogs/IncomingSasDialog.tsx b/node_modules/matrix-react-sdk/src/components/views/dialogs/IncomingSasDialog.tsx -index 1edb3d9..0033741 100644 +index b0bb9cb..3b440e4 100644 --- a/node_modules/matrix-react-sdk/src/components/views/dialogs/IncomingSasDialog.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/dialogs/IncomingSasDialog.tsx @@ -179,6 +179,7 @@ export default class IncomingSasDialog extends React.Component { @@ -34,7 +34,7 @@ index 1edb3d9..0033741 100644 { +@@ -244,7 +257,10 @@ export default class IncomingSasDialog extends React.Component { return (
@@ -61,10 +61,10 @@ index 53ac14f..dd600f8 100644 return ( { +@@ -651,6 +651,7 @@ export default class Notifications extends React.PureComponent { return masterSwitch; } @@ -10,7 +10,7 @@ index 35c7fa3..efc9972 100644 const emailSwitches = (this.state.threepids || []) .filter((t) => t.medium === ThreepidMedium.Email) .map((e) => ( -@@ -684,6 +685,7 @@ export default class Notifications extends React.PureComponent { +@@ -663,6 +664,7 @@ export default class Notifications extends React.PureComponent { disabled={this.state.phase === Phase.Persisting} /> )); @@ -18,7 +18,7 @@ index 35c7fa3..efc9972 100644 return ( <> -@@ -723,7 +725,9 @@ export default class Notifications extends React.PureComponent { +@@ -702,7 +704,9 @@ export default class Notifications extends React.PureComponent { )} diff --git a/patches/use-the-term-people-not-direct-messages/matrix-react-sdk+3.69.1.patch b/patches/use-the-term-people-not-direct-messages/matrix-react-sdk+3.70.0.patch similarity index 94% rename from patches/use-the-term-people-not-direct-messages/matrix-react-sdk+3.69.1.patch rename to patches/use-the-term-people-not-direct-messages/matrix-react-sdk+3.70.0.patch index 8726ab41a80..b3af161ecb3 100644 --- a/patches/use-the-term-people-not-direct-messages/matrix-react-sdk+3.69.1.patch +++ b/patches/use-the-term-people-not-direct-messages/matrix-react-sdk+3.70.0.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/context_menus/RoomContextMenu.tsx b/node_modules/matrix-react-sdk/src/components/views/context_menus/RoomContextMenu.tsx -index 03914b3..04cdcd0 100644 +index 5c2b0c3..9e66542 100644 --- a/node_modules/matrix-react-sdk/src/components/views/context_menus/RoomContextMenu.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/context_menus/RoomContextMenu.tsx -@@ -222,7 +222,8 @@ const RoomContextMenu: React.FC = ({ room, onFinished, ...props }) => { +@@ -224,7 +224,8 @@ const RoomContextMenu: React.FC = ({ room, onFinished, ...props }) => { onFinished(); PosthogTrackers.trackInteraction("WebRoomHeaderContextMenuPeopleItem", ev); }} @@ -13,10 +13,10 @@ index 03914b3..04cdcd0 100644 > {room.getJoinedMemberCount()} diff --git a/node_modules/matrix-react-sdk/src/components/views/dialogs/SpacePreferencesDialog.tsx b/node_modules/matrix-react-sdk/src/components/views/dialogs/SpacePreferencesDialog.tsx -index a66d0aa..96d8a54 100644 +index 3042405..2123c91 100644 --- a/node_modules/matrix-react-sdk/src/components/views/dialogs/SpacePreferencesDialog.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/dialogs/SpacePreferencesDialog.tsx -@@ -52,7 +52,9 @@ const SpacePreferencesAppearanceTab: React.FC> = ({ space +@@ -53,7 +53,9 @@ const SpacePreferencesAppearanceTab: React.FC> = ({ space ); }} > @@ -28,10 +28,10 @@ index a66d0aa..96d8a54 100644

{_t( diff --git a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx -index 7e2bd9d..d7fbc74 100644 +index 98a3260..deed0b6 100644 --- a/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx -@@ -396,7 +396,7 @@ const TAG_AESTHETICS: TagAestheticsMap = { +@@ -404,7 +404,7 @@ const TAG_AESTHETICS: TagAestheticsMap = { defaultHidden: false, }, [DefaultTagID.DM]: { diff --git a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.69.1.patch b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.70.0.patch similarity index 91% rename from patches/ux-improvements-for-xsss/matrix-react-sdk+3.69.1.patch rename to patches/ux-improvements-for-xsss/matrix-react-sdk+3.70.0.patch index 55112fb1fd8..bc659a2a6b2 100644 --- a/patches/ux-improvements-for-xsss/matrix-react-sdk+3.69.1.patch +++ b/patches/ux-improvements-for-xsss/matrix-react-sdk+3.70.0.patch @@ -1,8 +1,8 @@ diff --git a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx -index e6a5c67..600c0fd 100644 +index a261e44..e6eec36 100644 --- a/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx +++ b/node_modules/matrix-react-sdk/src/components/views/dialogs/security/AccessSecretStorageDialog.tsx -@@ -407,13 +407,15 @@ export default class AccessSecretStorageDialog extends React.PureComponent

@@ -19,7 +19,7 @@ index e6a5c67..600c0fd 100644 {_t("Upload")}
diff --git a/res/apple-app-site-association b/res/apple-app-site-association index 8cf662850fa..594c923952a 100644 --- a/res/apple-app-site-association +++ b/res/apple-app-site-association @@ -3,6 +3,9 @@ "apps": [], "details": [ { + // This is normally used to redirect web access to the applications mentioned in appIDs. + // But our iOS app does not use these appIds or web credentials. + // This file is not useful to us, and we don't need to update it. "appID": "7J4U792NQT.im.vector.app", "paths": [ "*" @@ -12,7 +15,10 @@ }, "webcredentials": { "apps": [ - "7J4U792NQT.im.vector.app" + "7J4U792NQT.im.vector.app", + "7J4U792NQT.io.element.elementx", + "7J4U792NQT.io.element.elementx.nightly", + "7J4U792NQT.io.element.elementx.pr" ] } } diff --git a/scripts/fetch-develop.deps.sh b/scripts/fetch-develop.deps.sh index 96464e789c1..8b728b87cf5 100755 --- a/scripts/fetch-develop.deps.sh +++ b/scripts/fetch-develop.deps.sh @@ -77,7 +77,7 @@ dodep matrix-org matrix-js-sdk pushd matrix-js-sdk yarn link -yarn install --pure-lockfile +yarn install --frozen-lockfile popd yarn link matrix-js-sdk @@ -91,7 +91,7 @@ dodep matrix-org matrix-react-sdk pushd matrix-react-sdk yarn link yarn link matrix-js-sdk -yarn install --pure-lockfile +yarn install --frozen-lockfile popd yarn link matrix-react-sdk diff --git a/scripts/layered.sh b/scripts/layered.sh index a63803bba6d..62b8b5a0b35 100755 --- a/scripts/layered.sh +++ b/scripts/layered.sh @@ -14,7 +14,7 @@ set -ex # for the primary repo (element-web in this case). # Install dependencies, as we'll be using fetchdep.sh from matrix-react-sdk -yarn install --pure-lockfile +yarn install --frozen-lockfile # Pass appropriate repo to fetchdep.sh export PR_ORG=vector-im @@ -24,7 +24,7 @@ export PR_REPO=element-web node_modules/matrix-react-sdk/scripts/fetchdep.sh matrix-org matrix-js-sdk pushd matrix-js-sdk yarn link -yarn install --pure-lockfile +yarn install --frozen-lockfile popd # Also set up matrix-analytics-events so we get the latest from @@ -32,7 +32,7 @@ popd node_modules/matrix-react-sdk/scripts/fetchdep.sh matrix-org matrix-analytics-events main pushd matrix-analytics-events yarn link -yarn install --pure-lockfile +yarn install --frozen-lockfile yarn build:ts popd @@ -42,7 +42,7 @@ pushd matrix-react-sdk yarn link yarn link matrix-js-sdk yarn link @matrix-org/analytics-events -yarn install --pure-lockfile +yarn install --frozen-lockfile popd # Link the layers into element-web diff --git a/scripts/tchap/merge-patches.sh b/scripts/tchap/merge-patches.sh old mode 100644 new mode 100755 diff --git a/src/vector/app.tsx b/src/vector/app.tsx index 5e0cec7f90f..6614948abd9 100644 --- a/src/vector/app.tsx +++ b/src/vector/app.tsx @@ -23,7 +23,7 @@ import "matrix-js-sdk/src/browser-index"; import React, { ReactElement } from "react"; import PlatformPeg from "matrix-react-sdk/src/PlatformPeg"; -import { _td, newTranslatableError } from "matrix-react-sdk/src/languageHandler"; +import { UserFriendlyError } from "matrix-react-sdk/src/languageHandler"; import AutoDiscoveryUtils from "matrix-react-sdk/src/utils/AutoDiscoveryUtils"; import { AutoDiscovery } from "matrix-js-sdk/src/autodiscovery"; import * as Lifecycle from "matrix-react-sdk/src/Lifecycle"; @@ -168,16 +168,14 @@ async function verifyServerConfig(): Promise { const incompatibleOptions = [wkConfig, serverName, hsUrl].filter((i) => !!i); if (incompatibleOptions.length > 1) { // noinspection ExceptionCaughtLocallyJS - throw newTranslatableError( - _td( - "Invalid configuration: can only specify one of default_server_config, default_server_name, " + - "or default_hs_url.", - ), + throw new UserFriendlyError( + "Invalid configuration: can only specify one of default_server_config, default_server_name, " + + "or default_hs_url.", ); } if (incompatibleOptions.length < 1) { // noinspection ExceptionCaughtLocallyJS - throw newTranslatableError(_td("Invalid configuration: no default server specified.")); + throw new UserFriendlyError("Invalid configuration: no default server specified."); } if (hsUrl) { diff --git a/src/vector/jitsi/index.ts b/src/vector/jitsi/index.ts index 4281b908f3e..77379fe2097 100644 --- a/src/vector/jitsi/index.ts +++ b/src/vector/jitsi/index.ts @@ -52,9 +52,10 @@ let avatarUrl: string; let userId: string; let jitsiAuth: string; let roomId: string; -let openIdToken: IOpenIDCredentials; let roomName: string; let startAudioOnly: boolean; +let startWithAudioMuted: boolean | undefined; +let startWithVideoMuted: boolean | undefined; let isVideoChannel: boolean; let supportsScreensharing: boolean; let language: string; @@ -80,6 +81,13 @@ const setupCompleted = (async (): Promise => { } return vals[0]; }; + const parseBooleanOrUndefined = (value: string | undefined): boolean | undefined => { + if (value === undefined) { + return undefined; + } + + return value === "true"; + }; // If we have these params, expect a widget API to be available (ie. to be in an iframe // inside a matrix client). Otherwise, assume we're on our own, eg. have been popped @@ -197,6 +205,8 @@ const setupCompleted = (async (): Promise => { roomId = qsParam("roomId", true); roomName = qsParam("roomName", true); startAudioOnly = qsParam("isAudioOnly", true) === "true"; + startWithAudioMuted = parseBooleanOrUndefined(qsParam("startWithAudioMuted", true)); + startWithVideoMuted = parseBooleanOrUndefined(qsParam("startWithVideoMuted", true)); isVideoChannel = qsParam("isVideoChannel", true) === "true"; supportsScreensharing = qsParam("supportsScreensharing", true) === "true"; @@ -212,13 +222,6 @@ const setupCompleted = (async (): Promise => { if (widgetApi) { await widgetApiReady; - - // See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification - if (jitsiAuth === JITSI_OPENIDTOKEN_JWT_AUTH) { - // Request credentials, give callback to continue when received - openIdToken = await widgetApi.requestOpenIDConnectToken(); - logger.log("Got OpenID Connect token"); - } } // Now that everything should be set up, skip to the Jitsi splash screen if needed @@ -234,7 +237,7 @@ const setupCompleted = (async (): Promise => { })(); function enableJoinButton(): void { - document.getElementById("joinButton").onclick = (): void => joinConference(); + document.getElementById("joinButton").onclick = (): Promise => joinConference(); } function switchVisibleContainers(): void { @@ -260,11 +263,11 @@ function skipToJitsiSplashScreen(): void { } /** - * Create a JWT token fot jitsi openidtoken-jwt auth + * Create a JWT token for jitsi openidtoken-jwt auth * * See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification */ -function createJWTToken(): string { +function createJWTToken(openIdToken: IOpenIDCredentials): string { // Header const header = { alg: "HS256", typ: "JWT" }; // Payload @@ -345,17 +348,21 @@ function mapLanguage(language: string): string { // audio input it can find, while an input of null instructs it to start muted, // and a non-nullish input specifies the label of a specific device to use. // Same for video inputs. -function joinConference(audioInput?: string | null, videoInput?: string | null): void { +async function joinConference(audioInput?: string | null, videoInput?: string | null): Promise { let jwt; if (jitsiAuth === JITSI_OPENIDTOKEN_JWT_AUTH) { - if (!openIdToken?.access_token) { + // See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification + const openIdToken: IOpenIDCredentials = await widgetApi.requestOpenIDConnectToken(); + logger.log("Got OpenID Connect token"); + + if (!openIdToken.access_token) { // eslint-disable-line camelcase // We've failing to get a token, don't try to init conference logger.warn("Expected to have an OpenID credential, cannot initialize widget."); document.getElementById("widgetActionContainer").innerText = "Failed to load Jitsi widget"; return; } - jwt = createJWTToken(); + jwt = createJWTToken(openIdToken); } switchVisibleContainers(); @@ -388,8 +395,8 @@ function joinConference(audioInput?: string | null, videoInput?: string | null): configOverwrite: { subject: roomName, startAudioOnly, - startWithAudioMuted: audioInput === null, - startWithVideoMuted: videoInput === null, + startWithAudioMuted: audioInput === null ? true : startWithAudioMuted, + startWithVideoMuted: videoInput === null ? true : startWithVideoMuted, // Request some log levels for inclusion in rageshakes // Ideally we would capture all possible log levels, but this can // cause Jitsi Meet to try to post various circular data structures diff --git a/src/vector/platform/ElectronPlatform.tsx b/src/vector/platform/ElectronPlatform.tsx index 36c3137ab6e..537ce4cc041 100644 --- a/src/vector/platform/ElectronPlatform.tsx +++ b/src/vector/platform/ElectronPlatform.tsx @@ -40,11 +40,21 @@ import ToastStore from "matrix-react-sdk/src/stores/ToastStore"; import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast"; import { logger } from "matrix-js-sdk/src/logger"; import { MatrixEvent } from "matrix-js-sdk/src/models/event"; +import { BreadcrumbsStore } from "matrix-react-sdk/src/stores/BreadcrumbsStore"; +import { UPDATE_EVENT } from "matrix-react-sdk/src/stores/AsyncStore"; +import { avatarUrlForRoom, getInitialLetter } from "matrix-react-sdk/src/Avatar"; import VectorBasePlatform from "./VectorBasePlatform"; import { SeshatIndexManager } from "./SeshatIndexManager"; import { IPCManager } from "./IPCManager"; +interface SquirrelUpdate { + releaseNotes: string; + releaseName: string; + releaseDate: Date; + updateURL: string; +} + const isMac = navigator.platform.toUpperCase().includes("MAC"); function platformFriendlyName(): string { @@ -150,13 +160,29 @@ export default class ElectronPlatform extends VectorBasePlatform { }); this.ipc.call("startSSOFlow", this.ssoID); + + BreadcrumbsStore.instance.on(UPDATE_EVENT, this.onBreadcrumbsUpdate); } public async getConfig(): Promise { return this.ipc.call("getConfig"); } - private onUpdateDownloaded = async (ev, { releaseNotes, releaseName }): Promise => { + private onBreadcrumbsUpdate = (): void => { + const rooms = BreadcrumbsStore.instance.rooms.slice(0, 7).map((r) => ({ + roomId: r.roomId, + avatarUrl: avatarUrlForRoom( + r, + Math.floor(60 * window.devicePixelRatio), + Math.floor(60 * window.devicePixelRatio), + "crop", + ), + initial: getInitialLetter(r.name), + })); + this.ipc.call("breadcrumbs", rooms); + }; + + private onUpdateDownloaded = async (ev: Event, { releaseNotes, releaseName }: SquirrelUpdate): Promise => { dis.dispatch({ action: Action.CheckUpdates, status: UpdateCheckStatus.Ready, @@ -389,4 +415,11 @@ export default class ElectronPlatform extends VectorBasePlatform { await this.ipc.call("destroyPickleKey", userId, deviceId); } catch (e) {} } + + public async clearStorage(): Promise { + try { + await super.clearStorage(); + await this.ipc.call("clearStorage"); + } catch (e) {} + } } diff --git a/test/app-tests/loading-test.tsx b/test/app-tests/loading-test.tsx index d21a7e60ec6..a50a4e861eb 100644 --- a/test/app-tests/loading-test.tsx +++ b/test/app-tests/loading-test.tsx @@ -25,7 +25,6 @@ import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg"; import MatrixChat from "matrix-react-sdk/src/components/structures/MatrixChat"; import dis from "matrix-react-sdk/src/dispatcher/dispatcher"; import MockHttpBackend from "matrix-mock-request"; -import { makeType } from "matrix-react-sdk/src/utils/TypeUtils"; import { ValidatedServerConfig } from "matrix-react-sdk/src/utils/ValidatedServerConfig"; import { IndexedDBCryptoStore } from "matrix-js-sdk/src/crypto/store/indexeddb-crypto-store"; import { QueryDict, sleep } from "matrix-js-sdk/src/utils"; @@ -117,12 +116,12 @@ describe("loading:", function () { { default_hs_url: DEFAULT_HS_URL, default_is_url: DEFAULT_IS_URL, - validated_server_config: makeType(ValidatedServerConfig, { + validated_server_config: { hsUrl: DEFAULT_HS_URL, hsName: "TEST_ENVIRONMENT", hsNameIsDifferent: false, // yes, we lie isUrl: DEFAULT_IS_URL, - }), + } as ValidatedServerConfig, embeddedPages: { homeUrl: "data:text/html;charset=utf-8;base64,PGh0bWw+PC9odG1sPg==", }, diff --git a/test/unit-tests/components/views/dialogs/__snapshots__/TchapCreateRoomDialog-test.tsx.snap b/test/unit-tests/components/views/dialogs/__snapshots__/TchapCreateRoomDialog-test.tsx.snap index 85a85b5856c..eeb55a6b2c7 100644 --- a/test/unit-tests/components/views/dialogs/__snapshots__/TchapCreateRoomDialog-test.tsx.snap +++ b/test/unit-tests/components/views/dialogs/__snapshots__/TchapCreateRoomDialog-test.tsx.snap @@ -27,7 +27,6 @@ exports[`TchapCreateRoomDialog should render the whole component with with the a aria-disabled={false} aria-label="Allow access to this room to all users, even outside "AGENT" domain" className="mx_ToggleSwitch mx_ToggleSwitch_enabled" - element="div" onBlur={[Function]} onClick={[Function]} onFocus={[Function]} diff --git a/test/unit-tests/vector/platform/ElectronPlatform-test.ts b/test/unit-tests/vector/platform/ElectronPlatform-test.ts index c1a4e4ce5c1..24de2e180df 100644 --- a/test/unit-tests/vector/platform/ElectronPlatform-test.ts +++ b/test/unit-tests/vector/platform/ElectronPlatform-test.ts @@ -20,6 +20,7 @@ import { UpdateCheckStatus } from "matrix-react-sdk/src/BasePlatform"; import { Action } from "matrix-react-sdk/src/dispatcher/actions"; import dispatcher from "matrix-react-sdk/src/dispatcher/dispatcher"; import * as rageshake from "matrix-react-sdk/src/rageshake/rageshake"; +import { BreadcrumbsStore } from "matrix-react-sdk/src/stores/BreadcrumbsStore"; import ElectronPlatform from "../../../../src/vector/platform/ElectronPlatform"; @@ -43,7 +44,6 @@ describe("ElectronPlatform", () => { const userId = "@alice:server.org"; const deviceId = "device-id"; - window.electron = mockElectron; beforeEach(() => { window.electron = mockElectron; jest.clearAllMocks(); @@ -260,4 +260,20 @@ describe("ElectronPlatform", () => { expect(mockElectron.send).toHaveBeenCalledWith("install_update"); }); }); + + describe("breacrumbs", () => { + it("should send breadcrumb updates over the IPC", () => { + const spy = jest.spyOn(BreadcrumbsStore.instance, "on"); + new ElectronPlatform(); + const cb = spy.mock.calls[0][1]; + cb(); + + expect(mockElectron.send).toHaveBeenCalledWith( + "ipcCall", + expect.objectContaining({ + name: "breadcrumbs", + }), + ); + }); + }); }); diff --git a/tsconfig.json b/tsconfig.json index ddceda407c1..4b25eb53466 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,7 +13,10 @@ "outDir": "./lib", "declaration": true, "jsx": "react", - "lib": ["es2019", "dom", "dom.iterable"] + "lib": ["es2019", "dom", "dom.iterable"], + "alwaysStrict": true, + "strictBindCallApply": true, + "noImplicitThis": true }, "include": ["./src/**/*.ts", "./src/**/*.tsx", "./test/**/*.ts", "./test/**/*.tsx"] } diff --git a/yarn.lock b/yarn.lock index 18c9c5c8371..c2c6c1ec1fc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1114,17 +1114,17 @@ resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@csstools/css-parser-algorithms@^2.1.0": +"@csstools/css-parser-algorithms@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.1.1.tgz#7b62e6412a468a2d1096ed267edd1e4a7fd4a119" integrity sha512-viRnRh02AgO4mwIQb2xQNJju0i+Fh9roNgmbR5xEuG7J3TGgxjnE95HnBLgsFJOJOksvcfxOUCgODcft6Y07cA== -"@csstools/css-tokenizer@^2.1.0": +"@csstools/css-tokenizer@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@csstools/css-tokenizer/-/css-tokenizer-2.1.1.tgz#07ae11a0a06365d7ec686549db7b729bc036528e" integrity sha512-GbrTj2Z8MCTUv+52GE0RbFGM527xuXZ0Xa5g0Z+YN573uveS4G0qi6WNOMyz3yrFM/jaILTTwJ0+umx81EzqfA== -"@csstools/media-query-list-parser@^2.0.2": +"@csstools/media-query-list-parser@^2.0.4": version "2.0.4" resolved "https://registry.yarnpkg.com/@csstools/media-query-list-parser/-/media-query-list-parser-2.0.4.tgz#466bd254041530dfd1e88bcb1921e8ca4af75b6a" integrity sha512-GyYot6jHgcSDZZ+tLSnrzkR7aJhF2ZW6d+CXH66mjy5WpAQhZD4HDke2OQ36SivGRWlZJpAz7TzbW6OKlEpxAA== @@ -1551,12 +1551,12 @@ resolved "https://registry.yarnpkg.com/@matrix-org/analytics-events/-/analytics-events-0.5.0.tgz#38b69c4e29d243944c5712cca7b674a3432056e6" integrity sha512-uL5kf7MqC+GxsGJtimPVbFliyaFinohTHSzohz31JTysktHsjRR2SC+vV7sy2/dstTWVdG9EGOnohyPsB+oi3A== -"@matrix-org/matrix-sdk-crypto-js@^0.1.0-alpha.3": - version "0.1.0-alpha.6" - resolved "https://registry.yarnpkg.com/@matrix-org/matrix-sdk-crypto-js/-/matrix-sdk-crypto-js-0.1.0-alpha.6.tgz#c0bdb9ab0d30179b8ef744d1b4010b0ad0ab9c3a" - integrity sha512-7hMffzw7KijxDyyH/eUyTfrLeCQHuyU3kaPOKGhcl3DZ3vx7bCncqjGMGTnxNPoP23I6gosvKSbO+3wYOT24Xg== +"@matrix-org/matrix-sdk-crypto-js@^0.1.0-alpha.5": + version "0.1.0-alpha.7" + resolved "https://registry.yarnpkg.com/@matrix-org/matrix-sdk-crypto-js/-/matrix-sdk-crypto-js-0.1.0-alpha.7.tgz#136375b84fd8a7e698f70fc969f668e541a61313" + integrity sha512-sQEG9cSfNji5NYBf5h7j5IxYVO0dwtAKoetaVyR+LhIXz/Su7zyEE3EwlAWAeJOFdAV/vZ5LTNyh39xADuNlTg== -"@matrix-org/matrix-wysiwyg@^1.1.1": +"@matrix-org/matrix-wysiwyg@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@matrix-org/matrix-wysiwyg/-/matrix-wysiwyg-1.4.1.tgz#80c392f036dc4d6ef08a91c4964a68682e977079" integrity sha512-B8sxY3pE2XyRyQ1g7cx0YjGaDZ1A0Uh5XxS/lNdxQ/0ctRJj6IBy7KtiUjxDRdA15ioZnf6aoJBRkBSr02qhaw== @@ -1730,105 +1730,105 @@ dependencies: "@octokit/openapi-types" "^12.11.0" -"@percy/cli-app@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-app/-/cli-app-1.23.0.tgz#70970e6fcafe0bca1b616d4dfa7bbc6df041f2cd" - integrity sha512-2L5chuBFp016LlkB7BihGtm0XJFCZEDNIcOFchsK7l2REBUkxVeM6hNQ89uuP2F9eKXwWKqtDEIYCzdzW0hfIQ== +"@percy/cli-app@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-app/-/cli-app-1.24.0.tgz#1d5bfb392a40e496dd1ba98b3b4f6e66388e9fd7" + integrity sha512-z7ksv+SvdgDuAZ4WDnluuLuS72xb18DKauuwikSKipdICHHFQuXdRc0ngloADC/6IFzp0JhiukiRanntbBkPvg== dependencies: - "@percy/cli-command" "1.23.0" - "@percy/cli-exec" "1.23.0" + "@percy/cli-command" "1.24.0" + "@percy/cli-exec" "1.24.0" -"@percy/cli-build@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-build/-/cli-build-1.23.0.tgz#caa76082c2e533a248bd58c03b5d8f6b5db7b795" - integrity sha512-qIhfU/UtPl181Dw2kR8klEYLUlA5C8GE0M9781vz7D0W3LriccaLLLo1wBp4q4bo83uvUBvNJhq9/S4T38kPEQ== +"@percy/cli-build@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-build/-/cli-build-1.24.0.tgz#409b9ef214fa94edba4b702954fbeb87c1819b9f" + integrity sha512-p/wmO0OzqJ2Uou7QNAdxioqKmxu7U+6Al02GvVhYcPja/MkVjfJT/jDl+XstXawR76txQW9QWrNsK5YOAWUupQ== dependencies: - "@percy/cli-command" "1.23.0" + "@percy/cli-command" "1.24.0" -"@percy/cli-command@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-command/-/cli-command-1.23.0.tgz#96ca558bba6329f58fdba0acaec802dc2d959c15" - integrity sha512-tXj5vv2BQMBmn3ZL2YNqYYrmJLyYnBqwyJkecY2BwXQsKAIv3qBgTzr1d5+LxTOi5ArjFCHAgk2w4ohy6h6t4w== +"@percy/cli-command@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-command/-/cli-command-1.24.0.tgz#36b51e1e41c10db8ceb3f9bbd624e8199a16cee7" + integrity sha512-n4qyDdUc+TiX/YykGg59IS1DBmm4UdA7ZaiTdw/D5AZohzwwVbwL+Q4QMYqcohtfYZ/F8UT7Qy3Jma3+YKTnxw== dependencies: - "@percy/config" "1.23.0" - "@percy/core" "1.23.0" - "@percy/logger" "1.23.0" + "@percy/config" "1.24.0" + "@percy/core" "1.24.0" + "@percy/logger" "1.24.0" -"@percy/cli-config@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-config/-/cli-config-1.23.0.tgz#34f1b8f4c7734156528e3a24866a851f72f29a3e" - integrity sha512-tI4c4MhU41rx9n7fYZrpn4gaOD9dA6PnefP397v7smqEWh7MJ+cxI/nyKU0/9G2wGjMhYACaLoR4BiCWOQZAkw== +"@percy/cli-config@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-config/-/cli-config-1.24.0.tgz#5a62eb9cb1d2e772481dffa6efcd75a0e6604c0f" + integrity sha512-7T70Y3vC0hIGBe+WOmdzspN8N5uflBRwuPoRXn2PdzxvH55hUhCGFT/Wxb8C6rTMJ9k++POkxMoQaSErVANYYg== dependencies: - "@percy/cli-command" "1.23.0" + "@percy/cli-command" "1.24.0" -"@percy/cli-exec@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-exec/-/cli-exec-1.23.0.tgz#7d79b6cec643203486377ffbcd1956a38db5d5d6" - integrity sha512-ecxnMWxUlVx0EswGraHgN4LvWbXeUZQZUxJ9wYmMSgDEaKfEiEZ5WTLSKzQAxyfw2SjoQ3cHRZbKh4qMlCgbAg== +"@percy/cli-exec@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-exec/-/cli-exec-1.24.0.tgz#02f8c6a417ef13303c7ab692a080480c9cb7d9ce" + integrity sha512-T5B8HLjPde0js5lkO14uk02QZKmgxILjALh5SX9VFL2Qx4cUXw+A29epPPv6OLI2x2oww8e5nTdlnmykX8n4kQ== dependencies: - "@percy/cli-command" "1.23.0" + "@percy/cli-command" "1.24.0" cross-spawn "^7.0.3" which "^2.0.2" -"@percy/cli-snapshot@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-snapshot/-/cli-snapshot-1.23.0.tgz#e22b1bbdb55798e061b4af27af3b41935a31e1e8" - integrity sha512-QOrUfyPCnjfIAcUBjNlO299NRPDxofcYQUCBYZE3CtemsNFtygFt0yPnZCwWmt0voSpnPl1Izc6/FA3wYUfuBQ== +"@percy/cli-snapshot@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-snapshot/-/cli-snapshot-1.24.0.tgz#6516710bc095158bcb20ece4ba4861214d4cc428" + integrity sha512-zxoE1SbdTvUlP7QAjTs7+M7U8cHEDF1ec7ov06m1i+bul68YhZ0S+P4a1Mbt6oWBsAxjYz06h4jnq32JitbSDg== dependencies: - "@percy/cli-command" "1.23.0" + "@percy/cli-command" "1.24.0" yaml "^2.0.0" -"@percy/cli-upload@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli-upload/-/cli-upload-1.23.0.tgz#f5df72938cf2b70eec54f5ad4ee55c744e3a3113" - integrity sha512-faRHjzaUf21RK9Ra051gKUl4HmMNPZxUKSZNmdG0yP+tc5KxU9cXkmEeCKGH7LOcVs0IfyRX0vv58YEZ6GsIRw== +"@percy/cli-upload@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli-upload/-/cli-upload-1.24.0.tgz#a6761d93d66668fd3182ee3c22efbebba5e74751" + integrity sha512-/4XNzMAhbccYSsPhw/KWRVjnd13nd17LB178dVNX4UEtaETDbBF+VZSlU3scgs8mlpuqY8b8bHDaSJNfI71UwQ== dependencies: - "@percy/cli-command" "1.23.0" + "@percy/cli-command" "1.24.0" fast-glob "^3.2.11" image-size "^1.0.0" "@percy/cli@^1.3.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/cli/-/cli-1.23.0.tgz#a74fc49650a978a3aaa203e294513c1e05110e4c" - integrity sha512-3S+QUWdeJq6ZUWoRNLuX+wdJx8civJdrSmYG9WS2CP9auJNbuA+13xQnB5AkkWUvHEcC/yXzZpi5NAjoW86jgw== - dependencies: - "@percy/cli-app" "1.23.0" - "@percy/cli-build" "1.23.0" - "@percy/cli-command" "1.23.0" - "@percy/cli-config" "1.23.0" - "@percy/cli-exec" "1.23.0" - "@percy/cli-snapshot" "1.23.0" - "@percy/cli-upload" "1.23.0" - "@percy/client" "1.23.0" - "@percy/logger" "1.23.0" - -"@percy/client@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/client/-/client-1.23.0.tgz#a514c3db9dd4b36161e04afd4f5e7d0de58abefb" - integrity sha512-m0qNCrlfh6Pf0t2GfoeShuK7r2GeRk5rWVjIbdnDigvmtL0G+HJM1gvysLOxzKFHkZ1cLBfM1SnH1Yn6RM/6qQ== - dependencies: - "@percy/env" "1.23.0" - "@percy/logger" "1.23.0" - -"@percy/config@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/config/-/config-1.23.0.tgz#800142c57f4420fffbb3d188e134e68be7d8abec" - integrity sha512-giPIdNLcG1Qg0dkc/VDOkTzI4szzM4QAoJfMLEP0UYPkIU2Y0Xc8NH5GN3DEiudRJge72iGfeah6GugxmXmKXw== - dependencies: - "@percy/logger" "1.23.0" + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/cli/-/cli-1.24.0.tgz#260555b8990404ed63e08b0d3db4a7f6e49bfb1d" + integrity sha512-n8dxQfA2GoPk468EQ+sO7P/P5sBl3Q+s7UrljQhf4wPt4l+CBmoxMML8Ib71MyISzwxY7bOSw2QMr26r6n06/A== + dependencies: + "@percy/cli-app" "1.24.0" + "@percy/cli-build" "1.24.0" + "@percy/cli-command" "1.24.0" + "@percy/cli-config" "1.24.0" + "@percy/cli-exec" "1.24.0" + "@percy/cli-snapshot" "1.24.0" + "@percy/cli-upload" "1.24.0" + "@percy/client" "1.24.0" + "@percy/logger" "1.24.0" + +"@percy/client@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/client/-/client-1.24.0.tgz#b72696269f0925a06571bfa4e75ee8d632c63da2" + integrity sha512-mCMIGryE+0oxJN6v+riZ+XqnubEL9rajLOJI7xNOj5gNBNNvwgvkpTiNId9d6LNZVhA7dN9ZHTW+zFK+i4nU8A== + dependencies: + "@percy/env" "1.24.0" + "@percy/logger" "1.24.0" + +"@percy/config@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/config/-/config-1.24.0.tgz#41e606b021a44385a795dd01820405a72c5f5579" + integrity sha512-FOV8VkW/MjLI7PXzKSjxFBK7z0ND1s8LtXuLQNIrux3oiCKHIVBAQWIV86LLnXSSn+G5i3tfQua9YED5ATyNFQ== + dependencies: + "@percy/logger" "1.24.0" ajv "^8.6.2" cosmiconfig "^7.0.0" yaml "^2.0.0" -"@percy/core@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/core/-/core-1.23.0.tgz#f4c2d9a869ebb357be015ddde9dfdd4077d0b992" - integrity sha512-/BNHdvbD7r1p3k3HWgxYLBo2L2Ye9RDcmTuA6en2xUYaagf+0vfcAK8iyBvVm6ir2ZjAsMW0PGRa7OIfetvHHg== +"@percy/core@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/core/-/core-1.24.0.tgz#1e35c4fb4c0851fed1f92a32e39b26519d774e1c" + integrity sha512-wys1k3RmENOWT4MeS2+8yGHNqzYuy64lqPi36dFoHwZHzSGHH52+6EPPDb+gXLFIxBUHVTwbdaNimstIO3F9Ww== dependencies: - "@percy/client" "1.23.0" - "@percy/config" "1.23.0" - "@percy/dom" "1.23.0" - "@percy/logger" "1.23.0" + "@percy/client" "1.24.0" + "@percy/config" "1.24.0" + "@percy/dom" "1.24.0" + "@percy/logger" "1.24.0" content-disposition "^0.5.4" cross-spawn "^7.0.3" extract-zip "^2.0.1" @@ -1846,51 +1846,51 @@ dependencies: "@percy/sdk-utils" "^1.3.1" -"@percy/dom@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/dom/-/dom-1.23.0.tgz#8b278f5cf91d4383b97e948a58a2a7394303d89a" - integrity sha512-68q3ceCWsWpUFyF/pnELSCTdbTAibGVyNwp+iZCFd/914sUhERYrrX8AqCgkCDerOzCwAQZQDe2Nv3jaB+d0ng== +"@percy/dom@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/dom/-/dom-1.24.0.tgz#48529fe344123b30ef3153c5218725eab5bcfc4f" + integrity sha512-URMLvsOPkCKayx/Wtyj5IymmIhzrtf4en6IKeW2sSTsm7X+kJQ+3wOa3017mX3HXJPIS5xEJKpiCR7hP9BtcUA== -"@percy/env@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/env/-/env-1.23.0.tgz#50dbb7dd61efdc18eb85949ffcbc567f9b8616f3" - integrity sha512-oKvJBC/Zhfwp2QpFBpfHeAVuGhgaPeI7S4H2/68XT30pInfVJzaCjD/8ySAELGyMWmgHc51s+k09DZCo3C3Gyg== +"@percy/env@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/env/-/env-1.24.0.tgz#c8942c3580a305ce6b7148627644654ddd88d047" + integrity sha512-fUUWWDZJ71kv+Po5yOaoS8t7eLmQL5NN6hqRdLhgqN9PZnu+OKIGaeK1GNaTWiHL9+zANRBc1pZjQWhRlleWVA== -"@percy/logger@1.23.0": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/logger/-/logger-1.23.0.tgz#097ac39ec16e2e1ffd381a160840fa1ecb73f602" - integrity sha512-kNtdKQ9Kou/RcWgDoSK+ofOVqOzuzyHBNsK+I92XNh8HHO6ow08Cmw+LtZbDxmj3uq7nXG9Nhgj4ZqSgdk7J6Q== +"@percy/logger@1.24.0": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/logger/-/logger-1.24.0.tgz#427db543680f27d95f9a2169c8cd7fbfbbdada39" + integrity sha512-yaAo08FMED1o8jZycTEnTob1CZIVGaNluJc4R9fCRw7wWS88IAu4F9sdbzUZQZwZ/QGvtfI+55dNQaaesk69Bw== "@percy/sdk-utils@^1.3.1": - version "1.23.0" - resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.23.0.tgz#7e3eb8a128952c548b3cc7213c65f620e3d09ec7" - integrity sha512-FPXMOsK7SIh6NuK+wnr/O35bPN8cyYDGsXqkE5EWwf7Frs+QXFIejlYM9t1SckoxlDpS1YsPYJABv+CUsuJIlQ== + version "1.24.0" + resolved "https://registry.yarnpkg.com/@percy/sdk-utils/-/sdk-utils-1.24.0.tgz#b6e83333c437ac106386e10a776dc823c1a90f33" + integrity sha512-kfYxX0rHP5N2Da6HyfjRCVaeNahAO9XV5WD4SKWKKjdKVkV/Z5/XjVgSKlTBLSYxnWDzYJJ4UHZV43Mw+facMA== "@principalstudio/html-webpack-inject-preload@^1.2.7": version "1.2.7" resolved "https://registry.yarnpkg.com/@principalstudio/html-webpack-inject-preload/-/html-webpack-inject-preload-1.2.7.tgz#0c1f0b32a34d814b36ce84111f89990441cc64e8" integrity sha512-KJKkiKG63ugBjf8U0e9jUcI9CLPTFIsxXplEDE0oi3mPpxd90X9SJovo3W2l7yh/ARKIYXhQq8fSXUN7M29TzQ== -"@sentry-internal/tracing@7.48.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.48.0.tgz#d0c1eac1c046fda5c79d16dc1c918fee3bae3e9d" - integrity sha512-MFAPDTrvCtfSm0/Zbmx7HA0Q5uCfRadOUpN8Y8rP1ndz+329h2kA3mZRCuC+3/aXL11zs2CHUhcAkGjwH2vogg== +"@sentry-internal/tracing@7.49.0": + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.49.0.tgz#f589de565370884b9a13f82c98463de9b2d25dcd" + integrity sha512-ESh3+ZneQk/3HESTUmIPNrW5GVPu/HrRJU+eAJJto74vm+6vP7zDn2YV2gJ1w18O/37nc7W/bVCgZJlhZ3cwew== dependencies: - "@sentry/core" "7.48.0" - "@sentry/types" "7.48.0" - "@sentry/utils" "7.48.0" + "@sentry/core" "7.49.0" + "@sentry/types" "7.49.0" + "@sentry/utils" "7.49.0" tslib "^1.9.3" "@sentry/browser@^7.0.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.48.0.tgz#03f39bec6949ff48e343c5862c5d54dfd4a2f9ff" - integrity sha512-tdx/2nhuiykncmXFlV4Dpp+Hxgt/v31LiyXE79IcM560wc+QmWKtzoW9azBWQ0xt5KOO3ERMib9qPE4/ql1/EQ== - dependencies: - "@sentry-internal/tracing" "7.48.0" - "@sentry/core" "7.48.0" - "@sentry/replay" "7.48.0" - "@sentry/types" "7.48.0" - "@sentry/utils" "7.48.0" + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.49.0.tgz#5ce1cdb8d883c129d9a4e313c08a54c5ada4661b" + integrity sha512-x2DekKkQoY7/dhBzE4J25mdQ978NtPBTVQb+uZqlF/t5mp4K44TAszmPqy8lC/CmVHkp7qcpRGSCIzeboUL4KA== + dependencies: + "@sentry-internal/tracing" "7.49.0" + "@sentry/core" "7.49.0" + "@sentry/replay" "7.49.0" + "@sentry/types" "7.49.0" + "@sentry/utils" "7.49.0" tslib "^1.9.3" "@sentry/cli@^1.74.6": @@ -1905,42 +1905,42 @@ proxy-from-env "^1.1.0" which "^2.0.2" -"@sentry/core@7.48.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.48.0.tgz#1a5ec347ab7212d73a99583c2e64989e34e3263a" - integrity sha512-8FYuJTMpyuxRZvlen3gQ3rpOtVInSDmSyXqWEhCLuG/w34AtWoTiW7G516rsAAh6Hy1TP91GooMWbonP3XQNTQ== +"@sentry/core@7.49.0": + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.49.0.tgz#340d059f5efeff1a3359fef66d0c8e34e79ac992" + integrity sha512-AlSnCYgfEbvK8pkNluUkmdW/cD9UpvOVCa+ERQswXNRkAv5aDGCL6Ihv6fnIajE++BYuwZh0+HwZUBVKTFzoZg== dependencies: - "@sentry/types" "7.48.0" - "@sentry/utils" "7.48.0" + "@sentry/types" "7.49.0" + "@sentry/utils" "7.49.0" tslib "^1.9.3" -"@sentry/replay@7.48.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.48.0.tgz#ca8f1543bad4717dcd65739bf1256a1933bba757" - integrity sha512-8fRHMGJ0NJeIZi6UucxUTvfDPaBa7+jU1kCTLjCcuH3X/UVz5PtGLMtFSO5U8HP+mUDlPs97MP1uoDvMa4S2Ng== +"@sentry/replay@7.49.0": + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry/replay/-/replay-7.49.0.tgz#c7f16bc3ca0c5911f641738f8894eb596c5da00d" + integrity sha512-UY3bHoBDPOu4Dpq3m3oxNjLrq09NiFVYUfrTN4QOq1Am2SA04XbuCj/YZ+jNVy/NrFtoz9cTovK6oQbNw53jog== dependencies: - "@sentry/core" "7.48.0" - "@sentry/types" "7.48.0" - "@sentry/utils" "7.48.0" + "@sentry/core" "7.49.0" + "@sentry/types" "7.49.0" + "@sentry/utils" "7.49.0" "@sentry/tracing@^7.0.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.48.0.tgz#071eb9536a1f2cf0f81a3a5661e99f0253e3b87e" - integrity sha512-X6w74Av0fyayNicKIlwL1IdpZ3O0ETQjyYXCDTwHoJL71ojrgrL5vdiNz8WwbPONTnqu98HehPYL/z3DCCKVbw== + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-7.49.0.tgz#1ebb6da9b763420e605444511a203e38b6304136" + integrity sha512-RtyTt1DvX7s1M2ca9qnevOkuwn8HjbKXrSVHtMbQYoT3uGvjT8Pm71D5WtWMWH2QLpFgcqQq/1ifZBUAG4Y7qA== dependencies: - "@sentry-internal/tracing" "7.48.0" + "@sentry-internal/tracing" "7.49.0" -"@sentry/types@7.48.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.48.0.tgz#57f3c9cf331a5621e82dda04eefcf8c19ee42bc9" - integrity sha512-kkAszZwQ5/v4n7Yyw/DPNRWx7h724mVNRGZIJa9ggUMvTgMe7UKCZZ5wfQmYiKVlGbwd9pxXAcP8Oq15EbByFQ== +"@sentry/types@7.49.0": + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.49.0.tgz#2c217091e13dc373682f5be2e9b5baed9d2ae695" + integrity sha512-9yXXh7iv76+O6h2ONUVx0wsL1auqJFWez62mTjWk4350SgMmWp/zUkBxnVXhmcYqscz/CepC+Loz9vITLXtgxg== -"@sentry/utils@7.48.0": - version "7.48.0" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.48.0.tgz#2866975ea8899aba35b083dd0558cbbe29ee8de1" - integrity sha512-d977sghkFVMfld0LrEyyY2gYrfayLPdDEpUDT+hg5y79r7zZDCFyHtdB86699E5K89MwDZahW7Erk+a1nk4x5w== +"@sentry/utils@7.49.0": + version "7.49.0" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.49.0.tgz#b1b3a2af52067dd27e660c7c3062a31cdf4b94f9" + integrity sha512-JdC9yGnOgev4ISJVwmIoFsk8Zx0psDZJAj2DV7x4wMZsO6QK+YjC7G3mUED/S5D5lsrkBZ/3uvQQhr8DQI4UcQ== dependencies: - "@sentry/types" "7.48.0" + "@sentry/types" "7.49.0" tslib "^1.9.3" "@sentry/webpack-plugin@^1.18.1": @@ -2179,19 +2179,6 @@ resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== -"@types/fbemitter@*": - version "2.0.32" - resolved "https://registry.yarnpkg.com/@types/fbemitter/-/fbemitter-2.0.32.tgz#8ed204da0f54e9c8eaec31b1eec91e25132d082c" - integrity sha512-Hwq28bBlbmfCgLnNJvjl5ssTrbZCTSblI4vqPpqZrbbEL8vn5l2UivxhlMYfUY7a4SR8UB6RKoLjOZfljqAa6g== - -"@types/flux@^3.1.9": - version "3.1.11" - resolved "https://registry.yarnpkg.com/@types/flux/-/flux-3.1.11.tgz#e030d61e6c7fd6187dfa0e7e3dfcc8036c511581" - integrity sha512-Aq4UB1ZqAKcPbhB0GpgMw2sntvOh71he9tjz53TLKrI7rw3Y3LxCW5pTYY9IV455hQapm4pmxFjpqlWOs308Yg== - dependencies: - "@types/fbemitter" "*" - "@types/react" "*" - "@types/geojson@*", "@types/geojson@^7946.0.10": version "7946.0.10" resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.10.tgz#6dfbf5ea17142f7f9a043809f1cd4c448cb68249" @@ -2306,9 +2293,9 @@ integrity sha512-jhMOZSS0UGYTS9pqvt6q3wtT3uvOSve5piTEmTMx3zzTuBLvSIMxSIBIc3d5lajVD5h4xc41AMZD2M5orN3PxA== "@types/node@*": - version "18.15.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.11.tgz#b3b790f09cb1696cffcec605de025b088fa4225f" - integrity sha512-E5Kwq2n4SbMzQOn6wnmBjuK9ouqlURrcZDVfbo9ftDDTFt3nk7ZKK4GMOzoYgnpQJKcxwQw+lGaBvvlMo0qN/Q== + version "18.16.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.0.tgz#4668bc392bb6938637b47e98b1f2ed5426f33316" + integrity sha512-BsAaKhB+7X+H4GnSjGhJG9Qi8Tw+inU9nJDwmD5CgOmBLEI6ArdhikpLX7DjbjDRDTbqZzU2LSQNZg8WGPiSZQ== "@types/node@^14.14.31": version "14.18.42" @@ -2316,9 +2303,9 @@ integrity sha512-xefu+RBie4xWlK8hwAzGh3npDz/4VhF6icY/shU+zv/1fNn+ZVG7T7CRwe9LId9sAYRPxI+59QBPuKL3WpyGRg== "@types/node@^16": - version "16.18.23" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.23.tgz#b6e934fe427eb7081d0015aad070acb3373c3c90" - integrity sha512-XAMpaw1s1+6zM+jn2tmw8MyaRDIJfXxqmIQIS0HfoGYPuf7dUWeiUKopwq13KFX9lEp1+THGtlaaYx39Nxr58g== + version "16.18.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.24.tgz#f21925dd56cd3467b4e1e0c5071d0f2af5e9a316" + integrity sha512-zvSN2Esek1aeLdKDYuntKAYjti9Z2oT4I8bfkLLhIxHlv3dwZ5vvATxOc31820iYm4hQRCwjUgDpwSMFjfTUnw== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -3096,11 +3083,6 @@ arrify@^1.0.1: resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== -asap@~2.0.3: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== - asn1.js@^5.2.0: version "5.4.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" @@ -3799,9 +3781,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: - version "1.0.30001480" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001480.tgz#9bbd35ee44c2480a1e3a3b9f4496f5066817164a" - integrity sha512-q7cpoPPvZYgtyC4VaBSN0Bt+PJ4c4EYRf0DrduInOz2SkFpHD5p3LnvEpqBp7UnJn+8x1Ogl1s38saUxe+ihQQ== + version "1.0.30001481" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001481.tgz#f58a717afe92f9e69d0e35ff64df596bfad93912" + integrity sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ== caseless@~0.12.0: version "0.12.0" @@ -4417,13 +4399,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-fetch@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" - integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== - dependencies: - node-fetch "2.6.7" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" @@ -5247,9 +5222,9 @@ ee-first@1.1.1: integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== electron-to-chromium@^1.4.284: - version "1.4.368" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.368.tgz#75901f97d3e23da2e66feb1e61fbb8e70ac96430" - integrity sha512-e2aeCAixCj9M7nJxdB/wDjO6mbYX+lJJxSJCXDzlr5YPGYVofuJwGN9nKg2o6wWInjX6XmxRinn3AeJMK81ltw== + version "1.4.369" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.369.tgz#a98d838cdd79be4471cd04e9b4dffe891d037874" + integrity sha512-LfxbHXdA/S+qyoTEA4EbhxGjrxx7WK2h6yb5K2v0UCOufUKX+VZaHbl3svlzZfv9sGseym/g3Ne4DpsgRULmqg== elliptic@^6.5.3: version "6.5.4" @@ -5411,7 +5386,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4: +es-abstract@^1.17.2, es-abstract@^1.19.0, es-abstract@^1.20.4, es-abstract@^1.21.2: version "1.21.2" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.21.2.tgz#a56b9695322c8a185dc25975aa3b8ec31d0e7eff" integrity sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg== @@ -5652,10 +5627,10 @@ eslint-plugin-react@^7.28.0: semver "^6.3.0" string.prototype.matchall "^4.0.8" -eslint-plugin-unicorn@^45.0.0: - version "45.0.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-45.0.2.tgz#d6ba704793a6909fe5dfe013900d2b05b715284c" - integrity sha512-Y0WUDXRyGDMcKLiwgL3zSMpHrXI00xmdyixEGIg90gHnj0PcHY4moNv3Ppje/kDivdAy5vUeUr7z211ImPv2gw== +eslint-plugin-unicorn@^46.0.0: + version "46.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-46.0.0.tgz#b5cdcc9465fd6e46ab7968b87dd4a43adc8d6031" + integrity sha512-j07WkC+PFZwk8J33LYp6JMoHa1lXc1u6R45pbSAipjpfpb7KIGr17VE2D685zCxR5VL4cjrl65kTJflziQWMDA== dependencies: "@babel/helper-validator-identifier" "^7.19.1" "@eslint-community/eslint-utils" "^4.1.2" @@ -6155,31 +6130,6 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -fbemitter@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/fbemitter/-/fbemitter-3.0.0.tgz#00b2a1af5411254aab416cd75f9e6289bee4bff3" - integrity sha512-KWKaceCwKQU0+HPoop6gn4eOHk50bBv/VxjJtGMfwmJt3D29JpN4H4eisCtIPA+a8GVBam+ldMMpMjJUvpDyHw== - dependencies: - fbjs "^3.0.0" - -fbjs-css-vars@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz#216551136ae02fe255932c3ec8775f18e2c078b8" - integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== - -fbjs@^3.0.0, fbjs@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-3.0.4.tgz#e1871c6bd3083bac71ff2da868ad5067d37716c6" - integrity sha512-ucV0tDODnGV3JCnnkmoszb5lf4bNpzjv80K41wd4k798Etq+UYD0y0TIfalLjZoKgjive6/adkRnszwapiDgBQ== - dependencies: - 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" - fd-slicer@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" @@ -6397,14 +6347,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -flux@4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.3.tgz#573b504a24982c4768fdfb59d8d2ea5637d72ee7" - integrity sha512-yKAbrp7JhZhj6uiT1FTuVMlIAT1J4jqEyBpFApi1kxpGZCvacMVc/t1pMQyotqHhAgvoE3bNvAykhCo2CLjnYw== - dependencies: - fbemitter "^3.0.0" - fbjs "^3.0.1" - focus-lock@^0.11.6: version "0.11.6" resolved "https://registry.yarnpkg.com/focus-lock/-/focus-lock-0.11.6.tgz#e8821e21d218f03e100f7dc27b733f9c4f61e683" @@ -8521,9 +8463,9 @@ jsprim@^2.0.2: verror "1.10.0" jsrsasign@^10.5.25: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.8.2.tgz#900380c8df2e08f4c1789d79f70af410282feced" - integrity sha512-iKTMkVZxyXzvd+MYLxzPk5WFZ4jPX22TrO7fQ7vS1dfso30/jntH2EexW7+K1rn11F1GkiR9Q3ulF0FQxvNNRw== + version "10.8.3" + resolved "https://registry.yarnpkg.com/jsrsasign/-/jsrsasign-10.8.3.tgz#7afea225721db9def33f28b28cd37e2089d63377" + integrity sha512-qo4fCYo/doi/JaheOBf5uJ36AkxXxom/C3sQD77uchpasr7CLQCojn2hY4ipO1ob9ypAQFxgV0yWJM0i5E7w/g== "jsx-ast-utils@^2.4.1 || ^3.0.0": version "3.3.3" @@ -8821,7 +8763,7 @@ loglevel@^1.6.8, loglevel@^1.7.1: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== -loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: +loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== @@ -8966,19 +8908,19 @@ matrix-events-sdk@0.0.1: resolved "https://registry.yarnpkg.com/matrix-events-sdk/-/matrix-events-sdk-0.0.1.tgz#c8c38911e2cb29023b0bbac8d6f32e0de2c957dd" integrity sha512-1QEOsXO+bhyCroIe2/A5OwaxHvBm7EsSQ46DEDn8RBIfQwN5HWBpFvyWWR4QY0KHPPnnJdI99wgRiAl7Ad5qaA== -matrix-js-sdk@24.0.0: - version "24.0.0" - resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-24.0.0.tgz#cc08c55e6a88dcc177341705a8ff7cdfe93e0c27" - integrity sha512-AOhO036ziDf6lwYoauj5DES/RJ6RDTq+vrK2yO/GW/8n+bAXhkjWc9AA/WcTK/9SkNHS46ZanmolkhS1n8WniQ== +matrix-js-sdk@24.1.0: + version "24.1.0" + resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-24.1.0.tgz#6e5ecbadc44cf725c02d32db07f74dcb67b88d11" + 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" @@ -8991,14 +8933,14 @@ matrix-mock-request@^2.5.0: dependencies: expect "^28.1.0" -matrix-react-sdk@3.69.1: - version "3.69.1" - resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.69.1.tgz#bc1efcf51d0c003a9149686a994b64387ec6a45d" - integrity sha512-jOzZiWTlHclN+LTUyVH6FC950XUQ3aUUPyAkLvbRgo4On8pyC8jyMyvrowEQgrsOgYaflSI/DcX+B9RTnHDbcQ== +matrix-react-sdk@3.70.0: + version "3.70.0" + resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.70.0.tgz#0937895b4f69ec13f728535c532c89de78bdfd18" + integrity sha512-t0mfemzanPW1fSxBoUrq/+zzO3DyClOeLfG/w///JFZBHqA6DV7Y2zQOkWMZkKnWL2eSizkqy4KpNnaU1Zbhqg== dependencies: "@babel/runtime" "^7.12.5" "@matrix-org/analytics-events" "^0.5.0" - "@matrix-org/matrix-wysiwyg" "^1.1.1" + "@matrix-org/matrix-wysiwyg" "^1.4.1" "@matrix-org/react-sdk-module-api" "^0.0.4" "@sentry/browser" "^7.0.0" "@sentry/tracing" "^7.0.0" @@ -9017,7 +8959,6 @@ matrix-react-sdk@3.69.1: escape-html "^1.0.3" file-saver "^2.0.5" filesize "10.0.6" - flux "4.0.3" focus-visible "^5.2.0" gfm.css "^1.1.2" glob-to-regexp "^0.4.1" @@ -9034,14 +8975,14 @@ matrix-react-sdk@3.69.1: maplibre-gl "^2.0.0" matrix-encrypt-attachment "^1.0.3" matrix-events-sdk "0.0.1" - matrix-js-sdk "24.0.0" - matrix-widget-api "^1.1.1" + matrix-js-sdk "24.1.0" + matrix-widget-api "^1.3.1" minimist "^1.2.5" opus-recorder "^8.0.3" pako "^2.0.3" parse5 "^6.0.1" png-chunks-extract "^1.0.0" - posthog-js "1.50.3" + posthog-js "1.51.2" qrcode "1.5.1" re-resizable "^6.9.0" react "17.0.2" @@ -9059,7 +9000,7 @@ matrix-react-sdk@3.69.1: what-input "^5.2.10" zxcvbn "^4.4.2" -matrix-web-i18n@^1.3.0: +matrix-web-i18n@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/matrix-web-i18n/-/matrix-web-i18n-1.4.0.tgz#f383a3ebc29d3fd6eb137d38cc4c3198771cc073" integrity sha512-+NP2h4zdft+2H/6oFQ0i2PBm00Ei6HpUHke8rklgpe/yCABBG5Q7gIQdZoxazi0DXWWtcvvIfgamPZmkg6oRwA== @@ -9068,7 +9009,7 @@ matrix-web-i18n@^1.3.0: "@babel/traverse" "^7.18.5" walk "^2.3.15" -matrix-widget-api@^1.0.0, matrix-widget-api@^1.1.1: +matrix-widget-api@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/matrix-widget-api/-/matrix-widget-api-1.3.1.tgz#e38f404c76bb15c113909505c1c1a5b4d781c2f5" integrity sha512-+rN6vGvnXm+fn0uq9r2KWSL/aPtehD6ObC50jYmUcEfgo8CUpf9eUurmjbRlwZkWq3XHXFuKQBUCI9UzqWg37Q== @@ -9543,13 +9484,6 @@ no-case@^3.0.4: lower-case "^2.0.2" tslib "^2.0.3" -node-fetch@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" - integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== - dependencies: - whatwg-url "^5.0.0" - node-fetch@^2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" @@ -9681,7 +9615,7 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.4.tgz#fd59d5e904e8e1f03c25a7d5a15cfa16c714a1e5" integrity sha512-NHj4rzRo0tQdijE9ZqAx6kYDcoRwYwSYzCA8MY3JzfxlrvEU0jhnhJT9BhqhJs7I/dKcrDm6TyulaRqZPIhN5g== -object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== @@ -9749,14 +9683,15 @@ object.fromentries@^2.0.0, object.fromentries@^2.0.6: es-abstract "^1.20.4" object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.5" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.5.tgz#db5a9002489b64eef903df81d6623c07e5b4b4d3" - integrity sha512-yDNzckpM6ntyQiGTik1fKV1DcVDRS+w8bvpWNCBanvH5LfRX9O8WTHqQzG4RZwRAM4I0oU7TV11Lj5v0g20ibw== + version "2.1.6" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.6.tgz#5e5c384dd209fa4efffead39e3a0512770ccc312" + integrity sha512-lq+61g26E/BgHv0ZTFgRvi7NMEPuAxLkFU7rukXjc/AlwH4Am5xXVnIXy3un1bg/JPbXHrixRkK1itUzzPiIjQ== dependencies: array.prototype.reduce "^1.0.5" call-bind "^1.0.2" - define-properties "^1.1.4" - es-abstract "^1.20.4" + define-properties "^1.2.0" + es-abstract "^1.21.2" + safe-array-concat "^1.0.0" object.hasown@^1.1.2: version "1.1.2" @@ -10943,19 +10878,19 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.1 picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.2.1, postcss@^8.3.11, postcss@^8.4.16, postcss@^8.4.21: - version "8.4.22" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.22.tgz#c29e6776b60ab3af602d4b513d5bd2ff9aa85dc1" - integrity sha512-XseknLAfRHzVWjCEtdviapiBtfLdgyzExD50Rg2ePaucEesyh8Wv4VPdW0nbyDa1ydbrAxV19jvMT4+LFmcNUA== +postcss@^8.2.1, postcss@^8.3.11, postcss@^8.4.16, postcss@^8.4.22: + version "8.4.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.23.tgz#df0aee9ac7c5e53e1075c24a3613496f9e6552ab" + integrity sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA== dependencies: nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" -posthog-js@1.50.3: - version "1.50.3" - resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.50.3.tgz#b89e0a41ba6e34d804490664c0854f3e37f3acbf" - integrity sha512-QWEQ1bvKKsHUBLYGGIgwC2t9Lsivoi5gkQ/QgzAQrK9bMHQgexAx5CCTgdQ2ael9o88i9eIExWQId6+/RpALsw== +posthog-js@1.51.2: + version "1.51.2" + resolved "https://registry.yarnpkg.com/posthog-js/-/posthog-js-1.51.2.tgz#59f37198aa513960b4c28b635908a9f4bbe1a2dd" + integrity sha512-9A6msQFeerVgwE7kgBTAeIo1FAYzmR3IESDE6s5rhVhspu5b4h7fNppDMaq4Kic9zSlEiaVSmKyahIAEqaLxtw== dependencies: fflate "^0.4.1" rrweb-snapshot "^1.1.14" @@ -11051,13 +10986,6 @@ promise-inflight@^1.0.1: resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== -promise@^7.1.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" - integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== - dependencies: - asap "~2.0.3" - prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -11828,6 +11756,16 @@ rxjs@^7.0.0, rxjs@^7.5.1: dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.0.tgz#2064223cba3c08d2ee05148eedbc563cd6d84060" + integrity sha512-9dVEFruWIsnie89yym+xWTAYASdpw3CJV7Li/6zBewGf9z2i1j31rP6jnY0pHEO4QZh6N0K11bFjWmdR8UGdPQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" @@ -12625,11 +12563,6 @@ stylehacks@^5.1.1: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" -stylelint-config-prettier@^9.0.4: - version "9.0.5" - resolved "https://registry.yarnpkg.com/stylelint-config-prettier/-/stylelint-config-prettier-9.0.5.tgz#9f78bbf31c7307ca2df2dd60f42c7014ee9da56e" - integrity sha512-U44lELgLZhbAD/xy/vncZ2Pq8sh2TnpiPvo38Ifg9+zeioR+LAkHu0i6YORIOxFafZoVg0xqQwex6e6F25S5XA== - stylelint-config-recommended@^10.0.1: version "10.0.1" resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz#25a8828acf6cde87dac6db2950c8c4ed82a69ae1" @@ -12654,13 +12587,13 @@ stylelint-scss@^4.2.0: postcss-value-parser "^4.2.0" stylelint@^15.0.0: - version "15.5.0" - resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.5.0.tgz#f16c238231f3f32e62da8a88969821d237eae8a6" - integrity sha512-jyMO3R1QtE5mUS4v40+Gg+sIQBqe7CF1xPslxycDzNVkIBCUD4O+5F1vLPq16VmunUTv4qG9o2rUKLnU5KkVeQ== + version "15.6.0" + resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-15.6.0.tgz#1d76176dd8b6307bc4645e428ad18ddd15edbafc" + integrity sha512-Cqzpc8tvJm77KaM8qUbhpJ/UYK55Ia0whQXj4b9IId9dlPICO7J8Lyo15SZWiHxKjlvy3p5FQor/3n6i8ignXg== dependencies: - "@csstools/css-parser-algorithms" "^2.1.0" - "@csstools/css-tokenizer" "^2.1.0" - "@csstools/media-query-list-parser" "^2.0.2" + "@csstools/css-parser-algorithms" "^2.1.1" + "@csstools/css-tokenizer" "^2.1.1" + "@csstools/media-query-list-parser" "^2.0.4" "@csstools/selector-specificity" "^2.2.0" balanced-match "^2.0.0" colord "^2.9.3" @@ -12685,7 +12618,7 @@ stylelint@^15.0.0: micromatch "^4.0.5" normalize-path "^3.0.0" picocolors "^1.0.0" - postcss "^8.4.21" + postcss "^8.4.22" postcss-media-query-parser "^0.2.3" postcss-resolve-nested-selector "^0.1.1" postcss-safe-parser "^6.0.0" @@ -13250,11 +13183,6 @@ typeson@^6.0.0, typeson@^6.1.0: resolved "https://registry.yarnpkg.com/typeson/-/typeson-6.1.0.tgz#5b2a53705a5f58ff4d6f82f965917cabd0d7448b" integrity sha512-6FTtyGr8ldU0pfbvW/eOZrEtEkczHRUtduBnA90Jh9kMPCiFNnXIon3vF41N0S4tV1HHQt4Hk1j4srpESziCaA== -ua-parser-js@^0.7.30: - version "0.7.35" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-0.7.35.tgz#8bda4827be4f0b1dda91699a29499575a1f1d307" - integrity sha512-veRf7dawaj9xaWEu9HoTVn5Pggtc/qj+kqTOFvNiN1l0YdxwC1kvel57UCjThjGa3BHBihE8/UJAHI+uQHmd/g== - ua-parser-js@^1.0.0, ua-parser-js@^1.0.2: version "1.0.35" resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" @@ -13823,9 +13751,9 @@ which-collection@^1.0.1: is-weakset "^2.0.1" which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-typed-array@^1.1.9: version "1.1.9" @@ -13988,9 +13916,9 @@ yaml@^1.10.0, yaml@^1.10.2: integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yaml@^2.0.0, yaml@^2.0.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.1.tgz#3014bf0482dcd15147aa8e56109ce8632cd60ce4" - integrity sha512-e0WHiYql7+9wr4cWMx3TVQrNwejKaEe7/rHNmQmqRjazfOP5W8PB6Jpebb5o6fIapbz9o9+2ipcaTM2ZwDI6lw== + version "2.2.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.2.2.tgz#ec551ef37326e6d42872dad1970300f8eb83a073" + integrity sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA== yargs-parser@^13.1.2: version "13.1.2"