@reactoo/watchtogether-sdk-js 2.8.11 → 2.8.13

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reactoo/watchtogether-sdk-js",
3
- "version": "2.8.11",
3
+ "version": "2.8.13",
4
4
  "description": "Javascript SDK for Reactoo",
5
5
  "main": "dist/watchtogether-sdk.min.js",
6
6
  "module": "dist/watchtogether-sdk.min.js",
@@ -141,16 +141,28 @@ let user = function () {
141
141
  });
142
142
  }, Promise.resolve({data: {items: [], size: 0, startKey: null}}));
143
143
  },
144
- getUsers: ({type, userId, roomId, size = 20, startKey = null} = {}) => {
145
- let apiParams = {
146
- type,
147
- size,
148
- ...(roomId && {roomId}),
149
- ...(userId && {userId}),
150
- ...(startKey && {startKey})
151
- };
152
- return this.__privates.auth.__client
153
- .then(client => client.apis.user.getUsers(apiParams))
144
+ getUserList: ({type = 'instanceType', roomId, ids, size = 20, startKey = null}) => {
145
+ return chunkArray(ids, 50)
146
+ .reduce((promiseChain, idsChunk) => {
147
+ return promiseChain.then(chainResponse => {
148
+ let apiParams = {
149
+ type,
150
+ ...(roomId && {roomId}),
151
+ ...(idsChunk?.length && {ids: idsChunk.join(',')}),
152
+ ...(size && !ids && {size}),
153
+ ...(startKey && {startKey})
154
+ };
155
+ return this.__privates.auth.__client
156
+ .then(client => client.apis.user.getUsers(apiParams))
157
+ .then(response => type === 'ids' ? ({
158
+ data: {
159
+ items: [...chainResponse.data.items, ...response.data.items],
160
+ size: chainResponse.data.size + response.data.size,
161
+ startKey: null,
162
+ },
163
+ }) : response);
164
+ });
165
+ }, Promise.resolve({data: {items: [], size: 0, startKey: null}}));
154
166
  },
155
167
 
156
168
  //TODO:deprecated
@@ -2233,7 +2233,7 @@ class RoomSession {
2233
2233
 
2234
2234
  let descriptions = [];
2235
2235
  let transceivers = config.pc.getTransceivers();
2236
- Object.keys(config.streamMap[this.id]).forEach(source => {
2236
+ Object.keys(config.streamMap[this.id]??{}).forEach(source => {
2237
2237
  const simulcastConfigForSource = this.#findSimulcastConfig(source, this.simulcastSettings);
2238
2238
  config.streamMap[this.id][source].forEach(trackId => {
2239
2239
  let t = transceivers.find(transceiver => transceiver.sender.track && transceiver.sender.track.id === trackId)
@@ -2532,9 +2532,6 @@ class RoomSession {
2532
2532
 
2533
2533
  config.isIceRestarting = true;
2534
2534
 
2535
- // // removing this so we can cache ice candidates again
2536
- // config.remoteSdp = null;
2537
-
2538
2535
  if (this.handleId === handleId) {
2539
2536
  this._log('Performing local ICE restart');
2540
2537
  let hasAudio = !!(config.stream && config.stream.getAudioTracks().length > 0);
@@ -2808,7 +2805,7 @@ class RoomSession {
2808
2805
  if (!config.stream) {
2809
2806
  return;
2810
2807
  }
2811
- let sourceTrackIds = (config.streamMap[this.id][source] || []);
2808
+ let sourceTrackIds = (config.streamMap[this.id]?.[source] || []);
2812
2809
  let remainingTracks = [];
2813
2810
  for(let i = 0; i < sourceTrackIds.length; i++) {
2814
2811
  let foundTrack = config.tracks.find(t => t.id === sourceTrackIds[i]);
@@ -2986,7 +2983,7 @@ class RoomSession {
2986
2983
  // we possibly created new transceivers, so we need to get them again
2987
2984
 
2988
2985
  transceivers = config.pc.getTransceivers();
2989
- existingTracks = [...(config.streamMap[this.id][source] || [])];
2986
+ existingTracks = [...(config.streamMap[this.id]?.[source] || [])];
2990
2987
  if(!audioTransceiver) {
2991
2988
  audioTransceiver = transceivers.find(transceiver => transceiver.sender.track && transceiver.sender.track.kind === 'audio' && existingTracks.includes(transceiver.sender.track.id))
2992
2989
  }
@@ -3045,7 +3042,7 @@ class RoomSession {
3045
3042
  }
3046
3043
 
3047
3044
  this.isMuted = [];
3048
- for(const source of Object.keys(config.streamMap[this.id])) {
3045
+ for(const source of Object.keys(config.streamMap[this.id]??{})) {
3049
3046
  const audioTrack = config.stream?.getAudioTracks()?.find(track => config.streamMap[this.id][source].includes(track.id));
3050
3047
  const videoTrack = config.stream?.getVideoTracks()?.find(track => config.streamMap[this.id][source].includes(track.id));
3051
3048
  this.isMuted.push({type: 'audio', value: !audioTrack || !audioTrack.enabled, source, mid: transceivers.find(transceiver => transceiver.sender?.track?.kind === 'audio' && transceiver.sender?.track?.id === audioTrack?.id)?.mid});
@@ -3129,7 +3126,7 @@ class RoomSession {
3129
3126
  let transceivers = config.pc?.getTransceivers();
3130
3127
  let transceiver = null;
3131
3128
  if(source) {
3132
- transceiver = transceivers?.find(t => t.sender && t.sender.track && t.receiver.track.kind === "audio" && (config.streamMap[this.id][source] || []).includes(t.sender.track.id));
3129
+ transceiver = transceivers?.find(t => t.sender && t.sender.track && t.receiver.track.kind === "audio" && (config.streamMap[this.id]?.[source] || []).includes(t.sender.track.id));
3133
3130
  }
3134
3131
  else {
3135
3132
  transceiver = transceivers?.find(t => t.sender && t.sender.track && t.receiver.track.kind === "audio" && (mid ? t.mid === mid : true));
@@ -3139,7 +3136,7 @@ class RoomSession {
3139
3136
  }
3140
3137
 
3141
3138
  this.isMuted = [];
3142
- for(const source of Object.keys(config.streamMap[this.id])) {
3139
+ for(const source of Object.keys(config.streamMap[this.id]??{})) {
3143
3140
  const audioTrack = config.stream?.getAudioTracks()?.find(track => config.streamMap[this.id][source].includes(track.id));
3144
3141
  const audioTransceiver = transceivers?.find(transceiver => transceiver.sender.track && transceiver.sender.track.kind === 'audio' && transceiver.sender.track.id === audioTrack?.id);
3145
3142
  const videoTrack = config.stream?.getVideoTracks()?.find(track => config.streamMap[this.id][source].includes(track.id));
@@ -3166,7 +3163,7 @@ class RoomSession {
3166
3163
  let transceivers = config.pc?.getTransceivers();
3167
3164
  let transceiver = null;
3168
3165
  if(source) {
3169
- transceiver = transceivers?.find(t => t.sender && t.sender.track && t.receiver.track.kind === "video" && (config.streamMap[this.id][source] || []).includes(t.sender.track.id));
3166
+ transceiver = transceivers?.find(t => t.sender && t.sender.track && t.receiver.track.kind === "video" && (config.streamMap[this.id]?.[source] || []).includes(t.sender.track.id));
3170
3167
  }
3171
3168
  else {
3172
3169
  transceiver = transceivers?.find(t => t.sender && t.sender.track && t.receiver.track.kind === "video" && (mid ? t.mid === mid : true));
@@ -3175,7 +3172,7 @@ class RoomSession {
3175
3172
  transceiver.sender.track.enabled = value !== null ? !!value : !transceiver.sender.track.enabled;
3176
3173
  }
3177
3174
  this.isMuted = [];
3178
- for(const source of Object.keys(config.streamMap[this.id])) {
3175
+ for(const source of Object.keys(config.streamMap[this.id]??{})) {
3179
3176
  const audioTrack = config.stream?.getAudioTracks()?.find(track => config.streamMap[this.id][source].includes(track.id));
3180
3177
  const audioTransceiver = transceivers?.find(transceiver => transceiver.sender.track && transceiver.sender.track.kind === 'audio' && transceiver.sender.track.id === audioTrack?.id);
3181
3178
  const videoTrack = config.stream?.getVideoTracks()?.find(track => config.streamMap[this.id][source].includes(track.id));
@@ -3298,7 +3295,7 @@ class RoomSession {
3298
3295
  let config = handle.webrtcStuff;
3299
3296
  let descriptions = [];
3300
3297
  let transceivers = config.pc.getTransceivers();
3301
- Object.keys(config.streamMap[this.id]).forEach(source => {
3298
+ Object.keys(config.streamMap[this.id]??{}).forEach(source => {
3302
3299
  const simulcastConfigForSource = this.#findSimulcastConfig(source, this.simulcastSettings);
3303
3300
  config.streamMap[this.id][source].forEach(trackId => {
3304
3301
  let t = transceivers.find(transceiver => transceiver.sender.track && transceiver.sender.track.id === trackId)