Bruno Windels
26fa2a5d60
add option
2022-02-07 18:58:43 +01:00
Bruno Windels
e1fbd1242e
WIP 4
2022-02-07 16:30:44 +01:00
Bruno Windels
0bb3cfcfad
WIP3
2022-02-04 17:49:10 +01:00
RMidhunSuresh
28931f4103
Use async/await
2022-02-04 17:48:42 +05:30
RMidhunSuresh
f7f32ac806
responseCodeReject may not exist
2022-02-04 17:39:52 +05:30
RMidhunSuresh
a163cee18d
Remove dead imports
2022-02-04 17:25:30 +05:30
RMidhunSuresh
0828ac12b1
Fix params
2022-02-04 17:25:15 +05:30
RMidhunSuresh
b59f916824
Merge branch 'registration' of github.com:vector-im/hydrogen-web into registration
2022-02-04 17:16:32 +05:30
R Midhun Suresh
2ac63e78ca
mark method as internal
...
Co-authored-by: Bruno Windels <bruno@windels.cloud>
2022-02-04 17:16:15 +05:30
RMidhunSuresh
028b96e4c5
Let type also be undefined
2022-02-04 17:11:33 +05:30
RMidhunSuresh
22d5505a2b
Create registration stage in Registration itself
2022-02-04 16:50:22 +05:30
RMidhunSuresh
e66549a067
Remove dead code
2022-02-04 16:40:49 +05:30
RMidhunSuresh
e8c480426a
Remove error code
2022-02-04 16:37:43 +05:30
RMidhunSuresh
891375a885
Rename allowerErrors -> allowedStatusCodes
2022-02-04 16:35:47 +05:30
RMidhunSuresh
32af7e6f09
Make more changes
...
- make setter a method
- lazily create promise
2022-02-04 16:23:39 +05:30
RMidhunSuresh
3d8b9cce41
Fix responseCode in Request
2022-02-04 15:41:37 +05:30
Bruno Windels
bc09ede09f
WIP
2022-02-03 17:57:35 +01:00
RMidhunSuresh
b6e1d4a7d5
Implement responseCode()
2022-02-03 19:41:14 +05:30
RMidhunSuresh
89a97537b0
Make methods private + some props readonly
2022-02-03 19:41:14 +05:30
RMidhunSuresh
8a3c0afba6
Fix incorrect types
2022-02-03 19:41:11 +05:30
RMidhunSuresh
0ad0ecfcc2
Check response code instead of existence of props
2022-02-03 19:40:25 +05:30
RMidhunSuresh
c4894f2c24
completed is not always present
2022-02-03 19:40:25 +05:30
RMidhunSuresh
e64f4ad7b2
Refactor code
...
- Move all code that does /register to Registration.ts
- RegistrationStage only deals with the generation of auth data
- Change API so that undefined is returned instead of string when
registration is over
2022-02-03 19:40:25 +05:30
R Midhun Suresh
2aad5546bf
No need for Object.assign here either
...
Co-authored-by: Bruno Windels <brunow@matrix.org>
2022-02-03 19:40:25 +05:30
RMidhunSuresh
7bacbec5e9
Remove type directory
2022-02-03 19:40:25 +05:30
RMidhunSuresh
e13040a49e
Don't mutate flows
2022-02-03 19:40:25 +05:30
R Midhun Suresh
30cb9f6d15
Use includes instead of elaborate find
...
Co-authored-by: Bruno Windels <brunow@matrix.org>
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a351a185a0
Give proper names
2022-02-03 19:40:25 +05:30
RMidhunSuresh
fe0add01ee
Use union of types for RegistrationResponse
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a249a1b2b5
Implement flow seclector
2022-02-03 19:40:25 +05:30
RMidhunSuresh
6798a5e429
Move types to types.ts
2022-02-03 19:40:25 +05:30
RMidhunSuresh
3a67da8830
Refactor type
...
- Change name
- Move union type down
2022-02-03 19:40:25 +05:30
RMidhunSuresh
1d4b079d0c
Type RegistrationResponse
2022-02-03 19:40:25 +05:30
RMidhunSuresh
49ade61ef6
Fill in ts types + change names
2022-02-03 19:40:25 +05:30
RMidhunSuresh
b482d478b4
Add a tos getter
2022-02-03 19:40:25 +05:30
RMidhunSuresh
ac7108b882
Throw error instead of returning it
2022-02-03 19:40:25 +05:30
RMidhunSuresh
7bb7189c6a
No need for this export
2022-02-03 19:40:25 +05:30
RMidhunSuresh
6eba60bd75
Use typescript style that was agreed on earlier
2022-02-03 19:40:25 +05:30
RMidhunSuresh
5de1fc1453
Remove unnecessary getters
2022-02-03 19:40:25 +05:30
RMidhunSuresh
2f3865d8cc
firstStage should be a local variable
2022-02-03 19:40:25 +05:30
RMidhunSuresh
2d4c106542
REFACTOR: Inline method
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a91ba4370d
Change type to show that username is optional
2022-02-03 19:40:25 +05:30
RMidhunSuresh
550a560f40
Remove space
2022-02-03 19:40:25 +05:30
RMidhunSuresh
5f11790f6b
Object.assign is overkill here
2022-02-03 19:40:25 +05:30
RMidhunSuresh
e8dbbd876c
Give default values to parameters
2022-02-03 19:40:25 +05:30
RMidhunSuresh
755f934eb2
No need to explicitly pass in inhibitLogin
2022-02-03 19:40:25 +05:30
RMidhunSuresh
5e93e048ab
Don't cache GET requests
2022-02-03 19:40:25 +05:30
RMidhunSuresh
bb6a885116
Specify what errors are ignored in options
2022-02-03 19:40:25 +05:30
RMidhunSuresh
420c12f202
Copy over username only if it exists
2022-02-03 19:40:25 +05:30
RMidhunSuresh
792d5c62c5
Return username when registration is completed
2022-02-03 19:40:25 +05:30
RMidhunSuresh
fa2e2bc8f3
Allow register without providing username
2022-02-03 19:40:25 +05:30
RMidhunSuresh
170d7a5e55
Add startRegistration method
2022-02-03 19:40:25 +05:30
RMidhunSuresh
8ab8726b8f
Implement m.login.terms stage
2022-02-03 19:40:25 +05:30
RMidhunSuresh
18e2fc1089
Pass in params to BaseRegistrationStage
2022-02-03 19:40:25 +05:30
RMidhunSuresh
a59b67ec45
Fix errors
2022-02-03 19:40:25 +05:30
RMidhunSuresh
d76a059525
Temporary fix for 401 errors
2022-02-03 19:40:25 +05:30
RMidhunSuresh
d28ab919bb
Implement dummy registration logic
2022-02-03 19:40:25 +05:30
RMidhunSuresh
eb146830ba
Implement registration endpoint
2022-02-03 19:40:25 +05:30
RMidhunSuresh
618d02d838
fetch registration flows
2022-02-03 19:40:25 +05:30
Bruno Windels
348de312f9
draft code in matrix layer to create room
2022-02-02 10:19:49 +01:00
Bruno Windels
2e3616e05d
call cursor.update during backup field migration, needs new version
2022-02-01 12:31:10 +01:00
Bruno Windels
00c5e747d2
log total backed up keys during flush operation
2022-02-01 12:30:45 +01:00
Bruno Windels
b29ecd339d
add more logging to backup storage migration
2022-02-01 12:18:28 +01:00
Bruno Windels
f4fa013ebc
mark as not configured yet when re-enabling key backup
2022-02-01 11:32:53 +01:00
Bruno Windels
f4bb420f35
mark key backup properly as disabled
2022-02-01 11:27:42 +01:00
Bruno Windels
02f06724d0
don't block reenabling 4s if already enabled
2022-02-01 11:26:00 +01:00
Bruno Windels
fd4eb6b50d
distinguish between "waiting to go online" vs "backup not configured"
2022-02-01 11:08:13 +01:00
Bruno Windels
9c599d53aa
allow to inject max delay in key backup
2022-01-31 17:31:01 +01:00
Bruno Windels
62acd458c6
also ask for new key if backup version is not found
2022-01-31 17:30:51 +01:00
Bruno Windels
17275a5390
backup 200 keys per request
2022-01-31 17:30:15 +01:00
Bruno Windels
830786b2fd
fixes and cleanup
2022-01-31 16:26:14 +01:00
Bruno Windels
6541aacf98
don't discount already finished keys in total for previous iterations
2022-01-31 16:23:48 +01:00
Bruno Windels
a757fb3696
better error handling in key backup, cleanup and not overuse observables
2022-01-31 14:37:05 +01:00
Bruno Windels
7eb0d347f5
flush key backup after coming online
2022-01-31 14:36:35 +01:00
Bruno Windels
ae5cc17290
mark all inbound sessions to be backed up again when changing version
2022-01-31 14:36:04 +01:00
Bruno Windels
a97d235cf5
flush after enabling key backup
2022-01-28 16:36:42 +01:00
Bruno Windels
eabd303c8e
count on the index if we're using one, don't always take the store
2022-01-28 15:14:58 +01:00
Bruno Windels
504f420293
make keyBackup an observable and don't have separate needs-key flag
2022-01-28 15:13:58 +01:00
Bruno Windels
eb134a6c47
only take into account non-backed up keys for counting
2022-01-28 13:18:03 +01:00
Bruno Windels
7d3e3b992b
some more typing
2022-01-28 13:14:38 +01:00
Bruno Windels
c47bdd5715
flush key backup when creating a new room key
2022-01-28 13:14:11 +01:00
Bruno Windels
b692b3ec4f
move key backup operation and flush bookkeeping inside KeyBackup
...
so we can flush from other places than Session
2022-01-28 13:13:23 +01:00
Bruno Windels
ebc7f1ecd7
needs to be awaited
2022-01-28 13:11:52 +01:00
Bruno Windels
b30db544a3
use idb key range to select non-backed up keys
2022-01-28 13:11:32 +01:00
Bruno Windels
a499689bd8
also write room key that we create ourselves with RoomKey infrastructure
...
so all keys are written in one place and the flags are always correct
2022-01-28 13:10:48 +01:00
Bruno Windels
c81dde53e7
store key source in inbound session
2022-01-28 10:03:30 +01:00
Bruno Windels
dd2b41ff95
use backup flag in key backup rather than separate store
2022-01-27 16:07:18 +01:00
Bruno Windels
48e72f9b69
replace SessionsNeedingBackup store with backup field on inbound session
2022-01-27 16:00:46 +01:00
Bruno Windels
6f1484005b
stop key backup when on the wrong version
...
users can then enter the new key in the settings to start backing up
again
2022-01-27 15:14:29 +01:00
Bruno Windels
0b4954a9ca
log key backup upload requests
2022-01-27 14:20:04 +01:00
Bruno Windels
bf08c0d850
deal with errors when enabling key backup
...
fixes #449
2022-01-27 14:19:37 +01:00
Bruno Windels
e80acd4d57
add migration when backup is enabled
2022-01-26 16:30:40 +01:00
Bruno Windels
60ed276b8a
add progress notification and cancellation to key backup flush
2022-01-26 15:19:31 +01:00
Bruno Windels
524090e27d
support idb store/index.count
2022-01-26 15:12:11 +01:00
Bruno Windels
a791641b34
move types to separate file
2022-01-26 12:10:20 +01:00
Bruno Windels
85155a43bb
cleanup types
2022-01-26 10:17:31 +01:00
Bruno Windels
cfb94206f9
move curve25519 code to separate file
2022-01-26 10:13:01 +01:00
Bruno Windels
86caa5f9b1
rename session backup to key backup to be consistent with RoomKey
2022-01-26 09:51:48 +01:00
Bruno Windels
933a1b4636
draft of session backup writing + some refactoring
2022-01-25 18:48:19 +01:00
Bruno Windels
ffece4f357
move some validation of into session backup
2022-01-25 18:48:03 +01:00
Bruno Windels
8f4e3c62ce
add hs endpoint for backup keys upload
2022-01-25 18:47:42 +01:00
Bruno Windels
290aaad63a
add sessionsNeedingBackup store
2022-01-25 18:47:27 +01:00
Bruno Windels
a3e294bb60
small cleanup
2022-01-25 18:45:39 +01:00
Bruno Windels
5d87d8bde3
change store.get return type when no value is found to undefined
...
IDBRequest.result is undefined according to the official TS type decls.
2022-01-25 18:43:44 +01:00
Bruno Windels
993a86ddb2
convert SessionBackup to typescript and pass in keyloader
2022-01-20 11:16:08 +01:00
Bruno Windels
a4d924acd1
make KeyLoader use proper olm types
2022-01-20 11:15:48 +01:00
Bruno Windels
c6c1d3b3d8
refactor logout in client so we don't need a fully loaded session
...
instead, we pass the session id in
this will make it easier to first dispose the client when leaving the
/session/<id> and just creating a client without fully loading it
to log out. This way sync is already not running anymore.
2022-01-17 16:29:01 +01:00
Bruno Windels
000c8b27c3
Merge pull request #637 from vector-im/bwindels/timeline-readme
...
add basic readme for updates in the timeline
2022-01-14 19:16:25 +01:00
Bruno Windels
a8a8355ea4
fix unit test
2022-01-14 19:05:53 +01:00
Bruno Windels
3d00881508
don't look in remoteEntries when already found
2022-01-14 19:05:30 +01:00
Bruno Windels
7197e5427f
don't emit an update when the context entry is loaded sync
...
also load context entries in parallel
2022-01-14 18:16:52 +01:00
Bruno Windels
3243ce2a90
fix unit test that failed after it finished
...
crashing the runner on node 16
2022-01-14 18:15:46 +01:00
RMidhunSuresh
cfefe6962a
Remove stray space
2022-01-14 18:17:49 +05:30
RMidhunSuresh
0ae3c60d6d
Remove .js file from rebase
2022-01-14 18:17:49 +05:30
RMidhunSuresh
35a13842af
Implement context endpoint
2022-01-14 18:17:49 +05:30
RMidhunSuresh
65f957f023
WIP
2022-01-14 18:17:49 +05:30
R Midhun Suresh
4fb0a84d0a
Return property from super
...
Co-authored-by: Bruno Windels <brunow@matrix.org>
2022-01-14 18:16:38 +05:30
RMidhunSuresh
30b8e5b5ea
use withReply
2022-01-14 18:15:26 +05:30
RMidhunSuresh
8cd430ac07
Improve test logic
2022-01-14 17:48:25 +05:30
RMidhunSuresh
75012eda9c
Fix tests
2022-01-14 17:28:31 +05:30
RMidhunSuresh
e9a49fdf74
Use hsApi mock
2022-01-14 17:07:06 +05:30
RMidhunSuresh
315acf2fbc
Remove dead code from test
2022-01-14 16:54:16 +05:30
RMidhunSuresh
310790c84e
Use mock storage
2022-01-14 16:51:06 +05:30
RMidhunSuresh
277638b107
Override methods in NonPersistedEventEntry
...
This will prevent redactions to entries fetched from hs showing "message
is being redacted" and will instead show "message is redacted"
2022-01-14 16:15:16 +05:30
RMidhunSuresh
b238357c53
Use emitUpdateForEntry
2022-01-14 16:14:42 +05:30
RMidhunSuresh
4fa32bac2f
check only in remoteEntries
2022-01-14 16:14:06 +05:30
Bruno Windels
58f2192a7e
add basic readme for updates in the timeline
2022-01-14 11:13:21 +01:00
RMidhunSuresh
3c28ee1adf
Remove unused getter
2022-01-13 21:05:18 +05:30
RMidhunSuresh
2c4610c132
add param to emitUpdateForEntry
2022-01-13 19:20:37 +05:30
RMidhunSuresh
239d16747d
Clean test code; try not to peek into internals
2022-01-13 19:14:28 +05:30
RMidhunSuresh
764541d3ca
Remove unused method
2022-01-13 18:32:18 +05:30
RMidhunSuresh
ca1831fef6
update contextForEntries
2022-01-13 14:38:05 +05:30
RMidhunSuresh
2f4c0623d0
Restore earlier name
2022-01-12 19:20:32 +05:30
RMidhunSuresh
ed88184757
Remove statement
2022-01-12 19:14:38 +05:30
RMidhunSuresh
d0f7570f5e
Fix tests
2022-01-12 18:44:17 +05:30
RMidhunSuresh
acafae7d3a
Implement offline support for context entries
2022-01-11 20:58:27 +05:30
RMidhunSuresh
a59bf7c002
Fix looking in allEntries
2022-01-11 20:57:29 +05:30
RMidhunSuresh
5c1813888c
Check in all entries for context
2022-01-11 14:57:22 +05:30
RMidhunSuresh
73733ce145
Guard entry from storage being processed by method
2022-01-11 14:49:59 +05:30
RMidhunSuresh
bf6dfcfcad
update comment
2022-01-11 13:28:35 +05:30
RMidhunSuresh
f605608098
getTrackedEntry -> findLoadedEventById
2022-01-11 13:20:42 +05:30
RMidhunSuresh
31a8227e53
stylistic change
2022-01-11 13:14:13 +05:30
RMidhunSuresh
62dcb61536
Rename updateEntry -> emitUpdateForEntry
2022-01-11 13:11:50 +05:30
RMidhunSuresh
fda211e7b3
Remove dead code
2022-01-11 13:10:40 +05:30
RMidhunSuresh
63b6564f70
Pass prop change
2022-01-11 11:54:41 +05:30
RMidhunSuresh
93bbeee400
Don't pass relatedEntry in param
2022-01-11 11:49:06 +05:30
RMidhunSuresh
66fa8d84a7
Make setAsContextOf private
2022-01-10 18:51:12 +05:30
RMidhunSuresh
091b55a265
Rename method and add comment
2022-01-10 18:05:33 +05:30
RMidhunSuresh
ec8f6e8e0a
use addLocalRelation
2022-01-10 12:58:45 +05:30
RMidhunSuresh
7ad73bb453
Move check down
2022-01-07 19:56:31 +05:30
RMidhunSuresh
3fecce6fe6
Fix tests
2022-01-07 19:39:51 +05:30
RMidhunSuresh
9d161a0bcf
Refactor + put redaction in NonPersistedEventEntry
2022-01-07 19:38:57 +05:30
RMidhunSuresh
8cc04e4c25
Keep calls internal to class
2022-01-07 17:50:36 +05:30
RMidhunSuresh
0a09a50ab9
Move line into if
2022-01-07 17:29:17 +05:30
RMidhunSuresh
c6484f1eac
Replace entry in contextEntryNotInTimeline
2022-01-07 17:11:42 +05:30
RMidhunSuresh
cfbb6d4250
Add explaining comment
2022-01-06 15:37:58 +05:30
RMidhunSuresh
7adce08eee
add more jsdoc comments
2022-01-06 15:33:00 +05:30
RMidhunSuresh
f76217dcce
Change method name
2022-01-06 15:14:13 +05:30
RMidhunSuresh
a2ab36480f
Add jsdoc comment
2022-01-06 15:02:44 +05:30
RMidhunSuresh
90c9018aa4
Update comment
2022-01-06 12:07:10 +05:30
RMidhunSuresh
595deb3a3d
Also copy over contextEntry from otherEntry
2022-01-06 12:07:10 +05:30
RMidhunSuresh
78f97c6532
Remove await from tests
2022-01-06 12:07:10 +05:30
RMidhunSuresh
9f1764c325
Update comment
2022-01-06 12:07:10 +05:30
RMidhunSuresh
4418700589
Add test for move code
2022-01-06 12:07:10 +05:30
RMidhunSuresh
d2c7eec8e0
No need to delete before update on map
2022-01-06 12:07:10 +05:30
RMidhunSuresh
8ec75ce4bb
Rename methods
2022-01-06 12:07:10 +05:30
RMidhunSuresh
a060d54468
Make tests pass
2022-01-06 12:07:10 +05:30
RMidhunSuresh
3fe824dbd1
Propagate updates
2022-01-06 12:07:10 +05:30
RMidhunSuresh
7ef79c92f5
Remove entry from map
2022-01-06 12:07:10 +05:30
RMidhunSuresh
2d5bb82077
Fix bug
2022-01-06 12:07:10 +05:30
RMidhunSuresh
6f8001bd82
Add tests
2022-01-06 12:07:10 +05:30
RMidhunSuresh
640a3fb9fa
Check if contextEvent was found
2022-01-06 12:07:10 +05:30
RMidhunSuresh
05d2defa2d
Rename fetchedEntries --> contextEntriesNotInTimeline
2022-01-06 12:07:10 +05:30
RMidhunSuresh
c3bef6d4d2
Rename dependents --> contextForEntries
2022-01-06 12:07:10 +05:30
RMidhunSuresh
d1818d2a57
Reuse code in getOrLoadEntry
2022-01-06 12:07:10 +05:30
RMidhunSuresh
f5fadf700e
Move event to remoteEntries if needed
2022-01-06 12:07:10 +05:30
RMidhunSuresh
d924dbb723
Add explaining comment
2022-01-06 12:07:10 +05:30
RMidhunSuresh
544dca3b18
Use _updateEntry
2022-01-06 12:07:10 +05:30
RMidhunSuresh
39f68e8c2f
Refactor out magic string
2022-01-06 12:07:10 +05:30
RMidhunSuresh
5c0bbdd4c8
Move methods into Timeline
2022-01-06 12:07:10 +05:30
RMidhunSuresh
51b7b21082
Implement readById() in TimelineReader
2022-01-06 12:07:10 +05:30
RMidhunSuresh
0da94e51e0
Use map and fetch from Map if available
2022-01-06 12:07:10 +05:30
RMidhunSuresh
4a6293dcdc
Made code more readable
2022-01-06 12:07:10 +05:30
RMidhunSuresh
287212956b
findAndUpdate instead of update
2022-01-06 12:07:10 +05:30
RMidhunSuresh
7a91dd9595
Improve comment
2022-01-06 12:07:10 +05:30
RMidhunSuresh
4a81e06e96
Track fetched entries for redactions
2022-01-06 12:07:10 +05:30
RMidhunSuresh
ea89c272b9
Support redaction changes in remoteEntries
2022-01-06 12:07:10 +05:30
RMidhunSuresh
c690de9f7b
Support decryption on entries fetched from hs
2022-01-06 12:07:10 +05:30
RMidhunSuresh
7cc3d4b91a
Emit updated entries
2022-01-06 12:07:10 +05:30
RMidhunSuresh
053dcf39a5
Use NonPersistedEventEntry
2022-01-06 12:07:10 +05:30
RMidhunSuresh
d191b327c6
Change comment
2022-01-06 12:07:10 +05:30
RMidhunSuresh
06864a65b7
Add contextEventId
2022-01-06 12:07:10 +05:30
RMidhunSuresh
764e38f8c9
Use 'context' instead of 'related'
2022-01-06 12:07:10 +05:30
RMidhunSuresh
696980aca4
Parse display name and avatar of event
2022-01-06 12:07:10 +05:30
RMidhunSuresh
0c42f53a2f
Implement context endpoint
2022-01-06 12:07:06 +05:30
RMidhunSuresh
e901142661
await on loading related events
2022-01-06 11:59:58 +05:30
RMidhunSuresh
2265d198a6
Formatting fix
2022-01-06 11:59:58 +05:30
RMidhunSuresh
b753507b8d
WIP
2022-01-06 11:59:58 +05:30
Bruno Windels
c9d11d6f19
missing otk count does not mean 0 but rather no change
2022-01-05 14:26:15 +01:00
Bruno Windels
aabfbf507e
typo in comments
2022-01-05 14:25:42 +01:00