Compare commits
1822 Commits
v0.13.5-cr
...
v1.0.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b6930415ce | ||
|
|
ebf6deeed2 | ||
|
|
ea86359c41 | ||
|
|
72014c59be | ||
|
|
2b709c6973 | ||
|
|
3ee0789ef7 | ||
|
|
b7d2159d60 | ||
|
|
95c979de98 | ||
|
|
164de5faa5 | ||
|
|
5474a5e0c7 | ||
|
|
9235b5a861 | ||
|
|
d4f29805c3 | ||
|
|
0d6d755788 | ||
|
|
29ff95cccc | ||
|
|
20c437277c | ||
|
|
ea959d5994 | ||
|
|
813fdf4aad | ||
|
|
ab1ceff242 | ||
|
|
2e3d0e50ec | ||
|
|
4a5a73597c | ||
|
|
bf1ab7f420 | ||
|
|
53e25ff247 | ||
|
|
6206b1d073 | ||
|
|
4f58deac1f | ||
|
|
97a60834a1 | ||
|
|
0e2938d7b3 | ||
|
|
b0bbe48220 | ||
|
|
34eb6322c0 | ||
|
|
45d1ec8825 | ||
|
|
e37a8dc8a1 | ||
|
|
f020995ac4 | ||
|
|
79d56bdb0e | ||
|
|
3b70faee24 | ||
|
|
0d5e80cc51 | ||
|
|
f899c75d0c | ||
|
|
5266d1bc11 | ||
|
|
3acc6ee5c9 | ||
|
|
2c0b47a1e9 | ||
|
|
ea0ce23ac7 | ||
|
|
d644a73595 | ||
|
|
c3c9b63326 | ||
|
|
b10ec4db37 | ||
|
|
5d555e044d | ||
|
|
0a0aa1c591 | ||
|
|
af2921d0c4 | ||
|
|
4beeba6cf6 | ||
|
|
0c742e5424 | ||
|
|
a5a4c167e8 | ||
|
|
9e11c70416 | ||
|
|
ffacf30722 | ||
|
|
5a3b9ae454 | ||
|
|
717495c4e0 | ||
|
|
714570443d | ||
|
|
c691b248a2 | ||
|
|
a4f541adad | ||
|
|
588030141b | ||
|
|
09b17f77c2 | ||
|
|
62d4bb2144 | ||
|
|
2dc26b4c5d | ||
|
|
ad04e8bee8 | ||
|
|
b87f1f7713 | ||
|
|
6a9c053536 | ||
|
|
e56206241b | ||
|
|
c2d14392b2 | ||
|
|
223d8a87ca | ||
|
|
070cc77e0f | ||
|
|
878190ba27 | ||
|
|
3391689d29 | ||
|
|
5d2d8ccc71 | ||
|
|
257611f1b4 | ||
|
|
2e60037d9f | ||
|
|
f7e88855fe | ||
|
|
c727e774c4 | ||
|
|
1b501f6582 | ||
|
|
88ed193725 | ||
|
|
77b317b3cf | ||
|
|
c953791cd0 | ||
|
|
20dc7068af | ||
|
|
8766fcd089 | ||
|
|
df1ff65796 | ||
|
|
1a6efb3a1c | ||
|
|
674b8c3561 | ||
|
|
3b123ce5c1 | ||
|
|
27f1c5476b | ||
|
|
55da52debd | ||
|
|
47fbe1f600 | ||
|
|
bf12815473 | ||
|
|
b3f2857c20 | ||
|
|
fc12d62d4b | ||
|
|
7c94437177 | ||
|
|
ec2af993da | ||
|
|
ad95ca4e86 | ||
|
|
4872992ba2 | ||
|
|
2b069fce75 | ||
|
|
0f4757c289 | ||
|
|
755ad22489 | ||
|
|
1c1ebfa784 | ||
|
|
d982163911 | ||
|
|
21f11f02a4 | ||
|
|
39e16a18e2 | ||
|
|
32c958e2f2 | ||
|
|
f6dc8a946e | ||
|
|
af4cd46721 | ||
|
|
b3147af553 | ||
|
|
a11dcf0ee7 | ||
|
|
bb4bd0cd2d | ||
|
|
dc9751d5a5 | ||
|
|
db30c24b9f | ||
|
|
bbbb4c7861 | ||
|
|
4f1a18b620 | ||
|
|
a6edf66109 | ||
|
|
d0080b4ba8 | ||
|
|
d395fdcc6a | ||
|
|
0cb35ad216 | ||
|
|
7b9de1dbf2 | ||
|
|
745f43a959 | ||
|
|
8a5b96313a | ||
|
|
01f9e48b79 | ||
|
|
2f51f6efd6 | ||
|
|
9a90336238 | ||
|
|
a64b1c4b51 | ||
|
|
8e2529f068 | ||
|
|
3cec252729 | ||
|
|
9d0a6ef96d | ||
|
|
a87cc41914 | ||
|
|
76f21abcdc | ||
|
|
994d4aa63f | ||
|
|
678904dcfb | ||
|
|
18d898cc1f | ||
|
|
86ced4cdad | ||
|
|
aea2b1ebc9 | ||
|
|
52d1f3baa6 | ||
|
|
585d28692d | ||
|
|
6aff7460fe | ||
|
|
1ec9763566 | ||
|
|
07b6cf9309 | ||
|
|
39e80fb404 | ||
|
|
029d85c39b | ||
|
|
9d4f3a96ee | ||
|
|
0f6e614223 | ||
|
|
50baa09f5e | ||
|
|
4c877f118d | ||
|
|
a50db80510 | ||
|
|
dd01a398b6 | ||
|
|
5849621db3 | ||
|
|
369ae5f333 | ||
|
|
54d73b320a | ||
|
|
04876690f7 | ||
|
|
0571de8a21 | ||
|
|
001a4908d2 | ||
|
|
e79bc5dc1b | ||
|
|
a0f800e0be | ||
|
|
8dca2502cd | ||
|
|
41ac8d4e01 | ||
|
|
a51c0744e6 | ||
|
|
a929331160 | ||
|
|
e83c141599 | ||
|
|
6161495058 | ||
|
|
790aba72db | ||
|
|
157cae29ff | ||
|
|
3b26f53bb6 | ||
|
|
fdb7a781e0 | ||
|
|
e55ceef905 | ||
|
|
dee0258f44 | ||
|
|
ec83f792ad | ||
|
|
dee7a13409 | ||
|
|
758723256e | ||
|
|
a0494c4e05 | ||
|
|
1eca8e2ceb | ||
|
|
ae6d4501c0 | ||
|
|
5c55fb83d6 | ||
|
|
b00fb0e96a | ||
|
|
dd51cccd7c | ||
|
|
2892a31dea | ||
|
|
489282e047 | ||
|
|
5030410dd6 | ||
|
|
a03a738317 | ||
|
|
c421c0b1bf | ||
|
|
bfdffc653e | ||
|
|
1e76ef7a24 | ||
|
|
8630d0319d | ||
|
|
a74ac336e5 | ||
|
|
31260be907 | ||
|
|
4a0dc06038 | ||
|
|
10f178e429 | ||
|
|
6b359df6c6 | ||
|
|
d532fe3482 | ||
|
|
87c193df1a | ||
|
|
acfe095710 | ||
|
|
8bac9efd4c | ||
|
|
f22c02ecc6 | ||
|
|
2411d5286b | ||
|
|
bf0b2ea101 | ||
|
|
e1e364f7c7 | ||
|
|
42a3668efa | ||
|
|
c899469168 | ||
|
|
d2fd997d77 | ||
|
|
3eb550a15c | ||
|
|
3fad360f5f | ||
|
|
c06088dcab | ||
|
|
69758f32dc | ||
|
|
a1c0a05804 | ||
|
|
55652e5b04 | ||
|
|
7e81671c39 | ||
|
|
a476da0230 | ||
|
|
9f4ce2dcf2 | ||
|
|
7640f2768d | ||
|
|
e96d773f04 | ||
|
|
cd96cf9cd7 | ||
|
|
2ed598b09d | ||
|
|
d3df768f16 | ||
|
|
814255bfd0 | ||
|
|
2cc6f36b68 | ||
|
|
a6409ee82d | ||
|
|
c58b848cef | ||
|
|
4966148432 | ||
|
|
90140f6361 | ||
|
|
1391706573 | ||
|
|
cec8a77d52 | ||
|
|
0fa6aab5f5 | ||
|
|
b96fa43376 | ||
|
|
9da9310f4b | ||
|
|
b0e4a9b08b | ||
|
|
99150b9b49 | ||
|
|
03de7f9901 | ||
|
|
68fd1f0fad | ||
|
|
1460bfd1fc | ||
|
|
d0c503d6c8 | ||
|
|
8ab82b7ed7 | ||
|
|
2d360eab74 | ||
|
|
8add007cf3 | ||
|
|
3c0e8757c9 | ||
|
|
c773fcb946 | ||
|
|
2aaed5d4c3 | ||
|
|
0022834af4 | ||
|
|
9aad7042a2 | ||
|
|
9aa8b32df8 | ||
|
|
4f32be9766 | ||
|
|
25ef0913bb | ||
|
|
a5ed5be3cf | ||
|
|
697c7f9fe9 | ||
|
|
f7c2603d7c | ||
|
|
a28691f14d | ||
|
|
ca9823b35e | ||
|
|
91c037e578 | ||
|
|
5fe0af2500 | ||
|
|
6d7492d92a | ||
|
|
cf150fc575 | ||
|
|
a2c84e7702 | ||
|
|
7a9a5e8dc3 | ||
|
|
e9c6c2ed3f | ||
|
|
9da35a7980 | ||
|
|
f01f56626a | ||
|
|
09485f4b9d | ||
|
|
5a30b02be4 | ||
|
|
21eb8b9100 | ||
|
|
a0c205e4c9 | ||
|
|
40d7df793d | ||
|
|
71610ce24d | ||
|
|
41adcdc898 | ||
|
|
e98346e7cd | ||
|
|
0802aaae91 | ||
|
|
cf0b2816c1 | ||
|
|
7418815637 | ||
|
|
d71e84b790 | ||
|
|
aa388f1173 | ||
|
|
7a3df1c7d6 | ||
|
|
59bedae15e | ||
|
|
a127077bde | ||
|
|
49be03e845 | ||
|
|
e3d807b053 | ||
|
|
e5c0af478d | ||
|
|
82cd88cf25 | ||
|
|
e94e712d49 | ||
|
|
021d6c5908 | ||
|
|
b09f0618a9 | ||
|
|
ea17711616 | ||
|
|
e0b4875615 | ||
|
|
bbfd1448c5 | ||
|
|
d482d3c907 | ||
|
|
3236f72031 | ||
|
|
67ba81e80a | ||
|
|
8c895cd435 | ||
|
|
99b5695fec | ||
|
|
05f9cf453d | ||
|
|
3d7a74cc2b | ||
|
|
f7f9d8bfc3 | ||
|
|
ff95952969 | ||
|
|
373c587ef8 | ||
|
|
ca024673b9 | ||
|
|
ef7d8a6d94 | ||
|
|
0cc8027fd9 | ||
|
|
9e085511fd | ||
|
|
344184f239 | ||
|
|
ad41229bb6 | ||
|
|
bb5e78f723 | ||
|
|
2f473912ac | ||
|
|
62a49af23f | ||
|
|
751a1dc543 | ||
|
|
8b97e2ceab | ||
|
|
d01d67c2b0 | ||
|
|
4274c7287a | ||
|
|
2830b6caf4 | ||
|
|
baf3df5736 | ||
|
|
7527bdd2c7 | ||
|
|
7965011be9 | ||
|
|
6c6819f27c | ||
|
|
f7bdc9339c | ||
|
|
7b43ec757c | ||
|
|
8cd37d28da | ||
|
|
b6d70f4434 | ||
|
|
fc4e1485ad | ||
|
|
76833d478b | ||
|
|
b35903bb19 | ||
|
|
ff45dc6430 | ||
|
|
b1c48ed346 | ||
|
|
5a549519a6 | ||
|
|
0e580635eb | ||
|
|
60d3076038 | ||
|
|
0c428efea0 | ||
|
|
19f1489c92 | ||
|
|
b406da8755 | ||
|
|
e9fa1dd3a9 | ||
|
|
87c006da2c | ||
|
|
15a8560f9a | ||
|
|
0daf7c9af7 | ||
|
|
17983c47d8 | ||
|
|
6e0145eeea | ||
|
|
df155293b1 | ||
|
|
6ca0b3ad03 | ||
|
|
9111370349 | ||
|
|
868ec82997 | ||
|
|
c2038a5ccc | ||
|
|
cb628d0799 | ||
|
|
7c4f67b1a1 | ||
|
|
a82f9d5266 | ||
|
|
b6493a2f82 | ||
|
|
74c81d6921 | ||
|
|
02eb8a284c | ||
|
|
bf2d792d94 | ||
|
|
10294ab240 | ||
|
|
88ff92a658 | ||
|
|
8d9987a6b5 | ||
|
|
6ba471421f | ||
|
|
5310b4c14b | ||
|
|
d0a35f378b | ||
|
|
2648fe066e | ||
|
|
69567f9806 | ||
|
|
0007e669fb | ||
|
|
7247e97ff0 | ||
|
|
844dbcf740 | ||
|
|
10671aa06e | ||
|
|
373f850002 | ||
|
|
ac34ca11df | ||
|
|
710e295b44 | ||
|
|
22a1a7343b | ||
|
|
c3b05cb34e | ||
|
|
b5c27ca074 | ||
|
|
704a599811 | ||
|
|
1dfaf70562 | ||
|
|
dc92b126c7 | ||
|
|
c6f70cb72c | ||
|
|
f701e2601a | ||
|
|
8cb8890ab3 | ||
|
|
a7a5679bfa | ||
|
|
03587abff1 | ||
|
|
496a5baffd | ||
|
|
8996b6b429 | ||
|
|
d483fb0605 | ||
|
|
c2ec5f39ab | ||
|
|
58f927538f | ||
|
|
d9434c7af5 | ||
|
|
6f54ff9e7f | ||
|
|
9eaba3d3f5 | ||
|
|
4805858ecb | ||
|
|
092ae7ef2f | ||
|
|
bbb128b672 | ||
|
|
15b8d410c0 | ||
|
|
8298e73205 | ||
|
|
819e6d9219 | ||
|
|
d2c87a0331 | ||
|
|
286c5e8895 | ||
|
|
7df77d7e5d | ||
|
|
c7c271fb01 | ||
|
|
6804a00af0 | ||
|
|
81c75eb14b | ||
|
|
e604dfe9e8 | ||
|
|
135a5d38ff | ||
|
|
07ed2e8d0a | ||
|
|
2a594414e7 | ||
|
|
d3496c0cb9 | ||
|
|
c15151a0af | ||
|
|
6d1640194e | ||
|
|
06740e5480 | ||
|
|
c338e491fe | ||
|
|
a570ee53a8 | ||
|
|
417a31f1fe | ||
|
|
a4a6f070e4 | ||
|
|
d287abcd68 | ||
|
|
79fd38a899 | ||
|
|
0aa0773ef7 | ||
|
|
154e8bdb50 | ||
|
|
8f37c22917 | ||
|
|
0aeef3187a | ||
|
|
8903eebe17 | ||
|
|
cc4d0af713 | ||
|
|
4a217d9e9f | ||
|
|
122caf7a95 | ||
|
|
a1e5c72eb9 | ||
|
|
7dd163ac85 | ||
|
|
01432d3848 | ||
|
|
d3cae13552 | ||
|
|
061838bdab | ||
|
|
24846a1d64 | ||
|
|
0b31d32793 | ||
|
|
71403980cc | ||
|
|
f8ab754af4 | ||
|
|
fd3ed9e119 | ||
|
|
b53c86c5f4 | ||
|
|
cbe6d31ee3 | ||
|
|
5810221181 | ||
|
|
e9f4594eb9 | ||
|
|
2f991d190f | ||
|
|
ae90b9877a | ||
|
|
786c2a1fd7 | ||
|
|
eef4f7c4cf | ||
|
|
36cc5de0e7 | ||
|
|
ade0f34c6f | ||
|
|
854798f470 | ||
|
|
ca305399c3 | ||
|
|
00a8d44ce1 | ||
|
|
79c7f331c9 | ||
|
|
409c48efcb | ||
|
|
29f3ff155a | ||
|
|
6c1deb41be | ||
|
|
4574415e97 | ||
|
|
f05646c5a1 | ||
|
|
a6f8f707f3 | ||
|
|
e19dbe4f3b | ||
|
|
d393cd67f7 | ||
|
|
c80f5ddcd1 | ||
|
|
a02009d31f | ||
|
|
a4ed1afeb5 | ||
|
|
1fea7c022e | ||
|
|
e7f5aee9fb | ||
|
|
d3805f7545 | ||
|
|
70891f41a5 | ||
|
|
cebba5bfa3 | ||
|
|
0f5c62d3cc | ||
|
|
f9fa338960 | ||
|
|
18daa186b0 | ||
|
|
ad7ac26ff3 | ||
|
|
10efaaa078 | ||
|
|
bb353b940e | ||
|
|
9732d10f24 | ||
|
|
9b80aa76ce | ||
|
|
bc935012da | ||
|
|
e4025f1aff | ||
|
|
03dcc97ce9 | ||
|
|
e2b55315a6 | ||
|
|
1f8b0f2135 | ||
|
|
a9a45dc32b | ||
|
|
f7138c0516 | ||
|
|
d080a204a3 | ||
|
|
fd31d58128 | ||
|
|
a478f02c5b | ||
|
|
ffc0d3cda0 | ||
|
|
c68770c0aa | ||
|
|
ab1f68df93 | ||
|
|
b7622d8551 | ||
|
|
c470e2dcfb | ||
|
|
fe11ae73db | ||
|
|
70fe4f67ee | ||
|
|
6abd1de8b8 | ||
|
|
16b150039a | ||
|
|
ca1dec8e13 | ||
|
|
f81d3bc903 | ||
|
|
88132067ad | ||
|
|
f5eff7d349 | ||
|
|
5f35b9903d | ||
|
|
221f75542a | ||
|
|
d0fcf3c952 | ||
|
|
62f664c592 | ||
|
|
deaeb1a715 | ||
|
|
c1dfbd6993 | ||
|
|
2854c0969b | ||
|
|
1de5e61888 | ||
|
|
47493fa7d9 | ||
|
|
ecfafc613f | ||
|
|
a7ea51fc3e | ||
|
|
35147c6514 | ||
|
|
2518976326 | ||
|
|
40cb46de46 | ||
|
|
bb907d49c9 | ||
|
|
231ca253f2 | ||
|
|
9d33255850 | ||
|
|
c5d6fc387c | ||
|
|
4a03e6d307 | ||
|
|
dbd4d5e779 | ||
|
|
2a80d33a89 | ||
|
|
2202ff1ccd | ||
|
|
a138a9c6ec | ||
|
|
3d8d66547f | ||
|
|
17e84bf815 | ||
|
|
41540842eb | ||
|
|
65cc3000ee | ||
|
|
1fc8592ef6 | ||
|
|
4afb5caa4e | ||
|
|
ee137ce44c | ||
|
|
9830ab3aad | ||
|
|
005e4aa1bd | ||
|
|
de7d3ba701 | ||
|
|
05884ba279 | ||
|
|
a0e067510c | ||
|
|
2784d1b31c | ||
|
|
8e9d7d97f6 | ||
|
|
f483fd3916 | ||
|
|
4e65b5f73b | ||
|
|
0d7093fe76 | ||
|
|
47ade14e07 | ||
|
|
5ad9d2094a | ||
|
|
848bd8f553 | ||
|
|
74f2266d89 | ||
|
|
03323bc294 | ||
|
|
df1eb9f5cb | ||
|
|
aaa9c82758 | ||
|
|
ba51c0721e | ||
|
|
845b40d815 | ||
|
|
69adab2c9f | ||
|
|
80f0964342 | ||
|
|
56372b6a5f | ||
|
|
af4d3da7a8 | ||
|
|
eed9c56c51 | ||
|
|
ae1971f5d2 | ||
|
|
5c184e501d | ||
|
|
3488f04dd4 | ||
|
|
92db2b85f3 | ||
|
|
060a7807f0 | ||
|
|
52954982a3 | ||
|
|
dec60a9c85 | ||
|
|
39b5e4b1e3 | ||
|
|
d836ad8dbc | ||
|
|
d035efb14e | ||
|
|
401c85ad5b | ||
|
|
54c46df0dc | ||
|
|
a5fb33de02 | ||
|
|
4c2dace4ca | ||
|
|
b09aa2cff3 | ||
|
|
e277d02f83 | ||
|
|
f31ccaacef | ||
|
|
d4576dcf9f | ||
|
|
4e6f48df03 | ||
|
|
218da8a18a | ||
|
|
e28180f3d5 | ||
|
|
bccccb2758 | ||
|
|
46587450cb | ||
|
|
f17712fab3 | ||
|
|
c5ee92f4c3 | ||
|
|
24f292f360 | ||
|
|
4f5b61b798 | ||
|
|
a9e98e6711 | ||
|
|
3286acd306 | ||
|
|
085dcfe7bc | ||
|
|
b6d5f350e4 | ||
|
|
4d3df8b86b | ||
|
|
a356264801 | ||
|
|
d32dbb6d10 | ||
|
|
70319e4939 | ||
|
|
92b2980b41 | ||
|
|
eabcc9261d | ||
|
|
ad5be455bb | ||
|
|
20ce990763 | ||
|
|
30f0a7932b | ||
|
|
33d248d1e4 | ||
|
|
f69869ac1e | ||
|
|
d256194255 | ||
|
|
4de63e612d | ||
|
|
7f50acd886 | ||
|
|
18f8ea8519 | ||
|
|
0a4e3379f9 | ||
|
|
e355753900 | ||
|
|
712d020dfa | ||
|
|
5fc53f19f4 | ||
|
|
957fde964b | ||
|
|
b9688acdf5 | ||
|
|
2a8c7b260a | ||
|
|
a2c7ef5424 | ||
|
|
a1a417329c | ||
|
|
1f81ed306d | ||
|
|
2d78bc95ec | ||
|
|
4f720e9c3b | ||
|
|
0374c91ee7 | ||
|
|
894ad32e83 | ||
|
|
f3ee639dcc | ||
|
|
74a2b5a958 | ||
|
|
aac40c8c58 | ||
|
|
4e4906605b | ||
|
|
894e31fe73 | ||
|
|
67a762aeaf | ||
|
|
28f1140588 | ||
|
|
ac81080185 | ||
|
|
bc8323f96b | ||
|
|
a38661c0f0 | ||
|
|
57cdd26d4d | ||
|
|
582b67c42e | ||
|
|
44791a65b8 | ||
|
|
f3214b7891 | ||
|
|
81dfe506ac | ||
|
|
2356524d1c | ||
|
|
a371bede4d | ||
|
|
1f34d2d644 | ||
|
|
2166213400 | ||
|
|
c4f6158f46 | ||
|
|
7e33ea351d | ||
|
|
9e916cdd5c | ||
|
|
b7843a5d46 | ||
|
|
41e03333a7 | ||
|
|
c57c653535 | ||
|
|
8793ad9f4f | ||
|
|
07b56426ad | ||
|
|
43f9f2a0f2 | ||
|
|
d01824f711 | ||
|
|
841c8fd41d | ||
|
|
4041f3db5c | ||
|
|
91304e70a1 | ||
|
|
27c23058dc | ||
|
|
c511902356 | ||
|
|
8d7cec2a94 | ||
|
|
2b037ee146 | ||
|
|
23569705b4 | ||
|
|
c6da122e41 | ||
|
|
67e9606d55 | ||
|
|
1b8f1f5610 | ||
|
|
4c6bb8846b | ||
|
|
11a1915e61 | ||
|
|
e58ac74aa2 | ||
|
|
2b18aa7d79 | ||
|
|
0f9c8235e1 | ||
|
|
8b0ae88987 | ||
|
|
d8aaae6d42 | ||
|
|
ce4c71ccfb | ||
|
|
5ef141913b | ||
|
|
d27db5a1c7 | ||
|
|
c2bd6e6da1 | ||
|
|
d6406b48fd | ||
|
|
d5b42d99f2 | ||
|
|
42bac1620e | ||
|
|
09130582ad | ||
|
|
73239f5535 | ||
|
|
22abe5a815 | ||
|
|
736450e184 | ||
|
|
d10fda36af | ||
|
|
8639b2858b | ||
|
|
f47a9f93a5 | ||
|
|
52bbd8c764 | ||
|
|
8ef2eec504 | ||
|
|
1c5f16c332 | ||
|
|
588369d297 | ||
|
|
e23195fd86 | ||
|
|
1b0cafd956 | ||
|
|
81a624146b | ||
|
|
9c8ef4240c | ||
|
|
b59edf2690 | ||
|
|
daa3e1351b | ||
|
|
d00ca02c25 | ||
|
|
207106ea46 | ||
|
|
c150d97eaf | ||
|
|
6231cf3496 | ||
|
|
57999b460b | ||
|
|
e2bad5bdc8 | ||
|
|
5170635a1f | ||
|
|
1db5c64f3e | ||
|
|
9e4aa50567 | ||
|
|
2b91595aa9 | ||
|
|
2209059e84 | ||
|
|
b335da75db | ||
|
|
7cfda97b82 | ||
|
|
01f4e9b2a5 | ||
|
|
2bef30635c | ||
|
|
447c133d82 | ||
|
|
fbe6595b19 | ||
|
|
86b738dd79 | ||
|
|
b30fd9d3bf | ||
|
|
e54865b7ec | ||
|
|
2041b77b39 | ||
|
|
f7f21a006e | ||
|
|
51459ba2e2 | ||
|
|
a76908e2fd | ||
|
|
f79da66c36 | ||
|
|
8a64b47644 | ||
|
|
9a0690fb95 | ||
|
|
cdcdab82eb | ||
|
|
32ea24f8ce | ||
|
|
656d0e0ff4 | ||
|
|
49523ba8d1 | ||
|
|
a3b1b1ec60 | ||
|
|
dd8ed7cc77 | ||
|
|
0b09432b7e | ||
|
|
2ba60a7893 | ||
|
|
2a0cc21dfe | ||
|
|
472e55cea5 | ||
|
|
b579285f23 | ||
|
|
c46963807e | ||
|
|
1a73284b0c | ||
|
|
37e848eee9 | ||
|
|
8a167d2743 | ||
|
|
0ab6d81abb | ||
|
|
1d00254d6c | ||
|
|
2e1392ccf8 | ||
|
|
970c3dc6de | ||
|
|
fce68e491a | ||
|
|
2a4b322ec1 | ||
|
|
95018efa52 | ||
|
|
f31f16cd0d | ||
|
|
5df085848b | ||
|
|
8c82ce0c21 | ||
|
|
1d50eb0d7f | ||
|
|
789ec0baef | ||
|
|
30d7ee892e | ||
|
|
3a3f3f664a | ||
|
|
488eadc63e | ||
|
|
6de1f3e593 | ||
|
|
dcaea6d78f | ||
|
|
65e690bad7 | ||
|
|
9ea31042db | ||
|
|
675d617dbc | ||
|
|
a79e9b4fd6 | ||
|
|
f39e3f385c | ||
|
|
ad9f786646 | ||
|
|
8f6226d410 | ||
|
|
8a18488b1e | ||
|
|
53b179b22b | ||
|
|
dcde74bc09 | ||
|
|
86a6f1e932 | ||
|
|
10ed13acc0 | ||
|
|
ccf52d3bff | ||
|
|
b05a8b6dd3 | ||
|
|
1b32e9a475 | ||
|
|
d3f94a4847 | ||
|
|
764797e211 | ||
|
|
31c4cf968b | ||
|
|
6e0aeeea83 | ||
|
|
88745a9f36 | ||
|
|
3bcd8529fa | ||
|
|
8bd832b449 | ||
|
|
5d2bf37ac9 | ||
|
|
f248da3e08 | ||
|
|
8e5b67d7c9 | ||
|
|
f5a257ca79 | ||
|
|
ed90c491e2 | ||
|
|
ea00df0466 | ||
|
|
96b624e941 | ||
|
|
25c0656106 | ||
|
|
b361241c29 | ||
|
|
5b32ecb719 | ||
|
|
d8c126f320 | ||
|
|
6cd979d8d3 | ||
|
|
c6c2a77c3a | ||
|
|
0458aec320 | ||
|
|
b2ae1926a6 | ||
|
|
1ee4a7ec63 | ||
|
|
7e03b25030 | ||
|
|
c68623ddb0 | ||
|
|
847df2f75b | ||
|
|
73be5005c2 | ||
|
|
c36b42af71 | ||
|
|
db3ffd29da | ||
|
|
d7ebd88804 | ||
|
|
75e9489db5 | ||
|
|
a94f5dd692 | ||
|
|
0de36d331f | ||
|
|
de713c564f | ||
|
|
7e3cb3ba31 | ||
|
|
6ada5e5b26 | ||
|
|
aee6b28469 | ||
|
|
c08f31aa76 | ||
|
|
768e206c4a | ||
|
|
84fbee085d | ||
|
|
3126bf6561 | ||
|
|
e193b65bc7 | ||
|
|
fb43e49954 | ||
|
|
41575382ce | ||
|
|
62653d39b3 | ||
|
|
79cf34b72e | ||
|
|
5b3a462247 | ||
|
|
ee6fc5859c | ||
|
|
f13bf59a82 | ||
|
|
f9868b6100 | ||
|
|
f9e7af6e90 | ||
|
|
9030435ba4 | ||
|
|
47cfe7a877 | ||
|
|
a182174fba | ||
|
|
ef91fce621 | ||
|
|
7d47aebfc5 | ||
|
|
b805dbf4b9 | ||
|
|
3847388ed0 | ||
|
|
d6ff9a0297 | ||
|
|
9fa5f16ca0 | ||
|
|
5d7fb0e388 | ||
|
|
9dd37ac9e2 | ||
|
|
32c66e9d1a | ||
|
|
ef341d4333 | ||
|
|
79bc81317d | ||
|
|
33a2e068f6 | ||
|
|
9a3e98ac8f | ||
|
|
e03248929d | ||
|
|
1ed2935eb6 | ||
|
|
50e35de609 | ||
|
|
17180d31d7 | ||
|
|
65f101e7bb | ||
|
|
58de839621 | ||
|
|
787252ef81 | ||
|
|
b80180df22 | ||
|
|
e0bb6183a6 | ||
|
|
20dd2c0b58 | ||
|
|
8a4a6b2023 | ||
|
|
ca2533cafa | ||
|
|
fb7a8b7696 | ||
|
|
3c6d87b52b | ||
|
|
a4b58f4d83 | ||
|
|
ddbac1ad9f | ||
|
|
07772ef5a2 | ||
|
|
57c79c7133 | ||
|
|
05e0e842d6 | ||
|
|
93ea9d7c36 | ||
|
|
b6fa68370b | ||
|
|
bd3eedbda9 | ||
|
|
581c95d093 | ||
|
|
cd9821f87e | ||
|
|
10881587e9 | ||
|
|
5f6b60370d | ||
|
|
1bfe4513ac | ||
|
|
b97ae0246d | ||
|
|
8bc0188c53 | ||
|
|
66ca9a355b | ||
|
|
ec62b5f03c | ||
|
|
3467ca5230 | ||
|
|
d5b21021fb | ||
|
|
4656d25590 | ||
|
|
b1f0f33204 | ||
|
|
d353c13bf1 | ||
|
|
8872a6a24a | ||
|
|
8b0de948d0 | ||
|
|
2e7da36af0 | ||
|
|
38c295427a | ||
|
|
2025cc7747 | ||
|
|
e5fd579935 | ||
|
|
3bd97650dc | ||
|
|
1e8bb5e852 | ||
|
|
6722eedf7a | ||
|
|
53dfdbda08 | ||
|
|
e857ab762c | ||
|
|
14f5d2a489 | ||
|
|
07456ee174 | ||
|
|
b128431128 | ||
|
|
d606ad99b7 | ||
|
|
3598df0d28 | ||
|
|
b90017ff15 | ||
|
|
6bfc90bbe1 | ||
|
|
4e6c2fdd1c | ||
|
|
25439702bb | ||
|
|
145fb69bdd | ||
|
|
f759bfb1f6 | ||
|
|
fb87d97d25 | ||
|
|
0a4614247f | ||
|
|
790eeb1a09 | ||
|
|
6640e709f8 | ||
|
|
c4ecf40d1c | ||
|
|
02ab1fded2 | ||
|
|
b2eebeee18 | ||
|
|
f2bd4a4b5c | ||
|
|
ecfefd6b21 | ||
|
|
50e430d8dc | ||
|
|
96cc5154cd | ||
|
|
e9f0f84152 | ||
|
|
7eb14ad12c | ||
|
|
e5641fe71c | ||
|
|
0b3c0f4a77 | ||
|
|
3987621b12 | ||
|
|
be5aa59e39 | ||
|
|
ecc86def9e | ||
|
|
358b676d04 | ||
|
|
fece64039d | ||
|
|
b93f98252b | ||
|
|
9063a96629 | ||
|
|
9b2fa966f1 | ||
|
|
d2e28122b3 | ||
|
|
ebb08a57c8 | ||
|
|
030fc041be | ||
|
|
6e922166e7 | ||
|
|
f94abb5611 | ||
|
|
8f4953c182 | ||
|
|
0771549ef3 | ||
|
|
445a5b4f38 | ||
|
|
c2fccb7e14 | ||
|
|
d3cf60fafb | ||
|
|
6c5c3c3454 | ||
|
|
82a27d7fa3 | ||
|
|
2ea7ad6d7b | ||
|
|
3a30feaa52 | ||
|
|
98c9dd23d5 | ||
|
|
fb0bbf31c4 | ||
|
|
e87c44c38b | ||
|
|
371ea7c078 | ||
|
|
0e00677851 | ||
|
|
7f50fb3023 | ||
|
|
9dc61307fa | ||
|
|
83d9ca080a | ||
|
|
a8a5d9e053 | ||
|
|
d6a226e6bd | ||
|
|
5bab9a7e34 | ||
|
|
81c2bf6814 | ||
|
|
e69f7602ea | ||
|
|
d2e4d3bc1c | ||
|
|
0e2ee5f127 | ||
|
|
dd7ae83226 | ||
|
|
48a16464d5 | ||
|
|
76d4a4f3fe | ||
|
|
8afdbab9d5 | ||
|
|
9235c0dcfa | ||
|
|
ff8f617fc6 | ||
|
|
95b09cde60 | ||
|
|
c26cde2f6f | ||
|
|
181efcfbae | ||
|
|
d291a7cccd | ||
|
|
5c722f31ff | ||
|
|
c56b54eddd | ||
|
|
4d02d28aef | ||
|
|
cb061d80fa | ||
|
|
9b055171ab | ||
|
|
3df214c56e | ||
|
|
d69084f31e | ||
|
|
02a185f2fe | ||
|
|
53f44c5459 | ||
|
|
137665685d | ||
|
|
3d1c2fa5f1 | ||
|
|
6dad8e695e | ||
|
|
1eb82d97ae | ||
|
|
a17a9521b4 | ||
|
|
2dc1c5c618 | ||
|
|
d5a07a446d | ||
|
|
7232c01a80 | ||
|
|
b8f7025f2a | ||
|
|
73e4fcafdc | ||
|
|
45661dd960 | ||
|
|
18ba570c74 | ||
|
|
5923417654 | ||
|
|
8b99a72f2c | ||
|
|
981bd94615 | ||
|
|
083dd4eeec | ||
|
|
8d4d16bde1 | ||
|
|
8e218f12b4 | ||
|
|
3dcf194960 | ||
|
|
ee9f781adc | ||
|
|
e5eb617447 | ||
|
|
864057e8ee | ||
|
|
cb51ad929e | ||
|
|
83c20f5d5d | ||
|
|
ff93ace4cc | ||
|
|
ae3158ff00 | ||
|
|
3bec9c5eb4 | ||
|
|
964a3bc35b | ||
|
|
ed51a8794d | ||
|
|
b8556671c5 | ||
|
|
6b2c8539a3 | ||
|
|
e165c42377 | ||
|
|
845bb3fa09 | ||
|
|
0abaff5aed | ||
|
|
e4837af72e | ||
|
|
82f51fb476 | ||
|
|
f012dd5f31 | ||
|
|
c94d5c1a9a | ||
|
|
9eb449484e | ||
|
|
5aed7a375d | ||
|
|
aa82513c7e | ||
|
|
4107c64ac2 | ||
|
|
a8e578f5b8 | ||
|
|
6d74d5f8b7 | ||
|
|
ff214c48f5 | ||
|
|
a012522e88 | ||
|
|
9036f14e84 | ||
|
|
e450f31588 | ||
|
|
7c15c6847b | ||
|
|
9cb26c8748 | ||
|
|
1396a26b6d | ||
|
|
8d88e3be11 | ||
|
|
c98e977533 | ||
|
|
189e7e628b | ||
|
|
1d43870433 | ||
|
|
33920d72f6 | ||
|
|
4b8985f850 | ||
|
|
0be1d8e854 | ||
|
|
db3db2c49e | ||
|
|
fb2f063f58 | ||
|
|
1853e55431 | ||
|
|
d90cd33541 | ||
|
|
45b62e9866 | ||
|
|
6b509a1222 | ||
|
|
316a1b835f | ||
|
|
ddc20e2a60 | ||
|
|
104a4150ae | ||
|
|
e046a72750 | ||
|
|
df3fb83da3 | ||
|
|
7ee534388b | ||
|
|
c84d279d69 | ||
|
|
21ee1828b3 | ||
|
|
96ef7b4075 | ||
|
|
f14e725d13 | ||
|
|
f1ff09f303 | ||
|
|
c8b26a1002 | ||
|
|
5c341154b7 | ||
|
|
8684fae473 | ||
|
|
7c1eafd050 | ||
|
|
0243ec0096 | ||
|
|
ce36dec767 | ||
|
|
b8d4866824 | ||
|
|
69bb020e5c | ||
|
|
c988f4d093 | ||
|
|
62d48014c9 | ||
|
|
d3cc6f594b | ||
|
|
32dab7a1ba | ||
|
|
a46b718b4a | ||
|
|
d6931252c1 | ||
|
|
aefb782892 | ||
|
|
3d20a64502 | ||
|
|
be34c84704 | ||
|
|
534155fcd5 | ||
|
|
f569fddf15 | ||
|
|
41d6995da4 | ||
|
|
8757c8cae0 | ||
|
|
e899fece3c | ||
|
|
659e71e150 | ||
|
|
a70f3fe622 | ||
|
|
c8a3471135 | ||
|
|
740b221769 | ||
|
|
e455453bcd | ||
|
|
7a2866feb9 | ||
|
|
c631858ab3 | ||
|
|
8dd616462a | ||
|
|
03ee99281f | ||
|
|
fa1e383db1 | ||
|
|
976c818406 | ||
|
|
3ecbfae371 | ||
|
|
5845a1ec7a | ||
|
|
edcf516cef | ||
|
|
8644a5ead9 | ||
|
|
eaeb495349 | ||
|
|
1b602495b1 | ||
|
|
b2a0031fe1 | ||
|
|
5fc37032ad | ||
|
|
65a500c047 | ||
|
|
4382e8aaee | ||
|
|
3487960559 | ||
|
|
b7aa0db66d | ||
|
|
7262291dda | ||
|
|
08da6b6185 | ||
|
|
bc835950b3 | ||
|
|
b751c74374 | ||
|
|
ed0cc7a23a | ||
|
|
df5ffb5a6d | ||
|
|
74454567bc | ||
|
|
c87f06100b | ||
|
|
da988c85e4 | ||
|
|
8eaabceb0c | ||
|
|
ec2adc4516 | ||
|
|
b58e85c5cb | ||
|
|
233c3d2c98 | ||
|
|
60079d4206 | ||
|
|
9177c1176c | ||
|
|
7a75592898 | ||
|
|
4d6dc14156 | ||
|
|
2c54cf9e39 | ||
|
|
1e9e9538b9 | ||
|
|
e739d1b850 | ||
|
|
4081555048 | ||
|
|
992bd15f4a | ||
|
|
c173a67bae | ||
|
|
7f78c75246 | ||
|
|
853661f3bb | ||
|
|
e4a7dc6998 | ||
|
|
7f82cecf6c | ||
|
|
0625669352 | ||
|
|
e77e67db70 | ||
|
|
9c7feb3150 | ||
|
|
d95db207bf | ||
|
|
0296919dfb | ||
|
|
0cbc85f81f | ||
|
|
2c84cb6702 | ||
|
|
b2b0536e08 | ||
|
|
03ff2cebdd | ||
|
|
74f85756a5 | ||
|
|
a204629a9d | ||
|
|
050f04bed7 | ||
|
|
e72422976d | ||
|
|
723d269915 | ||
|
|
0930d7dbea | ||
|
|
1abe5771fd | ||
|
|
6c6178b7d9 | ||
|
|
2d763238d3 | ||
|
|
d34fda26d3 | ||
|
|
78e80cd2b2 | ||
|
|
76728abc86 | ||
|
|
4e1422da6b | ||
|
|
c2ad79f05a | ||
|
|
4a060c6d8b | ||
|
|
265c14d697 | ||
|
|
e36b63f38c | ||
|
|
13cc13924e | ||
|
|
7673d2aa51 | ||
|
|
3667507ee8 | ||
|
|
95f0aaac68 | ||
|
|
ad67096b9a | ||
|
|
69c133e868 | ||
|
|
c34e78cfc4 | ||
|
|
34b3d069f8 | ||
|
|
e3a3dec8a2 | ||
|
|
700515cce3 | ||
|
|
e36d972d94 | ||
|
|
f3a47a2ae5 | ||
|
|
b071c14066 | ||
|
|
90d51cf328 | ||
|
|
5fae676f7c | ||
|
|
4ffbe03f58 | ||
|
|
5ea6a602ca | ||
|
|
41fc17a62a | ||
|
|
220b553a97 | ||
|
|
8db2ddd276 | ||
|
|
0d64c5fb83 | ||
|
|
047d37b417 | ||
|
|
0a92bccc4e | ||
|
|
96b56fd901 | ||
|
|
db67a1f809 | ||
|
|
6bfb15ce7b | ||
|
|
f3a5a31ccf | ||
|
|
aa47b56a54 | ||
|
|
0d25d33fe5 | ||
|
|
da0d9b5989 | ||
|
|
6c3b226e58 | ||
|
|
8273fba131 | ||
|
|
c99ca372d6 | ||
|
|
324774ec2f | ||
|
|
da25f49cd7 | ||
|
|
99b20e49c3 | ||
|
|
76370c40bc | ||
|
|
64c8f3dbe3 | ||
|
|
ae44efcebf | ||
|
|
d7fd2cc483 | ||
|
|
967623c784 | ||
|
|
b4020bb715 | ||
|
|
17502349d5 | ||
|
|
f5a58258f9 | ||
|
|
4fc0c3603c | ||
|
|
0d483ab5f3 | ||
|
|
202ada7c23 | ||
|
|
d7c0e3ddc9 | ||
|
|
2bb0bf3473 | ||
|
|
a662080ffe | ||
|
|
4af53fabbc | ||
|
|
57803f7a41 | ||
|
|
14f70beac2 | ||
|
|
2c56baae02 | ||
|
|
8853496b1b | ||
|
|
7dc82e2e7a | ||
|
|
177896b4be | ||
|
|
0e2a911b57 | ||
|
|
2b526f3ea1 | ||
|
|
154f55fafd | ||
|
|
31cc29ad51 | ||
|
|
71786116d8 | ||
|
|
3c0d0c13a9 | ||
|
|
3d48880240 | ||
|
|
1e977b50df | ||
|
|
aaf373ecad | ||
|
|
ac93044286 | ||
|
|
e754e85ab6 | ||
|
|
eeeafe050b | ||
|
|
ceb06b7cca | ||
|
|
319f8e7f95 | ||
|
|
6dc7592389 | ||
|
|
fd8b36eb1c | ||
|
|
db64cb7ca4 | ||
|
|
527e8306b2 | ||
|
|
7e814247ec | ||
|
|
905ce347da | ||
|
|
4ee20b3b61 | ||
|
|
2d8a816125 | ||
|
|
0db7b03566 | ||
|
|
96f374ed69 | ||
|
|
c08d7d915d | ||
|
|
04b1678c7f | ||
|
|
85fca9dee8 | ||
|
|
58325bfb73 | ||
|
|
8d8580a213 | ||
|
|
d2f4bb2dd3 | ||
|
|
a3c80b7178 | ||
|
|
74b45322b2 | ||
|
|
3d6984e8e3 | ||
|
|
5bfa052a48 | ||
|
|
456f9833fa | ||
|
|
dfb0eb5233 | ||
|
|
2f0d3f1313 | ||
|
|
5eae913803 | ||
|
|
afb9fdf4ec | ||
|
|
647c7d7629 | ||
|
|
52ce709840 | ||
|
|
1b9bd33692 | ||
|
|
aa54032500 | ||
|
|
351f9b32ea | ||
|
|
abb8413c16 | ||
|
|
2bdaf5026d | ||
|
|
511a192d8b | ||
|
|
c3ebe1f591 | ||
|
|
1119098eec | ||
|
|
8d5717b812 | ||
|
|
9f5211061e | ||
|
|
38efebb8d3 | ||
|
|
a4d8e9e4e5 | ||
|
|
2baa77a93f | ||
|
|
c051492286 | ||
|
|
fe3f0be920 | ||
|
|
63b696ff6c | ||
|
|
6785d75ad2 | ||
|
|
78ae1ada3c | ||
|
|
d77ab891a0 | ||
|
|
9fc7435ea2 | ||
|
|
b2da66d670 | ||
|
|
5ade4b2bcf | ||
|
|
1b6cb2da68 | ||
|
|
0311a3a1be | ||
|
|
7d7079a389 | ||
|
|
8f578f7378 | ||
|
|
ab4019a612 | ||
|
|
ab55f2b938 | ||
|
|
075f568f61 | ||
|
|
9b0abbe52c | ||
|
|
33c2806ffb | ||
|
|
244d3c98b6 | ||
|
|
ce66bfbd6c | ||
|
|
e1e8d9777b | ||
|
|
b3ab4231bc | ||
|
|
d23c02b196 | ||
|
|
174061db57 | ||
|
|
63bbbfb839 | ||
|
|
3a1886e80e | ||
|
|
c2bf929e63 | ||
|
|
a316face83 | ||
|
|
9ad9c82c85 | ||
|
|
80d0f196c4 | ||
|
|
56ca1bc7ee | ||
|
|
14824c2b77 | ||
|
|
fb6c01a0ea | ||
|
|
41de7e0a0e | ||
|
|
2d7f60efee | ||
|
|
2410fc9754 | ||
|
|
09619339fd | ||
|
|
bb87cf6996 | ||
|
|
aeb423ce1b | ||
|
|
2a65a43039 | ||
|
|
d0a99c4f2d | ||
|
|
514338ec8a | ||
|
|
53cfaa3c45 | ||
|
|
7487ac75f7 | ||
|
|
54e0aaf8e0 | ||
|
|
90897b0741 | ||
|
|
e73b7c973d | ||
|
|
985dd44b66 | ||
|
|
c198dd381f | ||
|
|
e80bd9b4e5 | ||
|
|
3bf04095b1 | ||
|
|
912f953f85 | ||
|
|
93c2462089 | ||
|
|
a991960998 | ||
|
|
447373676b | ||
|
|
15b7af9a84 | ||
|
|
c315a59717 | ||
|
|
aedecfb06c | ||
|
|
15231615d4 | ||
|
|
2d093a8c2a | ||
|
|
030d5e04a3 | ||
|
|
d3fe023ec4 | ||
|
|
1139a3fa89 | ||
|
|
f67b4570a8 | ||
|
|
c0055ebbeb | ||
|
|
8bdf9d75cf | ||
|
|
d4dea52c6b | ||
|
|
d806707de0 | ||
|
|
15d8878ac0 | ||
|
|
2deb07a25b | ||
|
|
e0a872a7c5 | ||
|
|
48f3b90208 | ||
|
|
bc5129f839 | ||
|
|
fb5369f7d2 | ||
|
|
f6bcab18be | ||
|
|
a35a80ca4f | ||
|
|
0da2034a3e | ||
|
|
4ab94b397a | ||
|
|
e3e60bd372 | ||
|
|
d0a38df67a | ||
|
|
c3e34e5f05 | ||
|
|
514e042eec | ||
|
|
86d554b1dc | ||
|
|
57b34267c5 | ||
|
|
4fc49850e1 | ||
|
|
5e25844ea8 | ||
|
|
fc4da3e3bf | ||
|
|
0605d96014 | ||
|
|
37a912e7ee | ||
|
|
f33bddaadd | ||
|
|
5740274528 | ||
|
|
332640c4ba | ||
|
|
5c354dda23 | ||
|
|
9e1e7e0dbe | ||
|
|
8c17fafaca | ||
|
|
ac5e42d0dd | ||
|
|
e3dcaebe9b | ||
|
|
7fe65703f7 | ||
|
|
9d3b96e746 | ||
|
|
e47c22a23e | ||
|
|
06818761ef | ||
|
|
6419fc73f5 | ||
|
|
c62b4ed9b1 | ||
|
|
f6255906d8 | ||
|
|
f64fefa9ae | ||
|
|
2f5fc5a764 | ||
|
|
ba7991deba | ||
|
|
594d510f4f | ||
|
|
453b7d1007 | ||
|
|
7ac350ea36 | ||
|
|
b3bb2d2aa5 | ||
|
|
9139dcbd1e | ||
|
|
14b0e85850 | ||
|
|
8c1d2a4555 | ||
|
|
009e01c1b0 | ||
|
|
0d85a46e84 | ||
|
|
d05b221a6c | ||
|
|
54f4563303 | ||
|
|
7aea7f9400 | ||
|
|
9abda76d9e | ||
|
|
42582c7ccd | ||
|
|
c88a59c228 | ||
|
|
b54f949fe6 | ||
|
|
a966cc7dec | ||
|
|
55cacfba82 | ||
|
|
3bc1eef39b | ||
|
|
ee7add05ae | ||
|
|
e7d1c04bb5 | ||
|
|
247a3cebb9 | ||
|
|
5bf0b7d652 | ||
|
|
0b5fe1232f | ||
|
|
03be7eb32c | ||
|
|
3a808411f5 | ||
|
|
2524c5f861 | ||
|
|
db5f4193ec | ||
|
|
11b0cc8211 | ||
|
|
285c4f91d3 | ||
|
|
084ebe6e16 | ||
|
|
e67147213b | ||
|
|
85c0b8dea3 | ||
|
|
aec3c9961c | ||
|
|
c7aafd8410 | ||
|
|
c0720d5d24 | ||
|
|
ec0dd63470 | ||
|
|
2269c94579 | ||
|
|
e36baa8c3a | ||
|
|
d47c9d8b6e | ||
|
|
93a381218c | ||
|
|
095130a569 | ||
|
|
5472dc78d7 | ||
|
|
1d2f5bafda | ||
|
|
47df5d2d60 | ||
|
|
d3c1072842 | ||
|
|
d904212033 | ||
|
|
0cdebcce89 | ||
|
|
495090c9ba | ||
|
|
f41a70fe1f | ||
|
|
bdbf0427a1 | ||
|
|
d484a1cd85 | ||
|
|
4b7561a75e | ||
|
|
31af7c583f | ||
|
|
2d0ea28a39 | ||
|
|
0f475a0e10 | ||
|
|
f3bae5c090 | ||
|
|
ca2767fd04 | ||
|
|
c659c81341 | ||
|
|
7eab0eca5b | ||
|
|
5c3e2dca17 | ||
|
|
95c45362d5 | ||
|
|
8efce30d7f | ||
|
|
44a727b205 | ||
|
|
662942ec29 | ||
|
|
83996c09d9 | ||
|
|
e46f436a47 | ||
|
|
3cbaa95184 | ||
|
|
8c75bed687 | ||
|
|
481476f835 | ||
|
|
680a0191be | ||
|
|
3abf1458fb | ||
|
|
00b7cc512b | ||
|
|
2a58de5cfc | ||
|
|
c3b000a368 | ||
|
|
675bebee33 | ||
|
|
cefd744aba | ||
|
|
325c9662c5 | ||
|
|
8b35a7b10f | ||
|
|
456aebe240 | ||
|
|
66e20298a7 | ||
|
|
a6155c98ec | ||
|
|
a26473b722 | ||
|
|
ed5162ef4e | ||
|
|
930deaea9d | ||
|
|
b80be62bb7 | ||
|
|
11806f2aa2 | ||
|
|
0d229f015b | ||
|
|
078d156824 | ||
|
|
88c4cb6eba | ||
|
|
bc4f8c4c2a | ||
|
|
7ee205a447 | ||
|
|
f6c49a2472 | ||
|
|
37fe3ac676 | ||
|
|
2926154dce | ||
|
|
200124569b | ||
|
|
662a6297e7 | ||
|
|
04bca93e0d | ||
|
|
e56b16f7d1 | ||
|
|
5c6a265b86 | ||
|
|
b0a3bd6591 | ||
|
|
8b7a941a6e | ||
|
|
394d4cf856 | ||
|
|
22b7298542 | ||
|
|
9d1a3c9011 | ||
|
|
c2aa8137bb | ||
|
|
4d0b02c683 | ||
|
|
c7146e62a0 | ||
|
|
d9409232f9 | ||
|
|
0df6f85843 | ||
|
|
13dd8e2c76 | ||
|
|
9d387c32a5 | ||
|
|
f5fc86258f | ||
|
|
321f16d8a3 | ||
|
|
d57a10e0b2 | ||
|
|
202f0e2163 | ||
|
|
77d8fe3ef1 | ||
|
|
3e5833e9f2 | ||
|
|
2b26be73f6 | ||
|
|
ce6338b853 | ||
|
|
52c5293a12 | ||
|
|
568e1f4f90 | ||
|
|
29f05c09d6 | ||
|
|
888a77b4bb | ||
|
|
4eeb7989f6 | ||
|
|
3764a5d4b7 | ||
|
|
1f3321fb37 | ||
|
|
189b7236af | ||
|
|
37b5de2251 | ||
|
|
8855cc294e | ||
|
|
935b85afe7 | ||
|
|
a819add7b0 | ||
|
|
883ee4ec75 | ||
|
|
4504ff954a | ||
|
|
68f19f9558 | ||
|
|
d55d3658f0 | ||
|
|
3481283af8 | ||
|
|
738b59fd42 | ||
|
|
c340032bd1 | ||
|
|
de597d4f5d | ||
|
|
854b537695 | ||
|
|
f4816b99ff | ||
|
|
56ae96fc75 | ||
|
|
f8643e9a96 | ||
|
|
a7f0b11002 | ||
|
|
5586a02b34 | ||
|
|
670f02acf8 | ||
|
|
ff70af3f34 | ||
|
|
6f47a9b8c3 | ||
|
|
a94208e230 | ||
|
|
4386d45a97 | ||
|
|
c269abd434 | ||
|
|
152f28bf2a | ||
|
|
f940dfdd79 | ||
|
|
7924a149b4 | ||
|
|
cf00ac34d9 | ||
|
|
a50e9d2b6b | ||
|
|
e2ef885aa6 | ||
|
|
fc844567a6 | ||
|
|
f97395f40f | ||
|
|
b65fdf6ab0 | ||
|
|
22c024cc94 | ||
|
|
b99e87ba0a | ||
|
|
a24c3ada53 | ||
|
|
e82a95a0b5 | ||
|
|
b023cc790b | ||
|
|
d3811e3287 | ||
|
|
5aec6840bf | ||
|
|
17c4839029 | ||
|
|
26f377decf | ||
|
|
004ccc47b3 | ||
|
|
fbd7860a9b | ||
|
|
586533d6ea | ||
|
|
c8bd89ce4c | ||
|
|
1a9b86b27f | ||
|
|
56300f9578 | ||
|
|
77e2ceba9e | ||
|
|
50271b7123 | ||
|
|
409bb5ff4d | ||
|
|
fa1059e202 | ||
|
|
f8e00e43e3 | ||
|
|
89c5be39d1 | ||
|
|
c8e87cb5a2 | ||
|
|
627ebb848d | ||
|
|
54cafec57a | ||
|
|
1405859d2c | ||
|
|
24e16e5c18 | ||
|
|
9c7783b439 | ||
|
|
a21bbd15c5 | ||
|
|
b6c002b587 | ||
|
|
9c3e4a1202 | ||
|
|
97cc7f88ef | ||
|
|
5a5b0568f2 | ||
|
|
bddab533a3 | ||
|
|
5106809394 | ||
|
|
290bf54d4f | ||
|
|
c68c54618f | ||
|
|
3788fde711 | ||
|
|
9289d1a57d | ||
|
|
d6942a455d | ||
|
|
c8af65fff4 | ||
|
|
94aa5b5f1b | ||
|
|
38e0b26153 | ||
|
|
d2a676cad2 | ||
|
|
33cf966f34 | ||
|
|
760b961e19 | ||
|
|
2660e70e00 | ||
|
|
f3f608b35f | ||
|
|
34a3ef7e1d | ||
|
|
604d4e0a51 | ||
|
|
762f6aaf0f | ||
|
|
3600d1c667 | ||
|
|
504a575feb | ||
|
|
ec5c960ebb | ||
|
|
1f26a17b29 | ||
|
|
8a7477f50c | ||
|
|
17e0d3f8a0 | ||
|
|
97116bb268 | ||
|
|
cf47b919d5 | ||
|
|
7dd85533e8 | ||
|
|
af99ac3293 | ||
|
|
843505f6a9 | ||
|
|
707cb47e10 | ||
|
|
67746b021a | ||
|
|
bfb60265cb | ||
|
|
2f5bfd9694 | ||
|
|
fbd9ba32aa | ||
|
|
3164655a21 | ||
|
|
b16dcbc057 | ||
|
|
1e4997c2c2 | ||
|
|
dc3f7f3cd1 | ||
|
|
0ea8efcaf4 | ||
|
|
fbbca2e466 | ||
|
|
2961e1949f | ||
|
|
304d281ed2 | ||
|
|
cc1ee16dec | ||
|
|
9c38794ad5 | ||
|
|
6b24aff6c5 | ||
|
|
091dfd6e54 | ||
|
|
527e5be86c | ||
|
|
e746d2331e | ||
|
|
0c7b15db47 | ||
|
|
7cc8fed61b | ||
|
|
4bc99b7f01 | ||
|
|
54a9ccdee7 | ||
|
|
25bfb52e7e | ||
|
|
8e66665bbd | ||
|
|
10c6f24a83 | ||
|
|
b69daf1041 | ||
|
|
e24ffeea44 | ||
|
|
68706a9209 | ||
|
|
db3bd1dbf0 | ||
|
|
89efbd0a71 | ||
|
|
fb1afdab1c | ||
|
|
608a359e0a | ||
|
|
0ff5d61189 | ||
|
|
c37c50e1e0 | ||
|
|
e0ae266bb2 | ||
|
|
33446bf4ff | ||
|
|
9835e2e0b4 | ||
|
|
f08b0f7800 | ||
|
|
95c746936a | ||
|
|
bb6aabc017 | ||
|
|
1a0c0af447 | ||
|
|
491bb4fd1d | ||
|
|
a3e2698223 | ||
|
|
380625241e | ||
|
|
452fe44795 | ||
|
|
b0d115a64a | ||
|
|
e80c4fadea | ||
|
|
04ed2a3d09 | ||
|
|
cc4890f0b8 | ||
|
|
7924ee65e0 | ||
|
|
0aaae9bca5 | ||
|
|
fb7a071c2a | ||
|
|
a24c42b3a8 | ||
|
|
1ccffb7e58 | ||
|
|
41c7d0cb41 | ||
|
|
4e7a1e9653 | ||
|
|
0061d9ad6c | ||
|
|
2a402985aa | ||
|
|
8c315c7e0b | ||
|
|
f72b44650b | ||
|
|
8da2a29f86 | ||
|
|
72563e6114 | ||
|
|
7153d03660 | ||
|
|
fd63aac406 | ||
|
|
123ad19b28 | ||
|
|
28132eaf36 | ||
|
|
0c43edb629 | ||
|
|
43578d2366 | ||
|
|
59f1cc3922 | ||
|
|
63bedc440b | ||
|
|
bbdafeff77 | ||
|
|
d02ae30023 | ||
|
|
58b7530134 | ||
|
|
4f384b2325 | ||
|
|
93f05ceea3 | ||
|
|
6fc173eaa9 | ||
|
|
15e5f13969 | ||
|
|
5f4d011606 | ||
|
|
9da799c2dd | ||
|
|
21b693f3c8 | ||
|
|
a7ac003064 | ||
|
|
9ec1f9b07d | ||
|
|
57f1dd1d68 | ||
|
|
a346cf393d | ||
|
|
c825ab0fa3 | ||
|
|
c4dc59dc41 | ||
|
|
43b3c013f2 | ||
|
|
c0a5c28d80 | ||
|
|
6e477b66c6 | ||
|
|
c28d9e5cde | ||
|
|
0bd68ce068 | ||
|
|
c3a0c26610 | ||
|
|
f2e66590da | ||
|
|
7cb59bddb0 | ||
|
|
f7a26ddb91 | ||
|
|
26269986f5 | ||
|
|
cecaca61a3 | ||
|
|
e4f7cbe85c | ||
|
|
08be00a154 | ||
|
|
5132d2132b | ||
|
|
1b24e643de | ||
|
|
21d7c4d92a | ||
|
|
aab044a14c | ||
|
|
ee35fdb483 | ||
|
|
82756ffc6b | ||
|
|
eff2c140f6 | ||
|
|
7130f4aee8 | ||
|
|
eb40de4670 | ||
|
|
67ca1515d8 | ||
|
|
1ab5ff079c | ||
|
|
38cdc0782d | ||
|
|
ef6fcaf703 | ||
|
|
4c8f77bb80 | ||
|
|
e788f23148 | ||
|
|
07cc5dc6c9 | ||
|
|
58f2e51af5 | ||
|
|
1e5fabed97 | ||
|
|
63c4a14dc2 | ||
|
|
3c9210e376 | ||
|
|
1e7007423b | ||
|
|
4657f89b3e | ||
|
|
cb235a29fa | ||
|
|
1e2e4397f7 | ||
|
|
84c5ce1b4e | ||
|
|
42e601005f | ||
|
|
311bdf71fb | ||
|
|
4949f2f763 | ||
|
|
ae6c985d39 | ||
|
|
509c833896 | ||
|
|
53a793b8fd | ||
|
|
b00cf8c939 | ||
|
|
45ed5b13ca | ||
|
|
6f15c67d0b | ||
|
|
0a55c87dd3 | ||
|
|
ed3a6d29ac | ||
|
|
2893cee685 | ||
|
|
bbcf74f774 | ||
|
|
bfb4ae3083 | ||
|
|
26231e458e | ||
|
|
10b17b7fd0 | ||
|
|
5e7faf3083 | ||
|
|
9664b4d176 | ||
|
|
7ab693d776 | ||
|
|
ffada4f6fe | ||
|
|
1fc44a32c0 | ||
|
|
3a2c778e1c | ||
|
|
a9cd62633e | ||
|
|
a583c2b658 | ||
|
|
0cfd34ac9f | ||
|
|
142a9d7549 | ||
|
|
492f923d1b | ||
|
|
bd89fe59c0 | ||
|
|
86509abbfb | ||
|
|
148ace93ca | ||
|
|
9f61cb8137 | ||
|
|
8bd66b93c5 | ||
|
|
b254ee4190 | ||
|
|
3e72d8d969 | ||
|
|
fcd58a2544 | ||
|
|
ca4b71b6e2 | ||
|
|
c8dd31ba28 | ||
|
|
aceabd6d28 | ||
|
|
81ef9b143c | ||
|
|
93eab05239 | ||
|
|
55170aa2a7 | ||
|
|
534504b618 | ||
|
|
e4fcf24f44 | ||
|
|
bea95fde3a | ||
|
|
cf2850834e | ||
|
|
e3bdcf4d0d | ||
|
|
940f229102 | ||
|
|
a22cd487a0 | ||
|
|
69b8ff8668 | ||
|
|
03f1f7f75a | ||
|
|
e540fd40cb | ||
|
|
a7a9433ef9 | ||
|
|
977599a660 | ||
|
|
7570ce580f | ||
|
|
564ea8bfb2 | ||
|
|
261f91da6e | ||
|
|
557fd8f734 | ||
|
|
809dd0856f | ||
|
|
0a80774066 | ||
|
|
5abee4fddc | ||
|
|
47d9e7f2a1 | ||
|
|
d7ceddfe61 | ||
|
|
42bb54b202 | ||
|
|
7a42e844d1 | ||
|
|
43fb359d8f | ||
|
|
31e0cde900 | ||
|
|
53143cb033 | ||
|
|
7eeb7babc4 | ||
|
|
883ec159e2 | ||
|
|
1b21b8cce2 | ||
|
|
83373bcf6e | ||
|
|
29abb5eed0 | ||
|
|
25bff3f4b1 | ||
|
|
71d0ecf37d | ||
|
|
2fa1f16284 | ||
|
|
d4128af224 | ||
|
|
63607f29e7 | ||
|
|
d14285eb08 | ||
|
|
555847e5e9 | ||
|
|
816042d3a8 | ||
|
|
9a0bbfb871 | ||
|
|
adedf23cfb | ||
|
|
69939e2fe3 | ||
|
|
923295973b | ||
|
|
8ef3811f28 | ||
|
|
8f289519e1 | ||
|
|
df58bdd529 | ||
|
|
1b7e42f5e8 | ||
|
|
f1c81be633 | ||
|
|
ccf52b2a69 | ||
|
|
f6177cd7b5 | ||
|
|
5d3caf8157 | ||
|
|
b87fad991f | ||
|
|
5063fef4f5 | ||
|
|
b9e2b59504 | ||
|
|
8ad9728bef | ||
|
|
d4696345d1 | ||
|
|
7e9b63822b | ||
|
|
ce2d40b775 | ||
|
|
c26aaa8d01 | ||
|
|
ca0092469b | ||
|
|
3ffebfbf0b | ||
|
|
b65ee5f28e | ||
|
|
1798bff8f5 | ||
|
|
26d142f893 | ||
|
|
468f8ccab8 | ||
|
|
50b348c68e | ||
|
|
ca74b09867 | ||
|
|
b9cf2c6b6c | ||
|
|
ad9d78684e | ||
|
|
e5b1ded7e3 | ||
|
|
a8f2980dcc | ||
|
|
8f0f34e761 | ||
|
|
ebbb677f2c | ||
|
|
13c1829cd4 | ||
|
|
6212e805d2 | ||
|
|
225c7ee621 | ||
|
|
f86b616769 | ||
|
|
ea19096db3 | ||
|
|
a152eba023 | ||
|
|
953398b486 | ||
|
|
79a9f2168b | ||
|
|
6c796cd311 | ||
|
|
45ca890f68 | ||
|
|
53185fc23d | ||
|
|
9d86716b0f | ||
|
|
eedcda1d0e | ||
|
|
29cfbba2ce | ||
|
|
73e7fe2764 | ||
|
|
b053f08991 | ||
|
|
190811ac1c | ||
|
|
01b3d6128c | ||
|
|
b28192cc0b | ||
|
|
cd31e6532b | ||
|
|
6fa2d35630 | ||
|
|
528a856d54 | ||
|
|
ef5fc7347a | ||
|
|
deb50b2d43 | ||
|
|
e2b02ad60d | ||
|
|
1ca041c59c | ||
|
|
6f968522f5 | ||
|
|
9d17ed7407 | ||
|
|
bd76251fb5 | ||
|
|
65185a5fd0 | ||
|
|
fb358d8fd6 | ||
|
|
5c51797420 | ||
|
|
332a5b49a5 | ||
|
|
1deadf5aad | ||
|
|
5020307a6c | ||
|
|
85040a2e6d |
2
.github/ISSUE_TEMPLATE.md
vendored
@@ -1,3 +1,5 @@
|
||||
<!-- 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.
|
||||
|
||||
55
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!-- 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**: 0.x.y <!-- check the user settings panel if unsure -->
|
||||
3
.gitignore
vendored
@@ -16,4 +16,7 @@ electron/dist
|
||||
electron/pub
|
||||
**/.idea
|
||||
/config.json
|
||||
/config.json.*
|
||||
/config.local*.json
|
||||
/src/component-index.js
|
||||
/.tmp
|
||||
|
||||
30
.travis.yml
@@ -3,30 +3,26 @@ dist: trusty
|
||||
|
||||
# we don't need sudo, so can run in a container, which makes startup much
|
||||
# quicker.
|
||||
sudo: false
|
||||
#
|
||||
# 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.
|
||||
# As of the time of writing:
|
||||
# - 4.x is still in LTS (until April 2018), but some of our deps (notably
|
||||
# extract-zip) don't work with it
|
||||
# - 5.x has been EOLed for nearly a year.
|
||||
# - 6.x is the active 'LTS' version
|
||||
# - 7.x is no longer supported
|
||||
# - 8.x is the current 'current' version (until October 2017)
|
||||
#
|
||||
# see: https://github.com/nodejs/LTS/
|
||||
#
|
||||
# anything before 6.3 ships with npm 3.9 or earlier, which had problems
|
||||
# with symlinks in node_modules (see
|
||||
# https://github.com/npm/npm/releases/tag/v3.10.0 'FIXES AND REFACTORING').
|
||||
- 6.3
|
||||
- 6
|
||||
- 7
|
||||
# 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.
|
||||
- scripts/fetch-develop.deps.sh --depth 1 && npm install
|
||||
- npm install && scripts/fetch-develop.deps.sh --depth 1
|
||||
script:
|
||||
- CHROME_BIN='/usr/bin/google-chrome-stable' npm run test
|
||||
- npm run lint
|
||||
|
||||
@@ -13,3 +13,6 @@ include:
|
||||
|
||||
* Michael Telatynski (https://github.com/t3chguy)
|
||||
Improved consistency of inverted elements in dark theme across browsers
|
||||
|
||||
* Alexandr Korsak (https://github.com/oivoodoo)
|
||||
Improved multiple file uploading
|
||||
|
||||
903
CHANGELOG.md
@@ -1,8 +1,903 @@
|
||||
Changes in [0.13.5-cryptowarning.1](https://github.com/vector-im/riot-web/releases/tag/v0.13.5-cryptowarning.1) (2018-03-26)
|
||||
============================================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.13.5...v0.13.5-cryptowarning.1)
|
||||
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)
|
||||
|
||||
* Disable e2e crypto with a big warning if the database schema is newer than we expect.
|
||||
* 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)
|
||||
|
||||
|
||||
Changes in [1.0.0](https://github.com/vector-im/riot-web/releases/tag/v1.0.0) (2019-02-14)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.0-rc.2...v1.0.0)
|
||||
|
||||
* Add snipping lines to welcome page without guests
|
||||
[\#8634](https://github.com/vector-im/riot-web/pull/8634)
|
||||
* Add home page to fix loading tests
|
||||
[\#8625](https://github.com/vector-im/riot-web/pull/8625)
|
||||
|
||||
Changes in [1.0.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.0.0-rc.2) (2019-02-14)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.0-rc.1...v1.0.0-rc.2)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#8615](https://github.com/vector-im/riot-web/pull/8615)
|
||||
* Replace favicon assets to ones with transparent backgrounds
|
||||
[\#8600](https://github.com/vector-im/riot-web/pull/8600)
|
||||
* Refreshed icons
|
||||
[\#8594](https://github.com/vector-im/riot-web/pull/8594)
|
||||
* Fix order of fetch-develop-deps / npm install
|
||||
[\#8566](https://github.com/vector-im/riot-web/pull/8566)
|
||||
* Revive building dark theme
|
||||
[\#8540](https://github.com/vector-im/riot-web/pull/8540)
|
||||
* Update from Weblate.
|
||||
[\#8546](https://github.com/vector-im/riot-web/pull/8546)
|
||||
* Repair app loading tests after welcome page
|
||||
[\#8525](https://github.com/vector-im/riot-web/pull/8525)
|
||||
* Support configurable welcome background and logo
|
||||
[\#8528](https://github.com/vector-im/riot-web/pull/8528)
|
||||
* Update from Weblate.
|
||||
[\#8518](https://github.com/vector-im/riot-web/pull/8518)
|
||||
* Document `embeddedPages` configuration
|
||||
[\#8514](https://github.com/vector-im/riot-web/pull/8514)
|
||||
* README.md : Syntax Coloring
|
||||
[\#8502](https://github.com/vector-im/riot-web/pull/8502)
|
||||
|
||||
Changes in [1.0.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.0-rc.1) (2019-02-08)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.9...v1.0.0-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#8475](https://github.com/vector-im/riot-web/pull/8475)
|
||||
* Add configurable welcome page
|
||||
[\#8466](https://github.com/vector-im/riot-web/pull/8466)
|
||||
* fix app tests after force enabling lazy loading + removing feature flag
|
||||
[\#8464](https://github.com/vector-im/riot-web/pull/8464)
|
||||
* Allow Electron to zoom with CommandOrControl+=
|
||||
[\#8381](https://github.com/vector-im/riot-web/pull/8381)
|
||||
* Hide sign in / create account for logged in users
|
||||
[\#8368](https://github.com/vector-im/riot-web/pull/8368)
|
||||
* Fix home page link target
|
||||
[\#8365](https://github.com/vector-im/riot-web/pull/8365)
|
||||
* Add auth background image and update Riot logo
|
||||
[\#8364](https://github.com/vector-im/riot-web/pull/8364)
|
||||
* New homepage
|
||||
[\#8363](https://github.com/vector-im/riot-web/pull/8363)
|
||||
* Spell homeserver correctly
|
||||
[\#8358](https://github.com/vector-im/riot-web/pull/8358)
|
||||
* Merge redesign into develop
|
||||
[\#8321](https://github.com/vector-im/riot-web/pull/8321)
|
||||
* Disable room directory test because it doesn't work
|
||||
[\#8318](https://github.com/vector-im/riot-web/pull/8318)
|
||||
* Tweak auth overflow on Windows and Linux
|
||||
[\#8307](https://github.com/vector-im/riot-web/pull/8307)
|
||||
* Clean up Custom Server Help dialog
|
||||
[\#8296](https://github.com/vector-im/riot-web/pull/8296)
|
||||
* Cache-bust olm.wasm
|
||||
[\#8283](https://github.com/vector-im/riot-web/pull/8283)
|
||||
* Completely disable other themes for now (#8277)
|
||||
[\#8280](https://github.com/vector-im/riot-web/pull/8280)
|
||||
* Remove support for team servers
|
||||
[\#8271](https://github.com/vector-im/riot-web/pull/8271)
|
||||
* Add target="_blank" to footer links
|
||||
[\#8248](https://github.com/vector-im/riot-web/pull/8248)
|
||||
* Fix device names on desktop
|
||||
[\#8241](https://github.com/vector-im/riot-web/pull/8241)
|
||||
* Fix literal </> in notifications
|
||||
[\#8238](https://github.com/vector-im/riot-web/pull/8238)
|
||||
* Fix registration nextLink on desktop
|
||||
[\#8239](https://github.com/vector-im/riot-web/pull/8239)
|
||||
* Add returns to fetch-develop-deps
|
||||
[\#8233](https://github.com/vector-im/riot-web/pull/8233)
|
||||
* Update electron builder
|
||||
[\#8231](https://github.com/vector-im/riot-web/pull/8231)
|
||||
* Try fetching more branches for PRs
|
||||
[\#8225](https://github.com/vector-im/riot-web/pull/8225)
|
||||
* Use content hashing for font and image URLs
|
||||
[\#8159](https://github.com/vector-im/riot-web/pull/8159)
|
||||
* Develop->Experimental
|
||||
[\#8156](https://github.com/vector-im/riot-web/pull/8156)
|
||||
* Update from Weblate.
|
||||
[\#8150](https://github.com/vector-im/riot-web/pull/8150)
|
||||
* Correct the copying of e-mail addresses in the electron app
|
||||
[\#8124](https://github.com/vector-im/riot-web/pull/8124)
|
||||
* Start documenting keyboard shortcuts
|
||||
[\#7165](https://github.com/vector-im/riot-web/pull/7165)
|
||||
* Update issue templates
|
||||
[\#7948](https://github.com/vector-im/riot-web/pull/7948)
|
||||
* Added new colour var to all themes
|
||||
[\#7927](https://github.com/vector-im/riot-web/pull/7927)
|
||||
* Redesign: apply changes from dharma theme to status theme
|
||||
[\#7541](https://github.com/vector-im/riot-web/pull/7541)
|
||||
* Redesign: ignore setting and always show dharma theme for now
|
||||
[\#7540](https://github.com/vector-im/riot-web/pull/7540)
|
||||
|
||||
Changes in [0.17.9](https://github.com/vector-im/riot-web/releases/tag/v0.17.9) (2019-01-22)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.9-rc.1...v0.17.9)
|
||||
|
||||
* Bugfix in react-sdk for setting DM rooms
|
||||
|
||||
Changes in [0.17.9-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.9-rc.1) (2019-01-17)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.8...v0.17.9-rc.1)
|
||||
|
||||
* Merge develop into experimental
|
||||
[\#8003](https://github.com/vector-im/riot-web/pull/8003)
|
||||
* Electron: Load app from custom protocol
|
||||
[\#7943](https://github.com/vector-im/riot-web/pull/7943)
|
||||
* Fix the IndexedDB worker
|
||||
[\#7920](https://github.com/vector-im/riot-web/pull/7920)
|
||||
* Make clear that the Debian package is for desktop
|
||||
[\#7919](https://github.com/vector-im/riot-web/pull/7919)
|
||||
* Run the Desktop app in a sandbox
|
||||
[\#7907](https://github.com/vector-im/riot-web/pull/7907)
|
||||
* Update to new electron single instance API
|
||||
[\#7908](https://github.com/vector-im/riot-web/pull/7908)
|
||||
* Update the tests to match https://github.com/matrix-org/matrix-react-
|
||||
sdk/pull/2340
|
||||
[\#7834](https://github.com/vector-im/riot-web/pull/7834)
|
||||
|
||||
Changes in [0.17.8](https://github.com/vector-im/riot-web/releases/tag/v0.17.8) (2018-12-10)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.8-rc.1...v0.17.8)
|
||||
|
||||
* No changes since rc.1
|
||||
|
||||
Changes in [0.17.8-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.8-rc.1) (2018-12-06)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.7...v0.17.8-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7784](https://github.com/vector-im/riot-web/pull/7784)
|
||||
* Add a function to send a rageshake from the console
|
||||
[\#7755](https://github.com/vector-im/riot-web/pull/7755)
|
||||
* Re-apply "Run lint on travis builds and use modern node versions"
|
||||
[\#7738](https://github.com/vector-im/riot-web/pull/7738)
|
||||
* Revert "Run lint on travis builds and use modern node versions"
|
||||
[\#7737](https://github.com/vector-im/riot-web/pull/7737)
|
||||
* Run lint on travis builds and use modern node versions
|
||||
[\#7490](https://github.com/vector-im/riot-web/pull/7490)
|
||||
* Fix missing js-sdk logging
|
||||
[\#7736](https://github.com/vector-im/riot-web/pull/7736)
|
||||
* Add $accent-color-50pct as a CSS variable to the Status theme
|
||||
[\#7710](https://github.com/vector-im/riot-web/pull/7710)
|
||||
|
||||
Changes in [0.17.7](https://github.com/vector-im/riot-web/releases/tag/v0.17.7) (2018-11-22)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.6...v0.17.7)
|
||||
|
||||
* Warning when crypto DB is too new to use.
|
||||
* Fix missing entries from js-sdk in rageshake logs
|
||||
|
||||
Changes in [0.17.6](https://github.com/vector-im/riot-web/releases/tag/v0.17.6) (2018-11-19)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.6-rc.2...v0.17.6)
|
||||
|
||||
* No changes since rc.2
|
||||
|
||||
Changes in [0.17.6-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.17.6-rc.2) (2018-11-15)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.6-rc.1...v0.17.6-rc.2)
|
||||
|
||||
* Update to js-sdk 0.14 and react-sdk rc.2. rc.1 was broken as it was built against
|
||||
js-sdk 0.13 which does not use the new Olm 3.0 API.
|
||||
|
||||
Changes in [0.17.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.6-rc.1) (2018-11-15)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.5...v0.17.6-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7708](https://github.com/vector-im/riot-web/pull/7708)
|
||||
* Add Japanese (#7599)
|
||||
[\#7673](https://github.com/vector-im/riot-web/pull/7673)
|
||||
* Allow Webpack dev server to listen to all interfaces
|
||||
[\#7674](https://github.com/vector-im/riot-web/pull/7674)
|
||||
* Remove the request-only stuff we don't need anymore
|
||||
[\#7637](https://github.com/vector-im/riot-web/pull/7637)
|
||||
* Correct the author of the electron app
|
||||
[\#7615](https://github.com/vector-im/riot-web/pull/7615)
|
||||
* Mock fs, tls, and net to support request in the browser
|
||||
[\#7552](https://github.com/vector-im/riot-web/pull/7552)
|
||||
* Update chokidar to transitively get newer fsevents
|
||||
[\#7598](https://github.com/vector-im/riot-web/pull/7598)
|
||||
* Support WebAssembly version of Olm
|
||||
[\#7385](https://github.com/vector-im/riot-web/pull/7385)
|
||||
|
||||
Changes in [0.17.5](https://github.com/vector-im/riot-web/releases/tag/v0.17.5) (2018-11-13)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.4...v0.17.5)
|
||||
|
||||
* Include change that was supposed to be included in orevious version
|
||||
|
||||
Changes in [0.17.4](https://github.com/vector-im/riot-web/releases/tag/v0.17.4) (2018-11-13)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.3...v0.17.4)
|
||||
|
||||
* Add banner with login/register links for users who aren't logged in
|
||||
|
||||
Changes in [0.17.3](https://github.com/vector-im/riot-web/releases/tag/v0.17.3) (2018-10-29)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.3-rc.1...v0.17.3)
|
||||
|
||||
* Fix for autocompleting text emoji from react-sdk v0.14.2
|
||||
|
||||
Changes in [0.17.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.3-rc.1) (2018-10-24)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.2...v0.17.3-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7549](https://github.com/vector-im/riot-web/pull/7549)
|
||||
* Don't set tags on notifications
|
||||
[\#7518](https://github.com/vector-im/riot-web/pull/7518)
|
||||
* Update to latest electron builder
|
||||
[\#7498](https://github.com/vector-im/riot-web/pull/7498)
|
||||
* Fix Tinter.setTheme to not fire using Firefox
|
||||
[\#6831](https://github.com/vector-im/riot-web/pull/6831)
|
||||
|
||||
Changes in [0.17.2](https://github.com/vector-im/riot-web/releases/tag/v0.17.2) (2018-10-19)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.1...v0.17.2)
|
||||
|
||||
* Update react-sdk version to "Apply the user's tint once the MatrixClientPeg is moderately ready"
|
||||
* Electron: don't set tags on notifications
|
||||
[\#7518](https://github.com/vector-im/riot-web/pull/7518)
|
||||
|
||||
Changes in [0.17.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.1) (2018-10-18)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.0...v0.17.1)
|
||||
|
||||
* Stop electron crashing
|
||||
[\#7517](https://github.com/vector-im/riot-web/pull/7517)
|
||||
|
||||
Changes in [0.17.0](https://github.com/vector-im/riot-web/releases/tag/v0.17.0) (2018-10-16)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.0-rc.1...v0.17.0)
|
||||
|
||||
* Phased rollout of lazyloading
|
||||
[\#7503](https://github.com/vector-im/riot-web/pull/7503)
|
||||
* Update to latest electron builder
|
||||
[\#7501](https://github.com/vector-im/riot-web/pull/7501)
|
||||
|
||||
Changes in [0.17.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.0-rc.1) (2018-10-11)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.5...v0.17.0-rc.1)
|
||||
|
||||
* Revert "also commit the lock file when bumping version as it is now
|
||||
committed to the repo"
|
||||
[\#7483](https://github.com/vector-im/riot-web/pull/7483)
|
||||
* Update from Weblate.
|
||||
[\#7478](https://github.com/vector-im/riot-web/pull/7478)
|
||||
* Fix riot-web Promise.defer warnings (#7409)
|
||||
[\#7444](https://github.com/vector-im/riot-web/pull/7444)
|
||||
* Use HTTPS cloning for riot-web too
|
||||
[\#7459](https://github.com/vector-im/riot-web/pull/7459)
|
||||
* Disable webpack-dev-server auto reload
|
||||
[\#7463](https://github.com/vector-im/riot-web/pull/7463)
|
||||
* Silence bluebird warnings
|
||||
[\#7462](https://github.com/vector-im/riot-web/pull/7462)
|
||||
* Fix reskindex on matrix-react-side not being called if using build script
|
||||
[\#7443](https://github.com/vector-im/riot-web/pull/7443)
|
||||
* Fix double-closed tags
|
||||
[\#7454](https://github.com/vector-im/riot-web/pull/7454)
|
||||
* Document how to turn off Piwik and bug reports (#6738)
|
||||
[\#7435](https://github.com/vector-im/riot-web/pull/7435)
|
||||
* also commit the lock file when bumping version as it is now committed to the
|
||||
repo
|
||||
[\#7429](https://github.com/vector-im/riot-web/pull/7429)
|
||||
* Update a bunch of deps
|
||||
[\#7393](https://github.com/vector-im/riot-web/pull/7393)
|
||||
* Don't show mobile guide if deep linking
|
||||
[\#7415](https://github.com/vector-im/riot-web/pull/7415)
|
||||
* Don't show custom server bit on matrix.org
|
||||
[\#7408](https://github.com/vector-im/riot-web/pull/7408)
|
||||
* Update Webpack to version 4
|
||||
[\#6620](https://github.com/vector-im/riot-web/pull/6620)
|
||||
* Webpack4
|
||||
[\#7387](https://github.com/vector-im/riot-web/pull/7387)
|
||||
|
||||
Changes in [0.16.6](https://github.com/vector-im/riot-web/releases/tag/v0.16.6) (2018-10-08)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.5...v0.16.6)
|
||||
|
||||
* Update to matrix-react-sdk v0.13.6
|
||||
|
||||
Changes in [0.16.5](https://github.com/vector-im/riot-web/releases/tag/v0.16.5) (2018-10-01)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.5-rc.1...v0.16.5)
|
||||
|
||||
* Don't show mobile guide if deep linking
|
||||
[\#7415](https://github.com/vector-im/riot-web/pull/7415)
|
||||
* Don't show custom server bit on matrix.org
|
||||
[\#7408](https://github.com/vector-im/riot-web/pull/7408)
|
||||
|
||||
Changes in [0.16.5-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.5-rc.1) (2018-09-27)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.4...v0.16.5-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7395](https://github.com/vector-im/riot-web/pull/7395)
|
||||
* Reduce the number of terminals required to build riot-web to 1
|
||||
[\#7355](https://github.com/vector-im/riot-web/pull/7355)
|
||||
* Small typo in release notes v0.16.3
|
||||
[\#7274](https://github.com/vector-im/riot-web/pull/7274)
|
||||
|
||||
Changes in [0.16.4](https://github.com/vector-im/riot-web/releases/tag/v0.16.4) (2018-09-10)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.4-rc.1...v0.16.4)
|
||||
|
||||
* No changes since rc.1
|
||||
|
||||
Changes in [0.16.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.4-rc.1) (2018-09-07)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.3...v0.16.4-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7296](https://github.com/vector-im/riot-web/pull/7296)
|
||||
* Fix config not loading & mobileguide script being loaded in riot
|
||||
[\#7288](https://github.com/vector-im/riot-web/pull/7288)
|
||||
* Instructions for installing mobile apps
|
||||
[\#7272](https://github.com/vector-im/riot-web/pull/7272)
|
||||
* Tidy up index.js
|
||||
[\#7265](https://github.com/vector-im/riot-web/pull/7265)
|
||||
|
||||
Changes in [0.16.3](https://github.com/vector-im/riot-web/releases/tag/v0.16.3) (2018-09-03)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.3-rc.2...v0.16.3)
|
||||
|
||||
* SECURITY FIX: This version (and release candidates) pull in an upstream security
|
||||
fix from electron to fix CVE-2018-15685. Electron users should update as soon as
|
||||
possible. Riot-web run outside of Electron is unaffected.
|
||||
|
||||
Changes in [0.16.3-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.16.3-rc.2) (2018-08-31)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.3-rc.1...v0.16.3-rc.2)
|
||||
|
||||
* Update js-sdk to fix an exception causing the room list to become unresponsive.
|
||||
|
||||
Changes in [0.16.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.3-rc.1) (2018-08-30)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.2...v0.16.3-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7245](https://github.com/vector-im/riot-web/pull/7245)
|
||||
* Revert "Remove package-lock.json for now"
|
||||
[\#7128](https://github.com/vector-im/riot-web/pull/7128)
|
||||
* Remove package-lock.json for now
|
||||
[\#7115](https://github.com/vector-im/riot-web/pull/7115)
|
||||
|
||||
Changes in [0.16.2](https://github.com/vector-im/riot-web/releases/tag/v0.16.2) (2018-08-23)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.1...v0.16.2)
|
||||
|
||||
* Support new server notices format
|
||||
|
||||
Changes in [0.16.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.1) (2018-08-20)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.1-rc.1...v0.16.1)
|
||||
|
||||
* No changes since rc.1
|
||||
|
||||
Changes in [0.16.1-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.1-rc.1) (2018-08-16)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.0...v0.16.1-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7178](https://github.com/vector-im/riot-web/pull/7178)
|
||||
* CSS for MAU warning bar
|
||||
[\#7152](https://github.com/vector-im/riot-web/pull/7152)
|
||||
* CSS for user limit error
|
||||
[\#7139](https://github.com/vector-im/riot-web/pull/7139)
|
||||
* Unpin sanitize-html
|
||||
[\#7132](https://github.com/vector-im/riot-web/pull/7132)
|
||||
* Pin sanitize-html to 0.18.2
|
||||
[\#7129](https://github.com/vector-im/riot-web/pull/7129)
|
||||
|
||||
Changes in [0.16.0](https://github.com/vector-im/riot-web/releases/tag/v0.16.0) (2018-07-30)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.0-rc.2...v0.16.0)
|
||||
|
||||
* Update react-sdk version for bugfixes with Jitsi widgets and the new composer
|
||||
|
||||
Changes in [0.16.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.16.0-rc.2) (2018-07-24)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.0-rc.1...v0.16.0-rc.2)
|
||||
|
||||
* Update to react-sdk rc.2 to remove Jitsi conference calling from labs
|
||||
|
||||
Changes in [0.16.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.0-rc.1) (2018-07-24)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.7...v0.16.0-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#7082](https://github.com/vector-im/riot-web/pull/7082)
|
||||
* Sample config for jitsi integration URL
|
||||
[\#7055](https://github.com/vector-im/riot-web/pull/7055)
|
||||
|
||||
Changes in [0.15.7](https://github.com/vector-im/riot-web/releases/tag/v0.15.7) (2018-07-09)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.7-rc.2...v0.15.7)
|
||||
|
||||
* No changes since rc.2
|
||||
|
||||
Changes in [0.15.7-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.15.7-rc.2) (2018-07-06)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.7-rc.1...v0.15.7-rc.2)
|
||||
|
||||
* Update react-sdk and js-sdk
|
||||
|
||||
Changes in [0.15.7-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.7-rc.1) (2018-07-04)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.6...v0.15.7-rc.1)
|
||||
|
||||
* add override for colour of room tile text within memberinfo (unreadable)
|
||||
[\#6889](https://github.com/vector-im/riot-web/pull/6889)
|
||||
|
||||
Changes in [0.15.6](https://github.com/vector-im/riot-web/releases/tag/v0.15.6) (2018-06-29)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.6-rc.2...v0.15.6)
|
||||
|
||||
* Pull in bug fixes from react-sdk
|
||||
|
||||
Changes in [0.15.6-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.15.6-rc.2) (2018-06-22)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.6-rc.1...v0.15.6-rc.2)
|
||||
|
||||
* Update to react-sdk rc.2 for fix to slash commands
|
||||
|
||||
Changes in [0.15.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.6-rc.1) (2018-06-21)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.5...v0.15.6-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#6915](https://github.com/vector-im/riot-web/pull/6915)
|
||||
* [electron] Fix desktop app --hidden flag
|
||||
[\#6805](https://github.com/vector-im/riot-web/pull/6805)
|
||||
|
||||
Changes in [0.15.5](https://github.com/vector-im/riot-web/releases/tag/v0.15.5) (2018-06-12)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.5-rc.1...v0.15.5)
|
||||
|
||||
* No changes since rc.1
|
||||
|
||||
Changes in [0.15.5-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.5-rc.1) (2018-06-06)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.4...v0.15.5-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#6846](https://github.com/vector-im/riot-web/pull/6846)
|
||||
|
||||
Changes in [0.15.4](https://github.com/vector-im/riot-web/releases/tag/v0.15.4) (2018-05-25)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.4-rc.1...v0.15.4)
|
||||
|
||||
* Add cookie policy link to desktop app config
|
||||
|
||||
Changes in [0.15.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.4-rc.1) (2018-05-24)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.3...v0.15.4-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#6792](https://github.com/vector-im/riot-web/pull/6792)
|
||||
* Hide URL options for e2e blob: URL images
|
||||
[\#6765](https://github.com/vector-im/riot-web/pull/6765)
|
||||
* Fix right click menu in electron
|
||||
[\#6763](https://github.com/vector-im/riot-web/pull/6763)
|
||||
* Update to electron 2.0.1
|
||||
[\#6764](https://github.com/vector-im/riot-web/pull/6764)
|
||||
* Add instructions for changing translated strings
|
||||
[\#6528](https://github.com/vector-im/riot-web/pull/6528)
|
||||
|
||||
Changes in [0.15.3](https://github.com/vector-im/riot-web/releases/tag/v0.15.3) (2018-05-18)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.2...v0.15.3)
|
||||
|
||||
* Fix right click menu in electron
|
||||
[\#6763](https://github.com/vector-im/riot-web/pull/6763)
|
||||
* Update to electron 2.0.1
|
||||
[\#6764](https://github.com/vector-im/riot-web/pull/6764)
|
||||
* Hide URL options for e2e blob: URL images
|
||||
[\#6765](https://github.com/vector-im/riot-web/pull/6765)
|
||||
|
||||
Changes in [0.15.2](https://github.com/vector-im/riot-web/releases/tag/v0.15.2) (2018-05-17)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.1...v0.15.2)
|
||||
|
||||
* Update to matrix-react-sdk v0.12.5 to fix image size jumps
|
||||
|
||||
Changes in [0.15.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.1) (2018-05-16)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0...v0.15.1)
|
||||
|
||||
* Fix package-lock.json which was causing errors building the Electron app
|
||||
* Update Electron version
|
||||
|
||||
Changes in [0.15.0](https://github.com/vector-im/riot-web/releases/tag/v0.15.0) (2018-05-16)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.6...v0.15.0)
|
||||
|
||||
* No changes since rc.6
|
||||
|
||||
Changes in [0.15.0-rc.6](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.6) (2018-05-15)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.5...v0.15.0-rc.6)
|
||||
|
||||
* Update to matrix-react-sdk 0.12.4-rc.6
|
||||
|
||||
Changes in [0.15.0-rc.5](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.5) (2018-05-15)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.4...v0.15.0-rc.5)
|
||||
|
||||
* Update to matrix-react-sdk 0.12.4-rc.5
|
||||
|
||||
Changes in [0.15.0-rc.4](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.4) (2018-05-14)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.3...v0.15.0-rc.4)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#6726](https://github.com/vector-im/riot-web/pull/6726)
|
||||
* Update to matrix-react-sdk 0.12.4-rc.4
|
||||
|
||||
Changes in [0.15.0-rc.3](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.3) (2018-05-11)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.2...v0.15.0-rc.3)
|
||||
|
||||
* Update to matrix-react-sdk 0.12.4-rc.3
|
||||
|
||||
Changes in [0.15.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.2) (2018-05-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.1...v0.15.0-rc.2)
|
||||
|
||||
* Update to matrix-react-sdk 0.12.4-rc.2
|
||||
|
||||
Changes in [0.15.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.1) (2018-05-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.3-rc.1...v0.15.0-rc.1)
|
||||
|
||||
* No changes since 0.14.3-rc.1
|
||||
|
||||
Changes in [0.14.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.14.3-rc.1) (2018-05-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.2...v0.14.3-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#6688](https://github.com/vector-im/riot-web/pull/6688)
|
||||
* Don't show presence on matrix.org
|
||||
[\#6638](https://github.com/vector-im/riot-web/pull/6638)
|
||||
* Enforce loading babel-polyfill first
|
||||
[\#6625](https://github.com/vector-im/riot-web/pull/6625)
|
||||
* Update hoek
|
||||
[\#6624](https://github.com/vector-im/riot-web/pull/6624)
|
||||
* Fix args in the release wrapper script
|
||||
[\#6614](https://github.com/vector-im/riot-web/pull/6614)
|
||||
|
||||
Changes in [0.14.2](https://github.com/vector-im/riot-web/releases/tag/v0.14.2) (2018-04-30)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.2-rc.3...v0.14.2)
|
||||
|
||||
* No changes since rc.3
|
||||
|
||||
Changes in [0.14.2-rc.3](https://github.com/vector-im/riot-web/releases/tag/v0.14.2-rc.3) (2018-04-26)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.2-rc.2...v0.14.2-rc.3)
|
||||
|
||||
* Fix CSS dependency versions to be the same as those in react-sdk to fix
|
||||
left panel header positions.
|
||||
|
||||
Changes in [0.14.2-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.14.2-rc.2) (2018-04-26)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.2-rc.1...v0.14.2-rc.2)
|
||||
|
||||
* Fix Download of attachments in e2e encrypted rooms in Firefox
|
||||
|
||||
Changes in [0.14.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.14.2-rc.1) (2018-04-25)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.1...v0.14.2-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#6602](https://github.com/vector-im/riot-web/pull/6602)
|
||||
* Add readme bit on cross-origin renderer
|
||||
[\#6600](https://github.com/vector-im/riot-web/pull/6600)
|
||||
* Update from Weblate.
|
||||
[\#6573](https://github.com/vector-im/riot-web/pull/6573)
|
||||
* Copy media from react-sdk
|
||||
[\#6588](https://github.com/vector-im/riot-web/pull/6588)
|
||||
* Fix favicon
|
||||
[\#6580](https://github.com/vector-im/riot-web/pull/6580)
|
||||
* Update from Weblate.
|
||||
[\#6569](https://github.com/vector-im/riot-web/pull/6569)
|
||||
* move everything not explicitly riot (or status) branded into matrix-react-
|
||||
sdk
|
||||
[\#6500](https://github.com/vector-im/riot-web/pull/6500)
|
||||
* Remove presence management
|
||||
[\#5881](https://github.com/vector-im/riot-web/pull/5881)
|
||||
* change vector-web repo to riot-web in changelog
|
||||
[\#6480](https://github.com/vector-im/riot-web/pull/6480)
|
||||
* Update from Weblate.
|
||||
[\#6473](https://github.com/vector-im/riot-web/pull/6473)
|
||||
* Bump source-map-loader version to avoid bug /w inline base64 maps
|
||||
[\#6472](https://github.com/vector-im/riot-web/pull/6472)
|
||||
* Add CSS for new group admin radio button
|
||||
[\#6415](https://github.com/vector-im/riot-web/pull/6415)
|
||||
* Rxl881/sticker picker styling
|
||||
[\#6447](https://github.com/vector-im/riot-web/pull/6447)
|
||||
* Stickerpacks
|
||||
[\#6242](https://github.com/vector-im/riot-web/pull/6242)
|
||||
* Force gemini on HomePage
|
||||
[\#6368](https://github.com/vector-im/riot-web/pull/6368)
|
||||
* Rename the Riot-Web Translations Room
|
||||
[\#6348](https://github.com/vector-im/riot-web/pull/6348)
|
||||
* Add disable-presence-by-hs option to sample config
|
||||
[\#6350](https://github.com/vector-im/riot-web/pull/6350)
|
||||
* Reword the BugReportDialog.js as per @lampholder
|
||||
[\#6354](https://github.com/vector-im/riot-web/pull/6354)
|
||||
|
||||
Changes in [0.14.1](https://github.com/vector-im/riot-web/releases/tag/v0.14.1) (2018-04-12)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0...v0.14.1)
|
||||
|
||||
* Remove presence management feature from labs
|
||||
* Fix an issue where Riot would fail to load at all if certain
|
||||
extensions were installed on Firefox
|
||||
* Fix an issue where e2e cryptography could be disabled due to
|
||||
a migration error.
|
||||
|
||||
Changes in [0.14.0](https://github.com/vector-im/riot-web/releases/tag/v0.14.0) (2018-04-11)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.6...v0.14.0)
|
||||
|
||||
* Cosmetic changes for group UI
|
||||
|
||||
Changes in [0.14.0-rc.6](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.6) (2018-04-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.5...v0.14.0-rc.6)
|
||||
|
||||
* Bump react-sdk to [rc.6](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.12.0-rc.6)
|
||||
|
||||
Changes in [0.14.0-rc.5](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.5) (2018-04-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.4...v0.14.0-rc.5)
|
||||
|
||||
* Add CSS for new control to set group join policy
|
||||
|
||||
Changes in [0.14.0-rc.4](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.4) (2018-03-22)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.3...v0.14.0-rc.4)
|
||||
|
||||
* Fix tagging rooms as direct messages
|
||||
|
||||
Changes in [0.14.0-rc.3](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.3) (2018-03-20)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.2...v0.14.0-rc.3)
|
||||
|
||||
* Fix a bug where the badge on a room tile would not update
|
||||
when a room was read from a different device.
|
||||
|
||||
Changes in [0.14.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.2) (2018-03-19)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.1...v0.14.0-rc.2)
|
||||
|
||||
* Take TagPanel out of labs
|
||||
[\#6347](https://github.com/vector-im/riot-web/pull/6347)
|
||||
* Add languages (czech, galician and serbian)
|
||||
[\#6343](https://github.com/vector-im/riot-web/pull/6343)
|
||||
|
||||
Changes in [0.14.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.1) (2018-03-19)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.13.5...v0.14.0-rc.1)
|
||||
|
||||
* Force update RoomSubList after reading a room
|
||||
[\#6342](https://github.com/vector-im/riot-web/pull/6342)
|
||||
* Ensure entire LeftPanel is faded when settings open
|
||||
[\#6340](https://github.com/vector-im/riot-web/pull/6340)
|
||||
* Update from Weblate.
|
||||
[\#6330](https://github.com/vector-im/riot-web/pull/6330)
|
||||
* Implement a simple shouldComponentUpdate for DNDRoomTile
|
||||
[\#6313](https://github.com/vector-im/riot-web/pull/6313)
|
||||
* Remove og:image with status.im URL
|
||||
[\#6317](https://github.com/vector-im/riot-web/pull/6317)
|
||||
* Add change delay warning in GroupView settings
|
||||
[\#6316](https://github.com/vector-im/riot-web/pull/6316)
|
||||
* Correctly position mx_TagPanel_clearButton
|
||||
[\#6289](https://github.com/vector-im/riot-web/pull/6289)
|
||||
* Fix gap between avatar and border
|
||||
[\#6290](https://github.com/vector-im/riot-web/pull/6290)
|
||||
* Fix bug where cannot send group invite on GroupMemberInfo phase
|
||||
[\#6303](https://github.com/vector-im/riot-web/pull/6303)
|
||||
* Fix themeing bug with Firefox where "disabled" ignored
|
||||
[\#6301](https://github.com/vector-im/riot-web/pull/6301)
|
||||
* Changes for E2E "fudge-button"
|
||||
[\#6288](https://github.com/vector-im/riot-web/pull/6288)
|
||||
* Make sure mx_TagPanel_tagTileContainer occupies full height
|
||||
[\#6286](https://github.com/vector-im/riot-web/pull/6286)
|
||||
* Add transparent CSS class for RoomTile
|
||||
[\#6281](https://github.com/vector-im/riot-web/pull/6281)
|
||||
* Fix crash; fs event received /w langauge file empty
|
||||
[\#6273](https://github.com/vector-im/riot-web/pull/6273)
|
||||
* Add setting to disable TagPanel
|
||||
[\#6269](https://github.com/vector-im/riot-web/pull/6269)
|
||||
* CSS for my groups microcopy
|
||||
[\#6257](https://github.com/vector-im/riot-web/pull/6257)
|
||||
* Add Bulgarian to the list of languages
|
||||
[\#6246](https://github.com/vector-im/riot-web/pull/6246)
|
||||
* Make media dropdown wider
|
||||
[\#6245](https://github.com/vector-im/riot-web/pull/6245)
|
||||
* Make dropdowns with long options degrade more gracefully
|
||||
[\#6244](https://github.com/vector-im/riot-web/pull/6244)
|
||||
* Fix un-tinted "View Community" icon in TagTile context menu
|
||||
[\#6223](https://github.com/vector-im/riot-web/pull/6223)
|
||||
* Fix RoomDropTarget and emptySubListTip to have containers
|
||||
[\#6160](https://github.com/vector-im/riot-web/pull/6160)
|
||||
* Fix syntax error of wrong use of self-closing HTML tag
|
||||
[\#6154](https://github.com/vector-im/riot-web/pull/6154)
|
||||
* Use translucent black for RoomSubList bg to fix tinting
|
||||
[\#6227](https://github.com/vector-im/riot-web/pull/6227)
|
||||
* CSS for changing "R" to "X" for clearing group filter
|
||||
[\#6216](https://github.com/vector-im/riot-web/pull/6216)
|
||||
* CSS for new global TagPanel filter
|
||||
[\#6187](https://github.com/vector-im/riot-web/pull/6187)
|
||||
* Separate the middle panel from the room list
|
||||
[\#6194](https://github.com/vector-im/riot-web/pull/6194)
|
||||
* Only use DNDRoomTile for editable sub lists
|
||||
[\#6176](https://github.com/vector-im/riot-web/pull/6176)
|
||||
* Adjust CSS to prevent scrollbars on message panel spinner
|
||||
[\#6131](https://github.com/vector-im/riot-web/pull/6131)
|
||||
* Implement riot-web side of dragging GroupTile avatars to TagPanel
|
||||
[\#6143](https://github.com/vector-im/riot-web/pull/6143)
|
||||
* Fix LeftPanel size being incorrect when TagPanel disabled
|
||||
[\#6140](https://github.com/vector-im/riot-web/pull/6140)
|
||||
* Fix TagPanel from collapsing to < 60px when LP collapsed
|
||||
[\#6134](https://github.com/vector-im/riot-web/pull/6134)
|
||||
* Temporary hack to constrain LLP container size.
|
||||
[\#6138](https://github.com/vector-im/riot-web/pull/6138)
|
||||
* Fix typo
|
||||
[\#6137](https://github.com/vector-im/riot-web/pull/6137)
|
||||
* Add context menu to TagPanel
|
||||
[\#6127](https://github.com/vector-im/riot-web/pull/6127)
|
||||
* Make room tagging flux-y
|
||||
[\#6096](https://github.com/vector-im/riot-web/pull/6096)
|
||||
* Move groups button to TagPanel
|
||||
[\#6130](https://github.com/vector-im/riot-web/pull/6130)
|
||||
* Fix long group name pushing settings cog into void
|
||||
[\#6106](https://github.com/vector-im/riot-web/pull/6106)
|
||||
* Fix horizontal scrollbar under certain circumstances
|
||||
[\#6103](https://github.com/vector-im/riot-web/pull/6103)
|
||||
* Split MImageBody into MFileBody to match JS Classes.
|
||||
[\#6067](https://github.com/vector-im/riot-web/pull/6067)
|
||||
* Add Catalan
|
||||
[\#6040](https://github.com/vector-im/riot-web/pull/6040)
|
||||
* Update from Weblate.
|
||||
[\#5777](https://github.com/vector-im/riot-web/pull/5777)
|
||||
* make FilteredList controlled, such that it can externally persist filter
|
||||
[\#5718](https://github.com/vector-im/riot-web/pull/5718)
|
||||
* Linear Rich Quoting
|
||||
[\#6017](https://github.com/vector-im/riot-web/pull/6017)
|
||||
* Highlight ViewSource and Devtools ViewSource
|
||||
[\#5995](https://github.com/vector-im/riot-web/pull/5995)
|
||||
* default url, not domain
|
||||
[\#6022](https://github.com/vector-im/riot-web/pull/6022)
|
||||
* T3chguy/num members tooltip
|
||||
[\#5929](https://github.com/vector-im/riot-web/pull/5929)
|
||||
* Swap RoomList to react-beautiful-dnd
|
||||
[\#6008](https://github.com/vector-im/riot-web/pull/6008)
|
||||
* CSS required as part of moving TagPanel from react-dnd to react-beautiful-
|
||||
dnd
|
||||
[\#5992](https://github.com/vector-im/riot-web/pull/5992)
|
||||
* fix&refactor DateSeparator and MessageTimestamp
|
||||
[\#5984](https://github.com/vector-im/riot-web/pull/5984)
|
||||
* Iterative fixes on Rich Quoting
|
||||
[\#5978](https://github.com/vector-im/riot-web/pull/5978)
|
||||
* move piwik whitelists to conf and add piwik config.json info to readme
|
||||
[\#5653](https://github.com/vector-im/riot-web/pull/5653)
|
||||
* Implement Rich Quoting/Replies
|
||||
[\#5804](https://github.com/vector-im/riot-web/pull/5804)
|
||||
* Change author
|
||||
[\#5950](https://github.com/vector-im/riot-web/pull/5950)
|
||||
* Revert "Add a after timestamp"
|
||||
[\#5944](https://github.com/vector-im/riot-web/pull/5944)
|
||||
* Add a after timestamp
|
||||
[\#3046](https://github.com/vector-im/riot-web/pull/3046)
|
||||
* Corrected language name
|
||||
[\#5938](https://github.com/vector-im/riot-web/pull/5938)
|
||||
* Hide Options button from copy to clipboard
|
||||
[\#2892](https://github.com/vector-im/riot-web/pull/2892)
|
||||
* Fix for `If riot is narrow enough, such that 'Send a message (unecrypted)'
|
||||
wraps to a second line, the timeline doesn't fit the window.`
|
||||
[\#5900](https://github.com/vector-im/riot-web/pull/5900)
|
||||
* Screenshot UI
|
||||
[\#5849](https://github.com/vector-im/riot-web/pull/5849)
|
||||
* add missing config.json entry such that scalar-staging widgets work
|
||||
[\#5855](https://github.com/vector-im/riot-web/pull/5855)
|
||||
* add dark theme styling to devtools input box
|
||||
[\#5610](https://github.com/vector-im/riot-web/pull/5610)
|
||||
* Fixes #1953 by adding oivoodoo as author
|
||||
[\#5851](https://github.com/vector-im/riot-web/pull/5851)
|
||||
* Instructions on security issues
|
||||
[\#5824](https://github.com/vector-im/riot-web/pull/5824)
|
||||
* Move DND wrapper to top level component
|
||||
[\#5790](https://github.com/vector-im/riot-web/pull/5790)
|
||||
* Widget title bar max / min visual cues.
|
||||
[\#5786](https://github.com/vector-im/riot-web/pull/5786)
|
||||
* Implement renumeration of ordered tags upon collision
|
||||
[\#5759](https://github.com/vector-im/riot-web/pull/5759)
|
||||
* Update imports for accessing KeyCode
|
||||
[\#5751](https://github.com/vector-im/riot-web/pull/5751)
|
||||
* Set html lang attribute from language setting
|
||||
[\#5685](https://github.com/vector-im/riot-web/pull/5685)
|
||||
* CSS for new TagPanel
|
||||
[\#5723](https://github.com/vector-im/riot-web/pull/5723)
|
||||
* getGroupStore no longer needs a matrix client
|
||||
[\#5707](https://github.com/vector-im/riot-web/pull/5707)
|
||||
* CSS required for moving group publication toggles to UserSettings
|
||||
[\#5702](https://github.com/vector-im/riot-web/pull/5702)
|
||||
* Make sure the SettingsStore is ready to load the theme before loading it
|
||||
[\#5630](https://github.com/vector-im/riot-web/pull/5630)
|
||||
* Add some aria-labels to RightPanel
|
||||
[\#5661](https://github.com/vector-im/riot-web/pull/5661)
|
||||
* Use badge count format for member count in RightPanel
|
||||
[\#5657](https://github.com/vector-im/riot-web/pull/5657)
|
||||
* Exclude the default language on page load
|
||||
[\#5640](https://github.com/vector-im/riot-web/pull/5640)
|
||||
* Use SettingsStore to get the default theme
|
||||
[\#5615](https://github.com/vector-im/riot-web/pull/5615)
|
||||
* Refactor translations
|
||||
[\#5613](https://github.com/vector-im/riot-web/pull/5613)
|
||||
* TintableSvgButton styling
|
||||
[\#5605](https://github.com/vector-im/riot-web/pull/5605)
|
||||
* Granular settings
|
||||
[\#5468](https://github.com/vector-im/riot-web/pull/5468)
|
||||
* CSS/components for custom presence controls
|
||||
[\#5286](https://github.com/vector-im/riot-web/pull/5286)
|
||||
* Set widget tile background colour
|
||||
[\#5574](https://github.com/vector-im/riot-web/pull/5574)
|
||||
* Widget styling tweaks
|
||||
[\#5573](https://github.com/vector-im/riot-web/pull/5573)
|
||||
* Center mixed content warnings in panel.
|
||||
[\#5567](https://github.com/vector-im/riot-web/pull/5567)
|
||||
* Status.im theme
|
||||
[\#5578](https://github.com/vector-im/riot-web/pull/5578)
|
||||
|
||||
Changes in [0.13.5](https://github.com/vector-im/riot-web/releases/tag/v0.13.5) (2018-02-09)
|
||||
============================================================================================
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Contributing code to Riot
|
||||
=========================
|
||||
|
||||
Riot follows the same pattern as https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.rst.
|
||||
Riot follows the same pattern as https://github.com/matrix-org/matrix-js-sdk/blob/master/CONTRIBUTING.rst.
|
||||
|
||||
293
README.md
@@ -1,34 +1,34 @@
|
||||
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 (formerly known as Vector) is a Matrix web client built using the [Matrix React SDK](https://github.com/matrix-org/matrix-react-sdk).
|
||||
|
||||
Getting Started
|
||||
===============
|
||||
|
||||
The easiest way to test Riot is to just use the hosted copy at
|
||||
https://riot.im/app. The develop branch is continuously deployed by Jenkins at
|
||||
https://riot.im/develop for those who like living dangerously.
|
||||
The easiest way to test Riot is to just use the hosted copy at https://riot.im/app.
|
||||
The `develop` branch is continuously deployed by Jenkins at https://riot.im/develop
|
||||
for those who like living dangerously.
|
||||
|
||||
To host your own copy of Riot, the quickest bet is to use a pre-built
|
||||
released version of Riot:
|
||||
|
||||
1. Download the latest version from https://github.com/vector-im/riot-web/releases
|
||||
1. Untar the tarball on your web server
|
||||
1. Move (or symlink) the riot-x.x.x directory to an appropriate name
|
||||
1. Move (or symlink) the `riot-x.x.x` directory to an appropriate name
|
||||
1. If desired, copy `config.sample.json` to `config.json` and edit it
|
||||
as desired. See below for details.
|
||||
1. Enter the URL into your browser and log into Riot!
|
||||
|
||||
Releases are signed by PGP, and can be checked against the public key
|
||||
at https://riot.im/packages/keys/riot.asc
|
||||
at https://riot.im/packages/keys/riot.asc .
|
||||
|
||||
Note that Chrome does not allow microphone or webcam access for sites served
|
||||
over http (except localhost), so for working VoIP you will need to serve Riot
|
||||
over https.
|
||||
|
||||
### Installation Steps for Debian Stretch
|
||||
### Desktop Installation for Debian Stretch
|
||||
|
||||
1. Add the repository to your sources.list using either of the following two options:
|
||||
- Directly to sources.list: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee -a /etc/apt/sources.list`
|
||||
- As a separate entry in sources.list.d: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee /etc/apt/sources.list.d/riot.list`
|
||||
@@ -49,25 +49,41 @@ We have put some coarse mitigations into place to try to protect against this
|
||||
situation, but it's still not good practice to do it in the first place. See
|
||||
https://github.com/vector-im/riot-web/issues/1977 for more details.
|
||||
|
||||
The same applies for end-to-end encrypted content, but since this is decrypted
|
||||
on the client, Riot needs a way to supply the decrypted content from a separate
|
||||
origin to the one Riot is hosted on. This currently done with a 'cross origin
|
||||
renderer' which is a small piece of javascript hosted on a different domain.
|
||||
To avoid all Riot installs needing one of these to be set up, riot.im hosts
|
||||
one on usercontent.riot.im which is used by default. See 'config.json' if you'd
|
||||
like to host your own. https://github.com/vector-im/riot-web/issues/6173 tracks
|
||||
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.
|
||||
|
||||
1. Install or update `node.js` so that your `node` is at least v6.3.0 (and `npm`
|
||||
is at least v3.10.x).
|
||||
1. Install or update `node.js` so that your `node` is at least v8.12.0 (and `npm`
|
||||
is at least v5.x).
|
||||
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. If you're using the `develop` branch, install the develop versions of the
|
||||
dependencies, as the released ones will be too old:
|
||||
```
|
||||
1. Install the prerequisites: `npm 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
|
||||
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
|
||||
@@ -80,25 +96,19 @@ to build.
|
||||
npm install
|
||||
npm run build
|
||||
```
|
||||
However, we recommend setting up a proper development environment (see "Setting
|
||||
up a dev environment" below) if you want to run your own copy of the
|
||||
`develop` branch, as it makes it much easier to keep these dependencies
|
||||
up-to-date. 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. Install the prerequisites: `npm 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
|
||||
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`, 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.
|
||||
Note that `npm run dist` is not supported on Windows, so Windows users can run `npm run 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.
|
||||
|
||||
config.json
|
||||
===========
|
||||
@@ -106,30 +116,81 @@ config.json
|
||||
You can configure the app by copying `config.sample.json` to
|
||||
`config.json` and customising it:
|
||||
|
||||
1. `default_hs_url` is the default home server 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.
|
||||
For a good example, see https://riot.im/develop/config.json.
|
||||
|
||||
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.
|
||||
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
|
||||
homeserver know what email template to use when talking to you.
|
||||
1. `branding`: Configures various branding and logo details, such as:
|
||||
1. `welcomeBackgroundUrl`: An image to use as a wallpaper outside the app
|
||||
during authentication flows
|
||||
1. `authHeaderLogoUrl`: An logo image that is shown in the header during
|
||||
authentication flows
|
||||
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
|
||||
server is not Riot and normally not your Home Server either. The integration server settings
|
||||
server is not Riot and normally not your homeserver either. The integration server settings
|
||||
may be left blank to disable integrations.
|
||||
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
|
||||
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
|
||||
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
|
||||
https://github.com/matrix-org/rageshake server). Bug reports are sent when a user clicks
|
||||
"Send Logs" within the application. Bug reports can be disabled by leaving the
|
||||
`bug_report_endpoint_url` out of your config file.
|
||||
1. `roomDirectory`: config for the public room directory. This section is optional.
|
||||
1. `roomDirectory.servers`: List of other Home Servers' directories to include in the drop
|
||||
1. `roomDirectory.servers`: List of other homeservers' directories to include in the drop
|
||||
down list. Optional.
|
||||
1. `default_theme`: name of theme to use by default (e.g. 'light')
|
||||
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
|
||||
updates from. This should be the path to the directory containing `macos`
|
||||
and `win32` (for update packages, not installer packages).
|
||||
1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
|
||||
encrypted file attachments. This MUST be hosted on a completely separate domain to
|
||||
anything else since it is used to isolate the privileges of file attachments to this
|
||||
domain. Default: `usercontent.riot.im`. This needs to contain v1.html from
|
||||
domain. Default: `https://usercontent.riot.im/v1.html`. This needs to contain v1.html from
|
||||
https://github.com/matrix-org/usercontent/blob/master/v1.html
|
||||
1. `piwik`: Analytics can be disabled by setting `piwik: false` or by leaving the piwik config
|
||||
option out of your config file. If you want to enable analytics, set `piwik` to be an object
|
||||
containing the following properties:
|
||||
1. `url`: The URL of the Piwik instance to use for collecting analytics
|
||||
1. `whitelistedHSUrls`: a list of HS URLs to not redact from the analytics
|
||||
1. `whitelistedISUrls`: a list of IS URLs to not redact from the analytics
|
||||
1. `siteId`: The Piwik Site ID to use when sending analytics to the Piwik server configured above
|
||||
1. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
|
||||
1. `embeddedPages`: Configures the pages displayed in portions of Riot that
|
||||
embed static files, such as:
|
||||
1. `welcomeUrl`: Initial content shown on the outside of the app when not
|
||||
logged in. Defaults to `welcome.html` supplied with Riot.
|
||||
1. `homeUrl`: Content shown on the inside of the app when a specific room is
|
||||
not selected. By default, no home page is configured. If one is set, a
|
||||
button to access it will be shown in the top left menu.
|
||||
|
||||
|
||||
Note that `index.html` also has an og:image meta tag that is set to an image
|
||||
hosted on riot.im. This is the image used if links to your copy of Riot
|
||||
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`.
|
||||
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
|
||||
each time you download a new version of Riot.
|
||||
|
||||
Running as a Desktop app
|
||||
========================
|
||||
@@ -144,15 +205,15 @@ To run as a desktop app:
|
||||
`npm run build` instead of `npm run dist` (since we don't need the tarball).
|
||||
2. Install electron and run it:
|
||||
|
||||
```
|
||||
```bash
|
||||
npm install electron
|
||||
npm run electron
|
||||
```
|
||||
|
||||
To build packages, use electron-builder. This is configured to output:
|
||||
* dmg + zip for macOS
|
||||
* exe + nupkg for Windows
|
||||
* deb for Linux
|
||||
* `dmg` + `zip` for macOS
|
||||
* `exe` + `nupkg` for Windows
|
||||
* `deb` for Linux
|
||||
But this can be customised by editing the `build` section of package.json
|
||||
as per https://github.com/electron-userland/electron-builder/wiki/Options
|
||||
|
||||
@@ -160,7 +221,7 @@ See https://github.com/electron-userland/electron-builder/wiki/Multi-Platform-Bu
|
||||
for dependencies required for building packages for various platforms.
|
||||
|
||||
The only platform that can build packages for all three platforms is macOS:
|
||||
```
|
||||
```bash
|
||||
brew install wine --without-x11
|
||||
brew install mono
|
||||
brew install gnu-tar
|
||||
@@ -174,7 +235,7 @@ for 64 bit Linux:
|
||||
1. Follow the instructions in 'Building From Source' above
|
||||
2. `node_modules/.bin/build -l --x64`
|
||||
|
||||
All electron packages go into `electron/dist/`
|
||||
All electron packages go into `electron_app/dist/`
|
||||
|
||||
Many thanks to @aviraldg for the initial work on the electron integration.
|
||||
|
||||
@@ -182,7 +243,7 @@ Other options for running as a desktop app:
|
||||
* https://github.com/krisak/vector-electron-desktop
|
||||
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
|
||||
|
||||
```
|
||||
```bash
|
||||
sudo npm install nativefier -g
|
||||
nativefier https://riot.im/app/
|
||||
```
|
||||
@@ -190,29 +251,21 @@ nativefier https://riot.im/app/
|
||||
Development
|
||||
===========
|
||||
|
||||
Before attempting to develop on Riot you **must** read the developer guide
|
||||
for `matrix-react-sdk` at https://github.com/matrix-org/matrix-react-sdk, which
|
||||
Before attempting to develop on Riot you **must** read the [developer guide
|
||||
for `matrix-react-sdk`](https://github.com/matrix-org/matrix-react-sdk), which
|
||||
also defines the design, architecture and style for Riot too.
|
||||
|
||||
You should also familiarise yourself with the ["Here be Dragons" guide
|
||||
](https://docs.google.com/document/d/12jYzvkidrp1h7liEuLIe6BMdU0NUjndUYI971O06ooM)
|
||||
to the tame & not-so-tame dragons (gotchas) which exist in the codebase.
|
||||
|
||||
The idea of Riot is to be a relatively lightweight "skin" of customisations on
|
||||
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
|
||||
the `component-index.js` for the app (used in future for skinning)
|
||||
|
||||
**However, as of July 2016 this layering abstraction is broken due to rapid
|
||||
development on Riot forcing `matrix-react-sdk` to move fast at the expense of
|
||||
maintaining a clear abstraction between the two.** Hacking on Riot inevitably
|
||||
means hacking equally on `matrix-react-sdk`, and there are bits of
|
||||
`matrix-react-sdk` behaviour incorrectly residing in the `riot-web` project
|
||||
(e.g. matrix-react-sdk specific CSS), and a bunch of Riot specific behaviour
|
||||
in the `matrix-react-sdk` (grep for `vector` / `riot`). This separation problem will be
|
||||
solved asap once development on Riot (and thus matrix-react-sdk) has
|
||||
stabilised. Until then, the two projects should basically be considered as a
|
||||
single unit. In particular, `matrix-react-sdk` issues are currently filed
|
||||
against `riot-web` in github.
|
||||
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
|
||||
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
|
||||
@@ -229,52 +282,60 @@ having to manually rebuild each time.
|
||||
|
||||
First clone and build `matrix-js-sdk`:
|
||||
|
||||
1. `git clone git@github.com:matrix-org/matrix-js-sdk.git`
|
||||
1. `pushd matrix-js-sdk`
|
||||
1. `git checkout develop`
|
||||
1. `npm install`
|
||||
1. `npm install source-map-loader` # because webpack is made of fail (https://github.com/webpack/webpack/issues/1472)
|
||||
1. `popd`
|
||||
``` bash
|
||||
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
|
||||
popd
|
||||
```
|
||||
|
||||
Then similarly with `matrix-react-sdk`:
|
||||
|
||||
1. `git clone git@github.com:matrix-org/matrix-react-sdk.git`
|
||||
1. `pushd matrix-react-sdk`
|
||||
1. `git checkout develop`
|
||||
1. `npm install`
|
||||
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
|
||||
1. `popd`
|
||||
```bash
|
||||
git clone https://github.com/matrix-org/matrix-react-sdk.git
|
||||
pushd matrix-react-sdk
|
||||
git checkout develop
|
||||
npm link ../matrix-js-sdk
|
||||
popd
|
||||
```
|
||||
|
||||
Finally, build and start Riot itself:
|
||||
|
||||
1. `git clone git@github.com:vector-im/riot-web.git`
|
||||
1. `cd riot-web`
|
||||
1. `git checkout develop`
|
||||
1. `npm install`
|
||||
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
|
||||
1. `rm -r node_modules/matrix-react-sdk; ln -s ../../matrix-react-sdk node_modules/`
|
||||
1. `npm start`
|
||||
1. Wait a few seconds for the initial build to finish; you should see something like:
|
||||
```
|
||||
Hash: b0af76309dd56d7275c8
|
||||
Version: webpack 1.12.14
|
||||
Time: 14533ms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 4.2 MB 0 [emitted] main
|
||||
bundle.css 91.5 kB 0 [emitted] main
|
||||
bundle.js.map 5.29 MB 0 [emitted] main
|
||||
bundle.css.map 116 kB 0 [emitted] main
|
||||
+ 1013 hidden modules
|
||||
```
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
Wait a few seconds for the initial build to finish; you should see something like:
|
||||
```
|
||||
Hash: b0af76309dd56d7275c8
|
||||
Version: webpack 1.12.14
|
||||
Time: 14533ms
|
||||
Asset Size Chunks Chunk Names
|
||||
bundle.js 4.2 MB 0 [emitted] main
|
||||
bundle.css 91.5 kB 0 [emitted] main
|
||||
bundle.js.map 5.29 MB 0 [emitted] main
|
||||
bundle.css.map 116 kB 0 [emitted] main
|
||||
+ 1013 hidden modules
|
||||
```
|
||||
Remember, the command will not terminate since it runs the web server
|
||||
and rebuilds source files when they change. This development server also
|
||||
disables caching, so do NOT use it in production.
|
||||
1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||
|
||||
When you make changes to `matrix-react-sdk` or `matrix-js-sdk`, you will need
|
||||
to run `npm run build` in the relevant directory. You can do this automatically
|
||||
by instead running `npm start` in the directory, to start a development builder
|
||||
which will watch for changes to the files and rebuild automatically.
|
||||
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
|
||||
|
||||
___
|
||||
|
||||
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`.
|
||||
@@ -314,31 +375,51 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md).
|
||||
Triaging issues
|
||||
===============
|
||||
|
||||
Issues will be triaged by the core team using the following primary set of tags:
|
||||
Issues will be triaged by the core team using the below set of tags.
|
||||
|
||||
priority:
|
||||
Tags are meant to be used in combination - e.g.:
|
||||
* P1 critical bug == really urgent stuff that should be next in the bugfixing todo list
|
||||
* "release blocker" == stuff which is blocking us from cutting the next release.
|
||||
* P1 feature type:voip == what VoIP features should we be working on next?
|
||||
|
||||
* P1: top priority; typically blocks releases
|
||||
priority: **compulsory**
|
||||
|
||||
* P1: top priority - i.e. pool of stuff which we should be working on next
|
||||
* P2: still need to fix, but lower than P1
|
||||
* P3: non-urgent
|
||||
* P4: intereseting idea - bluesky some day
|
||||
* P4: interesting idea - bluesky some day
|
||||
* P5: recorded for posterity/to avoid duplicates. No intention to resolves right now.
|
||||
|
||||
bug or feature:
|
||||
bug or feature: **compulsory**
|
||||
|
||||
* bug
|
||||
* feature
|
||||
|
||||
bug severity:
|
||||
bug severity: **compulsory, if bug**
|
||||
|
||||
* cosmetic - feature works functionally but UI/UX is broken
|
||||
* critical - whole app doesn't work
|
||||
* major - entire feature doesn't work
|
||||
* minor - partially broken feature (but still usable)
|
||||
* cosmetic - feature works functionally but UI/UX is broken
|
||||
|
||||
additional categories:
|
||||
types
|
||||
* type:* - refers to a particular part of the app; used to filter bugs
|
||||
on a given topic - e.g. VOIP, signup, timeline, etc.
|
||||
|
||||
additional categories (self-explanatory):
|
||||
|
||||
* release blocker
|
||||
* ui/ux (think of this as cosmetic)
|
||||
* network (specific to network conditions)
|
||||
* platform (platform specific)
|
||||
* platform specific
|
||||
* accessibility
|
||||
* maintenance
|
||||
* performance
|
||||
* i18n
|
||||
* blocked - whether this issue currently can't be progressed due to outside factors
|
||||
|
||||
community engagement
|
||||
* easy
|
||||
* hacktoberfest
|
||||
* bounty? - proposal to be included in a bounty programme
|
||||
* bounty - included in Status Open Bounty
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
{
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"disable_custom_urls": false,
|
||||
"disable_guests": false,
|
||||
"disable_login_language_selector": false,
|
||||
"disable_3pid_login": false,
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"integrations_jitsi_widget_url": "https://scalar.vector.im/api/widgets/jitsi.html",
|
||||
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||
"features": {
|
||||
"feature_groups": "labs",
|
||||
"feature_pinning": "labs"
|
||||
},
|
||||
"default_federate": true,
|
||||
"default_theme": "light",
|
||||
"roomDirectory": {
|
||||
"servers": [
|
||||
"matrix.org"
|
||||
@@ -18,6 +24,11 @@
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"whitelistedHSUrls": ["https://matrix.org"],
|
||||
"whitelistedISUrls": ["https://vector.im", "https://matrix.org"],
|
||||
"siteId": 1
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
"https://matrix.org": false
|
||||
}
|
||||
}
|
||||
|
||||
11
docs/shortcuts.md
Normal file
@@ -0,0 +1,11 @@
|
||||
# Keyboard Shortcuts
|
||||
|
||||
The modifier is <kbd>Ctrl</kbd> on Windows & Linux and <kbd>⌘</kbd> on Mac.
|
||||
|
||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>m</kbd> - toggle markdown
|
||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>d</kbd> - toggle mic mute
|
||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>e</kbd> - toggle video on/off
|
||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>k</kbd> - jump to named room
|
||||
- <kbd>↑</kbd>/<kbd>↓</kbd> - navigate within room list
|
||||
- <kbd>PageUp</kbd>/<kbd>PageDown</kbd> - scroll timeline up/down
|
||||
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>Home</kbd>/<kbd>End</kbd> - jump to timeline start/end
|
||||
68
docs/skinning thoughts.md
Normal file
@@ -0,0 +1,68 @@
|
||||
== Skinning refactor ==
|
||||
|
||||
matrix-react-sdk
|
||||
- base images
|
||||
- base CSS
|
||||
- all the components needed to build a workable app (including the top layer)
|
||||
|
||||
riot-web: the riot skin
|
||||
- riot-specific classes (e.g. login header/footer)
|
||||
- riot-specific themes
|
||||
- light
|
||||
- dark
|
||||
|
||||
i.e. the only things which should go into riot-web are bits which apply vector-specific skinning
|
||||
specifically "Stuff that any other brand would not want to use. (e.g. riot logos, links, T&Cs)"
|
||||
- Questions:
|
||||
- Electron app? (should probably be a separate repo in its own right? but might as well go here for now)
|
||||
- index.html & index.js? (should be in matrix-react-sdk, given the SDK is useless without them?)
|
||||
|
||||
ideally matrix-react-sdk itself should ship with a default skin which actually works built in.
|
||||
|
||||
status skin (can go in the same app for now)
|
||||
- has status theme
|
||||
- which inherits from riot light theme
|
||||
- how do we share graphics between skins?
|
||||
- shove them into react-sdk, or...
|
||||
- guess we do ../../vector/img
|
||||
- this means keeping the skin name in the images (unless /img is a shortcut to the right skin's images)
|
||||
|
||||
out of scope:
|
||||
- making the components more independent, so they can be used in isolation.
|
||||
- that said, the bits which should probably be used by being embeded into a different app:
|
||||
- login/reg
|
||||
- RoomView + RoomSettings
|
||||
- MessageComposer
|
||||
- RoomList
|
||||
- MemberList
|
||||
- MemberInfo
|
||||
- Voip UI
|
||||
- UserSettings
|
||||
- sharing different js-sdks between the different isolated modules
|
||||
|
||||
other changes:
|
||||
- how do we handle i18n?
|
||||
- each skin should really be its own i18n project. As long as all the commonality stuff is in matrix-react-sdk this shouldn't be too bad.
|
||||
- ability to associate components with a given skin
|
||||
- skins/vector/src <-- components
|
||||
- skins/vector/css
|
||||
- skins/vector/img
|
||||
- skins/vector/fonts
|
||||
- gather together themes (per skin) into a single place too
|
||||
- skins/vector/themes/foo/css
|
||||
- skins/vector/themes/foo/img
|
||||
- skins/vector/themes/foo/fonts
|
||||
- ideally riot-web would contain almost nothing but skins/vector directory.
|
||||
- ability to entirely replace CSS rather than override it for a given theme
|
||||
- e.g. if we replace `Login.js` with `StatusLogin.js`, then we should similarly be able to replace `_Login.scss` with `_StatusLogin.scss`.
|
||||
|
||||
random thoughts;
|
||||
- should we be able to change the entire skin at runtime (more like wordpress) - to the extent of replacing entire components?
|
||||
- might pose security issues if a theme can be swapped out to replace MatrixChat or other fundamental functionality at runtime
|
||||
- if so, perhaps skins & themes should converge...
|
||||
|
||||
-----------------
|
||||
|
||||
Immediate plan for Status:
|
||||
* Implement it as a theme for the riot skin
|
||||
* Ideally move skins to a sensible level (possibly even including src?)
|
||||
@@ -3,6 +3,8 @@
|
||||
## Requirements
|
||||
|
||||
- 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
|
||||
- Be able to understand English
|
||||
- Be able to understand the language you want to translate riot-web into
|
||||
|
||||
@@ -30,15 +32,25 @@ 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`` (if it fails because it can't find the script, your dev environment predates the script, so reinstall/link react-sdk with `npm link ../matrix-react-sdk`). If it segfaults, you may be on Node 6, so try a newer version of node.
|
||||
1. Run `npm run 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`.
|
||||
|
||||
## Adding variables inside a string.
|
||||
|
||||
1. Extend your ``_t()`` call. Instead of ``_t(STRING)`` use ``_t(STRING, {})``
|
||||
2. Decide how to name it. Please think about if the person who has to translate it can understand what it does.
|
||||
3. Add it to the array in ``_t`` for example ``_t(STRING, {variable: this.variable})``
|
||||
4. Add the variable inside the string. The syntax for variables is ``%(variable)s``. Please note the s at the end. The name of the variable has to match the previous used name.
|
||||
1. Decide how to name it. Please think about if the person who has to translate it can understand what it does. E.g. using the name 'recipient' is bad, because a translator does not know if it is the name of a person, an email address, a user ID, etc. Rather use e.g. recipientEmailAddress.
|
||||
1. Add it to the array in ``_t`` for example ``_t(STRING, {variable: this.variable})``
|
||||
1. Add the variable inside the string. The syntax for variables is ``%(variable)s``. Please note the _s_ at the end. The name of the variable has to match the previous used name.
|
||||
|
||||
- You can use the special ``count`` variable to choose between multiple versions of the same string, in order to get the correct pluralization. E.g. ``_t('You have %(count)s new messages', { count: 2 })`` would show 'You have 2 new messages', while ``_t('You have %(count)s new messages', { count: 1 })`` would show 'You have one new message' (assuming a singular version of the string has been added to the translation file. See above). Passing in ``count`` is much prefered over having an if-statement choose the correct string to use, because some languages have much more complicated plural rules than english (e.g. they might need a completely different form if there are three things rather than two).
|
||||
- If you want to translate text that includes e.g. hyperlinks or other HTML you have to also use tag substitution, e.g. ``_t('<a>Click here!</a>', {}, { 'a': (sub) => <a>{sub}</a> })``. If you don't do the tag substitution you will end up showing literally '<a>' rather than making a hyperlink.
|
||||
- You can also use React components with normal variable substitution if you want to insert HTML markup, e.g. ``_t('Your email address is %(emailAddress)s', { emailAddress: <i>{userEmailAddress}</i> })``.
|
||||
|
||||
## Things to know/Style Guides
|
||||
|
||||
@@ -47,3 +59,5 @@ function getColorName(hex) {
|
||||
- If a string is presented in the UI with punctuation like a full stop, include this in the translation strings, since punctuation varies between languages too.
|
||||
- Avoid "translation in parts", i.e. concatenating translated strings or using translated strings in variable substitutions. Context is important for translations, and translating partial strings this way is simply not always possible.
|
||||
- Concatenating strings often also introduces an implicit assumption about word order (e.g. that the subject of the sentence comes first), which is incorrect for many languages.
|
||||
- Translation 'smell test': If you have a string that does not begin with a capital letter (is not the start of a sentence) or it ends with e.g. ':' or a preposition (e.g. 'to') you should recheck that you are not trying to translate a partial sentence.
|
||||
- If you have multiple strings, that are almost identical, except some part (e.g. a word or two) it is still better to translate the full sentence multiple times. It may seem like inefficient repetion, but unlike programming where you try to minimize repetition, translation is much faster if you have many, full, clear, sentences to work with, rather than fewer, but incomplete sentence fragments.
|
||||
|
||||
@@ -35,7 +35,7 @@ Head to the explanations under Steb 2b
|
||||
## Step 2b: Adding a new language
|
||||
|
||||
1. Go to one of the projects listed https://translate.riot.im/projects/riot-web/
|
||||
2. Click the ``Start new language`` button at the bottom
|
||||
2. Click the ``Start new translation`` button at the bottom
|
||||
3. Select a language
|
||||
4. Start translating like in 2a.3
|
||||
5. Repeat these steps for the other projects which are listed at the link of step 2b.1
|
||||
|
||||
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 702 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 102 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 5.6 KiB |
@@ -2,11 +2,12 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "0.13.5-cryptowarning.1",
|
||||
"version": "1.0.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"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"
|
||||
|
||||
@@ -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": {
|
||||
@@ -18,6 +19,19 @@
|
||||
},
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"siteId": 1
|
||||
"siteId": 1,
|
||||
"policyUrl": "https://matrix.org/docs/guides/riot_im_cookie_policy"
|
||||
},
|
||||
"phasedRollOut": {
|
||||
"feature_lazyloading": {
|
||||
"offset": 1539684000000,
|
||||
"period": 604800000
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"feature_lazyloading": "enable"
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
"https://matrix.org": false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
Copyright 2016 Aviral Dasgupta
|
||||
Copyright 2016 OpenMarket Ltd
|
||||
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
|
||||
Copyright 2018 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -23,18 +24,26 @@ const checkSquirrelHooks = require('./squirrelhooks');
|
||||
if (checkSquirrelHooks()) return;
|
||||
|
||||
const argv = require('minimist')(process.argv);
|
||||
const electron = require('electron');
|
||||
const {app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol} = require('electron');
|
||||
const AutoLaunch = require('auto-launch');
|
||||
const path = require('path');
|
||||
|
||||
const tray = require('./tray');
|
||||
const vectorMenu = require('./vectormenu');
|
||||
const webContentsHandler = require('./webcontents-handler');
|
||||
const updater = require('./updater');
|
||||
const { migrateFromOldOrigin } = require('./originMigrator');
|
||||
|
||||
const windowStateKeeper = require('electron-window-state');
|
||||
const Store = require('electron-store');
|
||||
|
||||
if (argv.profile) {
|
||||
electron.app.setPath('userData', `${electron.app.getPath('userData')}-${argv.profile}`);
|
||||
// boolean flag set whilst we are doing one-time origin migration
|
||||
// We only serve the origin migration script while we're actually
|
||||
// migrating to mitigate any risk of it being used maliciously.
|
||||
let migratingOrigin = false;
|
||||
|
||||
if (argv['profile']) {
|
||||
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
|
||||
}
|
||||
|
||||
let vectorConfig = {};
|
||||
@@ -47,8 +56,11 @@ try {
|
||||
// Continue with the defaults (ie. an empty config)
|
||||
}
|
||||
|
||||
const store = new Store();
|
||||
|
||||
let mainWindow = null;
|
||||
global.appQuitting = false;
|
||||
global.minimizeToTray = store.get('minimizeToTray', true);
|
||||
|
||||
|
||||
// handle uncaught errors otherwise it displays
|
||||
@@ -62,14 +74,14 @@ process.on('uncaughtException', function(error) {
|
||||
});
|
||||
|
||||
let focusHandlerAttached = false;
|
||||
electron.ipcMain.on('setBadgeCount', function(ev, count) {
|
||||
electron.app.setBadgeCount(count);
|
||||
if (count === 0) {
|
||||
ipcMain.on('setBadgeCount', function(ev, count) {
|
||||
app.setBadgeCount(count);
|
||||
if (count === 0 && mainWindow) {
|
||||
mainWindow.flashFrame(false);
|
||||
}
|
||||
});
|
||||
|
||||
electron.ipcMain.on('loudNotification', function() {
|
||||
ipcMain.on('loudNotification', function() {
|
||||
if (process.platform === 'win32' && mainWindow && !mainWindow.isFocused() && !focusHandlerAttached) {
|
||||
mainWindow.flashFrame(true);
|
||||
mainWindow.once('focus', () => {
|
||||
@@ -81,39 +93,97 @@ electron.ipcMain.on('loudNotification', function() {
|
||||
});
|
||||
|
||||
let powerSaveBlockerId;
|
||||
electron.ipcMain.on('app_onAction', function(ev, payload) {
|
||||
ipcMain.on('app_onAction', function(ev, payload) {
|
||||
switch (payload.action) {
|
||||
case 'call_state':
|
||||
if (powerSaveBlockerId && electron.powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (powerSaveBlockerId && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (payload.state === 'ended') {
|
||||
electron.powerSaveBlocker.stop(powerSaveBlockerId);
|
||||
powerSaveBlocker.stop(powerSaveBlockerId);
|
||||
}
|
||||
} else {
|
||||
if (payload.state === 'connected') {
|
||||
powerSaveBlockerId = electron.powerSaveBlocker.start('prevent-display-sleep');
|
||||
powerSaveBlockerId = powerSaveBlocker.start('prevent-display-sleep');
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
electron.app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
|
||||
|
||||
const shouldQuit = electron.app.makeSingleInstance((commandLine, workingDirectory) => {
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
if (!mainWindow.isVisible()) mainWindow.show();
|
||||
if (mainWindow.isMinimized()) mainWindow.restore();
|
||||
mainWindow.focus();
|
||||
}
|
||||
autoUpdater.on('update-downloaded', (ev, releaseNotes, releaseName, releaseDate, updateURL) => {
|
||||
if (!mainWindow) return;
|
||||
// forward to renderer
|
||||
mainWindow.webContents.send('update-downloaded', {
|
||||
releaseNotes,
|
||||
releaseName,
|
||||
releaseDate,
|
||||
updateURL,
|
||||
});
|
||||
});
|
||||
|
||||
if (shouldQuit) {
|
||||
console.log('Other instance detected: exiting');
|
||||
electron.app.exit();
|
||||
}
|
||||
ipcMain.on('ipcCall', async function(ev, payload) {
|
||||
if (!mainWindow) return;
|
||||
|
||||
const args = payload.args || [];
|
||||
let ret;
|
||||
|
||||
switch (payload.name) {
|
||||
case 'getUpdateFeedUrl':
|
||||
ret = autoUpdater.getFeedURL();
|
||||
break;
|
||||
case 'getAutoLaunchEnabled':
|
||||
ret = launcher.isEnabled;
|
||||
break;
|
||||
case 'setAutoLaunchEnabled':
|
||||
if (args[0]) {
|
||||
launcher.enable();
|
||||
} else {
|
||||
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;
|
||||
case 'focusWindow':
|
||||
if (mainWindow.isMinimized()) {
|
||||
mainWindow.restore();
|
||||
} else if (!mainWindow.isVisible()) {
|
||||
mainWindow.show();
|
||||
} else {
|
||||
mainWindow.focus();
|
||||
}
|
||||
break;
|
||||
case 'origin_migrate':
|
||||
migratingOrigin = true;
|
||||
await migrateFromOldOrigin();
|
||||
migratingOrigin = false;
|
||||
break;
|
||||
default:
|
||||
mainWindow.webContents.send('ipcReply', {
|
||||
id: payload.id,
|
||||
error: "Unknown IPC Call: " + payload.name,
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
mainWindow.webContents.send('ipcReply', {
|
||||
id: payload.id,
|
||||
reply: ret,
|
||||
});
|
||||
});
|
||||
|
||||
app.commandLine.appendSwitch('--enable-usermedia-screen-capturing');
|
||||
|
||||
const gotLock = app.requestSingleInstanceLock();
|
||||
if (!gotLock) {
|
||||
console.log('Other instance detected: exiting');
|
||||
app.exit();
|
||||
}
|
||||
|
||||
const launcher = new AutoLaunch({
|
||||
name: vectorConfig.brand || 'Riot',
|
||||
@@ -123,56 +193,94 @@ const launcher = new AutoLaunch({
|
||||
},
|
||||
});
|
||||
|
||||
const settings = {
|
||||
'auto-launch': {
|
||||
get: launcher.isEnabled,
|
||||
set: function(bool) {
|
||||
if (bool) {
|
||||
return launcher.enable();
|
||||
} else {
|
||||
return launcher.disable();
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
// Register the scheme the app is served from as 'standard'
|
||||
// which allows things like relative URLs and IndexedDB to
|
||||
// work.
|
||||
// Also mark it as secure (ie. accessing resources from this
|
||||
// protocol and HTTPS won't trigger mixed content warnings).
|
||||
protocol.registerStandardSchemes(['vector'], {secure: true});
|
||||
|
||||
electron.ipcMain.on('settings_get', async function(ev) {
|
||||
const data = {};
|
||||
|
||||
try {
|
||||
await Promise.all(Object.keys(settings).map(async function (setting) {
|
||||
data[setting] = await settings[setting].get();
|
||||
}));
|
||||
|
||||
ev.sender.send('settings', data);
|
||||
} catch(e) { console.error(e); }
|
||||
});
|
||||
|
||||
electron.ipcMain.on('settings_set', function(ev, key, value) {
|
||||
console.log(key, value);
|
||||
if (settings[key] && settings[key].set) {
|
||||
settings[key].set(value);
|
||||
}
|
||||
});
|
||||
|
||||
electron.app.on('ready', () => {
|
||||
|
||||
if (argv.devtools) {
|
||||
app.on('ready', () => {
|
||||
if (argv['devtools']) {
|
||||
try {
|
||||
const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
|
||||
installExtension(REACT_DEVELOPER_TOOLS)
|
||||
const { default: installExt, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
|
||||
installExt(REACT_DEVELOPER_TOOLS)
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((err) => console.log('An error occurred: ', err));
|
||||
installExtension(REACT_PERF)
|
||||
installExt(REACT_PERF)
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((err) => console.log('An error occurred: ', err));
|
||||
} catch(e) {console.log(e);}
|
||||
} catch (e) {
|
||||
console.log(e);
|
||||
}
|
||||
}
|
||||
|
||||
protocol.registerFileProtocol('vector', (request, callback) => {
|
||||
if (request.method !== 'GET') {
|
||||
callback({error: -322}); // METHOD_NOT_SUPPORTED from chromium/src/net/base/net_error_list.h
|
||||
return null;
|
||||
}
|
||||
|
||||
if (vectorConfig.update_base_url) {
|
||||
console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`);
|
||||
updater.start(vectorConfig.update_base_url);
|
||||
const parsedUrl = new URL(request.url);
|
||||
if (parsedUrl.protocol !== 'vector:') {
|
||||
callback({error: -302}); // UNKNOWN_URL_SCHEME
|
||||
return;
|
||||
}
|
||||
if (parsedUrl.host !== 'vector') {
|
||||
callback({error: -105}); // NAME_NOT_RESOLVED
|
||||
return;
|
||||
}
|
||||
|
||||
const target = parsedUrl.pathname.split('/');
|
||||
|
||||
// path starts with a '/'
|
||||
if (target[0] !== '') {
|
||||
callback({error: -6}); // FILE_NOT_FOUND
|
||||
return;
|
||||
}
|
||||
|
||||
if (target[target.length - 1] == '') {
|
||||
target[target.length - 1] = 'index.html';
|
||||
}
|
||||
|
||||
let baseDir;
|
||||
// first part of the path determines where we serve from
|
||||
if (migratingOrigin && target[1] === 'origin_migrator_dest') {
|
||||
// the origin migrator destination page
|
||||
// (only the destination script needs to come from the
|
||||
// custom protocol: the source part is loaded from a
|
||||
// file:// as that's the origin we're migrating from).
|
||||
baseDir = __dirname + "/../../origin_migrator/dest";
|
||||
} else if (target[1] === 'webapp') {
|
||||
baseDir = __dirname + "/../../webapp";
|
||||
} else {
|
||||
callback({error: -6}); // FILE_NOT_FOUND
|
||||
return;
|
||||
}
|
||||
|
||||
// Normalise the base dir and the target path separately, then make sure
|
||||
// the target path isn't trying to back out beyond its root
|
||||
baseDir = path.normalize(baseDir);
|
||||
|
||||
const relTarget = path.normalize(path.join(...target.slice(2)));
|
||||
if (relTarget.startsWith('..')) {
|
||||
callback({error: -6}); // FILE_NOT_FOUND
|
||||
return;
|
||||
}
|
||||
const absTarget = path.join(baseDir, relTarget);
|
||||
|
||||
callback({
|
||||
path: absTarget,
|
||||
});
|
||||
}, (error) => {
|
||||
if (error) console.error('Failed to register protocol');
|
||||
});
|
||||
|
||||
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 {
|
||||
console.log('No update_base_url is defined: auto update is disabled');
|
||||
}
|
||||
@@ -185,7 +293,8 @@ electron.app.on('ready', () => {
|
||||
defaultHeight: 768,
|
||||
});
|
||||
|
||||
mainWindow = global.mainWindow = new electron.BrowserWindow({
|
||||
const preloadScript = path.normalize(`${__dirname}/preload.js`);
|
||||
mainWindow = global.mainWindow = new BrowserWindow({
|
||||
icon: iconPath,
|
||||
show: false,
|
||||
autoHideMenuBar: true,
|
||||
@@ -194,9 +303,21 @@ electron.app.on('ready', () => {
|
||||
y: mainWindowState.y,
|
||||
width: mainWindowState.width,
|
||||
height: mainWindowState.height,
|
||||
webPreferences: {
|
||||
preload: preloadScript,
|
||||
nodeIntegration: false,
|
||||
sandbox: true,
|
||||
enableRemoteModule: false,
|
||||
// We don't use this: it's useful for the preload script to
|
||||
// share a context with the main page so we can give select
|
||||
// objects to the main page. The sandbox option isolates the
|
||||
// main page from the background script.
|
||||
contextIsolation: false,
|
||||
webgl: false,
|
||||
},
|
||||
});
|
||||
mainWindow.loadURL(`file://${__dirname}/../../webapp/index.html`);
|
||||
electron.Menu.setApplicationMenu(vectorMenu);
|
||||
mainWindow.loadURL('vector://vector/webapp/');
|
||||
Menu.setApplicationMenu(vectorMenu);
|
||||
|
||||
// explicitly hide because setApplicationMenu on Linux otherwise shows...
|
||||
// https://github.com/electron/electron/issues/9621
|
||||
@@ -208,17 +329,22 @@ electron.app.on('ready', () => {
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
});
|
||||
|
||||
if (!argv.hidden) {
|
||||
mainWindow.once('ready-to-show', () => {
|
||||
mainWindow.once('ready-to-show', () => {
|
||||
mainWindowState.manage(mainWindow);
|
||||
|
||||
if (!argv['hidden']) {
|
||||
mainWindow.show();
|
||||
});
|
||||
}
|
||||
} else {
|
||||
// hide here explicitly because window manage above sometimes shows it
|
||||
mainWindow.hide();
|
||||
}
|
||||
});
|
||||
|
||||
mainWindow.on('closed', () => {
|
||||
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)
|
||||
@@ -240,26 +366,37 @@ electron.app.on('ready', () => {
|
||||
}
|
||||
|
||||
webContentsHandler(mainWindow.webContents);
|
||||
mainWindowState.manage(mainWindow);
|
||||
});
|
||||
|
||||
electron.app.on('window-all-closed', () => {
|
||||
electron.app.quit();
|
||||
app.on('window-all-closed', () => {
|
||||
app.quit();
|
||||
});
|
||||
|
||||
electron.app.on('activate', () => {
|
||||
app.on('activate', () => {
|
||||
mainWindow.show();
|
||||
});
|
||||
|
||||
electron.app.on('before-quit', () => {
|
||||
app.on('before-quit', () => {
|
||||
global.appQuitting = true;
|
||||
if (mainWindow) {
|
||||
mainWindow.webContents.send('before-quit');
|
||||
}
|
||||
});
|
||||
|
||||
app.on('second-instance', (ev, commandLine, workingDirectory) => {
|
||||
// If other instance launched with --hidden then skip showing window
|
||||
if (commandLine.includes('--hidden')) return;
|
||||
|
||||
// Someone tried to run a second instance, we should focus our window.
|
||||
if (mainWindow) {
|
||||
if (!mainWindow.isVisible()) mainWindow.show();
|
||||
if (mainWindow.isMinimized()) mainWindow.restore();
|
||||
mainWindow.focus();
|
||||
}
|
||||
});
|
||||
|
||||
// Set the App User Model ID to match what the squirrel
|
||||
// installer uses for the shortcut icon.
|
||||
// This makes notifications work on windows 8.1 (and is
|
||||
// a noop on other platforms).
|
||||
electron.app.setAppUserModelId('com.squirrel.riot-web.Riot');
|
||||
app.setAppUserModelId('com.squirrel.riot-web.Riot');
|
||||
|
||||
62
electron_app/src/originMigrator.js
Normal file
@@ -0,0 +1,62 @@
|
||||
/*
|
||||
Copyright 2018 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
const { BrowserWindow, ipcMain } = require('electron');
|
||||
const path = require('path');
|
||||
|
||||
async function migrateFromOldOrigin() {
|
||||
console.log("Attempting to migrate data between origins");
|
||||
|
||||
// We can use the same preload script: we just need ipcRenderer exposed
|
||||
const preloadScript = path.normalize(`${__dirname}/preload.js`);
|
||||
await new Promise(resolve => {
|
||||
const migrateWindow = new BrowserWindow({
|
||||
show: false,
|
||||
webPreferences: {
|
||||
preload: preloadScript,
|
||||
nodeIntegration: false,
|
||||
sandbox: true,
|
||||
enableRemoteModule: false,
|
||||
webgl: false,
|
||||
},
|
||||
});
|
||||
ipcMain.on('origin_migration_complete', (e, success, sentSummary, storedSummary) => {
|
||||
if (success) {
|
||||
console.log("Origin migration completed successfully!");
|
||||
} else {
|
||||
console.error("Origin migration failed!");
|
||||
}
|
||||
console.error("Data sent", sentSummary);
|
||||
console.error("Data stored", storedSummary);
|
||||
migrateWindow.close();
|
||||
resolve();
|
||||
});
|
||||
ipcMain.on('origin_migration_nodata', (e) => {
|
||||
console.log("No session to migrate from old origin");
|
||||
migrateWindow.close();
|
||||
resolve();
|
||||
});
|
||||
// Normalise the path because in the distribution, __dirname will be inside the
|
||||
// electron asar.
|
||||
const sourcePagePath = path.normalize(__dirname + '/../../origin_migrator/source.html');
|
||||
console.log("Loading path: " + sourcePagePath);
|
||||
migrateWindow.loadURL('file://' + sourcePagePath);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
migrateFromOldOrigin,
|
||||
};
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2018 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -14,20 +14,16 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
const { ipcRenderer, webFrame } = require('electron');
|
||||
|
||||
var React = require('react');
|
||||
// expose ipcRenderer to the renderer process
|
||||
window.ipcRenderer = ipcRenderer;
|
||||
|
||||
module.exports = React.createClass({
|
||||
displayName: 'RoomDropTarget',
|
||||
|
||||
render: function() {
|
||||
return (
|
||||
<div className="mx_RoomDropTarget">
|
||||
<div className="mx_RoomDropTarget_label">
|
||||
{ this.props.label }
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
// Allow the fetch API to load resources from this
|
||||
// protocol: this is necessary to load olm.wasm.
|
||||
// (Also mark it a secure although we've already
|
||||
// done this in the main process).
|
||||
webFrame.registerURLSchemeAsPrivileged('vector', {
|
||||
secure: true,
|
||||
supportFetchAPI: true,
|
||||
});
|
||||
@@ -37,7 +37,7 @@ const template = [
|
||||
submenu: [
|
||||
{ type: 'separator' },
|
||||
{ role: 'resetzoom' },
|
||||
{ role: 'zoomin' },
|
||||
{ role: 'zoomin', accelerator: 'CommandOrControl+=' },
|
||||
{ role: 'zoomout' },
|
||||
{ type: 'separator' },
|
||||
{ role: 'togglefullscreen' },
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
const {clipboard, nativeImage, Menu, MenuItem, shell} = require('electron');
|
||||
const url = require('url');
|
||||
|
||||
const MAILTO_PREFIX = "mailto:";
|
||||
|
||||
const PERMITTED_URL_SCHEMES = [
|
||||
'http:',
|
||||
'https:',
|
||||
'mailto:',
|
||||
MAILTO_PREFIX,
|
||||
];
|
||||
|
||||
function safeOpenURL(target) {
|
||||
@@ -35,16 +37,19 @@ function onLinkContextMenu(ev, params) {
|
||||
const url = params.linkURL || params.srcURL;
|
||||
|
||||
const popupMenu = new Menu();
|
||||
popupMenu.append(new MenuItem({
|
||||
label: url,
|
||||
click() {
|
||||
safeOpenURL(url);
|
||||
},
|
||||
}));
|
||||
// No point trying to open blob: URLs in an external browser: it ain't gonna work.
|
||||
if (!url.startsWith('blob:')) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: url,
|
||||
click() {
|
||||
safeOpenURL(url);
|
||||
},
|
||||
}));
|
||||
}
|
||||
|
||||
if (params.mediaType && params.mediaType === 'image' && !url.startsWith('file://')) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy Image',
|
||||
label: 'Copy image',
|
||||
click() {
|
||||
if (url.startsWith('data:')) {
|
||||
clipboard.writeImage(nativeImage.createFromDataURL(url));
|
||||
@@ -55,13 +60,27 @@ function onLinkContextMenu(ev, params) {
|
||||
}));
|
||||
}
|
||||
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy Link Address',
|
||||
click() {
|
||||
clipboard.writeText(url);
|
||||
},
|
||||
}));
|
||||
popupMenu.popup();
|
||||
// No point offering to copy a blob: URL either
|
||||
if (!url.startsWith('blob:')) {
|
||||
// Special-case e-mail URLs to strip the `mailto:` like modern browsers do
|
||||
if (url.startsWith(MAILTO_PREFIX)) {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy email address',
|
||||
click() {
|
||||
clipboard.writeText(url.substr(MAILTO_PREFIX.length));
|
||||
},
|
||||
}));
|
||||
} else {
|
||||
popupMenu.append(new MenuItem({
|
||||
label: 'Copy link address',
|
||||
click() {
|
||||
clipboard.writeText(url);
|
||||
},
|
||||
}));
|
||||
}
|
||||
}
|
||||
// popup() requires an options object even for no options
|
||||
popupMenu.popup({});
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
@@ -88,7 +107,8 @@ function onSelectedContextMenu(ev, params) {
|
||||
const items = _CutCopyPasteSelectContextMenus(params);
|
||||
const popupMenu = Menu.buildFromTemplate(items);
|
||||
|
||||
popupMenu.popup();
|
||||
// popup() requires an options object even for no options
|
||||
popupMenu.popup({});
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
@@ -101,13 +121,26 @@ function onEditableContextMenu(ev, params) {
|
||||
|
||||
const popupMenu = Menu.buildFromTemplate(items);
|
||||
|
||||
popupMenu.popup();
|
||||
// popup() requires an options object even for no options
|
||||
popupMenu.popup({});
|
||||
ev.preventDefault();
|
||||
}
|
||||
|
||||
|
||||
module.exports = (webContents) => {
|
||||
webContents.on('new-window', onWindowOrNavigate);
|
||||
// XXX: The below now does absolutely nothing because of
|
||||
// https://github.com/electron/electron/issues/8841
|
||||
// Whilst this isn't a security issue since without
|
||||
// node integration and with the sandbox, it should be
|
||||
// no worse than opening the site in Chrome, it obviously
|
||||
// means the user has to restart Riot to make it usable
|
||||
// again (often unintuitive because it minimises to the
|
||||
// system tray). We therefore need to be vigilant about
|
||||
// putting target="_blank" on links in Riot (although
|
||||
// we should generally be doing this anyway since links
|
||||
// navigating you away from Riot in the browser is
|
||||
// also annoying).
|
||||
webContents.on('will-navigate', onWindowOrNavigate);
|
||||
|
||||
webContents.on('context-menu', function(ev, params) {
|
||||
|
||||
@@ -32,9 +32,12 @@ const olm_entry = webpack_config.entry['olm'];
|
||||
// 'preprocessors' config below)
|
||||
delete webpack_config['entry'];
|
||||
|
||||
// make sure we're flagged as development to avoid wasting time optimising
|
||||
webpack_config.mode = 'development';
|
||||
|
||||
// add ./test as a search path for js
|
||||
webpack_config.module.loaders.unshift({
|
||||
test: /\.js$/, loader: "babel",
|
||||
webpack_config.module.rules.unshift({
|
||||
test: /\.js$/, use: "babel-loader",
|
||||
include: [path.resolve('./src'), path.resolve('./test')],
|
||||
});
|
||||
|
||||
@@ -46,8 +49,9 @@ webpack_config.module.noParse.push(/sinon\/pkg\/sinon\.js$/);
|
||||
// ?
|
||||
webpack_config.resolve.alias['sinon'] = 'sinon/pkg/sinon.js';
|
||||
|
||||
webpack_config.resolve.root = [
|
||||
webpack_config.resolve.modules = [
|
||||
path.resolve('./test'),
|
||||
"node_modules"
|
||||
];
|
||||
|
||||
webpack_config.devtool = 'inline-source-map';
|
||||
@@ -70,14 +74,21 @@ module.exports = function (config) {
|
||||
// This isn't required by any of the tests, but it stops karma
|
||||
// logging warnings when it serves a 404 for them.
|
||||
{
|
||||
pattern: 'src/skins/vector/img/*',
|
||||
pattern: 'node_modules/matrix-react-sdk/res/img/*',
|
||||
watched: false, included: false, served: true, nocache: false,
|
||||
},
|
||||
{
|
||||
pattern: 'res/**',
|
||||
watched: false, included: false, served: true, nocache: false,
|
||||
},
|
||||
],
|
||||
|
||||
proxies: {
|
||||
// redirect img links to the karma server. See above.
|
||||
"/img/": "/base/src/skins/vector/img/",
|
||||
"/img/": "/base/node_modules/matrix-react-sdk/res/img/",
|
||||
"/themes/": "/base/res/themes/",
|
||||
"/welcome.html": "/base/res/welcome.html",
|
||||
"/welcome/": "/base/res/welcome/",
|
||||
},
|
||||
|
||||
// preprocess matching files before serving them to the browser
|
||||
|
||||
19
origin_migrator/dest/browser-matrix.min.js
vendored
Normal file
6
origin_migrator/dest/dest.html
Normal file
@@ -0,0 +1,6 @@
|
||||
<html>
|
||||
<body>
|
||||
<script src="browser-matrix.min.js"></script>
|
||||
<script src="dest.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
125
origin_migrator/dest/dest.js
Normal file
@@ -0,0 +1,125 @@
|
||||
/*
|
||||
Copyright 2018 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
const SOURCE_ORIGIN = 'file://';
|
||||
|
||||
const IndexedDBCryptoStore = window.matrixcs.IndexedDBCryptoStore;
|
||||
const cryptoStore = new IndexedDBCryptoStore(window.indexedDB, 'matrix-js-sdk:crypto');
|
||||
|
||||
let accountStored = 0;
|
||||
let sessionsStored = 0;
|
||||
let inboundGroupSessionsStored = 0;
|
||||
let deviceDataStored = 0;
|
||||
let roomsStored = 0;
|
||||
let localStorageKeysStored = 0;
|
||||
|
||||
const promises = [];
|
||||
|
||||
async function onMessage(e) {
|
||||
if (e.origin !== SOURCE_ORIGIN) return;
|
||||
|
||||
const data = e.data.data; // bleh, naming clash
|
||||
switch (e.data.cmd) {
|
||||
case 'init':
|
||||
// start with clean stores before we migrate data in
|
||||
window.localStorage.clear();
|
||||
await cryptoStore.deleteAllData();
|
||||
|
||||
e.source.postMessage({
|
||||
cmd: 'initOK',
|
||||
}, SOURCE_ORIGIN);
|
||||
break;
|
||||
case 'storeAccount':
|
||||
promises.push(cryptoStore.doTxn(
|
||||
'readwrite', [IndexedDBCryptoStore.STORE_ACCOUNT],
|
||||
(txn) => {
|
||||
cryptoStore.storeAccount(txn, data);
|
||||
},
|
||||
).then(() => {
|
||||
++accountStored;
|
||||
}));
|
||||
break;
|
||||
case 'storeSessions':
|
||||
promises.push(cryptoStore.doTxn(
|
||||
'readwrite', [IndexedDBCryptoStore.STORE_SESSIONS],
|
||||
(txn) => {
|
||||
for (const sess of data) {
|
||||
cryptoStore.storeEndToEndSession(sess.deviceKey, sess.sessionId, sess, txn);
|
||||
}
|
||||
},
|
||||
).then(() => {
|
||||
sessionsStored += data.length;
|
||||
}));
|
||||
break;
|
||||
case 'storeInboundGroupSessions':
|
||||
promises.push(cryptoStore.doTxn(
|
||||
'readwrite', [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS],
|
||||
(txn) => {
|
||||
for (const sess of data) {
|
||||
cryptoStore.addEndToEndInboundGroupSession(
|
||||
sess.senderKey, sess.sessionId, sess.sessionData, txn,
|
||||
);
|
||||
}
|
||||
},
|
||||
).then(() => {
|
||||
inboundGroupSessionsStored += data.length;
|
||||
}));
|
||||
break;
|
||||
case 'storeDeviceData':
|
||||
promises.push(cryptoStore.doTxn(
|
||||
'readwrite', [IndexedDBCryptoStore.STORE_DEVICE_DATA],
|
||||
(txn) => {
|
||||
cryptoStore.storeEndToEndDeviceData(data, txn);
|
||||
},
|
||||
).then(() => {
|
||||
++deviceDataStored;
|
||||
}));
|
||||
break;
|
||||
case 'storeRooms':
|
||||
promises.push(cryptoStore.doTxn(
|
||||
'readwrite', [IndexedDBCryptoStore.STORE_ROOMS],
|
||||
(txn) => {
|
||||
for (const [roomId, roomInfo] of Object.entries(data)) {
|
||||
cryptoStore.storeEndToEndRoom(roomId, roomInfo, txn);
|
||||
}
|
||||
},
|
||||
).then(() => {
|
||||
++roomsStored;
|
||||
}));
|
||||
break;
|
||||
case 'storeLocalStorage':
|
||||
window.localStorage.setItem(data.key, data.val);
|
||||
++localStorageKeysStored;
|
||||
break;
|
||||
case 'getSummary':
|
||||
await Promise.all(promises);
|
||||
e.source.postMessage({
|
||||
cmd: 'summary',
|
||||
data: {
|
||||
accountStored,
|
||||
sessionsStored,
|
||||
inboundGroupSessionsStored,
|
||||
deviceDataStored,
|
||||
roomsStored,
|
||||
localStorageKeysStored,
|
||||
},
|
||||
}, SOURCE_ORIGIN);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
window.addEventListener('message', onMessage);
|
||||
|
||||
7
origin_migrator/source.html
Normal file
@@ -0,0 +1,7 @@
|
||||
<html>
|
||||
<body>
|
||||
<script src="dest/browser-matrix.min.js"></script>
|
||||
<script src="source.js"></script>
|
||||
<iframe name="dest" src="vector://vector/origin_migrator_dest/dest.html" onload="doMigrate()"></iframe>
|
||||
</body>
|
||||
</html>
|
||||
210
origin_migrator/source.js
Normal file
@@ -0,0 +1,210 @@
|
||||
/*
|
||||
Copyright 2018 New Vector Ltd
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
const TARGET_ORIGIN = 'vector://vector';
|
||||
const BATCH_SIZE = 500;
|
||||
let destFrame;
|
||||
|
||||
let initResolver = null;
|
||||
let getSummaryResolver = null;
|
||||
|
||||
function onMessage(e) {
|
||||
if (e.origin !== TARGET_ORIGIN) return;
|
||||
|
||||
if (e.data.cmd === 'initOK' && initResolver) {
|
||||
initResolver();
|
||||
initResolver = null;
|
||||
} else if (e.data.cmd === 'summary' && getSummaryResolver) {
|
||||
getSummaryResolver(e.data.data);
|
||||
getSummaryResolver = null;
|
||||
}
|
||||
}
|
||||
|
||||
async function initDestFrame() {
|
||||
return new Promise(resolve => {
|
||||
initResolver = resolve;
|
||||
destFrame.postMessage({
|
||||
cmd: 'init',
|
||||
}, TARGET_ORIGIN);
|
||||
});
|
||||
}
|
||||
|
||||
async function getSummary() {
|
||||
return new Promise(resolve => {
|
||||
getSummaryResolver = resolve;
|
||||
destFrame.postMessage({
|
||||
cmd: 'getSummary',
|
||||
}, TARGET_ORIGIN);
|
||||
});
|
||||
}
|
||||
|
||||
async function doMigrate() {
|
||||
let accountSent = 0;
|
||||
let sessionsSent = 0;
|
||||
let inboundGroupSessionsSent = 0;
|
||||
let deviceDataSent = 0;
|
||||
let roomsSent = 0;
|
||||
let localStorageKeysSent = 0;
|
||||
|
||||
if (!window.ipcRenderer) {
|
||||
console.error("ipcRenderer not found");
|
||||
return;
|
||||
}
|
||||
|
||||
if (window.localStorage.getItem('mx_user_id') === null) {
|
||||
window.ipcRenderer.send("origin_migration_nodata");
|
||||
return;
|
||||
}
|
||||
|
||||
destFrame = window.parent.frames.dest;
|
||||
|
||||
await initDestFrame();
|
||||
|
||||
const IndexedDBCryptoStore = window.matrixcs.IndexedDBCryptoStore;
|
||||
|
||||
const cryptoStore = new IndexedDBCryptoStore(window.indexedDB, 'matrix-js-sdk:crypto');
|
||||
|
||||
await cryptoStore.doTxn(
|
||||
'readonly', [IndexedDBCryptoStore.STORE_ACCOUNT],
|
||||
(txn) => {
|
||||
cryptoStore.getAccount(txn, (account) => {
|
||||
destFrame.postMessage({
|
||||
cmd: 'storeAccount',
|
||||
data: account,
|
||||
}, TARGET_ORIGIN);
|
||||
++accountSent;
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
await cryptoStore.doTxn(
|
||||
'readonly', [IndexedDBCryptoStore.STORE_SESSIONS],
|
||||
(txn) => {
|
||||
let sessBatch = [];
|
||||
cryptoStore.getAllEndToEndSessions(txn, (sessInfo) => {
|
||||
if (sessInfo) {
|
||||
++sessionsSent;
|
||||
sessBatch.push(sessInfo);
|
||||
}
|
||||
if (sessBatch.length >= BATCH_SIZE || sessInfo === null) {
|
||||
destFrame.postMessage({
|
||||
cmd: 'storeSessions',
|
||||
data: sessBatch,
|
||||
}, TARGET_ORIGIN);
|
||||
sessBatch = [];
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
await cryptoStore.doTxn(
|
||||
'readonly', [IndexedDBCryptoStore.STORE_INBOUND_GROUP_SESSIONS],
|
||||
(txn) => {
|
||||
let sessBatch = [];
|
||||
cryptoStore.getAllEndToEndInboundGroupSessions(txn, (sessInfo) => {
|
||||
if (sessInfo) {
|
||||
++inboundGroupSessionsSent;
|
||||
sessBatch.push(sessInfo);
|
||||
}
|
||||
if (sessBatch.length >= BATCH_SIZE || sessInfo === null) {
|
||||
destFrame.postMessage({
|
||||
cmd: 'storeInboundGroupSessions',
|
||||
data: sessBatch,
|
||||
}, TARGET_ORIGIN);
|
||||
sessBatch = [];
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
await cryptoStore.doTxn(
|
||||
'readonly', [IndexedDBCryptoStore.STORE_DEVICE_DATA],
|
||||
(txn) => {
|
||||
cryptoStore.getEndToEndDeviceData(txn, (deviceData) => {
|
||||
destFrame.postMessage({
|
||||
cmd: 'storeDeviceData',
|
||||
data: deviceData,
|
||||
}, TARGET_ORIGIN);
|
||||
++deviceDataSent;
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
await cryptoStore.doTxn(
|
||||
'readonly', [IndexedDBCryptoStore.STORE_ROOMS],
|
||||
(txn) => {
|
||||
cryptoStore.getEndToEndRooms(txn, (rooms) => {
|
||||
destFrame.postMessage({
|
||||
cmd: 'storeRooms',
|
||||
data: rooms,
|
||||
}, TARGET_ORIGIN);
|
||||
++roomsSent;
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
// we don't bother migrating;
|
||||
// * sync data (we can just initialsync again)
|
||||
// * logs
|
||||
// * key requests (worst case they'll just be re-sent)
|
||||
// * sessions needing backup (feature isn't available on Electron)
|
||||
|
||||
for (let i = 0; i < window.localStorage.length; ++i) {
|
||||
const key = window.localStorage.key(i);
|
||||
const val = window.localStorage.getItem(key);
|
||||
|
||||
destFrame.postMessage({
|
||||
cmd: 'storeLocalStorage',
|
||||
data: { key, val },
|
||||
}, TARGET_ORIGIN);
|
||||
++localStorageKeysSent;
|
||||
}
|
||||
|
||||
const summary = await getSummary();
|
||||
let success = false;
|
||||
if (
|
||||
summary.accountStored === accountSent &&
|
||||
summary.sessionsStored === sessionsSent &&
|
||||
summary.inboundGroupSessionsStored === inboundGroupSessionsSent &&
|
||||
summary.deviceDataStored === deviceDataSent &&
|
||||
summary.roomsStored === roomsSent &&
|
||||
summary.localStorageKeysStored === localStorageKeysSent
|
||||
) {
|
||||
success = true;
|
||||
window.localStorage.clear();
|
||||
await cryptoStore.deleteAllData();
|
||||
|
||||
// we don't bother migrating them, but also blow away the sync & logs db,
|
||||
// otherwise they'll just hang about taking up space
|
||||
await new Promise(resolve => {
|
||||
const req = window.indexedDB.deleteDatabase('matrix-js-sdk:riot-web-sync');
|
||||
req.onsuccess = resolve;
|
||||
req.onerror = resolve;
|
||||
});
|
||||
await new Promise(resolve => {
|
||||
const req = window.indexedDB.deleteDatabase('logs');
|
||||
req.onsuccess = resolve;
|
||||
req.onerror = resolve;
|
||||
});
|
||||
}
|
||||
|
||||
window.ipcRenderer.send("origin_migration_complete", success, {
|
||||
accountSent, sessionsSent, inboundGroupSessionsSent,
|
||||
deviceDataSent, roomsSent, localStorageKeysSent,
|
||||
}, summary);
|
||||
}
|
||||
|
||||
window.addEventListener('message', onMessage);
|
||||
14400
package-lock.json
generated
164
package.json
@@ -2,9 +2,9 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "0.13.5-cryptowarning.1",
|
||||
"version": "1.0.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vector-im/riot-web"
|
||||
@@ -33,19 +33,25 @@
|
||||
"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:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail",
|
||||
"build:bundle:dev": "webpack --optimize-occurence-order --progress --bail",
|
||||
"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": "npm run reskindex && npm run build:res && npm run build:bundle",
|
||||
"build:dev": "npm run reskindex && npm run build:res && npm run build:bundle:dev",
|
||||
"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",
|
||||
"dist": "scripts/package.sh",
|
||||
"install:electron": "install-app-deps",
|
||||
"electron": "npm run install:electron && electron .",
|
||||
"start:res": "node scripts/copy-res.js -w",
|
||||
"start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-file=bundles/_dev_/[name].js -w --progress",
|
||||
"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": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"",
|
||||
"start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
|
||||
"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\"",
|
||||
"lint": "eslint src/",
|
||||
"lintall": "eslint src/ test/",
|
||||
"clean": "rimraf lib webapp electron_app/dist",
|
||||
@@ -54,118 +60,107 @@
|
||||
"test-multi": "karma start"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-polyfill": "^6.5.0",
|
||||
"babel-runtime": "^6.11.6",
|
||||
"bluebird": "^3.5.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"babel-runtime": "^6.26.0",
|
||||
"bluebird": "^3.5.2",
|
||||
"browser-request": "^0.3.3",
|
||||
"classnames": "^2.1.2",
|
||||
"draft-js": "^0.11.0-alpha",
|
||||
"extract-text-webpack-plugin": "^0.9.1",
|
||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||
"favico.js": "^0.3.10",
|
||||
"filesize": "3.5.6",
|
||||
"flux": "2.1.1",
|
||||
"gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
|
||||
"gfm.css": "^1.1.1",
|
||||
"highlight.js": "^9.0.0",
|
||||
"linkifyjs": "^2.1.3",
|
||||
"matrix-js-sdk": "0.9.2-cryptowraning.1",
|
||||
"matrix-react-sdk": "0.11.4-cryptowarning.1",
|
||||
"modernizr": "^3.1.0",
|
||||
"pako": "^1.0.5",
|
||||
"prop-types": "^15.5.10",
|
||||
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279",
|
||||
"gfm.css": "^1.1.2",
|
||||
"highlight.js": "^9.13.1",
|
||||
"matrix-js-sdk": "1.0.1",
|
||||
"matrix-react-sdk": "1.0.2",
|
||||
"modernizr": "^3.6.0",
|
||||
"prop-types": "^15.6.2",
|
||||
"react": "^15.6.0",
|
||||
"react-dnd": "^2.1.4",
|
||||
"react-dnd-html5-backend": "^2.1.2",
|
||||
"react-dom": "^15.6.0",
|
||||
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
|
||||
"sanitize-html": "^1.11.1",
|
||||
"text-encoding-utf-8": "^1.0.1",
|
||||
"ua-parser-js": "^0.7.10",
|
||||
"url": "^0.11.0",
|
||||
"velocity-vector": "vector-im/velocity#059e3b2"
|
||||
"sanitize-html": "^1.19.1",
|
||||
"ua-parser-js": "^0.7.19",
|
||||
"url": "^0.11.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^6.6.0",
|
||||
"babel-cli": "^6.5.2",
|
||||
"babel-core": "^6.14.0",
|
||||
"babel-eslint": "^6.1.0",
|
||||
"babel-loader": "^6.2.5",
|
||||
"babel-cli": "^6.26.0",
|
||||
"babel-core": "^6.26.3",
|
||||
"babel-eslint": "^8.1.1",
|
||||
"babel-loader": "^7.1.5",
|
||||
"babel-plugin-add-module-exports": "^0.2.1",
|
||||
"babel-plugin-transform-async-to-bluebird": "^1.1.1",
|
||||
"babel-plugin-transform-class-properties": "^6.16.0",
|
||||
"babel-plugin-transform-object-rest-spread": "^6.16.0",
|
||||
"babel-plugin-transform-runtime": "^6.15.0",
|
||||
"babel-preset-es2015": "^6.16.0",
|
||||
"babel-preset-es2016": "^6.16.0",
|
||||
"babel-preset-es2017": "^6.16.0",
|
||||
"babel-preset-react": "^6.16.0",
|
||||
"babel-preset-stage-2": "^6.17.0",
|
||||
"chokidar": "^1.6.1",
|
||||
"babel-plugin-transform-class-properties": "^6.24.1",
|
||||
"babel-plugin-transform-object-rest-spread": "^6.26.0",
|
||||
"babel-plugin-transform-runtime": "^6.23.0",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-preset-es2016": "^6.24.1",
|
||||
"babel-preset-es2017": "^6.24.1",
|
||||
"babel-preset-react": "^6.24.1",
|
||||
"babel-preset-stage-2": "^6.24.1",
|
||||
"chokidar": "^2.0.4",
|
||||
"concurrently": "^4.0.1",
|
||||
"cpx": "^1.3.2",
|
||||
"cross-env": "^4.0.0",
|
||||
"css-raw-loader": "^0.1.1",
|
||||
"electron-builder": "^11.2.4",
|
||||
"electron-builder-squirrel-windows": "^11.2.1",
|
||||
"electron-devtools-installer": "^2.2.0",
|
||||
"css-loader": "^2.1.0",
|
||||
"electron-builder": "^20.38.5",
|
||||
"electron-builder-squirrel-windows": "^20.38.5",
|
||||
"electron-devtools-installer": "^2.2.4",
|
||||
"emojione": "^2.2.7",
|
||||
"eslint": "^3.14.0",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"eslint-plugin-babel": "^4.1.1",
|
||||
"eslint-plugin-flowtype": "^2.30.0",
|
||||
"eslint-plugin-react": "^7.4.0",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
"eslint-plugin-flowtype": "^2.50.3",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"expect": "^1.16.0",
|
||||
"file-loader": "^3.0.1",
|
||||
"fs-extra": "^0.30.0",
|
||||
"html-webpack-plugin": "^2.24.0",
|
||||
"html-webpack-plugin": "^3.2.0",
|
||||
"json-loader": "^0.5.3",
|
||||
"karma": "^1.7.0",
|
||||
"karma": "^3.1.1",
|
||||
"karma-chrome-launcher": "^0.2.3",
|
||||
"karma-cli": "^0.1.2",
|
||||
"karma-junit-reporter": "^0.4.1",
|
||||
"karma-cli": "^1.0.1",
|
||||
"karma-junit-reporter": "^2.0.0",
|
||||
"karma-logcapture-reporter": "0.0.1",
|
||||
"karma-mocha": "^0.2.2",
|
||||
"karma-mocha": "^1.3.0",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-spec-reporter": "0.0.31",
|
||||
"karma-summary-reporter": "^1.3.3",
|
||||
"karma-webpack": "^1.7.0",
|
||||
"matrix-mock-request": "^1.2.0",
|
||||
"karma-summary-reporter": "^1.5.1",
|
||||
"karma-webpack": "4.0.0-beta.0",
|
||||
"loader-utils": "^1.2.3",
|
||||
"matrix-mock-request": "^1.2.2",
|
||||
"matrix-react-test-utils": "^0.2.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mocha": "^2.4.5",
|
||||
"parallelshell": "^3.0.2",
|
||||
"mocha": "^5.2.0",
|
||||
"postcss-extend": "^1.0.5",
|
||||
"postcss-import": "^9.0.0",
|
||||
"postcss-loader": "^1.2.2",
|
||||
"postcss-mixins": "^5.4.1",
|
||||
"postcss-nested": "^1.0.0",
|
||||
"postcss-scss": "^0.4.0",
|
||||
"postcss-simple-vars": "^3.0.0",
|
||||
"postcss-import": "^11.1.0",
|
||||
"postcss-loader": "^2.1.6",
|
||||
"postcss-mixins": "^6.2.0",
|
||||
"postcss-nested": "^3.0.0",
|
||||
"postcss-scss": "^1.0.6",
|
||||
"postcss-simple-vars": "^4.1.0",
|
||||
"postcss-strip-inline-comments": "^0.1.5",
|
||||
"react-addons-perf": "^15.4.0",
|
||||
"react-addons-test-utils": "^15.6.0",
|
||||
"rimraf": "^2.4.3",
|
||||
"source-map-loader": "^0.1.5",
|
||||
"webpack": "^1.12.14",
|
||||
"webpack-dev-server": "^1.16.2"
|
||||
"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-2.2.1.tgz"
|
||||
"olm": "https://matrix.org/packages/npm/olm/olm-3.1.0-pre1.tgz"
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"category": "Network",
|
||||
"electronVersion": "1.7.9",
|
||||
"//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
|
||||
"asar": false,
|
||||
"dereference": true,
|
||||
"//files": "We bundle everything, so we only need to include webapp/",
|
||||
"electronVersion": "4.0.6",
|
||||
"files": [
|
||||
"node_modules/**",
|
||||
"src/**",
|
||||
"img/**"
|
||||
],
|
||||
"extraResources": [
|
||||
"webapp/**/*"
|
||||
"webapp/**/*",
|
||||
"origin_migrator/**/*"
|
||||
],
|
||||
"linux": {
|
||||
"target": "deb",
|
||||
@@ -175,8 +170,13 @@
|
||||
"StartupWMClass": "riot"
|
||||
}
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.social-networking"
|
||||
},
|
||||
"win": {
|
||||
"target": "squirrel"
|
||||
"target": {
|
||||
"target": "squirrel"
|
||||
}
|
||||
},
|
||||
"directories": {
|
||||
"buildResources": "electron_app/build",
|
||||
|
||||
11
release.sh
@@ -7,6 +7,15 @@
|
||||
|
||||
set -e
|
||||
|
||||
orig_args=$@
|
||||
|
||||
# chomp any args starting with '-' as these need to go
|
||||
# through to the release script and otherwise we'll get
|
||||
# confused about what the version arg is.
|
||||
while [[ "$1" == -* ]]; do
|
||||
shift
|
||||
done
|
||||
|
||||
cd `dirname $0`
|
||||
|
||||
for i in matrix-js-sdk matrix-react-sdk
|
||||
@@ -38,4 +47,4 @@ git commit package.json -m "$tag"
|
||||
|
||||
cd ..
|
||||
|
||||
exec ./node_modules/matrix-js-sdk/release.sh -z "$@"
|
||||
exec ./node_modules/matrix-js-sdk/release.sh -u vector-im -z "$orig_args"
|
||||
|
||||
BIN
res/flags/AD.png
|
Before Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/AE.png
|
Before Width: | Height: | Size: 1015 B |
BIN
res/flags/AF.png
|
Before Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/AG.png
|
Before Width: | Height: | Size: 4.1 KiB |
BIN
res/flags/AI.png
|
Before Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/AL.png
|
Before Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/AM.png
|
Before Width: | Height: | Size: 654 B |
BIN
res/flags/AO.png
|
Before Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/AQ.png
|
Before Width: | Height: | Size: 3.8 KiB |
BIN
res/flags/AR.png
|
Before Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AS.png
|
Before Width: | Height: | Size: 3.9 KiB |
BIN
res/flags/AT.png
|
Before Width: | Height: | Size: 655 B |
BIN
res/flags/AU.png
|
Before Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/AW.png
|
Before Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AX.png
|
Before Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/AZ.png
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/BA.png
|
Before Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/BB.png
|
Before Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/BD.png
|
Before Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/BE.png
|
Before Width: | Height: | Size: 558 B |
BIN
res/flags/BF.png
|
Before Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BG.png
|
Before Width: | Height: | Size: 659 B |
BIN
res/flags/BH.png
|
Before Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/BI.png
|
Before Width: | Height: | Size: 5.5 KiB |
BIN
res/flags/BJ.png
|
Before Width: | Height: | Size: 811 B |
BIN
res/flags/BL.png
|
Before Width: | Height: | Size: 566 B |
BIN
res/flags/BM.png
|
Before Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/BN.png
|
Before Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/BO.png
|
Before Width: | Height: | Size: 668 B |
BIN
res/flags/BQ.png
|
Before Width: | Height: | Size: 672 B |
BIN
res/flags/BR.png
|
Before Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/BS.png
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/BT.png
|
Before Width: | Height: | Size: 4.8 KiB |
BIN
res/flags/BV.png
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/BW.png
|
Before Width: | Height: | Size: 669 B |
BIN
res/flags/BY.png
|
Before Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/BZ.png
|
Before Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/CA.png
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/CC.png
|
Before Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/CD.png
|
Before Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/CF.png
|
Before Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/CG.png
|
Before Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/CH.png
|
Before Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/CI.png
|
Before Width: | Height: | Size: 568 B |
BIN
res/flags/CK.png
|
Before Width: | Height: | Size: 5.9 KiB |
BIN
res/flags/CL.png
|
Before Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/CM.png
|
Before Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/CN.png
|
Before Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/CO.png
|
Before Width: | Height: | Size: 668 B |
BIN
res/flags/CR.png
|
Before Width: | Height: | Size: 785 B |
BIN
res/flags/CU.png
|
Before Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/CV.png
|
Before Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/CW.png
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/CX.png
|
Before Width: | Height: | Size: 5.0 KiB |
BIN
res/flags/CY.png
|
Before Width: | Height: | Size: 3.5 KiB |
BIN
res/flags/CZ.png
|
Before Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/DE.png
|
Before Width: | Height: | Size: 568 B |
BIN
res/flags/DJ.png
|
Before Width: | Height: | Size: 3.5 KiB |