Bruno Windels
b7e3a54e15
remove now usused code
2021-10-22 17:51:00 +02:00
Bruno Windels
2943cb525f
add comment about possible future optimization
2021-10-22 17:50:45 +02:00
Bruno Windels
1278288a42
cleanup RoomKey to changes and better naming
2021-10-22 17:50:30 +02:00
Bruno Windels
66a93ee108
adapt Session and RoomEncryption to megolm/Decryption API changes
2021-10-22 17:48:53 +02:00
Bruno Windels
ac23119838
convert SessionDecryption to TS and adapt to use KeyLoader
2021-10-22 17:48:35 +02:00
Bruno Windels
b55930f084
convert ReplayDetectionEntry to typescript
2021-10-22 17:47:29 +02:00
Bruno Windels
d6e243321b
convert megolm/Decryption to typescript and adapt to KeyLoader
2021-10-22 17:46:39 +02:00
Bruno Windels
2ddb3fbf72
cleanup
2021-10-22 17:45:55 +02:00
Bruno Windels
77d10c93d6
convert groupby and megolm decryption utils to typescript
2021-10-21 14:40:51 +02:00
Bruno Windels
66a77519d7
implement key caching in KeyLoader
...
merging session cache into it so we can better manage and recycle
keys without exposing too low-level public methods on BaseLRUCache.
Using refCount instead of inUse flag as a key can of course be used
by multiple useKey calls at the same time.
2021-10-21 11:12:54 +02:00
Bruno Windels
3bafc89855
remove unused draft code
2021-10-20 15:25:11 +02:00
Bruno Windels
4fa285e85a
convert LRUCache to ts
2021-10-20 15:24:58 +02:00
Bruno Windels
041cedbc58
fix typescript extension change
2021-10-20 15:24:39 +02:00
Bruno Windels
cbf82fcd29
cleanup code so far
2021-10-20 15:14:17 +02:00
Bruno Windels
5dc0c8c0b3
make 'better' better
2021-10-20 13:38:54 +02:00
Bruno Windels
d7407ecf66
WIP
2021-10-20 11:39:01 +02:00
Danila Fedorin
7b2e452cd5
Rename SortedArray to TypeScript
2021-10-03 22:19:46 -07:00
Bruno Windels
a0f443ccc3
Merge pull request #521 from DanilaFe/typescript-observable
...
Start migrating Observable code to TypeScript.
2021-10-01 09:54:29 +02:00
Bruno Windels
89add8b684
fix sssskey not being migrated properly
2021-09-30 10:18:03 +02:00
Bruno Windels
d10d27c1d6
clear relations for room when forgetting room
2021-09-30 09:49:45 +02:00
Bruno Windels
4cebe26186
Merge pull request #523 from vector-im/bwindels/clear-cache-after-515
...
clear history cache to purge potential timeline corruption from #515
2021-09-30 09:41:24 +02:00
Bruno Windels
42f1603d81
use correct prefix to remove local storage value
2021-09-30 09:25:35 +02:00
Bruno Windels
ccda93cc82
remove leftover logging
2021-09-30 08:40:49 +02:00
Bruno Windels
3556878a1e
clear history cache to purge potential timeline corruption from #515
2021-09-30 08:37:33 +02:00
Danila Fedorin
a7360f409e
Rename ObservableValue to TypeScript
2021-09-29 17:42:57 -07:00
Bruno Windels
e0b9a3fa50
create e2ee identity also when storage got cleared without backup
2021-09-29 20:07:42 +02:00
Bruno Windels
a1c66738db
migration to initialize & restore e2ee identity backup
2021-09-29 19:39:26 +02:00
Bruno Windels
3a064d6796
a IDBRequest when opening the database does not have a source
2021-09-29 19:21:42 +02:00
Bruno Windels
2ef7251079
move ssssKey to e2ee prefix as well so it gets backed up too
2021-09-29 19:21:06 +02:00
Bruno Windels
77bd0d3f3c
store e2ee session values as well in localStorage
2021-09-29 11:49:58 +02:00
Bruno Windels
e31d3abc97
fix ts errors in TimelineEventStore unit tests
2021-09-28 14:20:54 +02:00
Bruno Windels
ec2f1b9833
add unit tests for findExistingKeys
2021-09-28 14:20:21 +02:00
Bruno Windels
edc3a1d33c
convert storage mock to TS and add utility for mock raw database
2021-09-28 14:19:59 +02:00
Bruno Windels
9036b21b5c
don't interpret hex as decimal when decoding the key
...
this fixes #515 as it was causing the gap not to be closed,
because the fragment id was never equal.
2021-09-28 11:34:55 +02:00
Bruno Windels
0846fcc05d
add more logging during gap filling
2021-09-27 16:34:12 +02:00
Bruno Windels
f55f450850
fix findExistingKeys too many (existing but not requested) keys
2021-09-27 16:27:52 +02:00
Bruno Windels
b75e2fe0ce
decode straight to EventKey object
2021-09-24 15:40:33 +02:00
Bruno Windels
0d798178b0
log neighbor fragment id when closing gap
2021-09-23 18:50:40 +02:00
Bruno Windels
c6ed0abfd7
eventIds is missing
2021-09-23 18:49:23 +02:00
Bruno Windels
e6f7f213ec
don't (re)link fragments in fill, close gap if overlap w linked fragment
2021-09-23 18:02:05 +02:00
Bruno Windels
45917eae1d
Merge pull request #494 from vector-im/DanilaFe/backfill-changes
...
Unit tests for GapWriter, using a new timeline mock utility
2021-09-23 10:15:37 +02:00
Bruno Windels
4b7cb6da9e
make backfill limit explicit
2021-09-23 10:10:22 +02:00
Bruno Windels
498c00fe3c
no need for try catch here as we already catch in getKeys
2021-09-22 10:38:29 +02:00
Bruno Windels
ac5a4c2bc6
pass log item everywhere to tryInsert
2021-09-22 10:33:40 +02:00
Bruno Windels
b58e10521f
don't log tryInsert failures anymore as everything is logged in Store
2021-09-22 10:23:28 +02:00
Bruno Windels
1963635dd7
also log index keys for a value when write fails in Store
2021-09-22 10:22:52 +02:00
Bruno Windels
a19d93dbef
don't swallow anything that isn't a request error
2021-09-22 09:36:26 +02:00
Bruno Windels
704d7b32da
add tests
2021-09-21 21:04:29 +02:00
Bruno Windels
6cded5319a
change timelineEventStore.insert to tryInsert
2021-09-21 21:04:10 +02:00
Bruno Windels
12add19c31
add Store.tryAdd, which prevent abort on ConstraintError
2021-09-21 21:03:29 +02:00
Danila Fedorin
92dcc6c980
Remove duplicated lines
2021-09-21 09:39:09 -07:00
Danila Fedorin
a3a743881d
Make test adjustments requested in PR.
2021-09-20 19:37:39 -07:00
Danila Fedorin
50c8b995c3
Undo GapWriter algorithm changes
2021-09-20 18:41:01 -07:00
Danila Fedorin
9f6c48cf0c
Merge branch 'master' into DanilaFe/backfill-changes
2021-09-17 15:19:16 -07:00
Danila Fedorin
820b048272
Finish up the more difficult tests
2021-09-17 10:57:51 -07:00
Bruno Windels
53a0d29244
example how to get more context for the failure of a write operation
2021-09-17 18:25:28 +02:00
Bruno Windels
f5467a653c
fix stores returning the delete promise which isn't returned anymore
...
I checked these aren't awaited in any js file
2021-09-17 18:24:24 +02:00
Bruno Windels
ad45016b87
process write errors on complete or abort in transaction
2021-09-17 18:23:31 +02:00
Bruno Windels
533b0f40d3
pass write errors in a store to the transaction
2021-09-17 18:21:48 +02:00
Bruno Windels
aeedb948cc
pass logger to Storage and make it available in Transaction
2021-09-17 18:19:26 +02:00
Danila Fedorin
82c35355b6
Start translating GapWriter tests to using MockTimeline
2021-09-16 23:54:13 -07:00
Bruno Windels
9a9b206bf5
Merge pull request #486 from vector-im/bwindels/fix-scroll-jumps
...
Fix scroll jumps and loading of gaps not at top of the timeline
2021-09-16 17:14:17 +02:00
Bruno Windels
381a12db20
load 20 entries initially in timeline, otherwise it flickers a bit
2021-09-16 16:34:13 +02:00
Bruno Windels
cce8207870
copy Daniel's conversion of EventEmitter to TypeScript from microui
2021-09-16 10:23:03 +02:00
Danila Fedorin
d2b604e1dd
Stop using at
to fix tests.
2021-09-14 15:57:32 -07:00
Danila Fedorin
df273c5e2c
Store more events from backfill
2021-09-14 15:40:15 -07:00
Danila Fedorin
b2b5690739
Add more tests
2021-09-14 13:54:14 -07:00
Danila Fedorin
f8117b6f98
Lift transaction property to QueryTarget
2021-09-14 11:18:24 -07:00
Danila Fedorin
41e568f783
Add more tests and extract common test code
2021-09-14 11:15:13 -07:00
Danila Fedorin
31577cd496
Draft first two tests
2021-09-14 10:24:18 -07:00
Danila Fedorin
b3df37b0bc
Add the beginning of a tests function for GapWriter
2021-09-13 17:01:32 -07:00
Danila Fedorin
713f675f3a
Mock IDBKeyRange, too
2021-09-13 17:00:49 -07:00
Danila Fedorin
71694787cd
Add an IDBFactory mock parameter
2021-09-13 16:55:55 -07:00
Bruno Windels
9411e6f065
WIP
2021-09-10 14:47:05 +02:00
Bruno Windels
5953cdf0cc
turns out we do write these
2021-09-06 13:10:36 +02:00
Bruno Windels
35f8c40a0c
fix rebase mistake
2021-09-06 13:09:16 +02:00
Bruno Windels
7cb686ce8e
convert EventKey to ts
2021-09-06 13:07:41 +02:00
Bruno Windels
85c8415acd
convert Direction to ts
2021-09-06 13:06:20 +02:00
Bruno Windels
ed082c9869
Merge pull request #475 from vector-im/snowpack-ts-storage-4
...
Snowpack + Typescript conversion (Part 4)
2021-09-06 13:05:08 +02:00
Bruno Windels
36da02c14e
use generics here to say return type of method is same as callback
2021-09-06 13:01:32 +02:00
Bruno Windels
360b4db17a
Merge pull request #474 from vector-im/snowpack-ts-storage-3
...
Snowpack + Typescript conversion (Part 3)
2021-09-06 12:55:46 +02:00
Bruno Windels
ad28f1f9a3
split out Entry type for TimelineEventStore
2021-09-06 12:51:28 +02:00
Bruno Windels
cd98cac4e4
split out Entry type for OlmSessionStore
2021-09-06 12:46:44 +02:00
Bruno Windels
5d8e66a3f3
Merge pull request #473 from vector-im/snowpack-ts-storage-2
...
Snowpack + Typescript conversion (Part 2)
2021-09-06 11:06:46 +02:00
Bruno Windels
6cec583661
fix #483
2021-09-01 14:21:21 +02:00
Danila Fedorin
5b9fd5de94
Import BaseLogger instead of explicitly defining 'any' type
2021-08-31 16:01:13 -07:00
Danila Fedorin
78fb8fdadf
Make export types more precise
2021-08-31 15:59:50 -07:00
Danila Fedorin
2262e6be30
Use store name enum for saving stores
2021-08-31 15:44:03 -07:00
Danila Fedorin
de3807f690
Fix IDBKeyRange type
2021-08-31 15:35:01 -07:00
Danila Fedorin
4eabb7c074
Fix newly emerging type errors in schema
2021-08-31 15:32:33 -07:00
Danila Fedorin
7f8089eaff
Merge branch 'snowpack-ts-storage-3' into snowpack-ts-storage-4
2021-08-31 15:26:26 -07:00
Danila Fedorin
f34ee53a12
Avoid casting to any when a more specific type is possible
2021-08-31 15:14:21 -07:00
Danila Fedorin
bef02d238f
Split keys out of stored data types
2021-08-31 15:12:09 -07:00
Danila Fedorin
f5943ced97
Remove IDBValidKey references
2021-08-31 14:48:38 -07:00
Danila Fedorin
1fcc147da7
Add type to the IDBKeyRange field
2021-08-31 12:16:16 -07:00
Danila Fedorin
056c7d40eb
Rename RoomEvent to TimelineEvent
2021-08-31 12:10:36 -07:00
Danila Fedorin
16d3ed579b
Reduce IDBValidKey returns to the public API
2021-08-31 11:47:54 -07:00
Danila Fedorin
ce20d40ff7
Revert the return-promise change
2021-08-31 11:31:17 -07:00
Danila Fedorin
eb3f5f1ec2
Merge branch 'master' into snowpack-ts-storage-2
2021-08-31 11:13:10 -07:00
Bruno Windels
995ed23b3e
tell TS we're certain to have a txn
2021-08-31 08:43:39 +02:00
Bruno Windels
3d66d71c97
fix conflict
2021-08-31 08:39:12 +02:00
Bruno Windels
f466266a5f
bring back extra caution
2021-08-31 08:16:37 +02:00
Bruno Windels
3ded5b20d3
dedupe some code here
2021-08-31 08:16:27 +02:00
Bruno Windels
7fb5412176
keep comment where it was
2021-08-30 15:12:25 +02:00
Bruno Windels
0d6ae19d99
use same code to add room to identity in migration as in device tracker
2021-08-30 15:05:57 +02:00
Bruno Windels
a437332482
whitespace
2021-08-30 14:52:20 +02:00
Bruno Windels
0ca46bf2ac
don't log here as we log at a lower level, and don't fail on abort
2021-08-30 14:52:04 +02:00
Bruno Windels
ddb6753f8d
fix refactor error
2021-08-27 20:05:53 +02:00
Bruno Windels
6a6762f036
ensure memberwriter works with undefined for state/timeline events array
2021-08-27 20:05:34 +02:00
Bruno Windels
8e6bd6a7a1
add missing room ids to identities for tracked rooms & clear outbound session
2021-08-27 19:39:24 +02:00
Bruno Windels
fa555bedf0
log storage migration
2021-08-27 19:35:11 +02:00
Bruno Windels
0c05e97465
abort upgrade txn on error
2021-08-27 19:07:27 +02:00
Danila Fedorin
9252f3bede
Migrate StorageFactory to TypeScript
2021-08-27 09:30:16 -07:00
Danila Fedorin
5db9d1493a
Migrate export to TypeScript
2021-08-27 09:30:16 -07:00
Danila Fedorin
04e39ef9e2
Migrate quirks to TypeScript
2021-08-27 09:30:16 -07:00
Danila Fedorin
34b173a057
Migrate schema to TypeScript
2021-08-27 09:30:16 -07:00
Danila Fedorin
eae820f91b
Migrate Storage to TypeScript
2021-08-27 09:30:15 -07:00
Danila Fedorin
5f3c9cda97
Migrate Transaction to TypeScript
2021-08-27 09:30:15 -07:00
Danila Fedorin
100aee9dcc
Migrate InboundGroupSessionStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
914abda7c9
Migrate OlmSessionStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
3cd0d1f423
Migrate DeviceIdentityStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
8d44df83c4
Migrate UserIdentityStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
b46ae152d6
Migrate PendingEventStore.js to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
fad6d63c14
Migrate TimelineFragmentStore.js to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
742ab28099
Migrate AccountDataStore.js to TypeScript.
2021-08-27 09:30:10 -07:00
Danila Fedorin
77f75fd968
Migrate OperationStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
8c966627bc
Migrate GroupSessionDecryptionStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
33d94b9497
Migrate OutboundGroupSessionStore to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
5d4454734a
Migrate RoomStateStore.js to TypeScript
2021-08-27 09:30:10 -07:00
Danila Fedorin
af70269169
Merge branch 'snowpack-ts-storage-1' into snowpack-ts-storage-2
2021-08-27 09:29:53 -07:00
Danila Fedorin
4c4687a05f
Avoid unsafe (and error-prone) cast
2021-08-27 09:29:02 -07:00
Bruno Windels
a61f052fe8
fix lint
2021-08-27 17:23:32 +02:00
Bruno Windels
826de7e9cb
Write all members of a sync in one go
...
so state member events written but not causing a memberChange.hasJoined
don't prevent timeline member events for the same user from doing so
2021-08-27 17:11:29 +02:00
Danila Fedorin
b081aa171c
Merge branch 'snowpack-ts-storage-1' into snowpack-ts-storage-2
2021-08-26 17:08:00 -07:00
Danila Fedorin
904a2cbe74
Merge branch 'master' into snowpack-ts-storage-1
2021-08-26 17:07:25 -07:00
Danila Fedorin
a95704528f
Merge branch 'snowpack-ts-storage-1' into snowpack-ts-storage-2
2021-08-26 17:01:23 -07:00
Danila Fedorin
b7d232d56d
Remove unnecessary cast and restrict constructor parameter type
2021-08-26 16:56:03 -07:00
Bruno Windels
d0c1ddb51b
add failing test
2021-08-26 15:18:31 +02:00
Danila Fedorin
6d6821319e
Merge branch 'snowpack-ts-storage-1' into snowpack-ts-storage-2
2021-08-24 11:19:36 -07:00
Danila Fedorin
1707df71df
Try to reduce repitition in CursorIterator
2021-08-24 11:11:30 -07:00
Bruno Windels
cb9606a87b
remove dead code for incomplete memory store
2021-08-24 15:33:41 +02:00
Bruno Windels
e105bc4237
fix lint warnings
2021-08-24 15:31:18 +02:00
Bruno Windels
d1412e1f42
don't retry with www.{host}, as it's a minor security issue
...
if www.host gets hacked (e.g. a bad wordpress plugin), it could spread
to the matrix server running on a different host.
2021-08-23 20:05:42 +02:00
Bruno Windels
59605a2a57
don't fail login on missing cors on well-known
2021-08-23 19:53:33 +02:00
Bruno Windels
c7b47bb8d6
fix homeServer misspelling to homeserver across the project
2021-08-23 19:26:39 +02:00
Bruno Windels
3a5b7c1d0e
support well-known lookup
2021-08-23 18:47:36 +02:00
Bruno Windels
577c3168e6
make queryLogin abortable
2021-08-23 15:54:06 +02:00
Bruno Windels
3b693c5b02
Merge pull request #453 from MidhunSureshR/sso-login
...
[SSO] - [PR 4] - SSO/Token login functionality
2021-08-23 11:38:48 +00:00
RMidhunSuresh
c9fbafb909
Also check LoadStatus.Error
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-23 15:12:40 +05:30
Danila Fedorin
e610087a79
Merge branch 'snowpack-ts-storage-1' into snowpack-ts-storage-2
2021-08-20 12:51:23 -07:00
Danila Fedorin
a2ff02e6c0
Try using an enum for store names.
2021-08-20 12:33:06 -07:00
Danila Fedorin
69953e5277
Migrate TimelineRelationStore.js to TypeScript
2021-08-20 11:23:27 -07:00
Danila Fedorin
e3b1d034f0
Migrate TimelineEventStore.js to TypeScript
2021-08-20 11:23:21 -07:00
Danila Fedorin
7de704ef86
Migrate InviteStore.js to TypeScript.
2021-08-20 11:23:14 -07:00
Danila Fedorin
7c56ac7746
Migrate RoomMemberStore.js to TypeScript
2021-08-20 11:23:08 -07:00
Danila Fedorin
38a38e8287
Migrate common.ts
2021-08-20 11:23:01 -07:00
Danila Fedorin
e284224cc8
Migrate RoomSummaryStore.js to TypeScript.
2021-08-20 11:22:53 -07:00
Danila Fedorin
144e391c82
Migrate SessionStore.js to TypeScript.
2021-08-20 11:22:45 -07:00
Danila Fedorin
be4ad66b12
Merge branch 'snowpack-ts-storage-1' into snowpack-ts-storage-2-fix
2021-08-20 11:21:03 -07:00
Danila Fedorin
0b8acb51a4
Switch errors to using nulls
2021-08-20 10:41:15 -07:00
Danila Fedorin
50b7a8a3fd
Add a comment explaining CursorIterator
2021-08-20 10:34:06 -07:00
Danila Fedorin
94ff76711c
Use 'in' to be more idiomatic
2021-08-20 10:04:22 -07:00
RMidhunSuresh
c650b35831
resetStatus from within startLogin
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-20 20:05:36 +05:30
RMidhunSuresh
2468bc3e9f
Remove homeserver prop
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-20 15:47:30 +05:30
RMidhunSuresh
bdc860eb79
Refactor to pull loadvm into login vm
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-20 15:19:42 +05:30
Danila Fedorin
19bababa68
Use method syntax in QueryTarget.
2021-08-19 17:40:10 -07:00
Danila Fedorin
704a8d99c7
Add missing return types to QueryTarget
2021-08-19 17:39:53 -07:00
RMidhunSuresh
3af2ae3bdd
make method private
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-19 20:50:00 +05:30
RMidhunSuresh
2d842c7174
rename ssoEndpointLink to createSSORedirectURL
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-19 20:50:00 +05:30
RMidhunSuresh
83f4095d88
rename queryLogin to getLoginFlows
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:05:15 +05:30
RMidhunSuresh
7b9ec5516a
Move normalizeHomeserver into session container
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:33 +05:30
RMidhunSuresh
4b72b64a2e
Implement SSOLoginHelper
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:33 +05:30
RMidhunSuresh
3fa955e594
Parse token/sso login in loginOptions
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:33 +05:30
RMidhunSuresh
66f28b90fc
Implement token login
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:33 +05:30
RMidhunSuresh
0af27fc8dd
Move normalizeHomeserver to LoginViewModel
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:33 +05:30
RMidhunSuresh
f3946fcdf3
Pass log as argument
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
9651817c5b
Formatting fix
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
730a6b2d0a
Move files to separate directory
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
46b7d9a373
Add explaining comment
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
72fb7f679b
Add license headers
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
acfe3f30db
Make lint happy
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
a53e29767f
Rewrite password login to use PasswordLoginMethod
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
20765d9688
Create LoginMethod for password login
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:04 +05:30
RMidhunSuresh
e0fcec9102
Add method to query login types
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-18 22:04:02 +05:30
Bruno Windels
4b5f5ddffa
fix ts lint error by making methods abstract
2021-08-18 18:15:03 +02:00
Bruno Windels
02e422f3ac
Merge pull request #448 from vector-im/snowpack-mvp
...
Snowpack MVP
2021-08-18 13:09:02 +00:00
Danila Fedorin
db66570d7a
Migrate Store.js to TypeScript
2021-08-17 16:33:07 -07:00
Danila Fedorin
c4e8ed8851
Migrate QueryTarget.js to TypeScript
2021-08-17 16:30:05 -07:00
Danila Fedorin
28ee87cd2f
Migrate error.js to TypeScript
2021-08-17 16:30:05 -07:00
Danila Fedorin
aa9839ee40
Seemingly fix a bug in utils.ts
2021-08-17 16:30:05 -07:00
Danila Fedorin
cd9fe360a4
Start migrating utils.js to TypeScript
2021-08-17 16:30:05 -07:00
Danila Fedorin
5579c018d1
Migrate common.js to TypeScript
...
Add initial stab at annotating common
Add missing return types and semicolons
2021-08-17 16:30:05 -07:00
Danila Fedorin
8ec8de67b8
Merge branch 'snowpack-mvp' into snowpack-ts-storage-1
2021-08-17 16:29:47 -07:00
Bruno Windels
c3177b06bf
Merge pull request #418 from vector-im/replies
...
Sending replies
2021-08-06 21:28:42 +00:00
Danila Fedorin
3c5b186e31
Switch BaseEntry to TypeScript
2021-08-06 12:54:06 -07:00
Danila Fedorin
ac044cb5c2
Rename pending event fields
2021-08-06 10:27:17 -07:00
Danila Fedorin
1207203b00
Prefer relations from encrypted content
2021-08-06 10:22:43 -07:00
Danila Fedorin
5a0bc55e54
Rename reply function in reply.js
2021-08-06 10:16:20 -07:00
RMidhunSuresh
be57352f71
Move PowerLevels.js into /room
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 19:49:48 +05:30
RMidhunSuresh
1a062f69fd
Check state_key is zero-length string
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 19:02:50 +05:30
RMidhunSuresh
d85cf982cc
Check if state_key is present
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:34:21 +05:30
RMidhunSuresh
187cf5cd28
Use optional chaining
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:23:01 +05:30
RMidhunSuresh
2cae7c41d3
Check timeline before state
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
RMidhunSuresh
4ddc7c0683
Update powerlevels in afterSync
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
RMidhunSuresh
40128c7ff6
Set pl from room response
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
RMidhunSuresh
b75760c437
Add event type string
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-06 17:15:40 +05:30
Bruno Windels
73884cff0d
Merge pull request #412 from MidhunSureshR/member
...
Member panel - PR 1 - Add method to fetch member
2021-08-05 11:13:52 +00:00
RMidhunSuresh
7e481080b5
Return null
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-05 16:32:06 +05:30
Danila Fedorin
06961ff693
Add isReply flag to entries
2021-08-04 15:30:35 -07:00
Danila Fedorin
960e3ec469
Fix unsubscribing from observed events containing null
2021-08-04 11:08:35 -07:00
Danila Fedorin
2375bf061c
Strip relates_to from encrypted events' original contents.
2021-08-04 10:26:03 -07:00
Danila Fedorin
fa985f8f16
Blurb isn't really the right word.
2021-08-04 09:30:02 -07:00
Danila Fedorin
611c6e9717
Move replying code into reply.js and add license
2021-08-04 09:26:26 -07:00
Bruno Windels
0dc5041f47
WIP
2021-08-04 15:23:03 +02:00
Danila Fedorin
8956f6ecf4
Fuse methods and properties related to replies
2021-08-03 13:10:36 -07:00
RMidhunSuresh
c9a4c393ed
Return null
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 23:51:19 +05:30
RMidhunSuresh
e363d32921
Return null on error
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 23:42:55 +05:30
RMidhunSuresh
bb68b4d367
Fetch member data from from state event if needed
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 23:01:44 +05:30
RMidhunSuresh
6cfb4cfbe0
Support state events
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-08-02 17:50:09 +05:30
Danila Fedorin
9bd7d1397c
Preserve the m.relates_to field for message.
2021-07-30 14:37:34 -07:00
Danila Fedorin
e2ad589aa3
Go through and clean up affected files.
2021-07-27 16:51:34 -07:00
Danila Fedorin
3d911f2a22
Add escaping to replies
2021-07-26 14:49:06 -07:00
Danila Fedorin
305fab467e
Send a formatted body from quotes
2021-07-23 16:45:22 -07:00
Danila Fedorin
0db6870edb
Flesh out the fallback formatting a bit.
2021-07-23 16:37:23 -07:00
Danila Fedorin
c0d39a5983
Add very rudimentary fallback reply formatting code
2021-07-23 15:34:04 -07:00
Danila Fedorin
242a9c209b
Handle replies in EventEntry
2021-07-23 14:34:11 -07:00
RMidhunSuresh
3aeb0c4d98
Indicate if no member found
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-21 18:34:55 +05:30
Danila Fedorin
46215b3c51
Add the ability to reply
2021-07-20 12:53:31 -07:00
Danila Fedorin
800b4785d1
Accomodate in_reply_to relation shape
2021-07-20 12:17:44 -07:00
RMidhunSuresh
05f05bb577
Add method to get member from storage
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-19 19:36:09 +05:30
Danila Fedorin
c9e937c41c
Add redundancy to prevent stored nulls from causing errors.
2021-07-17 13:29:20 -07:00
Danila Fedorin
ad453555b9
Avoid storing null for invite avatars.
2021-07-17 13:23:13 -07:00
RMidhunSuresh
436e87578e
Initialize prop in constructor
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
e406aa6e45
Add jsdoc for powerlevels
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
2502c4024a
Fix broken tests
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
8e39aed4b6
Ensure that power levels are loaded only once
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
14c00f50fc
Make loadPowerLevels private
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
22fab3761a
Remove timeline reader and only use roomState
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
8a976ef24b
Make powerLevels observable
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
11eb9c7783
Use set instead of add in memberlist
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
cb5e598e95
Getter for powerlevel from room
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
RMidhunSuresh
f7a6fbd901
Make getUserLevel() public
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-07-16 17:08:18 +05:30
Danila Fedorin
f7d6569154
Add a small comment to Invite.avatarColorId, too.
2021-06-30 15:21:11 -07:00
Danila Fedorin
b40f946b85
Add JSDoc to new Hero method
2021-06-30 15:15:08 -07:00
Danila Fedorin
ee1f1500e9
Roll back to using heroes for computing DM color
2021-06-30 15:07:40 -07:00
Danila Fedorin
d0f70cbdf9
Move avatar color ID computation into SummaryData
2021-06-29 18:01:08 -07:00
Danila Fedorin
dec0683145
Correctly color archived and invited rooms
2021-06-29 16:50:42 -07:00
Danila Fedorin
97854423c4
Ensure DM rooms have the same color in timeline and left panel.
2021-06-28 11:44:27 -07:00
Bruno Windels
09aba78803
Merge branch 'master' into room-info
2021-06-24 15:06:37 +00:00
Bruno Windels
eee1be1ceb
safari doesn't like empty string key paths 🙄
2021-06-24 16:16:15 +02:00
Bruno Windels
575f3fa966
fix tests
2021-06-24 14:28:10 +02:00
Bruno Windels
299294daff
prevent re(d)action in left/kicked room
2021-06-24 14:24:22 +02:00
Bruno Windels
b148368d5b
test different keys do work still
2021-06-24 13:29:13 +02:00
Bruno Windels
668c0aff36
drop duplicate reactions in send queue, as last measure of defence
2021-06-24 13:25:58 +02:00
Bruno Windels
c46c330efb
prevent duplicate redactions from distorting reaction local echo
2021-06-24 13:14:54 +02:00
Bruno Windels
061f44f475
extract methods here
2021-06-24 12:56:23 +02:00
Bruno Windels
a4a7c23148
use pending re(d)action timestamp to have stable reaction sorting order
...
also move more logic into the matrix layer, from Reaction(s)ViewModel
to PendingAnnotation
2021-06-24 12:26:38 +02:00
Bruno Windels
52957beb82
don't encrypt reactions
2021-06-23 17:49:27 +02:00
Bruno Windels
e125599a47
prevent decryption result getting lost after reaction updates entry
2021-06-23 17:38:52 +02:00
Bruno Windels
616d701ebb
add test that redaction for non-sending event aborts it
2021-06-21 19:02:42 +02:00
Bruno Windels
0e750db9ae
write unit tests for (re)aggregating annotations in RelationWriter
2021-06-21 18:16:21 +02:00
Bruno Windels
d1345d0f83
write test for redaction in RelationWriter
2021-06-21 17:52:02 +02:00
Bruno Windels
11fba12083
add tests for remote reaction target being added after pending event
2021-06-18 15:09:14 +02:00
Bruno Windels
0703cf8915
cleanup
2021-06-18 15:06:49 +02:00
Bruno Windels
5bea8130f2
more timeline annotation tests
2021-06-18 14:39:54 +02:00
Bruno Windels
9f99cf4b1e
fix lint in tests
2021-06-18 11:52:09 +02:00
Bruno Windels
8092713faa
add tests for local echo of adding and removing reaction
2021-06-18 11:51:02 +02:00
Bruno Windels
70d64f38eb
spelling
2021-06-17 16:07:32 +02:00
Bruno Windels
cad884aa41
fix local redaction echo while already sending target
2021-06-17 16:07:09 +02:00
Bruno Windels
a77ef02677
cleanup
2021-06-17 10:12:45 +02:00
Bruno Windels
cbee498d41
a bit more brief
2021-06-17 10:03:32 +02:00
Bruno Windels
bf84b59e39
more accurate test name and also test >=
2021-06-17 09:59:24 +02:00
Bruno Windels
099f99a96b
check power levels to see if we can react
2021-06-17 09:41:25 +02:00
Bruno Windels
150f58a6b3
don't aggregate relations on redacted events
2021-06-16 18:00:50 +02:00
Bruno Windels
ce5409dc26
aggregate relations when seeing event target during back-pagination
2021-06-16 17:40:29 +02:00
Bruno Windels
9099a76f45
fix spelling in comment
2021-06-16 17:30:48 +02:00
Bruno Windels
bbcf0d2572
more local echo fixes for redacting a reaction + cleanup
2021-06-16 12:46:44 +02:00
Bruno Windels
4f10174e48
clarify comment
2021-06-16 10:28:17 +02:00
Bruno Windels
3b629622d9
need to keep pending count around if 0 or less for redaction local echo
...
also need to be able to tell the difference between no pending reactions
and redactions and the sum being 0 (having both a redaction and
reaction) so we keep isPending to true
2021-06-16 10:23:22 +02:00
Bruno Windels
e5c1094153
WIP
2021-06-15 19:06:41 +02:00
Bruno Windels
75ee509361
fix lint
2021-06-11 11:30:11 +02:00
Bruno Windels
757e08c62c
WIP 4
2021-06-10 18:29:10 +02:00
Bruno Windels
cb051ad161
WIP3
2021-06-09 16:52:30 +02:00
RMidhunSuresh
c6f3b1fbbe
Do not use private props from room summary
...
Signed-off-by: RMidhunSuresh <rmidhunsuresh@gmail.com>
2021-06-09 16:51:18 +05:30
Bruno Windels
206d18f498
WIP2
2021-06-08 16:56:17 +02:00
Bruno Windels
2ebadb36c3
WIP
2021-06-08 13:20:55 +02:00
Bruno Windels
3e47877645
Merge branch 'master' into bwindels/reactions
2021-06-04 16:33:10 +02:00
Bruno Windels
33655ee37e
forgot to export class
2021-06-04 16:32:03 +02:00
Bruno Windels
7691b28503
prevent another race between sync and openTimeline
2021-06-04 16:28:08 +02:00
Bruno Windels
bb6905bdcd
don't assume localEntries exists, as load races with sync.afterSync
2021-06-04 16:05:28 +02:00
Bruno Windels
b7402ce43c
support local echo for adding a reaction
2021-06-04 15:34:44 +02:00
Bruno Windels
8bf160dfc0
handle sending relations to events that haven't been sent yet
2021-06-04 10:48:59 +02:00
Bruno Windels
bb8acbefa3
support undoing a reaction
2021-06-03 19:57:16 +02:00
Bruno Windels
20abb01ee8
very basic way of sending a reaction
2021-06-03 19:16:53 +02:00
Bruno Windels
2152d5e833
expose reactions on base message tile as vm with observable list
2021-06-03 19:15:49 +02:00
Bruno Windels
b94ab42c90
delete annotations object when no more annotations left
2021-06-03 19:10:29 +02:00
Bruno Windels
a78e9af8fc
Support (de)aggregating annotation relations in relation writer
...
When deaggregating on redacting an annotation relation, we remove the
relation and aggregate the other relations for that key again, so we can
reliably detect the first timestamp (and count and me as well to lesser
extent).
as a consequence, more than one event can get updated when redacting a
relation (the relation is updated, as well as the relation target), so
account for that by returning an array of entries that have updated.
2021-06-03 16:50:37 +02:00
Bruno Windels
41fb30c68b
add relations store
2021-06-03 16:50:37 +02:00
Bruno Windels
36a35d92f0
pass ownUserId to RelationWriter
...
We'll need to to aggregate whether we have reacted to a message
Create writers at room level and pass subwriter is dependency, rather
than creating them in sync and gap writer.
2021-06-03 16:50:37 +02:00
Bruno Windels
46bfab3eb7
fix some lint and comment
2021-06-03 16:50:11 +02:00
Bruno Windels
d965d57be7
don't leak timeline when an error is thrown while opening it
...
or you are just stuck with "not dealing with race" errors until refresh
2021-06-02 18:44:03 +02:00
Bruno Windels
0c4c018ceb
add note that powerlevels won't update when the state event is changed
2021-06-02 18:43:47 +02:00
Bruno Windels
d2f5b412ac
don't try to hook up local relations for events that are not relations
...
and do unnecessary work
2021-06-02 18:43:16 +02:00
Bruno Windels
365bd5cad0
fix the race
2021-06-02 18:42:46 +02:00
Bruno Windels
84ecaa2ee1
don't trip over missing create events when loading power levels
...
as the test from previous commit fails because of that, and powerlevels
works fine without
2021-06-02 18:41:52 +02:00
Bruno Windels
4a8a6168cd
add failing test for race between sync & subscribing after openTimeline
2021-06-02 18:41:03 +02:00
Bruno Windels
d8acf63e1d
change mock event api a bit to be easier to read
2021-06-02 18:38:16 +02:00
Bruno Windels
31075d601f
load power levels before decryption closes the txn
2021-06-02 15:06:30 +02:00
Bruno Windels
cef94fea45
fix lint
2021-06-02 12:38:41 +02:00
Bruno Windels
bf951bd322
fix logging wrong value
2021-06-02 12:34:14 +02:00
Bruno Windels
c3754fdbd4
fix the race, make test succeed
2021-06-02 12:34:02 +02:00
Bruno Windels
87ebdbb0b4
add failing test for unhandled race between sync and send
...
see comments in code
2021-06-02 12:33:15 +02:00
Bruno Windels
edbac25613
prepare storage to work with alternative idb impl
2021-06-02 12:31:13 +02:00
Bruno Windels
7a96f84cab
also show redaction reason for redaction local echo
2021-06-02 12:17:09 +02:00
Bruno Windels
addddf1f26
remove need for transferLocalEchoState, just add local relations again
2021-05-31 16:33:05 +02:00
Bruno Windels
13a4a0169c
remove obsolete comments
2021-05-31 16:23:59 +02:00
Bruno Windels
25ce06c9d5
clarify
2021-05-31 15:55:31 +02:00
Bruno Windels
00231443d3
timeline has the own member, so can just use timeline, not ownUserId
2021-05-31 15:18:44 +02:00
Bruno Windels
2bd7c23076
fix lint
2021-05-31 15:08:49 +02:00
Bruno Windels
d68d14358f
use lower return
2021-05-31 14:08:45 +02:00
Bruno Windels
492a8fe359
remove extra whiteline
2021-05-31 14:05:37 +02:00
Bruno Windels
5d35caf85f
no need to emit, timeline finds out by themselves with remote echo
2021-05-31 14:03:22 +02:00
Bruno Windels
23459aad52
check if you are allowed to redact a message
2021-05-31 13:52:03 +02:00
Bruno Windels
63b371b6ef
support findAndUpdate with same predicate semantics in SortedArray too
2021-05-31 10:47:32 +02:00
Bruno Windels
fa37e8fedb
findAndUpdate uses predicate, just add callback to update method
2021-05-31 10:46:16 +02:00
Bruno Windels
2da7ef4280
can only look in remote entries here as PEEs never return an event id
2021-05-27 10:28:02 +02:00
Bruno Windels
5e9ce365bf
also apply local relations when loading at top
2021-05-27 10:27:44 +02:00
Bruno Windels
a93b1af047
ensure these don't fail on a gap entry
2021-05-27 09:16:25 +02:00
Bruno Windels
afc3db2f33
unrelated todo note for later
2021-05-27 09:11:57 +02:00
Bruno Windels
2b5dcff836
consistent naming
2021-05-27 09:11:13 +02:00
Bruno Windels
da02b5fe2d
transfer local echo state when replacing event entry
...
e.g. after decryption or remote echo of other relation comes in
2021-05-26 13:10:19 +02:00
Bruno Windels
ce7147e463
put redactions in their own view, and allow aborting while still queued
2021-05-26 13:07:56 +02:00
Bruno Windels
af45810582
add support for redactions (and relations) local echo
2021-05-21 16:59:29 +02:00
Bruno Windels
b55efb7f11
ensure updateEntries is always set in the result of GapWriter
2021-05-21 16:58:04 +02:00
Bruno Windels
c934049523
also resolve related event ids when removing remote echo during sync
...
as /sync races with /send, and remote echo may happen first.
It's important for local echo that the pending redaction/relation
will also get attached to the remote echo before /send returns,
otherwise the remote echo would be "unannotated" until /send returns
2021-05-21 10:52:46 +02:00
Bruno Windels
c3fb35848b
emit update when receiving event id for related event ahead in the queue
2021-05-20 15:02:45 +02:00
Bruno Windels
619cf9bcbb
this should be filter rather than find, we iterate it
2021-05-20 15:02:24 +02:00
Bruno Windels
f271517446
log redaction during sync
2021-05-20 15:02:14 +02:00
Bruno Windels
8a8c5569dc
provide redact method on tile and room
...
also add some logging
2021-05-20 14:53:17 +02:00
Bruno Windels
9721432a8c
remove pending events that failed because of permanent error
...
so they don't get stuck
2021-05-20 14:52:30 +02:00
Bruno Windels
4ce66fc8a1
allow concurrent removals when iterating pending events
...
so we can remove failed events in the next commit
2021-05-20 14:51:04 +02:00
Bruno Windels
618a32e6c0
revert last tried pending event status to waiting when offline
...
so we don't fail the check if we can immediately remove when redacting
2021-05-20 14:49:54 +02:00
Bruno Windels
df9e886f32
fix lint
2021-05-20 13:22:54 +02:00
Bruno Windels
b655c34bbb
also show reason for redaction
2021-05-20 13:20:12 +02:00
Bruno Windels
780ad44032
render redacted messages
2021-05-20 13:15:35 +02:00
Bruno Windels
94b0bc82ef
writing relations is async
2021-05-20 12:50:16 +02:00
Bruno Windels
814e92ad92
fix missing import
2021-05-20 12:50:16 +02:00
Bruno Windels
39bed4b0fc
fix lint here
2021-05-20 12:50:16 +02:00
Bruno Windels
9b923d337d
write redactions during sync
2021-05-20 12:50:16 +02:00
Bruno Windels
edaac9f436
draft redaction support, no local echo yet
2021-05-20 12:50:16 +02:00
Bruno Windels
3724fc6765
log join network call
2021-05-18 11:49:16 +02:00
Bruno Windels
c04a8140a3
offer to rejoin archived room from menu
2021-05-18 11:07:46 +02:00
Bruno Windels
9679058081
allow to join room by id or alias
2021-05-18 11:05:31 +02:00
Bruno Windels
8ff1f91d2c
bring down lint error count, delete some old, inactive unit tests
2021-05-17 12:59:04 +02:00
Bruno Windels
f5f25c3019
fix DM room names appearing as "Empty room"
...
because we weren't properly awaiting the heroes to be loaded
2021-05-12 23:07:25 +02:00
Bruno Windels
b30b62416c
add option to forget archived room
2021-05-12 15:38:54 +02:00
Bruno Windels
5d139dff43
Support deleting data in several stores for room id
2021-05-12 15:38:11 +02:00
Bruno Windels
e233caf7ac
change order of type and scope in operation index key to scan per scope
2021-05-12 15:36:48 +02:00
Bruno Windels
f331d84292
add options menu in room header with leave room option
2021-05-12 13:59:08 +02:00
Bruno Windels
afd33f4b77
use constant for member event type
2021-05-12 12:19:05 +02:00
Bruno Windels
ca84f485ab
fix tests
2021-05-11 17:04:36 +02:00
Bruno Windels
1738a0ea3c
need to create archived room when leaving, otherwise it isn't stored
2021-05-11 16:58:16 +02:00
Bruno Windels
8b8214cd1b
reference count archived rooms and keep track of active ones
...
so we don't create two instances for the same id, one for sync, and one
for displaying, and hence updates from sync being pushed on a different
instance than the one displaying, and not updating the view.
2021-05-11 16:09:58 +02:00
Bruno Windels
965700272b
remove archivedRoom map, it's unused and just complicating for now
2021-05-11 16:09:01 +02:00
Bruno Windels
be7934057e
lint
2021-05-11 13:08:13 +02:00
Bruno Windels
51d13fd8d2
update comments for Invite updates
2021-05-11 13:07:57 +02:00
Bruno Windels
6bb9140720
have individual getters for kickDetails
2021-05-11 13:07:31 +02:00
Bruno Windels
00d4dc9518
rename kickAuthor to kickedBy
2021-05-11 13:07:11 +02:00
Bruno Windels
24731687dc
log room id in invite and archivedroom afterSync
2021-05-11 13:05:02 +02:00
Bruno Windels
e775ed12b4
sync arch. rooms with Room during init. sync to create summary, timeline
...
when receiving archived rooms during initial sync, sync them with Room
(e.g. as a joined room) first so the members, timeline get written
and the summary gets created which is then adopted by the ArchivedRoom.
2021-05-11 13:02:43 +02:00
Bruno Windels
2087059c0b
fix archived room summary key path now the summary is nested
2021-05-11 13:01:19 +02:00
Bruno Windels
99d5467ad1
make archived room part of sync lifecycle (draft)
2021-05-10 18:42:30 +02:00
Bruno Windels
79d97737bc
calculate leave details in archived room
2021-05-10 18:41:43 +02:00
Bruno Windels
1216378783
Extract BaseRoom from Room with summary and timeline, not sync or send
...
Which we can then reuse to create a dedicated ArchivedRoom class
which will:
- have only relevant methods and properties (e.g. no sendEvent)
- turns out that you can still receive a leave room in the sync
(e.g. when banned after kick) so we'll make the sync for
an archived room separate from room to not overcomplicate the sync
there, much like we did for Invite already.
2021-05-07 16:13:49 +02:00
Bruno Windels
06868abdb2
with room status being a thing, we don't need the invite on the room
2021-05-07 14:42:29 +02:00
Bruno Windels
6bb8e2fa43
allow loading an archived room
2021-05-07 13:10:10 +02:00
Bruno Windels
1b83ae7d8a
allow observing the room status
2021-05-07 13:09:38 +02:00
Bruno Windels
243d105aad
support getting the room status for a room: invited, joined or archived
2021-05-07 13:08:39 +02:00
Bruno Windels
36f54420cf
extract RetainedValue from MemberList
2021-05-07 13:06:00 +02:00
Bruno Windels
030b6837ef
rename
2021-05-06 15:27:32 +02:00
Bruno Windels
7e450071b1
clear all room state when rejoining room
2021-05-06 15:27:10 +02:00
Bruno Windels
8c2ae863fd
clean up rejoin storage logic somewhat
2021-05-06 15:26:48 +02:00
Bruno Windels
f16c08f13e
remove room from all user identities when leaving
...
and delete identity as well as all device identities if no rooms left
2021-05-06 15:24:52 +02:00
Bruno Windels
a12f10dc3c
make type explicit
2021-05-06 15:23:33 +02:00
Bruno Windels
00d8f81bdd
clear all room state before rejoining room
2021-05-06 14:15:47 +02:00
Bruno Windels
15080edfa7
fix failing test now we don't remove invite from collection anymore here
2021-05-06 14:15:47 +02:00
Bruno Windels
45837f7377
don't set dmUserId when not a DM
2021-05-06 14:15:47 +02:00
Bruno Windels
7defd4a02b
ensure the sync is limited when rejoining without overlap
...
otherwise gap would be lost. The server should do this already,
but we're just ensuring it is, to be more robust.
2021-05-06 14:15:47 +02:00
Bruno Windels
08ba4577f6
rejoin logic was throwing away the prev_batch token
2021-05-06 14:15:47 +02:00
Bruno Windels
9546b13821
attempt to load sync writer position when joining a room during sync
...
since fragments and events are not archived, just the summary,
attempt to load the room and sync writer during sync,
so we write the timeline correctly and don't cause ConstraintErrors
because unaware of fragments and events already there.
2021-05-06 14:15:47 +02:00
Bruno Windels
07535eedca
when rejoining, room will be archived so consider any non-join a rejoin
2021-05-06 14:15:47 +02:00
Bruno Windels
1258aaee7c
brevity
2021-05-06 14:15:47 +02:00
Bruno Windels
f6957278c3
write and remove archived summary when leaving/rejoining
2021-05-06 14:15:47 +02:00
Bruno Windels
644698aed7
remove room from room list when leaving
2021-05-06 14:15:47 +02:00
Bruno Windels
89461bf69a
do all collection removal from sync rather than hand callbacks to invite
2021-05-06 14:15:47 +02:00
Bruno Windels
12da71f731
unneeded ?
2021-05-06 14:15:47 +02:00
Bruno Windels
bcfc4d1fd7
have better transaction errors
2021-05-06 14:15:47 +02:00
Bruno Windels
184480ad36
no need to capture req here
2021-05-06 14:15:47 +02:00
Bruno Windels
d4d7adc7fc
add archivedRoomSummary store
2021-05-06 14:15:47 +02:00
Bruno Windels
c2716a061b
pass in userId for kickDetails
2021-05-06 14:15:47 +02:00
Bruno Windels
2cfe7034e8
extract fn
2021-05-06 14:15:47 +02:00
Bruno Windels
b13bfee3d8
support setting kickDetails in room summary
2021-05-06 14:15:47 +02:00
Bruno Windels
85385295a6
don't serialize null values in room summary
...
they only take space in the storage otherwise as we add more fields
2021-05-06 14:15:47 +02:00
Bruno Windels
9e78f8382a
dont assume there is a rooms section in the sync
2021-05-06 12:10:10 +02:00
Bruno Windels
b23ec5ef70
remove obsolete comment
2021-04-28 10:08:11 +02:00
Bruno Windels
e850874019
clarify order
2021-04-28 10:05:34 +02:00
Bruno Windels
fd454f1e20
don't expose joinRule prop, as it is protocol specific
2021-04-27 14:26:40 +02:00
Bruno Windels
aaf4e79a73
make media repo available on invite
2021-04-27 11:01:33 +02:00
Bruno Windels
bd748549f7
fix updates in Invite not firing on collection
2021-04-26 10:45:27 +02:00
Bruno Windels
47b2eb0bdb
don't create a room when rejecting an invite
2021-04-26 10:41:21 +02:00
Bruno Windels
827075bc37
only apply the invite when joining
2021-04-23 18:05:46 +02:00
Bruno Windels
847738a76c
set invite on left room so we can detect a vm refresh is needed
2021-04-23 18:05:14 +02:00
Bruno Windels
b9f145caa4
emit events for rooms before invites
...
so the room is already there when removing the invite
2021-04-23 18:04:10 +02:00
Bruno Windels
d289a44624
also sync leave now that we can handle it
2021-04-22 17:23:29 +02:00
Bruno Windels
2e9ddf9c2c
prevent key collisions between rooms and invites before creating tile vm
2021-04-22 17:22:47 +02:00
Bruno Windels
ec0de15da6
handle overlap with existing timeline when rejoining room
2021-04-22 17:21:29 +02:00
Bruno Windels
ac312cbdc7
fix c/p error in invite store
2021-04-21 17:49:59 +02:00
Bruno Windels
16df40331b
fix refactor mistake in sync
2021-04-21 17:26:10 +02:00
Bruno Windels
0cc95f5083
first draft of InviteViewModel
2021-04-21 15:45:51 +02:00
Bruno Windels
ad5d7fc9f0
add note collection emit should happen first in Invite
2021-04-21 15:32:37 +02:00
Bruno Windels
a5e6294593
test accepted/rejected fields in invite tests
2021-04-21 15:32:13 +02:00
Bruno Windels
465e0c191f
add logging to accepting or rejecting an invite
2021-04-21 15:31:55 +02:00
Bruno Windels
5ce138539b
network calls to accept and reject invite
2021-04-20 19:02:45 +02:00
Bruno Windels
bb1c64e1ac
add left panel tile view model for invites
...
and track in-progress state in Invite so it is shared by left panel
and open invite
2021-04-20 19:01:40 +02:00
Bruno Windels
ee98eaa640
restore invites when loading the session
2021-04-20 18:09:48 +02:00
Bruno Windels
5876e5200b
don't need this for now
2021-04-20 18:03:27 +02:00
Bruno Windels
4560e0e491
split sync lifecycle steps out in different methods to keep it smaller
2021-04-20 17:57:17 +02:00
Bruno Windels
09ac503e22
add test for removing invite
2021-04-20 17:57:03 +02:00
Bruno Windels
d1dc4c9e9c
remove extra layer of log items
2021-04-20 17:56:53 +02:00
Bruno Windels
a072426e07
integrate invites into the sync lifecycle and expose them on session
2021-04-20 17:39:46 +02:00
Bruno Windels
de125441d1
add write/load test for Invite
2021-04-20 17:34:45 +02:00
Bruno Windels
39c772300a
fix indenting
2021-04-20 16:21:35 +02:00
Bruno Windels
81a35639ba
add Invite class
...
calculating the room name, avatar, etc ...
with empty accept and reject methods for now
2021-04-20 16:21:27 +02:00
Bruno Windels
7c4a6fbe4b
invite store
2021-04-20 13:13:56 +02:00
Bruno Windels
d414fb6b94
sync can also stop without an error
2021-04-09 19:50:22 +02:00
Bruno Windels
ba38ce7976
use canonical way of check error type
2021-04-09 16:30:53 +02:00
Bruno Windels
b852feeb9c
ConnectionError isn't throw from start, but sets sync.error
2021-04-09 16:28:14 +02:00
Bruno Windels
4b19e3c498
remove unused member
2021-04-09 16:27:25 +02:00
Bruno Windels
606e30fed2
make comment easier to read
2021-04-09 15:24:10 +02:00
Bruno Windels
c36e812360
move RequestWrapper to own file
...
and add tests, improve comments, and and don't use timeout connection
error as that's not what happens if aborted request from service worker
is reported as TypeError either.
2021-04-09 15:15:28 +02:00
Bruno Windels
2b1f4866a9
map unexpected fetch AbortError to ConnectionError, so doesn't stop sync
2021-04-09 14:25:19 +02:00
Bruno Windels
e17fb24bd8
also await sharing the key in encrypt
2021-04-09 10:37:55 +02:00
Bruno Windels
13f20cdd26
wait for running key share operation in encrypt
2021-04-09 10:37:43 +02:00
Bruno Windels
bdc8451c4a
better logging
2021-04-08 18:39:52 +02:00
Bruno Windels
9e697c6cbe
don't add the pending event again if removed already, fixes #289
2021-04-08 18:36:26 +02:00
Bruno Windels
f976eeaf13
rename SortedArray.replace to update
2021-04-08 18:36:09 +02:00
Bruno Windels
863f659774
fall back to bare userid for local echo profile
2021-04-08 16:30:46 +02:00
Bruno Windels
813be758d7
we should prefer to not pick the event itself if it's a member event
...
but still fall back to that if it's a new join
2021-04-08 15:33:21 +02:00
Bruno Windels
f67ccc18f4
take most recent member rather than first in timeline for inline lookup
...
noticed this while inspecting the code, looks related to #269
2021-04-08 12:57:10 +02:00
Bruno Windels
6f37c232f7
Don't cache members that haven't been written yet - fixes #271
2021-04-08 12:56:24 +02:00
Bruno Windels
97030f7ef3
add https to homeserver if not already a valid url
2021-04-01 17:44:55 +02:00
Bruno Windels
c06659c0be
support checking if pusher is still present on server
2021-04-01 14:59:46 +02:00
Bruno Windels
76fdbbb2fe
shorten this
2021-03-23 18:20:23 +01:00
Bruno Windels
d5b12fa7f9
log endpoint hostname
2021-03-23 18:20:23 +01:00
Bruno Windels
3313d0623a
thinko with push checks
2021-03-23 18:20:23 +01:00
Bruno Windels
630e61a674
support enabling/disabling push notifs on a session
2021-03-23 18:20:23 +01:00
Bruno Windels
d4fc08c06b
put pusher bits in separate class to enable and disable on the HS
2021-03-23 18:20:23 +01:00
Bruno Windels
5d55f6d78c
log app version when opening session
2021-03-15 16:55:14 +01:00
Bruno Windels
d88720a18f
don't start key backup operation if not enabled
2021-03-15 16:54:43 +01:00
Bruno Windels
2b24de838a
actually log initial session backup enabling rather than using null log
2021-03-15 15:24:57 +01:00
Bruno Windels
325d237302
simpler optional log
2021-03-15 15:23:46 +01:00
Bruno Windels
8684d6b5e5
some fixes
2021-03-15 15:23:35 +01:00
Bruno Windels
fcc06b2754
WIP to add logging to decryption and fetching key backups
2021-03-15 14:39:42 +01:00
Bruno Windels
f2dc7728a5
notifyRoomKey was a better name
2021-03-15 14:36:38 +01:00
Bruno Windels
96f060c0a9
also retry decryption for backfilled entries
...
as their event ids won't be stored along the missing key (we only store
synced items so we don't fill up the missing event ids in the store
with undecryptable backfilled event ids)
2021-03-15 14:33:14 +01:00
Bruno Windels
4b62e0a2ce
extract retry event ids for key before overwriting key on key backup
2021-03-15 13:38:27 +01:00
Bruno Windels
b4f4594ead
Merge pull request #267 from vector-im/bwindels/fix-223
...
consider all server errors as connection errors
2021-03-09 11:54:21 +00:00
Bruno Windels
0bd0f788e3
consider all server errors as connection errors
...
even if they do have an errcode
fixes #223
2021-03-09 12:51:34 +01:00
Bruno Windels
8cd6a7988a
on fill server OTKs up to max/2
...
so we don't remove keys for yet to be received
olm messages that claimed a key
2021-03-09 12:33:31 +01:00
Bruno Windels
0b211e8e1c
simplify this code now that it is only doing one thing
2021-03-09 12:27:51 +01:00
Bruno Windels
30b056af1c
let devices know we can't claim their OTKs
2021-03-08 16:19:46 +01:00
Bruno Windels
30525cf391
oops, missing await to store new olm sessions!
2021-03-08 16:19:28 +01:00
Bruno Windels
a3987a655e
log if a connection error is a timeout
2021-03-08 15:35:34 +01:00
Bruno Windels
cfb521ef10
fix ll events being duplicated in the timeline preventing name changes
2021-03-05 20:10:57 +01:00
Bruno Windels
b37a586094
add clarification why this doesn't need to also check member changes
2021-03-05 17:04:18 +01:00
Bruno Windels
f4a7782298
add MemberWriter, and only return MemberChange's if something changed
2021-03-05 17:03:45 +01:00
Bruno Windels
e97ed9ae45
fix session test, just barely
2021-03-05 17:03:12 +01:00
Bruno Windels
49fc971d67
cleanup
2021-03-05 17:02:57 +01:00
Bruno Windels
f98f690b49
no need to "serialize" here every time, it just adds noise
2021-03-05 17:02:26 +01:00
Bruno Windels
4e0bd16a4e
reuse LRU Cache for session cache
2021-03-05 17:01:38 +01:00
Bruno Windels
c1c8f11bf7
fix TypeError when syncing a new e2ee room with keys at the same time
2021-03-05 11:50:54 +01:00
Bruno Windels
5682e715e6
prevent multiple checks if a new room key is better
2021-03-05 10:07:48 +01:00
Bruno Windels
d08c41c13a
probably best to close this
2021-03-04 22:09:11 +01:00
Bruno Windels
932d26ed8c
detect the webkit bug, and await a bogus request when opening a txn
2021-03-04 19:49:13 +01:00
Bruno Windels
e0d14207ac
make opening a txn async again
...
as we'll need to await a bogus request first thing after opening the txn
funny enough, we originally made it sync to accommodate the same bug
in safari, but that didn't prevent any microtask being awaited
before scheduling a request in the calling code closing the txn.
We'll await a bogus request within the transaction class now so it
doesn't depend on the calling code
2021-03-04 19:47:02 +01:00
Bruno Windels
4445b1ee01
store key share operations before tracking the room
2021-03-03 18:56:16 +01:00
Bruno Windels
aa23672694
forgot await, this broke updating the timeline when fetching key backup
2021-03-03 17:50:38 +01:00
Bruno Windels
b012b1dc99
Show correct profile for pending messages
2021-03-03 14:53:22 +01:00
Bruno Windels
6771303086
make a method to determine only the retry entries rather
2021-03-03 14:03:50 +01:00
Bruno Windels
404dbcd065
english
2021-03-03 14:03:50 +01:00
Bruno Windels
e7598b9c76
only request key backup for events that are UTD
2021-03-03 14:03:50 +01:00
Bruno Windels
30481a5a9e
add logging to key sharing and discarding in reaction to member changes
2021-03-03 14:03:50 +01:00
Bruno Windels
f3c49e51f2
add, don't replace timeline retry entries
...
also, filter out any that have been decrypted already
2021-03-03 14:03:50 +01:00
Bruno Windels
43547e0901
don't add retried entries to the timeline if they are not already there
2021-03-03 14:03:50 +01:00
Bruno Windels
7f1cdf6841
also decrypt all matching timeline entries when new key
2021-03-03 14:03:50 +01:00
Bruno Windels
3671574547
comment about session backup
2021-03-03 14:03:50 +01:00
Bruno Windels
3bfe52b1dc
filter encrypted events before deciding to decrypt or not
2021-03-03 14:03:50 +01:00
Bruno Windels
9702c4fd64
more logging in sync write
2021-03-03 14:03:50 +01:00
Bruno Windels
8d7cb2a39a
remove unused imports
2021-03-03 14:03:50 +01:00
Bruno Windels
e85844f482
don't redeclare retryEntries, or they won't get passed to writeSync
2021-03-03 14:03:50 +01:00
Bruno Windels
56db210763
attempt at fixing https://github.com/vector-im/hydrogen-web/issues/245
2021-03-03 14:03:50 +01:00
Bruno Windels
e29bc6710a
bring back missing import
2021-03-03 14:03:50 +01:00
Bruno Windels
c6db23bcfb
WIP to store missing session event ids
2021-03-03 14:03:50 +01:00
Bruno Windels
3fa2d22015
remove isTimelineOpen flag and rather do the check to verify in Room
...
flags are ugly, let's avoid them where we can
2021-03-03 14:03:50 +01:00
Bruno Windels
265a9bd993
applyToEntries does not return anything
2021-03-02 19:39:04 +01:00
Bruno Windels
10003e7d3a
also sync room not in the rooms section but with new room keys
2021-03-02 19:39:04 +01:00
Bruno Windels
8d080163b3
reattempt decryption for timeline items
2021-03-02 19:39:04 +01:00
Bruno Windels
061e7abd50
don't break on empty room sync response
2021-03-02 19:39:04 +01:00
Bruno Windels
8a39c16a38
fix name conflict with _sessionInfo in parent class
2021-03-02 19:39:04 +01:00
Bruno Windels
a536ea7742
comment to explain replay attack better
2021-03-02 19:39:04 +01:00
Bruno Windels
a33200d926
fix sender key lookup for room key coming from olm
2021-03-02 19:39:04 +01:00
Bruno Windels
fb446167f6
make new sync room keys available during decryption of same sync
2021-03-02 19:39:04 +01:00
Bruno Windels
8208464653
only log and clear when actually needed
2021-03-02 19:37:11 +01:00
Bruno Windels
e1821b1753
prevent linking fragment to itself when filling a gap
...
this seems to happen when at the beginning of the timeline and
make the timeline reader go into an infinite loop
2021-03-02 19:31:00 +01:00
Bruno Windels
6f6346d5c3
detect when hitting beginning of timeline when loading timeline
2021-03-02 19:29:55 +01:00
Bruno Windels
636208a321
show all event type counts in device msg logging
2021-02-24 20:56:20 +01:00
Bruno Windels
1e209b8613
Prevent pending events being skipped when remote echo comes
...
This fixes #241
2021-02-24 14:14:04 +01:00
Bruno Windels
b63ad629a7
can remove console logging here now
2021-02-24 11:25:26 +01:00
Bruno Windels
48c361531d
log clearing unread state of a room
2021-02-24 11:22:19 +01:00
Bruno Windels
376e59820c
more info when logging gap fills
2021-02-24 11:22:07 +01:00
Bruno Windels
1093895133
log opening timeline
...
also load the timeline when opening it in the room, so logging
starts in the room (and we don't need to pass the logger to Timeline)
and also API-wise it makes more sense to
not return uninitialized objects
2021-02-24 11:21:04 +01:00
Bruno Windels
41ecf1db8e
missing semicolon
2021-02-24 10:38:19 +01:00
Bruno Windels
23b8ba7e54
unused var
2021-02-24 10:14:26 +01:00
Bruno Windels
86011b42e3
await the room log operations for login/load session
...
so the callee can await the operation
2021-02-24 09:58:50 +01:00
Bruno Windels
0cbf6008a2
log event id when sending and when receiving remote echo on sync
2021-02-23 19:58:01 +01:00
Bruno Windels
dd38fc13d7
log sending messages
2021-02-23 19:22:59 +01:00
Bruno Windels
57bb75e864
log login & loading a session
2021-02-23 19:22:25 +01:00
Bruno Windels
ef1e867dee
no need for keys in the iteration
2021-02-23 19:20:58 +01:00
Bruno Windels
67ddcaa468
fix lint errors in Sync
2021-02-23 19:20:36 +01:00
Bruno Windels
c6c96a611a
fix iteration bug when disposing pending events at shutdown
...
discovered by logging
2021-02-23 19:04:25 +01:00
Bruno Windels
0a4d72b011
remove extra newline
2021-02-22 11:23:24 +01:00
Bruno Windels
94cc8b99b0
don't need to check this actually, sync response should be there
2021-02-22 11:21:56 +01:00
Bruno Windels
f0d9d13f4e
don't assume device lists are set in sync response
2021-02-22 11:20:51 +01:00
Bruno Windels
f4a3b64da0
log in sync writer (at detail level) and log room ids at info level
2021-02-19 11:57:17 +01:00
Bruno Windels
08622699f6
more logging for device messages
2021-02-18 19:56:47 +01:00
Bruno Windels
c5c0a181ff
move check for devicelists up in Session.writeSync, and more logging
2021-02-18 19:56:10 +01:00
Bruno Windels
ad0c813833
don't take network time into account in sync log filter
2021-02-18 19:48:19 +01:00
Bruno Windels
cd68bb7b3f
log when devices get marked as outdated
2021-02-18 14:00:06 +01:00
Bruno Windels
8539b0c893
also log session in after sync completed as detail level
2021-02-18 13:07:52 +01:00
Bruno Windels
dea11845f5
log encrypted event count in session sync write
2021-02-18 13:07:32 +01:00
Bruno Windels
e590b573fb
log remaining specific room entries as detailed
2021-02-18 12:44:19 +01:00
Bruno Windels
9f9de0988e
don't log here yet as the logger isn't passed from createIdentity yet
2021-02-18 12:44:19 +01:00
Bruno Windels
7524a912c3
use (t)ype rather than kind
2021-02-18 12:44:19 +01:00
Bruno Windels
f321968ac3
add more sync logging
2021-02-18 12:44:19 +01:00
Bruno Windels
d201d2c9de
don't use depth based log filtering, also add Detail log level
...
it's hard to make it work with an override where you don't want
to filter by depth if a given loglevel is present in the children.
2021-02-18 12:44:19 +01:00
Bruno Windels
d39c3812b2
Merge pull request #231 from vector-im/bwindels/logs
...
Structured logging
2021-02-17 10:19:46 +00:00
Bruno Windels
338f628627
remove option to anonymize
2021-02-16 18:30:06 +01:00
Bruno Windels
4defbe1322
simplify log filtering, while also adding depth based filtering
2021-02-16 15:07:17 +01:00
Bruno Windels
78805f0a65
implement dynamic log filtering
...
the logger does not have a base level any more, because there is
no sensible place to configure this.
instead, we allow to dynamically determine what should be logged
after an operation finished by setting the threshold and default
log level inspecting the finished log item.
2021-02-16 11:37:48 +01:00
Bruno Windels
704708bd6c
add some logging to sync
2021-02-12 18:56:26 +01:00