Ivan Enderlin
0d66480cd6
fix(crypto-nodejs): OlmMachine.new effectively raises an error.
...
Returning an `napi::Error` doesn't raise it. We must return a
`Result<_, napi::Error>` to ensure `napi` will raise the error as
expected.
2022-06-02 15:23:25 +02:00
Ivan Enderlin
02802e9088
feat(crypto-nodejs): EncryptionSettings.rotation_period and .…_period_messages are now BigInt.
2022-06-02 13:59:00 +02:00
Ivan Enderlin
1a6adc6d41
chore(crypto-nodejs): Ignore package-lock.json for now.
2022-06-02 11:10:55 +02:00
Ivan Enderlin
6d10d6150c
test(crypto-nodejs): Add some test suites.
2022-06-02 11:09:57 +02:00
Ivan Enderlin
8e120eb648
doc(crypto-nodejs): Write missing documentation.
2022-06-02 09:23:26 +02:00
Ivan Enderlin
c573985c64
chore(crypto-nodejs): Add a .gitignore for artifacts.
2022-06-02 09:19:17 +02:00
Ivan Enderlin
6a996c7657
doc(crypto-nodejs): Write missing documentation and clean up the code.
2022-06-02 09:18:26 +02:00
Ivan Enderlin
7bb96e0ece
chore(crypto-node): Use Either7 (new pending feature).
2022-06-01 22:38:52 +02:00
Ivan Enderlin
dc7f0389b1
chore(crypto-node): Document and add napi(getter) when necessary.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
5d4b3a0457
feat(crypto-nodejs): Implement OlmMachine.decrypt_room_event.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
888ffb0a56
chore(crypto-node): Use Either5 + Either3 instead of Either.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
475fffb64d
feat(crypto-nodejs): Implement OlmMachine.encrypt_room_event.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
a8b44f26ea
feat(crypto-nodejs): Implement OlmMachine.share_room_key.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
a7697fbd32
feat(crypto-nodejs): Implement OlmMachine.get_missing_sessions.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
02e63ab9c1
chore(crypto-js): Remove a useless import.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
8d909ccabe
feat(crypto-nodejs): Implement OlmMachine.mark_request_as_sent.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
2e22f6b6c0
feat(crypto-nodejs): Implement OlmMachine.outgoing_requests.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
7c85fdaf28
doc(crypto-js): Update documentation.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
1ecf90bb42
feat(crypto-nodejs): Implement OlmMachine.receive_sync_changes.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
e2ecba7d45
feat(crypto-nodejs): Implement OlmMachine.update_tracked_users.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
8a0e0a7a4d
feat(crypto-nodejs): Start implementing OlmMachine API.
2022-06-01 20:55:34 +02:00
Ivan Enderlin
3cf4150df2
feat: Rename OlmMachine.share_group_session to OlmMachine.share_room_key
...
feat: Rename `OlmMachine.share_group_session` to `OlmMachine.share_room_key`
2022-06-01 15:08:58 +02:00
Ivan Enderlin
b3d52ca68c
feat: Rename OlmMachine.share_group_session to OlmMachine.share_room_key.
...
As discussed with @poljar, the Matrix event we are creating is
`m.room.key`, so it's preferable to rename the function
`share_room_key`. Note: Olm calls the things an inbound group session,
that's where the name comes from, but it's not aligned with the
specification.
2022-06-01 14:32:11 +02:00
Ivan Enderlin
e673954b98
chore: Add missing new lines at the end of files
...
chore: Add missing new lines at the end of files
2022-05-31 10:31:08 +02:00
Ivan Enderlin
6d7573dced
chore: Add missing new lines at the end of files.
2022-05-31 10:06:35 +02:00
Ivan Enderlin
2d14452398
Merge pull request #675 from Hywan/feat-crypto-wasm
...
feat(crypto): Port to Wasm (in a JS host) and to NodeJS
2022-05-31 10:01:57 +02:00
Ivan Enderlin
7931c4a589
chore(crypto-js): Clean up code and make CI happy.
2022-05-31 08:44:36 +02:00
Ivan Enderlin
4db1ad350b
feat(crypto-nodejs): Derive Debug for UserId.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
0debbf24d7
chore(crypto-js): Remove an unknown Clippy lint for now.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
bb8217d10f
doc(crypto-nodejs) Disable missing docs for now.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
6ff5c8e918
chore(crypto-js): Thanks Clippy.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
7fa89f76aa
chore(crypto-js): Update vodozemac's version to match matrix-sdk-crypto's.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
0335fdd07f
doc(crypto): Add missing module documentation.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
3f8e3b61ff
test(xtask) Replace WasmFeatureSet::MatrixSdkCrypto by *Js.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
efe5ea6a9c
test(ci): Exclude matrix-sdk-crypto-(js|nodejs) from code coverage.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
6afeeea56c
test(ci): Do not compile matrix-sdk-crypto to Wasm, but -crypto-js instead.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
bef1dfbf79
chore(crypto-js): Fix typos.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
51488b40d0
doc(crypto-js) Add missing documentation.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
b6a637893e
chore(crypto-js): Fix cargo fmt.
2022-05-31 08:40:16 +02:00
Ivan Enderlin
2a4dce30b2
Merge branch 'main' into feat-crypto-wasm
2022-05-31 08:40:11 +02:00
Ivan Enderlin
3194ad1f9a
feat(crypto-js): Implement OlmMachine.get_verification.
2022-05-31 08:39:34 +02:00
Ivan Enderlin
ee648144a2
feat(crypto-nodejs): Split into a new crate: matrix-sdk-crypto-nodejs.
...
Why? Because `napi` and `wasm-bindgen` are too different. At this
step, the most notable bugs are the way `napi` is handling its proc
macros. There is too much conflicts when used with `#[cfg_attr]`. It
makes the code repetitive and harder to read and to understand (and
also to compile, we must be very careful). But on the short-term,
quickly, we will see more notable differences between `wasm-bindgen`
and `napi`, e.g. with array (in `wasm-bindgen`, we can downcast array
items into particular types, with `napi` it's going to be a very
different code).
Instead of fighting the proc macros bugs now, and having to split the
code later inside the same crate, we believe it's a good idea to split
the code now into 2 crates. At first we will see obvious code
duplications, but on the short-term, the code is likely to be more and
more different.
2022-05-31 08:39:34 +02:00
Ivan Enderlin
afef9103a3
feat(crypto-js): Continue to port the API to NodeJS.
2022-05-31 08:39:34 +02:00
Ivan Enderlin
4df5ee6087
chore(crypto-js): Improve the Makefile for NodeJS support.
2022-05-31 08:39:34 +02:00
Ivan Enderlin
1a731ec385
feat(crypto-js): Rename OlmMachine.encrypt to .encrypt_room_event.
2022-05-31 08:39:34 +02:00
Ivan Enderlin
84fe78bab3
Merge branch 'main' into feat-crypto-wasm
2022-05-31 08:39:29 +02:00
Ivan Enderlin
bce11b209e
feat(crypto-js): Implement OlmMachine.update_tracked_users.
2022-05-31 08:38:24 +02:00
Ivan Enderlin
6c472f873f
feat(crypto-js): Start adding support for NodeJS.
2022-05-31 08:38:24 +02:00
Ivan Enderlin
250b85dc79
feat(crypto): Extract js module to its own crate: matrix-sdk-crypto-js.
2022-05-31 08:38:13 +02:00
Ivan Enderlin
f3ab1ae276
chore(crypto): Fix a typo.
2022-05-31 08:36:37 +02:00