matrix-js-sdk 41.6.0 → 41.7.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/ReEmitter.js +1 -1
- package/lib/ReEmitter.js.map +1 -1
- package/lib/ToDeviceMessageQueue.js +2 -2
- package/lib/ToDeviceMessageQueue.js.map +1 -1
- package/lib/autodiscovery.js +1 -0
- package/lib/autodiscovery.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +77 -3
- package/lib/client.js.map +1 -1
- package/lib/common-crypto/CryptoBackend.js +2 -0
- package/lib/common-crypto/CryptoBackend.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js +1 -1
- package/lib/crypto/store/indexeddb-crypto-store-backend.js.map +1 -1
- package/lib/crypto/store/indexeddb-crypto-store.js +2 -0
- package/lib/crypto/store/indexeddb-crypto-store.js.map +1 -1
- package/lib/crypto-api/index.js +58 -58
- package/lib/crypto-api/index.js.map +1 -1
- package/lib/embedded.js +13 -9
- package/lib/embedded.js.map +1 -1
- package/lib/extensible_events_v1/MessageEvent.js +15 -15
- package/lib/extensible_events_v1/MessageEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollEndEvent.js +8 -8
- package/lib/extensible_events_v1/PollEndEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollResponseEvent.js +1 -0
- package/lib/extensible_events_v1/PollResponseEvent.js.map +1 -1
- package/lib/extensible_events_v1/PollStartEvent.js +28 -28
- package/lib/extensible_events_v1/PollStartEvent.js.map +1 -1
- package/lib/filter.js +3 -1
- package/lib/filter.js.map +1 -1
- package/lib/http-api/errors.js +16 -16
- package/lib/http-api/errors.js.map +1 -1
- package/lib/http-api/fetch.js +2 -1
- package/lib/http-api/fetch.js.map +1 -1
- package/lib/http-api/refresh.js +7 -6
- package/lib/http-api/refresh.js.map +1 -1
- package/lib/http-api/utils.d.ts.map +1 -1
- package/lib/http-api/utils.js +1 -5
- package/lib/http-api/utils.js.map +1 -1
- package/lib/interactive-auth.js +11 -1
- package/lib/interactive-auth.js.map +1 -1
- package/lib/logger.js +2 -0
- package/lib/logger.js.map +1 -1
- package/lib/matrixrtc/CallMembership.js +6 -5
- package/lib/matrixrtc/CallMembership.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.js +15 -5
- package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSessionManager.js +3 -2
- package/lib/matrixrtc/MatrixRTCSessionManager.js.map +1 -1
- package/lib/matrixrtc/MembershipManager.js +24 -17
- package/lib/matrixrtc/MembershipManager.js.map +1 -1
- package/lib/matrixrtc/MembershipManagerActionScheduler.js +2 -1
- package/lib/matrixrtc/MembershipManagerActionScheduler.js.map +1 -1
- package/lib/matrixrtc/RTCEncryptionManager.js +6 -4
- package/lib/matrixrtc/RTCEncryptionManager.js.map +1 -1
- package/lib/matrixrtc/ToDeviceKeyTransport.js +4 -4
- package/lib/matrixrtc/ToDeviceKeyTransport.js.map +1 -1
- package/lib/models/MSC3089TreeSpace.js +2 -1
- package/lib/models/MSC3089TreeSpace.js.map +1 -1
- package/lib/models/beacon.js +8 -4
- package/lib/models/beacon.js.map +1 -1
- package/lib/models/device.js +7 -0
- package/lib/models/device.js.map +1 -1
- package/lib/models/event-context.js +2 -1
- package/lib/models/event-context.js.map +1 -1
- package/lib/models/event-timeline-set.js +7 -1
- package/lib/models/event-timeline-set.js.map +1 -1
- package/lib/models/event-timeline.js +5 -1
- package/lib/models/event-timeline.js.map +1 -1
- package/lib/models/event.js +35 -11
- package/lib/models/event.js.map +1 -1
- package/lib/models/poll.js +7 -3
- package/lib/models/poll.js.map +1 -1
- package/lib/models/related-relations.js +2 -0
- package/lib/models/related-relations.js.map +1 -1
- package/lib/models/relations-container.js +2 -2
- package/lib/models/relations-container.js.map +1 -1
- package/lib/models/relations.js +4 -3
- package/lib/models/relations.js.map +1 -1
- package/lib/models/room-member.js +24 -2
- package/lib/models/room-member.js.map +1 -1
- package/lib/models/room-receipts.js +19 -12
- package/lib/models/room-receipts.js.map +1 -1
- package/lib/models/room-state.js +2 -2
- package/lib/models/room-state.js.map +1 -1
- package/lib/models/room-sticky-events.js +1 -0
- package/lib/models/room-sticky-events.js.map +1 -1
- package/lib/models/room.js +35 -4
- package/lib/models/room.js.map +1 -1
- package/lib/models/thread.js +46 -2
- package/lib/models/thread.js.map +1 -1
- package/lib/models/user.js +20 -1
- package/lib/models/user.js.map +1 -1
- package/lib/oidc/tokenRefresher.js +11 -8
- package/lib/oidc/tokenRefresher.js.map +1 -1
- package/lib/pushprocessor.js +1 -1
- package/lib/pushprocessor.js.map +1 -1
- package/lib/rendezvous/MSC4108SignInWithQR.js +6 -1
- package/lib/rendezvous/MSC4108SignInWithQR.js.map +1 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js +3 -1
- package/lib/rendezvous/channels/MSC4108SecureChannel.js.map +1 -1
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js +8 -0
- package/lib/rendezvous/transports/MSC4108RendezvousSession.js.map +1 -1
- package/lib/room-hierarchy.js +8 -4
- package/lib/room-hierarchy.js.map +1 -1
- package/lib/rust-crypto/DehydratedDeviceManager.js +3 -2
- package/lib/rust-crypto/DehydratedDeviceManager.js.map +1 -1
- package/lib/rust-crypto/KeyClaimManager.js +2 -1
- package/lib/rust-crypto/KeyClaimManager.js.map +1 -1
- package/lib/rust-crypto/OutgoingRequestsManager.js +12 -12
- package/lib/rust-crypto/OutgoingRequestsManager.js.map +1 -1
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js +5 -3
- package/lib/rust-crypto/PerSessionKeyBackupDownloader.js.map +1 -1
- package/lib/rust-crypto/RoomEncryptor.js +6 -6
- package/lib/rust-crypto/RoomEncryptor.js.map +1 -1
- package/lib/rust-crypto/backup.js +6 -4
- package/lib/rust-crypto/backup.js.map +1 -1
- package/lib/rust-crypto/rust-crypto.js +18 -10
- package/lib/rust-crypto/rust-crypto.js.map +1 -1
- package/lib/rust-crypto/verification.js +9 -7
- package/lib/rust-crypto/verification.js.map +1 -1
- package/lib/scheduler.js +2 -2
- package/lib/scheduler.js.map +1 -1
- package/lib/serverCapabilities.js +5 -2
- package/lib/serverCapabilities.js.map +1 -1
- package/lib/sliding-sync-sdk.js +6 -3
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sliding-sync.js +9 -4
- package/lib/sliding-sync.js.map +1 -1
- package/lib/store/indexeddb-local-backend.js +5 -1
- package/lib/store/indexeddb-local-backend.js.map +1 -1
- package/lib/store/indexeddb-remote-backend.js +7 -6
- package/lib/store/indexeddb-remote-backend.js.map +1 -1
- package/lib/store/indexeddb-store-worker.js +2 -1
- package/lib/store/indexeddb-store-worker.js.map +1 -1
- package/lib/store/indexeddb.js +1 -0
- package/lib/store/indexeddb.js.map +1 -1
- package/lib/store/memory.js +4 -0
- package/lib/store/memory.js.map +1 -1
- package/lib/sync-accumulator.js +1 -1
- package/lib/sync-accumulator.js.map +1 -1
- package/lib/sync.d.ts.map +1 -1
- package/lib/sync.js +32 -16
- package/lib/sync.js.map +1 -1
- package/lib/timeline-window.js +6 -2
- package/lib/timeline-window.js.map +1 -1
- package/lib/webrtc/call.js +42 -6
- package/lib/webrtc/call.js.map +1 -1
- package/lib/webrtc/callEventHandler.js +5 -0
- package/lib/webrtc/callEventHandler.js.map +1 -1
- package/lib/webrtc/callFeed.js +15 -0
- package/lib/webrtc/callFeed.js.map +1 -1
- package/lib/webrtc/groupCall.js +24 -8
- package/lib/webrtc/groupCall.js.map +1 -1
- package/lib/webrtc/groupCallEventHandler.js +1 -1
- package/lib/webrtc/groupCallEventHandler.js.map +1 -1
- package/lib/webrtc/mediaHandler.js +7 -3
- package/lib/webrtc/mediaHandler.js.map +1 -1
- package/lib/webrtc/stats/callStatsReportGatherer.js +5 -2
- package/lib/webrtc/stats/callStatsReportGatherer.js.map +1 -1
- package/lib/webrtc/stats/groupCallStats.js +4 -3
- package/lib/webrtc/stats/groupCallStats.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackStats.js +3 -3
- package/lib/webrtc/stats/media/mediaTrackStats.js.map +1 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js +1 -1
- package/lib/webrtc/stats/media/mediaTrackStatsHandler.js.map +1 -1
- package/package.json +125 -138
- package/src/client.ts +4 -1
- package/src/http-api/utils.ts +4 -9
- package/src/matrixrtc/MatrixRTCSession.ts +4 -3
- package/src/sync.ts +5 -1
package/package.json
CHANGED
|
@@ -1,139 +1,126 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
"
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
"
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
"allowedDeprecatedVersions": {
|
|
128
|
-
"eslint": "8"
|
|
129
|
-
},
|
|
130
|
-
"overrides": {
|
|
131
|
-
"expect": "30.3.0",
|
|
132
|
-
"flatted@<=3.4.1": "^3.4.2",
|
|
133
|
-
"picomatch@>=4.0.0 <4.0.4": "^4.0.4",
|
|
134
|
-
"yaml@>=2.0.0 <2.8.3": "^2.8.3",
|
|
135
|
-
"vite": "8.0.10"
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
"packageManager": "pnpm@10.33.3+sha512.a19744364a7e248b92657a4ca5973f9354d21caf982579674b1c539f32c7420c47138ad8b1254df07aba9bc782d9b3029e3db34d5dbff974326eb74dac8ff489"
|
|
139
|
-
}
|
|
2
|
+
"name": "matrix-js-sdk",
|
|
3
|
+
"version": "41.7.0-rc.2",
|
|
4
|
+
"description": "Matrix Client-Server SDK for Javascript",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=22.0.0"
|
|
7
|
+
},
|
|
8
|
+
"devEngines": {
|
|
9
|
+
"packageManager": {
|
|
10
|
+
"name": "pnpm",
|
|
11
|
+
"version": "11.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f",
|
|
12
|
+
"onFail": "error"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/matrix-org/matrix-js-sdk.git"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"matrix-org"
|
|
21
|
+
],
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "./lib/index.js",
|
|
24
|
+
"browser": "./lib/browser-index.js",
|
|
25
|
+
"typings": "./lib/index.d.ts",
|
|
26
|
+
"author": "matrix.org",
|
|
27
|
+
"license": "Apache-2.0",
|
|
28
|
+
"files": [
|
|
29
|
+
"lib",
|
|
30
|
+
"src",
|
|
31
|
+
"git-revision.txt",
|
|
32
|
+
"CHANGELOG.md",
|
|
33
|
+
"CONTRIBUTING.rst",
|
|
34
|
+
"LICENSE",
|
|
35
|
+
"README.md",
|
|
36
|
+
"package.json",
|
|
37
|
+
"release.sh"
|
|
38
|
+
],
|
|
39
|
+
"dependencies": {
|
|
40
|
+
"@babel/runtime": "^7.12.5",
|
|
41
|
+
"@matrix-org/matrix-sdk-crypto-wasm": "^18.2.0",
|
|
42
|
+
"another-json": "^0.2.0",
|
|
43
|
+
"bs58": "^6.0.0",
|
|
44
|
+
"content-type": "^2.0.0",
|
|
45
|
+
"jwt-decode": "^4.0.0",
|
|
46
|
+
"loglevel": "^1.9.2",
|
|
47
|
+
"matrix-events-sdk": "0.0.1",
|
|
48
|
+
"matrix-widget-api": "^1.16.1",
|
|
49
|
+
"oidc-client-ts": "^3.0.1",
|
|
50
|
+
"p-retry": "8",
|
|
51
|
+
"sdp-transform": "^3.0.0",
|
|
52
|
+
"unhomoglyph": "^1.0.6"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@action-validator/cli": "^0.6.0",
|
|
56
|
+
"@action-validator/core": "^0.6.0",
|
|
57
|
+
"@babel/cli": "^7.12.10",
|
|
58
|
+
"@babel/core": "^7.12.10",
|
|
59
|
+
"@babel/eslint-parser": "^7.12.10",
|
|
60
|
+
"@babel/eslint-plugin": "^7.12.10",
|
|
61
|
+
"@babel/plugin-proposal-decorators": "^7.25.9",
|
|
62
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
63
|
+
"@babel/plugin-transform-class-properties": "^7.12.1",
|
|
64
|
+
"@babel/plugin-transform-numeric-separator": "^7.12.7",
|
|
65
|
+
"@babel/plugin-transform-object-rest-spread": "^7.12.1",
|
|
66
|
+
"@babel/plugin-transform-runtime": "^7.12.10",
|
|
67
|
+
"@babel/preset-env": "^7.12.11",
|
|
68
|
+
"@babel/preset-typescript": "^7.12.7",
|
|
69
|
+
"@fetch-mock/vitest": "^0.2.18",
|
|
70
|
+
"@matrix-org/olm": "3.2.15",
|
|
71
|
+
"@peculiar/webcrypto": "^1.4.5",
|
|
72
|
+
"@stylistic/eslint-plugin": "^5.0.0",
|
|
73
|
+
"@types/debug": "^4.1.7",
|
|
74
|
+
"@types/node": "22",
|
|
75
|
+
"@types/sdp-transform": "^2.4.5",
|
|
76
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
77
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
78
|
+
"@vitest/coverage-v8": "^4.0.17",
|
|
79
|
+
"@vitest/eslint-plugin": "^1.6.6",
|
|
80
|
+
"@vitest/ui": "^4.0.17",
|
|
81
|
+
"babel-plugin-search-and-replace": "^1.1.1",
|
|
82
|
+
"concurrently": "^9.2.1",
|
|
83
|
+
"debug": "^4.3.4",
|
|
84
|
+
"eslint": "8.57.1",
|
|
85
|
+
"eslint-config-google": "^0.14.0",
|
|
86
|
+
"eslint-config-prettier": "^10.0.0",
|
|
87
|
+
"eslint-import-resolver-typescript": "^4.0.0",
|
|
88
|
+
"eslint-plugin-import": "^2.26.0",
|
|
89
|
+
"eslint-plugin-jsdoc": "^63.0.0",
|
|
90
|
+
"eslint-plugin-matrix-org": "^3.0.0",
|
|
91
|
+
"eslint-plugin-n": "^14.0.0",
|
|
92
|
+
"eslint-plugin-tsdoc": "^0.5.0",
|
|
93
|
+
"eslint-plugin-unicorn": "^56.0.0",
|
|
94
|
+
"fake-indexeddb": "^5.0.2",
|
|
95
|
+
"fetch-mock": "^12.6.0",
|
|
96
|
+
"happy-dom": "^20.1.0",
|
|
97
|
+
"husky": "^9.0.0",
|
|
98
|
+
"knip": "^6.0.0",
|
|
99
|
+
"lint-staged": "^17.0.0",
|
|
100
|
+
"matrix-mock-request": "^2.5.0",
|
|
101
|
+
"prettier": "3.8.3",
|
|
102
|
+
"typedoc": "^0.28.1",
|
|
103
|
+
"typedoc-plugin-coverage": "^4.0.0",
|
|
104
|
+
"typedoc-plugin-mdn-links": "^5.0.0",
|
|
105
|
+
"typedoc-plugin-missing-exports": "^4.0.0",
|
|
106
|
+
"typescript": "^6.0.0",
|
|
107
|
+
"vitest": "^4.0.17"
|
|
108
|
+
},
|
|
109
|
+
"scripts": {
|
|
110
|
+
"start": "concurrently 'pnpm run build:compile --watch' 'pnpm run build:types --watch'",
|
|
111
|
+
"build": "pnpm build:compile && pnpm build:types",
|
|
112
|
+
"build:types": "tsc -p tsconfig-build.json --emitDeclarationOnly",
|
|
113
|
+
"build:compile": "babel --delete-dir-on-start -d lib --verbose --extensions \".ts,.js\" src",
|
|
114
|
+
"gendoc": "typedoc",
|
|
115
|
+
"lint": "pnpm lint:types && pnpm lint:js && pnpm lint:workflows",
|
|
116
|
+
"lint:js": "eslint --max-warnings 0 src spec && prettier --check .",
|
|
117
|
+
"lint:js-fix": "prettier --log-level=warn --write . && eslint --fix src spec",
|
|
118
|
+
"lint:types": "tsc --noEmit",
|
|
119
|
+
"lint:workflows": "find .github/workflows -type f \\( -iname '*.yaml' -o -iname '*.yml' \\) | xargs -I {} sh -c 'echo \"Linting {}\"; action-validator \"{}\"'",
|
|
120
|
+
"lint:knip": "knip",
|
|
121
|
+
"test": "vitest run",
|
|
122
|
+
"test:watch": "vitest watch",
|
|
123
|
+
"coverage": "pnpm test --coverage",
|
|
124
|
+
"coverage:diff": "diff-cover --config-file diff-cover.toml coverage/lcov.info"
|
|
125
|
+
}
|
|
126
|
+
}
|
package/src/client.ts
CHANGED
|
@@ -3742,7 +3742,10 @@ export class MatrixClient extends TypedEventEmitter<EmittedEvents, ClientEventHa
|
|
|
3742
3742
|
$delayId: delayId,
|
|
3743
3743
|
$action: action,
|
|
3744
3744
|
});
|
|
3745
|
-
|
|
3745
|
+
// Although this endpoint supports being used without authentication,
|
|
3746
|
+
// do authenticate here to make ratelimiting apply per user instead of per source IP address,
|
|
3747
|
+
// if the server supports that
|
|
3748
|
+
return await this.http.authedRequest(Method.Post, path, undefined, undefined, {
|
|
3746
3749
|
...requestOptions,
|
|
3747
3750
|
prefix: `${ClientPrefix.Unstable}/${UNSTABLE_MSC4140_DELAYED_EVENTS}`,
|
|
3748
3751
|
});
|
package/src/http-api/utils.ts
CHANGED
|
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { parse as parseContentType, type
|
|
17
|
+
import { parse as parseContentType, type ContentType } from "content-type";
|
|
18
18
|
|
|
19
19
|
import { logger } from "../logger.ts";
|
|
20
20
|
import { sleep } from "../utils.ts";
|
|
@@ -92,7 +92,7 @@ export function parseErrorResponse(response: XMLHttpRequest | Response, body?: s
|
|
|
92
92
|
)
|
|
93
93
|
: response.headers;
|
|
94
94
|
|
|
95
|
-
let contentType:
|
|
95
|
+
let contentType: ContentType | null;
|
|
96
96
|
try {
|
|
97
97
|
contentType = getResponseContentType(httpHeaders);
|
|
98
98
|
} catch (e) {
|
|
@@ -136,15 +136,10 @@ function isXhr(response: XMLHttpRequest | Response): response is XMLHttpRequest
|
|
|
136
136
|
* @param response - response object
|
|
137
137
|
* @returns parsed content-type header, or null if not found
|
|
138
138
|
*/
|
|
139
|
-
function getResponseContentType(headers: Headers):
|
|
139
|
+
function getResponseContentType(headers: Headers): ContentType | null {
|
|
140
140
|
const contentType = headers.get("Content-Type");
|
|
141
141
|
if (contentType === null) return null;
|
|
142
|
-
|
|
143
|
-
try {
|
|
144
|
-
return parseContentType(contentType);
|
|
145
|
-
} catch (e) {
|
|
146
|
-
throw new Error(`Error parsing Content-Type '${contentType}': ${e}`);
|
|
147
|
-
}
|
|
142
|
+
return parseContentType(contentType);
|
|
148
143
|
}
|
|
149
144
|
|
|
150
145
|
/**
|
|
@@ -755,9 +755,10 @@ export class MatrixRTCSession extends TypedEventEmitter<
|
|
|
755
755
|
}
|
|
756
756
|
this.membershipNeedsRecalculation = true;
|
|
757
757
|
// Chain the recalculation.
|
|
758
|
-
this.recalculateSessionMembersPromise = this.recalculateSessionMembersPromise
|
|
759
|
-
.
|
|
760
|
-
|
|
758
|
+
this.recalculateSessionMembersPromise = this.recalculateSessionMembersPromise.then(
|
|
759
|
+
() => this.recalculateSessionMembers(),
|
|
760
|
+
() => this.recalculateSessionMembers(),
|
|
761
|
+
);
|
|
761
762
|
return this.recalculateSessionMembersPromise;
|
|
762
763
|
}
|
|
763
764
|
|
package/src/sync.ts
CHANGED
|
@@ -1167,7 +1167,6 @@ export class SyncApi {
|
|
|
1167
1167
|
for (const [userId, userData] of Object.entries(userUpdate)) {
|
|
1168
1168
|
logger.info(`Storing user profile ${userId}`, userData);
|
|
1169
1169
|
if (userData.profile_updates) {
|
|
1170
|
-
client.emit(ClientEvent.UserProfileUpdate, userId, userData.profile_updates);
|
|
1171
1170
|
const existingProfile = await client.store.getUserProfile(userId);
|
|
1172
1171
|
profilesToAmend.set(userId, { ...existingProfile, ...userData.profile_updates });
|
|
1173
1172
|
} else if (userData.profile_updates === null) {
|
|
@@ -1180,6 +1179,11 @@ export class SyncApi {
|
|
|
1180
1179
|
if (profilesToAmend.size) {
|
|
1181
1180
|
await client.store.storeUserProfiles(profilesToAmend);
|
|
1182
1181
|
}
|
|
1182
|
+
|
|
1183
|
+
// emit after we've update the store so that clients can get the updated profile if they want to
|
|
1184
|
+
for (const [userId, userData] of Object.entries(userUpdate)) {
|
|
1185
|
+
client.emit(ClientEvent.UserProfileUpdate, userId, userData.profile_updates ?? null);
|
|
1186
|
+
}
|
|
1183
1187
|
}
|
|
1184
1188
|
|
|
1185
1189
|
// handle to-device events
|