Compare commits

..

203 Commits

Author SHA1 Message Date
Bruno Windels
f76b30af15 v1.0.7 2019-04-08 16:18:22 +02:00
Bruno Windels
44258ffa4b Prepare changelog for v1.0.7 2019-04-08 16:18:21 +02:00
Bruno Windels
659c29cf77 v1.0.7 2019-04-08 16:16:46 +02:00
Bruno Windels
b6da314692 bump js-sdk to 1.0.4 and react-sdk to 1.0.7 2019-04-08 16:15:05 +02:00
David Baker
164a0e0160 v1.0.6 2019-04-01 13:55:12 +01:00
David Baker
3265f84266 Prepare changelog for v1.0.6 2019-04-01 13:55:12 +01:00
David Baker
2bac72fa36 v1.0.6 2019-04-01 13:53:18 +01:00
David Baker
51f6d02cf1 Released js-sdk & react-sdk, and bump electron version 2019-04-01 13:52:11 +01:00
J. Ryan Stinnett
e2cd44d69f Merge pull request #9327 from vector-im/travis/1.0.6-fire/9326
Add "Save image as..." button to context menu on images
2019-04-01 09:29:09 +01:00
Travis Ralston
7a9cea4baa Add "Save image as..." button to context menu on images
Fixes https://github.com/vector-im/riot-web/issues/9324
Requires https://github.com/matrix-org/matrix-react-sdk/pull/2848
2019-03-29 16:21:25 -06:00
David Baker
d1a5b79bc3 v1.0.6-rc.1 2019-03-27 17:47:47 +00:00
David Baker
c9e70fb0c6 Prepare changelog for v1.0.6-rc.1 2019-03-27 17:47:46 +00:00
David Baker
f392a00138 v1.0.6-rc.1 2019-03-27 17:46:32 +00:00
David Baker
d747896354 react-sdk & js-sdk rc.1 2019-03-27 17:44:30 +00:00
J. Ryan Stinnett
a8e4949616 Update matrix-mock-request 2019-03-27 15:09:34 +00:00
J. Ryan Stinnett
e8ec6cc1b1 Merge pull request #9279 from jryans/storage-edge-cases
Use `on_logged_in` action in tests
2019-03-27 09:22:30 +00:00
J. Ryan Stinnett
fef69b54fb Use on_logged_in action in tests
This changes the way tests wait for login to complete from a timer-based system
(which can cause intermittent failures) to an action-based system. The lifecycle
code dispatches the action `on_logged_in` when login completes which we can wait
for in the tests as a much better indication that work is done.
2019-03-26 15:21:53 +00:00
J. Ryan Stinnett
5112b33af2 Remove unused test helper 2019-03-26 14:41:10 +00:00
J. Ryan Stinnett
2e24b0c53b Merge pull request #9278 from jryans/storage-edge-cases
Convert away from `Promise.defer`
2019-03-26 13:26:00 +00:00
J. Ryan Stinnett
f321aba4ac Convert away from Promise.defer
`Promise.defer` is deprecated in Bluebird and it logs loudly each time it's
called. This cleans up testing logs significantly by converting away from it.
2019-03-26 12:46:26 +00:00
J. Ryan Stinnett
7ac117f964 Merge pull request #9233 from vector-im/bwindels/updatelockafterrelease
update react-sdk version in yarn lockfile
2019-03-26 11:17:45 +00:00
Ben Parsons
5566fd4f32 Merge pull request #9154 from vector-im/benp/labs-docs
"Render simple counters in room header" details
2019-03-22 14:58:37 +00:00
Ben Parsons
d098857d5a wrap text and link from README.md 2019-03-22 14:49:44 +00:00
Ben Parsons
24296ca44e Merge branch 'develop' into benp/labs-docs 2019-03-22 14:45:01 +00:00
Travis Ralston
8e5147976a Merge pull request #9238 from vector-im/travis/buildkite2
Use medium agents for the more resource intensive builds
2019-03-21 12:11:44 -06:00
Travis Ralston
8b097bcd8c Use medium agents for the more resource intensive builds 2019-03-21 11:00:06 -06:00
Bruno Windels
7fb4b32e8f update react-sdk version in yarn lockfile 2019-03-21 13:55:46 +01:00
Bruno Windels
f777c2c9bc Merge branch 'master' into develop 2019-03-21 11:40:43 +01:00
Bruno Windels
e413d69d0b Merge branch 'release-v1.0.5' 2019-03-21 11:40:30 +01:00
Bruno Windels
c8692473a4 v1.0.5 2019-03-21 11:37:35 +01:00
Bruno Windels
a84a599f16 Prepare changelog for v1.0.5 2019-03-21 11:37:35 +01:00
Bruno Windels
0dd1a7b309 v1.0.5 2019-03-21 11:34:17 +01:00
Bruno Windels
4792eb4aa4 bump matrix-react-sdk version to 1.0.5 2019-03-21 11:31:12 +01:00
David Baker
5fcf884303 Merge pull request #9223 from vector-im/dbkr/buildkite_group_logs
Add log grouping to buildkite
2019-03-20 21:47:28 +00:00
David Baker
930ac3ae18 Add log grouping to buildkite
It mostly truncates the log anyway but what are you gonna do
2019-03-20 21:33:25 +00:00
J. Ryan Stinnett
38a24bf4ce Merge pull request #9222 from jryans/git-proto
Switch to `git` protocol for CI dependencies
2019-03-20 20:53:19 +00:00
J. Ryan Stinnett
52ad757cf4 Switch to git protocol for CI dependencies
If you try to clone a repo that doesn't exist via `https`, `git` will prompt for
auth credentials and hang forever. Using `git` avoids this and fails immediately
instead, which is what we want for a missing repo.

Part of https://github.com/vector-im/riot-web/issues/9221
2019-03-20 18:06:18 +00:00
J. Ryan Stinnett
82d7457168 Merge pull request #9212 from jryans/ci-forks
Support CI for matching branches on forks
2019-03-20 09:57:03 +00:00
J. Ryan Stinnett
f5c28a19e1 Support CI for matching branches on forks
Currently, people with push access to the main Riot repos can push matching
branch names to Riot and the SDKs, and CI will test all the branches together.
This change allows contributors to access the same ability when submitting
several matching PRs from their fork of each repo.

