Compare commits
142 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17027cb515 | ||
|
|
3cd7e1c18c | ||
|
|
6f85fc9e8c | ||
|
|
0401e86216 | ||
|
|
fbd5ffc198 | ||
|
|
7a7ea8c7f6 | ||
|
|
fb64a0a46c | ||
|
|
dd4f5131c7 | ||
|
|
f48ca740fc | ||
|
|
6d553d1ecd | ||
|
|
3ba3c1b881 | ||
|
|
a98c052664 | ||
|
|
37119efec9 | ||
|
|
0c18f944cc | ||
|
|
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 | ||
|
|
685d913171 | ||
|
|
b41452162c | ||
|
|
ef473f930a | ||
|
|
b333058b57 | ||
|
|
7df140c164 | ||
|
|
ef1fd9e428 | ||
|
|
98b4681dc5 | ||
|
|
b312b4d502 | ||
|
|
509ed81294 | ||
|
|
1ba2731391 | ||
|
|
e599fafdfd | ||
|
|
caac5466ba | ||
|
|
d83c942fe5 | ||
|
|
c0a0466b6c | ||
|
|
31dc423d1d | ||
|
|
beaf6b0e0d | ||
|
|
4273f2cc55 | ||
|
|
6173841768 | ||
|
|
f7a08e8d27 | ||
|
|
1aa48be01e | ||
|
|
5ead6554b3 | ||
|
|
f1531d2b12 | ||
|
|
b9eab9fe29 |
104
CHANGELOG.md
104
CHANGELOG.md
@@ -1,3 +1,107 @@
|
||||
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)
|
||||
|
||||
* Document troubleshooting for memory leaks and getting profiles
|
||||
[\#11031](https://github.com/vector-im/riot-web/pull/11031)
|
||||
|
||||
Changes in [1.4.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.2-rc.1) (2019-10-02)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.1...v1.4.2-rc.1)
|
||||
|
||||
* Custom themes MVP
|
||||
[\#11017](https://github.com/vector-im/riot-web/pull/11017)
|
||||
* Document permalinkPrefix setting
|
||||
[\#11007](https://github.com/vector-im/riot-web/pull/11007)
|
||||
|
||||
Changes in [1.4.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.1) (2019-10-01)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.0...v1.4.1)
|
||||
|
||||
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,15 +18,10 @@ 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.
|
||||
* 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. The available features are described in [labs.md](labs.md).
|
||||
@@ -80,8 +75,15 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
|
||||
country selectors, like the phone number input on the registration page.
|
||||
Defaults to `GB` if the given code is unknown or not provided.
|
||||
1. `settingDefaults`: Defaults for settings that support the `config` level,
|
||||
as an object mapping setting name to value (note that the "theme" setting
|
||||
is special cased to the `default_theme` in the config file).
|
||||
1. `disable_custom_urls`: disallow the user to change the
|
||||
default homeserver when signing up or logging in.
|
||||
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
|
||||
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
|
||||
Set this to your Riot instance URL if you run an unfederated server (eg:
|
||||
"https://riot.example.org").
|
||||
|
||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||
hosted on riot.im. This is the image used if links to your copy of Riot
|
||||
@@ -93,6 +95,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
|
||||
=========================
|
||||
|
||||
|
||||
@@ -46,11 +46,6 @@ 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).
|
||||
|
||||
53
docs/memory-profiles-and-leaks.md
Normal file
53
docs/memory-profiles-and-leaks.md
Normal file
@@ -0,0 +1,53 @@
|
||||
## Memory leaks
|
||||
|
||||
Riot usually emits slow behaviour just before it is about to crash. Getting a
|
||||
memory snapshot (below) just before that happens is ideal in figuring out what
|
||||
is going wrong.
|
||||
|
||||
Common symptoms are clicking on a room and it feels like the tab froze and scrolling
|
||||
becoming jumpy/staggered.
|
||||
|
||||
If you receive a white screen (electron) or the chrome crash page, it is likely
|
||||
run out of memory and it is too late for a memory profile. Please do report when
|
||||
this happens though so we can try and narrow down what might have gone wrong.
|
||||
|
||||
## Memory profiles/snapshots
|
||||
|
||||
When investigating memory leaks/problems it's usually important to compare snapshots
|
||||
from different points in the Riot session lifecycle. Most importantly, a snapshot
|
||||
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
|
||||
roughly 30-60 minutes after starting Riot is a good time to establish "normal"
|
||||
memory usage for the app - anything after that is at risk of hiding the memory leak
|
||||
and anything newer is still in the warmup stages of the app.
|
||||
|
||||
**Memory profiles can contain sensitive information.** If you are submitting a memory
|
||||
profile to us for debugging purposes, please pick the appropriate Riot developer and
|
||||
send them over an encrypted private message. *Do not share your memory profile in
|
||||
public channels or with people you do not trust.*
|
||||
|
||||
### Taking a memory profile (Firefox)
|
||||
|
||||
1. Press CTRL+SHIFT+I (I as in eye).
|
||||
2. Click the Memory tab.
|
||||
3. Press the camera icon in the top left of the pane.
|
||||
4. Wait a bit (coffee is a good option).
|
||||
5. When the save button appears on the left side of the panel, click it to save the
|
||||
profile locally.
|
||||
6. Compress the file (gzip or regular zip) to make the file smaller.
|
||||
7. Send the compressed file to whoever asked for it (if you trust them).
|
||||
|
||||
While the profile is in progress, the tab might be frozen or unresponsive.
|
||||
|
||||
### Taking a memory profile (Chrome/Desktop)
|
||||
|
||||
1. Press CTRL+SHIFT+I (I as in eye).
|
||||
2. Click the Memory tab.
|
||||
3. Select "Heap Snapshot" and the riot.im VM instance (not the indexeddb one).
|
||||
4. Click "Take Snapshot".
|
||||
5. Wait a bit (coffee is a good option).
|
||||
6. When the save button appears on the left side of the panel, click it to save the
|
||||
profile locally.
|
||||
7. Compress the file (gzip or regular zip) to make the file smaller.
|
||||
8. Send the compressed file to whoever asked for it (if you trust them).
|
||||
|
||||
While the profile is in progress, the tab might be frozen or unresponsive.
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "1.4.1",
|
||||
"version": "1.5.2",
|
||||
"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'
|
||||
@@ -86,8 +86,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 +124,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 +174,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 +342,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 +374,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 +392,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;
|
||||
|
||||
20
package.json
20
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "1.4.1",
|
||||
"version": "1.5.2",
|
||||
"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.1",
|
||||
"matrix-js-sdk": "2.4.3",
|
||||
"matrix-react-sdk": "1.7.1",
|
||||
"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,6 +111,7 @@
|
||||
"electron-builder": "^21.2.0",
|
||||
"electron-builder-squirrel-windows": "^21.2.0",
|
||||
"electron-devtools-installer": "^2.2.4",
|
||||
"electron-notarize": "^0.1.1",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
@@ -145,6 +146,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 +154,7 @@
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"electronVersion": "6.0.10",
|
||||
"electronVersion": "6.1.2",
|
||||
"files": [
|
||||
"node_modules/**",
|
||||
"src/**"
|
||||
@@ -177,7 +179,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 +191,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",
|
||||
|
||||
@@ -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",
|
||||
@@ -28,7 +27,6 @@
|
||||
"feature_sas": "labs",
|
||||
"feature_room_breadcrumbs": "labs",
|
||||
"feature_state_counters": "labs",
|
||||
"feature_cider_composer": "labs",
|
||||
"feature_many_integration_managers": "labs"
|
||||
},
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
|
||||
@@ -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 Exception("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';
|
||||
|
||||
@@ -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.",
|
||||
|
||||
@@ -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]",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"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ę?",
|
||||
@@ -35,5 +35,10 @@
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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">
|
||||
|
||||
@@ -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<{}> {
|
||||
@@ -202,7 +212,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 {
|
||||
|
||||
@@ -18,6 +18,8 @@ module.exports = {
|
||||
// CSS themes
|
||||
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
|
||||
"theme-dark": "./node_modules/matrix-react-sdk/res/themes/dark/css/dark.scss",
|
||||
"theme-light-custom": "./node_modules/matrix-react-sdk/res/themes/light-custom/css/light-custom.scss",
|
||||
"theme-dark-custom": "./node_modules/matrix-react-sdk/res/themes/dark-custom/css/dark-custom.scss",
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
|
||||
54
yarn.lock
54
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.1.1:
|
||||
version "0.1.1"
|
||||
resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-0.1.1.tgz#c3563d70c5e7b3315f44e8495b30050a8c408b91"
|
||||
integrity sha512-TpKfJcz4LXl5jiGvZTs5fbEx+wUFXV5u8voeG5WCHWfY/cdgdD8lDZIZRqLVOtR3VO+drgJ9aiSHIO9TYn/fKg==
|
||||
dependencies:
|
||||
debug "^4.1.1"
|
||||
fs-extra "^8.0.1"
|
||||
|
||||
electron-publish@21.2.0:
|
||||
version "21.2.0"
|
||||
resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-21.2.0.tgz#cc225cb46aa62e74b899f2f7299b396c9802387d"
|
||||
@@ -3175,7 +3183,7 @@ emoji-regex@^8.0.0:
|
||||
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
|
||||
integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
|
||||
|
||||
emojibase-data@^4.0.1:
|
||||
emojibase-data@^4.0.2:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/emojibase-data/-/emojibase-data-4.0.2.tgz#6b5ee0b6e8d04f9fcbca2c308c3341da8be47797"
|
||||
integrity sha512-ezU6rqxbrsINFD+lg28IQwRsWLoSpwpt6TH65fBEx/GxIrPpbIP1ZvNu1jUkRD+oALspstjyujZvcv0VlJozhg==
|
||||
@@ -4083,7 +4091,7 @@ fs-extra@^0.30.0:
|
||||
path-is-absolute "^1.0.0"
|
||||
rimraf "^2.2.8"
|
||||
|
||||
fs-extra@^8.1.0:
|
||||
fs-extra@^8.0.1, fs-extra@^8.1.0:
|
||||
version "8.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
|
||||
integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==
|
||||
@@ -5823,11 +5831,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 +5950,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.3:
|
||||
version "2.4.3"
|
||||
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-2.4.3.tgz#23b78cc707a02eb0ce7eecb3aa50129e46dd5b6e"
|
||||
integrity sha512-8qTqILd/NmTWF24tpaxmDIzkTk/bZhPD5N8h69PlvJ5Y6kMFctpRj+Tud5zZjl5/yhO07+g+JCyDzg+AagiM/A==
|
||||
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 +5974,10 @@ matrix-mock-request@^1.2.3:
|
||||
bluebird "^3.5.0"
|
||||
expect "^1.20.2"
|
||||
|
||||
matrix-react-sdk@1.6.1:
|
||||
version "1.6.1"
|
||||
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.6.1.tgz#37608f7e6ecf5d8a57411c0e2d63e516f897f42c"
|
||||
integrity sha512-+hjM+aGU/Rc39Ebu/SONLX8XJ/Y1Ig7uEOGTV5R+BJMRlLtpK/rYwJk24tpn1LiVMhPU5HJCApnmvpBv3Xo/GQ==
|
||||
matrix-react-sdk@1.7.1:
|
||||
version "1.7.1"
|
||||
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-1.7.1.tgz#279b556dd24aae1ff13d10b261521055cdf9c7e4"
|
||||
integrity sha512-y5sOCMHZvZRyWcJnaK5bk6oiq6hIO3bSJy3GNqL8yRozt3CPZzHDG9ripf3EQ+hmGilKV9sfPZw173CxZROwDw==
|
||||
dependencies:
|
||||
babel-plugin-syntax-dynamic-import "^6.18.0"
|
||||
babel-runtime "^6.26.0"
|
||||
@@ -5988,7 +5991,7 @@ matrix-react-sdk@1.6.1:
|
||||
create-react-class "^15.6.0"
|
||||
diff-dom "^4.1.3"
|
||||
diff-match-patch "^1.0.4"
|
||||
emojibase-data "^4.0.1"
|
||||
emojibase-data "^4.0.2"
|
||||
emojibase-regex "^3.0.0"
|
||||
file-saver "^1.3.3"
|
||||
filesize "3.5.6"
|
||||
@@ -6005,7 +6008,7 @@ matrix-react-sdk@1.6.1:
|
||||
linkifyjs "^2.1.6"
|
||||
lodash "^4.17.14"
|
||||
lolex "4.2"
|
||||
matrix-js-sdk "2.4.1"
|
||||
matrix-js-sdk "2.4.3"
|
||||
optimist "^0.6.1"
|
||||
pako "^1.0.5"
|
||||
png-chunks-extract "^1.0.0"
|
||||
@@ -6681,9 +6684,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 +8236,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