mirror of
https://github.com/Skylar-Tech/node-red-contrib-matrix-chat.git
synced 2026-05-23 07:33:37 -06:00
ebcb1eab81
Upgrades matrix-js-sdk from 34.13.0 to 41.5.0. This crosses the v37 removal of the legacy libolm crypto stack, so E2EE is migrated to the Rust crypto implementation. Also adds device verification, cross-signing setup, and authenticated media support. Dependencies - Bump matrix-js-sdk ^34.13.0 -> ^41.5.0; require Node.js >= 22. - Drop the `olm` dependency (legacy crypto only); add `fake-indexeddb`. Rust crypto - Replace initCrypto() with initRustCrypto(); the legacy crypto stack was removed upstream in v37. - Add src/matrix-crypto-store.js: the Rust crypto store requires IndexedDB, absent in Node.js, so it is backed by fake-indexeddb and snapshotted to disk (rust-crypto-store.v8) to survive restarts. - Migrate existing libolm crypto state into the Rust store on first run, and discard the stored crypto state when the device ID changes. Homeserver discovery - Resolve the homeserver via .well-known, so a delegating domain (e.g. example.org) works as the configured server URL. Cross-signing & secure backup - Add a secured /matrix-chat/secure-backup admin endpoint and a modal dialog on the server config node: check status, unlock an existing secure backup with its recovery key, or reset and create a new one. Device verification (new nodes) - matrix-verification: event source emitting verification requests and phase changes, with on-node filters (phase, initiated by, type, self-verification, user allowlist, room). - matrix-verification-action: request, accept, start SAS, confirm, mismatch, or cancel an in-flight verification. Authenticated media - matrix-receive and matrix-crypt-file use the authenticated media endpoints, send a bearer token via msg.headers, and fall back between the v3 and v1 media endpoints on a 404. Fixes - Surface connection/auth errors in the log; node.error() calls were passed an empty msg object, which routed the error and suppressed console logging. - matrix-get-user: await getProfileInfo()/getPresence(). - matrix-invite-room: pass the reason as the third invite() argument (the removed callback parameter was shifting it out). - Guard the verification handlers so a throwing SDK getter cannot crash Node-RED. Docs - Add the device-verification example flow; update the READMEs and node help, correcting stale claims that device verification, secure backup, and encrypted file uploads were unsupported.
79 lines
2.9 KiB
JSON
79 lines
2.9 KiB
JSON
{
|
|
"name": "node-red-contrib-matrix-chat",
|
|
"version": "0.9.2",
|
|
"description": "Matrix chat server client for Node-RED",
|
|
"dependencies": {
|
|
"abort-controller": "^3.0.0",
|
|
"fake-indexeddb": "^6.2.5",
|
|
"fluent-ffmpeg": "^2.1.2",
|
|
"fs-extra": "^11.1.0",
|
|
"got": "^12.0.2",
|
|
"image-size": "^1.0.2",
|
|
"isomorphic-webcrypto": "^2.3.8",
|
|
"matrix-js-sdk": "^41.5.0",
|
|
"mime": "^3.0.0",
|
|
"node-fetch": "^3.3.0",
|
|
"node-localstorage": "^2.2.1",
|
|
"sharp": "^0.33.4",
|
|
"tmp": "^0.2.1",
|
|
"utf8": "^3.0.0"
|
|
},
|
|
"node-red": {
|
|
"version": ">=1.3.0",
|
|
"nodes": {
|
|
"matrix-server-config": "src/matrix-server-config.js",
|
|
"matrix-receive": "src/matrix-receive.js",
|
|
"matrix-send-message": "src/matrix-send-message.js",
|
|
"matrix-typing": "src/matrix-typing.js",
|
|
"matrix-mark-read": "src/matrix-mark-read.js",
|
|
"matrix-delete-event": "src/matrix-delete-event.js",
|
|
"matrix-send-file": "src/matrix-send-file.js",
|
|
"matrix-send-image": "src/matrix-send-image.js",
|
|
"matrix-upload-file": "src/matrix-upload-file.js",
|
|
"matrix-react": "src/matrix-react.js",
|
|
"matrix-user-settings": "src/matrix-user-settings.js",
|
|
"matrix-get-user": "src/matrix-get-user.js",
|
|
"matrix-create-room": "src/matrix-create-room.js",
|
|
"matrix-invite-room": "src/matrix-invite-room.js",
|
|
"matrix-room-invite": "src/matrix-room-invite.js",
|
|
"matrix-join-room": "src/matrix-join-room.js",
|
|
"matrix-leave-room": "src/matrix-leave-room.js",
|
|
"matrix-crypt-file": "src/matrix-crypt-file.js",
|
|
"matrix-room-kick": "src/matrix-room-kick.js",
|
|
"matrix-room-ban": "src/matrix-room-ban.js",
|
|
"matrix-room-users": "src/matrix-room-users.js",
|
|
"matrix-room-state-events": "src/matrix-room-state-events.js",
|
|
"matrix-synapse-users": "src/matrix-synapse-users.js",
|
|
"matrix-synapse-register": "src/matrix-synapse-register.js",
|
|
"matrix-synapse-create-edit-user": "src/matrix-synapse-create-edit-user.js",
|
|
"matrix-synapse-deactivate-user": "src/matrix-synapse-deactivate-user.js",
|
|
"matrix-synapse-join-room": "src/matrix-synapse-join-room.js",
|
|
"matrix-whois-user": "src/matrix-whois-user.js",
|
|
"matrix-paginate-room": "src/matrix-paginate-room.js",
|
|
"matrix-get-event": "src/matrix-get-event.js",
|
|
"matrix-event-relations": "src/matrix-event-relations.js",
|
|
"matrix-verification": "src/matrix-verification.js",
|
|
"matrix-verification-action": "src/matrix-verification-action.js"
|
|
}
|
|
},
|
|
"engines": {
|
|
"node": ">=22.0.0"
|
|
},
|
|
"keywords": [
|
|
"node-red",
|
|
"matrix",
|
|
"chat",
|
|
"chatbot",
|
|
"federated"
|
|
],
|
|
"repository": {
|
|
"type": "git",
|
|
"url": "https://github.com/skylar-tech/node-red-contrib-matrix-chat"
|
|
},
|
|
"author": {
|
|
"name": "Skylar Sadlier",
|
|
"url": "https://skylar.tech"
|
|
},
|
|
"license": "SEE LICENSE FILE"
|
|
}
|