Part of https://github.com/vector-im/riot-web/issues/9041
2019-03-19 18:17:27 +00:00
David Baker
9735c332ff Merge branch 'master' into develop 2019-03-18 16:27:39 +00:00
David Baker
2de1f375fa Update yarn.lock
which wasn't updated at release time
2019-03-18 16:27:01 +00:00
David Baker
42c2692d28 Merge branch 'master' into develop 2019-03-18 14:20:09 +00:00
David Baker
dceb2dd671 v1.0.4 2019-03-18 14:16:23 +00:00
David Baker
9001416343 Prepare changelog for v1.0.4 2019-03-18 14:16:23 +00:00
David Baker
5254cef980 v1.0.4 2019-03-18 14:11:52 +00:00
David Baker
59ebb15fe9 Released js-sdk & react-sdk 2019-03-18 14:11:09 +00:00
David Baker
e6addecd8f Merge pull request #9199 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-03-18 10:18:54 +00:00
Weblate
2029aa31d3 Merge branch 'origin/develop' into Weblate. 2019-03-18 09:26:44 +00:00
Micheál Ó hÓgáin
8b3f473b60 Translated using Weblate (Irish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/ga/
2019-03-18 09:26:43 +00:00
Gene Wood
723d28e549 Translated using Weblate (English (United States))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/en_US/
2019-03-18 09:26:42 +00:00
Micheál Ó hÓgáin
fae63d04e0 Added translation using Weblate (Irish) 2019-03-17 01:41:44 +00:00
Travis Ralston
abb6bee44d Merge pull request #9177 from vector-im/travis/browser-support-docs
Declare the officially supported browsers in the README
2019-03-15 12:04:17 -06:00
J. Ryan Stinnett
faa9932c77 Merge pull request #9011 from vector-im/t3chguy/local-config
Document some desktop app things
2019-03-15 17:53:55 +00:00
J. Ryan Stinnett
95611d2c12 Update README.md grammar 2019-03-15 17:53:20 +00:00
Travis Ralston
25c767c79e Merge remote-tracking branch 'origin/develop' into travis/browser-support-docs 2019-03-15 11:44:09 -06:00
Travis Ralston
771909eddb Merge pull request #9165 from vector-im/travis/buildkite
Use Buildkite for CI
2019-03-15 11:43:43 -06:00
Travis Ralston
631fcb0ad2 Cross-promote mobile apps 2019-03-15 11:43:00 -06:00
Travis Ralston
df7b617881 Fix downstream branch fetching
We should be giving the PR the best possible chance at passing the build.
2019-03-15 10:23:43 -06:00
Tom Lant
bccdd60889 Update issue templates 2019-03-15 14:24:45 +00:00
Travis Ralston
e47728e0e4 Declare the officially supported browsers in the README
Fixes https://github.com/vector-im/riot-web/issues/8701
2019-03-14 12:59:57 -06:00
J. Ryan Stinnett
61a79a36f8 Merge pull request #9170 from Mikaela/issue-templates
Update version number in issue templates
2019-03-14 10:14:22 +00:00
Mikaela Suomalainen
49165a09c3 Update version number in issue templates
Signed-off-by: Mikaela Suomalainen <mikaela+git@mikaela.info>
2019-03-14 12:03:11 +02:00
Travis Ralston
ef6313fbb4 Use the right CI branch 2019-03-13 22:44:28 -06:00
Travis Ralston
1fb8b23d4c Set up BuildKite for Chrome 2019-03-13 22:03:37 -06:00
Travis Ralston
f6d4c6a5a3 Lint doesn't need develop deps 2019-03-13 18:40:48 -06:00
Travis Ralston
0b4c52c032 Remove Travis (CI)
We're using BuildKite now
2019-03-13 18:40:48 -06:00
Travis Ralston
b6cdaa8597 Add a basic BuildKite :pipeline: 2019-03-13 18:40:47 -06:00
Travis Ralston
1d51507134 Merge pull request #9159 from vector-im/travis/node-8-isnt-real
Remove node 8.x from the build matrix
2019-03-13 14:48:33 -06:00
Travis Ralston
789a0da176 Remove irrelevant warning 2019-03-13 14:39:10 -06:00
Travis Ralston
df164d7489 Remove node 8.x from the build matrix
We don't support Node 8 anymore. Also the build is broken.
2019-03-13 14:10:12 -06:00
Travis Ralston
6ac69c109c Merge pull request #9157 from aaronraimist/electron-help
Update Electron help menu link
2019-03-13 13:52:31 -06:00
Aaron Raimist
b40ed7cb11 Update Electron help menu link
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-03-13 14:43:24 -05:00
Ben Parsons
ee85c04796 "Render simple counters in room header" details 2019-03-13 17:54:46 +00:00
J. Ryan Stinnett
660a160c8e Ignore package-lock.json in case of confused npm users 2019-03-13 15:49:07 +00:00
J. Ryan Stinnett
ef090846e2 Deduplicate log ignore 2019-03-13 15:46:01 +00:00
J. Ryan Stinnett
75a7e7ce82 Update webpack-dev-server 2019-03-13 15:07:50 +00:00
David Baker
bf721d031a v1.0.4-rc.1 2019-03-13 15:00:17 +00:00
David Baker
98ed6a6a29 Prepare changelog for v1.0.4-rc.1 2019-03-13 15:00:17 +00:00
David Baker
958e8662d9 v1.0.4-rc.1 2019-03-13 14:58:28 +00:00
David Baker
9280d1ff49 yarn neds --new-version to make a new version 2019-03-13 14:57:52 +00:00
David Baker
a3585c1feb react-sdk & js-sdk rc.1 2019-03-13 14:56:24 +00:00
J. Ryan Stinnett
aae5ca0763 Ignore *.log files, such as from npm or Yarn 2019-03-13 14:44:01 +00:00
David Baker
d6942353f1 Electron 4.0.8 2019-03-13 14:15:47 +00:00
David Baker
2d8dae4723 Merge pull request #9152 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-03-13 14:05:30 +00:00
Weblate
ff944092ac Merge branch 'origin/develop' into Weblate. 2019-03-13 14:04:18 +00:00
Paulo Miranda
fa44eccf6b Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/pt_BR/
2019-03-13 14:04:16 +00:00
Sheogorath
1f9e518535 Translated using Weblate (German)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/de/
2019-03-13 14:04:16 +00:00
David Baker
645f4e9a80 Merge pull request #9151 from jryans/yarn-ci
Use modern Yarn version on Travis CI
2019-03-13 13:23:36 +00:00
J. Ryan Stinnett
a05e5d1e86 Use modern Yarn version on Travis CI
Travis CI uses a quite old version of Yarn by default. This adds Yarn's
recommended incantation for using the latest stable version.
2019-03-13 12:32:46 +00:00
J. Ryan Stinnett
fcaf0a5503 Recommend using the latest Node LTS version 2019-03-13 10:54:36 +00:00
J. Ryan Stinnett
1abaf50633 Merge pull request #9132 from jryans/yarn
Switch to `yarn` for dependency management
2019-03-13 09:37:53 +00:00
Tom Lant
00cd9b2ecc Update issue templates 2019-03-12 17:01:17 +01:00
J. Ryan Stinnett
1312ba537a Update scripts and docs to use yarn where appropriate
Most `npm` operations are replaced with `yarn`, which generally has better
behavior. However, steps like publish that write to the NPM registry are left to
`npm`, which currently handles these tasks best.
2019-03-12 11:06:57 +00:00
J. Ryan Stinnett
13aca0716a Add yarn lock file for Electron app
We did not previously commit lock files for the Electron app, so there is no
correct copy to import from. For this directory, I created a fresh yarn lock
file using yarn install.
2019-03-11 15:33:00 +00:00
J. Ryan Stinnett
a5b8d6381f Convert from npm to yarn lock file
The npm lock file was imported into yarn. A yarn install pass was then run to
double-check the lock file for sanity.
2019-03-11 14:35:03 +00:00
David Baker
acacc61f1c Merge pull request #9104 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-03-11 10:02:11 +00:00
Weblate
837abe3bb8 Merge branch 'origin/develop' into Weblate. 2019-03-11 10:00:55 +00:00
roket1428
eb40efefd1 Translated using Weblate (Turkish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/tr/
2019-03-11 10:00:49 +00:00
pogback
e7625d48f6 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/zh_Hans/
2019-03-11 10:00:49 +00:00
David Baker
b3aeb53763 Merge pull request #9075 from vector-im/dbkr/no_32_bit_linux
Don't copy the 32 bit linux deb
2019-03-07 11:54:55 +00:00
David Baker
12a56e37ba Don't copy the 32 bit linux deb
As per comment
2019-03-07 11:12:43 +00:00
David Baker
1b6da01734 Merge pull request #9068 from vector-im/dbkr/olm_isnt_optional
Change olm dependency to normal dep
2019-03-06 17:26:04 +00:00
David Baker
34d875ca57 remove empty section 2019-03-06 16:51:58 +00:00
David Baker
7b684aee0c Also makes this unnecessary 2019-03-06 16:48:58 +00:00
David Baker
4078443265 Change olm dependency to normal dep
It would be nice if it were actually an optional dependency and you
could just not install olm and get a Riot without olm, but you can't:
what you get is a broken Riot, so having it as an optional dep isn't
helping anyone.

Also whatever other package-lock changes npm has decided are
necessary today.
2019-03-06 16:44:36 +00:00
David Baker
acb8afaeb7 Merge branch 'master' into develop 2019-03-06 16:07:05 +00:00
David Baker
fbce9c0ecf Merge branch 'release-v1.0.3' 2019-03-06 16:06:45 +00:00
David Baker
2bb134e7f5 v1.0.3 2019-03-06 15:58:00 +00:00
David Baker
547ed4c672 Prepare changelog for v1.0.3 2019-03-06 15:57:59 +00:00
David Baker
8e9d73fb5b v1.0.3 2019-03-06 15:55:40 +00:00
David Baker
052adc10b5 react-sdk v1.0.3 2019-03-06 15:48:57 +00:00
David Baker
b2d417d7ef Merge branch 'master' into develop 2019-03-06 11:38:17 +00:00
David Baker
8543c7b9ff Merge branch 'release-v1.0.2' 2019-03-06 11:36:41 +00:00
David Baker
b6930415ce v1.0.2 2019-03-06 11:33:14 +00:00
David Baker
ebf6deeed2 Prepare changelog for v1.0.2 2019-03-06 11:33:13 +00:00
David Baker
ea86359c41 v1.0.2 2019-03-06 11:31:02 +00:00
David Baker
72014c59be Released matrix-sdk & js-sdk 2019-03-06 11:29:55 +00:00
David Baker
2b709c6973 v1.0.2-rc.3 2019-03-05 19:22:13 +00:00
David Baker
3ee0789ef7 Prepare changelog for v1.0.2-rc.3 2019-03-05 19:22:12 +00:00
David Baker
b7d2159d60 v1.0.2-rc.3 2019-03-05 19:20:57 +00:00
David Baker
95c979de98 react-sdk & js-sdk rcs 2019-03-05 19:20:21 +00:00
David Baker
164de5faa5 Merge pull request #9051 from vector-im/dbkr/hosting_link_2
Add modular.im hosting link to electron app config
2019-03-05 18:28:03 +00:00
David Baker
5474a5e0c7 utm_campaign is now added automatically 2019-03-05 18:27:22 +00:00
David Baker
9235b5a861 Add modular.im hosting link to electron app config 2019-03-05 18:27:15 +00:00
David Baker
3a77b8ee64 Merge pull request #9047 from vector-im/dbkr/hosting_link
Add modular.im hosting link to electron app config
2019-03-05 18:21:55 +00:00
David Baker
116f1d7d92 utm_campaign is now added automatically 2019-03-05 16:45:46 +00:00
David Baker
3c123a064b Add modular.im hosting link to electron app config 2019-03-05 16:18:04 +00:00
David Baker
d4f29805c3 v1.0.2-rc.2 2019-03-01 17:42:19 +00:00
David Baker
0d6d755788 Prepare changelog for v1.0.2-rc.2 2019-03-01 17:42:18 +00:00
David Baker
29ff95cccc v1.0.2-rc.2 2019-03-01 17:39:57 +00:00
David Baker
20c437277c react-sdk rc.3 2019-03-01 17:38:31 +00:00
David Baker
ea959d5994 v1.0.2-rc.1 2019-03-01 12:22:19 +00:00
David Baker
813fdf4aad Prepare changelog for v1.0.2-rc.1 2019-03-01 12:22:18 +00:00
David Baker
ab1ceff242 v1.0.2-rc.1 2019-03-01 12:20:32 +00:00
David Baker
2e3d0e50ec react-sdk rc.2 2019-03-01 12:19:28 +00:00
David Baker
4a5a73597c Merge pull request #9014 from vector-im/dbkr/langs_file_resolve_alias
Set a require alias for the webapp directory
2019-03-01 12:13:28 +00:00
David Baker
bf1ab7f420 Use $webapp rather than Webapp 2019-03-01 12:03:19 +00:00
David Baker
53e25ff247 Set a resuire alias for the webapp directory
So languagehandler can pull the languages json from there
2019-03-01 11:32:37 +00:00
J. Ryan Stinnett
48015aa36d Merge pull request #8991 from vector-im/jryans/nudge-karma
Nudge karma to 3.1.2
2019-03-01 09:37:07 +00:00
Michael Telatynski
01becf00f5 Try and improve README
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-03-01 08:01:26 +00:00
Michael Telatynski
baa034230f Merge pull request #8983 from vector-im/t3chguy/local-config
Add support for localConfig at $appData/config.json.
2019-03-01 07:54:49 +00:00
David Baker
6206b1d073 js-sdk & react-sdk rc.1 2019-02-28 14:51:51 +00:00
David Baker
4f58deac1f Merge pull request #8973 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate.
2019-02-28 14:12:15 +00:00
Weblate
97a60834a1 Merge branch 'origin/develop' into Weblate. 2019-02-28 14:10:48 +00:00
Weblate
0e2938d7b3 [matrix] -> Matrix 2019-02-28 14:10:31 +00:00
Bruno Windels
b0bbe48220 Merge pull request #8987 from vector-im/bwindels/cichromelocation
set chrome path for travis CI explicitly
2019-02-28 15:02:08 +01:00
J. Ryan Stinnett
8b25d4f710 Nudge karma to 3.1.2
This includes a fix for detecting the version of Chrome used to run tests.
2019-02-28 13:52:34 +00:00
Weblate
34eb6322c0 Merge branch 'origin/develop' into Weblate. 2019-02-28 13:40:41 +00:00
Bruno Windels
45d1ec8825 set chrome path for travis CI explicitly
karma seems to be giving priority to a location where an old version is installed.
2019-02-28 13:18:21 +01:00
David Baker
e37a8dc8a1 Merge pull request #8984 from vector-im/nadonomy/electron-spinner
Updated install spinner
2019-02-28 10:20:51 +00:00
Nad Chishtie
f020995ac4 Updated install spinner referenced in #8913 2019-02-28 11:19:00 +01:00
Michael Telatynski
0e0c1cfad3 Add support for localConfig at $appData/config.json.
Move electron-config to $appData/electron-config.json

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-28 00:17:33 +00:00
Weblate
79d56bdb0e Merge remote-tracking branch 'origin/develop' into develop 2019-02-27 17:41:51 +00:00
David Baker
3b70faee24 Translated using Weblate (Hungarian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-02-27 17:41:48 +00:00
David Baker
0d5e80cc51 Update to electron 4.0.6 2019-02-27 17:34:36 +00:00
Weblate
f899c75d0c Merge remote-tracking branch 'origin/develop' into develop 2019-02-27 17:33:01 +00:00
hectorfdezlopez
5266d1bc11 Translated using Weblate (Spanish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2019-02-27 17:32:58 +00:00
Herman S
3acc6ee5c9 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nb_NO/
2019-02-27 17:32:58 +00:00
Szimszon
2c0b47a1e9 Translated using Weblate (Hungarian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-02-27 17:32:57 +00:00
Akarshan Biswas
ea0ce23ac7 Translated using Weblate (Hindi)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hi/
2019-02-27 17:32:57 +00:00
Sotiris Papatheodorou
d644a73595 Translated using Weblate (Greek)
Currently translated at 84.2% (16 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/el/
2019-02-27 17:32:57 +00:00
Fridtjof Mund
c3c9b63326 Translated using Weblate (German)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/
2019-02-27 17:32:57 +00:00
Samu Voutilainen
b10ec4db37 Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2019-02-27 17:32:57 +00:00
ButterflyOfFire
5d555e044d Translated using Weblate (Arabic)
Currently translated at 89.4% (17 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ar/
2019-02-27 17:32:56 +00:00
Tom Lant
f9be0bfb2e Update issue templates 2019-02-27 14:06:00 +00:00
Paulo Miranda
0a0aa1c591 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pt_BR/
2019-02-27 13:50:43 +00:00
Stanislav Lukeš
af2921d0c4 Translated using Weblate (Czech)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/cs/
2019-02-27 09:51:04 +00:00
Joar Wandborg
4beeba6cf6 Translated using Weblate (Swedish)
Currently translated at 94.7% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sv/
2019-02-25 10:57:37 +00:00
Tim Stahel
0c742e5424 Translated using Weblate (Swedish)
Currently translated at 94.7% (18 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sv/
2019-02-25 10:57:37 +00:00
Travis Ralston
a5a4c167e8 Merge pull request #8911 from vector-im/t3chguy/no-update
Allow disabling update mechanism
2019-02-24 18:00:54 -07:00
Travis Ralston
9e11c70416 Merge pull request #8908 from vector-im/t3chguy/minimize_tray
Allow configuration of whether closing window closes or minimizes to tray
2019-02-24 17:33:14 -07:00
Michael Telatynski
ffacf30722 Allow disabling update mechanism
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 04:52:07 +00:00
Michael Telatynski
5a3b9ae454 more matching
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 01:38:21 +00:00
Michael Telatynski
717495c4e0 specify return types to match superclass
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 01:21:18 +00:00
Michael Telatynski
714570443d Allow configuration of whether closing window closes or minimizes to tray
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-02-24 01:08:01 +00:00
Akarshan Biswas
c691b248a2 Translated using Weblate (Hindi)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hi/
2019-02-22 06:53:27 +00:00
Jaroslav
a4f541adad Translated using Weblate (Ukrainian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/uk/
2019-02-21 19:05:02 +00:00
Bruno Windels
588030141b Merge pull request #8854 from jryans/jenkins-lang-file
Fix language file path for Jenkins
2019-02-21 13:53:58 +01:00
J. Ryan Stinnett
09b17f77c2 Fix language file path for Jenkins
Jenkins seems to use a different layout of the repos than other environments.
The sub-projects are cloned inside of the `riot-web` workspace. To account for
this, we need to adjust the Riot language file path.
2019-02-21 12:31:45 +00:00
J. Ryan Stinnett
62d4bb2144 Merge pull request #8832 from vector-im/jryans/default-server-name
Document and recommend `default_server_name`
2019-02-21 10:38:37 +00:00
J. Ryan Stinnett
2dc26b4c5d Document and recommend default_server_name
This the recommended way to define a default server (instead of the existing HS
and IS URL options). It will use `.well-known` discovery to find the URLs.

See https://github.com/vector-im/riot-web/issues/8763.
2019-02-20 16:08:58 +00:00
Bruno Windels
ad04e8bee8 Merge pull request #8710 from vector-im/bwindels/moarcachebustin
Cache busting for icons & language files
2019-02-20 13:34:58 +01:00
Herman S
b87f1f7713 Translated using Weblate (Norwegian Bokmål)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nb_NO/
2019-02-20 12:13:24 +00:00
Bruno Windels
6a9c053536 simplify config entry 2019-02-20 09:39:42 +01:00
Bruno Windels
e56206241b use same hash format as webpack defaults 2019-02-20 09:39:27 +01:00
Richard van der Hoff
d4e1f1af7a Fix cleanup script not to remove extracted/bundles directories (#8764) 2019-02-18 17:05:48 +00:00
Bruno Windels
c2d14392b2 allow setting the relative location of the language file for running the unit tests in ci, where riot-web is a subdirectory of react-sdk 2019-02-18 17:26:49 +01:00
Bruno Windels
223d8a87ca move relative path in react-sdk to webpack config file
otherwise react-sdk can't build anymore with riot-web
in a specific location
2019-02-18 16:25:19 +01:00
Bruno Windels
070cc77e0f add content hash to languages.json file using webpack file-loader 2019-02-18 16:12:04 +01:00
Bruno Windels
878190ba27 add content hash to individual language files 2019-02-18 16:11:41 +01:00
Jordi Mallach
3391689d29 Translated using Weblate (Catalan)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/
2019-02-18 11:30:22 +00:00
Travis Ralston
5d2d8ccc71 Merge pull request #8722 from aaronraimist/remove-redesign-issue-template
Remove redesign issue template
2019-02-15 22:10:22 -07:00
Aaron Raimist
257611f1b4 Remove redesign issue template
The redesign is just the design now

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-02-15 22:29:40 -06:00
Bruno Windels
2e60037d9f add cache busting for app icons and msapp config xml 2019-02-15 16:11:33 +01:00
Bruno Windels
f7e88855fe Merge branch 'master' into develop 2019-02-15 14:05:25 +01:00
Bruno Windels
c727e774c4 Merge branch 'release-v1.0.1' 2019-02-15 14:05:16 +01:00
Matthew Hodgson
20dc7068af Merge pull request #8550 from abeluck/develop
Make scripts/make-icons.sh work on linux
2019-02-15 12:28:58 +00:00
hectorfdezlopez
8766fcd089 Translated using Weblate (Galician)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/gl/
2019-02-15 09:34:50 +00:00
pebles
df1ff65796 Translated using Weblate (Spanish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2019-02-15 09:05:40 +00:00
Марко М. Костић
1a6efb3a1c Translated using Weblate (Serbian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/
2019-02-15 08:10:53 +00:00
J. Ryan Stinnett
674b8c3561 Merge branch 'release-v1.0.0' 2019-02-14 17:11:09 +00:00
Abel Luck
d395fdcc6a Make scripts/make-icons.sh work on linux
This commit detects if the macos-only utility `iconutil` is available in
the PATH, if it is, then the icns is built as usual. However if it
isn't (such as on a linux system), then it checks for `png2icns` and
uses it if possible.

Signed-off-by: Abel Luck <abel@guardianproject.info>
2019-02-13 11:59:36 +01:00
vectorwebexp@ares
c421c0b1bf cleanup script for the deployment dir
-- richvdh
2019-02-02 22:43:43 +00:00
55 changed files with 11107 additions and 15727 deletions

33
.buildkite/pipeline.yaml Normal file
View File

@@ -0,0 +1,33 @@
steps:
- label: ":eslint: Lint"
command:
- "yarn install"
- "yarn lint"
plugins:
- docker#v3.0.1:
image: "node:10"
- label: ":karma: Tests"
agents:
# We use a medium sized instance instead of the normal small ones because
# webpack loves to gorge itself on resources.
queue: "medium"
command:
# Install chrome
- "echo '--- Installing Chrome'"
- "wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -"
- "sh -c 'echo \"deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main\" >> /etc/apt/sources.list.d/google.list'"
- "apt-get update"
- "apt-get install -y google-chrome-stable"
# Run tests
- "echo '--- Fetching Dependencies'"
- "./scripts/fetch-develop.deps.sh --depth 1"
- "yarn install"
- "echo '+++ Running Tests'"
- "yarn test"
env:
CHROME_BIN: "/usr/bin/google-chrome-stable"
plugins:
- docker#v3.0.1:
image: "node:10"
propagate-environment: true

View File

@@ -43,4 +43,4 @@ For the web app:
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 0.x.y <!-- check the user settings panel if unsure -->
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->

View File

@@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
labels: bug
assignees: ''
---
@@ -52,4 +52,4 @@ For the web app:
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 0.x.y <!-- check the user settings panel if unsure -->
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->

View File

@@ -1,32 +0,0 @@
---
name: Redesign Issue
about: Bugs, feedback or feature requests specifically associated with the Redesign
project (https://riot.im/experimental)
title: ''
labels: redesign
assignees: ''
---
<!-- Thanks for providing feedback on the redesign! By filling out the sections with your information, you will help the us to process your issue.
-->
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
### Description
Describe here the problem that you are experiencing, or the feature you are requesting.
Include screenshots if possible: you can drag and drop images below.
### Steps to reproduce
- For bugs, list the steps
- that reproduce the bug
- using hyphens as bullet points
Describe how what happens differs from what you expected.
Log: sent/not sent? <!-- You can send us the app's logs via the 'Report bug'
link on the 'Settings' page. Very important for hard-to-reproduce bugs. Please
file a bug here too! -->

View File

@@ -0,0 +1,20 @@
---
name: Suggestion or Feature request
about: Suggest an idea for this project
title: ''
labels: suggestion
assignees: ''
---
**Is your suggestion related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@@ -0,0 +1,57 @@
---
name: User Interface or Usability Bug report
about: Please include screenshots in UI/UX bug reports
title: ''
labels: ''
assignees: ''
---
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
<!-- Please report security issues by email to security@matrix.org -->
<!-- This is a bug report template. By following the instructions below and
filling out the sections with your information, you will help the us to get all
the necessary data to fix your issue.
You can also preview your report before submitting it. You may remove sections
that aren't relevant to your particular case.
Text between <!-- and --> marks will be invisible in the report.
-->
### Description
Describe here the problem that you are experiencing, or the feature you are requesting.
### Steps to reproduce
- For bugs, list the steps
- that reproduce the bug
- using hyphens as bullet points
Describe how what happens differs from what you expected.
Log: sent/not sent? <!-- You can send us the app's logs via the 'Report bug'
link on the 'Settings' page. Very important for hard-to-reproduce bugs. Please
file a bug here too! -->
<!-- Include screenshots if possible: you can drag and drop images below. -->
### Version information
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
- **Platform**: web (in-browser) or desktop?
For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->

3
.gitignore vendored
View File

@@ -10,8 +10,9 @@
/packages/
/webapp
/.npmrc
/*.log
package-lock.json
.DS_Store
npm-debug.log
electron/dist
electron/pub
**/.idea

View File

@@ -1,28 +0,0 @@
# we need trusty for the chrome addon
dist: trusty
# we don't need sudo, so can run in a container, which makes startup much
# quicker.
#
# unfortunately we do temporarily require sudo as a workaround for
# https://github.com/travis-ci/travis-ci/issues/8836
sudo: required
language: node_js
node_js:
# make sure we work with a range of node versions.
#
# Current status of node versions: https://github.com/nodejs/LTS/
# We don't work with node 6 because it doesn't support package-lock
# files which we need to avoid the broken version of base-x
- 8
- 10
addons:
chrome: stable
install:
# clone the deps with depth 1: we know we will only ever need that one
# commit.
- npm install && scripts/fetch-develop.deps.sh --depth 1
script:
- npm run test
- npm run lint

View File

@@ -1,3 +1,138 @@
Changes in [1.0.7](https://github.com/vector-im/riot-web/releases/tag/v1.0.7) (2019-04-08)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.6...v1.0.7)
* Hotfix: bump js-sdk to 1.0.4, see https://github.com/matrix-org/matrix-js-sdk/releases/tag/v1.0.4
Changes in [1.0.6](https://github.com/vector-im/riot-web/releases/tag/v1.0.6) (2019-04-01)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.6-rc.1...v1.0.6)
* Add "Save image as..." button to context menu on images
[\#9327](https://github.com/vector-im/riot-web/pull/9327)
Changes in [1.0.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.6-rc.1) (2019-03-27)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.5...v1.0.6-rc.1)
* Use `on_logged_in` action in tests
[\#9279](https://github.com/vector-im/riot-web/pull/9279)
* Convert away from `Promise.defer`
[\#9278](https://github.com/vector-im/riot-web/pull/9278)
* update react-sdk version in yarn lockfile
[\#9233](https://github.com/vector-im/riot-web/pull/9233)
* "Render simple counters in room header" details
[\#9154](https://github.com/vector-im/riot-web/pull/9154)
* Use medium agents for the more resource intensive builds
[\#9238](https://github.com/vector-im/riot-web/pull/9238)
* Add log grouping to buildkite
[\#9223](https://github.com/vector-im/riot-web/pull/9223)
* Switch to `git` protocol for CI dependencies
[\#9222](https://github.com/vector-im/riot-web/pull/9222)
* Support CI for matching branches on forks
[\#9212](https://github.com/vector-im/riot-web/pull/9212)
* Update from Weblate
[\#9199](https://github.com/vector-im/riot-web/pull/9199)
* Declare the officially supported browsers in the README
[\#9177](https://github.com/vector-im/riot-web/pull/9177)
* Document some desktop app things
[\#9011](https://github.com/vector-im/riot-web/pull/9011)
* Use Buildkite for CI
[\#9165](https://github.com/vector-im/riot-web/pull/9165)
* Update version number in issue templates
[\#9170](https://github.com/vector-im/riot-web/pull/9170)
* Remove node 8.x from the build matrix
[\#9159](https://github.com/vector-im/riot-web/pull/9159)
* Update Electron help menu link
[\#9157](https://github.com/vector-im/riot-web/pull/9157)
Changes in [1.0.5](https://github.com/vector-im/riot-web/releases/tag/v1.0.5) (2019-03-21)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.4...v1.0.5)
* Hotfix for [\#9205](https://github.com/vector-im/riot-web/issues/9205) disabling jump prevention for typing notifications, while we're reworking this functionally to enable it again soon.
Changes in [1.0.4](https://github.com/vector-im/riot-web/releases/tag/v1.0.4) (2019-03-18)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.4-rc.1...v1.0.4)
* No changes since rc.1
Changes in [1.0.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.4-rc.1) (2019-03-13)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.3...v1.0.4-rc.1)
* Update from Weblate
[\#9152](https://github.com/vector-im/riot-web/pull/9152)
* Use modern Yarn version on Travis CI
[\#9151](https://github.com/vector-im/riot-web/pull/9151)
* Switch to `yarn` for dependency management
[\#9132](https://github.com/vector-im/riot-web/pull/9132)
* Update from Weblate
[\#9104](https://github.com/vector-im/riot-web/pull/9104)
* Don't copy the 32 bit linux deb
[\#9075](https://github.com/vector-im/riot-web/pull/9075)
* Change olm dependency to normal dep
[\#9068](https://github.com/vector-im/riot-web/pull/9068)
* Add modular.im hosting link to electron app config
[\#9047](https://github.com/vector-im/riot-web/pull/9047)
* Nudge karma to 3.1.2
[\#8991](https://github.com/vector-im/riot-web/pull/8991)
* Add support for localConfig at $appData/config.json.
[\#8983](https://github.com/vector-im/riot-web/pull/8983)
Changes in [1.0.3](https://github.com/vector-im/riot-web/releases/tag/v1.0.3) (2019-03-06)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.2...v1.0.3)
* react-sdk 1.0.3 to fix ctrl+k shortcut and room list bugs
Changes in [1.0.2](https://github.com/vector-im/riot-web/releases/tag/v1.0.2) (2019-03-06)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.2-rc.3...v1.0.2)
* New react-sdk for minor hosting link fixes
Changes in [1.0.2-rc.3](https://github.com/vector-im/riot-web/releases/tag/v1.0.2-rc.3) (2019-03-05)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.2-rc.2...v1.0.2-rc.3)
* Add modular.im hosting link to electron app config
[\#9051](https://github.com/vector-im/riot-web/pull/9051)
Changes in [1.0.2-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.0.2-rc.2) (2019-03-01)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.2-rc.1...v1.0.2-rc.2)
* Update to react-sdk rc.3
Changes in [1.0.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.2-rc.1) (2019-03-01)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.1...v1.0.2-rc.1)
* Set a require alias for the webapp directory
[\#9014](https://github.com/vector-im/riot-web/pull/9014)
* Update from Weblate.
[\#8973](https://github.com/vector-im/riot-web/pull/8973)
* set chrome path for travis CI explicitly
[\#8987](https://github.com/vector-im/riot-web/pull/8987)
* Updated install spinner
[\#8984](https://github.com/vector-im/riot-web/pull/8984)
* Allow disabling update mechanism
[\#8911](https://github.com/vector-im/riot-web/pull/8911)
* Allow configuration of whether closing window closes or minimizes to tray
[\#8908](https://github.com/vector-im/riot-web/pull/8908)
* Fix language file path for Jenkins
[\#8854](https://github.com/vector-im/riot-web/pull/8854)
* Document and recommend `default_server_name`
[\#8832](https://github.com/vector-im/riot-web/pull/8832)
* Cache busting for icons & language files
[\#8710](https://github.com/vector-im/riot-web/pull/8710)
* Remove redesign issue template
[\#8722](https://github.com/vector-im/riot-web/pull/8722)
* Make scripts/make-icons.sh work on linux
[\#8550](https://github.com/vector-im/riot-web/pull/8550)
Changes in [1.0.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.1) (2019-02-15)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.0...v1.0.1)

120
README.md
View File

@@ -3,6 +3,10 @@ Riot
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix React SDK](https://github.com/matrix-org/matrix-react-sdk).
Riot is officially supported on the web in modern versions of Chrome, Firefox, and Safari. Other browsers may work, however
official support is not provided. For accessing Riot on an Android or iOS device, check out [riot-android](https://github.com/vector-im/riot-android)
and [riot-ios](https://github.com/vector-im/riot-ios) - riot-web does not support mobile devices.
Getting Started
===============
@@ -61,51 +65,44 @@ progress on replacing this with something better.
Building From Source
====================
Riot is a modular webapp built with modern ES6 and requires a npm build system
to build.
Riot is a modular webapp built with modern ES6 and uses a Node.js build system.
Ensure you have the latest LTS version of Node.js installed.
1. Install or update `node.js` so that your `node` is at least v8.12.0 (and `npm`
is at least v5.x).
Using `yarn` instead of `npm` is recommended. Please see the Yarn [install
guide](https://yarnpkg.com/docs/install/) if you do not have it already.
1. Install or update `node.js` so that your `node` is at least v10.x.
1. Install `yarn` if not present 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: `npm install`.
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
```
Note that running `npm install` will undo the symlinks put in place by
`scripts/fetch-develop.deps.sh` so you should run `npm install` first, or
run `npm link matrix-js-sdk` and `npm link matrix-react-sdk` after running
`npm install`.
Whenever you git pull on riot-web you will also probably need to force an update
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
npm install # re-run to pull in any new dependencies
# Depending on your version of npm, npm run build may happen as part of
# the npm install above (https://docs.npmjs.com/misc/scripts#prepublish-and-prepare)
# If in doubt, run it anyway:
npm run build
yarn install # re-run to pull in any new dependencies
cd ../matrix-react-sdk
git pull
npm install
npm run build
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.)
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it (see below for details).
1. `npm run dist` to build a tarball to deploy. Untaring this file will give
1. `yarn dist` to build a tarball to deploy. Untaring this file will give
a version-specific directory containing all the files that need to go on your
web server.
Note that `npm run dist` is not supported on Windows, so Windows users can run `npm run build`,
Note that `yarn dist` is not supported on Windows, so Windows users can run `yarn build`,
which will build all the necessary files into the `webapp` directory. The version of Riot
will not appear in Settings without using the dist script. You can then mount the
`webapp` directory on your webserver to actually serve up the app, which is entirely static content.
@@ -116,17 +113,24 @@ config.json
You can configure the app by copying `config.sample.json` to
`config.json` and customising it:
For a good example, see https://riot.im/develop/config.json
For a good example, see https://riot.im/develop/config.json.
1. `default_hs_url` is the default homeserver url.
1. `default_is_url` is the default identity server url (this is the server used
for verifying third party identifiers like email addresses). If this is blank,
registering with an email address, adding an email address to your account,
or inviting users via email address will not work. Matrix identity servers are
very simple web services which map third party identifiers (currently only email
addresses) to matrix IDs: see http://matrix.org/docs/spec/identity_service/unstable.html
for more details. Currently the only public matrix identity servers are https://matrix.org
and https://vector.im. In future identity servers will be decentralised.
1. `default_server_name` sets the default server name to use for authentication.
This will trigger Riot to ask
`https://<server_name>/.well-known/matrix/client` for the homeserver and
identity server URLs to use. This is the recommended approach for setting a
default server. However, it is also possible to use the following to directly
configure each of the URLs:
* `default_hs_url` sets the default homeserver URL.
* `default_is_url` sets the default identity server URL (this is the server used
for verifying third party identifiers like email addresses). If this is blank,
registering with an email address, adding an email address to your account,
or inviting users via email address will not work. Matrix identity servers are
very simple web services which map third party identifiers (currently only email
addresses) to matrix IDs: see http://matrix.org/docs/spec/identity_service/unstable.html
for more details. Currently the only public matrix identity servers are https://matrix.org
and https://vector.im. In the future, identity servers will be decentralised.
* Riot will report an error if you accidentally configure both `default_server_name` _and_ `default_hs_url` since it's unclear which should take priority.
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.
@@ -181,7 +185,7 @@ appear in some websites like Facebook, and indeed Riot itself. This has to be
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
not possible for this to be an option in config.json. If you'd like to change
it, you can build Riot as above, but run
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" npm run build`.
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build`.
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
each time you download a new version of Riot.
@@ -195,12 +199,11 @@ build it yourself. Requires Electron >=1.6.0
To run as a desktop app:
1. Follow the instructions in 'Building From Source' above, but run
`npm run build` instead of `npm run dist` (since we don't need the tarball).
`yarn build` instead of `yarn dist` (since we don't need the tarball).
2. Install electron and run it:
```bash
npm install electron
npm run electron
yarn electron
```
To build packages, use electron-builder. This is configured to output:
@@ -218,8 +221,8 @@ The only platform that can build packages for all three platforms is macOS:
brew install wine --without-x11
brew install mono
brew install gnu-tar
npm install
npm run build:electron
yarn install
yarn build:electron
```
For other packages, use electron-builder manually. For example, to build a package
@@ -237,10 +240,28 @@ Other options for running as a desktop app:
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
```bash
sudo npm install nativefier -g
yarn global add nativefier
nativefier https://riot.im/app/
```
Desktop app configuration
=========================
To run multiple instances of the desktop app for different accounts, you can launch the executable with the `--profile` argument followed by a unique identifier, e.g `riot-web --profile Work` for it to run a separate profile and not interfere with the default one.
To change the config.json for the desktop app, create a config file which will be used to override values in the config which ships in the package:
+ `%APPDATA%\$NAME\config.json` on Windows
+ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
+ `~Library/Application Support/$NAME/config.json` on macOS
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile $PROFILE` in which case it becomes `Riot-$PROFILE`.
Labs Features
=============
Some features of Riot may be enabled by flags in the `Labs` section of the settings.
Some of these features are described in [labs.md](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md).
Development
===========
@@ -257,7 +278,7 @@ top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
higher and lower level React components useful for building Matrix communication
apps using React.
After creating a new component you must run `npm run reskindex` to regenerate
After creating a new component you must run `yarn reskindex` to regenerate
the `component-index.js` for the app (used in future for skinning).
Please note that Riot is intended to run correctly without access to the public
@@ -279,9 +300,8 @@ First clone and build `matrix-js-sdk`:
git clone https://github.com/matrix-org/matrix-js-sdk.git
pushd matrix-js-sdk
git checkout develop
npm install
npm install source-map-loader # because webpack is made of fail
# see https://github.com/webpack/webpack/issues/1472
yarn link
yarn install
popd
```
@@ -291,7 +311,9 @@ Then similarly with `matrix-react-sdk`:
git clone https://github.com/matrix-org/matrix-react-sdk.git
pushd matrix-react-sdk
git checkout develop
npm link ../matrix-js-sdk
yarn link
yarn link matrix-js-sdk
yarn install
popd
```
@@ -301,10 +323,10 @@ Finally, build and start Riot itself:
git clone https://github.com/vector-im/riot-web.git
cd riot-web
git checkout develop
npm install
npm link ../matrix-js-sdk
npm link ../matrix-react-sdk
npm start
yarn link matrix-js-sdk
yarn link matrix-react-sdk
yarn install
yarn start
```
Wait a few seconds for the initial build to finish; you should see something like:
@@ -331,7 +353,7 @@ When you make changes to `matrix-react-sdk` or `matrix-js-sdk` they should be
automatically picked up by webpack and built.
If you add or remove any components from the Riot skin, you will need to rebuild
the skin's index by running, `npm run reskindex`.
the skin's index by running, `yarn reskindex`.
If any of these steps error with, `file table overflow`, you are probably on a mac
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
@@ -347,12 +369,12 @@ are designed to run in a browser instance under the control of
* Make sure you have Chrome installed (a recent version, like 59)
* Make sure you have `matrix-js-sdk` and `matrix-react-sdk` installed and
built, as above
* `npm run test`
* `yarn test`
The above will run the tests under Chrome in a `headless` mode.
You can also tell karma to run the tests in a loop (every time the source
changes), in an instance of Chrome on your desktop, with `npm run
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.

32
docs/labs.md Normal file
View File

@@ -0,0 +1,32 @@
# riot-web Labs features
Some notes on the features you can enable by going to `Settings->Labs`. Not exhaustive, chat in
[#riot-web:matrix.org] for more information.
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
dropped. Ask in the room if you are unclear about any details here.**
## Render simple counters in room header
Allows rendering of labelled counters above the message list.
Once enabled, send a custom state event to a room to set values:
1. In a room, type `/devtools` to bring up the devtools interface
2. Click "Send Custom Event"
3. Toggle from "Event" to "State Event"
4. Set the event type to: `re.jki.counter` and give it a unique key
5. Specify the content in the following format:
```
{
"link": "",
"severity": "normal",
"title": "my counter",
"value": 0
}
```
That's it. Now should see your new counter under the header.
[#riot-web:matrix.org]: https://matrix.to/#/#riot-web:matrix.org

View File

@@ -4,7 +4,7 @@
- A working [Development Setup](../../#setting-up-a-dev-environment)
- Including up-to-date versions of matrix-react-sdk and matrix-js-sdk
- Node 8 or later
- Latest LTS version of Node.js installed
- Be able to understand English
- Be able to understand the language you want to translate riot-web into
@@ -32,14 +32,14 @@ function getColorName(hex) {
1. Check if the import ``import { _t } from 'matrix-react-sdk/lib/languageHandler';`` is present. If not add it to the other import statements. Also import `_td` if needed.
1. Add ``_t()`` to your string. (Don't forget curly braces when you assign an expression to JSX attributes in the render method). If the string is introduced at a point before the translation system has not yet been initialized, use `_td()` instead, and call `_t()` at the appropriate time.
1. Run `npm run i18n` to update ``src/i18n/strings/en_EN.json``
1. Run `yarn i18n` to update ``src/i18n/strings/en_EN.json``
1. If you added a string with a plural, you can add other English plural variants to ``src/i18n/strings/en_EN.json`` (remeber to edit the one in the same project as the source file containing your new translation).
## Editing existing strings
1. Edit every occurrence of the string inside `_t()` and `_td()` in the JSX files.
1. Run `npm run i18n` to update `src/i18n/strings/en_EN.json`. (Be sure to run this in the same project as the JSX files you just edited.)
1. Run `npm run prunei18n` to remove the old string from `src/i18n/strings/*.json`.
1. Run `yarn i18n` to update `src/i18n/strings/en_EN.json`. (Be sure to run this in the same project as the JSX files you just edited.)
1. Run `yarn prunei18n` to remove the old string from `src/i18n/strings/*.json`.
## Adding variables inside a string.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@@ -2,11 +2,12 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "1.0.1",
"version": "1.0.7",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"dependencies": {
"auto-launch": "^5.0.1",
"electron-store": "^2.0.0",
"electron-window-state": "^4.1.0",
"minimist": "^1.2.0",
"png-to-ico": "^1.0.2"

View File

@@ -9,6 +9,7 @@
"https://scalar-staging.riot.im/scalar/api",
"https://scalar.vector.im/api"
],
"hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"welcomeUserId": "@riot-bot:matrix.org",
"roomDirectory": {

View File

@@ -35,6 +35,7 @@ const updater = require('./updater');
const { migrateFromOldOrigin } = require('./originMigrator');
const windowStateKeeper = require('electron-window-state');
const Store = require('electron-store');
// boolean flag set whilst we are doing one-time origin migration
// We only serve the origin migration script while we're actually
@@ -55,8 +56,19 @@ try {
// Continue with the defaults (ie. an empty config)
}
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'));
vectorConfig = Object.assign(vectorConfig, localConfig);
} catch (e) {
// Could not load local config, this is expected in most cases.
}
const store = new Store({ name: "electron-config" });
let mainWindow = null;
global.appQuitting = false;
global.minimizeToTray = store.get('minimizeToTray', true);
// handle uncaught errors otherwise it displays
@@ -136,6 +148,12 @@ ipcMain.on('ipcCall', async function(ev, payload) {
launcher.disable();
}
break;
case 'getMinimizeToTrayEnabled':
ret = global.minimizeToTray;
break;
case 'setMinimizeToTrayEnabled':
store.set('minimizeToTray', global.minimizeToTray = args[0]);
break;
case 'getAppVersion':
ret = app.getVersion();
break;
@@ -147,6 +165,7 @@ ipcMain.on('ipcCall', async function(ev, payload) {
} else {
mainWindow.focus();
}
break;
case 'origin_migrate':
migratingOrigin = true;
await migrateFromOldOrigin();
@@ -262,10 +281,12 @@ app.on('ready', () => {
path: absTarget,
});
}, (error) => {
if (error) console.error('Failed to register protocol')
if (error) console.error('Failed to register protocol');
});
if (vectorConfig['update_base_url']) {
if (argv['no-update']) {
console.log('Auto update disabled via command line flag "--no-update"');
} else if (vectorConfig['update_base_url']) {
console.log(`Starting auto update with base URL: ${vectorConfig['update_base_url']}`);
updater.start(vectorConfig['update_base_url']);
} else {
@@ -331,7 +352,7 @@ app.on('ready', () => {
mainWindow = global.mainWindow = null;
});
mainWindow.on('close', (e) => {
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
if (global.minimizeToTray && !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)

View File

@@ -57,8 +57,8 @@ const template = [
role: 'help',
submenu: [
{
label: 'riot.im',
click() { shell.openExternal('https://riot.im/'); },
label: 'Riot Help',
click() { shell.openExternal('https://about.riot.im/help'); },
},
],
},

View File

@@ -1,5 +1,7 @@
const {clipboard, nativeImage, Menu, MenuItem, shell} = require('electron');
const {clipboard, nativeImage, Menu, MenuItem, shell, dialog} = require('electron');
const url = require('url');
const fs = require('fs');
const request = require('request');
const MAILTO_PREFIX = "mailto:";
@@ -47,6 +49,7 @@ function onLinkContextMenu(ev, params) {
}));
}
let addSaveAs = false;
if (params.mediaType && params.mediaType === 'image' && !url.startsWith('file://')) {
popupMenu.append(new MenuItem({
label: 'Copy image',
@@ -58,6 +61,10 @@ function onLinkContextMenu(ev, params) {
}
},
}));
// We want the link to be ordered below the copy stuff, but don't want to duplicate
// the `if` statement, so use a flag.
addSaveAs = true;
}
// No point offering to copy a blob: URL either
@@ -79,6 +86,35 @@ function onLinkContextMenu(ev, params) {
}));
}
}
if (addSaveAs) {
popupMenu.append(new MenuItem({
label: 'Save image as...',
click() {
const targetFileName = params.titleText || "image.png";
const filePath = dialog.showSaveDialog({
defaultPath: targetFileName,
});
try {
if (url.startsWith("data:")) {
fs.writeFileSync(filePath, nativeImage.createFromDataURL(url));
} else {
request.get(url).pipe(fs.createWriteStream(filePath));
}
} catch (err) {
console.error(err);
dialog.showMessageBox({
type: "error",
title: "Failed to save image",
message: "The image failed to save",
});
}
},
}));
}
// popup() requires an options object even for no options
popupMenu.popup({});
ev.preventDefault();

837
electron_app/yarn.lock Normal file
View File

@@ -0,0 +1,837 @@
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
# yarn lockfile v1
"@types/node@^9.4.0":
version "9.6.45"
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.45.tgz#a9e5cfd026a3abaaf17e3c0318a470da9f2f178e"
integrity sha512-9scD7xI1kpIoMs3gVFMOWsWDyRIQ1AOZwe56i1CQPE6N/P4POYkn9UtW5F66t8C2AIoPtVfOFycQ2r11t3pcyg==
ajv@^6.5.5:
version "6.10.0"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.0.tgz#90d0d54439da587cd7e843bfb7045f50bd22bdf1"
integrity sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==
dependencies:
fast-deep-equal "^2.0.1"
fast-json-stable-stringify "^2.0.0"
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
applescript@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/applescript/-/applescript-1.0.0.tgz#bb87af568cad034a4e48c4bdaf6067a3a2701317"
integrity sha1-u4evVoytA0pOSMS9r2Bno6JwExc=
asn1@~0.2.3:
version "0.2.4"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
dependencies:
safer-buffer "~2.1.0"
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
auto-launch@^5.0.1:
version "5.0.5"
resolved "https://registry.yarnpkg.com/auto-launch/-/auto-launch-5.0.5.tgz#d14bd002b1ef642f85e991a6195ff5300c8ad3c0"
integrity sha512-ppdF4mihhYzMYLuCcx9H/c5TUOCev8uM7en53zWVQhyYAJrurd2bFZx3qQVeJKF2jrc7rsPRNN5cD+i23l6PdA==
dependencies:
applescript "^1.0.0"
mkdirp "^0.5.1"
path-is-absolute "^1.0.0"
untildify "^3.0.2"
winreg "1.2.4"
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
aws4@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
bcrypt-pbkdf@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
dependencies:
tweetnacl "^0.14.3"
bignumber.js@^2.1.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.4.0.tgz#838a992da9f9d737e0f4b2db0be62bb09dd0c5e8"
integrity sha1-g4qZLan51zfg9LLbC+YrsJ3Qxeg=
bmp-js@0.0.3:
version "0.0.3"
resolved "https://registry.yarnpkg.com/bmp-js/-/bmp-js-0.0.3.tgz#64113e9c7cf1202b376ed607bf30626ebe57b18a"
integrity sha1-ZBE+nHzxICs3btYHvzBibr5XsYo=
buffer-equal@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b"
integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs=
caseless@~0.12.0:
version "0.12.0"
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
combined-stream@^1.0.6, combined-stream@~1.0.6:
version "1.0.7"
resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.7.tgz#2d1d24317afb8abe95d6d2c0b07b57813539d828"
integrity sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==
dependencies:
delayed-stream "~1.0.0"
conf@^2.0.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/conf/-/conf-2.2.0.tgz#ee282efafc1450b61e205372041ad7d866802d9a"
integrity sha512-93Kz74FOMo6aWRVpAZsonOdl2I57jKtHrNmxhumehFQw4X8Sk37SohNY11PG7Q8Okta+UnrVaI006WLeyp8/XA==
dependencies:
dot-prop "^4.1.0"
env-paths "^1.0.0"
make-dir "^1.0.0"
pkg-up "^2.0.0"
write-file-atomic "^2.3.0"
core-util-is@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
dashdash@^1.12.0:
version "1.14.1"
resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
dependencies:
assert-plus "^1.0.0"
deep-equal@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
integrity sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=
define-properties@^1.1.2:
version "1.1.3"
resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
dependencies:
object-keys "^1.0.12"
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
dom-walk@^0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=
dot-prop@^4.1.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
dependencies:
is-obj "^1.0.0"
ecc-jsbn@~0.1.1:
version "0.1.2"
resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
dependencies:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
electron-store@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/electron-store/-/electron-store-2.0.0.tgz#1035cca2a95409d1f54c7466606345852450d64a"
integrity sha512-1WCFYHsYvZBqDsoaS0Relnz0rd81ZkBAI0Fgx7Nq2UWU77rSNs1qxm4S6uH7TCZ0bV3LQpJFk7id/is/ZgoOPA==
dependencies:
conf "^2.0.0"
electron-window-state@^4.1.0:
version "4.1.1"
resolved "https://registry.yarnpkg.com/electron-window-state/-/electron-window-state-4.1.1.tgz#6b34fdc31b38514dfec8b7c8f7b5d4addb67632d"
integrity sha1-azT9wxs4UU3+yLfI97XUrdtnYy0=
dependencies:
deep-equal "^1.0.1"
jsonfile "^2.2.3"
mkdirp "^0.5.1"
env-paths@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-1.0.0.tgz#4168133b42bb05c38a35b1ae4397c8298ab369e0"
integrity sha1-QWgTO0K7BcOKNbGuQ5fIKYqzaeA=
es-abstract@^1.5.0:
version "1.13.0"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.13.0.tgz#ac86145fdd5099d8dd49558ccba2eaf9b88e24e9"
integrity sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==
dependencies:
es-to-primitive "^1.2.0"
function-bind "^1.1.1"
has "^1.0.3"
is-callable "^1.1.4"
is-regex "^1.0.4"
object-keys "^1.0.12"
es-to-primitive@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
dependencies:
is-callable "^1.1.4"
is-date-object "^1.0.1"
is-symbol "^1.0.2"
es6-promise@^3.0.2:
version "3.3.1"
resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613"
integrity sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=
exif-parser@^0.1.9:
version "0.1.12"
resolved "https://registry.yarnpkg.com/exif-parser/-/exif-parser-0.1.12.tgz#58a9d2d72c02c1f6f02a0ef4a9166272b7760922"
integrity sha1-WKnS1ywCwfbwKg70qRZicrd2CSI=
extend@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
extsprintf@^1.2.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
fast-deep-equal@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
fast-json-stable-stringify@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
file-type@^3.1.0:
version "3.9.0"
resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9"
integrity sha1-JXoHg4TR24CHvESdEH1SpSZyuek=
find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
dependencies:
locate-path "^2.0.0"
for-each@^0.3.3:
version "0.3.3"
resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
dependencies:
is-callable "^1.1.3"
forever-agent@~0.6.1:
version "0.6.1"
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
form-data@~2.3.2:
version "2.3.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.6"
mime-types "^2.1.12"
function-bind@^1.0.2, function-bind@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
getpass@^0.1.1:
version "0.1.7"
resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
dependencies:
assert-plus "^1.0.0"
global@~4.3.0:
version "4.3.2"
resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f"
integrity sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=
dependencies:
min-document "^2.19.0"
process "~0.5.1"
graceful-fs@^4.1.11, graceful-fs@^4.1.6:
version "4.1.15"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
integrity sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==
har-schema@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
har-validator@~5.1.0:
version "5.1.3"
resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
dependencies:
ajv "^6.5.5"
har-schema "^2.0.0"
has-symbols@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
has@^1.0.1, has@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
dependencies:
function-bind "^1.1.1"
http-signature@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
dependencies:
assert-plus "^1.0.0"
jsprim "^1.2.2"
sshpk "^1.7.0"
imurmurhash@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
ip-regex@^1.0.1:
version "1.0.3"
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-1.0.3.tgz#dc589076f659f419c222039a33316f1c7387effd"
integrity sha1-3FiQdvZZ9BnCIgOaMzFvHHOH7/0=
is-callable@^1.1.3, is-callable@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
is-date-object@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
is-function@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5"
integrity sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=
is-obj@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
is-regex@^1.0.4:
version "1.0.4"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
dependencies:
has "^1.0.1"
is-symbol@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
dependencies:
has-symbols "^1.0.0"
is-typedarray@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
isstream@~0.1.2:
version "0.1.2"
resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
jimp@^0.2.28:
version "0.2.28"
resolved "https://registry.yarnpkg.com/jimp/-/jimp-0.2.28.tgz#dd529a937190f42957a7937d1acc3a7762996ea2"
integrity sha1-3VKak3GQ9ClXp5N9Gsw6d2KZbqI=
dependencies:
bignumber.js "^2.1.0"
bmp-js "0.0.3"
es6-promise "^3.0.2"
exif-parser "^0.1.9"
file-type "^3.1.0"
jpeg-js "^0.2.0"
load-bmfont "^1.2.3"
mime "^1.3.4"
mkdirp "0.5.1"
pixelmatch "^4.0.0"
pngjs "^3.0.0"
read-chunk "^1.0.1"
request "^2.65.0"
stream-to-buffer "^0.1.0"
tinycolor2 "^1.1.2"
url-regex "^3.0.0"
jpeg-js@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.2.0.tgz#53e448ec9d263e683266467e9442d2c5a2ef5482"
integrity sha1-U+RI7J0mPmgyZkZ+lELSxaLvVII=
jsbn@~0.1.0:
version "0.1.1"
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
json-schema@0.2.3:
version "0.2.3"
resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
json-stringify-safe@~5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
jsonfile@^2.2.3:
version "2.4.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8"
integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug=
optionalDependencies:
graceful-fs "^4.1.6"
jsprim@^1.2.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
dependencies:
assert-plus "1.0.0"
extsprintf "1.3.0"
json-schema "0.2.3"
verror "1.10.0"
load-bmfont@^1.2.3:
version "1.4.0"
resolved "https://registry.yarnpkg.com/load-bmfont/-/load-bmfont-1.4.0.tgz#75f17070b14a8c785fe7f5bee2e6fd4f98093b6b"
integrity sha512-kT63aTAlNhZARowaNYcY29Fn/QYkc52M3l6V1ifRcPewg2lvUZDAj7R6dXjOL9D0sict76op3T5+odumDSF81g==
dependencies:
buffer-equal "0.0.1"
mime "^1.3.4"
parse-bmfont-ascii "^1.0.3"
parse-bmfont-binary "^1.0.5"
parse-bmfont-xml "^1.1.4"
phin "^2.9.1"
xhr "^2.0.1"
xtend "^4.0.0"
locate-path@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
dependencies:
p-locate "^2.0.0"
path-exists "^3.0.0"
make-dir@^1.0.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c"
integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==
dependencies:
pify "^3.0.0"
mime-db@~1.38.0:
version "1.38.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.38.0.tgz#1a2aab16da9eb167b49c6e4df2d9c68d63d8e2ad"
integrity sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==
mime-types@^2.1.12, mime-types@~2.1.19:
version "2.1.22"
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.22.tgz#fe6b355a190926ab7698c9a0556a11199b2199bd"
integrity sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==
dependencies:
mime-db "~1.38.0"
mime@^1.3.4:
version "1.6.0"
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
min-document@^2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
dependencies:
dom-walk "^0.1.0"
minimist@0.0.8:
version "0.0.8"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
minimist@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
mkdirp@0.5.1, mkdirp@^0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
dependencies:
minimist "0.0.8"
oauth-sign@~0.9.0:
version "0.9.0"
resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
object-keys@^1.0.12:
version "1.1.0"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.0.tgz#11bd22348dd2e096a045ab06f6c85bcc340fa032"
integrity sha512-6OO5X1+2tYkNyNEx6TsCxEqFfRWaqx6EtMiSbGrw8Ob8v9Ne+Hl8rBAgLBZn5wjEz3s/s6U1WXFUFOcxxAwUpg==
p-limit@^1.1.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
dependencies:
p-try "^1.0.0"
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
dependencies:
p-limit "^1.1.0"
p-try@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
parse-bmfont-ascii@^1.0.3:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-ascii/-/parse-bmfont-ascii-1.0.6.tgz#11ac3c3ff58f7c2020ab22769079108d4dfa0285"
integrity sha1-Eaw8P/WPfCAgqyJ2kHkQjU36AoU=
parse-bmfont-binary@^1.0.5:
version "1.0.6"
resolved "https://registry.yarnpkg.com/parse-bmfont-binary/-/parse-bmfont-binary-1.0.6.tgz#d038b476d3e9dd9db1e11a0b0e53a22792b69006"
integrity sha1-0Di0dtPp3Z2x4RoLDlOiJ5K2kAY=
parse-bmfont-xml@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/parse-bmfont-xml/-/parse-bmfont-xml-1.1.4.tgz#015319797e3e12f9e739c4d513872cd2fa35f389"
integrity sha512-bjnliEOmGv3y1aMEfREMBJ9tfL3WR0i0CKPj61DnSLaoxWR3nLrsQrEbCId/8rF4NyRF0cCqisSVXyQYWM+mCQ==
dependencies:
xml-parse-from-string "^1.0.0"
xml2js "^0.4.5"
parse-headers@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.2.tgz#9545e8a4c1ae5eaea7d24992bca890281ed26e34"
integrity sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==
dependencies:
for-each "^0.3.3"
string.prototype.trim "^1.1.2"
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
performance-now@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
phin@^2.9.1:
version "2.9.3"
resolved "https://registry.yarnpkg.com/phin/-/phin-2.9.3.tgz#f9b6ac10a035636fb65dfc576aaaa17b8743125c"
integrity sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==
pify@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
pixelmatch@^4.0.0:
version "4.0.2"
resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-4.0.2.tgz#8f47dcec5011b477b67db03c243bc1f3085e8854"
integrity sha1-j0fc7FARtHe2fbA8JDvB8wheiFQ=
dependencies:
pngjs "^3.0.0"
pkg-up@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
dependencies:
find-up "^2.1.0"
png-to-ico@^1.0.2:
version "1.0.7"
resolved "https://registry.yarnpkg.com/png-to-ico/-/png-to-ico-1.0.7.tgz#9346b5f4d6fd7e94cb08fd49eeb585f501c3e5f2"
integrity sha512-heHiZjPFhVgLiuSG4C4wwKN9YPGLpPJvOfXRyI+cEJf0vPutjJ4XDaeI2f/hzTFs+2juihDw3pP8R5JtTuQTGg==
dependencies:
"@types/node" "^9.4.0"
jimp "^0.2.28"
minimist "^1.2.0"
pngjs@^3.0.0:
version "3.4.0"
resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f"
integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==
process@~0.5.1:
version "0.5.2"
resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf"
integrity sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=
psl@^1.1.24:
version "1.1.31"
resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.31.tgz#e9aa86d0101b5b105cbe93ac6b784cd547276184"
integrity sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==
punycode@^1.4.1:
version "1.4.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
qs@~6.5.2:
version "6.5.2"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
read-chunk@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/read-chunk/-/read-chunk-1.0.1.tgz#5f68cab307e663f19993527d9b589cace4661194"
integrity sha1-X2jKswfmY/GZk1J9m1icrORmEZQ=
request@^2.65.0:
version "2.88.0"
resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
dependencies:
aws-sign2 "~0.7.0"
aws4 "^1.8.0"
caseless "~0.12.0"
combined-stream "~1.0.6"
extend "~3.0.2"
forever-agent "~0.6.1"
form-data "~2.3.2"
har-validator "~5.1.0"
http-signature "~1.2.0"
is-typedarray "~1.0.0"
isstream "~0.1.2"
json-stringify-safe "~5.0.1"
mime-types "~2.1.19"
oauth-sign "~0.9.0"
performance-now "^2.1.0"
qs "~6.5.2"
safe-buffer "^5.1.2"
tough-cookie "~2.4.3"
tunnel-agent "^0.6.0"
uuid "^3.3.2"
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
version "5.1.2"
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0:
version "2.1.2"
resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
sax@>=0.6.0:
version "1.2.4"
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
signal-exit@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
sshpk@^1.7.0:
version "1.16.1"
resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
dependencies:
asn1 "~0.2.3"
assert-plus "^1.0.0"
bcrypt-pbkdf "^1.0.0"
dashdash "^1.12.0"
ecc-jsbn "~0.1.1"
getpass "^0.1.1"
jsbn "~0.1.0"
safer-buffer "^2.0.2"
tweetnacl "~0.14.0"
stream-to-buffer@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/stream-to-buffer/-/stream-to-buffer-0.1.0.tgz#26799d903ab2025c9bd550ac47171b00f8dd80a9"
integrity sha1-JnmdkDqyAlyb1VCsRxcbAPjdgKk=
dependencies:
stream-to "~0.2.0"
stream-to@~0.2.0:
version "0.2.2"
resolved "https://registry.yarnpkg.com/stream-to/-/stream-to-0.2.2.tgz#84306098d85fdb990b9fa300b1b3ccf55e8ef01d"
integrity sha1-hDBgmNhf25kLn6MAsbPM9V6O8B0=
string.prototype.trim@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea"
integrity sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=
dependencies:
define-properties "^1.1.2"
es-abstract "^1.5.0"
function-bind "^1.0.2"
tinycolor2@^1.1.2:
version "1.4.1"
resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.4.1.tgz#f4fad333447bc0b07d4dc8e9209d8f39a8ac77e8"
integrity sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=
tough-cookie@~2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
dependencies:
psl "^1.1.24"
punycode "^1.4.1"
tunnel-agent@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
dependencies:
safe-buffer "^5.0.1"
tweetnacl@^0.14.3, tweetnacl@~0.14.0:
version "0.14.5"
resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
untildify@^3.0.2:
version "3.0.3"
resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"
integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==
uri-js@^4.2.2:
version "4.2.2"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
dependencies:
punycode "^2.1.0"
url-regex@^3.0.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/url-regex/-/url-regex-3.2.0.tgz#dbad1e0c9e29e105dd0b1f09f6862f7fdb482724"
integrity sha1-260eDJ4p4QXdCx8J9oYvf9tIJyQ=
dependencies:
ip-regex "^1.0.1"
uuid@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
integrity sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==
verror@1.10.0:
version "1.10.0"
resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
dependencies:
assert-plus "^1.0.0"
core-util-is "1.0.2"
extsprintf "^1.2.0"
winreg@1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.4.tgz#ba065629b7a925130e15779108cf540990e98d1b"
integrity sha1-ugZWKbepJRMOFXeRCM9UCZDpjRs=
write-file-atomic@^2.3.0:
version "2.4.2"
resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.2.tgz#a7181706dfba17855d221140a9c06e15fcdd87b9"
integrity sha512-s0b6vB3xIVRLWywa6X9TOMA7k9zio0TMOsl9ZnDkliA/cfJlpHXAscj0gbHVJiTdIuAYpIyqS5GW91fqm6gG5g==
dependencies:
graceful-fs "^4.1.11"
imurmurhash "^0.1.4"
signal-exit "^3.0.2"
xhr@^2.0.1:
version "2.5.0"
resolved "https://registry.yarnpkg.com/xhr/-/xhr-2.5.0.tgz#bed8d1676d5ca36108667692b74b316c496e49dd"
integrity sha512-4nlO/14t3BNUZRXIXfXe+3N6w3s1KoxcJUUURctd64BLRe67E4gRwp4PjywtDY72fXpZ1y6Ch0VZQRY/gMPzzQ==
dependencies:
global "~4.3.0"
is-function "^1.0.1"
parse-headers "^2.0.0"
xtend "^4.0.0"
xml-parse-from-string@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28"
integrity sha1-qQKekp09vN7RafPG4oI42VpdWig=
xml2js@^0.4.5:
version "0.4.19"
resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7"
integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==
dependencies:
sax ">=0.6.0"
xmlbuilder "~9.0.1"
xmlbuilder@~9.0.1:
version "9.0.7"
resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d"
integrity sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=
xtend@^4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=

View File

@@ -9,7 +9,7 @@ var webpack_config = require('./webpack.config');
* to build everything; however it's the easiest way to load our dependencies
* from node_modules.
*
* If you run karma in multi-run mode (with `npm run test-multi`), it will watch
* If you run karma in multi-run mode (with `yarn test-multi`), it will watch
* the tests for changes, and webpack will rebuild using a cache. This is much quicker
* than a clean rebuild.
*/
@@ -138,10 +138,10 @@ module.exports = function (config) {
],
customLaunchers: {
'ChromeHeadless': {
'VectorChromeHeadless': {
base: 'Chrome',
flags: [
// '--no-sandbox',
'--no-sandbox',
// See https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
'--headless',
'--disable-gpu',

15336
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "1.0.1",
"version": "1.0.7",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -32,31 +32,31 @@
"prunei18n": "matrix-prune-i18n",
"build:res": "node scripts/copy-res.js",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:compile": "npm run reskindex && babel --source-maps -d lib src",
"build:compile": "yarn reskindex && babel --source-maps -d lib src",
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production",
"build:bundle:dev": "webpack --progress --bail --mode development",
"build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64",
"build:react-sdk": "node scripts/npm-sub.js matrix-react-sdk run build",
"build:js-sdk": "node scripts/npm-sub.js matrix-js-sdk run start:init",
"build": "npm run build:js-sdk && npm run build:react-sdk && npm run reskindex && npm run build:res && npm run build:bundle",
"build:dev": "npm run build:js-sdk && npm run build:react-sdk && npm run reskindex && npm run build:res && npm run build:bundle:dev",
"build:electron": "yarn clean && yarn build && yarn install:electron && build -wml --ia32 --x64",
"build:react-sdk": "node scripts/yarn-sub.js matrix-react-sdk build",
"build:js-sdk": "node scripts/yarn-sub.js matrix-js-sdk start:init",
"build": "yarn build:js-sdk && yarn build:react-sdk && yarn reskindex && yarn build:res && yarn build:bundle",
"build:dev": "yarn build:js-sdk && yarn build:react-sdk && yarn reskindex && yarn build:res && yarn build:bundle:dev",
"dist": "scripts/package.sh",
"install:electron": "install-app-deps",
"electron": "npm run install:electron && electron .",
"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-sdk": "node scripts/npm-sub.js matrix-js-sdk run start:watch",
"start:js-sdk:prod": "cross-env NODE_ENV=production node scripts/npm-sub.js matrix-js-sdk run start:watch",
"start:react-sdk": "node scripts/npm-sub.js matrix-react-sdk run start:all",
"start:react-sdk:prod": "cross-env NODE_ENV=production node scripts/npm-sub.js matrix-react-sdk run start:all",
"start": "npm run build:js-sdk && npm run build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"npm run start:js-sdk\" \"npm run start:react-sdk\" \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"",
"start:prod": "npm run build:js-sdk && npm run build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"npm run start:js-sdk:prod\" \"npm run start:react-sdk:prod\" \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
"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",
"start:react-sdk:prod": "cross-env NODE_ENV=production node scripts/yarn-sub.js matrix-react-sdk start:all",
"start": "yarn build:js-sdk && yarn build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"yarn start:js-sdk\" \"yarn start:react-sdk\" \"yarn reskindex:watch\" \"yarn start:res\" \"yarn start:js\"",
"start:prod": "yarn build:js-sdk && yarn build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"yarn start:js-sdk:prod\" \"yarn start:react-sdk:prod\" \"yarn reskindex:watch\" \"yarn start:res\" \"yarn start:js:prod\"",
"lint": "eslint src/",
"lintall": "eslint src/ test/",
"clean": "rimraf lib webapp electron_app/dist",
"prepublish": "npm run clean && npm run build:compile",
"test": "karma start --single-run=true --autoWatch=false --browsers ChromeHeadless",
"prepare": "yarn clean && yarn build:compile",
"test": "karma start --single-run=true --autoWatch=false --browsers VectorChromeHeadless",
"test-multi": "karma start"
},
"dependencies": {
@@ -70,9 +70,10 @@
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
"matrix-js-sdk": "1.0.0",
"matrix-react-sdk": "1.0.1",
"matrix-js-sdk": "1.0.4",
"matrix-react-sdk": "1.0.7",
"modernizr": "^3.6.0",
"olm": "https://matrix.org/packages/npm/olm/olm-3.1.0-pre1.tgz",
"prop-types": "^15.6.2",
"react": "^15.6.0",
"react-dom": "^15.6.0",
@@ -115,8 +116,8 @@
"fs-extra": "^0.30.0",
"html-webpack-plugin": "^3.2.0",
"json-loader": "^0.5.3",
"karma": "^3.1.1",
"karma-chrome-launcher": "^0.2.3",
"karma": "^3.1.2",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-junit-reporter": "^2.0.0",
"karma-logcapture-reporter": "0.0.1",
@@ -125,7 +126,8 @@
"karma-spec-reporter": "0.0.31",
"karma-summary-reporter": "^1.5.1",
"karma-webpack": "4.0.0-beta.0",
"matrix-mock-request": "^1.2.2",
"loader-utils": "^1.2.3",
"matrix-mock-request": "^1.2.3",
"matrix-react-test-utils": "^0.2.0",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
@@ -144,14 +146,11 @@
"source-map-loader": "^0.2.4",
"webpack": "^4.23.1",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.10"
},
"optionalDependencies": {
"olm": "https://matrix.org/packages/npm/olm/olm-3.1.0-pre1.tgz"
"webpack-dev-server": "^3.1.11"
},
"build": {
"appId": "im.riot.app",
"electronVersion": "4.0.4",
"electronVersion": "4.1.3",
"files": [
"node_modules/**",
"src/**",

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Script to perform a release of vector-web.
# Script to perform a release of riot-web.
#
# Requires github-changelog-generator; to install, do
# pip install git+https://github.com/matrix-org/github-changelog-generator.git
@@ -21,7 +21,7 @@ cd `dirname $0`
for i in matrix-js-sdk matrix-react-sdk
do
depver=`cat package.json | jq -r .dependencies[\"$i\"]`
latestver=`npm show $i version`
latestver=`yarn info -s $i version`
if [ "$depver" != "$latestver" ]
then
echo "The latest version of $i is $latestver but package.json depends on $depver"
@@ -38,13 +38,12 @@ done
# bump Electron's package.json first
release="${1#v}"
tag="v${release}"
echo "electron npm version"
echo "electron yarn version"
cd electron_app
npm version --no-git-tag-version "$release"
yarn version --no-git-tag-version --new-version "$release"
git commit package.json -m "$tag"
cd ..
exec ./node_modules/matrix-js-sdk/release.sh -u vector-im -z "$orig_args"

19
scripts/cleanup.sh Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/sh
#
# script to clean up the deployments made by redeploy.py for vectorwebdev and vectorwebexp
set -e
# currently live deployment (full path)
live=`dirname $(readlink -f "$HOME/live")`
# currently live bundle (just the name of the bundle)
live_bundle=`grep 'script src="bundles' live/index.html | sed -e 's#.*bundles/##' -e 's#/.*##'`
# clean up 'extracted': find things which are older than 7 days, exclude the
# current live one, and remove
find $HOME/extracted -mindepth 1 -maxdepth 1 -type d -ctime +7 \
\! -path "$live" -exec rm -r {} \;
# clean up 'bundles': ditto
find $HOME/bundles -mindepth 1 -maxdepth 1 -type d -ctime +7 \
\! -name "$live_bundle" -exec rm -r {} \;

View File

@@ -1,5 +1,7 @@
#!/usr/bin/env node
const loaderUtils = require("loader-utils");
// copies the resources into the webapp directory.
//
@@ -61,12 +63,6 @@ const COPY_LIST = [
["./config.json", "webapp", { directwatch: 1 }],
];
INCLUDE_LANGS.forEach(function(l) {
COPY_LIST.push([
l.value, "webapp/i18n/", { lang: 1 },
]);
});
const parseArgs = require('minimist');
const Cpx = require('cpx');
const chokidar = require('chokidar');
@@ -77,8 +73,8 @@ const argv = parseArgs(
process.argv.slice(2), {}
);
var watch = argv.w;
var verbose = argv.v;
const watch = argv.w;
const verbose = argv.v;
function errCheck(err) {
if (err) {
@@ -136,39 +132,11 @@ function next(i, err) {
.on('change', copy)
.on('ready', cb)
.on('error', errCheck);
} else if (opts.lang) {
const reactSdkFile = 'node_modules/matrix-react-sdk/src/i18n/strings/' + source + '.json';
const riotWebFile = 'src/i18n/strings/' + source + '.json';
// XXX: Use a debounce because for some reason if we read the language
// file immediately after the FS event is received, the file contents
// appears empty. Possibly https://github.com/nodejs/node/issues/6112
let makeLangDebouncer;
const makeLang = () => {
if (makeLangDebouncer) {
clearTimeout(makeLangDebouncer);
}
makeLangDebouncer = setTimeout(() => {
genLangFile(source, dest);
}, 500);
};
[reactSdkFile, riotWebFile].forEach(function(f) {
chokidar.watch(f)
.on('add', makeLang)
.on('change', makeLang)
//.on('ready', cb) We'd have to do this when both files are ready
.on('error', errCheck);
});
next(i + 1, err);
} else {
cpx.on('watch-ready', cb);
cpx.on("watch-error", cb);
cpx.watch();
}
} else if (opts.lang) {
genLangFile(source, dest);
next(i + 1, err);
} else {
cpx.copy(cb);
}
@@ -195,21 +163,28 @@ function genLangFile(lang, dest) {
translations = weblateToCounterpart(translations);
fs.writeFileSync(dest + lang + '.json', JSON.stringify(translations, null, 4));
const json = JSON.stringify(translations, null, 4);
const jsonBuffer = Buffer.from(json);
const digest = loaderUtils.getHashDigest(jsonBuffer, null, null, 7);
const filename = `${lang}.${digest}.json`;
fs.writeFileSync(dest + filename, json);
if (verbose) {
console.log("Generated language file: " + lang);
console.log("Generated language file: " + filename);
}
return filename;
}
function genLangList() {
function genLangList(langFileMap) {
const languages = {};
INCLUDE_LANGS.forEach(function(lang) {
const normalizedLanguage = lang.value.toLowerCase().replace("_", "-");
const languageParts = normalizedLanguage.split('-');
if (languageParts.length == 2 && languageParts[0] == languageParts[1]) {
languages[languageParts[0]] = {'fileName': lang.value + '.json', 'label': lang.label};
languages[languageParts[0]] = {'fileName': langFileMap[lang.value], 'label': lang.label};
} else {
languages[normalizedLanguage] = {'fileName': lang.value + '.json', 'label': lang.label};
languages[normalizedLanguage] = {'fileName': langFileMap[lang.value], 'label': lang.label};
}
});
fs.writeFile('webapp/i18n/languages.json', JSON.stringify(languages, null, 4), function(err) {
@@ -257,5 +232,50 @@ function weblateToCounterpart(inTrs) {
return outTrs;
}
genLangList();
/**
watch the input files for a given language,
regenerate the file, adding its content-hashed filename to langFileMap
and regenerating languages.json with the new filename
*/
function watchLanguage(lang, dest, langFileMap) {
const reactSdkFile = 'node_modules/matrix-react-sdk/src/i18n/strings/' + lang + '.json';
const riotWebFile = 'src/i18n/strings/' + lang + '.json';
// XXX: Use a debounce because for some reason if we read the language
// file immediately after the FS event is received, the file contents
// appears empty. Possibly https://github.com/nodejs/node/issues/6112
let makeLangDebouncer;
const makeLang = () => {
if (makeLangDebouncer) {
clearTimeout(makeLangDebouncer);
}
makeLangDebouncer = setTimeout(() => {
const filename = genLangFile(lang, dest);
langFileMap[lang]=filename;
genLangList(langFileMap);
}, 500);
};
[reactSdkFile, riotWebFile].forEach(function(f) {
chokidar.watch(f)
.on('add', makeLang)
.on('change', makeLang)
.on('error', errCheck);
});
}
// language resources
const I18N_DEST = "webapp/i18n/";
const I18N_FILENAME_MAP = INCLUDE_LANGS.reduce((m, l) => {
const filename = genLangFile(l.value, I18N_DEST);
m[l.value] = filename;
return m;
}, {});
genLangList(I18N_FILENAME_MAP);
if (watch) {
INCLUDE_LANGS.forEach(l => watchLanguage(l.value, I18N_DEST, I18N_FILENAME_MAP));
}
// non-language resources
next(0);

View File

@@ -85,8 +85,8 @@ if [ -n "$conffile" ]; then
pushd "$builddir"
fi
npm install
npm run build:electron
yarn install
yarn build:electron
popd
@@ -124,8 +124,12 @@ mkdir -p "$pubdir/update/win32/x64/"
cp $distdir/squirrel-windows/*.nupkg "$pubdir/update/win32/x64/"
cp $distdir/squirrel-windows/RELEASES "$pubdir/update/win32/x64/"
# Move the debs to the main project dir's dist folder
cp $distdir/*.deb "$projdir/electron_app/dist/"
# Move the deb to the main project dir's dist folder
# (just the 64 bit one - the 32 bit one still gets built because
# it's one arch argument for all platforms and we still want 32 bit
# windows, but 32 bit linux is unsupported as of electron 4 and no
# longer appears to work).
cp $distdir/*_amd64.deb "$projdir/electron_app/dist/"
rm -rf "$builddir"

View File

@@ -6,7 +6,7 @@
# the branch the current checkout is on, use that branch. Otherwise,
# use develop.
set -e
set -ex
GIT_CLONE_ARGS=("$@")
[ -z "$defbranch" ] && defbranch="develop"
@@ -25,7 +25,7 @@ function clone() {
if [ -n "$branch" ]
then
echo "Trying to use $org/$repo#$branch"
git clone https://github.com/$org/$repo.git $repo --branch $branch \
git clone git://github.com/$org/$repo.git $repo --branch $branch \
"${GIT_CLONE_ARGS[@]}"
return $?
fi
@@ -33,30 +33,39 @@ function clone() {
}
function dodep() {
org=$1
repo=$2
rm -rf $repo
deforg=$1
defrepo=$2
rm -rf $defrepo
# Try the PR author's branch in case it exists on the deps as well.
# Try the target branch of the push or PR.
# Use the default branch as the last resort.
if [[ "$TRAVIS" == true ]]; then
clone $org $repo $TRAVIS_PULL_REQUEST_BRANCH ||
clone $org $repo $TRAVIS_BRANCH ||
clone $org $repo $defbranch ||
if [[ "$BUILDKITE" == true ]]; then
# If BUILDKITE_BRANCH is set, it will contain either:
# * "branch" when the author's branch and target branch are in the same repo
# * "author:branch" when the author's branch is in their fork
# We can split on `:` into an array to check.
BUILDKITE_BRANCH_ARRAY=(${BUILDKITE_BRANCH//:/ })
if [[ "${#BUILDKITE_BRANCH_ARRAY[@]}" == "2" ]]; then
prAuthor=${BUILDKITE_BRANCH_ARRAY[0]}
prBranch=${BUILDKITE_BRANCH_ARRAY[1]}
else
prAuthor=$deforg
prBranch=$BUILDKITE_BRANCH
fi
clone $prAuthor $defrepo $prBranch ||
clone $deforg $defrepo $BUILDKITE_PULL_REQUEST_BASE_BRANCH ||
clone $deforg $defrepo $defbranch ||
return $?
else
clone $org $repo $ghprbSourceBranch ||
clone $org $repo $GIT_BRANCH ||
clone $org $repo `git rev-parse --abbrev-ref HEAD` ||
clone $org $repo $defbranch ||
clone $deforg $defrepo $ghprbSourceBranch ||
clone $deforg $defrepo $GIT_BRANCH ||
clone $deforg $defrepo `git rev-parse --abbrev-ref HEAD` ||
clone $deforg $defrepo $defbranch ||
return $?
fi
echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
mkdir -p node_modules
npm link "./$repo" # This does an npm install for us
echo "$defrepo set to branch "`git -C "$defrepo" rev-parse --abbrev-ref HEAD`
}
##############################
@@ -66,6 +75,13 @@ echo 'Setting up matrix-js-sdk'
dodep matrix-org matrix-js-sdk
pushd matrix-js-sdk
yarn link
yarn install
popd
yarn link matrix-js-sdk
echo -en 'travis_fold:end:matrix-js-sdk\r'
##############################
@@ -75,23 +91,21 @@ echo 'Setting up matrix-react-sdk'
dodep matrix-org matrix-react-sdk
# replace the version of js-sdk that got pulled into react-sdk with a link
# to our version. Make sure to do this *after* doing 'npm i' in react-sdk,
# otherwise npm helpfully moves another-json from matrix-js-sdk/node_modules
# into matrix-react-sdk/node_modules.
#
# (note this matches the instructions in the README.)
cd matrix-react-sdk
npm link ../matrix-js-sdk
cd ../
pushd matrix-react-sdk
yarn link
yarn link matrix-js-sdk
yarn install
popd
yarn link matrix-react-sdk
echo -en 'travis_fold:end:matrix-react-sdk\r'
##############################
# Link the reskindex binary in place: if we used npm link,
# npm would do this for us, but we don't because we'd have
# to define the npm prefix somewhere so it could put the
# Link the reskindex binary in place: if we used `yarn link`,
# Yarn would do this for us, but we don't because we'd have
# to define the Yarn binary prefix somewhere so it could put the
# intermediate symlinks there. Instead, we do it ourselves.
mkdir -p node_modules/.bin
ln -sfv ../matrix-react-sdk/scripts/reskindex.js node_modules/.bin/reskindex

View File

@@ -8,34 +8,17 @@ nvm use 10
set -x
npm install
# apparently npm 3.10.3 on node 6.4.0 doesn't upgrade #develop target with npm install unless explicitly asked.
npm install olm
# check out corresponding branches of dependencies.
#
# clone the deps with depth 1: we know we will only ever need that one
# commit.
# We need to do this after npm install otherwise modern node versions
# just reset it back.
# clone the deps with depth 1: we know we will only ever need that one commit.
`dirname $0`/fetch-develop.deps.sh --depth 1
# install olm. A naive 'npm i ./olm/olm-*.tgz' fails because it uses the url
# from our package.json (or even matrix-js-sdk's) in preference.
#
# disabled for now, to avoid the annoying scenario of a release doing something
# different to /develop. Instead, add it to the 'npm install' list above.
# -- rav 2016/02/03
#tar -C olm -xz < olm/olm-*.tgz
#rm -r node_modules/olm
#cp -r olm/package node_modules/olm
yarn install
# run the mocha tests
npm run test
yarn test
# run eslint
npm run lintall -- -f checkstyle -o eslint.xml || true
yarn lintall -- -f checkstyle -o eslint.xml || true
rm dist/riot-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist

View File

@@ -1,4 +1,10 @@
#!/bin/bash
#
# Converts an svg logo into the various image resources required by
# the various platforms deployments.
#
# On debian-based systems you need these deps:
# apt-get install xmlstarlet python3-cairosvg icnsutils
if [ $# != 1 ]
then
@@ -52,7 +58,23 @@ cp "$tmpdir/256.png" "$tmpdir/Riot.iconset/icon_256x256.png"
cp "$tmpdir/512.png" "$tmpdir/Riot.iconset/icon_256x256@2x.png"
cp "$tmpdir/512.png" "$tmpdir/Riot.iconset/icon_512x512.png"
cp "$tmpdir/1024.png" "$tmpdir/Riot.iconset/icon_512x512@2x.png"
iconutil -c icns -o electron_app/build/icon.icns "$tmpdir/Riot.iconset"
if [ -x "$(command -v iconutil)" ]; then
# available on macos
iconutil -c icns -o electron_app/build/icon.icns "$tmpdir/Riot.iconset"
elif [ -x "$(command -v png2icns)" ]; then
# available on linux
# png2icns is more finicky about its input than iconutil
# 1. it doesn't support a 64x64 (aka 32x32@2x)
# 2. it doesn't like duplicates (128x128@2x == 256x256)
rm "$tmpdir/Riot.iconset/icon_128x128@2x.png"
rm "$tmpdir/Riot.iconset/icon_256x256@2x.png"
rm "$tmpdir/Riot.iconset/icon_16x16@2x.png"
rm "$tmpdir/Riot.iconset/icon_32x32@2x.png"
png2icns electron_app/build/icon.icns "$tmpdir"/Riot.iconset/*png
else
echo "WARNING: Unsupported platform. Skipping icns build"
fi
cp "$tmpdir/36.png" "res/vector-icons/android-chrome-36x36.png"
cp "$tmpdir/48.png" "res/vector-icons/android-chrome-48x48.png"

View File

@@ -13,11 +13,11 @@ else
version=`git describe --dirty --tags || echo unknown`
fi
npm run clean
npm run build$dev
yarn clean
yarn build$dev
# include the sample config in the tarball. Arguably this should be done by
# `npm run build`, but it's just too painful.
# `yarn build`, but it's just too painful.
cp config.sample.json webapp/
mkdir -p dist

View File

@@ -9,13 +9,13 @@ if (!moduleName) {
const argString = process.argv.length > 3 ? process.argv.slice(3).join(" ") : "";
if (!argString) {
console.error("Expected an npm argument string to use");
console.error("Expected an yarn argument string to use");
process.exit(1);
}
const modulePath = path.dirname(require.resolve(`${moduleName}/package.json`));
child_process.execSync("npm " + argString, {
child_process.execSync("yarn " + argString, {
env: process.env,
cwd: modulePath,
stdio: ['inherit', 'inherit', 'inherit'],

View File

@@ -5,7 +5,7 @@
"Riot Desktop on %(platformName)s": "الواجهة المكتبية لرايوت على %(platformName)s",
"Unknown device": "جهاز مجهول",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s عبر %(browserName)s على %(osName)s",
"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) للسماح بمشاركة الشاشة.",
"Co-ordination for Riot translators": "التنسيق لمترجمين Riot",
"powered by Matrix": "مشغل بواسطة Matrix",
"Welcome to Riot.im": "مرحبا بك في Riot.im",
@@ -28,5 +28,10 @@
"Running Matrix services": "تشغيل خدمات Matrix",
"Community-run support for Synapse": "الدعم المجتمعي لـ Synapse",
"Admin support for Dendrite": "الدعم الاداري لـDendrite",
"Announcements about Synapse releases": "إعلانات حول إصدارات Synaps"
"Announcements about Synapse releases": "إعلانات حول إصدارات Synaps",
"Create Account": "انشاء حساب",
"Need help?": "بحاجة إلى مساعدة؟",
"Explore rooms": "استكشف غرف المحادثات",
"Room Directory": "دليل غرف المحادثات",
"Sign In": "التسجيل"
}

View File

@@ -35,5 +35,12 @@
"Contributing code to Matrix and Riot": "Contribuir codi a Matrix i Riot",
"Dev chat for the Riot/Web dev team": "Xat de l'equip de desenvolupadors Riot/Web",
"Dev chat for the Dendrite dev team": "Xat de l'equip Dendrite per a desenvolupadors",
"Co-ordination for Riot translators": "Coordinació dels traductors del Riot"
"Co-ordination for Riot translators": "Coordinació dels traductors del Riot",
"Create Account": "Crea un compte",
"Need help?": "Necessiteu ajuda?",
"Explore rooms": "Exploreu les sales",
"Room Directory": "Directori de sales",
"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.": "Podeu emprar les opcions personalitzades del servidor per iniciar la sessió en altres servidors de Matrix especificant un URL de servidor personal diferent. Això us permet emprar el Riot amb un compte de Matrix existent en un servidor personal diferent.",
"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.": "També podeu establir un servidor d'identitat personalitzat, però no podreu convidar usuaris o ser convidats vosaltres mateixos per adreça de correu electrònic.",
"Sign In": "Inicia la sessió"
}

View File

@@ -4,7 +4,7 @@
"Riot is not supported on mobile web. Install the app?": "Riot není podporovaný na mobilním webu. Nainstalovat aplikaci?",
"You need to be using HTTPS to place a screen-sharing call.": "Pro uskutečnění hovoru se sdílením obrazovky musíte používat HTTPS.",
"Search the room directory": "Prohledat adresář místností",
"Chat with Riot Bot": "Chatujte s Riot Botem",
"Chat with Riot Bot": "Konverzovat s Riot Botem",
"Get started with some tips from Riot Bot!": "Začněte s radami od Riot Bota!",
"General discussion about Matrix and Riot": "Obecná diskuse o Matrixu a Riotu",
"Discussion of all things Matrix!": "Diskuse o všem okolo Matrixu!",
@@ -35,5 +35,12 @@
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android a matrix-android-sdk chat",
"Discussion of the Identity Service API": "Diskuze o API služby identity",
"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.": "Přes vlastní serverové volby se můžete přihlásit k dalším Matrix serverům tak, že zadáte jinou adresu domovského serveru.<br/>Díky tomu můžete v Riotu používat Matrix účet z jiného domovského serveru.<br/><br/>Můžete nastavit i vlastní server identity, ale pak už nebudete moci zvát ani být zván/a skrze e-mailovou adresu.",
"Co-ordination for Riot translators": "Spolupráce pro překladatele Riot"
"Co-ordination for Riot translators": "Spolupráce pro překladatele 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.": "Také je možné nastavit vlastní server identity, ale pak nebude možné pozvat uživatele pomocí emailové adresy ani být pozván pomocí emailové adresy.",
"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.": "Ve vlastních serverových volbách si můžete nastavit použití vlastního domovského serveru. To Vám umožní používat Riot s existujícím Matrix účtem na jiném serveru.",
"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í"
}

View File

@@ -37,10 +37,10 @@
"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.": "Die benutzerdefinierten Server-Einstellungen kannst du verwenden, um dich auf anderen Matrix-Servern anzumelden, indem du eine abweichende Heimserver-URL eingibst.<br/>Somit ist es möglich, Riot mit einem bereits bestehendem Matrix-Benutzerkonto auf einem anderen Heimserver zu verwenden.<br/><br/>Außerdem kannst du einen benutzerdefinierten Identitätsserver eingeben. Allerdings kannst du in diesem Fall Benutzer nicht mehr per E-Mail-Adresse einladen und auch selbst nicht mehr per E-Mail-Adresse eingeladen werden.",
"Co-ordination for Riot translators": "Koordination für Riot-Übersetzer",
"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.": "Du kannst die erweiterte Serveroption nutzen um dich an einem anderen Matrixserver anzumelden, indem du eine andere Heimserver-URL angibst. Dies erlaubt dir, Riot mit einem existierenden Matrix-Konto auf einem anderen Heimserver zu nutzen.",
"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.": "Du kannst auch einen anderen Identitätsserver setzen. Dieser hat einen anderen Wissensstand als der Standardserver, weswegen es beim Einladen oder Eingeladen werden mittels E-Mail-Adresse Probleme geben kann.",
"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.": "Du kannst auch einen anderen Identitätsserver einstellen, allerdings kannst du dann andere Benutzer nicht mehr per E-Mail-Adresse einladen, ebenso wirst du selbst nicht mehr per E-Mail-Adresse eingeladen werden können.",
"Sign In": "Anmelden",
"Create Account": "Konto erstellen",
"Need help?": "Braucht du Hilfe?",
"Need help?": "Brauchst du Hilfe?",
"Explore rooms": "Räume erkunden",
"Room Directory": "Raumverzeichnis"
}

View File

@@ -35,5 +35,9 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Αρκετά δωμάτια υπάρχουν ήδη στο Matrix, συνδεδεμένα σε υπάρχοντα δίκτυα (Slack, IRC, Gitter κ.λπ) ή αυτόνομα. Ρίξτε μια ματιά στο ευρετήριο!",
"Support for those using, running and writing other bridges": "Υποστήριξη για τους χρήστες που χρησιμοποιούν ή αναπτύσσουν εφαρμογές ενσωμάτωσης για το Matrix",
"Co-ordination for Riot translators": "Συντονισμός για μεταφραστές του Riot",
"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.": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις διακομιστή για να συνδεθείτε σε άλλους διακομιστές Matrix δίνοντας ένα διαφορετικό URL διακομιστή.<br/>Αυτό σας επιτρέπει να χρησιμοποιήσετε το Riot με έναν υπάρχοντα λογαριασμό Matrix σε έναν διαφορετικό διακομιστή.<br/><br/>Μπορείτε επίσης να ορίσετε έναν προσαρμοσμένο διακομιστή ταυτοποίησης αλλά δεν θα μπορείτε να προσκαλέσετε χρήστες ή να προσκληθείτε εσείς μέσω διεύθυνσης ηλεκτρονικού ταχυδρομίου."
"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.": "Μπορείτε να χρησιμοποιήσετε τις προσαρμοσμένες ρυθμίσεις διακομιστή για να συνδεθείτε σε άλλους διακομιστές Matrix δίνοντας ένα διαφορετικό URL διακομιστή.<br/>Αυτό σας επιτρέπει να χρησιμοποιήσετε το Riot με έναν υπάρχοντα λογαριασμό Matrix σε έναν διαφορετικό διακομιστή.<br/><br/>Μπορείτε επίσης να ορίσετε έναν προσαρμοσμένο διακομιστή ταυτοποίησης αλλά δεν θα μπορείτε να προσκαλέσετε χρήστες ή να προσκληθείτε εσείς μέσω διεύθυνσης ηλεκτρονικού ταχυδρομίου.",
"Sign In": "Σύνδεση",
"Create Account": "Δημιουργία Λογαριασμού",
"Need help?": "Χρειάζεστε βοήθεια;",
"Room Directory": "Ευρετήριο δωματίων"
}

View File

@@ -35,5 +35,12 @@
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Desktop chat",
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; matrix-ios-sdk chat",
"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.": "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.",
"Co-ordination for Riot translators": "Co-ordination for Riot translators"
"Co-ordination for Riot translators": "Co-ordination for Riot translators",
"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.",
"Sign In": "Sign In",
"Create Account": "Create Account",
"Need help?": "Need help?",
"Explore rooms": "Explore rooms",
"Room Directory": "Room Directory"
}

View File

@@ -10,7 +10,7 @@
"Welcome to Riot.im": "Bienvenido a Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas &amp; colaboración con el poder de [matrix]",
"Search the room directory": "Buscar en el directorio de salas",
"Chat with Riot Bot": "Conversar con el Bot de Riot",
"Chat with Riot Bot": "Hablar con Riot Bot",
"Get started with some tips from Riot Bot!": "¡Comenzar con algunos consejos de Riot Bot!",
"General discussion about Matrix and Riot": "Discusión general sobre Matrix y Riot",
"Discussion of all things Matrix!": "¡Discusión sobre todas las cosas de Matrix!",
@@ -35,5 +35,12 @@
"Dev chat for the Dendrite dev team": "Conversaciones del equipo de desarrollo de Dendrite",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Muchas salas ya están disponibles en Matrix, enlazadas a redes existentes (Slack, IRC, Gitter, etc) o independientes. ¡Revisa el directorio!",
"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.": "Puedes usar las opciones del servidor personalizado para acceder a otros servidores Matrix especificando su URL. <br/> Esto te permite usar Riot con una cuenta Matrix existente en un servidor doméstico distinto. <br/><br/>También puedes establecer un servidor de identidad personalizado pero no podrás invitar a otros usuarios usando su dirección de correo electrónico, y tampoco ser invitado por el tuyo.",
"Co-ordination for Riot translators": "Co-odinación de traductores de Riot"
"Co-ordination for Riot translators": "Co-odinación de traductores de Riot",
"Sign In": "Iniciar sesión",
"Create Account": "Crear cuenta",
"Need help?": "Ayuda?",
"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.": "También puedes definir un servidor de identidad personalizado, pero no podrás invitar a usuarios o ser inivitado usando direcciones de correo.",
"Explore rooms": "Explorar salas",
"Room Directory": "Directorio de salas",
"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.": "Puedes usar la opción de servidor personalizado para iniciar sesión en otros servidores Matrix, especificando la dirección URL del servidor. Esto te permite usar una cuenta Matrix en un servidor diferente."
}

View File

@@ -6,7 +6,7 @@
"Custom Server Options": "Palvelinasetukset",
"Riot Desktop on %(platformName)s": "Riot Desktop %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS -yhteyttä, jotta voit jakaa ruudun.",
"Chat with Riot Bot": "Keskustele Riot Botin kanssa",
"Chat with Riot Bot": "Keskustele Riot-botin kanssa",
"Get started with some tips from Riot Bot!": "Aloita Riot Botin vinkkien avulla!",
"General discussion about Matrix and Riot": "Matrix- ja Riot keskustelut",
"Discussion of all things Matrix!": "Keskustelu kaikesta Matrixiin liittyvästä!",
@@ -35,7 +35,7 @@
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s %(browserName)s %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Salattua ja vikasietoista viestintää Matrix -teknologialla",
"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.": "Voit käyttää edistyksellisiä asetuksia kirjautuaksesi muille Matrix palvelimille, määrittelemällä kotipalvelimen URL-osoitteen.<br/>Tämän avulla voit käyttää Riot:ia olemassa olevalla toisen Matrix palvelimen käyttäjätilillä.<br/><br/>Voit myös asettaa valinnaisen identiteettipalvelimen, mutta et voi kutsua käyttäjiä sähköpostiosoitteella tai tulla kutsutuksi.",
"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.": "Voit käyttää mukautettuja palvelinasetuksia kirjautuaksesi muihin Matrix-palvelimiin määrittämällä toisen kotipalvelimen osoitteen. Tämä mahdollistaa Riotin käyttämisen toisella palvelimella olevalla Matrix-tunnuksella.",
"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.": "Voit käyttää mukautettuja palvelinasetuksia kirjautuaksesi muihin Matrix-palvelimiin. Tämä mahdollistaa Riotin käyttämisen toisella palvelimella olevalla Matrix-tunnuksella.",
"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.": "Voit myös määrittää toisen identiteettipalvelimen, mutta et voi kutsua muita käyttäjiä sähköpostin perusteella, eivätkä se voi kutsua sinua.",
"Sign In": "Kirjaudu sisään",
"Create Account": "Luo tunnus",

21
src/i18n/strings/ga.json Normal file
View File

@@ -0,0 +1,21 @@
{
"Riot Desktop on %(platformName)s": "Leagan gnáthríomhaire Riot ar %(platformName)s",
"Unknown device": "Gléas nár aithníodh",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s trí %(browserName)s ar %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Ní mór HTTPS a úsáid chun glaoch ina dhéantar an scáileán a roinnt a chuir.",
"powered by Matrix": "á thiomáint le Matrix",
"Custom Server Options": "Socruithe do fhreastalaí saincheaptha",
"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.": "Is féidir na socruithe do fhreastalaí saincheaptha a úsáid chun síniú isteach le freastalaí Matrix eile tríd URL freastalaí ar leith a sholáthar. Cuirfidh sé seo ar do chumas Riot a úsáid le cuntas Matrix atá ar taifead ag freastalaí difriúil.",
"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.": "Freisin is féidir freastalaí aitheantais saincheaptha a úsáid, ach le seo ní bheidh tú in ann cuireadh a thabhairt do dhaoine tríd seoladh ríomhphoist a sholáthar, nó glacadh le cuireadh trí ríomhphoist ach an oiread.",
"Dismiss": "Cuir uait",
"Welcome to Riot.im": "Fáilte chuig Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Meán comhrá agus comhoibriú neamhláraithe agus criptithe á thiomáint le [matrix]",
"Sign In": "Sínigh Isteach",
"Create Account": "Déan cuntas a chruthú",
"Need help?": "An bhfuil cabhair uait?",
"Chat with Riot Bot": "Labhair le Riot Bot",
"Explore rooms": "Breathnaigh thart ar na seomraí",
"Room Directory": "Eolaire na Seomraí",
"Search the room directory": "Cuardaigh eolaire na seomraí",
"Get started with some tips from Riot Bot!": "Tosaigh le nod ó Riot Bot!"
}

View File

@@ -35,5 +35,12 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Xa existen multitude de salas en Matrix ben ligadas a redes existentes (Slack, IRC, Gitter etc) ou ben independentes. Busque no directorio!",
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android &amp; sala de conversas matrix-android-sdk",
"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.": "Pode utilizar as opcións persoais de servidor para conectarse a outros servidores Matrix indicando o enderezo URL dese servidor.</br>Isto permítelle utilizar Riot cunha conta Matrix existente en outro servidor.<br/><br/>Tamén pode empregar un servidor personalizado de identidade mais nese caso nin se poderán convidar a outros usuarios empregando os correo electrónicos nin tampouco eles o poderán convidar a vostede por correo.",
"Co-ordination for Riot translators": "Coordinación para tradutora/es de Riot"
"Co-ordination for Riot translators": "Coordinación para tradutora/es de Riot",
"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.": "Podes usar as opcións de servidor personalizado para iniciar sesión en outros servidores Matrix especificando unha dirección diferente de servidor doméstico. Con esto podes usar Riot cunha conta Matrix existente noutro servidor doméstico.",
"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.": "Tamén podes fixar un servidor de identidade, pero non poderás invitar a usuarios polo enderezo de correo, e tampouco que te inviten.",
"Sign In": "Entrar",
"Create Account": "Crear conta",
"Need help?": "¿Precisas axuda?",
"Explore rooms": "Explorar salas",
"Room Directory": "Directorio de salas"
}

View File

@@ -35,5 +35,12 @@
"Contributing code to Matrix and Riot": "मैट्रिक्स और रायट में कोड योगदान करना",
"Dev chat for the Riot/Web dev team": "रायट / वेब डेव टीम के लिए डेवलपर चैट",
"Dev chat for the Dendrite dev team": "डेन्ड्राइट देव टीम के लिए डेवलपर चैट",
"Co-ordination for Riot translators": "रायट अनुवादकों के लिए समन्वय"
"Co-ordination for Riot translators": "रायट अनुवादकों के लिए समन्वय",
"Sign In": "साइन करना",
"Create Account": "खाता बनाएं",
"Need help?": "मदद चाहिए?",
"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.": "आप एक अलग होमसर्वर URL निर्दिष्ट करके अन्य मैट्रिक्स सर्वर में साइन इन करने के लिए कस्टम सर्वर विकल्पों का उपयोग कर सकते हैं। यह आपको एक अलग होमसर्वर पर मौजूदा मैट्रिक्स खाते के साथ रायट का उपयोग करने की अनुमति देता है।",
"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.": "आप एक कस्टम पहचान सर्वर भी सेट कर सकते हैं, लेकिन आप उपयोगकर्ताओं को ईमेल पते से आमंत्रित नहीं कर पाएंगे, या स्वयं ईमेल पते से आमंत्रित नहीं किया जाएगा।"
}

View File

@@ -1,20 +1,20 @@
{
"Custom Server Options": "Tilpassede serveralternativer",
"powered by Matrix": "benytter seg av Matrix",
"Custom Server Options": "Server-instillinger",
"powered by Matrix": "Drevet av Matrix",
"Riot is not supported on mobile web. Install the app?": "Riot er ikke støttet av mobil-nettlesere. Ønsker De å innstalere appen?",
"Riot Desktop on %(platformName)s": "Riot på skrivebordet er på %(platformName)s",
"Riot Desktop on %(platformName)s": "Riot Desktop på %(platformName)s",
"Unknown device": "Ukjent enhet",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s på %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "De er nødt til å benytte HTTPS for å kunne ha en samtale med skjermdeling.",
"You need to be using HTTPS to place a screen-sharing call.": "Du er nødt til å bruke HTTPS for å ha en samtale med skjermdeling.",
"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.": "De kan benytte brukerdefinerte server-innstillinger for å kunne logge Dem inn på andre Matrix-servere ved å spesifisere en annen hjemmeserver-adresse. <br/> Dette tillater Dem til å bruke Riot med en eksisterende Matrix-konto på en annen hjemmeserver. <br/><br/> De kan i tillegg definere en egen hjemmeserver-identitet, men De kan da ikke invitere andre brukere via email, og De kan heller ikke bli invitert via email selv.",
"Dismiss": "Avvis",
"Welcome to Riot.im": "Velkommen skal De være til Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Desentralisert, kryptert nettprat &amp; sammabeid drevet av [matrix]",
"Search the room directory": "Søk i romutvalget",
"Welcome to Riot.im": "Velkommen til Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Desentralisert, kryptert chat &amp; sammabeid drevet av [matrix]",
"Search the room directory": "Søk i alle rom",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Allerede finnes det alskens rom i Matrix, sammenkoblet til eksisterende nettverk (Slack, IRC, Gitter osv.) eller selvstendig. Dersom De formoder, kan De kikke på utvalget!",
"Chat with Riot Bot": "Nettprat med Riot Bot",
"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.": "Du kan bruke egendefinert tjener instillingen for å logge inn på andre Matrix tjenere ved å spesifisere enn annen hjemmetrjener URL. Dette lar deg bruke Riot med en eksisterende Matrix konto på en annen hjemmetjener.",
"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.": "Du kan også stille inn en egen idendtitetstjener, men du kommer ikke til å kunne invitere andre brukere med e-post, eller bli invitert med e-post selv.",
"Chat with Riot Bot": "Chat med Riot Bot",
"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.": "Du kan bruke instillinger for «egendefinert tjener» til å logge inn på andre Matrix tjenere ved å spesifisere en annen URL. Dette lar deg bruke Riot med en eksisterende Matrix konto på en annen hjemmetjener.",
"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.": "Du kan også bruke din egen identitetstjener, men du kommer ikke til å kunne invitere andre brukere med e-post, eller bli invitert med e-post selv.",
"Get started with some tips from Riot Bot!": "Kom i gang med noen tips fra Riot Bot!",
"General discussion about Matrix and Riot": "Generelle diskusjoner om Matrix og Riot",
"Discussion of all things Matrix!": "Diskusjoner om alt Matrix!",
@@ -28,5 +28,7 @@
"Announcements about Synapse releases": "Kunngjøring om Synapse utgivelser",
"Sign In": "Logg inn",
"Create Account": "Lag konto",
"Need help?": "Trenger du hjelp?"
"Need help?": "Trenger du hjelp?",
"Room Directory": "Alle rom",
"Explore rooms": "Se alle rom"
}

View File

@@ -9,7 +9,7 @@
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa estar usando HTTPS para poder iniciar uma chamada com compartilhamento de tela.",
"Welcome to Riot.im": "Seja bem-vinda(o) a Riot.im",
"Search the room directory": "Buscar na lista pública de salas",
"Chat with Riot Bot": "Conversar com o Bot do Riot",
"Chat with Riot Bot": "Converse com o bot do Riot",
"Get started with some tips from Riot Bot!": "Comece com algumas dicas do Bot do Riot!",
"General discussion about Matrix and Riot": "Discussão geral sobre o Matrix e o Riot",
"Discussion of all things Matrix!": "Discussão sobre todas as coisas do Matrix!",
@@ -35,5 +35,12 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Muitas salas já existem no Matrix, algumas independentes, e outras relacionadas a redes existentes (tais como Slack, IRC, Gitter, entre outras). Dê uma olhada na lista de salas públicas!",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat descentralizado, criptografado e colaborativo oferecido por [matrix]",
"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 customizadas de servidor para conectar-se a outros servidores Matrix ao especificar uma outra URL de Servidor de Base (homeserver).<br/> Isso permite que você use o Riot com uma conta Matrix existente em outro servidor de base.<br/><br/>Você também pode definir um servidor de identidade customizado, mas neste caso você não poderá convidar outras pesoas por endereço de email, ou ser convidada/o pelo seu endereço de email.",
"Co-ordination for Riot translators": "Coordenação para tradutores Riot"
"Co-ordination for Riot translators": "Coordenação para tradutores Riot",
"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.": "Você pode usar as opções personalizadas do servidor para entrar em outros servidores Matrix, especificando um URL diferente de homeserver. Isso permite que você use o Riot com uma conta Matrix existente em um homeserver diferente.",
"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ê também pode definir um servidor de identidade personalizado, mas não poderá convidar usuários por endereço de e-mail nem ser convidado por endereço de e-mail.",
"Sign In": "Entrar",
"Create Account": "Criar Conta",
"Need help?": "Precisa de ajuda?",
"Explore rooms": "Explore as salas",
"Room Directory": "Diretório de salas"
}

View File

@@ -35,5 +35,12 @@
"Contributing code to Matrix and Riot": "Додавање кода у Матрикс и Riot",
"Dev chat for the Riot/Web dev team": "Програмерско ћаскање за Riot/веб програмерски тим",
"Dev chat for the Dendrite dev team": "Програмерско ћаскање за Dendrite програмерски тим",
"Co-ordination for Riot translators": "Координација за Riot преводиоце"
"Co-ordination for Riot translators": "Координација за Riot преводиоце",
"Sign In": "Пријава",
"Create Account": "Направи налог",
"Need help?": "Потребна помоћ?",
"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.": "Такође, можете подесити прилагођени сервер идентитета али у том случају нећете моћи да позивате кориснике преко мејла адресе или да сами будете позвани преко мејл адресе."
}

View File

@@ -37,5 +37,10 @@
"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.": "Du kan använda anpassade serverinställningar för att logga in på andra Matrix-servrar genom att ange en annan hemserver-URL.<BR/>Du kan då använda Riot med ett befintligt Matrix-konto på en annan hemserver.<br/><br/>Du kan också ange en anpassad identitetsserver men kommer då inte kunna bjuda in användare med epostadress, eller själv bli inbjuden med epostadress.",
"Co-ordination for Riot translators": "Koordination för Riot-översättare",
"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.": "Du kan använda en egen identitetsserver, men då kan du inte bjuda in användare via epostadress eller själv bjudas in med din epostadress.",
"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.": "Under anpassade serverinställningar kan du logga in på andra Matrixservrar genom att ange en egen hemserveradress. På så sätt kan du använda Riot med ett Matrixkonto du redan har på en annan hemserver."
"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.": "Under anpassade serverinställningar kan du logga in på andra Matrixservrar genom att ange en egen hemserveradress. På så sätt kan du använda Riot med ett Matrixkonto du redan har på en annan hemserver.",
"Sign In": "Logga in",
"Create Account": "Skapa konto",
"Need help?": "Behöver du hjälp?",
"Explore rooms": "Utforska rum",
"Room Directory": "Rumslista"
}

View File

@@ -2,7 +2,7 @@
"%(appName)s via %(browserName)s on %(osName)s": "%(osName)s işletim sisteminde %(browserName)s ile %(appName)s",
"Custom Server Options": "Özelleştirilebilir Sunucu Seçenekleri",
"Dismiss": "Kapat",
"powered by Matrix": "Matrix tarafından desteklenmektedir",
"powered by Matrix": "Matrix'den besleniyor",
"Riot Desktop on %(platformName)s": "%(platformName)s platformunda Riot Masaüstü",
"Riot is not supported on mobile web. Install the app?": "Riot mobil web'de desteklenmiyor . Uygulamayı yükle ?",
"Unknown device": "Bilinmeyen aygıt",
@@ -35,5 +35,12 @@
"Dev chat for the Dendrite dev team": "Dendrite geliştirici takımı için geliştirici sohbeti",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrix'te var olan ağalara bağlı (Slack , IRC , Gitter vb.) birçok oda var. Dizini kontrol edin!",
"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.": "Farklı bir ev sunucusu URL'sini belirterek diğer Matrix sunucularına oturum açmak için özel sunucu seçeneklerini kullanabilirsiniz.<br />Bu, Riot'u başka bir ev sunucusu üzerinde var olan Matrix hesabını kullanmanıza olanak sağlar. <br/><br/> Ayrıca özelleştirilebilir bir kimlik de ayarlayabilirsiniz, ama kullanıcılırı ve kendinizi e-posta adreslerinden davet edemeyeceksiniz.",
"Co-ordination for Riot translators": "Riot çeviricileri için iş güdüm (koordinasyon)"
"Co-ordination for Riot translators": "Riot çeviricileri için iş güdüm (koordinasyon)",
"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.": "Özel sunucu seçenekleri kullanıp farklı bir anamakine URL'si belirleyerek diğer Matrix sunucularına giriş yapabilirsin. Bu Riot'u varolan bir Matrix hesabı ile farklı anamakine de kullanmanı sağlar.",
"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.": "Ayrıca özel kimlik sunucusu da belirleyebilirsin, ancak kullanıcıları epostaları ile davet edemezsin ya da epostan ile davet edilemezsin.",
"Sign In": "Giriş yap",
"Create Account": "Kayıt Ol",
"Need help?": "Yardıma mı ihtiyacın var?",
"Explore rooms": "Odaları keşfet",
"Room Directory": "Oda Dizini"
}

View File

@@ -1,5 +1,5 @@
{
"Custom Server Options": "Нетипові параметри сервера",
"Custom Server Options": "Власні параметри сервера",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s через %(browserName)s на %(osName)s",
"Dismiss": "Відхилити",
"powered by Matrix": "працює на Matrix",
@@ -10,7 +10,7 @@
"Welcome to Riot.im": "Ласкаво просимо до Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Децентралізований, шифрований чат та засіб для співробітництва, що працює на [matrix]",
"Search the room directory": "Шукати у каталозі кімнат",
"Chat with Riot Bot": "Розмовляти з Riot-ботом",
"Chat with Riot Bot": "Чат із Riot-ботом",
"Get started with some tips from Riot Bot!": "Розпочніть за допомогою декількох підказок від Riot-боту!",
"General discussion about Matrix and Riot": "Загальне обговорення Matrix та Riot",
"Discussion of all things Matrix!": "Обговорення усіх деталей про Matrix!",
@@ -35,5 +35,12 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "У мережі Matrix вже існує багато кімнат, що з'єднані як з існуючими мережами (Slack, IRC, Gitter тощо), так і незалежними. Подивіться у каталозі кімнат!",
"Running Matrix services": "Запуск служби Matrix",
"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.": "Ви можете використовувати параметри користувача сервера для входа на другі сервера Matrix, вказав другий URL-адресу домашнього сервера. <br/>Це дозволяє використовувати Riot з обліковим записом Matrix який існує на другому домашньому сервері.<br/><br/>Окрім цього, можливо встановити ідентифікаційний сервер користувача, але ви не зможете запросити других користувачів та бути запрошенному використовуючи адресу електронної пошти.",
"Co-ordination for Riot translators": "Координаційний чат для перекладачів Riot"
"Co-ordination for Riot translators": "Координаційний чат для перекладачів Riot",
"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 на іншому сервері.",
"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": "Створити аккаунт",
"Explore rooms": "Дослідити кімнати",
"Room Directory": "Каталог кімнат"
}

View File

@@ -41,5 +41,6 @@
"Create Account": "创建帐号",
"Need help?": "需要帮助?",
"Explore rooms": "探索房间",
"Room Directory": "房间目录"
"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.": "您可以在自定义服务器选项中通过指定其他主服务器的 URL 来登录其他 Matrix 服务器。 这允许您在不同的主服务器上通过已有的 Matrix 帐户来使用 Riot 。"
}

View File

@@ -3,22 +3,22 @@
<head>
<meta charset="utf-8">
<title>Riot</title>
<link rel="apple-touch-icon" sizes="57x57" href="vector-icons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="vector-icons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="vector-icons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="vector-icons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="vector-icons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="vector-icons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="vector-icons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="vector-icons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="vector-icons/apple-touch-icon-180x180.png">
<link rel="apple-touch-icon" sizes="57x57" href="<%= require('../../res/vector-icons/apple-touch-icon-57x57.png') %>">
<link rel="apple-touch-icon" sizes="60x60" href="<%= require('../../res/vector-icons/apple-touch-icon-60x60.png') %>">
<link rel="apple-touch-icon" sizes="72x72" href="<%= require('../../res/vector-icons/apple-touch-icon-72x72.png') %>">
<link rel="apple-touch-icon" sizes="76x76" href="<%= require('../../res/vector-icons/apple-touch-icon-76x76.png') %>">
<link rel="apple-touch-icon" sizes="114x114" href="<%= require('../../res/vector-icons/apple-touch-icon-114x114.png') %>">
<link rel="apple-touch-icon" sizes="120x120" href="<%= require('../../res/vector-icons/apple-touch-icon-120x120.png') %>">
<link rel="apple-touch-icon" sizes="144x144" href="<%= require('../../res/vector-icons/apple-touch-icon-144x144.png') %>">
<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">
<link rel="shortcut icon" href="vector-icons/favicon.ico">
<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">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileImage" content="vector-icons/mstile-144x144.png">
<meta name="msapplication-config" content="vector-icons/browserconfig.xml">
<meta name="msapplication-TileImage" content="<%= require('../../res/vector-icons/mstile-144x144.png') %>">
<meta name="msapplication-config" content="<%= require('../../res/vector-icons/browserconfig.xml') %>">
<meta name="theme-color" content="#ffffff">
<meta property="og:image" content="<%= htmlWebpackPlugin.options.vars.og_image_url %>" />
<% for (var i=0; i < htmlWebpackPlugin.files.css.length; i++) {

View File

@@ -174,18 +174,30 @@ export default class ElectronPlatform extends VectorBasePlatform {
return await this._ipcCall('getAppVersion');
}
supportsAutoLaunch() {
supportsAutoLaunch(): boolean {
return true;
}
async getAutoLaunchEnabled() {
async getAutoLaunchEnabled(): boolean {
return await this._ipcCall('getAutoLaunchEnabled');
}
async setAutoLaunchEnabled(enabled) {
async setAutoLaunchEnabled(enabled: boolean): void {
return await this._ipcCall('setAutoLaunchEnabled', enabled);
}
supportsMinimizeToTray(): boolean {
return true;
}
async getMinimizeToTrayEnabled(): boolean {
return await this._ipcCall('getMinimizeToTrayEnabled');
}
async setMinimizeToTrayEnabled(enabled: boolean): void {
return await this._ipcCall('setMinimizeToTrayEnabled', enabled);
}
async canSelfUpdate(): boolean {
const feedUrl = await this._ipcCall('getUpdateFeedUrl');
return Boolean(feedUrl);

View File

@@ -88,19 +88,6 @@ export default class VectorBasePlatform extends BasePlatform {
this._updateFavicon();
}
supportsAutoLaunch() {
return false;
}
// XXX: Surely this should be a setting like any other?
async getAutoLaunchEnabled() {
return false;
}
async setAutoLaunchEnabled(enabled) {
throw new Error("Unimplemented");
}
/**
* Begin update polling, if applicable
*/

View File

@@ -123,9 +123,6 @@ describe('loading:', function() {
toString: function() { return this.search + this.hash; },
};
const tokenLoginCompleteDefer = Promise.defer();
tokenLoginCompletePromise = tokenLoginCompleteDefer.promise;
function onNewScreen(screen) {
console.log(Date.now() + " newscreen "+screen);
const hash = '#/' + screen;
@@ -157,18 +154,21 @@ describe('loading:', function() {
PlatformPeg.set(new WebPlatform());
const params = parseQs(windowLocation);
matrixChat = ReactDOM.render(
<MatrixChat
onNewScreen={onNewScreen}
config={config}
realQueryParams={params}
startingFragmentQueryParams={fragParts.params}
enableGuest={true}
onTokenLoginCompleted={() => tokenLoginCompleteDefer.resolve()}
initialScreenAfterLogin={getScreenFromLocation(windowLocation)}
makeRegistrationUrl={() => {throw new Error('Not implemented');}}
/>, parentDiv,
);
tokenLoginCompletePromise = new Promise(resolve => {
matrixChat = ReactDOM.render(
<MatrixChat
onNewScreen={onNewScreen}
config={config}
realQueryParams={params}
startingFragmentQueryParams={fragParts.params}
enableGuest={true}
onTokenLoginCompleted={resolve}
initialScreenAfterLogin={getScreenFromLocation(windowLocation)}
makeRegistrationUrl={() => {throw new Error('Not implemented');}}
/>, parentDiv,
);
});
}
// set an expectation that we will get a call to /sync, then flush
@@ -307,8 +307,8 @@ describe('loading:', function() {
loadApp();
return awaitSyncingSpinner(matrixChat).then(() => {
// we got a sync spinner - let the sync complete
return awaitLoggedIn(matrixChat).then(() => {
// we are logged in - let the sync complete
return expectAndAwaitSync();
}).then(() => {
// once the sync completes, we should have a room view
@@ -327,8 +327,8 @@ describe('loading:', function() {
loadApp();
return awaitSyncingSpinner(matrixChat).then(() => {
// we got a sync spinner - let the sync complete
return awaitLoggedIn(matrixChat).then(() => {
// we are logged in - let the sync complete
return expectAndAwaitSync();
}).then(() => {
// once the sync completes, we should have a home page
@@ -347,8 +347,8 @@ describe('loading:', function() {
uriFragment: "#/room/!room:id",
});
return awaitSyncingSpinner(matrixChat).then(() => {
// we got a sync spinner - let the sync complete
return awaitLoggedIn(matrixChat).then(() => {
// we are logged in - let the sync complete
return expectAndAwaitSync();
}).then(() => {
// once the sync completes, we should have a room view
@@ -417,9 +417,9 @@ describe('loading:', function() {
return httpBackend.flush();
}).then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
// we got a sync spinner - let the sync complete
// we are logged in - let the sync complete
return expectAndAwaitSync({isGuest: true});
}).then(() => {
// once the sync completes, we should have a welcome page
@@ -448,7 +448,7 @@ describe('loading:', function() {
return httpBackend.flush();
}).then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
return expectAndAwaitSync({isGuest: true});
}).then((req) => {
@@ -482,7 +482,7 @@ describe('loading:', function() {
return httpBackend.flush();
}).then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
return expectAndAwaitSync({isGuest: true});
}).then(() => {
@@ -507,7 +507,7 @@ describe('loading:', function() {
});
return httpBackend.flush().then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
// we got a sync spinner - let the sync complete
return expectAndAwaitSync();
@@ -654,44 +654,22 @@ function assertAtLoadingSpinner(matrixChat) {
expect(domComponent.children.length).toEqual(1);
}
// we've got login creds, and are waiting for the sync to finish.
// the page includes a logout link.
function awaitSyncingSpinner(matrixChat, retryLimit, retryCount) {
if (retryLimit === undefined) {
retryLimit = 10;
function awaitLoggedIn(matrixChat) {
if (matrixChat.state.view === VIEWS.LOGGED_IN) {
return Promise.resolve();
}
if (retryCount === undefined) {
retryCount = 0;
}
if (matrixChat.state.view === VIEWS.LOADING ||
matrixChat.state.view === VIEWS.LOGGING_IN) {
console.log(Date.now() + " Awaiting sync spinner: still loading.");
if (retryCount >= retryLimit) {
throw new Error("MatrixChat still not loaded after " +
retryCount + " tries");
}
// loading can take quite a long time, because we delete the
// indexedDB store.
return Promise.delay(5).then(() => {
return awaitSyncingSpinner(matrixChat, retryLimit, retryCount + 1);
});
}
console.log(Date.now() + " Awaiting sync spinner: load complete.");
return Promise.resolve();
}
function assertAtSyncingSpinner(matrixChat) {
const domComponent = ReactDOM.findDOMNode(matrixChat);
expect(domComponent.className).toEqual("mx_MatrixChat_splash");
ReactTestUtils.findRenderedComponentWithType(
matrixChat, sdk.getComponent('elements.Spinner'));
const logoutLink = ReactTestUtils.findRenderedDOMComponentWithTag(
matrixChat, 'a');
expect(logoutLink.text).toEqual("Logout");
return new Promise(resolve => {
const onAction = ({ action }) => {
if (action !== "on_logged_in") {
return;
}
console.log(Date.now() + ": Received on_logged_in action");
dis.unregister(dispatcherRef);
resolve();
};
const dispatcherRef = dis.register(onAction);
console.log(Date.now() + ": Waiting for on_logged_in action");
});
}
function awaitRoomView(matrixChat, retryLimit, retryCount) {

View File

@@ -61,7 +61,17 @@ module.exports = {
}),
},
{
test: /\.(gif|png|svg|ttf)$/,
// cache-bust languages.json file placed in
// riot-web/webapp/i18n during build by copy-res.js
test: /\.*languages.json$/,
type: "javascript/auto",
loader: 'file-loader',
options: {
name: 'i18n/[name].[hash:7].[ext]',
},
},
{
test: /\.(gif|png|svg|ttf|xml|ico)$/,
// Use a content-based hash in the name so that we can set a long cache
// lifetime for assets while still delivering changes quickly.
oneOf: [
@@ -133,14 +143,17 @@ module.exports = {
},
resolve: {
alias: {
// alias any requires to the react module to the one in our path, otherwise
// we tend to get the react source included twice when using npm link.
// alias any requires to the react module to the one in our path,
// otherwise we tend to get the react source included twice when
// using `npm link` / `yarn link`.
"react": path.resolve('./node_modules/react'),
"react-dom": path.resolve('./node_modules/react-dom'),
"react-addons-perf": path.resolve('./node_modules/react-addons-perf'),
// same goes for js-sdk
"matrix-js-sdk": path.resolve('./node_modules/matrix-js-sdk'),
"$webapp": path.resolve('./webapp'),
},
},
plugins: [
@@ -149,7 +162,6 @@ module.exports = {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
}),
new ExtractTextPlugin("bundles/[hash]/[name].css", {
allChunks: true,
}),

9423
yarn.lock Normal file

File diff suppressed because it is too large Load Diff