matrix-js-sdk 37.2.0 → 37.3.0-rc.0
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/git-revision.txt +1 -1
- package/lib/client.d.ts +8 -2
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +11 -3
- package/lib/client.js.map +1 -1
- package/lib/common-crypto/CryptoBackend.d.ts +8 -0
- package/lib/common-crypto/CryptoBackend.d.ts.map +1 -1
- package/lib/common-crypto/CryptoBackend.js.map +1 -1
- package/lib/http-api/errors.d.ts +8 -0
- package/lib/http-api/errors.d.ts.map +1 -1
- package/lib/http-api/errors.js +14 -0
- package/lib/http-api/errors.js.map +1 -1
- package/lib/http-api/fetch.d.ts.map +1 -1
- package/lib/http-api/fetch.js +3 -3
- package/lib/http-api/fetch.js.map +1 -1
- package/lib/matrixrtc/LegacyMembershipManager.d.ts +9 -1
- package/lib/matrixrtc/LegacyMembershipManager.d.ts.map +1 -1
- package/lib/matrixrtc/LegacyMembershipManager.js +20 -0
- package/lib/matrixrtc/LegacyMembershipManager.js.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.d.ts.map +1 -1
- package/lib/matrixrtc/MatrixRTCSession.js.map +1 -1
- package/lib/matrixrtc/NewMembershipManager.d.ts +7 -58
- package/lib/matrixrtc/NewMembershipManager.d.ts.map +1 -1
- package/lib/matrixrtc/NewMembershipManager.js +130 -137
- package/lib/matrixrtc/NewMembershipManager.js.map +1 -1
- package/lib/matrixrtc/NewMembershipManagerActionScheduler.js +3 -3
- package/lib/matrixrtc/NewMembershipManagerActionScheduler.js.map +1 -1
- package/lib/matrixrtc/index.d.ts +1 -0
- package/lib/matrixrtc/index.d.ts.map +1 -1
- package/lib/matrixrtc/index.js +1 -0
- package/lib/matrixrtc/index.js.map +1 -1
- package/lib/matrixrtc/types.d.ts +77 -1
- package/lib/matrixrtc/types.d.ts.map +1 -1
- package/lib/matrixrtc/types.js +40 -1
- package/lib/matrixrtc/types.js.map +1 -1
- package/lib/models/room-summary.d.ts +30 -0
- package/lib/models/room-summary.d.ts.map +1 -1
- package/lib/models/room-summary.js +11 -0
- package/lib/models/room-summary.js.map +1 -1
- package/lib/models/room.d.ts +37 -1
- package/lib/models/room.d.ts.map +1 -1
- package/lib/models/room.js +133 -28
- package/lib/models/room.js.map +1 -1
- package/lib/oidc/tokenRefresher.d.ts.map +1 -1
- package/lib/oidc/tokenRefresher.js +8 -1
- package/lib/oidc/tokenRefresher.js.map +1 -1
- package/lib/pushprocessor.d.ts +10 -1
- package/lib/pushprocessor.d.ts.map +1 -1
- package/lib/pushprocessor.js +24 -9
- package/lib/pushprocessor.js.map +1 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.d.ts.map +1 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js +6 -1
- package/lib/rust-crypto/OutgoingRequestProcessor.js.map +1 -1
- package/lib/rust-crypto/rust-crypto.d.ts +4 -1
- package/lib/rust-crypto/rust-crypto.d.ts.map +1 -1
- package/lib/rust-crypto/rust-crypto.js +55 -46
- package/lib/rust-crypto/rust-crypto.js.map +1 -1
- package/lib/sliding-sync-sdk.d.ts.map +1 -1
- package/lib/sliding-sync-sdk.js +86 -75
- package/lib/sliding-sync-sdk.js.map +1 -1
- package/lib/sliding-sync.d.ts +23 -60
- package/lib/sliding-sync.d.ts.map +1 -1
- package/lib/sliding-sync.js +62 -321
- package/lib/sliding-sync.js.map +1 -1
- package/package.json +6 -6
- package/src/client.ts +12 -5
- package/src/common-crypto/CryptoBackend.ts +9 -0
- package/src/http-api/errors.ts +14 -0
- package/src/http-api/fetch.ts +3 -4
- package/src/matrixrtc/LegacyMembershipManager.ts +27 -1
- package/src/matrixrtc/MatrixRTCSession.ts +2 -1
- package/src/matrixrtc/NewMembershipManager.ts +120 -165
- package/src/matrixrtc/NewMembershipManagerActionScheduler.ts +3 -3
- package/src/matrixrtc/index.ts +1 -0
- package/src/matrixrtc/types.ts +84 -1
- package/src/models/room-summary.ts +31 -0
- package/src/models/room.ts +133 -23
- package/src/oidc/tokenRefresher.ts +8 -2
- package/src/pushprocessor.ts +25 -16
- package/src/rust-crypto/OutgoingRequestProcessor.ts +6 -0
- package/src/rust-crypto/rust-crypto.ts +7 -1
- package/src/sliding-sync-sdk.ts +28 -28
- package/src/sliding-sync.ts +38 -329
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sliding-sync-sdk.d.ts","sourceRoot":"","sources":["../src/sliding-sync-sdk.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAyB,IAAI,EAAa,MAAM,kBAAkB,CAAC;AAI1E,OAAO,EAAe,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EACH,KAAK,cAAc,EACnB,SAAS,EAET,KAAK,cAAc,EAGnB,KAAK,WAAW,EAEnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,EAKH,KAAK,WAAW,EAGnB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"sliding-sync-sdk.d.ts","sourceRoot":"","sources":["../src/sliding-sync-sdk.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAyB,IAAI,EAAa,MAAM,kBAAkB,CAAC;AAI1E,OAAO,EAAe,KAAK,iBAAiB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EACH,KAAK,cAAc,EACnB,SAAS,EAET,KAAK,cAAc,EAGnB,KAAK,WAAW,EAEnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AASrD,OAAO,EAKH,KAAK,WAAW,EAGnB,MAAM,mBAAmB,CAAC;AAqS3B;;;GAGG;AACH,qBAAa,cAAc;IAUnB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAV3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAqB;gBAGnB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,YAAY,EACrC,IAAI,CAAC,EAAE,iBAAiB,EACxB,QAAQ,CAAC,EAAE,cAAc;YAyBf,UAAU;IAYxB,OAAO,CAAC,WAAW;IAiDnB;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAI7C;;;;;;OAMG;IACU,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD;;;OAGG;IACI,WAAW,IAAI,IAAI;IAI1B;;;OAGG;IACI,WAAW,CAAC,QAAQ,CAAC,EAAE,WAAW,GAAG,IAAI;IAIhD;;;OAGG;IACI,YAAY,IAAI,SAAS,GAAG,IAAI;IAIvC;;;;;;OAMG;IACI,gBAAgB,IAAI,cAAc,GAAG,IAAI;IAMzC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAwBvC,OAAO,CAAC,sBAAsB;IA8B9B,OAAO,CAAC,eAAe;YAWT,eAAe;IAiM7B;;;;;;;;OAQG;IACU,gBAAgB,CACzB,IAAI,EAAE,IAAI,EACV,cAAc,EAAE,WAAW,EAAE,EAC7B,iBAAiB,GAAE,WAAW,EAAO,EACrC,OAAO,GAAE,MAAU,GACpB,OAAO,CAAC,IAAI,CAAC;IAuEhB,OAAO,CAAC,cAAc;IA2Cf,gBAAgB,IAAI,OAAO;IAIlC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAwBlC;;OAEG;IACI,IAAI,IAAI,IAAI;IAKnB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAOvB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;CAS7B"}
|
package/lib/sliding-sync-sdk.js
CHANGED
|
@@ -44,24 +44,34 @@ class ExtensionE2EE {
|
|
|
44
44
|
return ExtensionState.PreProcess;
|
|
45
45
|
}
|
|
46
46
|
onRequest(isInitial) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
var _this = this;
|
|
48
|
+
return _asyncToGenerator(function* () {
|
|
49
|
+
if (isInitial) {
|
|
50
|
+
// In SSS, the `?pos=` contains the stream position for device list updates.
|
|
51
|
+
// If we do not have a `?pos=` (e.g because we forgot it, or because the server
|
|
52
|
+
// invalidated our connection) then we MUST invlaidate all device lists because
|
|
53
|
+
// the server will not tell us the delta. This will then cause UTDs as we will fail
|
|
54
|
+
// to encrypt for new devices. This is an expensive call, so we should
|
|
55
|
+
// really really remember `?pos=` wherever possible.
|
|
56
|
+
logger.log("ExtensionE2EE: invalidating all device lists due to missing 'pos'");
|
|
57
|
+
yield _this.crypto.markAllTrackedUsersAsDirty();
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
enabled: true // this is sticky so only send it on the initial request
|
|
61
|
+
};
|
|
62
|
+
})();
|
|
53
63
|
}
|
|
54
64
|
onResponse(data) {
|
|
55
|
-
var
|
|
65
|
+
var _this2 = this;
|
|
56
66
|
return _asyncToGenerator(function* () {
|
|
57
67
|
// Handle device list updates
|
|
58
68
|
if (data.device_lists) {
|
|
59
|
-
yield
|
|
69
|
+
yield _this2.crypto.processDeviceLists(data.device_lists);
|
|
60
70
|
}
|
|
61
71
|
|
|
62
72
|
// Handle one_time_keys_count and unused_fallback_key_types
|
|
63
|
-
yield
|
|
64
|
-
|
|
73
|
+
yield _this2.crypto.processKeyCounts(data.device_one_time_keys_count, data["device_unused_fallback_key_types"] || data["org.matrix.msc2732.device_unused_fallback_key_types"]);
|
|
74
|
+
_this2.crypto.onSyncCompleted({});
|
|
65
75
|
})();
|
|
66
76
|
}
|
|
67
77
|
}
|
|
@@ -78,22 +88,22 @@ class ExtensionToDevice {
|
|
|
78
88
|
return ExtensionState.PreProcess;
|
|
79
89
|
}
|
|
80
90
|
onRequest(isInitial) {
|
|
81
|
-
var
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
var _this3 = this;
|
|
92
|
+
return _asyncToGenerator(function* () {
|
|
93
|
+
return {
|
|
94
|
+
since: _this3.nextBatch !== null ? _this3.nextBatch : undefined,
|
|
95
|
+
limit: 100,
|
|
96
|
+
enabled: true
|
|
97
|
+
};
|
|
98
|
+
})();
|
|
89
99
|
}
|
|
90
100
|
onResponse(data) {
|
|
91
|
-
var
|
|
101
|
+
var _this4 = this;
|
|
92
102
|
return _asyncToGenerator(function* () {
|
|
93
103
|
var cancelledKeyVerificationTxns = [];
|
|
94
104
|
var events = data["events"] || [];
|
|
95
|
-
if (events.length > 0 &&
|
|
96
|
-
events = yield
|
|
105
|
+
if (events.length > 0 && _this4.cryptoCallbacks) {
|
|
106
|
+
events = yield _this4.cryptoCallbacks.preprocessToDeviceMessages(events);
|
|
97
107
|
}
|
|
98
108
|
events.map(mapToDeviceEvent).map(toDeviceEvent => {
|
|
99
109
|
// map is a cheap inline forEach
|
|
@@ -125,9 +135,9 @@ class ExtensionToDevice {
|
|
|
125
135
|
toDeviceEvent.flagCancelled();
|
|
126
136
|
}
|
|
127
137
|
}
|
|
128
|
-
|
|
138
|
+
_this4.client.emit(ClientEvent.ToDeviceEvent, toDeviceEvent);
|
|
129
139
|
});
|
|
130
|
-
|
|
140
|
+
_this4.nextBatch = data.next_batch;
|
|
131
141
|
})();
|
|
132
142
|
}
|
|
133
143
|
}
|
|
@@ -142,29 +152,28 @@ class ExtensionAccountData {
|
|
|
142
152
|
return ExtensionState.PostProcess;
|
|
143
153
|
}
|
|
144
154
|
onRequest(isInitial) {
|
|
145
|
-
|
|
146
|
-
return
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
};
|
|
155
|
+
return _asyncToGenerator(function* () {
|
|
156
|
+
return {
|
|
157
|
+
enabled: true
|
|
158
|
+
};
|
|
159
|
+
})();
|
|
151
160
|
}
|
|
152
161
|
onResponse(data) {
|
|
153
|
-
var
|
|
162
|
+
var _this5 = this;
|
|
154
163
|
return _asyncToGenerator(function* () {
|
|
155
164
|
if (data.global && data.global.length > 0) {
|
|
156
|
-
|
|
165
|
+
_this5.processGlobalAccountData(data.global);
|
|
157
166
|
}
|
|
158
167
|
for (var roomId in data.rooms) {
|
|
159
|
-
var accountDataEvents = mapEvents(
|
|
160
|
-
var room =
|
|
168
|
+
var accountDataEvents = mapEvents(_this5.client, roomId, data.rooms[roomId]);
|
|
169
|
+
var room = _this5.client.getRoom(roomId);
|
|
161
170
|
if (!room) {
|
|
162
171
|
logger.warn("got account data for room but room doesn't exist on client:", roomId);
|
|
163
172
|
continue;
|
|
164
173
|
}
|
|
165
174
|
room.addAccountData(accountDataEvents);
|
|
166
175
|
accountDataEvents.forEach(e => {
|
|
167
|
-
|
|
176
|
+
_this5.client.emit(ClientEvent.Event, e);
|
|
168
177
|
});
|
|
169
178
|
}
|
|
170
179
|
})();
|
|
@@ -202,21 +211,20 @@ class ExtensionTyping {
|
|
|
202
211
|
return ExtensionState.PostProcess;
|
|
203
212
|
}
|
|
204
213
|
onRequest(isInitial) {
|
|
205
|
-
|
|
206
|
-
return
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
};
|
|
214
|
+
return _asyncToGenerator(function* () {
|
|
215
|
+
return {
|
|
216
|
+
enabled: true
|
|
217
|
+
};
|
|
218
|
+
})();
|
|
211
219
|
}
|
|
212
220
|
onResponse(data) {
|
|
213
|
-
var
|
|
221
|
+
var _this6 = this;
|
|
214
222
|
return _asyncToGenerator(function* () {
|
|
215
223
|
if (!(data !== null && data !== void 0 && data.rooms)) {
|
|
216
224
|
return;
|
|
217
225
|
}
|
|
218
226
|
for (var roomId in data.rooms) {
|
|
219
|
-
processEphemeralEvents(
|
|
227
|
+
processEphemeralEvents(_this6.client, roomId, [data.rooms[roomId]]);
|
|
220
228
|
}
|
|
221
229
|
})();
|
|
222
230
|
}
|
|
@@ -232,21 +240,20 @@ class ExtensionReceipts {
|
|
|
232
240
|
return ExtensionState.PostProcess;
|
|
233
241
|
}
|
|
234
242
|
onRequest(isInitial) {
|
|
235
|
-
|
|
243
|
+
return _asyncToGenerator(function* () {
|
|
236
244
|
return {
|
|
237
245
|
enabled: true
|
|
238
246
|
};
|
|
239
|
-
}
|
|
240
|
-
return undefined; // don't send a JSON object for subsequent requests, we don't need to.
|
|
247
|
+
})();
|
|
241
248
|
}
|
|
242
249
|
onResponse(data) {
|
|
243
|
-
var
|
|
250
|
+
var _this7 = this;
|
|
244
251
|
return _asyncToGenerator(function* () {
|
|
245
252
|
if (!(data !== null && data !== void 0 && data.rooms)) {
|
|
246
253
|
return;
|
|
247
254
|
}
|
|
248
255
|
for (var roomId in data.rooms) {
|
|
249
|
-
processEphemeralEvents(
|
|
256
|
+
processEphemeralEvents(_this7.client, roomId, [data.rooms[roomId]]);
|
|
250
257
|
}
|
|
251
258
|
})();
|
|
252
259
|
}
|
|
@@ -285,17 +292,17 @@ export class SlidingSyncSdk {
|
|
|
285
292
|
});
|
|
286
293
|
}
|
|
287
294
|
onRoomData(roomId, roomData) {
|
|
288
|
-
var
|
|
295
|
+
var _this8 = this;
|
|
289
296
|
return _asyncToGenerator(function* () {
|
|
290
|
-
var room =
|
|
297
|
+
var room = _this8.client.store.getRoom(roomId);
|
|
291
298
|
if (!room) {
|
|
292
299
|
if (!roomData.initial) {
|
|
293
300
|
logger.debug("initial flag not set but no stored room exists for room ", roomId, roomData);
|
|
294
301
|
return;
|
|
295
302
|
}
|
|
296
|
-
room = _createAndReEmitRoom(
|
|
303
|
+
room = _createAndReEmitRoom(_this8.client, roomId, _this8.opts);
|
|
297
304
|
}
|
|
298
|
-
yield
|
|
305
|
+
yield _this8.processRoomData(_this8.client, room, roomData);
|
|
299
306
|
})();
|
|
300
307
|
}
|
|
301
308
|
onLifecycle(state, resp, err) {
|
|
@@ -338,6 +345,7 @@ export class SlidingSyncSdk {
|
|
|
338
345
|
}
|
|
339
346
|
} else {
|
|
340
347
|
this.failCount = 0;
|
|
348
|
+
logger.log("SlidingSyncState.RequestFinished with ".concat(Object.keys((resp === null || resp === void 0 ? void 0 : resp.rooms) || []).length, " rooms"));
|
|
341
349
|
}
|
|
342
350
|
break;
|
|
343
351
|
}
|
|
@@ -452,20 +460,20 @@ export class SlidingSyncSdk {
|
|
|
452
460
|
return false;
|
|
453
461
|
}
|
|
454
462
|
processRoomData(client, room, roomData) {
|
|
455
|
-
var
|
|
463
|
+
var _this9 = this;
|
|
456
464
|
return _asyncToGenerator(function* () {
|
|
457
465
|
roomData = ensureNameEvent(client, room.roomId, roomData);
|
|
458
|
-
var stateEvents = mapEvents(
|
|
466
|
+
var stateEvents = mapEvents(_this9.client, room.roomId, roomData.required_state);
|
|
459
467
|
// Prevent events from being decrypted ahead of time
|
|
460
468
|
// this helps large account to speed up faster
|
|
461
469
|
// room::decryptCriticalEvent is in charge of decrypting all the events
|
|
462
470
|
// required for a client to function properly
|
|
463
|
-
var timelineEvents = mapEvents(
|
|
471
|
+
var timelineEvents = mapEvents(_this9.client, room.roomId, roomData.timeline, false);
|
|
464
472
|
var ephemeralEvents = []; // TODO this.mapSyncEventsFormat(joinObj.ephemeral);
|
|
465
473
|
|
|
466
474
|
// TODO: handle threaded / beacon events
|
|
467
475
|
|
|
468
|
-
if (roomData.initial) {
|
|
476
|
+
if (roomData.limited || roomData.initial) {
|
|
469
477
|
// we should not know about any of these timeline entries if this is a genuinely new room.
|
|
470
478
|
// If we do, then we've effectively done scrollback (e.g requesting timeline_limit: 1 for
|
|
471
479
|
// this room, then timeline_limit: 50).
|
|
@@ -518,6 +526,9 @@ export class SlidingSyncSdk {
|
|
|
518
526
|
room.setUnreadNotificationCount(NotificationCountType.Highlight, roomData.highlight_count);
|
|
519
527
|
}
|
|
520
528
|
}
|
|
529
|
+
if (roomData.bump_stamp) {
|
|
530
|
+
room.setBumpStamp(roomData.bump_stamp);
|
|
531
|
+
}
|
|
521
532
|
if (Number.isInteger(roomData.invited_count)) {
|
|
522
533
|
room.currentState.setInvitedMemberCount(roomData.invited_count);
|
|
523
534
|
}
|
|
@@ -525,20 +536,19 @@ export class SlidingSyncSdk {
|
|
|
525
536
|
room.currentState.setJoinedMemberCount(roomData.joined_count);
|
|
526
537
|
}
|
|
527
538
|
if (roomData.invite_state) {
|
|
528
|
-
var inviteStateEvents = mapEvents(
|
|
529
|
-
yield
|
|
539
|
+
var inviteStateEvents = mapEvents(_this9.client, room.roomId, roomData.invite_state);
|
|
540
|
+
yield _this9.injectRoomEvents(room, inviteStateEvents);
|
|
530
541
|
if (roomData.initial) {
|
|
531
542
|
room.recalculate();
|
|
532
|
-
|
|
533
|
-
|
|
543
|
+
_this9.client.store.storeRoom(room);
|
|
544
|
+
_this9.client.emit(ClientEvent.Room, room);
|
|
534
545
|
}
|
|
535
546
|
inviteStateEvents.forEach(e => {
|
|
536
|
-
|
|
547
|
+
_this9.client.emit(ClientEvent.Event, e);
|
|
537
548
|
});
|
|
538
|
-
room.updateMyMembership(KnownMembership.Invite);
|
|
539
549
|
return;
|
|
540
550
|
}
|
|
541
|
-
if (roomData.
|
|
551
|
+
if (roomData.limited) {
|
|
542
552
|
var _roomData$prev_batch;
|
|
543
553
|
// set the back-pagination token. Do this *before* adding any
|
|
544
554
|
// events so that clients can start back-paginating.
|
|
@@ -592,7 +602,7 @@ export class SlidingSyncSdk {
|
|
|
592
602
|
}
|
|
593
603
|
} */
|
|
594
604
|
|
|
595
|
-
yield
|
|
605
|
+
yield _this9.injectRoomEvents(room, stateEvents, timelineEvents, roomData.num_live);
|
|
596
606
|
|
|
597
607
|
// we deliberately don't add ephemeral events to the timeline
|
|
598
608
|
room.addEphemeralEvents(ephemeralEvents);
|
|
@@ -600,6 +610,7 @@ export class SlidingSyncSdk {
|
|
|
600
610
|
// local fields must be set before any async calls because call site assumes
|
|
601
611
|
// synchronous execution prior to emitting SlidingSyncState.Complete
|
|
602
612
|
room.updateMyMembership(KnownMembership.Join);
|
|
613
|
+
room.setMSC4186SummaryData(roomData.heroes, roomData.joined_count, roomData.invited_count);
|
|
603
614
|
room.recalculate();
|
|
604
615
|
if (roomData.initial) {
|
|
605
616
|
client.store.storeRoom(room);
|
|
@@ -608,12 +619,12 @@ export class SlidingSyncSdk {
|
|
|
608
619
|
|
|
609
620
|
// check if any timeline events should bing and add them to the notifEvents array:
|
|
610
621
|
// we'll purge this once we've fully processed the sync response
|
|
611
|
-
|
|
622
|
+
_this9.addNotifications(timelineEvents);
|
|
612
623
|
var processRoomEvent = /*#__PURE__*/function () {
|
|
613
624
|
var _ref = _asyncToGenerator(function* (e) {
|
|
614
625
|
client.emit(ClientEvent.Event, e);
|
|
615
|
-
if (e.isState() && e.getType() == EventType.RoomEncryption &&
|
|
616
|
-
yield
|
|
626
|
+
if (e.isState() && e.getType() == EventType.RoomEncryption && _this9.syncOpts.cryptoCallbacks) {
|
|
627
|
+
yield _this9.syncOpts.cryptoCallbacks.onCryptoEvent(room, e);
|
|
617
628
|
}
|
|
618
629
|
});
|
|
619
630
|
return function processRoomEvent(_x) {
|
|
@@ -644,7 +655,7 @@ export class SlidingSyncSdk {
|
|
|
644
655
|
*/
|
|
645
656
|
injectRoomEvents(room, stateEventList) {
|
|
646
657
|
var _arguments = arguments,
|
|
647
|
-
|
|
658
|
+
_this10 = this;
|
|
648
659
|
return _asyncToGenerator(function* () {
|
|
649
660
|
var timelineEventList = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : [];
|
|
650
661
|
var numLive = _arguments.length > 3 && _arguments[3] !== undefined ? _arguments[3] : 0;
|
|
@@ -662,7 +673,7 @@ export class SlidingSyncSdk {
|
|
|
662
673
|
// find some solution where MatrixEvents are immutable but allow for a cache
|
|
663
674
|
// field.
|
|
664
675
|
for (var ev of stateEventList) {
|
|
665
|
-
|
|
676
|
+
_this10.client.getPushActionsForEvent(ev);
|
|
666
677
|
}
|
|
667
678
|
liveTimeline.initialiseState(stateEventList);
|
|
668
679
|
}
|
|
@@ -714,7 +725,7 @@ export class SlidingSyncSdk {
|
|
|
714
725
|
room.recalculate();
|
|
715
726
|
|
|
716
727
|
// resolve invites now we have set the latest state
|
|
717
|
-
|
|
728
|
+
_this10.resolveInvites(room);
|
|
718
729
|
})();
|
|
719
730
|
}
|
|
720
731
|
resolveInvites(room) {
|
|
@@ -764,29 +775,29 @@ export class SlidingSyncSdk {
|
|
|
764
775
|
* Main entry point. Blocks until stop() is called.
|
|
765
776
|
*/
|
|
766
777
|
sync() {
|
|
767
|
-
var
|
|
778
|
+
var _this11 = this;
|
|
768
779
|
return _asyncToGenerator(function* () {
|
|
769
780
|
logger.debug("Sliding sync init loop");
|
|
770
781
|
|
|
771
782
|
// 1) We need to get push rules so we can check if events should bing as we get
|
|
772
783
|
// them from /sync.
|
|
773
|
-
while (!
|
|
784
|
+
while (!_this11.client.isGuest()) {
|
|
774
785
|
try {
|
|
775
786
|
logger.debug("Getting push rules...");
|
|
776
|
-
var result = yield
|
|
787
|
+
var result = yield _this11.client.getPushRules();
|
|
777
788
|
logger.debug("Got push rules");
|
|
778
|
-
|
|
789
|
+
_this11.client.pushRules = result;
|
|
779
790
|
break;
|
|
780
791
|
} catch (err) {
|
|
781
792
|
logger.error("Getting push rules failed", err);
|
|
782
|
-
if (
|
|
793
|
+
if (_this11.shouldAbortSync(err)) {
|
|
783
794
|
return;
|
|
784
795
|
}
|
|
785
796
|
}
|
|
786
797
|
}
|
|
787
798
|
|
|
788
799
|
// start syncing
|
|
789
|
-
yield
|
|
800
|
+
yield _this11.slidingSync.start();
|
|
790
801
|
})();
|
|
791
802
|
}
|
|
792
803
|
|