Compare commits
127 Commits
travis/thi
...
v1.7.24.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d8d6df724 | ||
|
|
ac15f2755c | ||
|
|
d178286e2b | ||
|
|
929fa5d59d | ||
|
|
20b1321818 | ||
|
|
a05c68e8d9 | ||
|
|
9063f07b05 | ||
|
|
a13863714c | ||
|
|
5e6ae6a855 | ||
|
|
c5cff11fba | ||
|
|
11d02f68da | ||
|
|
61ad5409ea | ||
|
|
8ad5640ece | ||
|
|
54513158b9 | ||
|
|
0a793d23be | ||
|
|
b211407b76 | ||
|
|
740bf51e46 | ||
|
|
c854769440 | ||
|
|
0c7baa46f4 | ||
|
|
a1c602c98e | ||
|
|
025225a899 | ||
|
|
b8b8a5ee85 | ||
|
|
a76c4ae943 | ||
|
|
979851ae1b | ||
|
|
54b8e93ee4 | ||
|
|
ba28c6d57a | ||
|
|
36789fbd65 | ||
|
|
1c7828e7c2 | ||
|
|
597c18932b | ||
|
|
84b21576bd | ||
|
|
0c14e45d65 | ||
|
|
92a12b7ac0 | ||
|
|
bcf4aaee95 | ||
|
|
f2b98f14d4 | ||
|
|
9789f411d0 | ||
|
|
127683e98a | ||
|
|
b7e9da9e40 | ||
|
|
8aba3cf437 | ||
|
|
bb10b7ad48 | ||
|
|
101e0592fe | ||
|
|
c10e8984e7 | ||
|
|
52e54b408f | ||
|
|
779a4912d5 | ||
|
|
cc81cc714c | ||
|
|
e2ce4239bd | ||
|
|
b8b13a6316 | ||
|
|
1c7cf8645e | ||
|
|
d9627cbe67 | ||
|
|
134618f4cd | ||
|
|
c191eb5462 | ||
|
|
dccbb79340 | ||
|
|
a67b2329ba | ||
|
|
4b092d49c6 | ||
|
|
49d103aab6 | ||
|
|
6afd289bcb | ||
|
|
4fc499b9e3 | ||
|
|
0469805eb1 | ||
|
|
df2654f94a | ||
|
|
3da0957859 | ||
|
|
5056e14060 | ||
|
|
655c7a9b29 | ||
|
|
bd60faec1f | ||
|
|
6b40714d80 | ||
|
|
f4e98baf16 | ||
|
|
53e8f5d3ff | ||
|
|
b910fcd38a | ||
|
|
4f0fccfe96 | ||
|
|
86d7652d93 | ||
|
|
c745991a9a | ||
|
|
0f7a42258c | ||
|
|
c7bb6b2272 | ||
|
|
b0bc4b2816 | ||
|
|
3586142d69 | ||
|
|
06798f3030 | ||
|
|
594c07b2d9 | ||
|
|
f94f97d83a | ||
|
|
799f60c0ee | ||
|
|
06af1f056f | ||
|
|
621e09ebbc | ||
|
|
8a0ed198e6 | ||
|
|
322cdb1bec | ||
|
|
8fadfb0a57 | ||
|
|
5417d70340 | ||
|
|
a9850008cf | ||
|
|
83f28d465b | ||
|
|
f0a8f166c9 | ||
|
|
f941169da3 | ||
|
|
4f13b707bb | ||
|
|
aff0c9823e | ||
|
|
c3c1a5da8d | ||
|
|
d35d6f253b | ||
|
|
29fb984062 | ||
|
|
6c3530d249 | ||
|
|
d63f5a2282 | ||
|
|
2b7dbb4fce | ||
|
|
aaecbab4b9 | ||
|
|
220ee62d38 | ||
|
|
8cf2ab436d | ||
|
|
4961037dbe | ||
|
|
5f15ee4ea5 | ||
|
|
9953bc3b22 | ||
|
|
29fd47d611 | ||
|
|
c6ab8d1d37 | ||
|
|
e18bf6be86 | ||
|
|
7562fd3703 | ||
|
|
57f0d5191d | ||
|
|
dd0e2e52f8 | ||
|
|
2e00314dc0 | ||
|
|
afb469ce42 | ||
|
|
31ec953a92 | ||
|
|
94a5cd3f83 | ||
|
|
c67951f254 | ||
|
|
aface37853 | ||
|
|
46af8ba17a | ||
|
|
beb922cbfa | ||
|
|
c4c1b728cc | ||
|
|
402f97b430 | ||
|
|
f998f85c3c | ||
|
|
78d6ad8f29 | ||
|
|
24cc106d90 | ||
|
|
ccc3038793 | ||
|
|
6844c8f92e | ||
|
|
1c9d25986a | ||
|
|
a8a422105b | ||
|
|
3419140bee | ||
|
|
13a5192995 | ||
|
|
7ae86af7df |
4
.github/ISSUE_TEMPLATE.md
vendored
4
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,3 +1,5 @@
|
||||
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
|
||||
|
||||
<!-- Please report security issues by email to security@matrix.org -->
|
||||
|
||||
<!-- This is a bug report template. By following the instructions below and
|
||||
@@ -36,7 +38,7 @@ file a bug here too! -->
|
||||
|
||||
For the web app:
|
||||
|
||||
- **Browser**: Chrome, Safari, Firefox? which version?
|
||||
- **Browser**: Chrome, Firefox, Safari, Edge? which version?
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
|
||||
|
||||
|
||||
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
6
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -2,11 +2,13 @@
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: bug
|
||||
labels: T-Defect
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
|
||||
|
||||
<!-- Please report security issues by email to security@matrix.org -->
|
||||
|
||||
<!-- This is a bug report template. By following the instructions below and
|
||||
@@ -46,7 +48,7 @@ Logs being sent: yes/no
|
||||
|
||||
For the web app:
|
||||
|
||||
- **Browser**: Chrome, Safari, Firefox? which version?
|
||||
- **Browser**: Chrome, Firefox, Safari, Edge? which version?
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name: Suggestion or Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: suggestion
|
||||
labels: T-Enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
@@ -1,58 +0,0 @@
|
||||
---
|
||||
name: User Interface or Usability Bug report
|
||||
about: Please include screenshots in UI/UX bug reports
|
||||
title: ''
|
||||
labels: bug, ui/ux
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
|
||||
|
||||
<!-- Please report security issues by email to security@matrix.org -->
|
||||
|
||||
<!-- This is a bug report template. By following the instructions below and
|
||||
filling out the sections with your information, you will help the us to get all
|
||||
the necessary data to fix your issue.
|
||||
|
||||
You can also preview your report before submitting it. You may remove sections
|
||||
that aren't relevant to your particular case.
|
||||
|
||||
Text between <!-- and --> marks will be invisible in the report.
|
||||
-->
|
||||
|
||||
### Description
|
||||
|
||||
Describe here the problem that you are experiencing, or the feature you are requesting.
|
||||
|
||||
### Steps to reproduce
|
||||
|
||||
- For bugs, list the steps
|
||||
- that reproduce the bug
|
||||
- using hyphens as bullet points
|
||||
|
||||
Describe how what happens differs from what you expected.
|
||||
|
||||
<!-- Please send us logs for your bug report. They're very important for bugs
|
||||
which are hard to reproduce. To do this, create this issue then go to your
|
||||
account settings and click 'Submit Debug Logs' from the Help & About tab -->
|
||||
Logs being sent: yes/no
|
||||
|
||||
<!-- Include screenshots if possible: you can drag and drop images below. -->
|
||||
|
||||
### Version information
|
||||
|
||||
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
|
||||
|
||||
- **Platform**: web (in-browser) or desktop?
|
||||
|
||||
For the web app:
|
||||
|
||||
- **Browser**: Chrome, Safari, Firefox? which version?
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
|
||||
|
||||
For the desktop app:
|
||||
|
||||
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
|
||||
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->
|
||||
119
CHANGELOG.md
119
CHANGELOG.md
@@ -1,3 +1,122 @@
|
||||
Changes in [1.7.24](https://github.com/vector-im/element-web/releases/tag/v1.7.24) (2021-03-29)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.24-rc.1...v1.7.24)
|
||||
|
||||
* Upgrade to React SDK 3.17.0 and JS SDK 9.10.0
|
||||
|
||||
Changes in [1.7.24-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.24-rc.1) (2021-03-25)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.23...v1.7.24-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.17.0-rc.2 and JS SDK 9.10.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#16766](https://github.com/vector-im/element-web/pull/16766)
|
||||
* Docker image: serve pre-compressed assets using gzip_static
|
||||
[\#16698](https://github.com/vector-im/element-web/pull/16698)
|
||||
* Fix style lint issues
|
||||
[\#16732](https://github.com/vector-im/element-web/pull/16732)
|
||||
* Updated expected webpack output in setup guide
|
||||
[\#16740](https://github.com/vector-im/element-web/pull/16740)
|
||||
* Docs for `loginForWelcome`
|
||||
[\#16468](https://github.com/vector-im/element-web/pull/16468)
|
||||
* Disable rageshake persistence if no logs would be submitted
|
||||
[\#16697](https://github.com/vector-im/element-web/pull/16697)
|
||||
|
||||
Changes in [1.7.23](https://github.com/vector-im/element-web/releases/tag/v1.7.23) (2021-03-15)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.23-rc.1...v1.7.23)
|
||||
|
||||
* Upgrade to React SDK 3.16.0 and JS SDK 9.9.0
|
||||
|
||||
Changes in [1.7.23-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.23-rc.1) (2021-03-10)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.22...v1.7.23-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.16.0-rc.2 and JS SDK 9.9.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#16655](https://github.com/vector-im/element-web/pull/16655)
|
||||
* Improve docs for customisations
|
||||
[\#16652](https://github.com/vector-im/element-web/pull/16652)
|
||||
* Update triage guide to match the new label scheme
|
||||
[\#16612](https://github.com/vector-im/element-web/pull/16612)
|
||||
* Remove a couple useless 'use strict' calls
|
||||
[\#16650](https://github.com/vector-im/element-web/pull/16650)
|
||||
* Remove old conferencing doc
|
||||
[\#16648](https://github.com/vector-im/element-web/pull/16648)
|
||||
* Bump elliptic from 6.5.3 to 6.5.4
|
||||
[\#16644](https://github.com/vector-im/element-web/pull/16644)
|
||||
* Add option for audio live streaming
|
||||
[\#16604](https://github.com/vector-im/element-web/pull/16604)
|
||||
* Update velocity-animate dependency
|
||||
[\#16605](https://github.com/vector-im/element-web/pull/16605)
|
||||
* Add Edge to the supported tier
|
||||
[\#16611](https://github.com/vector-im/element-web/pull/16611)
|
||||
* Add multi language spell check
|
||||
[\#15851](https://github.com/vector-im/element-web/pull/15851)
|
||||
* Document feature_spaces
|
||||
[\#16538](https://github.com/vector-im/element-web/pull/16538)
|
||||
|
||||
Changes in [1.7.22](https://github.com/vector-im/element-web/releases/tag/v1.7.22) (2021-03-01)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.22-rc.1...v1.7.22)
|
||||
|
||||
## Security notice
|
||||
|
||||
Element Web 1.7.22 fixes (by upgrading to matrix-react-sdk 3.15.0) a low
|
||||
severity issue (CVE-2021-21320) where the user content sandbox can be abused to
|
||||
trick users into opening unexpected documents. The content is opened with a
|
||||
`blob` origin that cannot access Matrix user data, so messages and secrets are
|
||||
not at risk. Thanks to @keerok for responsibly disclosing this via Matrix's
|
||||
Security Disclosure Policy.
|
||||
|
||||
## All changes
|
||||
|
||||
* Upgrade to React SDK 3.15.0 and JS SDK 9.8.0
|
||||
|
||||
Changes in [1.7.22-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.22-rc.1) (2021-02-24)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.21...v1.7.22-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.15.0-rc.1 and JS SDK 9.8.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#16529](https://github.com/vector-im/element-web/pull/16529)
|
||||
* Add hostSignup config for element.io clients
|
||||
[\#16515](https://github.com/vector-im/element-web/pull/16515)
|
||||
* VoIP virtual rooms, mkII
|
||||
[\#16442](https://github.com/vector-im/element-web/pull/16442)
|
||||
* Jitsi widget: Read room name from query parameters
|
||||
[\#16456](https://github.com/vector-im/element-web/pull/16456)
|
||||
* fix / sso: make sure to delete only loginToken after redirect
|
||||
[\#16415](https://github.com/vector-im/element-web/pull/16415)
|
||||
* Disable Countly
|
||||
[\#16433](https://github.com/vector-im/element-web/pull/16433)
|
||||
|
||||
Changes in [1.7.21](https://github.com/vector-im/element-web/releases/tag/v1.7.21) (2021-02-16)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.21-rc.1...v1.7.21)
|
||||
|
||||
* Upgrade to React SDK 3.14.0 and JS SDK 9.7.0
|
||||
|
||||
Changes in [1.7.21-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.21-rc.1) (2021-02-10)
|
||||
=========================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.20...v1.7.21-rc.1)
|
||||
|
||||
* Upgrade to React SDK 3.14.0-rc.1 and JS SDK 9.7.0-rc.1
|
||||
* Translations update from Weblate
|
||||
[\#16427](https://github.com/vector-im/element-web/pull/16427)
|
||||
* Add RegExp dotAll feature test
|
||||
[\#16408](https://github.com/vector-im/element-web/pull/16408)
|
||||
* Fix Electron type merging
|
||||
[\#16405](https://github.com/vector-im/element-web/pull/16405)
|
||||
* README: remove Jenkins reference
|
||||
[\#16381](https://github.com/vector-im/element-web/pull/16381)
|
||||
* Enable PostCSS Calc in webpack builds
|
||||
[\#16307](https://github.com/vector-im/element-web/pull/16307)
|
||||
* Add configuration security best practices to the README.
|
||||
[\#16367](https://github.com/vector-im/element-web/pull/16367)
|
||||
* Upgrade matrix-widget-api
|
||||
[\#16347](https://github.com/vector-im/element-web/pull/16347)
|
||||
|
||||
Changes in [1.7.20](https://github.com/vector-im/element-web/releases/tag/v1.7.20) (2021-02-04)
|
||||
===============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.19...v1.7.20)
|
||||
|
||||
114
README.md
114
README.md
@@ -11,7 +11,7 @@ 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, and Safari on desktop OSes
|
||||
* Last 2 major versions of Chrome, Firefox, Safari, and Edge on desktop OSes
|
||||
* 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
|
||||
@@ -298,15 +298,10 @@ yarn start
|
||||
|
||||
Wait a few seconds for the initial build to finish; you should see something like:
|
||||
```
|
||||
Hash: b0af76309dd56d7275c8
|
||||
Version: webpack 1.12.14
|
||||
Time: 14533ms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 4.2 MB 0 [emitted] main
|
||||
bundle.css 91.5 kB 0 [emitted] main
|
||||
bundle.js.map 5.29 MB 0 [emitted] main
|
||||
bundle.css.map 116 kB 0 [emitted] main
|
||||
+ 1013 hidden modules
|
||||
[element-js] <s> [webpack.Progress] 100%
|
||||
[element-js]
|
||||
[element-js] ℹ 「wdm」: 1840 modules
|
||||
[element-js] ℹ 「wdm」: Compiled successfully.
|
||||
```
|
||||
Remember, the command will not terminate since it runs the web server
|
||||
and rebuilds source files when they change. This development server also
|
||||
@@ -388,51 +383,76 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md).
|
||||
Triaging issues
|
||||
===============
|
||||
|
||||
Issues will be triaged by the core team using the below set of tags.
|
||||
We strive to completely cover all applicable issues with these core labels:
|
||||
|
||||
Tags are meant to be used in combination - e.g.:
|
||||
* P1 critical bug == really urgent stuff that should be next in the bugfixing todo list
|
||||
* "release blocker" == stuff which is blocking us from cutting the next release.
|
||||
* P1 feature type:voip == what VoIP features should we be working on next?
|
||||
1. __Type__ — Every issue is assigned a type:
|
||||
- __[T-Defect](https://github.com/vector-im/element-web/labels/T-Defect):__
|
||||
Bugs, crashes, hangs, vulnerabilities, or other reported problems
|
||||
- __[T-Enhancement](https://github.com/vector-im/element-web/labels/T-Enhancement):__
|
||||
New features, changes in functionality, performance boosts, user-facing
|
||||
improvements
|
||||
- __[T-Task](https://github.com/vector-im/element-web/labels/T-Task):__
|
||||
Refactoring, enabling or disabling functionality, other engineering tasks
|
||||
- __[T-Other](https://github.com/vector-im/element-web/labels/T-Other):__
|
||||
Questions, user support, anything else
|
||||
|
||||
priority: **compulsory**
|
||||
2. __Severity__ — All issues labeled `T-Defect` are also assigned a severity:
|
||||
* __[S-Critical](https://github.com/vector-im/element-web/labels/S-Critical):__
|
||||
Prevents work, causes data loss, affects many users, and/or has no
|
||||
workaround
|
||||
* __[S-Major](https://github.com/vector-im/element-web/labels/S-Major):__
|
||||
Severely degrades major functionality or product features, with no
|
||||
satisfactory workaround
|
||||
* __[S-Minor](https://github.com/vector-im/element-web/labels/S-Minor):__
|
||||
Impairs non-critical functionality, or suitable workarounds exist
|
||||
* __[S-Tolerable](https://github.com/vector-im/element-web/labels/S-Tolerable):__
|
||||
Purely cosmetic or low / no impact to users
|
||||
|
||||
* P1: top priority - i.e. pool of stuff which we should be working on next
|
||||
* P2: still need to fix, but lower than P1
|
||||
* P3: non-urgent
|
||||
* P4: interesting idea - bluesky some day
|
||||
* P5: recorded for posterity/to avoid duplicates. No intention to resolves right now.
|
||||
3. __Priority__ — All issues which are not `T-Other` are assigned a priority:
|
||||
* __[P1](https://github.com/vector-im/element-web/labels/P1):__ Next
|
||||
* __[P2](https://github.com/vector-im/element-web/labels/P2):__ Later
|
||||
* __[P3](https://github.com/vector-im/element-web/labels/P3):__ Eventually
|
||||
* __[P4](https://github.com/vector-im/element-web/labels/P4):__ Interesting —
|
||||
Not yet scheduled, will accept patches
|
||||
* __[P5](https://github.com/vector-im/element-web/labels/P5):__ Dubious —
|
||||
Will not schedule, would consider patches
|
||||
|
||||
bug or feature: **compulsory**
|
||||
4. __Area__ — Most issues are assigned one or several "areas" using one of the
|
||||
many `A-` prefixed labels, e.g. `A-Composer` or `A-Spaces`. Each area label
|
||||
maps to a group of features or portion of the UI surface in the app.
|
||||
|
||||
* bug
|
||||
* feature
|
||||
### Other common labels
|
||||
|
||||
bug severity: **compulsory, if bug**
|
||||
We have a handful of other labels which are added on an as-needed basis, and not expected to be exhaustive:
|
||||
|
||||
* critical - whole app doesn't work
|
||||
* major - entire feature doesn't work
|
||||
* minor - partially broken feature (but still usable)
|
||||
* cosmetic - feature works functionally but UI/UX is broken
|
||||
* __Exceptions__ — Special flags for issues and pull requests:
|
||||
* __[X-Needs-Info](https://github.com/vector-im/element-web/labels/X-Needs-Info):__
|
||||
This issue is blocked pending further information from the reporter
|
||||
* __[X-Regression](https://github.com/vector-im/element-web/labels/X-Regression):__
|
||||
Denotes things breaking which previously worked
|
||||
* __[X-Release-Blocker](https://github.com/vector-im/element-web/labels/X-Release-Blocker):__
|
||||
Issues which must be resolved before making a release
|
||||
|
||||
types
|
||||
* type:* - refers to a particular part of the app; used to filter bugs
|
||||
on a given topic - e.g. VOIP, signup, timeline, etc.
|
||||
* __[Easy](https://github.com/vector-im/element-web/labels/Easy)__ / __[Help
|
||||
Wanted](https://github.com/vector-im/element-web/labels/Help%20Wanted)__ —
|
||||
Well-defined issues which are suitable for folks new to the codebase
|
||||
|
||||
additional categories (self-explanatory):
|
||||
* __[A11y](https://github.com/vector-im/element-web/labels/A11y)__ /
|
||||
__[Meta](https://github.com/vector-im/element-web/labels/Meta)__ /
|
||||
__[I18n](https://github.com/vector-im/element-web/labels/I18n)__ /
|
||||
__[Privacy](https://github.com/vector-im/element-web/labels/Privacy)__ /
|
||||
__[Security](https://github.com/vector-im/element-web/labels/Security)__ —
|
||||
Issues which fall under these conceptual themes (which apply to many software
|
||||
projects and are not specific to Element)
|
||||
|
||||
* release blocker
|
||||
* ui/ux (think of this as cosmetic)
|
||||
* network (specific to network conditions)
|
||||
* platform specific
|
||||
* accessibility
|
||||
* maintenance
|
||||
* performance
|
||||
* i18n
|
||||
* blocked - whether this issue currently can't be progressed due to outside factors
|
||||
* __[Sponsored](https://github.com/vector-im/element-web/labels/Sponsored)__ —
|
||||
Used internally by Element to denote issues with external funding
|
||||
|
||||
community engagement
|
||||
* easy
|
||||
* hacktoberfest
|
||||
* bounty? - proposal to be included in a bounty programme
|
||||
* bounty - included in Status Open Bounty
|
||||
### Ad hoc labels (`Z-`)
|
||||
|
||||
We have reserved the `Z-` prefix for ad hoc labels.
|
||||
|
||||
Any member of the core team is welcome to create labels beginning with `Z-` for
|
||||
any purpose, such as tracking personal areas of interest or providing a common
|
||||
way to label cross-repo initiatives. The prefix avoids interference with the
|
||||
project's main labels.
|
||||
|
||||
@@ -3,7 +3,10 @@ module.exports = {
|
||||
"presets": [
|
||||
["@babel/preset-env", {
|
||||
"targets": [
|
||||
"last 2 Chrome versions", "last 2 Firefox versions", "last 2 Safari versions"
|
||||
"last 2 Chrome versions",
|
||||
"last 2 Firefox versions",
|
||||
"last 2 Safari versions",
|
||||
"last 2 Edge versions",
|
||||
],
|
||||
}],
|
||||
"@babel/preset-typescript",
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
# VoIP Conferencing
|
||||
|
||||
This is a draft proposal for a naive voice/video conferencing implementation for
|
||||
Matrix clients. There are many possible conferencing architectures possible for
|
||||
Matrix (Multipoint Conferencing Unit (MCU); Stream Forwarding Unit (SFU); Peer-
|
||||
to-Peer mesh (P2P), etc; events shared in the group room; events shared 1:1;
|
||||
possibly even out-of-band signalling).
|
||||
|
||||
This is a starting point for a naive MCU implementation which could provide one
|
||||
possible Matrix-wide solution in future, which retains backwards compatibility
|
||||
with standard 1:1 calling.
|
||||
|
||||
* A client chooses to initiate a conference for a given room by starting a
|
||||
voice or video call with a 'conference focus' user. This is a virtual user
|
||||
(typically Application Service) which implements a conferencing bridge. It
|
||||
isn't defined how the client discovers or selects this user.
|
||||
|
||||
* The conference focus user MUST join the room in which the client has
|
||||
initiated the conference - this may require the client to invite the
|
||||
conference focus user to the room, depending on the room's `join_rules`. The
|
||||
conference focus user needs to be in the room to let the bridge eject users
|
||||
from the conference who have left the room in which it was initiated, and aid
|
||||
discovery of the conference by other users in the room. The bridge
|
||||
identifies the room to join based on the user ID by which it was invited.
|
||||
The format of this identifier is implementation dependent for now.
|
||||
|
||||
* If a client leaves the group chat room, they MUST be ejected from the
|
||||
conference. If a client leaves the 1:1 room with the conference focus user,
|
||||
they SHOULD be ejected from the conference.
|
||||
|
||||
* For now, rooms can contain multiple conference focus users - it's left to
|
||||
user or client implementation to select which to converge on. In future this
|
||||
could be mediated using a state event (e.g. `im.vector.call.mcu`), but we
|
||||
can't do that right now as by default normal users can't set arbitrary state
|
||||
events on a room.
|
||||
|
||||
* To participate in the conference, other clients initiates a standard 1:1
|
||||
voice or video call to the conference focus user.
|
||||
|
||||
* For best UX, clients SHOULD show the ongoing voice/video call in the UI
|
||||
context of the group room rather than 1:1 with the focus user. If a client
|
||||
recognises a conference user present in the room, it MAY chose to highlight
|
||||
this in the UI (e.g. with a "conference ongoing" notification, to aid
|
||||
discovery). Clients MAY hide the 1:1 room with the focus user (although in
|
||||
future this room could be used for floor control or other direct
|
||||
communication with the conference focus)
|
||||
|
||||
* When all users have left the conference, the 'conference focus' user SHOULD
|
||||
leave the room.
|
||||
|
||||
* If a conference focus user joins a room but does not receive a 1:1 voice or
|
||||
video call, it SHOULD time out after a period of time and leave the room.
|
||||
@@ -72,6 +72,9 @@ For a good example, see https://develop.element.io/config.json.
|
||||
1. `homeUrl`: Content shown on the inside of the app when a specific room is
|
||||
not selected. By default, no home page is configured. If one is set, a
|
||||
button to access it will be shown in the top left menu.
|
||||
1. `loginForWelcome`: Overrides `welcomeUrl` to make the welcome page be the
|
||||
same page as the login page when `true`. This effectively disables the
|
||||
welcome page.
|
||||
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
|
||||
country selectors, like the phone number input on the registration page.
|
||||
Defaults to `GB` if the given code is unknown or not provided.
|
||||
@@ -110,21 +113,12 @@ For a good example, see https://develop.element.io/config.json.
|
||||
1. `logo`: An HTTP URL to the avatar for the desktop build. Should be 24x24, ideally
|
||||
an SVG.
|
||||
1. `url`: An HTTP URL for where to send the user to download the desktop build.
|
||||
1. `voip_mxid_translate_pattern`: Used to route VoIP calls to different Matrix IDs.
|
||||
Any VoIP calls placed will instead be placed to the translated Matrix ID from the
|
||||
pattern string but still appear to be with the original Matrix ID. Correspondingly,
|
||||
incoming VoIP calls will be made to appear as if they came from a different Matrix ID.
|
||||
The value is a template string with substitution `$(mxid)` which is the complete
|
||||
URL-encoded native Matrix ID, using '=' instead of '%'. For example, a value of
|
||||
`@_myappservice_$(mxid):example.org` would cause any VoIP call to `@bob:foo.example`
|
||||
to be redirected to `@_myappservice_=40bob=3Afoo.example:example.org` and calls
|
||||
from the latter to appear as if they were from the former.
|
||||
This option is experimental and may be removed at any time without notice. It's
|
||||
also strongly advised not to set this option unless you're absolutly certain you
|
||||
know what you're doing.
|
||||
1. `mobileGuideToast`: Whether to show a toast a startup which nudges users on
|
||||
iOS and Android towards the native mobile apps. The toast redirects to the
|
||||
mobile guide if they accept. Defaults to false.
|
||||
1. `audioStreamUrl`: If supplied, show an option on Jitsi widgets to stream
|
||||
audio using Jitsi's live streaming feature. This option is experimental and
|
||||
may be removed at any time without notice.
|
||||
|
||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||
hosted on riot.im. This is the image used if links to your copy of Element
|
||||
|
||||
@@ -17,11 +17,11 @@ the React SDK, you can still override it from the Element Web layer:
|
||||
2. Edit customisations points and make sure export the ones you actually want to
|
||||
activate
|
||||
3. Tweak the Element build process to use the customised module instead of the
|
||||
default by adding this to end of the `plugins` array in `webpack.config.js`:
|
||||
default by adding this to the `additionalPlugins` array in `webpack.config.js`:
|
||||
|
||||
```js
|
||||
new webpack.NormalModuleReplacementPlugin(
|
||||
/src\/customisations\/Security.ts/,
|
||||
/src[\/\\]customisations[\/\\]Security\.ts/,
|
||||
path.resolve(__dirname, 'src/customisations/YourNameSecurity.ts'),
|
||||
),
|
||||
```
|
||||
|
||||
@@ -7,6 +7,14 @@ to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
|
||||
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
|
||||
dropped. Ask in the room if you are unclear about any details here.**
|
||||
|
||||
## Matrix Spaces [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) support (`feature_spaces`)
|
||||
|
||||
Enables showing, using, creating, and managing spaces. Create Spaces from the all new Space Panel (to left of Room List).
|
||||
|
||||
Incompatible with (will disable) `feature_custom_tags`, `feature_communities_v2_prototypes` and stable Communities/Groups support.
|
||||
|
||||
Still in heavy development.
|
||||
|
||||
## Render LaTeX maths in messages (`feature_latex_maths`)
|
||||
|
||||
Enables rendering of LaTeX maths in messages using [KaTeX](https://katex.org/). LaTeX between single dollar-signs is interpreted as inline maths and double dollar-signs as display maths (i.e. centred on its own line).
|
||||
|
||||
@@ -37,5 +37,15 @@
|
||||
"url": "https://element.io/cookie-policy",
|
||||
"text": "Cookie Policy"
|
||||
}
|
||||
]
|
||||
],
|
||||
"hostSignup": {
|
||||
"brand": "Element Home",
|
||||
"cookiePolicyUrl": "https://element.io/cookie-policy",
|
||||
"domains": [
|
||||
"matrix.org"
|
||||
],
|
||||
"privacyPolicyUrl": "https://element.io/privacy",
|
||||
"termsOfServiceUrl": "https://element.io/terms-of-service",
|
||||
"url": "https://ems.element.io/element-home/in-app-loader"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,5 +37,15 @@
|
||||
"url": "https://element.io/cookie-policy",
|
||||
"text": "Cookie Policy"
|
||||
}
|
||||
]
|
||||
],
|
||||
"hostSignup": {
|
||||
"brand": "Element Home",
|
||||
"cookiePolicyUrl": "https://element.io/cookie-policy",
|
||||
"domains": [
|
||||
"matrix.org"
|
||||
],
|
||||
"privacyPolicyUrl": "https://element.io/privacy",
|
||||
"termsOfServiceUrl": "https://element.io/terms-of-service",
|
||||
"url": "https://ems.element.io/element-home/in-app-loader"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "element-web",
|
||||
"version": "1.7.20",
|
||||
"version": "1.7.24",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -58,8 +58,8 @@
|
||||
"highlight.js": "^10.5.0",
|
||||
"jsrsasign": "^10.1.5",
|
||||
"katex": "^0.12.0",
|
||||
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
||||
"matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop",
|
||||
"matrix-js-sdk": "9.10.0",
|
||||
"matrix-react-sdk": "3.17.0",
|
||||
"matrix-widget-api": "^0.1.0-beta.13",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
|
||||
"prop-types": "^15.7.2",
|
||||
|
||||
@@ -22,7 +22,7 @@ limitations under the License.
|
||||
background: -moz-linear-gradient(top, #c5e0f7 0%, #ffffff 100%);
|
||||
background: -webkit-linear-gradient(top, #c5e0f7 0%, #ffffff 100%);
|
||||
background: linear-gradient(to bottom, #c5e0f7 0%, #ffffff 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5e0f7', endColorstr='#ffffff',GradientType=0 );
|
||||
filter: progid:dximagetransform.microsoft.gradient(startColorstr='#c5e0f7', endColorstr='#ffffff', GradientType=0);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
|
||||
width: 100%;
|
||||
min-height: 100%;
|
||||
@@ -41,7 +41,7 @@ limitations under the License.
|
||||
margin-left: 4px;
|
||||
margin-right: 4px;
|
||||
min-width: 80px;
|
||||
background-color: #03B381;
|
||||
background-color: #03b381;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
padding: 12px 22px;
|
||||
@@ -54,7 +54,7 @@ limitations under the License.
|
||||
}
|
||||
|
||||
.mx_HomePage_header {
|
||||
color: #2E2F32;
|
||||
color: #2e2f32;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
@@ -95,7 +95,7 @@ limitations under the License.
|
||||
}
|
||||
|
||||
.mx_FooterLink {
|
||||
color: #368BD6;
|
||||
color: #368bd6;
|
||||
text-decoration: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,8 +16,6 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import EmbeddedPage from 'matrix-react-sdk/src/components/structures/EmbeddedPage';
|
||||
import sanitizeHtml from 'sanitize-html';
|
||||
import { _t } from 'matrix-react-sdk/src/languageHandler';
|
||||
|
||||
@@ -15,8 +15,6 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"Welcome to Element": "Vítá vás Element",
|
||||
"Unknown device": "Neznámé zařízení",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.",
|
||||
"Dismiss": "Zahodit",
|
||||
"Dismiss": "Zavřít",
|
||||
"powered by Matrix": "používá protokol Matrix",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovaný, šifrovaný chat a spolupráce na platformě [matrix]",
|
||||
"Sign In": "Přihlásit se",
|
||||
|
||||
@@ -6,15 +6,15 @@
|
||||
"Welcome to Element": "Willkommen bei Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dezentrale, verschlüsselte Chat- & Kollaborationslösung mittels [matrix]",
|
||||
"Sign In": "Anmelden",
|
||||
"Create Account": "Account erstellen",
|
||||
"Create Account": "Konto erstellen",
|
||||
"Explore rooms": "Räume erkunden",
|
||||
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe Konsole für Details.",
|
||||
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe in die Konsole für mehr Details.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ungültige Konfiguration: Es kann nur eine der Optionen default_server_config, default_server_name oder default_hs_url angegeben werden.",
|
||||
"Invalid configuration: no default server specified.": "Ungültige Konfiguration: Es wurde kein Standardserver angegeben.",
|
||||
"The message from the parser is: %(message)s": "Die Nachricht des Parsers ist: %(message)s",
|
||||
"Invalid JSON": "Ungültiges JSON",
|
||||
"Go to your browser to complete Sign In": "Gehe zu deinem Browser, um die Anmeldung abzuschließen",
|
||||
"Open user settings": "Öffne Nutzer-Einstellungen",
|
||||
"Open user settings": "Benutzereinstellungen öffnen",
|
||||
"Unable to load config file: please refresh the page to try again.": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisiere die Seite, um es erneut zu versuchen.",
|
||||
"Missing indexeddb worker script!": "Fehlendes indexeddb Worker-Skript!",
|
||||
"Previous/next recently visited room or community": "Vorheriger/nächster kürzlich besuchter Raum oder Community",
|
||||
@@ -23,14 +23,14 @@
|
||||
"Failed to start": "Start fehlgeschlagen",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Bitte installiere <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, oder <safariLink>Safari</safariLink> für das beste Erlebnis.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kannst mit deinem aktuellen Browser weiterhin verwenden, aber es kann sein, dass einige oder alle Funktionen nicht funktionieren und das Aussehen und die Bedienung der Anwendung nicht korrekt ist.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Bitte installiere <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> oder <safariLink>Safari</safariLink> für das beste Erlebnis.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kannst deinen aktuellen Browser weiterhin verwenden, es kann aber sein, dass einige oder alle Funktionen nicht verfügbar sind oder dass Aussehen und Bedienung der Anwendung nicht korrekt ist.",
|
||||
"I understand the risks and wish to continue": "Ich verstehe die Risiken und möchte fortfahren",
|
||||
"Your Element is misconfigured": "Dein Element ist fehlkonfiguriert",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Element Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
|
||||
"Your Element is misconfigured": "Dein Element ist falsch konfiguriert",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Element-Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
|
||||
"Download Completed": "Download fertiggestellt",
|
||||
"Open": "Öffnen",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s verwendet erweiterte Browserfunktionen, die von Ihrem aktuellen Browser nicht unterstützt werden.",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s verwendet erweiterte Browserfunktionen, die von deinem Browser nicht unterstützt werden.",
|
||||
"Your browser can't run %(brand)s": "Dein Browser kann %(brand)s nicht ausführen",
|
||||
"Powered by Matrix": "Betrieben mit Matrix"
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"powered by Matrix": "con el poder de Matrix",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Debes usar HTTPS para hacer una llamada con pantalla compartida.",
|
||||
"Welcome to Element": "Te damos la bienvenida a Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas & colaboración impulsada por [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas. Funciona con [matrix]",
|
||||
"Sign In": "Iniciar sesión",
|
||||
"Create Account": "Crear cuenta",
|
||||
"Explore rooms": "Explorar salas",
|
||||
@@ -15,7 +15,7 @@
|
||||
"Invalid JSON": "JSON inválido",
|
||||
"Open user settings": "Abrir opciones de usuario",
|
||||
"Go to your browser to complete Sign In": "Abre tu navegador web para completar el registro",
|
||||
"Missing indexeddb worker script!": "¡Falta el script de trabajo indexeddb!",
|
||||
"Missing indexeddb worker script!": "¡Falta el Worker script “indexeddb”!",
|
||||
"Unable to load config file: please refresh the page to try again.": "No se ha podido cargar el archivo de configuración. Recarga la página para intentarlo otra vez.",
|
||||
"Previous/next recently visited room or community": "Anterior/siguiente sala o comunidad visitada recientemente",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s de escritorio (%(platformName)s)",
|
||||
@@ -23,14 +23,14 @@
|
||||
"Unsupported browser": "Navegador no compatible",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor, instale <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, o <safariLink>Safari</safariLink> para la mejor experiencia.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Puedes seguir utilizando tu navegador actual, pero puede que algunas funcionalidades no estén disponibles o que algunas partes de la aplicación se muestren de forma incorrecta.",
|
||||
"I understand the risks and wish to continue": "Entiendo los riesgos y deseo continuar",
|
||||
"I understand the risks and wish to continue": "Entiendo los riesgos y quiero continuar",
|
||||
"Go to element.io": "Ir a element.io",
|
||||
"Failed to start": "Fallo al iniciar",
|
||||
"Your Element is misconfigured": "Element está mal configurado",
|
||||
"Your Element is misconfigured": "Tu aplicación Element está mal configurada",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Tu configuración de Element contiene JSON inválido. Por favor corrígelo e inténtelo de nuevo.",
|
||||
"Download Completed": "Descarga completada",
|
||||
"Open": "Abrir",
|
||||
"Your browser can't run %(brand)s": "Su navegador no es compatible con %(brand)s",
|
||||
"Your browser can't run %(brand)s": "Tu navegador no es compatible con %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funciones avanzadas que su navegador actual no soporta.",
|
||||
"Powered by Matrix": "Funciona con Matrix"
|
||||
}
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Messagerie et collaboration décentralisées et chiffrées, propulsées par [matrix]",
|
||||
"Sign In": "Se connecter",
|
||||
"Create Account": "Créer un compte",
|
||||
"Explore rooms": "Explorer les salons",
|
||||
"Explore rooms": "Parcourir les salons",
|
||||
"Unexpected error preparing the app. See console for details.": "Une erreur inattendue est survenue pendant la préparation de l’application. Consultez la console pour avoir des détails.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier qu’un des trois champs entre default_server_config, default_server_name et default_hs_url.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier qu’un des trois champs parmis default_server_config, default_server_name et default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Configuration invalide : aucun serveur par défaut spécifié.",
|
||||
"The message from the parser is: %(message)s": "Le message de l’analyseur est : %(message)s",
|
||||
"Invalid JSON": "JSON non valide",
|
||||
@@ -21,7 +21,7 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Navigateur non pris en charge",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Veuillez installer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> ou <safariLink>Safari</safariLink> pour une expérience optimale.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Vous pouvez continuer à utiliser votre navigateur actuel, mais vous risquez de trouver que certaines fonctionnalités et/ou l'apparence de l'application sont incorrectes.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Vous pouvez continuer à utiliser votre navigateur actuel, mais vous risquez de trouver que certaines fonctionnalités et/ou l’apparence de l’application sont incorrectes.",
|
||||
"I understand the risks and wish to continue": "Je comprends les risques et souhaite continuer",
|
||||
"Go to element.io": "Aller vers element.io",
|
||||
"Failed to start": "Échec au démarrage",
|
||||
@@ -31,6 +31,6 @@
|
||||
"Your Element is misconfigured": "Votre Element est mal configuré",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuration de votre Element contient du JSON invalide. Veuillez corriger le problème et recharger la page.",
|
||||
"Your browser can't run %(brand)s": "Votre navigateur ne peut pas exécuter %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne supporte pas.",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne prend pas en charge.",
|
||||
"Powered by Matrix": "Propulsé par Matrix"
|
||||
}
|
||||
|
||||
@@ -7,5 +7,30 @@
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Meán comhrá agus comhoibriú, díláraithe agus criptithe, cumhachtaithe ag [matrix]",
|
||||
"Sign In": "Sínigh Isteach",
|
||||
"Create Account": "Déan cuntas a chruthú",
|
||||
"Explore rooms": "Breathnaigh thart ar na seomraí"
|
||||
"Explore rooms": "Breathnaigh thart ar na seomraí",
|
||||
"Your browser can't run %(brand)s": "Níl do bhrabhsálaí comhoiriúnach do %(brand)s",
|
||||
"Go to your browser to complete Sign In": "Oscail do bhrabhsálaí agus críochnaigh an clárú",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Coinníonn do chumraíocht JSON neamhbhailí. Ceartaigh an fadhb agus athlódáil an leathanach le do thoil.",
|
||||
"Your Element is misconfigured": "Níl do fheidhmchlár Element cumraithe i gceart",
|
||||
"Previous/next recently visited room or community": "roimhe/chéad eile, seomra nó pobal is déanaí",
|
||||
"Failed to start": "Theip chun tosú",
|
||||
"I understand the risks and wish to continue": "Tuigim na rioscaí agus ba mhaith liom lean ar aghaidh",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "An féidir leat úsáid do bhrabhsálaí reatha, ach nár oibrí roinnt nó gach gné agus nár thaispeántar an feidhmchlár i gceart.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Suiteáil <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> chun an taithí is fearr a fháil.",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "Úsáideann %(brand)s gnéithe ardforbartha nach bhfuil ar fáil faoi do bhrabhsálaí reatha.",
|
||||
"Unsupported browser": "Brabhsálaí gan tacaíocht",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s deisce (%(platformName)s)",
|
||||
"Unexpected error preparing the app. See console for details.": "Earráid nuair an feidhmchlár a hullmhú. Feic sa consól le haghaidh eolas.",
|
||||
"Unable to load config file: please refresh the page to try again.": "Ní féidir an comhad cumraíochta a lódáil. Athnuaigh an leathanach chun déanamh iarracht arís le do thoil.",
|
||||
"Download Completed": "Íoslódáil críochnaithe",
|
||||
"Invalid JSON": "JSON neamhbhailí",
|
||||
"The message from the parser is: %(message)s": "Is í an teachtaireacht as an parsálaí: %(message)s",
|
||||
"Invalid configuration: no default server specified.": "Cumraíocht neamhbhailí: Níl aon freastalaí réamhshocraithe a sonrú.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Cumraíocht neamhbhailí: ní féidir ach ceann de default_server_config, default_server_name, nó default_hs_url a shonrú.",
|
||||
"Missing indexeddb worker script!": "An script oibrí \"indexeddb\" ag iarraidh!",
|
||||
"Powered by Matrix": "Cumhachtaithe ag Matrix",
|
||||
"Go to element.io": "Téigh go element.io",
|
||||
"Open user settings": "Oscail socruithe úsáideora",
|
||||
"Open": "Oscail"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"Dismiss": "שחרר",
|
||||
"Dismiss": "התעלם",
|
||||
"powered by Matrix": "מופעל ע\"י Matrix",
|
||||
"Unknown device": "מכשיר לא ידוע",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "עליך להשתמש ב HTTPS בכדי לבצע שיחת ווידאו משותפת.",
|
||||
@@ -8,13 +8,13 @@
|
||||
"Invalid JSON": "JSON לא חוקי",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "תצורה שגויה: ניתן לציין רק אחד מהבאים, default_server_config, default_server_name, או default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "תצורה שגויה: לא צוין שרת ברירת מחדל.",
|
||||
"Open user settings": "פתיחת הגדרות משתמש",
|
||||
"Open user settings": "פתח הגדרות משתמש",
|
||||
"Go to your browser to complete Sign In": "עבור לדפדפן להמשך ההתחברות",
|
||||
"Explore rooms": "שיטוט בחדרים",
|
||||
"Create Account": "יצירת חשבון",
|
||||
"Sign In": "כניסה",
|
||||
"Previous/next recently visited room or community": "הבא\\קודם חדרים וקהילות שביקרתם לאחרונה",
|
||||
"Open": "פתיחה",
|
||||
"Open": "פתח",
|
||||
"Download Completed": "ההורדה הושלמה",
|
||||
"Unexpected error preparing the app. See console for details.": "שגיאה לא צפויה במהלך הכנת האפליקציה. ראו קונסול לפרטים נוספים.",
|
||||
"Unable to load config file: please refresh the page to try again.": "לא יכול לקרוא את קובץ ההגדרות: אנא אתחלו את הדף לנסות שנית.",
|
||||
@@ -32,5 +32,5 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s שולחן עבודה %(platformName)s",
|
||||
"The message from the parser is: %(message)s": "ההודעה מהניתוח היא: %(message)s",
|
||||
"Missing indexeddb worker script!": "חסר סקריפט עובד indexeddb!"
|
||||
"Missing indexeddb worker script!": "סקריפט indexeddb worker חסר!"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"powered by Matrix": "keyrt með Matrix",
|
||||
"Welcome to Element": "Velkomin í Element",
|
||||
"Unknown device": "Óþekkt tæki",
|
||||
"Dismiss": "Hafna",
|
||||
"Dismiss": "Hunsa",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Þú verður að nota HTTPS til að hringja samtal með deilingu á skjá.",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Dulritað dreifvinnsluspjall & samstarfstól keyrt með [matrix]",
|
||||
"Open": "Opna",
|
||||
@@ -18,5 +18,19 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "vinsamlegast setja upp <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, eða <safariLink>Safari</safariLink> fyrir besta reynsluna.",
|
||||
"I understand the risks and wish to continue": "Ég skil áhættuna og óska að halda áfram",
|
||||
"Go to element.io": "farðu í element.io"
|
||||
"Go to element.io": "farðu í element.io",
|
||||
"Unexpected error preparing the app. See console for details.": "Óvænt villa við undirbúning appsins. Sjá nánar í textaskrá vafra.",
|
||||
"Failed to start": "Mistókst að ræsa",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Þú getur haldið áfram að nota núverandi vafra, en sumar eða allir eiginleikar virka ekki og útlit og tilfinning forritsins geta verið röng.",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s notar háþróaða vafraeiginleika sem eru ekki studdir af núverandi vafra þínum.",
|
||||
"Powered by Matrix": "Keyrt af Matrix",
|
||||
"Go to your browser to complete Sign In": "Farðu í vafrann þinn til að ljúka innskráningu",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Borðtölva (%(platformName)s)",
|
||||
"Previous/next recently visited room or community": "Fyrra/næsta nýlega heimsótt herbergi eða samfélag",
|
||||
"Open user settings": "Opna notandastillingar",
|
||||
"Unable to load config file: please refresh the page to try again.": "Ekki er hægt að hlaða stillingaskrána: endurnýjaðu síðuna til að reyna aftur.",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element stillingar þínar innihalda ógilda JSON. Vinsamlegast leiðréttu vandamálið og endurhladdu síðuna.",
|
||||
"Your Element is misconfigured": "Element þitt er rangt stillt",
|
||||
"Invalid configuration: no default server specified.": "Ógild stilling: enginn sjálfgefinn þjónn tilgreindur.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ógild stilling: getur aðeins tilgreint einn af default_server_config, default_server_name eða default_hs_url."
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"Dismiss": "Atmesti",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizuoti, šifruoti pokalbiai ir bendradarbiavimas, veikiantis su [matrix]",
|
||||
"Sign In": "Prisijungti",
|
||||
"Create Account": "Sukurti paskyrą",
|
||||
"Create Account": "Sukurti Paskyrą",
|
||||
"Explore rooms": "Žvalgyti kambarius",
|
||||
"The message from the parser is: %(message)s": "Analizatoriaus žinutė yra: %(message)s",
|
||||
"Invalid JSON": "Klaidingas JSON",
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "സ്ക്രീന് ഷെയറിങ്ങ് കോള് നടത്തണമെങ്കില് https ഉപയോഗിക്കണം.",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "വികേന്ദ്രീകൃത , എന്ക്രിപ്റ്റഡ് ചാറ്റ് & മാട്രിക്സ് നല്കുന്ന കൊളാബൊറേഷന്",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s%(browserName)s%(osName)s",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "ദയവായി <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, അല്ലെങ്കിൽ <safariLink>Safari</safariLink> ഇൻസ്റ്റാൾ ചെയ്യുക",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "ദയവായി <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, അല്ലെങ്കിൽ <safariLink>Safari</safariLink> ഇൻസ്റ്റാൾ ചെയ്യുക.",
|
||||
"Your Element is misconfigured": "നിങ്ങളുടെ Element തെറ്റായിട്ടാണ് കോൺഫിഗർ ചെയ്തിരിക്കുന്നത്",
|
||||
"Invalid configuration: no default server specified.": "അസാധുവായ കോൺഫിഗറേഷൻ: സ്ഥിര സെർവരൊന്നും വ്യക്തമാക്കിയില്ല.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "അസാധുവായ കോൺഫിഗറേഷൻ: can only specify one of default_server_config, default_server_name, or default_hs_url.",
|
||||
"Missing indexeddb worker script!": "Missing indexeddb worker script!",
|
||||
"Invalid configuration: no default server specified.": "അസാധുവായ കോൺഫിഗറേഷൻ: സ്ഥിര സെർവർ ഒന്നും വ്യക്തമാക്കിയില്ല.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "അസാധുവായ കോൺഫിഗറേഷൻ: default_server_config, default_server_name, or default_hs_url-ൽ ഒരെണ്ണം മാത്രമേ വ്യക്തമാക്കാൻ കഴിയൂ.",
|
||||
"Missing indexeddb worker script!": "indexeddb worker സ്ക്രിപ്റ്റ് കണ്ടെത്താനായില്ല!",
|
||||
"Open user settings": "യൂസർ ക്രമീകരങ്ങൾ തുറക്കുക",
|
||||
"Download Completed": "ഡൗൺലോഡ് പൂർത്തിയായി",
|
||||
"Unsupported browser": "പിന്തുണയ്ക്കാത്ത ബ്രൗസർ",
|
||||
|
||||
@@ -22,15 +22,15 @@
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "Niet-ondersteunde browser",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installeer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, of <safariLink>Safari</safariLink> voor de beste gebruikservaring.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "U kunt uw huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Je kunt je huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
|
||||
"I understand the risks and wish to continue": "Ik begrijp de risico's en wil verder gaan",
|
||||
"Go to element.io": "Ga naar element.io",
|
||||
"Failed to start": "Opstarten mislukt",
|
||||
"Open": "Openen",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Je Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
|
||||
"Download Completed": "Download voltooid",
|
||||
"Your Element is misconfigured": "Uw Element is verkeerd geconfigureerd",
|
||||
"Your browser can't run %(brand)s": "Uw browser kan %(brand)s niet draaien",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s gebruikt geavanceerde functies die niet ondersteund worden in uw huidige browser.",
|
||||
"Your Element is misconfigured": "Je Element is verkeerd geconfigureerd",
|
||||
"Your browser can't run %(brand)s": "Je browser kan %(brand)s niet draaien",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s gebruikt geavanceerde functies die niet ondersteund worden in je huidige browser.",
|
||||
"Powered by Matrix": "Gebruikt Matrix technologie"
|
||||
}
|
||||
|
||||
@@ -18,5 +18,14 @@
|
||||
"Download Completed": "Transferência concluída",
|
||||
"Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o ficheiro de configuração: atualize a página para tentar novamente.",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "A configuração do Element contém um JSON inválido. Corrija o problema e recarregue a página.",
|
||||
"Your Element is misconfigured": "O Element está configurado incorretamente"
|
||||
"Your Element is misconfigured": "O Element está configurado incorretamente",
|
||||
"Powered by Matrix": "Desenvolvido por Matrix",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (2%(browserName)s, 3%(osName)s)",
|
||||
"Go to element.io": "Visite element.io",
|
||||
"I understand the risks and wish to continue": "Compreendo os riscos e pretendo continuar",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Podes continuar a utilizar teu browser atual, mas algumas funcionalidades podem não funcionar ou aparecerem de forma incorrecta.",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor, instala <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, ou <safariLink>Safari</safariLink> para uma melhor experiência.",
|
||||
"Unsupported browser": "Browser não suportado",
|
||||
"Previous/next recently visited room or community": "Anterior/seguinte comunidade ou sala recentemente visitado",
|
||||
"Open user settings": "Abrir definições do utilizador"
|
||||
}
|
||||
|
||||
@@ -2,5 +2,7 @@
|
||||
"Unknown device": "නොදන්නා උපාංගයකි",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Welcome to Element": "ඉලමන්ට් වෙත සාදරයෙන් පිළිගනිමු",
|
||||
"Open": "විවෘත කරන්න"
|
||||
"Open": "විවෘත කරන්න",
|
||||
"Powered by Matrix": "මැට්රික්ස් මඟින් බලගන්වා ඇත",
|
||||
"Sign In": "පිවිසෙන්න"
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@
|
||||
"Unknown device": "未知设备",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "您需要使用 HTTPS 以进行共享屏幕通话。",
|
||||
"Welcome to Element": "欢迎来到 Element",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、加密聊天&与协作,由 [matrix] 驱动",
|
||||
"Sign In": "登入",
|
||||
"Create Account": "创建帐号",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "去中心化、加密聊天与协作,由 [matrix] 驱动",
|
||||
"Sign In": "登录",
|
||||
"Create Account": "创建账户",
|
||||
"Explore rooms": "探索聊天室",
|
||||
"The message from the parser is: %(message)s": "语法分析器的信息:%(message)s",
|
||||
"Invalid JSON": "无效的 JSON",
|
||||
@@ -17,20 +17,20 @@
|
||||
"Unable to load config file: please refresh the page to try again.": "无法加载配置文件:请再次刷新页面。",
|
||||
"Open user settings": "打开用户设置",
|
||||
"Previous/next recently visited room or community": "上一个 / 下一个最近访问的聊天室或社区",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s 桌面版 (%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "去您的浏览器完成登录",
|
||||
"%(brand)s Desktop (%(platformName)s)": "%(brand)s 桌面版(%(platformName)s)",
|
||||
"Go to your browser to complete Sign In": "转到您的浏览器以完成登录",
|
||||
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
|
||||
"Unsupported browser": "不支持的浏览器",
|
||||
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "请安装 <chromeLink>Chrome</chromeLink>、<firefoxLink>Firefox</firefoxLink> 或 <safariLink>Safari</safariLink> 以获得最佳体验。",
|
||||
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "您可以继续使用您目前的浏览器,但部分或全部的功能可能无法正常工作,应用程序的外观可能也看起来不正确。",
|
||||
"I understand the risks and wish to continue": "我了解风险并希望继续",
|
||||
"Go to element.io": "去 element.io",
|
||||
"Go to element.io": "前往 element.io",
|
||||
"Failed to start": "启动失败",
|
||||
"Your Element is misconfigured": "Element 配置错误",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element 配置文件中包含无效的JSON,请改正错误并重新加载页面。",
|
||||
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element 配置文件中包含无效的 JSON,请改正错误并重新加载页面。",
|
||||
"Download Completed": "下载成功",
|
||||
"Open": "打开",
|
||||
"Your browser can't run %(brand)s": "浏览器无法运行%(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "当前浏览器不支持%(brand)s调用的高级浏览器特性。",
|
||||
"Your browser can't run %(brand)s": "浏览器无法运行 %(brand)s",
|
||||
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "当前浏览器不支持 %(brand)s 所需的高级浏览器特性。",
|
||||
"Powered by Matrix": "由 Matrix 驱动"
|
||||
}
|
||||
|
||||
@@ -28,7 +28,16 @@ require('katex/dist/katex.css');
|
||||
// These are things that can run before the skin loads - be careful not to reference the react-sdk though.
|
||||
import {parseQsFromFragment} from "./url_utils";
|
||||
import './modernizr';
|
||||
import {settled} from "./promise_utils";
|
||||
|
||||
async function settled(...promises: Array<Promise<any>>) {
|
||||
for (const prom of promises) {
|
||||
try {
|
||||
await prom;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function checkBrowserFeatures() {
|
||||
if (!window.Modernizr) {
|
||||
@@ -83,6 +92,7 @@ async function start() {
|
||||
// load init.ts async so that its code is not executed immediately and we can catch any exceptions
|
||||
const {
|
||||
rageshakePromise,
|
||||
setupLogStorage,
|
||||
preparePlatform,
|
||||
loadOlm,
|
||||
loadConfig,
|
||||
@@ -129,6 +139,9 @@ async function start() {
|
||||
await settled(loadConfigPromise); // wait for it to settle
|
||||
// keep initialising so that we can show any possible error with as many features (theme, i18n) as possible
|
||||
|
||||
// now that the config is ready, try to persist logs
|
||||
const persistLogsPromise = setupLogStorage();
|
||||
|
||||
// Load language after loading config.json so that settingsDefaults.language can be applied
|
||||
const loadLanguagePromise = loadLanguage();
|
||||
// as quickly as we possibly can, set a default theme...
|
||||
@@ -188,6 +201,11 @@ async function start() {
|
||||
await loadThemePromise;
|
||||
await loadLanguagePromise;
|
||||
|
||||
// We don't care if the log persistence made it through successfully, but we do want to
|
||||
// make sure it had a chance to load before we move on. It's prepared much higher up in
|
||||
// the process, making this the first time we check that it did something.
|
||||
await settled(persistLogsPromise);
|
||||
|
||||
// Finally, load the app. All of the other react-sdk imports are in this file which causes the skinner to
|
||||
// run on the components.
|
||||
await loadApp(fragparts.params);
|
||||
|
||||
@@ -33,7 +33,7 @@ import PlatformPeg from "matrix-react-sdk/src/PlatformPeg";
|
||||
import SdkConfig from "matrix-react-sdk/src/SdkConfig";
|
||||
import {setTheme} from "matrix-react-sdk/src/theme";
|
||||
|
||||
import { initRageshake } from "./rageshakesetup";
|
||||
import {initRageshake, initRageshakeStore} from "./rageshakesetup";
|
||||
|
||||
|
||||
export const rageshakePromise = initRageshake();
|
||||
@@ -51,6 +51,14 @@ export function preparePlatform() {
|
||||
}
|
||||
}
|
||||
|
||||
export function setupLogStorage() {
|
||||
if (SdkConfig.get().bug_report_endpoint_url) {
|
||||
return initRageshakeStore();
|
||||
}
|
||||
console.warn("No bug report endpoint set - logs will not be persisted");
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
export async function loadConfig() {
|
||||
// XXX: We call this twice, once here and once in MatrixChat as a prop. We call it here to ensure
|
||||
// granular settings are loaded correctly and to avoid duplicating the override logic for the theme.
|
||||
|
||||
@@ -45,6 +45,7 @@ let userId: string;
|
||||
let jitsiAuth: string;
|
||||
let roomId: string;
|
||||
let openIdToken: IOpenIDCredentials;
|
||||
let roomName: string;
|
||||
|
||||
let widgetApi: WidgetApi;
|
||||
let meetApi: any; // JitsiMeetExternalAPI
|
||||
@@ -104,6 +105,7 @@ let meetApi: any; // JitsiMeetExternalAPI
|
||||
userId = qsParam('userId');
|
||||
jitsiAuth = qsParam('auth', true);
|
||||
roomId = qsParam('roomId', true);
|
||||
roomName = qsParam('roomName', true);
|
||||
|
||||
if (widgetApi) {
|
||||
await readyPromise;
|
||||
@@ -124,6 +126,22 @@ let meetApi: any; // JitsiMeetExternalAPI
|
||||
widgetApi.transport.reply(ev.detail, {}); // ack
|
||||
},
|
||||
);
|
||||
widgetApi.on(`action:${ElementWidgetActions.StartLiveStream}`,
|
||||
(ev: CustomEvent<IWidgetApiRequest>) => {
|
||||
if (meetApi) {
|
||||
meetApi.executeCommand('startRecording', {
|
||||
mode: 'stream',
|
||||
// this looks like it should be rtmpStreamKey but we may be on too old
|
||||
// a version of jitsi meet
|
||||
//rtmpStreamKey: ev.detail.data.rtmpStreamKey,
|
||||
youtubeStreamKey: ev.detail.data.rtmpStreamKey,
|
||||
});
|
||||
widgetApi.transport.reply(ev.detail, {}); // ack
|
||||
} else {
|
||||
widgetApi.transport.reply(ev.detail, {error: {message: "Conference not joined"}});
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
enableJoinButton(); // always enable the button
|
||||
@@ -226,6 +244,7 @@ function joinConference() { // event handler bound in HTML
|
||||
if (displayName) meetApi.executeCommand("displayName", displayName);
|
||||
if (avatarUrl) meetApi.executeCommand("avatarUrl", avatarUrl);
|
||||
if (userId) meetApi.executeCommand("email", userId);
|
||||
if (roomName) meetApi.executeCommand("subject", roomName);
|
||||
|
||||
meetApi.on("readyToClose", () => {
|
||||
switchVisibleContainers();
|
||||
|
||||
@@ -323,6 +323,16 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
return 'Electron Platform'; // no translation required: only used for analytics
|
||||
}
|
||||
|
||||
/**
|
||||
* Return true if platform supports multi-language
|
||||
* spell-checking, otherwise false.
|
||||
*/
|
||||
supportsMultiLanguageSpellCheck(): boolean {
|
||||
// Electron uses OS spell checking on macOS, so no need for in-app options
|
||||
if (isMac) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
setNotificationCount(count: number) {
|
||||
if (this.notificationCount === count) return;
|
||||
super.setNotificationCount(count);
|
||||
@@ -488,13 +498,21 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
return this.eventIndexManager;
|
||||
}
|
||||
|
||||
setLanguage(preferredLangs: string[]) {
|
||||
this._ipcCall('setLanguage', preferredLangs).catch(error => {
|
||||
console.log("Failed to send setLanguage IPC to Electron");
|
||||
setSpellCheckLanguages(preferredLangs: string[]) {
|
||||
this._ipcCall('setSpellCheckLanguages', preferredLangs).catch(error => {
|
||||
console.log("Failed to send setSpellCheckLanguages IPC to Electron");
|
||||
console.error(error);
|
||||
});
|
||||
}
|
||||
|
||||
async getSpellCheckLanguages(): Promise<string[]> {
|
||||
return this._ipcCall('getSpellCheckLanguages');
|
||||
}
|
||||
|
||||
async getAvailableSpellCheckLanguages(): Promise<string[]> {
|
||||
return this._ipcCall('getAvailableSpellCheckLanguages');
|
||||
}
|
||||
|
||||
getSSOCallbackUrl(fragmentAfterLogin: string): URL {
|
||||
const url = super.getSSOCallbackUrl(fragmentAfterLogin);
|
||||
url.protocol = "element";
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
/*
|
||||
Copyright 2021 New Vector Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
export async function settled(...promises: Array<Promise<any>>) {
|
||||
for (const prom of promises) {
|
||||
try {
|
||||
await prom;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,8 @@ import SdkConfig from "matrix-react-sdk/src/SdkConfig";
|
||||
import sendBugReport from "matrix-react-sdk/src/rageshake/submit-rageshake";
|
||||
|
||||
export function initRageshake() {
|
||||
const prom = rageshake.init();
|
||||
// we manually check persistence for rageshakes ourselves
|
||||
const prom = rageshake.init(/*setUpPersistence=*/false);
|
||||
prom.then(() => {
|
||||
console.log("Initialised rageshake.");
|
||||
console.log("To fix line numbers in Chrome: " +
|
||||
@@ -50,6 +51,10 @@ export function initRageshake() {
|
||||
return prom;
|
||||
}
|
||||
|
||||
export function initRageshakeStore() {
|
||||
return rageshake.tryInitStorage();
|
||||
}
|
||||
|
||||
window.mxSendRageshake = function(text: string, withLogs?: boolean) {
|
||||
const url = SdkConfig.get().bug_report_endpoint_url;
|
||||
if (!url) {
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/*
|
||||
Copyright 2021 New Vector Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
import React from 'react';
|
||||
import AppTile from "matrix-react-sdk/src/components/views/elements/AppTile";
|
||||
import { IWidget } from "matrix-widget-api";
|
||||
import MatrixClientContext from "matrix-react-sdk/src/contexts/MatrixClientContext";
|
||||
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||
|
||||
// add React and ReactPerf to the global namespace, to make them easier to access via the console
|
||||
// this incidentally means we can forget our React imports in JSX files without penalty.
|
||||
window.React = React;
|
||||
|
||||
export interface IStartOpts {
|
||||
widgetId: string;
|
||||
roomId?: string;
|
||||
}
|
||||
|
||||
export async function loadApp(widget: IWidget) {
|
||||
return (
|
||||
<MatrixClientContext.Provider value={MatrixClientPeg.get()}>
|
||||
<div id="mx_ThinWrapper_container">
|
||||
<AppTile
|
||||
app={widget}
|
||||
fullWidth={true}
|
||||
userId={MatrixClientPeg.get().getUserId()}
|
||||
userWidget={false}
|
||||
/>
|
||||
</div>
|
||||
</MatrixClientContext.Provider>
|
||||
);
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Thin Widget</title>
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
</head>
|
||||
<body>
|
||||
<noscript>Sorry, this requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
|
||||
<section id="matrixchat" style="height: 100%; overflow: auto;" class="notranslate"></section>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,58 +0,0 @@
|
||||
/*
|
||||
Copyright 2021 New Vector Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// TODO: Match the user's theme: https://github.com/vector-im/element-web/issues/12794
|
||||
|
||||
@font-face {
|
||||
font-family: 'Nunito';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('~matrix-react-sdk/res/fonts/Nunito/Nunito-Regular.ttf') format('truetype');
|
||||
}
|
||||
|
||||
$dark-fg: #edf3ff;
|
||||
$dark-bg: #363c43;
|
||||
$light-fg: #2e2f32;
|
||||
$light-bg: #fff;
|
||||
body {
|
||||
font-family: Nunito, Arial, Helvetica, sans-serif;
|
||||
background-color: $dark-bg;
|
||||
color: $dark-fg;
|
||||
}
|
||||
|
||||
body.theme-light {
|
||||
background-color: $light-bg;
|
||||
color: $light-fg;
|
||||
}
|
||||
|
||||
body, html {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#mx_ThinWrapper_container {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
|
||||
.mx_AppTileFullWidth {
|
||||
width: unset !important;
|
||||
height: calc(100% - 10px); // 5px top + bottom borders on the AppTile
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
/*
|
||||
Copyright 2021 New Vector Ltd.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
// We have to trick webpack into loading our CSS for us.
|
||||
require("./index.scss");
|
||||
import * as qs from 'querystring';
|
||||
import { settled } from "../promise_utils";
|
||||
import ReactDOM from 'react-dom';
|
||||
import { StopGapWidgetDriver, WidgetRenderMode } from "matrix-react-sdk/src/stores/widgets/StopGapWidgetDriver";
|
||||
import WidgetUtils from "matrix-react-sdk/src/utils/WidgetUtils";
|
||||
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||
|
||||
// The widget's options are encoded into the fragment to avoid leaking info to the server. The widget
|
||||
// spec on the other hand requires the widgetId and parentUrl to show up in the regular query string.
|
||||
const widgetQuery = qs.parse(window.location.hash.substring(2));
|
||||
const qsParam = (name: string, optional = false): string => {
|
||||
if (!optional && (!widgetQuery[name] || typeof (widgetQuery[name]) !== 'string')) {
|
||||
throw new Error(`Expected singular ${name} in query string`);
|
||||
}
|
||||
return widgetQuery[name] as string;
|
||||
};
|
||||
|
||||
const accessToken = qsParam("accessToken");
|
||||
const homeserverUrl = qsParam("hsUrl");
|
||||
const roomId = qsParam("roomId", true);
|
||||
const widgetId = qsParam("widgetId"); // state_key or account data key
|
||||
|
||||
// TODO: clear href so people don't accidentally copy/paste it
|
||||
//window.location.hash = '';
|
||||
|
||||
(async function() {
|
||||
const {
|
||||
rageshakePromise,
|
||||
preparePlatform,
|
||||
loadSkin,
|
||||
loadOlm, // to handle timelines
|
||||
loadLanguage,
|
||||
loadTheme,
|
||||
showError,
|
||||
_t,
|
||||
} = await import(
|
||||
/* webpackChunkName: "thin-wrapper-init" */
|
||||
/* webpackPreload: true */
|
||||
"../init");
|
||||
|
||||
try {
|
||||
// give rageshake a chance to load/fail, we don't actually assert rageshake loads, we allow it to fail if no IDB
|
||||
console.log("Waiting for rageshake...");
|
||||
await settled(rageshakePromise);
|
||||
|
||||
console.log("Running startup...");
|
||||
StopGapWidgetDriver.RENDER_MODE = WidgetRenderMode.ThinWrapper;
|
||||
await loadSkin();
|
||||
await loadOlm();
|
||||
preparePlatform();
|
||||
await MatrixClientPeg.shim(homeserverUrl, accessToken);
|
||||
await loadTheme();
|
||||
await loadLanguage();
|
||||
|
||||
console.log("Locating widget...");
|
||||
const stateEvent = await MatrixClientPeg.get()._http.authedRequest(
|
||||
undefined, "GET",
|
||||
`/rooms/${encodeURIComponent(roomId)}/state/im.vector.modular.widgets/${encodeURIComponent(widgetId)}`,
|
||||
undefined, undefined, {},
|
||||
);
|
||||
if (!stateEvent?.url) {
|
||||
throw new Error("Invalid widget");
|
||||
}
|
||||
const app = WidgetUtils.makeAppConfig(
|
||||
widgetId,
|
||||
stateEvent,
|
||||
MatrixClientPeg.get().getUserId(), // assume we are the sender
|
||||
roomId,
|
||||
widgetId);
|
||||
|
||||
// Now we can start our custom code
|
||||
console.log("Loading app...");
|
||||
const module = await import(
|
||||
/* webpackChunkName: "thin-wrapper-app" */
|
||||
/* webpackPreload: true */
|
||||
"./app");
|
||||
window.matrixChat = ReactDOM.render(await module.loadApp(app),
|
||||
document.getElementById('matrixchat'));
|
||||
} catch (err) {
|
||||
console.error(err);
|
||||
// Like the compatibility page, AWOOOOOGA at the user
|
||||
// This uses the default brand since the app config is unavailable.
|
||||
await showError(_t("Your Element is misconfigured"), [
|
||||
err.translatedMessage || _t("Unexpected error preparing the app. See console for details."),
|
||||
]);
|
||||
}
|
||||
})();
|
||||
@@ -8,6 +8,10 @@ const webpack = require("webpack");
|
||||
let og_image_url = process.env.RIOT_OG_IMAGE_URL;
|
||||
if (!og_image_url) og_image_url = 'https://app.element.io/themes/element/img/logos/opengraph.png';
|
||||
|
||||
const additionalPlugins = [
|
||||
// This is where you can put your customisation replacements.
|
||||
];
|
||||
|
||||
module.exports = (env, argv) => {
|
||||
if (process.env.CI_PACKAGE) {
|
||||
// Don't run minification for CI builds (this is only set for runs on develop)
|
||||
@@ -31,15 +35,6 @@ module.exports = (env, argv) => {
|
||||
const reactSdkSrcDir = path.resolve(require.resolve("matrix-react-sdk/package.json"), '..', 'src');
|
||||
const jsSdkSrcDir = path.resolve(require.resolve("matrix-js-sdk/package.json"), '..', 'src');
|
||||
|
||||
const themeBundles = {
|
||||
"theme-legacy": "./node_modules/matrix-react-sdk/res/themes/legacy-light/css/legacy-light.scss",
|
||||
"theme-legacy-dark": "./node_modules/matrix-react-sdk/res/themes/legacy-dark/css/legacy-dark.scss",
|
||||
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
|
||||
"theme-dark": "./node_modules/matrix-react-sdk/res/themes/dark/css/dark.scss",
|
||||
"theme-light-custom": "./node_modules/matrix-react-sdk/res/themes/light-custom/css/light-custom.scss",
|
||||
"theme-dark-custom": "./node_modules/matrix-react-sdk/res/themes/dark-custom/css/dark-custom.scss",
|
||||
};
|
||||
|
||||
return {
|
||||
...development,
|
||||
|
||||
@@ -49,10 +44,14 @@ module.exports = (env, argv) => {
|
||||
"mobileguide": "./src/vector/mobile_guide/index.js",
|
||||
"jitsi": "./src/vector/jitsi/index.ts",
|
||||
"usercontent": "./node_modules/matrix-react-sdk/src/usercontent/index.js",
|
||||
"thinwidget": "./src/vector/thin_widget/index.ts",
|
||||
|
||||
// CSS themes
|
||||
...themeBundles,
|
||||
"theme-legacy": "./node_modules/matrix-react-sdk/res/themes/legacy-light/css/legacy-light.scss",
|
||||
"theme-legacy-dark": "./node_modules/matrix-react-sdk/res/themes/legacy-dark/css/legacy-dark.scss",
|
||||
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
|
||||
"theme-dark": "./node_modules/matrix-react-sdk/res/themes/dark/css/dark.scss",
|
||||
"theme-light-custom": "./node_modules/matrix-react-sdk/res/themes/light-custom/css/light-custom.scss",
|
||||
"theme-dark-custom": "./node_modules/matrix-react-sdk/res/themes/dark-custom/css/dark-custom.scss",
|
||||
},
|
||||
|
||||
optimization: {
|
||||
@@ -318,7 +317,7 @@ module.exports = (env, argv) => {
|
||||
// HtmlWebpackPlugin will screw up our formatting like the names
|
||||
// of the themes and which chunks we actually care about.
|
||||
inject: false,
|
||||
excludeChunks: ['mobileguide', 'usercontent', 'jitsi', 'thinwidget'],
|
||||
excludeChunks: ['mobileguide', 'usercontent', 'jitsi'],
|
||||
minify: argv.mode === 'production',
|
||||
vars: {
|
||||
og_image_url: og_image_url,
|
||||
@@ -333,14 +332,6 @@ module.exports = (env, argv) => {
|
||||
chunks: ['jitsi'],
|
||||
}),
|
||||
|
||||
// This is a small thin wrapper for widgets (popout; isolated stack)
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/thin_widget/index.html',
|
||||
filename: 'thin_widget.html',
|
||||
minify: argv.mode === 'production',
|
||||
chunks: ['thinwidget', ...Object.keys(themeBundles)],
|
||||
}),
|
||||
|
||||
// This is the mobile guide's entry point (separate for faster mobile loading)
|
||||
new HtmlWebpackPlugin({
|
||||
template: './src/vector/mobile_guide/index.html',
|
||||
@@ -370,6 +361,8 @@ module.exports = (env, argv) => {
|
||||
minify: argv.mode === 'production',
|
||||
chunks: ['usercontent'],
|
||||
}),
|
||||
|
||||
...additionalPlugins,
|
||||
],
|
||||
|
||||
output: {
|
||||
|
||||
72
yarn.lock
72
yarn.lock
@@ -2307,10 +2307,10 @@ blueimp-canvas-to-blob@^3.28.0:
|
||||
resolved "https://registry.yarnpkg.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.28.0.tgz#c8ab4dc6bb08774a7f273798cdf94b0776adf6c8"
|
||||
integrity sha512-5q+YHzgGsuHQ01iouGgJaPJXod2AzTxJXmVv90PpGrRxU7G7IqgPqWXz+PBmt3520jKKi6irWbNV87DicEa7wg==
|
||||
|
||||
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
|
||||
version "4.11.9"
|
||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
|
||||
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
|
||||
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
|
||||
version "4.12.0"
|
||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
|
||||
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
|
||||
|
||||
bn.js@^5.0.0, bn.js@^5.1.1:
|
||||
version "5.1.3"
|
||||
@@ -2390,7 +2390,7 @@ braces@^3.0.1, braces@~3.0.2:
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
|
||||
brorand@^1.0.1:
|
||||
brorand@^1.0.1, brorand@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
||||
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
|
||||
@@ -3049,11 +3049,6 @@ commander@^2.19.0, commander@^2.20.0:
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
|
||||
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
|
||||
|
||||
commander@^6.1.0:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
|
||||
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
|
||||
|
||||
commander@~2.19.0:
|
||||
version "2.19.0"
|
||||
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
|
||||
@@ -4001,17 +3996,17 @@ electron-to-chromium@^1.3.634:
|
||||
integrity sha512-T7mYop3aDpRHIQaUYcmzmh6j9MAe560n6ukqjJMbVC6bVTau7dSpvB18bcsBPPtOSe10cKxhJFtlbEzLa0LL1g==
|
||||
|
||||
elliptic@^6.5.3:
|
||||
version "6.5.3"
|
||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
|
||||
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
|
||||
version "6.5.4"
|
||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
|
||||
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
|
||||
dependencies:
|
||||
bn.js "^4.4.0"
|
||||
brorand "^1.0.1"
|
||||
bn.js "^4.11.9"
|
||||
brorand "^1.1.0"
|
||||
hash.js "^1.0.0"
|
||||
hmac-drbg "^1.0.0"
|
||||
inherits "^2.0.1"
|
||||
minimalistic-assert "^1.0.0"
|
||||
minimalistic-crypto-utils "^1.0.0"
|
||||
hmac-drbg "^1.0.1"
|
||||
inherits "^2.0.4"
|
||||
minimalistic-assert "^1.0.1"
|
||||
minimalistic-crypto-utils "^1.0.1"
|
||||
|
||||
emittery@^0.7.1:
|
||||
version "0.7.2"
|
||||
@@ -5596,7 +5591,7 @@ highlight.js@^10.5.0:
|
||||
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f"
|
||||
integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==
|
||||
|
||||
hmac-drbg@^1.0.0:
|
||||
hmac-drbg@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
|
||||
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
|
||||
@@ -7511,9 +7506,10 @@ mathml-tag-names@^2.1.3:
|
||||
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
|
||||
integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
|
||||
|
||||
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop":
|
||||
version "9.6.0"
|
||||
resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/6ad3fb16b3813c717943f6bc8bca5a55fe325477"
|
||||
matrix-js-sdk@9.10.0:
|
||||
version "9.10.0"
|
||||
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-9.10.0.tgz#ba32981391168778b301c01362a503a8469d3844"
|
||||
integrity sha512-xvpgvTmCbS8dRTVvVULKbSwyES0y2F17TPukLIIXZMTqqeEBhfycVIjCV6LuACc0WBoRsZbi1/BIlgeWY7J03A==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.5"
|
||||
another-json "^0.2.0"
|
||||
@@ -7533,9 +7529,10 @@ matrix-mock-request@^1.2.3:
|
||||
bluebird "^3.5.0"
|
||||
expect "^1.20.2"
|
||||
|
||||
"matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop":
|
||||
version "3.13.1"
|
||||
resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/e9740f5a693861fb993bf9b85560d6c25784bca9"
|
||||
matrix-react-sdk@3.17.0:
|
||||
version "3.17.0"
|
||||
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.17.0.tgz#8793c0106f9058af755309c90ee5e3da8ff2a163"
|
||||
integrity sha512-e8AMlReejmSjt+THys9U4i575MqQ+D4TWi2JfTJ8liS7nqT+Rj2oL4cwA1nRs71kYgPYqknRZIl1mcn7yi0vGQ==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.12.5"
|
||||
await-lock "^2.1.0"
|
||||
@@ -7563,13 +7560,12 @@ matrix-mock-request@^1.2.3:
|
||||
katex "^0.12.0"
|
||||
linkifyjs "^2.1.9"
|
||||
lodash "^4.17.20"
|
||||
matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop"
|
||||
matrix-js-sdk "9.10.0"
|
||||
matrix-widget-api "^0.1.0-beta.13"
|
||||
minimist "^1.2.5"
|
||||
pako "^2.0.3"
|
||||
parse5 "^6.0.1"
|
||||
png-chunks-extract "^1.0.0"
|
||||
project-name-generator "^2.1.9"
|
||||
prop-types "^15.7.2"
|
||||
qrcode "^1.4.4"
|
||||
qs "^6.9.6"
|
||||
@@ -7585,7 +7581,7 @@ matrix-mock-request@^1.2.3:
|
||||
tar-js "^0.3.0"
|
||||
text-encoding-utf-8 "^1.0.2"
|
||||
url "^0.11.0"
|
||||
velocity-animate "^1.5.2"
|
||||
velocity-animate "^2.0.6"
|
||||
what-input "^5.2.10"
|
||||
zxcvbn "^4.4.2"
|
||||
|
||||
@@ -7832,7 +7828,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
||||
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
|
||||
|
||||
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
|
||||
minimalistic-crypto-utils@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
|
||||
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
|
||||
@@ -9700,14 +9696,6 @@ progress@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
|
||||
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
|
||||
|
||||
project-name-generator@^2.1.9:
|
||||
version "2.1.9"
|
||||
resolved "https://registry.yarnpkg.com/project-name-generator/-/project-name-generator-2.1.9.tgz#959177f1feb2355d74fa98745d72a65a5f75b674"
|
||||
integrity sha512-QmLHqz2C4VHmAyDEAFlVfnuWAHr4vwZhK2bbm4IrwuHNzNKOdG9b4U+NmQbsm1uOoV4kGWv7+FVLsu7Bb/ieYQ==
|
||||
dependencies:
|
||||
commander "^6.1.0"
|
||||
lodash "^4.17.20"
|
||||
|
||||
promise-inflight@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
|
||||
@@ -12109,10 +12097,10 @@ vary@~1.1.2:
|
||||
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
||||
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
|
||||
|
||||
velocity-animate@^1.5.2:
|
||||
version "1.5.2"
|
||||
resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105"
|
||||
integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==
|
||||
velocity-animate@^2.0.6:
|
||||
version "2.0.6"
|
||||
resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-2.0.6.tgz#1811ca14df7fbbef05740256f6cec0fd1b76575f"
|
||||
integrity sha512-tU+/UtSo3GkIjEfk2KM4e24DvpgX0+FzfLr7XqNwm9BCvZUtbCHPq/AFutx/Mkp2bXlUS9EcX8yxu8XmzAv2Kw==
|
||||
|
||||
vendors@^1.0.0:
|
||||
version "1.0.4"
|
||||
|
||||
Reference in New Issue
Block a user