Compare commits
223 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf26ec9d1a | ||
|
|
b0d004d716 | ||
|
|
607c37adfd | ||
|
|
83591b4567 | ||
|
|
7b59379d29 | ||
|
|
9f3cd93bd6 | ||
|
|
ff86c8acc7 | ||
|
|
1cebd3dcd1 | ||
|
|
fa5475f1c0 | ||
|
|
2a564884e7 | ||
|
|
46a6dbe9b8 | ||
|
|
f07e3c3b25 | ||
|
|
392de5a54f | ||
|
|
9ed4a07b28 | ||
|
|
1b0b3e1a44 | ||
|
|
21781adb9e | ||
|
|
dc3cc37784 | ||
|
|
135d5f4cc7 | ||
|
|
013e059ffc | ||
|
|
5e049efc87 | ||
|
|
7294bec1c8 | ||
|
|
0c9f0e52bd | ||
|
|
0e15bf124a | ||
|
|
a142a5a30c | ||
|
|
a5daa142eb | ||
|
|
a34766bd05 | ||
|
|
312e1bab47 | ||
|
|
3cf4d15192 | ||
|
|
64c23ae18d | ||
|
|
47772f520d | ||
|
|
6fc742f229 | ||
|
|
c197f7996b | ||
|
|
efbb66ba4a | ||
|
|
fe6006f275 | ||
|
|
6bf03415ac | ||
|
|
8043aebe1a | ||
|
|
d23086a6e8 | ||
|
|
eabd91c29c | ||
|
|
0eff02c69b | ||
|
|
515db517ca | ||
|
|
6cf4fc1026 | ||
|
|
d7c4ef2fe7 | ||
|
|
2e642310b8 | ||
|
|
71fb2e04a9 | ||
|
|
e84861f770 | ||
|
|
ec9a38c2fe | ||
|
|
c6f62632d8 | ||
|
|
2561e3a64f | ||
|
|
5041e6f3d9 | ||
|
|
67b87e26e8 | ||
|
|
d3778ab1fd | ||
|
|
ed551c375d | ||
|
|
52a3f4e1a8 | ||
|
|
b8af903703 | ||
|
|
6eeeaff399 | ||
|
|
c14bbea0a1 | ||
|
|
43171c05d3 | ||
|
|
8c899ab13f | ||
|
|
4eb0f014b8 | ||
|
|
8f13e8b2bb | ||
|
|
4903089e41 | ||
|
|
2db876d12c | ||
|
|
d373e2891e | ||
|
|
8b0257d24b | ||
|
|
fa3d3aa4dd | ||
|
|
9ca438087e | ||
|
|
037d8c071c | ||
|
|
89bb2dba38 | ||
|
|
f61aae7e3f | ||
|
|
ceacf3bf54 | ||
|
|
5e4e382dec | ||
|
|
956c199fcf | ||
|
|
36f9d37487 | ||
|
|
5bc15cf83c | ||
|
|
ab180bc98d | ||
|
|
a13fbab4e4 | ||
|
|
f522305593 | ||
|
|
15c0561588 | ||
|
|
146ccc37a2 | ||
|
|
c22199f92f | ||
|
|
7af68bddea | ||
|
|
7ca40bed32 | ||
|
|
e8913b843d | ||
|
|
1088a78720 | ||
|
|
e006e92255 | ||
|
|
12bdb5ffe5 | ||
|
|
a92e676e28 | ||
|
|
17027cb515 | ||
|
|
3cd7e1c18c | ||
|
|
6f85fc9e8c | ||
|
|
0401e86216 | ||
|
|
fbd5ffc198 | ||
|
|
d1d626fb6f | ||
|
|
03887f9d1b | ||
|
|
ad55924af5 | ||
|
|
7391846eda | ||
|
|
f3656c2792 | ||
|
|
b56a97ab3d | ||
|
|
3735dc9fa3 | ||
|
|
7a7ea8c7f6 | ||
|
|
9b7e03d557 | ||
|
|
fb64a0a46c | ||
|
|
dd4f5131c7 | ||
|
|
f48ca740fc | ||
|
|
6d553d1ecd | ||
|
|
3cabd195d2 | ||
|
|
7e3eee2591 | ||
|
|
5c747f9db6 | ||
|
|
ffa4616acf | ||
|
|
3ba3c1b881 | ||
|
|
a98c052664 | ||
|
|
37119efec9 | ||
|
|
0c18f944cc | ||
|
|
ec091ce8de | ||
|
|
1b4f4b6b65 | ||
|
|
35d1222cba | ||
|
|
5b8c5c0601 | ||
|
|
ce1bc98ae6 | ||
|
|
f7bb2c02fb | ||
|
|
eab6ffe7db | ||
|
|
cb5ef44d3f | ||
|
|
9820e59559 | ||
|
|
88339fc782 | ||
|
|
d6125d0d0c | ||
|
|
cc840df352 | ||
|
|
ddf733a7cc | ||
|
|
4b0fa940bb | ||
|
|
1498872214 | ||
|
|
2c0559dbea | ||
|
|
7062015e25 | ||
|
|
5ffdc79bc7 | ||
|
|
6ada5e4397 | ||
|
|
19e183c801 | ||
|
|
5117c04883 | ||
|
|
575751323c | ||
|
|
716c5c828b | ||
|
|
7bfda36ae5 | ||
|
|
636f6db51c | ||
|
|
dcbe51c855 | ||
|
|
7e6d07ea88 | ||
|
|
4c92e0aa2c | ||
|
|
8440abcee5 | ||
|
|
5b1c615498 | ||
|
|
a3a8da1746 | ||
|
|
7373e9cdd7 | ||
|
|
24e4162e76 | ||
|
|
c219be1dc2 | ||
|
|
4e619b1693 | ||
|
|
f7f2e6c936 | ||
|
|
14f59801d7 | ||
|
|
279a661176 | ||
|
|
36c07a1c3a | ||
|
|
46b75e8c3c | ||
|
|
fd5bb40560 | ||
|
|
6d32d0b322 | ||
|
|
e275441701 | ||
|
|
748513aa9a | ||
|
|
77731b5674 | ||
|
|
9963c690f2 | ||
|
|
8e81685a9f | ||
|
|
94e721acf2 | ||
|
|
3545b2751d | ||
|
|
83eae467f0 | ||
|
|
605c4ac038 | ||
|
|
5e783124e8 | ||
|
|
36243fb4d3 | ||
|
|
d6884d5b0f | ||
|
|
27e6401c97 | ||
|
|
21ea6c6283 | ||
|
|
cb60089d44 | ||
|
|
fe99264553 | ||
|
|
38fe2c2a33 | ||
|
|
dd9898e687 | ||
|
|
1ff06c4be4 | ||
|
|
5a7efcd738 | ||
|
|
071223120b | ||
|
|
0259eb6419 | ||
|
|
9d91e6366d | ||
|
|
d1a5376dae | ||
|
|
f283e68073 | ||
|
|
83ed26e5b9 | ||
|
|
0d213fc6db | ||
|
|
a0599e84d9 | ||
|
|
82286d45ed | ||
|
|
2bab328f8d | ||
|
|
a7d1d9880b | ||
|
|
76ce250421 | ||
|
|
0533e559ae | ||
|
|
19e0848698 | ||
|
|
a49e1a70db | ||
|
|
29f186bc18 | ||
|
|
7faba49f66 | ||
|
|
561d0c9a4c | ||
|
|
358d27f2ba | ||
|
|
f89fd9c888 | ||
|
|
3faf1912af | ||
|
|
b18e4f079f | ||
|
|
bad97db302 | ||
|
|
d120c3b93e | ||
|
|
ff70339aad | ||
|
|
c7d8a24f4e | ||
|
|
d903214ddf | ||
|
|
b6d1d0bf5d | ||
|
|
4113d6a2f3 | ||
|
|
56c0d3ec33 | ||
|
|
1a36160c90 | ||
|
|
fce5b4dd78 | ||
|
|
2e5b0fb72d | ||
|
|
57e597ec13 | ||
|
|
259ca06f73 | ||
|
|
c0a148c018 | ||
|
|
9e27cb713f | ||
|
|
644a46bdfd | ||
|
|
b99bdbcd4e | ||
|
|
e0c2131869 | ||
|
|
9981f897a4 | ||
|
|
57672ad384 | ||
|
|
26cbd16b40 | ||
|
|
64a961ec00 | ||
|
|
af57c9e321 | ||
|
|
98b4681dc5 | ||
|
|
f1531d2b12 | ||
|
|
b9eab9fe29 |
163
CHANGELOG.md
163
CHANGELOG.md
@@ -1,3 +1,166 @@
|
||||
Changes in [1.5.4](https://github.com/vector-im/riot-web/releases/tag/v1.5.4) (2019-11-25)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.4-rc.2...v1.5.4)
|
||||
|
||||
* No changes since rc.2
|
||||
|
||||
Changes in [1.5.4-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.5.4-rc.2) (2019-11-22)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.4-rc.1...v1.5.4-rc.2)
|
||||
|
||||
* react-sdk rc.2 to fix an error in Safari and some cosmetic
|
||||
bugs
|
||||
|
||||
Changes in [1.5.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.4-rc.1) (2019-11-20)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.3...v1.5.4-rc.1)
|
||||
|
||||
* Add doc for custom themes
|
||||
[\#11444](https://github.com/vector-im/riot-web/pull/11444)
|
||||
* Use new theme API in react-sdk
|
||||
[\#11442](https://github.com/vector-im/riot-web/pull/11442)
|
||||
* preload warning triangle
|
||||
[\#11441](https://github.com/vector-im/riot-web/pull/11441)
|
||||
* Update from Weblate
|
||||
[\#11440](https://github.com/vector-im/riot-web/pull/11440)
|
||||
* Add entitlements file for mic & camera permissions on macOS
|
||||
[\#11435](https://github.com/vector-im/riot-web/pull/11435)
|
||||
* Fix error/exception in electron signing script
|
||||
[\#11429](https://github.com/vector-im/riot-web/pull/11429)
|
||||
* Merge the `feature_user_info_panel` flag into `feature_dm_verification`
|
||||
[\#11426](https://github.com/vector-im/riot-web/pull/11426)
|
||||
* Let the user's homeserver config override the build config
|
||||
[\#11409](https://github.com/vector-im/riot-web/pull/11409)
|
||||
* Add cross-signing labs flag to develop and document
|
||||
[\#11408](https://github.com/vector-im/riot-web/pull/11408)
|
||||
* Update from Weblate
|
||||
[\#11405](https://github.com/vector-im/riot-web/pull/11405)
|
||||
* Trigger a theme change on startup, not just a tint change
|
||||
[\#11381](https://github.com/vector-im/riot-web/pull/11381)
|
||||
* Perform favicon updates twice in Chrome
|
||||
[\#11375](https://github.com/vector-im/riot-web/pull/11375)
|
||||
* Add labs documentation for Mjolnir
|
||||
[\#11275](https://github.com/vector-im/riot-web/pull/11275)
|
||||
* Add description of user info feature in labs doc
|
||||
[\#11360](https://github.com/vector-im/riot-web/pull/11360)
|
||||
* Update from Weblate
|
||||
[\#11359](https://github.com/vector-im/riot-web/pull/11359)
|
||||
* Add DM verification feature to labs.md
|
||||
[\#11356](https://github.com/vector-im/riot-web/pull/11356)
|
||||
* Add feature_dm_verification to labs
|
||||
[\#11355](https://github.com/vector-im/riot-web/pull/11355)
|
||||
* Document feature flag process
|
||||
[\#11341](https://github.com/vector-im/riot-web/pull/11341)
|
||||
* Remove unused feature flags
|
||||
[\#11343](https://github.com/vector-im/riot-web/pull/11343)
|
||||
|
||||
Changes in [1.5.3](https://github.com/vector-im/riot-web/releases/tag/v1.5.3) (2019-11-06)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.2...v1.5.3)
|
||||
|
||||
* Remove the 'auto hide menu bar' option on Mac
|
||||
[\#11326](https://github.com/vector-im/riot-web/pull/11326)
|
||||
* Expose feature_user_info_panel on riot.im/develop
|
||||
[\#11304](https://github.com/vector-im/riot-web/pull/11304)
|
||||
* Upgrade electron-notarize
|
||||
[\#11312](https://github.com/vector-im/riot-web/pull/11312)
|
||||
* Fix close window behaviour on Macos
|
||||
[\#11309](https://github.com/vector-im/riot-web/pull/11309)
|
||||
* Merge: Add dependency to eslint-plugin-react-hooks as react-sdk did
|
||||
[\#11307](https://github.com/vector-im/riot-web/pull/11307)
|
||||
* Add dependency to eslint-plugin-react-hooks as react-sdk did
|
||||
[\#11306](https://github.com/vector-im/riot-web/pull/11306)
|
||||
* Update from Weblate
|
||||
[\#11300](https://github.com/vector-im/riot-web/pull/11300)
|
||||
|
||||
Changes in [1.5.2](https://github.com/vector-im/riot-web/releases/tag/v1.5.2) (2019-11-04)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.1...v1.5.2)
|
||||
|
||||
* Fix close window behaviour on Macos
|
||||
[\#11311](https://github.com/vector-im/riot-web/pull/11311)
|
||||
|
||||
Changes in [1.5.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.1) (2019-11-04)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.1-rc.2...v1.5.1)
|
||||
|
||||
* No changes since rc.2
|
||||
|
||||
Changes in [1.5.1-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.5.1-rc.2) (2019-11-01)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.1-rc.1...v1.5.1-rc.2)
|
||||
|
||||
* Updated react-sdk with fix for bug that caused room filtering to
|
||||
omit results.
|
||||
|
||||
Changes in [1.5.1-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.1-rc.1) (2019-10-30)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.0...v1.5.1-rc.1)
|
||||
|
||||
* Add ability to hide tray icon on non-Mac (which has no tray icon)
|
||||
[\#11258](https://github.com/vector-im/riot-web/pull/11258)
|
||||
* Fix bug preventing display from sleeping after a call
|
||||
[\#11264](https://github.com/vector-im/riot-web/pull/11264)
|
||||
* Remove mention of CI scripts from docs
|
||||
[\#11257](https://github.com/vector-im/riot-web/pull/11257)
|
||||
* Fix skinning replaces being broken since being rewritten as React FC's
|
||||
[\#11254](https://github.com/vector-im/riot-web/pull/11254)
|
||||
* Update config docs about identity servers
|
||||
[\#11249](https://github.com/vector-im/riot-web/pull/11249)
|
||||
* Remove unneeded help about identity servers
|
||||
[\#11248](https://github.com/vector-im/riot-web/pull/11248)
|
||||
* Update from Weblate
|
||||
[\#11243](https://github.com/vector-im/riot-web/pull/11243)
|
||||
* Update sample config for new matrix.org CS API URL
|
||||
[\#11207](https://github.com/vector-im/riot-web/pull/11207)
|
||||
* clarify where the e2e tests are located
|
||||
[\#11115](https://github.com/vector-im/riot-web/pull/11115)
|
||||
* Update from Weblate
|
||||
[\#11171](https://github.com/vector-im/riot-web/pull/11171)
|
||||
* Prevent referrers from being sent
|
||||
[\#6155](https://github.com/vector-im/riot-web/pull/6155)
|
||||
* Add darkModeSupport to allow dark themed title bar.
|
||||
[\#11140](https://github.com/vector-im/riot-web/pull/11140)
|
||||
* Fix the label of Turkish language
|
||||
[\#11124](https://github.com/vector-im/riot-web/pull/11124)
|
||||
* Update default HS config to match well-known
|
||||
[\#11112](https://github.com/vector-im/riot-web/pull/11112)
|
||||
|
||||
Changes in [1.5.0](https://github.com/vector-im/riot-web/releases/tag/v1.5.0) (2019-10-18)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.0-rc.1...v1.5.0)
|
||||
|
||||
* Upgrade to JS SDK v2.4.2 and React SDK v1.7.0
|
||||
* Port Windows signing and macOS notarization to release
|
||||
[\#11158](https://github.com/vector-im/riot-web/pull/11158)
|
||||
* Sign main Windows executable
|
||||
[\#11126](https://github.com/vector-im/riot-web/pull/11126)
|
||||
* Notarise the macOS app
|
||||
[\#11119](https://github.com/vector-im/riot-web/pull/11119)
|
||||
|
||||
Changes in [1.5.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.0-rc.1) (2019-10-09)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.2...v1.5.0-rc.1)
|
||||
|
||||
* Update from Weblate
|
||||
[\#11104](https://github.com/vector-im/riot-web/pull/11104)
|
||||
* Bump Olm to 3.1.4 for olm_session_describe
|
||||
[\#11103](https://github.com/vector-im/riot-web/pull/11103)
|
||||
* Enable Webpack production mode for start:js:prod
|
||||
[\#11098](https://github.com/vector-im/riot-web/pull/11098)
|
||||
* add settingDefaults to sample config
|
||||
[\#9919](https://github.com/vector-im/riot-web/pull/9919)
|
||||
* Add config.json copy instruction to 'Development' as well
|
||||
[\#11062](https://github.com/vector-im/riot-web/pull/11062)
|
||||
* Revert "Run yarn upgrade"
|
||||
[\#11055](https://github.com/vector-im/riot-web/pull/11055)
|
||||
* Run yarn upgrade
|
||||
[\#11050](https://github.com/vector-im/riot-web/pull/11050)
|
||||
* Request persistent storage on Electron
|
||||
[\#11052](https://github.com/vector-im/riot-web/pull/11052)
|
||||
* Remove docs for CIDER feature
|
||||
[\#11047](https://github.com/vector-im/riot-web/pull/11047)
|
||||
|
||||
Changes in [1.4.2](https://github.com/vector-im/riot-web/releases/tag/v1.4.2) (2019-10-04)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.2-rc.1...v1.4.2)
|
||||
|
||||
38
README.md
38
README.md
@@ -73,26 +73,11 @@ guide](https://yarnpkg.com/docs/install/) if you do not have it already.
|
||||
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
|
||||
1. Switch to the riot-web directory: `cd riot-web`.
|
||||
1. Install the prerequisites: `yarn install`.
|
||||
1. If you're using the `develop` branch then it is recommended to set up a proper
|
||||
development environment ("Setting up a dev environment" below) however one can
|
||||
install the develop versions of the dependencies instead:
|
||||
```bash
|
||||
scripts/fetch-develop.deps.sh
|
||||
```
|
||||
Whenever you git pull on `riot-web` you will also probably need to force an update
|
||||
to these dependencies - the simplest way is to re-run the script, but you can also
|
||||
manually update and rebuild them:
|
||||
```bash
|
||||
cd matrix-js-sdk
|
||||
git pull
|
||||
yarn install # re-run to pull in any new dependencies
|
||||
cd ../matrix-react-sdk
|
||||
git pull
|
||||
yarn install
|
||||
```
|
||||
Or just use https://riot.im/develop - the continuous integration release of the
|
||||
develop branch. (Note that we don't reference the develop versions in git directly
|
||||
due to https://github.com/npm/npm/issues/3055.)
|
||||
* If you're using the `develop` branch, then it is recommended to set up a
|
||||
proper development environment (see [Setting up a dev
|
||||
environment](#setting-up-a-dev-environment) below). Alternatively, you
|
||||
can use https://riot.im/develop - the continuous integration release of
|
||||
the develop branch.
|
||||
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
1. `yarn dist` to build a tarball to deploy. Untaring this file will give
|
||||
@@ -162,13 +147,13 @@ override the desktop app's default settings if desired.
|
||||
Running from Docker
|
||||
===================
|
||||
|
||||
The Docker image can be used to serve riot-web as a web server. The easiest way to use
|
||||
The Docker image can be used to serve riot-web as a web server. The easiest way to use
|
||||
it is to use the prebuilt image:
|
||||
```bash
|
||||
docker run -p 80:80 vectorim/riot-web
|
||||
```
|
||||
```
|
||||
|
||||
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
||||
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
|
||||
if your custom config was located at `/etc/riot-web/config.json` then your Docker command
|
||||
would be:
|
||||
```bash
|
||||
@@ -290,6 +275,9 @@ bundle.css.map 116 kB 0 [emitted] main
|
||||
and rebuilds source files when they change. This development server also
|
||||
disables caching, so do NOT use it in production.
|
||||
|
||||
Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
|
||||
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||
|
||||
___
|
||||
@@ -323,6 +311,10 @@ changes), in an instance of Chrome on your desktop, with `yarn
|
||||
test-multi`. This also gives you the option of running the tests in 'debug'
|
||||
mode, which is useful for stepping through the tests in the developer tools.
|
||||
|
||||
### End-to-End tests
|
||||
|
||||
See [matrix-react-sdk](https://github.com/matrix-org/matrix-react-sdk/#end-to-end-tests) how to run the end-to-end tests.
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"default_server_config": {
|
||||
"m.homeserver": {
|
||||
"base_url": "https://matrix.org",
|
||||
"base_url": "https://matrix-client.matrix.org",
|
||||
"server_name": "matrix.org"
|
||||
},
|
||||
"m.identity_server": {
|
||||
@@ -48,5 +48,8 @@
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
"https://matrix.org": false
|
||||
},
|
||||
"settingDefaults": {
|
||||
"breadcrumbs": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,18 +18,14 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
`default_is_url`, however these are deprecated. They are maintained for backwards
|
||||
compatibility with older configurations. `default_is_url` is respected only
|
||||
if `default_hs_url` is used.
|
||||
* The identity server is used for verifying third party identifiers like emails
|
||||
and phone numbers. It is not used to store your password or account information.
|
||||
If not provided, the identity server defaults to vector.im. Currently the only
|
||||
two public identity servers are https://matrix.org and https://vector.im, however
|
||||
in future identity servers will be decentralised. In the future it will be possible
|
||||
to disable the identity server functionality.
|
||||
* Riot will fail to load if a mix of `default_server_config`, `default_server_name`, or
|
||||
`default_hs_url` is specified. When multiple sources are specified, it is unclear
|
||||
which should take priority and therefore the application cannot continue.
|
||||
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or exposed to the user
|
||||
in the `labs` section of settings. The available optional experimental features vary from
|
||||
release to release. The available features are described in [labs.md](labs.md).
|
||||
* As of Riot 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
||||
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or
|
||||
exposed to the user in the `labs` section of settings. The available
|
||||
optional experimental features vary from release to release and are [documented](labs.md). The feature flag process is
|
||||
[documented](feature-flags.md) as well.
|
||||
1. `showLabsSettings`: Shows the "labs" tab of user settings even when no `features` are enabled
|
||||
or present. Useful for getting at settings which may be otherwise hidden.
|
||||
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
|
||||
@@ -100,6 +96,34 @@ it, you can build Riot, but run
|
||||
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
|
||||
each time you download a new version of Riot.
|
||||
|
||||
Identity servers
|
||||
================
|
||||
|
||||
The identity server is used for inviting other users to a room via third party
|
||||
identifiers like emails and phone numbers. It is not used to store your password
|
||||
or account information.
|
||||
|
||||
As of Riot 1.4.0, all identity server functions are optional and you are
|
||||
prompted to agree to terms before data is sent to the identity server.
|
||||
|
||||
Riot will check multiple sources when looking for an identity server to use in
|
||||
the following order of preference:
|
||||
|
||||
1. The identity server set in the user's account data
|
||||
* For a new user, no value is present in their account data. It is only set
|
||||
if the user visits Settings and manually changes their identity server.
|
||||
2. The identity server provided by the `.well-known` lookup that occurred at
|
||||
login
|
||||
3. The identity server provided by the Riot config file
|
||||
|
||||
If none of these sources have an identity server set, then Riot will prompt the
|
||||
user to set an identity server first when attempting to use features that
|
||||
require one.
|
||||
|
||||
Currently the only two public identity servers are https://vector.im and
|
||||
https://matrix.org, however in the future identity servers will be
|
||||
decentralised.
|
||||
|
||||
Desktop app configuration
|
||||
=========================
|
||||
|
||||
|
||||
112
docs/feature-flags.md
Normal file
112
docs/feature-flags.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Feature flags
|
||||
|
||||
When developing new features for Riot, we use feature flags to give us more
|
||||
flexibility and control over when and where those features are enabled.
|
||||
|
||||
For example, flags make the following things possible:
|
||||
|
||||
* Extended testing of a feature via labs on develop
|
||||
* Enabling features when ready instead of the first moment the code is released
|
||||
* Testing a feature with a specific set of users (by enabling only on a specific
|
||||
Riot instance)
|
||||
|
||||
The size of the feature controlled by a feature flag may vary widely: it could
|
||||
be a large project like reactions or a smaller change to an existing algorithm.
|
||||
A large project might use several feature flags if it's useful to control the
|
||||
deployment of different portions independently.
|
||||
|
||||
Everyone involved in a feature (engineering, design, product, reviewers) should
|
||||
think about its deployment plan up front as best as possible so we can have the
|
||||
right feature flags in place from the start.
|
||||
|
||||
## Interaction with spec process
|
||||
|
||||
Historically, we have often used feature flags to guard client features that
|
||||
depend on unstable spec features. Unfortunately, there was never clear agreement
|
||||
about how long such a flag should live for, when it should be removed, etc.
|
||||
|
||||
Under the [new spec
|
||||
process](https://github.com/matrix-org/matrix-doc/pull/2324), server-side
|
||||
unstable features can be used by clients and enabled by default as long as
|
||||
clients commit to doing the associated clean up work once a feature stabilises.
|
||||
|
||||
## Starting work on a feature
|
||||
|
||||
When starting work on a feature, we should create a matching feature flag:
|
||||
|
||||
1. Add a new
|
||||
[setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
of the form:
|
||||
```js
|
||||
"feature_cats": {
|
||||
isFeature: true,
|
||||
displayName: _td("Adds cats everywhere"),
|
||||
supportedLevels: LEVELS_FEATURE,
|
||||
default: false,
|
||||
},
|
||||
```
|
||||
2. Check whether the feature is enabled as appropriate:
|
||||
```js
|
||||
SettingsStore.isFeatureEnabled("feature_cats")
|
||||
```
|
||||
3. Add the feature to the [set of labs on develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json):
|
||||
```json
|
||||
"features": {
|
||||
"feature_cats": "labs"
|
||||
},
|
||||
```
|
||||
4. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
|
||||
With these steps completed, the feature is disabled by default, but can be
|
||||
enabled on develop by interested users for testing.
|
||||
|
||||
Different features may have different deployment plans for when to enable where.
|
||||
The following lists a few common options.
|
||||
|
||||
## Enabling by default on develop
|
||||
|
||||
Set the feature to `enable` in the [develop config](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json):
|
||||
|
||||
```json
|
||||
"features": {
|
||||
"feature_cats": "enable"
|
||||
},
|
||||
```
|
||||
|
||||
## Enabling by default on staging and app
|
||||
|
||||
Set the feature to `enable` in the [app
|
||||
config](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json).
|
||||
|
||||
## Feature deployed successfully
|
||||
|
||||
Once we're confident that a feature is working well, we should remove the flag:
|
||||
|
||||
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
2. Remove all `isFeatureEnabled` lines that test for the feature's setting
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. Remove feature state from
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
|
||||
and [app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
|
||||
configs
|
||||
5. Celebrate! 🥳
|
||||
|
||||
## Convert to a regular setting (optional)
|
||||
|
||||
Sometimes we decide a feature should always be user-controllable as a setting
|
||||
even after it has been fully deployed. In that case, we would craft a new,
|
||||
regular setting:
|
||||
|
||||
1. Remove the feature flag from
|
||||
[settings](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
|
||||
and add a regular setting with the appropriate levels for your feature
|
||||
2. Replace the `isFeatureEnabled` lines with `getValue` or similar calls
|
||||
according to the [settings
|
||||
docs](https://github.com/matrix-org/matrix-react-sdk/blob/develop/docs/settings.md)
|
||||
(checking carefully, as we may want a different mix of code paths when the
|
||||
feature is always present but gated by a setting)
|
||||
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
|
||||
4. Remove feature state from
|
||||
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
|
||||
and [app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
|
||||
configs
|
||||
27
docs/labs.md
27
docs/labs.md
@@ -46,11 +46,28 @@ Once enabled, send a custom state event to a room to set values:
|
||||
|
||||
That's it. Now should see your new counter under the header.
|
||||
|
||||
## New simple composer (`feature_cider_composer`)
|
||||
|
||||
An experimental, faster, message composer which should be more reliable and less prone to problems when
|
||||
using your chosen input method.
|
||||
|
||||
## Multiple integration managers (`feature_many_integration_managers`)
|
||||
|
||||
Exposes a way to access all the integration managers known to Riot. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).
|
||||
|
||||
## New ways to ignore people (`feature_mjolnir`)
|
||||
|
||||
When enabled, a new settings tab appears for users to be able to manage their ban lists.
|
||||
This is a different kind of ignoring where the ignored user's messages still get rendered,
|
||||
but are hidden by default.
|
||||
|
||||
Ban lists are rooms within Matrix, proposed as [MSC2313](https://github.com/matrix-org/matrix-doc/pull/2313).
|
||||
[Mjolnir](https://github.com/matrix-org/mjolnir) is a set of moderation tools which support
|
||||
ban lists.
|
||||
|
||||
## Verifications in DMs (`feature_dm_verification`)
|
||||
|
||||
An implementation of [MSC2241](https://github.com/matrix-org/matrix-doc/pull/2241). When enabled, verification might not work with devices which don't support MSC2241.
|
||||
|
||||
This also includes a new implementation of the user & member info panel, designed to share more code between showing community members & room members. Built on top of this new panel is also a new UX for verification from the member panel.
|
||||
|
||||
## Cross-signing (`feature_cross_signing`)
|
||||
|
||||
Cross-signing ([MSC1756](https://github.com/matrix-org/matrix-doc/pull/1756))
|
||||
improves the device verification experience by allowing you to verify a user
|
||||
instead of verifying each of their devices.
|
||||
|
||||
@@ -11,11 +11,11 @@ As of Jan 2017, skins are not fully supported; riot is the only available skin.
|
||||
To define a theme for Riot:
|
||||
|
||||
1. Pick a name, e.g. `teal`. at time of writing we have `light` and `dark`.
|
||||
2. Fork `src/skins/vector/css/themes/dark.scss` to be teal.scss
|
||||
3. Fork `src/skins/vector/css/themes/_base.scss` to be _teal.scss
|
||||
4. Override variables in _teal.scss as desired. You may wish to delete ones
|
||||
which don't differ from _base.scss, to make it clear which are being
|
||||
overridden. If every single colour is being changed (as per _dark.scss)
|
||||
2. Fork `src/skins/vector/css/themes/dark.scss` to be `teal.scss`
|
||||
3. Fork `src/skins/vector/css/themes/_base.scss` to be `_teal.scss`
|
||||
4. Override variables in `_teal.scss` as desired. You may wish to delete ones
|
||||
which don't differ from `_base.scss`, to make it clear which are being
|
||||
overridden. If every single colour is being changed (as per `_dark.scss`)
|
||||
then you might as well keep them all.
|
||||
5. Add the theme to the list of entrypoints in webpack.config.js
|
||||
6. Add the theme to the list of themes in matrix-react-sdk's UserSettings.js
|
||||
@@ -23,3 +23,58 @@ To define a theme for Riot:
|
||||
|
||||
In future, the assets for a theme will probably be gathered together into a
|
||||
single directory tree.
|
||||
|
||||
Custom Themes
|
||||
=============
|
||||
|
||||
Themes derived from the built in themes may also be defined in settings.
|
||||
|
||||
To avoid name collisions, the internal name of a theme is
|
||||
`custom-${theme.name}`. So if you want to set the custom theme below as the
|
||||
default theme, you would use `default_theme: "custom-Electric Blue"`.
|
||||
|
||||
eg. in config.json:
|
||||
|
||||
```
|
||||
"settingDefaults": {
|
||||
"custom_themes": [
|
||||
{
|
||||
"name": "Electric Blue",
|
||||
"is_dark": false,
|
||||
"colors": {
|
||||
"accent-color": "#3596fc",
|
||||
"primary-color": "#368bd6",
|
||||
"warning-color": "#ff4b55",
|
||||
"sidebar-color": "#27303a",
|
||||
"roomlist-background-color": "#f3f8fd",
|
||||
"roomlist-text-color": "#2e2f32",
|
||||
"roomlist-text-secondary-color": "#61708b",
|
||||
"roomlist-highlights-color": "#ffffff",
|
||||
"roomlist-separator-color": "#e3e8f0",
|
||||
"timeline-background-color": "#ffffff",
|
||||
"timeline-text-color": "#2e2f32",
|
||||
"timeline-text-secondary-color": "#61708b",
|
||||
"timeline-highlights-color": "#f3f8fd"
|
||||
}
|
||||
}, {
|
||||
"name": "Deep Purple",
|
||||
"is_dark": true,
|
||||
"colors": {
|
||||
"accent-color": "#6503b3",
|
||||
"primary-color": "#368bd6",
|
||||
"warning-color": "#b30356",
|
||||
"sidebar-color": "#15171B",
|
||||
"roomlist-background-color": "#22262E",
|
||||
"roomlist-text-color": "#A1B2D1",
|
||||
"roomlist-text-secondary-color": "#EDF3FF",
|
||||
"roomlist-highlights-color": "#343A46",
|
||||
"roomlist-separator-color": "#a1b2d1",
|
||||
"timeline-background-color": "#181b21",
|
||||
"timeline-text-color": "#EDF3FF",
|
||||
"timeline-text-secondary-color": "#A1B2D1",
|
||||
"timeline-highlights-color": "#22262E"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
25
electron_app/build/entitlements.mac.plist
Normal file
25
electron_app/build/entitlements.mac.plist
Normal file
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<!-- Entitlements from electron-builder's defaults
|
||||
(https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/templates/entitlements.mac.plist)
|
||||
nb. This does *not* include the app sandbox: at the time of adding this file,
|
||||
we were using electron-builder 21.2.0 which does not have the sandbox entitlement.
|
||||
Latest electron-builder does, but it appears to be causing issues:
|
||||
(https://github.com/electron-userland/electron-builder/issues/4390)
|
||||
-->
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<!-- https://github.com/electron-userland/electron-builder/issues/3940 -->
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
|
||||
<!-- Our own additional entitlements (we need to access the camera and
|
||||
mic for VoIP calls -->
|
||||
<key>com.apple.security.device.camera</key>
|
||||
<true/>
|
||||
<key>com.apple.security.device.audio-input</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "1.4.2",
|
||||
"version": "1.5.4",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"update_base_url": "https://packages.riot.im/desktop/update/",
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_name": "matrix.org",
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
|
||||
1
electron_app/riot.im/env.sh
Normal file
1
electron_app/riot.im/env.sh
Normal file
@@ -0,0 +1 @@
|
||||
export OSSLSIGNCODE_SIGNARGS='-pkcs11module /Library/Frameworks/eToken.framework/Versions/Current/libeToken.dylib -pkcs11engine /usr/local/lib/engines/engine_pkcs11.so -certs electron_app/riot.im/New_Vector_Ltd.pem -key 0a3271cbc1ec0fd8afb37f6bbe0cd65ba08d3b4d -t http://timestamp.comodoca.com -h sha256 -verbose'
|
||||
@@ -77,6 +77,18 @@ try {
|
||||
try {
|
||||
// Load local config and use it to override values from the one baked with the build
|
||||
const localConfig = require(path.join(app.getPath('userData'), 'config.json'));
|
||||
|
||||
// If the local config has a homeserver defined, don't use the homeserver from the build
|
||||
// config. This is to avoid a problem where Riot thinks there are multiple homeservers
|
||||
// defined, and panics as a result.
|
||||
const homeserverProps = ['default_is_url', 'default_hs_url', 'default_server_name', 'default_server_config'];
|
||||
if (Object.keys(localConfig).find(k => homeserverProps.includes(k))) {
|
||||
// Rip out all the homeserver options from the vector config
|
||||
vectorConfig = Object.keys(vectorConfig)
|
||||
.filter(k => !homeserverProps.includes(k))
|
||||
.reduce((obj, key) => {obj[key] = vectorConfig[key]; return obj;}, {});
|
||||
}
|
||||
|
||||
vectorConfig = Object.assign(vectorConfig, localConfig);
|
||||
} catch (e) {
|
||||
// Could not load local config, this is expected in most cases.
|
||||
@@ -86,8 +98,14 @@ const store = new Store({ name: "electron-config" });
|
||||
|
||||
let mainWindow = null;
|
||||
global.appQuitting = false;
|
||||
global.minimizeToTray = store.get('minimizeToTray', true);
|
||||
|
||||
// It's important to call `path.join` so we don't end up with the packaged asar in the final path.
|
||||
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
|
||||
const iconPath = path.join(__dirname, "..", "..", "img", iconFile);
|
||||
const trayConfig = {
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
};
|
||||
|
||||
// handle uncaught errors otherwise it displays
|
||||
// stack traces in popup dialogs, which is terrible (which
|
||||
@@ -118,16 +136,17 @@ ipcMain.on('loudNotification', function() {
|
||||
}
|
||||
});
|
||||
|
||||
let powerSaveBlockerId;
|
||||
let powerSaveBlockerId = null;
|
||||
ipcMain.on('app_onAction', function(ev, payload) {
|
||||
switch (payload.action) {
|
||||
case 'call_state':
|
||||
if (powerSaveBlockerId && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (powerSaveBlockerId !== null && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (payload.state === 'ended') {
|
||||
powerSaveBlocker.stop(powerSaveBlockerId);
|
||||
powerSaveBlockerId = null;
|
||||
}
|
||||
} else {
|
||||
if (payload.state === 'connected') {
|
||||
if (powerSaveBlockerId === null && payload.state === 'connected') {
|
||||
powerSaveBlockerId = powerSaveBlocker.start('prevent-display-sleep');
|
||||
}
|
||||
}
|
||||
@@ -167,10 +186,16 @@ ipcMain.on('ipcCall', async function(ev, payload) {
|
||||
}
|
||||
break;
|
||||
case 'getMinimizeToTrayEnabled':
|
||||
ret = global.minimizeToTray;
|
||||
ret = tray.hasTray();
|
||||
break;
|
||||
case 'setMinimizeToTrayEnabled':
|
||||
store.set('minimizeToTray', global.minimizeToTray = args[0]);
|
||||
if (args[0]) {
|
||||
// Create trayIcon icon
|
||||
tray.create(trayConfig);
|
||||
} else {
|
||||
tray.destroy();
|
||||
}
|
||||
store.set('minimizeToTray', args[0]);
|
||||
break;
|
||||
case 'getAutoHideMenuBarEnabled':
|
||||
ret = global.mainWindow.isMenuBarAutoHide();
|
||||
@@ -329,11 +354,6 @@ app.on('ready', () => {
|
||||
console.log('No update_base_url is defined: auto update is disabled');
|
||||
}
|
||||
|
||||
// It's important to call `path.join` so we don't end up with the packaged
|
||||
// asar in the final path.
|
||||
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
|
||||
const iconPath = path.join(__dirname, "..", "..", "img", iconFile);
|
||||
|
||||
// Load the previous window state with fallback to defaults
|
||||
const mainWindowState = windowStateKeeper({
|
||||
defaultWidth: 1024,
|
||||
@@ -366,15 +386,8 @@ app.on('ready', () => {
|
||||
mainWindow.loadURL('vector://vector/webapp/');
|
||||
Menu.setApplicationMenu(vectorMenu);
|
||||
|
||||
// explicitly hide because setApplicationMenu on Linux otherwise shows...
|
||||
// https://github.com/electron/electron/issues/9621
|
||||
mainWindow.hide();
|
||||
|
||||
// Create trayIcon icon
|
||||
tray.create({
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
});
|
||||
if (store.get('minimizeToTray', true)) tray.create(trayConfig);
|
||||
|
||||
mainWindow.once('ready-to-show', () => {
|
||||
mainWindowState.manage(mainWindow);
|
||||
@@ -391,7 +404,8 @@ app.on('ready', () => {
|
||||
mainWindow = global.mainWindow = null;
|
||||
});
|
||||
mainWindow.on('close', (e) => {
|
||||
if (global.minimizeToTray && !global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
||||
// If we are not quitting and have a tray icon then minimize to tray
|
||||
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
||||
// On Mac, closing the window just hides it
|
||||
// (this is generally how single-window Mac apps
|
||||
// behave, eg. Mail.app)
|
||||
|
||||
@@ -26,6 +26,13 @@ exports.hasTray = function hasTray() {
|
||||
return (trayIcon !== null);
|
||||
};
|
||||
|
||||
exports.destroy = function() {
|
||||
if (trayIcon) {
|
||||
trayIcon.destroy();
|
||||
trayIcon = null;
|
||||
}
|
||||
};
|
||||
|
||||
exports.create = function(config) {
|
||||
// no trays on darwin
|
||||
if (process.platform === 'darwin' || trayIcon) return;
|
||||
|
||||
21
package.json
21
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "1.4.2",
|
||||
"version": "1.5.4",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -49,7 +49,7 @@
|
||||
"electron": "yarn install:electron && electron .",
|
||||
"start:res": "node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
|
||||
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress",
|
||||
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress --mode production",
|
||||
"start:js-sdk": "node scripts/yarn-sub.js matrix-js-sdk start:watch",
|
||||
"start:js-sdk:prod": "cross-env NODE_ENV=production node scripts/yarn-sub.js matrix-js-sdk start:watch",
|
||||
"start:react-sdk": "node scripts/yarn-sub.js matrix-react-sdk start:all",
|
||||
@@ -74,10 +74,10 @@
|
||||
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#91e1e566",
|
||||
"gfm.css": "^1.1.2",
|
||||
"highlight.js": "^9.13.1",
|
||||
"matrix-js-sdk": "2.4.1",
|
||||
"matrix-react-sdk": "1.6.2",
|
||||
"matrix-js-sdk": "2.4.4",
|
||||
"matrix-react-sdk": "1.7.3",
|
||||
"modernizr": "^3.6.0",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.0.tgz",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
|
||||
"prop-types": "^15.7.2",
|
||||
"react": "^16.9.0",
|
||||
"react-dom": "^16.9.0",
|
||||
@@ -111,11 +111,13 @@
|
||||
"electron-builder": "^21.2.0",
|
||||
"electron-builder-squirrel-windows": "^21.2.0",
|
||||
"electron-devtools-installer": "^2.2.4",
|
||||
"electron-notarize": "^0.2.0",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-flowtype": "^2.50.3",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"eslint-plugin-react-hooks": "^2.2.0",
|
||||
"expect": "^1.16.0",
|
||||
"file-loader": "^3.0.1",
|
||||
"fs-extra": "^0.30.0",
|
||||
@@ -145,6 +147,7 @@
|
||||
"postcss-simple-vars": "^4.1.0",
|
||||
"postcss-strip-inline-comments": "^0.1.5",
|
||||
"rimraf": "^2.4.3",
|
||||
"shell-escape": "^0.2.0",
|
||||
"source-map-loader": "^0.2.4",
|
||||
"webpack": "^4.23.1",
|
||||
"webpack-cli": "^3.1.2",
|
||||
@@ -152,7 +155,7 @@
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"electronVersion": "6.0.11",
|
||||
"electronVersion": "7.1.2",
|
||||
"files": [
|
||||
"node_modules/**",
|
||||
"src/**"
|
||||
@@ -177,7 +180,8 @@
|
||||
"afterInstall": "electron_app/build/linux/after-install.tpl"
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.social-networking"
|
||||
"category": "public.app-category.social-networking",
|
||||
"darkModeSupport": true
|
||||
},
|
||||
"win": {
|
||||
"target": {
|
||||
@@ -188,6 +192,7 @@
|
||||
"buildResources": "electron_app/build",
|
||||
"output": "electron_app/dist",
|
||||
"app": "electron_app"
|
||||
}
|
||||
},
|
||||
"afterSign": "scripts/electron_afterSign.js"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_name": "matrix.org",
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
@@ -26,8 +25,6 @@
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"feature_lazyloading": "enable",
|
||||
"feature_room_breadcrumbs": "labs"
|
||||
},
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_name": "matrix.org",
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar-staging.vector.im/",
|
||||
"integrations_rest_url": "https://scalar-staging.vector.im/api",
|
||||
@@ -14,22 +13,14 @@
|
||||
"hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"features": {
|
||||
"feature_rich_quoting": "labs",
|
||||
"feature_pinning": "labs",
|
||||
"feature_presence_management": "labs",
|
||||
"feature_sticker_messages": "labs",
|
||||
"feature_jitsi": "labs",
|
||||
"feature_tag_panel": "enable",
|
||||
"feature_keybackup": "labs",
|
||||
"feature_custom_status": "labs",
|
||||
"feature_custom_tags": "labs",
|
||||
"feature_lazyloading": "enable",
|
||||
"feature_tabbed_settings": "labs",
|
||||
"feature_sas": "labs",
|
||||
"feature_room_breadcrumbs": "labs",
|
||||
"feature_state_counters": "labs",
|
||||
"feature_cider_composer": "labs",
|
||||
"feature_many_integration_managers": "labs"
|
||||
"feature_many_integration_managers": "labs",
|
||||
"feature_mjolnir": "labs",
|
||||
"feature_dm_verification": "labs",
|
||||
"feature_cross_signing": "labs"
|
||||
},
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"piwik": {
|
||||
|
||||
@@ -43,7 +43,7 @@ const INCLUDE_LANGS = [
|
||||
{'value': 'sv', 'label': 'Svenska'},
|
||||
{'value': 'te', 'label': 'తెలుగు'},
|
||||
{'value': 'th', 'label': 'ไทย'},
|
||||
{'value': 'tr', 'label': 'Türk'},
|
||||
{'value': 'tr', 'label': 'Türkçe'},
|
||||
{'value': 'vls', 'label': 'West-Vlaams'},
|
||||
{'value': 'zh_Hans', 'label': '简体中文'}, // simplified chinese
|
||||
{'value': 'zh_Hant', 'label': '繁體中文'}, // traditional chinese
|
||||
|
||||
@@ -1,26 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
echo "Usage: $0 -v <version> -c <config file> [-n]"
|
||||
echo "Usage: $0 -v <version> -d <config directory> [-n]"
|
||||
echo
|
||||
echo "version: commit-ish to check out and build"
|
||||
echo "config file: a path to a json config file to"
|
||||
echo "ship with the build. In addition, update_base_url:"
|
||||
echo "from this file is used to set up auto-update."
|
||||
echo "config directory: a path to a directory containing"
|
||||
echo "config.json, a json config file to ship with the build"
|
||||
echo "and env.sh, a file to source environment variables"
|
||||
echo "from."
|
||||
echo "-n: build with no config file."
|
||||
echo
|
||||
echo "Values may also be passed as environment variables"
|
||||
echo "The update_base_url value from config.json is used to set up auto-update."
|
||||
echo
|
||||
echo "Environment variables:"
|
||||
echo " OSSLSIGNCODE_SIGNARGS: Arguments to pass to osslsigncode when signing"
|
||||
echo " NOTARIZE_APPLE_ID: Apple ID to use for notarisation. The password for"
|
||||
echo " this account must be set in NOTARIZE_CREDS in the keychain."
|
||||
}
|
||||
|
||||
conffile=
|
||||
confdir=
|
||||
version=
|
||||
skipcfg=0
|
||||
while getopts "c:v:n" opt; do
|
||||
while getopts "d:v:n" opt; do
|
||||
case $opt in
|
||||
c)
|
||||
conffile=$OPTARG
|
||||
d)
|
||||
confdir=$OPTARG
|
||||
;;
|
||||
v)
|
||||
version=$OPTARG
|
||||
@@ -42,6 +46,8 @@ if [ -z "$version" ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
conffile="$confdir/config.json"
|
||||
|
||||
if [ -z "$conffile" ] && [ "$skipcfg" = 0 ]; then
|
||||
echo "No config file given. Use -c to supply a config file or"
|
||||
echo "-n to build with no config file (and no auto update)."
|
||||
@@ -67,6 +73,31 @@ if [ ! -f package.json ]; then
|
||||
exit
|
||||
fi
|
||||
|
||||
[ -f "$confdir/env.sh" ] && . "$confdir/env.sh"
|
||||
|
||||
if [ -z "$NOTARIZE_APPLE_ID" ]; then
|
||||
echo "NOTARIZE_APPLE_ID is not set"
|
||||
exit
|
||||
fi
|
||||
|
||||
osslsigncode -h 2> /dev/null
|
||||
if [ $? -ne 255 ]; then # osslsigncode exits with 255 after printing usage...
|
||||
echo "osslsigncode not found"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Test that altool can get its credentials for notarising the mac app
|
||||
xcrun altool -u "$NOTARIZE_APPLE_ID" -p '@keychain:NOTARIZE_CREDS' --list-apps || exit
|
||||
|
||||
# Get the token password: we'll need it later, but get it now so we fail early if it's not there
|
||||
token_password=`security find-generic-password -s riot_signing_token -w`
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "riot_signing_token not found in keychain"
|
||||
exit
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
||||
echo "Building $version using Update base URL $update_base_url"
|
||||
|
||||
projdir=`pwd`
|
||||
@@ -107,14 +138,12 @@ mkdir -p "$projdir/electron_app/dist/unsigned/"
|
||||
mkdir -p "$pubdir/install/macos"
|
||||
cp $distdir/*.dmg "$pubdir/install/macos/"
|
||||
|
||||
# Windows installers go to the dist dir because they need signing
|
||||
# Windows installers need signing, this comes later
|
||||
mkdir -p "$pubdir/install/win32/ia32/"
|
||||
mkdir -p "$projdir/electron_app/dist/unsigned/ia32/"
|
||||
cp $distdir/squirrel-windows-ia32/*.exe "$projdir/electron_app/dist/unsigned/ia32/"
|
||||
|
||||
mkdir -p "$pubdir/install/win32/x64/"
|
||||
mkdir -p "$projdir/electron_app/dist/unsigned/x64/"
|
||||
cp $distdir/squirrel-windows/*.exe "$projdir/electron_app/dist/unsigned/x64/"
|
||||
|
||||
# Packages for auto-update
|
||||
mkdir -p "$pubdir/update/macos"
|
||||
@@ -136,9 +165,21 @@ cp $distdir/squirrel-windows/RELEASES "$pubdir/update/win32/x64/"
|
||||
# longer appears to work).
|
||||
cp $distdir/*_amd64.deb "$projdir/electron_app/dist/"
|
||||
|
||||
# Now we sign the windows installer executables (as opposed to the main binary which
|
||||
# is signed in the electron afteSign hook)
|
||||
echo "Signing Windows installers..."
|
||||
|
||||
exe32=( "$distdir"/squirrel-windows-ia32/*.exe )
|
||||
basename32=`basename "$exe32"`
|
||||
osslsigncode sign $OSSLSIGNCODE_SIGNARGS -pass "$token_password" -in "$exe32" -out "$projdir/electron_app/pub/install/win32/ia32/$basename32"
|
||||
|
||||
exe64=( "$distdir"/squirrel-windows/*.exe )
|
||||
basename64=`basename "$exe64"`
|
||||
osslsigncode sign $OSSLSIGNCODE_SIGNARGS -pass "$token_password" -in "$exe64" -out "$projdir/electron_app/pub/install/win32/x64/$basename64"
|
||||
|
||||
echo "Installers signed"
|
||||
|
||||
rm -rf "$builddir"
|
||||
|
||||
echo "Unsigned Windows installers have been placed in electron_app/dist/unsigned/ - sign them,"
|
||||
echo "or just copy them to "$pubdir/install/win32/\<arch\>/""
|
||||
echo "Once you've done this, $pubdir can be hosted on your web server."
|
||||
echo "$pubdir can now be hosted on your web server."
|
||||
echo "deb archives are in electron_app/dist/ - these should be added into your debian repository"
|
||||
|
||||
76
scripts/electron_afterSign.js
Normal file
76
scripts/electron_afterSign.js
Normal file
@@ -0,0 +1,76 @@
|
||||
const { notarize } = require('electron-notarize');
|
||||
const { exec, execFile } = require('child_process');
|
||||
const fs = require('fs');
|
||||
const shellescape = require('shell-escape');
|
||||
|
||||
exports.default = async function(context) {
|
||||
const { electronPlatformName, appOutDir } = context;
|
||||
|
||||
if (electronPlatformName === 'darwin') {
|
||||
const appName = context.packager.appInfo.productFilename;
|
||||
// We get the password from keychain. The keychain stores
|
||||
// user IDs too, but apparently altool can't get the user ID
|
||||
// from the keychain, so we need to get it from the environment.
|
||||
const userId = process.env.NOTARIZE_APPLE_ID;
|
||||
if (userId === undefined) {
|
||||
throw new Error("User ID not found. Set NOTARIZE_APPLE_ID.");
|
||||
}
|
||||
|
||||
console.log("Notarising macOS app. This may be some time.");
|
||||
return await notarize({
|
||||
appBundleId: 'im.riot.app',
|
||||
appPath: `${appOutDir}/${appName}.app`,
|
||||
appleId: userId,
|
||||
appleIdPassword: '@keychain:NOTARIZE_CREDS',
|
||||
});
|
||||
} else if (electronPlatformName === 'win32') {
|
||||
// This signs the actual Riot executable
|
||||
const appName = context.packager.appInfo.productFilename;
|
||||
|
||||
// get the token passphrase from the keychain
|
||||
const tokenPassphrase = await new Promise((resolve, reject) => {
|
||||
execFile(
|
||||
'security',
|
||||
['find-generic-password', '-s', 'riot_signing_token', '-w'],
|
||||
{},
|
||||
(err, stdout) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(stdout.trim());
|
||||
}
|
||||
},
|
||||
);
|
||||
});
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
let cmdLine = 'osslsigncode sign ';
|
||||
if (process.env.OSSLSIGNCODE_SIGNARGS) {
|
||||
cmdLine += process.env.OSSLSIGNCODE_SIGNARGS + ' ';
|
||||
}
|
||||
const tmpFile = 'tmp_' + Math.random().toString(36).substring(2, 15) + '.exe';
|
||||
cmdLine += shellescape([
|
||||
'-pass', tokenPassphrase,
|
||||
'-in', `${appOutDir}/${appName}.exe`,
|
||||
'-out', `${appOutDir}/${tmpFile}`,
|
||||
]);
|
||||
|
||||
const signproc = exec(cmdLine, {}, (error, stdout) => {
|
||||
console.log(stdout);
|
||||
});
|
||||
signproc.on('exit', (code) => {
|
||||
if (code !== 0) {
|
||||
reject("osslsigncode failed with code " + code);
|
||||
return;
|
||||
}
|
||||
fs.rename(`${appOutDir}/${tmpFile}`, `${appOutDir}/${appName}.exe`, (err) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -48,6 +48,4 @@ module.exports = () => {
|
||||
</div>
|
||||
);
|
||||
};
|
||||
module.exports.statics = {
|
||||
replaces: 'AuthFooter',
|
||||
};
|
||||
module.exports.replaces = 'AuthFooter';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2017 New Vector Ltd
|
||||
Copyright 2017, 2019 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.
|
||||
@@ -35,11 +35,6 @@ module.exports = ({onFinished}) => {
|
||||
"allows you to use Riot with an existing Matrix account on a " +
|
||||
"different homeserver.",
|
||||
)}</p>
|
||||
<p>{_t(
|
||||
"You can also set a custom identity server, but you won't be " +
|
||||
"able to invite users by email address, or be invited by email " +
|
||||
"address yourself.",
|
||||
)}</p>
|
||||
</div>
|
||||
<div className="mx_Dialog_buttons">
|
||||
<button onClick={onFinished} autoFocus={true}>
|
||||
@@ -49,6 +44,4 @@ module.exports = ({onFinished}) => {
|
||||
</div>
|
||||
);
|
||||
};
|
||||
module.exports.statics = {
|
||||
replaces: 'CustomServerDialog',
|
||||
};
|
||||
module.exports.replaces = 'CustomServerDialog';
|
||||
|
||||
@@ -41,6 +41,13 @@
|
||||
"Sign In": "Přihlásit se",
|
||||
"Create Account": "Vytvořit účet",
|
||||
"Need help?": "Chcete pomoct?",
|
||||
"Explore rooms": "Objevit místnosti",
|
||||
"Room Directory": "Adresář místností"
|
||||
"Explore rooms": "Prohlížet místnosti",
|
||||
"Room Directory": "Adresář místností",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfigurace Riotu obsahuje neplatný JSON. Opravte prosím tento problém a obnovte stránku.",
|
||||
"The message from the parser is: %(message)s": "Zpráva z parseru je: %(message)s",
|
||||
"Invalid JSON": "Neplatný JSON",
|
||||
"Your Riot is misconfigured": "Riot je špatně nakonfigurován",
|
||||
"Unexpected error preparing the app. See console for details.": "Neočekávaná chyba při přípravě aplikace. V konzoli je více informací.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neplatná konfigurace: je možné specifikovat pouze jednu volbu z default_server_config, default_server_name, nebo default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Neplatná konfigurace: není zadán výchozí server."
|
||||
}
|
||||
|
||||
25
src/i18n/strings/cy.json
Normal file
25
src/i18n/strings/cy.json
Normal file
@@ -0,0 +1,25 @@
|
||||
{
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Mae eich gosodiadau Riot yn cynnwys JSON annilys. Cywirwch y broblem ac ail-lwythwch y dudalen.",
|
||||
"The message from the parser is: %(message)s": "Y neges gan y dosrannudd yn: %(message)s",
|
||||
"Invalid JSON": "JSON annilys",
|
||||
"Your Riot is misconfigured": "Mae eich Riot wedi'i gamosod",
|
||||
"Unexpected error preparing the app. See console for details.": "Gwall annisgwyl wrth baratoi'r app. Gweler y consol am fanylion.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Gosodiad annilys: dim ond un o default_server_config, default_server_name, neu default_hs_url y gall ei nodi.",
|
||||
"Invalid configuration: no default server specified.": "Gosodiad annilys: ni nodwyd gweinydd diofyn.",
|
||||
"Riot Desktop on %(platformName)s": "Riot Cyfrifiadur ar %(platformName)s",
|
||||
"Unknown device": "Dyfais anhysbys",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s trwy %(browserName)s ar %(osName)s",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Mae angen i chi fod yn defnyddio HTTPS i osod galwad rhannu sgrin.",
|
||||
"powered by Matrix": "pwerwyd gan Matrix",
|
||||
"Custom Server Options": "Opsiynau Gweinydd Addasadwy",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Gallwch ddefnyddio'r opsiynau gweinydd addasadwy i mewngofnodi i mewn i weinyddion Matrix eraill trwy rhoi URL hafanweinydd gwahanol. Mae hyn yn caniatáu ichi ddefnyddio Riot gyda chyfrif Matrix sy'n bodoli eisoes ar hafanweinydd gwahanol.",
|
||||
"Dismiss": "Wfftio",
|
||||
"Welcome to Riot.im": "Croeso i Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Sgwrsio a chydweithredu datganoledig a amgryptiedig â phwerwyd gan [matrix]",
|
||||
"Sign In": "Mewngofnodi",
|
||||
"Create Account": "Creu Cyfrif",
|
||||
"Need help?": "Angen cymorth?",
|
||||
"Chat with Riot Bot": "Sgwrsio gyda Riot Bot",
|
||||
"Explore rooms": "Archwilio Ystafelloedd",
|
||||
"Room Directory": "Cyfeiriadur Ystafelloedd"
|
||||
}
|
||||
@@ -38,7 +38,7 @@
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Din Riot konfiguration indeholder ugyldig JSON. Venligst korrigér problemet og opdatér siden.",
|
||||
"The message from the parser is: %(message)s": "Beskeden fra parseren er: %(message)s",
|
||||
"Invalid JSON": "Ugyldig JSON",
|
||||
"Your Riot is misconfigured": "Din Riot er fejlkonfigureret",
|
||||
"Your Riot is misconfigured": "Din Riot er konfigureret forkert",
|
||||
"Unexpected error preparing the app. See console for details.": "Uventet fejl ved forberedelse af appen. Se konsollen for detaljer.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfiguration: kan kun angive en af default_server_config, default_server_name eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ugyldig konfiguration: ingen standardserver angivet.",
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
"Dismiss": "Απόρριψη",
|
||||
"Riot Desktop on %(platformName)s": "Riot Desktop σε %(platformName)s",
|
||||
"Unknown device": "Άγνωστη συσκευή",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Απαιτείται η χρήση HTTPS για το διαμοιρασμό της επιφάνειας εργασίας μέσω κλήσης.",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Απαιτείται η χρήση HTTPS για την πραγματοποίηση κλήσης διαμοιρασμού επιφάνειας εργασίας.",
|
||||
"Riot is not supported on mobile web. Install the app?": "Το Riot δεν υποστηρίζεται από περιηγητές κινητών. Θέλετε να εγκαταστήσετε την εφαρμογή;",
|
||||
"powered by Matrix": "με τη βοήθεια του Matrix",
|
||||
"powered by Matrix": "λειτουργεί με το Matrix",
|
||||
"Welcome to Riot.im": "Καλώς ήλθατε στο Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Αποκεντρωμένη, κρυπτογραφημένη συνομιλία & συνεργασία με τη βοήθεια του [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Αποκεντρωμένη, κρυπτογραφημένη συνομιλία και συνεργασία χρησιμοποιώντας το [matrix]",
|
||||
"Search the room directory": "Αναζήτηση στο ευρετήριο δωματίων",
|
||||
"Chat with Riot Bot": "Συνομιλία με το Riot Bot",
|
||||
"Get started with some tips from Riot Bot!": "Ξεκινήστε με μερικές συμβουλές από το Riot Bot!",
|
||||
@@ -39,5 +39,14 @@
|
||||
"Sign In": "Σύνδεση",
|
||||
"Create Account": "Δημιουργία Λογαριασμού",
|
||||
"Need help?": "Χρειάζεστε βοήθεια;",
|
||||
"Room Directory": "Ευρετήριο δωματίων"
|
||||
"Room Directory": "Ευρετήριο δωματίων",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Η ρύθμιση παραμέτρων σας του Riot περιλαμβάνει μη έγκυρο JSON. Παρακαλώ διορθώστε το πρόβλημα και επαναφορτώστε την σελίδα.",
|
||||
"The message from the parser is: %(message)s": "Το μήνυμα από τον αναλυτή είναι: %(message)s",
|
||||
"Invalid JSON": "Μη έγκυρο JSON",
|
||||
"Your Riot is misconfigured": "Οι παράμετροι του Riot σας είναι λανθασμένα ρυθμισμένοι",
|
||||
"Unexpected error preparing the app. See console for details.": "Απρόοπτο σφάλμα κατά την προετοιμασία της εφαρμογής. Δείτε το τερματικό για λεπτομέρειες.",
|
||||
"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.": "Μη έγκυρη ρύθμιση παραμέτρων: δεν έχει οριστεί προκαθορισμένος διακομιστής.",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Μπορείτε να χρησιμοποιήσετε τις επιλογές προσαρμοσμένου διακομιστή για να κάνετε σύνδεση σε άλλους διακομιστές Matrix με το να ορίσετε διαφορετικό URL διακομιστή φιλοξενίας. Αυτό σας επιτρέπει να χρησιμοποιήσετε το Riot με έναν υπάρχον λογαριασμό Matrix σε ένα διαφορετικό διακομιστή φιλοξενίας.",
|
||||
"Explore rooms": "Εξερευνήστε δωμάτια"
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
"powered by Matrix": "powered by Matrix",
|
||||
"Custom Server Options": "Custom Server Options",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.",
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.",
|
||||
"Dismiss": "Dismiss",
|
||||
"Welcome to Riot.im": "Welcome to Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralised, encrypted chat & collaboration powered by [matrix]",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"powered by Matrix": "Matrix の支援により活動しています。",
|
||||
"Riot Desktop on %(platformName)s": "%(platformName)s向けデスクトップ版Riot",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "画面共有通話を行うにはHTTPS通信を使う必要があります。",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "分散型の、暗号化された会話とコラボレーション。[matrix]で動作しています",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "[matrix] による、分散型で暗号化された会話とコラボレーション",
|
||||
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "既にたくさんの部屋が、既存のネットワーク(Slack、IRC、Gitter等)に接続して、または独立的にMatrixに存在します。ディレクトリを検索してください!",
|
||||
"Chat with Riot Bot": "Riot Botと会話",
|
||||
"Get started with some tips from Riot Bot!": "Riot Botにヒントをもらって始めましょう!",
|
||||
@@ -37,11 +37,16 @@
|
||||
"Dev chat for the Dendrite dev team": "Dendrite開発者チームのための開発者チャット",
|
||||
"Co-ordination for Riot translators": "Riot 翻訳者による共同作業",
|
||||
"Unexpected error preparing the app. See console for details.": "アプリケーションの準備中に予期しないエラーが発生しました。詳細はコンソールを参照してください。",
|
||||
"Your Riot is misconfigured": "あなたの Riot は間違って設定されています。",
|
||||
"Your Riot is misconfigured": "あなたのRiotは設定が間違っています",
|
||||
"Invalid configuration: no default server specified.": "不正な設定です:デフォルトのサーバーが設定されていません。",
|
||||
"Sign In": "サインイン",
|
||||
"Create Account": "アカウントを作成する",
|
||||
"Need help?": "助けが必要ですか?",
|
||||
"Explore rooms": "部屋を探索する",
|
||||
"Room Directory": "部屋のディレクトリー"
|
||||
"Room Directory": "部屋のディレクトリー",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riotの設定に妥当でないJSONが含まれています。問題を修正してページを再読みしてください。",
|
||||
"The message from the parser is: %(message)s": "パーザーのメッセージ: %(message)s",
|
||||
"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のいずれか一つのみが指定できます。",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "サーバーのカスタムオプションに別のホームサーバーURLを指定することで他のMatrixサーバーにサインインすることができます。これにより別のホームサーバー上で既にあるMatrixのアカウントでRiotを使うことができます。"
|
||||
}
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
"Unknown device": "Nežinomas įrenginys",
|
||||
"powered by Matrix": "veikia su Matrix",
|
||||
"Welcome to Riot.im": "Sveiki atvykę į Riot.im",
|
||||
"Chat with Riot Bot": "Kalbėtis su Riot robotu",
|
||||
"Chat with Riot Bot": "Kalbėtis su Riot botu",
|
||||
"General discussion about Matrix and Riot": "Bendros diskusijos apie Matrix ir Riot",
|
||||
"Matrix technical discussions": "Matrix techninės diskusijos",
|
||||
"Riot is not supported on mobile web. Install the app?": "Riot nėra palaikoma naršant svetainėje mobiliaisiais įrenginiais. Įdiegti programėlę?",
|
||||
"Riot Desktop on %(platformName)s": "Riot Desktop, naudojant %(platformName)s",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s, naudojant %(osName)s",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Norint skambinti su ekrano bendrinimo funkcija būtina naudoti HTTPS.",
|
||||
"Custom Server Options": "Tinkinto serverio parametrai",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Norint skambinti naudojant ekrano vaizdo dalijimosi funkciją, jūs turite naudoti HTTPS.",
|
||||
"Custom Server Options": "Pasirinktiniai Serverio Nustatymai",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Norėdami prisijungti prie kito nei Matrix serverio, galite naudoti tinkinto serverio parametrus ir nurodyti kito serverio URL adresą.<br/>Tai leis jums naudoti Riot su esama Matrix paskyra kituose serveriuose.<br/><br/>Taip pat galite nustatyti tinkintą tapatybės serverį, tačiau tuomet negalėsite pakviesti kitus naudotojus pagal el. paštą, o taip pat ir jie negalės pakviesti jūsų.",
|
||||
"Dismiss": "Atmesti",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizuoti, šifruoti pokalbiai ir bendradarbiavimas, veikiantis su [matrix]",
|
||||
@@ -35,5 +35,18 @@
|
||||
"Contributing code to Matrix and Riot": "Matrix ir Riot kodo plėtojimas",
|
||||
"Dev chat for the Riot/Web dev team": "Kūrėjų pokalbiai, skirti Riot/Web kūrėjų komandai",
|
||||
"Dev chat for the Dendrite dev team": "Kūrėjų pokalbiai, skirti Dendrite kūrėjų komandai",
|
||||
"Co-ordination for Riot translators": "Koordinavimas Riot vertėjams"
|
||||
"Co-ordination for Riot translators": "Koordinavimas Riot vertėjams",
|
||||
"Sign In": "Prisijungti",
|
||||
"Create Account": "Sukurti paskyrą",
|
||||
"Need help?": "Reikia pagalbos?",
|
||||
"Explore rooms": "Peržiūrėti kambarius",
|
||||
"Room Directory": "Kambarių katalogas",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Jūsų Riot konfigūracijoje yra klaidingas JSON. Prašome pataisyti problemą ir iš naujo užkrauti puslapį.",
|
||||
"The message from the parser is: %(message)s": "Analizatoriaus žinutė yra: %(message)s",
|
||||
"Invalid JSON": "Klaidingas JSON",
|
||||
"Your Riot is misconfigured": "Jūsų Riot yra neteisingai sukonfigūruotas",
|
||||
"Unexpected error preparing the app. See console for details.": "Netikėta klaida ruošiant programą. Norėdami sužinoti daugiau detalių, žiūrėkite konsolę.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Klaidinga konfigūracija: galima nurodyti tik vieną iš default_server_config, default_server_name, arba default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Klaidinga konfigūracija: nenurodytas numatytasis serveris.",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Jūs galite naudoti pasirinktinius serverio nustatymus, kad prisijungtumėte prie kitų Matrix serverių, nurodydami kito serverio URL. Tai leidžia jums naudotis Riot su esama Matrix paskyra kitame serveryje."
|
||||
}
|
||||
|
||||
@@ -30,5 +30,7 @@
|
||||
"Create Account": "Lag konto",
|
||||
"Need help?": "Trenger du hjelp?",
|
||||
"Room Directory": "Alle rom",
|
||||
"Explore rooms": "Se alle rom"
|
||||
"Explore rooms": "Se alle rom",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din inneholder ugyldig JSON. Vennligst fiks problemet og oppdater siden.",
|
||||
"The message from the parser is: %(message)s": "Meldingen fra parseren er: %(message)s"
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"Custom Server Options": "Aangepaste serverinstellingen",
|
||||
"Dismiss": "Afwijzen",
|
||||
"powered by Matrix": "mogelijk gemaakt door Matrix",
|
||||
"powered by Matrix": "draait op Matrix",
|
||||
"Riot Desktop on %(platformName)s": "Riot Desktop op %(platformName)s",
|
||||
"Riot is not supported on mobile web. Install the app?": "Riot wordt niet ondersteund op het mobiele web. Wil je de app installeren?",
|
||||
"Unknown device": "Onbekend apparaat",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "U moet HTTPS gebruiken om een oproep met schermdelen te kunnen starten.",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Oproepen met schermdelen vergen HTTPS.",
|
||||
"Welcome to Riot.im": "Welkom bij Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken mogelijk gemaakt door [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken dankzij [matrix]",
|
||||
"Search the room directory": "De gesprekscatalogus doorzoeken",
|
||||
"Chat with Riot Bot": "Chatten met Riot-robot",
|
||||
"Chat with Riot Bot": "Met Riot-robot chatten",
|
||||
"Get started with some tips from Riot Bot!": "Begin met enkele tips van Riot Bot!",
|
||||
"General discussion about Matrix and Riot": "Algemene discussie over Matrix en Riot",
|
||||
"Discussion of all things Matrix!": "Discussie over alles wat met Matrix te maken heeft!",
|
||||
@@ -36,19 +36,19 @@
|
||||
"Dev chat for the Dendrite dev team": "Dev-chat voor het Dendrite-ontwikkelteam",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Je kan de custom serveropties gebruiken om op andere Matrix-servers in te loggen door een andere thuisserver-URL op te geven.<br/> Dit laat je toe om Riot te gebruiken met een bestaand Matrix-account op een andere thuisserver.<br/><br/>Je kan ook een aangepaste-identiteitsserver opzetten maar dan kan je geen gebruikers uitnodigen via hun e-mailadres, of zelf uitgenodigd worden via je e-mailadres.",
|
||||
"Co-ordination for Riot translators": "Coördinatie voor Riot vertalers",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "U kunt de aangepaste serverinstellingen gebruiken om u aan te melden bij andere Matrix-servers, door een andere thuisserver-URL in te voeren. Dit laat u toe Riot te gebruiken met een bestaande Matrix-account bij een andere thuisserver.",
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "U kunt ook een aangepaste identiteitsserver instellen, maar u zult geen gebruikers kunnen uitnodigen via e-mail, of zelf via e-mail uitgenodigd worden.",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Met aangepaste serverinstellingen kunt u zich door een andere thuisserver-URL in te voeren aanmelden bij andere Matrix-servers. Zo kunt u Riot met een bestaand Matrix-account op een andere thuisserver gebruiken.",
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "U kunt ook een aangepaste identiteitsserver instellen, maar u kunt dan geen anderen uitnodigen of zelf uitgenodigd worden op e-mailadres.",
|
||||
"Sign In": "Aanmelden",
|
||||
"Create Account": "Account aanmaken",
|
||||
"Need help?": "Hulp nodig?",
|
||||
"Explore rooms": "Gesprekken ontdekken",
|
||||
"Room Directory": "Gesprekscatalogus",
|
||||
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Bekijk de console voor details.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ongeldige configuratie: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
|
||||
"Invalid configuration: no default server specified.": "Ongeldige configuratie: geen standaardserver opgegeven.",
|
||||
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Zie de console voor details.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratiefout: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
|
||||
"Invalid configuration: no default server specified.": "Configuratiefout: geen standaardserver opgegeven.",
|
||||
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "De serverconfiguratie van deze Riot-instantie lijkt ongeldig. Als u de beheerder bent, gelieve dan de fout hieronder te corrigeren",
|
||||
"Your Riot is misconfigured": "Uw Riot is verkeerd geconfigureerd",
|
||||
"Your Riot is misconfigured": "Uw Riot is onjuist geconfigureerd",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Riot-configuratie bevat ongeldige JSON. Corrigeer het probleem en herlaad de pagina.",
|
||||
"The message from the parser is: %(message)s": "Het bericht van de verwerker is: %(message)s",
|
||||
"The message from the parser is: %(message)s": "De ontleder meldt: %(message)s",
|
||||
"Invalid JSON": "Ongeldige JSON"
|
||||
}
|
||||
|
||||
@@ -43,11 +43,11 @@
|
||||
"Need help?": "Treng du hjelp?",
|
||||
"Explore rooms": "Utforsk romma",
|
||||
"Room Directory": "Romkatalog",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har invalid JSON-kode. Korriger dette og last inn sida på nytt.",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har ugyldig JSON-kode. Korriger dette og last inn sida på nytt.",
|
||||
"The message from the parser is: %(message)s": "Meldingen frå kodetolkaren er: %(message)s",
|
||||
"Invalid JSON": "Ugyldig JSON",
|
||||
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
|
||||
"Unexpected error preparing the app. See console for details.": "Uforventa feil under lasting av programmet. Sjå konsollet for detaljar.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfigurasjon berre muleg å berre spesifiere ein av default_server_config, default_server_name eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ugyldig konfigurasjon: \"default server\" er uspesifisert."
|
||||
"Unexpected error preparing the app. See console for details.": "Uventa feil under lasting av programmet. Sjå konsollen for detaljar.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfigurasjon: berre muleg å berre spesifiere ein av default_server_config, default_server_name eller default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Ugyldig konfigurasjon: \"default server\" er ikkje spesifisert."
|
||||
}
|
||||
|
||||
@@ -35,5 +35,18 @@
|
||||
"Dev chat for the Dendrite dev team": "Conversa de desenvolvimento para a equipa do Dendrite",
|
||||
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Já existem muitas salas no Matrix, ligadas a redes já existentes (Slack, IRC, Gitter, etc) ou independentes. Dê uma vista de olhos no diretório!",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Você pode usar as opções de servidor personalizado para entrar em outros servidores Matrix, especificando um diferente URL de servidor doméstico.<br/>Isto permite que você utilize Riot com uma conta Matrix existente em um servidor doméstico diferente.<br/><br/>Você também pode definir um servidor de identidade personalizado, porém não poderá convidar usuários por endereço de e-mail nem ser convidado por endereço de e-mail.",
|
||||
"Co-ordination for Riot translators": "Coordenação para tradutores do Riot"
|
||||
"Co-ordination for Riot translators": "Coordenação para tradutores do Riot",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "A sua configuração do RIOT contém JSON inválido. Por favor corriga o erro e recarregue a página.",
|
||||
"The message from the parser is: %(message)s": "A mensagem do parser é:\n%(message)s",
|
||||
"Invalid JSON": "JSON inválido.",
|
||||
"Your Riot is misconfigured": "A sua configuração do RIOT está incorrecta.",
|
||||
"Unexpected error preparing the app. See console for details.": "Erro inesperado, na preparação da aplicação. Veja consola, para mais detalhes.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: só pode especificar uma das default_server_config, default_server_name,\nor default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Configuração inválida: não existe especificação de servidor padrão.",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Pode usar as opções de custom server, para iniciar sessão noutros servidores Matrix.org, especificando o URL do homeserver diferente. Isto ira lhe atorizar a usar RIOT com a sua conta Matrix num servidor diferente",
|
||||
"Sign In": "Iniciar sessão",
|
||||
"Create Account": "Criar conta",
|
||||
"Need help?": "Ajuda?",
|
||||
"Explore rooms": "Explorar rooms",
|
||||
"Room Directory": "Diretório de rooms"
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
"Create Account": "Создать аккаунт",
|
||||
"Need help?": "Помочь?",
|
||||
"Room Directory": "Каталог комнат",
|
||||
"Explore rooms": "Исследовать комнаты",
|
||||
"Explore rooms": "Исследуйте комнаты",
|
||||
"Unexpected error preparing the app. See console for details.": "Неожиданная ошибка при подготовке приложения. Подробности см. в консоли.",
|
||||
"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.": "Неверная конфигурация: сервер по умолчанию не указан.",
|
||||
|
||||
@@ -43,5 +43,10 @@
|
||||
"Need help?": "Potrebujete pomoc?",
|
||||
"Explore rooms": "Preskúmať miestnosti",
|
||||
"Room Directory": "Adresár miestností",
|
||||
"Your Riot is misconfigured": "Váš Riot nie je nastavený správne"
|
||||
"Your Riot is misconfigured": "Váš Riot nie je nastavený správne",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Tvoja RIOT konfigurácia obsahuje neplatný JSON. Prosím, oprav daný problém a načítaj stránku znova.",
|
||||
"The message from the parser is: %(message)s": "Správa z parsera je: %(message)s",
|
||||
"Invalid JSON": "Neplatný JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Neočakávaná chyba počas pripravovania aplikácie. Pre podrobnosti pozri konzolu.",
|
||||
"Invalid configuration: no default server specified.": "Neplatné nastavenie: nebol určený východiskový server."
|
||||
}
|
||||
|
||||
@@ -42,12 +42,12 @@
|
||||
"Explore rooms": "Истражи собе",
|
||||
"Room Directory": "Фасцикла са собама",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Можете користити опције прилагођеног сервера да бисте се пријавили на друге Матрикс сервере тако што ћете навести другачију адресу кућног сервера. Ово вам омогућава да користите Riot са постојећим Матрикс налогом на другом кућном серверу.",
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Такође, можете подесити прилагођени сервер идентитета али у том случају нећете моћи да позивате кориснике преко мејла адресе или да сами будете позвани преко мејл адресе.",
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Такође, можете подесити прилагођени сервер идентитета али у том случају нећете моћи да позивате кориснике преко мејл адресе или да сами будете позвани преко мејл адресе.",
|
||||
"Your Riot is misconfigured": "Ваш Riot није добро подешен",
|
||||
"Invalid configuration: no default server specified.": "Погрешно подешавање: подразумевани сервер није наведен.",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша Riot конфигурација садржи погрешан JSON. Молим исправите проблем и поново учитајте страну.",
|
||||
"The message from the parser is: %(message)s": "Порука из парсера: %(message)s",
|
||||
"Invalid JSON": "Погрешан JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Неочекивана грешка приликом припреме апликације. Погледајте конзолу за више детаља.",
|
||||
"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."
|
||||
"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."
|
||||
}
|
||||
|
||||
26
src/i18n/strings/sr_Latn.json
Normal file
26
src/i18n/strings/sr_Latn.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Vaša Riot konfiguracija sadrži pogrešan JSON. Molim ispravite problem i ponovo učitajte stranu.",
|
||||
"The message from the parser is: %(message)s": "Poruka iz parsera je: %(message)s",
|
||||
"Invalid JSON": "Pogrešan JSON",
|
||||
"Your Riot is misconfigured": "Vaš Riot nije dobro podešen",
|
||||
"Unexpected error preparing the app. See console for details.": "Neočekivana greška prilikom pripreme aplikacije. Pogledajte konzolu za više detalja.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Pogrešno podešavanje: možete navesti samo jednu vrednost od default_server_config, default_server_name, or default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Pogrešno podešavanje: podrazumevani server nije naveden.",
|
||||
"Riot Desktop on %(platformName)s": "Riot Desktop na %(platformName)s",
|
||||
"Unknown device": "Nepoznat uređaj",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s preko %(browserName)s na %(osName)s",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Treba da koristite HTTPS da bi ste započeli poziv sa deljenjem ekrana.",
|
||||
"powered by Matrix": "pokreće Matriks",
|
||||
"Custom Server Options": "Prilagođene opcije servera",
|
||||
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Možete koristiti prilagođene opcije servera kako bi ste se prijavili na druge Matriks servere tako što ćete navesti različiti URL kućnog servera. Ovo vam omogućava da koristite Riot sa postojećim Matriks nalogom na drugom kućnom serveru.",
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Takođe, možete podesiti prilagođeni server identiteta, ali tada nećete moći da pozivate korisnike preko adrese elektronske pošte ili da i sami budete pozvani preko adrese elektronske pošte.",
|
||||
"Dismiss": "Odbaci",
|
||||
"Welcome to Riot.im": "Dobrodošli u Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovano, šifrovano ćaskanje & i saradnja koju pokreće [matrix]",
|
||||
"Sign In": "Prijavite se",
|
||||
"Create Account": "Napravite nalog",
|
||||
"Need help?": "Potrebna pomoć?",
|
||||
"Chat with Riot Bot": "Ćaskajte sa Riot botom",
|
||||
"Explore rooms": "Istražite sobe",
|
||||
"Room Directory": "Spisak soba"
|
||||
}
|
||||
@@ -40,10 +40,14 @@
|
||||
"You can also set a custom identity server, but you won't be able to invite users by email address, or be invited by email address yourself.": "Ви також можете встановити власний сервер ідентифікації, але Ви не зможете запрошувати користувачів (або бути запрошеним самому) за адресою електронної пошти.",
|
||||
"Need help?": "Допомогти?",
|
||||
"Sign In": "Вхід",
|
||||
"Create Account": "Створити аккаунт",
|
||||
"Create Account": "Створити акаунт",
|
||||
"Explore rooms": "Дослідити кімнати",
|
||||
"Room Directory": "Каталог кімнат",
|
||||
"Unexpected error preparing the app. See console for details.": "Неочікувана помилка при підготовці програми. Дивіться деталі у виводі консолі.",
|
||||
"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.": "Невірна конфігурація: не вказано сервер за замовчуванням."
|
||||
"Invalid configuration: no default server specified.": "Невірна конфігурація: не вказано сервер за замовчуванням.",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша конфігурація Riot містить некоректний JSON. Виправте проблему та оновіть сторінку.",
|
||||
"The message from the parser is: %(message)s": "Повідомлення від парсера: %(message)s",
|
||||
"Invalid JSON": "Хибний JSON",
|
||||
"Your Riot is misconfigured": "Ваш Riot налаштовано неправильно"
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<%= require('../../res/vector-icons/apple-touch-icon-152x152.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<%= require('../../res/vector-icons/apple-touch-icon-180x180.png') %>">
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<meta name="referrer" content="no-referrer">
|
||||
<link rel="shortcut icon" href="<%= require('../../res/vector-icons/favicon.ico') %>">
|
||||
<meta name="apple-mobile-web-app-title" content="Riot">
|
||||
<meta name="application-name" content="Riot">
|
||||
@@ -42,6 +43,7 @@
|
||||
<script src="<%= htmlWebpackPlugin.files.chunks['bundle'].entry %>"></script>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/e2e/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<img src="<%= require('matrix-react-sdk/res/img/feather-customised/warning-triangle.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
|
||||
<audio id="messageAudio">
|
||||
<source src="media/message.ogg" type="audio/ogg" />
|
||||
<source src="media/message.mp3" type="audio/mpeg" />
|
||||
|
||||
@@ -56,8 +56,8 @@ import WebPlatform from './platform/WebPlatform';
|
||||
|
||||
import MatrixClientPeg from 'matrix-react-sdk/lib/MatrixClientPeg';
|
||||
import SettingsStore from "matrix-react-sdk/lib/settings/SettingsStore";
|
||||
import Tinter from 'matrix-react-sdk/lib/Tinter';
|
||||
import SdkConfig from "matrix-react-sdk/lib/SdkConfig";
|
||||
import {getBaseTheme, setTheme, ThemeWatcher} from "matrix-react-sdk/lib/theme";
|
||||
|
||||
import Olm from 'olm';
|
||||
|
||||
@@ -255,15 +255,19 @@ async function loadApp() {
|
||||
}
|
||||
|
||||
// as quickly as we possibly can, set a default theme...
|
||||
// we do this by checking to see if the theme's "base" has loaded first so we can
|
||||
// safely rely on the assets.
|
||||
let a;
|
||||
const theme = SettingsStore.getValue("theme");
|
||||
const themeWatcher = new ThemeWatcher();
|
||||
const theme = themeWatcher.getEffectiveTheme();
|
||||
const baseTheme = getBaseTheme(theme);
|
||||
for (let i = 0; (a = document.getElementsByTagName("link")[i]); i++) {
|
||||
const href = a.getAttribute("href");
|
||||
if (!href) continue;
|
||||
// shouldn't we be using the 'title' tag rather than the href?
|
||||
const match = href.match(/^bundles\/.*\/theme-(.*)\.css$/);
|
||||
if (match) {
|
||||
if (match[1] === theme) {
|
||||
if (match[1] === baseTheme) {
|
||||
// remove the disabled flag off the stylesheet
|
||||
|
||||
// Firefox requires setting the attribute to false, so do
|
||||
@@ -274,21 +278,21 @@ async function loadApp() {
|
||||
// in case the Tinter.tint() in MatrixChat fires before the
|
||||
// CSS has actually loaded (which in practice happens)...
|
||||
|
||||
// This if fixes Tinter.setTheme to not fire on Firefox
|
||||
// This if fixes setTheme to not fire on Firefox
|
||||
// in case it is the first time loading Riot.
|
||||
// `InstallTrigger` is a Object which only exists on Firefox
|
||||
// (it is used for their Plugins) and can be used as a
|
||||
// feature check.
|
||||
// Firefox loads css always before js. This is why we dont use
|
||||
// onload or it's EventListener as thoose will never trigger.
|
||||
// onload or it's EventListener as those will never trigger.
|
||||
if (typeof InstallTrigger !== 'undefined') {
|
||||
Tinter.setTheme(theme);
|
||||
setTheme(theme);
|
||||
} else {
|
||||
// FIXME: we should probably block loading the app or even
|
||||
// showing a spinner until the theme is loaded, to avoid
|
||||
// flashes of unstyled content.
|
||||
a.onload = () => {
|
||||
Tinter.setTheme(theme);
|
||||
setTheme(theme);
|
||||
};
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -100,6 +100,16 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
|
||||
this.startUpdateCheck = this.startUpdateCheck.bind(this);
|
||||
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
|
||||
|
||||
this._tryPersistStorage();
|
||||
}
|
||||
|
||||
async _tryPersistStorage() {
|
||||
if (navigator.storage && navigator.storage.persist) {
|
||||
const granted = await navigator.storage.persist();
|
||||
const persisted = await navigator.storage.persisted();
|
||||
console.log("Storage persist request granted: " + granted + " persisted: " + persisted);
|
||||
}
|
||||
}
|
||||
|
||||
async getConfig(): Promise<{}> {
|
||||
@@ -190,7 +200,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
}
|
||||
|
||||
supportsAutoHideMenuBar(): boolean {
|
||||
return true;
|
||||
// This is irelevant on Mac as Menu bars don't live in the app window
|
||||
return !navigator.platform.toUpperCase().includes('MAC');
|
||||
}
|
||||
|
||||
async getAutoHideMenuBarEnabled(): boolean {
|
||||
@@ -202,7 +213,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
}
|
||||
|
||||
supportsMinimizeToTray(): boolean {
|
||||
return true;
|
||||
// Things other than Mac support tray icons
|
||||
return !navigator.platform.toUpperCase().includes('MAC');
|
||||
}
|
||||
|
||||
async getMinimizeToTrayEnabled(): boolean {
|
||||
|
||||
@@ -85,9 +85,29 @@ export default class VectorBasePlatform extends BasePlatform {
|
||||
bgColor = "#f00";
|
||||
}
|
||||
|
||||
this.favicon.badge(notif, {
|
||||
bgColor: bgColor,
|
||||
});
|
||||
const doUpdate = () => {
|
||||
this.favicon.badge(notif, {
|
||||
bgColor: bgColor,
|
||||
});
|
||||
};
|
||||
|
||||
doUpdate();
|
||||
|
||||
// HACK: Workaround for Chrome 78+ and dependency incompatibility.
|
||||
// The library we use doesn't appear to work in Chrome 78, likely due to their
|
||||
// changes surrounding tab behaviour. Tabs went through a bit of a redesign and
|
||||
// restructuring in Chrome 78, so it's not terribly surprising that the library
|
||||
// doesn't work correctly. The library we use hasn't been updated in years and
|
||||
// does not look easy to fix/fork ourselves - we might as well write our own that
|
||||
// doesn't include animation/webcam/etc support. However, that's a bit difficult
|
||||
// so for now we'll just trigger the update twice.
|
||||
//
|
||||
// Note that trying to reproduce the problem in isolation doesn't seem to work:
|
||||
// see https://gist.github.com/turt2live/5ab87919918adbfd7cfb8f1ad10f2409 for
|
||||
// an example (you'll need your own web server to host that).
|
||||
if (window.chrome) {
|
||||
doUpdate();
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(`Failed to set badge count: ${e.message}`);
|
||||
}
|
||||
|
||||
62
yarn.lock
62
yarn.lock
@@ -1630,7 +1630,7 @@ bluebird-lst@^1.0.9:
|
||||
dependencies:
|
||||
bluebird "^3.5.5"
|
||||
|
||||
bluebird@^3.3.0, bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.5.5:
|
||||
bluebird@3.5.5, bluebird@^3.3.0, bluebird@^3.5.0, bluebird@^3.5.2, bluebird@^3.5.5:
|
||||
version "3.5.5"
|
||||
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
|
||||
integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
|
||||
@@ -3134,6 +3134,14 @@ electron-devtools-installer@^2.2.4:
|
||||
rimraf "^2.5.2"
|
||||
semver "^5.3.0"
|
||||
|
||||
electron-notarize@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.2.0.tgz#676c71688ee84149bab27b22426d0a9452e7e262"
|
||||
integrity sha512-u3KdEMOEcGMF9yCML8ej4ZF+O29VmGYIjrs/DoOi23neTWOMiIc5YCeFs4vxq3JG496omcw7Y5pimPm0sH9A7g==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
fs-extra "^8.1.0"
|
||||
|
||||
electron-publish@21.2.0:
|
||||
version "21.2.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d"
|
||||
@@ -3329,7 +3337,7 @@ es6-promisify@^5.0.0:
|
||||
dependencies:
|
||||
es6-promise "^4.0.3"
|
||||
|
||||
escape-html@~1.0.3:
|
||||
escape-html@^1.0.3, escape-html@~1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
||||
integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
|
||||
@@ -3356,6 +3364,11 @@ eslint-plugin-flowtype@^2.50.3:
|
||||
dependencies:
|
||||
lodash "^4.17.10"
|
||||
|
||||
eslint-plugin-react-hooks@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-2.2.0.tgz#078264e9e388da6929ace09d6abe92c85963aff4"
|
||||
integrity sha512-jSlnBjV2cmyIeL555H/FbvuSbQ1AtpHjLMHuPrQnt1eVA6lX8yufdygh7AArI2m8ct7ChHGx2uOaCuxq2MUn6g==
|
||||
|
||||
eslint-plugin-react@^7.11.1:
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.14.3.tgz#911030dd7e98ba49e1b2208599571846a66bdf13"
|
||||
@@ -4246,6 +4259,11 @@ glob-to-regexp@^0.3.0:
|
||||
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
|
||||
integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
|
||||
|
||||
glob-to-regexp@^0.4.1:
|
||||
version "0.4.1"
|
||||
resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
|
||||
integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
|
||||
|
||||
glob2base@^0.0.12:
|
||||
version "0.0.12"
|
||||
resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56"
|
||||
@@ -5823,11 +5841,6 @@ log4js@^3.0.0:
|
||||
rfdc "^1.1.2"
|
||||
streamroller "0.7.0"
|
||||
|
||||
loglevel@1.6.1:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa"
|
||||
integrity sha1-4PyVEztu8nbNyIh82vJKpvFW+Po=
|
||||
|
||||
loglevel@^1.6.4:
|
||||
version "1.6.4"
|
||||
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.4.tgz#f408f4f006db8354d0577dcf6d33485b3cb90d56"
|
||||
@@ -5947,18 +5960,18 @@ math-random@^1.0.1:
|
||||
resolved "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz#5dd6943c938548267016d4e34f057583080c514c"
|
||||
integrity sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==
|
||||
|
||||
matrix-js-sdk@2.4.1:
|
||||
version "2.4.1"
|
||||
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-2.4.1.tgz#f32f8ebb1f01fa26711a4cf6b78eae125156f455"
|
||||
integrity sha512-5mOp396eOtvaMiuUD85TWvuxSP532PuvtH/QLugBGenI15FGwtnC40cTnVYviYWGBi340FPrOKWulc5ILRX6qQ==
|
||||
matrix-js-sdk@2.4.4:
|
||||
version "2.4.4"
|
||||
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-2.4.4.tgz#d5e2d6fbe938c4275a1423a5f09330d33517ce3f"
|
||||
integrity sha512-wSaRFvhWvwEzVaEkyBGo5ReumvaM5OrC1MJ6SVlyoLwH/WRPEXcUlu+rUNw5TFVEAH4TAVHXf/SVRBiR0j5nSQ==
|
||||
dependencies:
|
||||
another-json "^0.2.0"
|
||||
babel-runtime "^6.26.0"
|
||||
bluebird "^3.5.0"
|
||||
bluebird "3.5.5"
|
||||
browser-request "^0.3.3"
|
||||
bs58 "^4.0.1"
|
||||
content-type "^1.0.2"
|
||||
loglevel "1.6.1"
|
||||
loglevel "^1.6.4"
|
||||
qs "^6.5.2"
|
||||
request "^2.88.0"
|
||||
unhomoglyph "^1.0.2"
|
||||
@@ -5971,10 +5984,10 @@ matrix-mock-request@^1.2.3:
|
||||
bluebird "^3.5.0"
|
||||
expect "^1.20.2"
|
||||
|
||||
matrix-react-sdk@1.6.2:
|
||||
version "1.6.2"
|
||||
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.6.2.tgz#c2659a2479e85b8a3e4ebbb436b1daafcb76fef5"
|
||||
integrity sha512-+SmsM94Bolbwj+4I5bGF00zUAmlsZ4D4r7s1An/6SHMFL2+ly8QG4wDt1Q2KZ2vrcT3tnLqsp2zRsmKpCTD7ZA==
|
||||
matrix-react-sdk@1.7.3:
|
||||
version "1.7.3"
|
||||
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.7.3.tgz#f3f64dc77eea64b77ba3d574847bc03146d421a3"
|
||||
integrity sha512-XSZSj4GWhxhoEoCIHGyMwBKdmcHJrKB9hToHJQTI0OL/x8+ErTLVAgJYW8hvR16l5lXGzSsYWDOfQOTbKK1tLQ==
|
||||
dependencies:
|
||||
babel-plugin-syntax-dynamic-import "^6.18.0"
|
||||
babel-runtime "^6.26.0"
|
||||
@@ -5990,6 +6003,7 @@ matrix-react-sdk@1.6.2:
|
||||
diff-match-patch "^1.0.4"
|
||||
emojibase-data "^4.0.2"
|
||||
emojibase-regex "^3.0.0"
|
||||
escape-html "^1.0.3"
|
||||
file-saver "^1.3.3"
|
||||
filesize "3.5.6"
|
||||
flux "2.1.1"
|
||||
@@ -5999,13 +6013,14 @@ matrix-react-sdk@1.6.2:
|
||||
gemini-scrollbar "github:matrix-org/gemini-scrollbar#91e1e566"
|
||||
gfm.css "^1.1.1"
|
||||
glob "^5.0.14"
|
||||
glob-to-regexp "^0.4.1"
|
||||
highlight.js "^9.15.8"
|
||||
is-ip "^2.0.0"
|
||||
isomorphic-fetch "^2.2.1"
|
||||
linkifyjs "^2.1.6"
|
||||
lodash "^4.17.14"
|
||||
lolex "4.2"
|
||||
matrix-js-sdk "2.4.1"
|
||||
matrix-js-sdk "2.4.4"
|
||||
optimist "^0.6.1"
|
||||
pako "^1.0.5"
|
||||
png-chunks-extract "^1.0.0"
|
||||
@@ -6681,9 +6696,9 @@ obuf@^1.0.0, obuf@^1.1.2:
|
||||
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
||||
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
|
||||
|
||||
"olm@https://packages.matrix.org/npm/olm/olm-3.1.0.tgz":
|
||||
version "3.1.0"
|
||||
resolved "https://packages.matrix.org/npm/olm/olm-3.1.0.tgz#2c8fc2a42b7ea12febc31baa73ec03d9b601da16"
|
||||
"olm@https://packages.matrix.org/npm/olm/olm-3.1.4.tgz":
|
||||
version "3.1.4"
|
||||
resolved "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz#0f03128b7d3b2f614d2216409a1dfccca765fdb3"
|
||||
|
||||
on-finished@~2.3.0:
|
||||
version "2.3.0"
|
||||
@@ -8233,6 +8248,11 @@ shebang-regex@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
||||
|
||||
shell-escape@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shell-escape/-/shell-escape-0.2.0.tgz#68fd025eb0490b4f567a027f0bf22480b5f84133"
|
||||
integrity sha1-aP0CXrBJC09WegJ/C/IkgLX4QTM=
|
||||
|
||||
shell-quote@^1.6.1:
|
||||
version "1.7.2"
|
||||
resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2"
|
||||
|
||||
Reference in New Issue
Block a user