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
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