@rongcloud/plugin-rtc 5.2.4-beem.2 → 5.2.4-beem.3

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/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCRTC - v5.2.4-beem.2
3
- * CommitId - 51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c
4
- * Mon May 16 2022 17:37:30 GMT+0800 (China Standard Time)
2
+ * RCRTC - v5.2.4-beem.3
3
+ * CommitId - b51c6e49188dcadaf70257fc1d274d978d8db68e
4
+ * Fri May 20 2022 15:05:00 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
7
  import { EventEmitter, LogLevel, RTCMode, IRuntime, RTCPluginContext, IServerRTCRoomEntry, IJoinRTCRoomData, IReceivedMessage, KVString, RTCJoinType, IRTCJoinedInfo, IPluginGenerator } from '@rongcloud/engine';
package/dist/index.esm.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCRTC - v5.2.4-beem.2
3
- * CommitId - 51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c
4
- * Mon May 16 2022 17:37:30 GMT+0800 (China Standard Time)
2
+ * RCRTC - v5.2.4-beem.3
3
+ * CommitId - b51c6e49188dcadaf70257fc1d274d978d8db68e
4
+ * Fri May 20 2022 15:05:00 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
7
  import { Logger, EventEmitter, isNumber, ErrorCode, ConnectionStatus, assert, ConversationType, RTCApiType, validate, isArray, RTCMode, isHttpUrl, isBoolean, HttpMethod, isString, notEmptyString, RTCJoinType, RTCIdentityChangeType, VersionManage } from '@rongcloud/engine';
@@ -137,6 +137,7 @@ class AsyncTaskQueue {
137
137
  }
138
138
  this.locked = true;
139
139
  const { resolve, task, reject } = this.queue.shift();
140
+ logger.info(`async task queue waiting length -> ${this.queue.length}`);
140
141
  let result;
141
142
  try {
142
143
  result = yield task();
@@ -152,7 +153,8 @@ class AsyncTaskQueue {
152
153
  }
153
154
  push(task) {
154
155
  const promise = new Promise((resolve, reject) => {
155
- this.queue.push({ resolve, task, reject });
156
+ const length = this.queue.push({ resolve, task, reject });
157
+ logger.info(`async task queue length -> ${length}`);
156
158
  });
157
159
  this.checkToStart();
158
160
  return promise;
@@ -8064,14 +8066,13 @@ class RCRTCPeerConnection extends EventEmitter {
8064
8066
  createOffer(iceRestart) {
8065
8067
  return __awaiter(this, void 0, void 0, function* () {
8066
8068
  const offer = yield this._sdpStrategy.createOffer(iceRestart);
8067
- // logger.debug(`sdpDemantics -> ${offer.semantics}`)
8068
- logger.debug(`offer -> ${JSON.stringify(offer.sdp)}`);
8069
+ logger.info(`create offer -> ${JSON.stringify(offer.sdp)}`);
8069
8070
  return offer;
8070
8071
  });
8071
8072
  }
8072
8073
  setRemoteAnswer(answer) {
8073
8074
  return __awaiter(this, void 0, void 0, function* () {
8074
- logger.debug(`answer -> ${JSON.stringify(answer)}`);
8075
+ logger.info(`set remote answer -> ${JSON.stringify(answer)}`);
8075
8076
  return this._sdpStrategy.setRemoteAnswer(answer);
8076
8077
  });
8077
8078
  }
@@ -8446,7 +8447,7 @@ class PolarisReporter {
8446
8447
  * 加入房间
8447
8448
  */
8448
8449
  sendR1() {
8449
- const rtcVersion = "5.2.4-beem.2";
8450
+ const rtcVersion = "5.2.4-beem.3";
8450
8451
  const imVersion = this._context.getCoreVersion();
8451
8452
  const platform = 'web';
8452
8453
  const pcName = navigator.platform;
@@ -8610,7 +8611,7 @@ class RCAbstractRoom {
8610
8611
  this._initRemoteTracks();
8611
8612
  const crtUserId = this._context.getCurrentId();
8612
8613
  const selfRes = this._roomResources[crtUserId] = this._roomResources[crtUserId] || [];
8613
- logger.debug(`room data -> ${JSON.stringify(this._roomResources)}`);
8614
+ logger.info(`room data -> ${JSON.stringify(this._roomResources)}`);
8614
8615
  /*
8615
8616
  * 加入房间后,若房间中已存在己方发布的资源,表示之前未能完成正常退出流程
8616
8617
  * 需先清除房间内的己方资源,通知房间内其他人己方已取消当前资源的发布
@@ -8688,6 +8689,7 @@ class RCAbstractRoom {
8688
8689
  }
8689
8690
  _callAppListener(eventType, ...attrs) {
8690
8691
  var _a;
8692
+ eventType !== 'onPing' && logger.info(`${eventType} callback ->`, ...attrs);
8691
8693
  const handle = (_a = this._appListener) === null || _a === void 0 ? void 0 : _a[eventType];
8692
8694
  if (!handle) {
8693
8695
  return;
@@ -8725,7 +8727,7 @@ class RCAbstractRoom {
8725
8727
  logger.error(`unpublish prev uris failed -> code: ${code}`);
8726
8728
  }
8727
8729
  else {
8728
- logger.debug('unpublish uris prev login succeed');
8730
+ logger.info('unpublish uris prev login succeed');
8729
8731
  }
8730
8732
  });
8731
8733
  }
@@ -8776,7 +8778,7 @@ class RCAbstractRoom {
8776
8778
  if (this._destroyed) {
8777
8779
  return;
8778
8780
  }
8779
- logger.warn(`onKickOff -> byServer: ${byServer}`);
8781
+ // logger.warn(`onKickOff -> byServer: ${byServer}`)
8780
8782
  this._ntfClearRoomItem();
8781
8783
  this._leaveHandle(!byServer);
8782
8784
  // 扩展字段,备注用户为什么被踢出房间
@@ -8872,7 +8874,7 @@ class RCAbstractRoom {
8872
8874
  // 重新订阅二次发布资源
8873
8875
  if (subedTracks.length) {
8874
8876
  const trackIds = subedTracks.map(item => item.getTrackId());
8875
- logger.debug(`resub tracks -> ${JSON.stringify(trackIds)}`);
8877
+ logger.info(`resub tracks -> ${JSON.stringify(trackIds)}`);
8876
8878
  const { code } = yield push(() => this.__subscribe(subedTracks, true));
8877
8879
  if (code !== RCRTCCode.SUCCESS) {
8878
8880
  logger.error(`resub tracks failed -> code: ${code}, ids: ${JSON.stringify(trackIds)}`);
@@ -8941,7 +8943,7 @@ class RCAbstractRoom {
8941
8943
  const downgrade = [];
8942
8944
  users.forEach(item => {
8943
8945
  if (+item.state === 0) {
8944
- logger.debug(`user joined -> ${item.userId}`);
8946
+ logger.info(`user joined -> ${item.userId}`);
8945
8947
  // 对端 im 重连之后调加入房间信令获取最新数据,服务会给本端下发“对端加入房间”的消息,本端内存已包含对端人员,所以需过滤掉
8946
8948
  if (!this._roomResources[item.userId]) {
8947
8949
  item.switchRoleType ? upgrade.push(item.userId) : joined.push(item.userId);
@@ -8949,7 +8951,7 @@ class RCAbstractRoom {
8949
8951
  this._roomResources[item.userId] = this._roomResources[item.userId] || [];
8950
8952
  }
8951
8953
  else {
8952
- logger.debug(`user left -> ${item.userId}`);
8954
+ logger.info(`user left -> ${item.userId}`);
8953
8955
  item.switchRoleType ? downgrade.push(item.userId) : left.push(item.userId);
8954
8956
  }
8955
8957
  });
@@ -9244,7 +9246,7 @@ class RCAbstractRoom {
9244
9246
  _removePubFailedTracks(tracks) {
9245
9247
  tracks.forEach(item => {
9246
9248
  const track = item instanceof RCLocalTrack ? item : item.track;
9247
- logger.debug(`remove pub failed track from peerconnection -> trackId: ${track.getTrackId()}`);
9249
+ logger.info(`remove pub failed track from peerconnection -> trackId: ${track.getTrackId()}`);
9248
9250
  this._pc.removeLocalTrackById(track.getTrackId());
9249
9251
  });
9250
9252
  }
@@ -9277,7 +9279,7 @@ class RCAbstractRoom {
9277
9279
  logger.error(`publish failed, tracks limit exceeded -> roomId: ${this._roomId}`);
9278
9280
  return { code: RCRTCCode.PUBLISH_TRACK_LIMIT_EXCEEDED };
9279
9281
  }
9280
- logger.debug(`publish tracks -> roomId: ${this._roomId}, tracks: ${tracks.map(getTrackIdFromAttr)}`);
9282
+ logger.info(`publish tracks -> roomId: ${this._roomId}, tracks: ${tracks.map(getTrackIdFromAttr)}`);
9281
9283
  /*
9282
9284
  * 资源发布应先与 mediaserver 交换资源,建 PeerConnection 通道,后通知房间
9283
9285
  * 资源取消发布则应先通知取消发布,后与 mediaServer 协商取消资源发布
@@ -9358,7 +9360,7 @@ class RCAbstractRoom {
9358
9360
  const { track: localTrack } = item instanceof RCLocalTrack ? { track: item } : item;
9359
9361
  localTrack.__innerSetPublished(true);
9360
9362
  });
9361
- logger.debug(`publish success: ${publishTrackIds.join(',')}`);
9363
+ logger.info(`publish success -> ${publishTrackIds.join(',')}`);
9362
9364
  if (this._roomMode === RTCMode.LIVE) {
9363
9365
  return { code: RCRTCCode.SUCCESS, liveUrl: urls === null || urls === void 0 ? void 0 : urls.liveUrl };
9364
9366
  }
@@ -9504,7 +9506,7 @@ class RCAbstractRoom {
9504
9506
  logger.error('send unpublish notification failed:', singalCode);
9505
9507
  return { code: RCRTCCode.SIGNAL_ERROR };
9506
9508
  }
9507
- logger.debug(`unpublish success -> tracks: ${resourceIds.join(',')}`);
9509
+ logger.info(`unpublish success -> tracks: ${resourceIds.join(',')}`);
9508
9510
  const resCode = yield this._pc.setRemoteAnswer(answer.sdp);
9509
9511
  if (resCode !== RCRTCCode.SUCCESS) {
9510
9512
  return { code: resCode };
@@ -9729,7 +9731,7 @@ class RCAbstractRoom {
9729
9731
  logger.error(`change subscribe list failed: ${resultCode}`);
9730
9732
  return { code: resultCode };
9731
9733
  }
9732
- logger.debug(`subscribe success: ${subTrackIds.join(',')}`);
9734
+ logger.info(`subscribe success: ${subTrackIds.join(',')}`);
9733
9735
  const resCode = yield this._pc.setRemoteAnswer(answer.sdp);
9734
9736
  if (resCode !== RCRTCCode.SUCCESS) {
9735
9737
  return { code: resCode };
@@ -9791,10 +9793,10 @@ class RCAbstractRoom {
9791
9793
  }
9792
9794
  const { code, data } = yield this._context.joinRTCRoom(this._roomId, this._roomMode, livingType);
9793
9795
  if (code !== ErrorCode.SUCCESS) {
9794
- logger.error(`RTC __onReconnected getRTCRoomInfo failed: ${code}`);
9796
+ logger.warn(`RTC __onReconnected getRTCRoomInfo failed: ${code}`);
9795
9797
  return;
9796
9798
  }
9797
- logger.debug(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(data)}`);
9799
+ logger.info(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(data)}`);
9798
9800
  // 查找新加入人员
9799
9801
  const joinedUserIds = [];
9800
9802
  // 新发布资源
@@ -10703,7 +10705,7 @@ const getCommonHeader = () => ({
10703
10705
  'Content-Type': 'application/json;charset=UTF-8',
10704
10706
  'Cache-Control': 'no-cache',
10705
10707
  ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
10706
- ClientVersion: "5.2.4-beem.2",
10708
+ ClientVersion: "5.2.4-beem.3",
10707
10709
  'Client-Session-Id': getUUID(),
10708
10710
  'Request-Id': Date.now().toString()
10709
10711
  });
@@ -10778,7 +10780,7 @@ class RCMediaService {
10778
10780
  for (let i = 0; i < urls.length; i += 1) {
10779
10781
  const url = `${urls[i]}${path}`;
10780
10782
  const commonHeader = getCommonHeader();
10781
- logger.debug(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10783
+ logger.info(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10782
10784
  const { status, data } = yield this._runtime.httpReq({
10783
10785
  url,
10784
10786
  body: JSON.stringify(body),
@@ -10794,11 +10796,11 @@ class RCMediaService {
10794
10796
  if (resp.clusterId) {
10795
10797
  this._clusterId = resp.clusterId;
10796
10798
  }
10797
- logger.debug(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10799
+ logger.info(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10798
10800
  return { code: RCRTCCode.SUCCESS, data: resp };
10799
10801
  }
10800
10802
  else {
10801
- logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}, status: ${status}, url: ${url}`);
10803
+ logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}, status: ${status}`);
10802
10804
  // 失败的请求需记录,避免多配置时总是请求无效的地址
10803
10805
  this._failedMs.push(...this._msInNavi.splice(i, 1));
10804
10806
  }
@@ -10861,7 +10863,7 @@ class RCMediaService {
10861
10863
  // mcu 地址默认使用 https 协议
10862
10864
  const url = `${this._configUrl.replace(/^(https?:\/\/)?/, 'https://')}/server/mcu/config`;
10863
10865
  const commonHeader = getCommonHeader();
10864
- logger.debug(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10866
+ logger.info(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10865
10867
  const { status, data: jsonStr } = yield this._runtime.httpReq({
10866
10868
  url,
10867
10869
  headers: Object.assign(Object.assign({}, commonHeader), headers),
@@ -10869,10 +10871,11 @@ class RCMediaService {
10869
10871
  method: HttpMethod.POST
10870
10872
  });
10871
10873
  if (status === 200) {
10872
- logger.debug(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10874
+ logger.info(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10873
10875
  const data = JSON.parse(jsonStr);
10874
10876
  return { code: data.resultCode, res: data };
10875
10877
  }
10878
+ logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}`);
10876
10879
  return { code: RCRTCCode.REQUEST_FAILED };
10877
10880
  });
10878
10881
  }
@@ -12731,7 +12734,7 @@ const installer = {
12731
12734
  logger.error('Please use the https protocol or use `http://localhost` to open the page!');
12732
12735
  return false;
12733
12736
  }
12734
- VersionManage.add('plugin-rtc', "5.2.4-beem.2");
12737
+ VersionManage.add('plugin-rtc', "5.2.4-beem.3");
12735
12738
  if (!VersionManage.validEngine("4.6.0-beem.5")) {
12736
12739
  logger.error(`The current engine version '${VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"4.6.0-beem.5"}'.`);
12737
12740
  return false;
@@ -12741,7 +12744,7 @@ const installer = {
12741
12744
  setup(context, runtime, options = {}) {
12742
12745
  logger.setLogLevel(options.logLevel);
12743
12746
  logger.setLogStdout(options.logStdout);
12744
- logger.warn(`RCRTC Version: ${"5.2.4-beem.2"}, Commit: ${"51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c"}`);
12747
+ logger.warn(`RCRTC Version: ${"5.2.4-beem.3"}, Commit: ${"b51c6e49188dcadaf70257fc1d274d978d8db68e"}`);
12745
12748
  logger.warn(`browserInfo.browser -> ${browserInfo.browser}`);
12746
12749
  logger.warn(`browserInfo.supportsUnifiedPlan -> ${browserInfo.supportsUnifiedPlan}`);
12747
12750
  logger.warn(`browserInfo.version -> ${browserInfo.version}`);
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCRTC - v5.2.4-beem.2
3
- * CommitId - 51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c
4
- * Mon May 16 2022 17:37:30 GMT+0800 (China Standard Time)
2
+ * RCRTC - v5.2.4-beem.3
3
+ * CommitId - b51c6e49188dcadaf70257fc1d274d978d8db68e
4
+ * Fri May 20 2022 15:05:00 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
7
  'use strict';
@@ -140,6 +140,7 @@ class AsyncTaskQueue {
140
140
  }
141
141
  this.locked = true;
142
142
  const { resolve, task, reject } = this.queue.shift();
143
+ logger.info(`async task queue waiting length -> ${this.queue.length}`);
143
144
  let result;
144
145
  try {
145
146
  result = yield task();
@@ -155,7 +156,8 @@ class AsyncTaskQueue {
155
156
  }
156
157
  push(task) {
157
158
  const promise = new Promise((resolve, reject) => {
158
- this.queue.push({ resolve, task, reject });
159
+ const length = this.queue.push({ resolve, task, reject });
160
+ logger.info(`async task queue length -> ${length}`);
159
161
  });
160
162
  this.checkToStart();
161
163
  return promise;
@@ -8067,14 +8069,13 @@ class RCRTCPeerConnection extends engine.EventEmitter {
8067
8069
  createOffer(iceRestart) {
8068
8070
  return __awaiter(this, void 0, void 0, function* () {
8069
8071
  const offer = yield this._sdpStrategy.createOffer(iceRestart);
8070
- // logger.debug(`sdpDemantics -> ${offer.semantics}`)
8071
- logger.debug(`offer -> ${JSON.stringify(offer.sdp)}`);
8072
+ logger.info(`create offer -> ${JSON.stringify(offer.sdp)}`);
8072
8073
  return offer;
8073
8074
  });
8074
8075
  }
8075
8076
  setRemoteAnswer(answer) {
8076
8077
  return __awaiter(this, void 0, void 0, function* () {
8077
- logger.debug(`answer -> ${JSON.stringify(answer)}`);
8078
+ logger.info(`set remote answer -> ${JSON.stringify(answer)}`);
8078
8079
  return this._sdpStrategy.setRemoteAnswer(answer);
8079
8080
  });
8080
8081
  }
@@ -8449,7 +8450,7 @@ class PolarisReporter {
8449
8450
  * 加入房间
8450
8451
  */
8451
8452
  sendR1() {
8452
- const rtcVersion = "5.2.4-beem.2";
8453
+ const rtcVersion = "5.2.4-beem.3";
8453
8454
  const imVersion = this._context.getCoreVersion();
8454
8455
  const platform = 'web';
8455
8456
  const pcName = navigator.platform;
@@ -8613,7 +8614,7 @@ class RCAbstractRoom {
8613
8614
  this._initRemoteTracks();
8614
8615
  const crtUserId = this._context.getCurrentId();
8615
8616
  const selfRes = this._roomResources[crtUserId] = this._roomResources[crtUserId] || [];
8616
- logger.debug(`room data -> ${JSON.stringify(this._roomResources)}`);
8617
+ logger.info(`room data -> ${JSON.stringify(this._roomResources)}`);
8617
8618
  /*
8618
8619
  * 加入房间后,若房间中已存在己方发布的资源,表示之前未能完成正常退出流程
8619
8620
  * 需先清除房间内的己方资源,通知房间内其他人己方已取消当前资源的发布
@@ -8691,6 +8692,7 @@ class RCAbstractRoom {
8691
8692
  }
8692
8693
  _callAppListener(eventType, ...attrs) {
8693
8694
  var _a;
8695
+ eventType !== 'onPing' && logger.info(`${eventType} callback ->`, ...attrs);
8694
8696
  const handle = (_a = this._appListener) === null || _a === void 0 ? void 0 : _a[eventType];
8695
8697
  if (!handle) {
8696
8698
  return;
@@ -8728,7 +8730,7 @@ class RCAbstractRoom {
8728
8730
  logger.error(`unpublish prev uris failed -> code: ${code}`);
8729
8731
  }
8730
8732
  else {
8731
- logger.debug('unpublish uris prev login succeed');
8733
+ logger.info('unpublish uris prev login succeed');
8732
8734
  }
8733
8735
  });
8734
8736
  }
@@ -8779,7 +8781,7 @@ class RCAbstractRoom {
8779
8781
  if (this._destroyed) {
8780
8782
  return;
8781
8783
  }
8782
- logger.warn(`onKickOff -> byServer: ${byServer}`);
8784
+ // logger.warn(`onKickOff -> byServer: ${byServer}`)
8783
8785
  this._ntfClearRoomItem();
8784
8786
  this._leaveHandle(!byServer);
8785
8787
  // 扩展字段,备注用户为什么被踢出房间
@@ -8875,7 +8877,7 @@ class RCAbstractRoom {
8875
8877
  // 重新订阅二次发布资源
8876
8878
  if (subedTracks.length) {
8877
8879
  const trackIds = subedTracks.map(item => item.getTrackId());
8878
- logger.debug(`resub tracks -> ${JSON.stringify(trackIds)}`);
8880
+ logger.info(`resub tracks -> ${JSON.stringify(trackIds)}`);
8879
8881
  const { code } = yield push(() => this.__subscribe(subedTracks, true));
8880
8882
  if (code !== exports.RCRTCCode.SUCCESS) {
8881
8883
  logger.error(`resub tracks failed -> code: ${code}, ids: ${JSON.stringify(trackIds)}`);
@@ -8944,7 +8946,7 @@ class RCAbstractRoom {
8944
8946
  const downgrade = [];
8945
8947
  users.forEach(item => {
8946
8948
  if (+item.state === 0) {
8947
- logger.debug(`user joined -> ${item.userId}`);
8949
+ logger.info(`user joined -> ${item.userId}`);
8948
8950
  // 对端 im 重连之后调加入房间信令获取最新数据,服务会给本端下发“对端加入房间”的消息,本端内存已包含对端人员,所以需过滤掉
8949
8951
  if (!this._roomResources[item.userId]) {
8950
8952
  item.switchRoleType ? upgrade.push(item.userId) : joined.push(item.userId);
@@ -8952,7 +8954,7 @@ class RCAbstractRoom {
8952
8954
  this._roomResources[item.userId] = this._roomResources[item.userId] || [];
8953
8955
  }
8954
8956
  else {
8955
- logger.debug(`user left -> ${item.userId}`);
8957
+ logger.info(`user left -> ${item.userId}`);
8956
8958
  item.switchRoleType ? downgrade.push(item.userId) : left.push(item.userId);
8957
8959
  }
8958
8960
  });
@@ -9247,7 +9249,7 @@ class RCAbstractRoom {
9247
9249
  _removePubFailedTracks(tracks) {
9248
9250
  tracks.forEach(item => {
9249
9251
  const track = item instanceof RCLocalTrack ? item : item.track;
9250
- logger.debug(`remove pub failed track from peerconnection -> trackId: ${track.getTrackId()}`);
9252
+ logger.info(`remove pub failed track from peerconnection -> trackId: ${track.getTrackId()}`);
9251
9253
  this._pc.removeLocalTrackById(track.getTrackId());
9252
9254
  });
9253
9255
  }
@@ -9280,7 +9282,7 @@ class RCAbstractRoom {
9280
9282
  logger.error(`publish failed, tracks limit exceeded -> roomId: ${this._roomId}`);
9281
9283
  return { code: exports.RCRTCCode.PUBLISH_TRACK_LIMIT_EXCEEDED };
9282
9284
  }
9283
- logger.debug(`publish tracks -> roomId: ${this._roomId}, tracks: ${tracks.map(getTrackIdFromAttr)}`);
9285
+ logger.info(`publish tracks -> roomId: ${this._roomId}, tracks: ${tracks.map(getTrackIdFromAttr)}`);
9284
9286
  /*
9285
9287
  * 资源发布应先与 mediaserver 交换资源,建 PeerConnection 通道,后通知房间
9286
9288
  * 资源取消发布则应先通知取消发布,后与 mediaServer 协商取消资源发布
@@ -9361,7 +9363,7 @@ class RCAbstractRoom {
9361
9363
  const { track: localTrack } = item instanceof RCLocalTrack ? { track: item } : item;
9362
9364
  localTrack.__innerSetPublished(true);
9363
9365
  });
9364
- logger.debug(`publish success: ${publishTrackIds.join(',')}`);
9366
+ logger.info(`publish success -> ${publishTrackIds.join(',')}`);
9365
9367
  if (this._roomMode === engine.RTCMode.LIVE) {
9366
9368
  return { code: exports.RCRTCCode.SUCCESS, liveUrl: urls === null || urls === void 0 ? void 0 : urls.liveUrl };
9367
9369
  }
@@ -9507,7 +9509,7 @@ class RCAbstractRoom {
9507
9509
  logger.error('send unpublish notification failed:', singalCode);
9508
9510
  return { code: exports.RCRTCCode.SIGNAL_ERROR };
9509
9511
  }
9510
- logger.debug(`unpublish success -> tracks: ${resourceIds.join(',')}`);
9512
+ logger.info(`unpublish success -> tracks: ${resourceIds.join(',')}`);
9511
9513
  const resCode = yield this._pc.setRemoteAnswer(answer.sdp);
9512
9514
  if (resCode !== exports.RCRTCCode.SUCCESS) {
9513
9515
  return { code: resCode };
@@ -9732,7 +9734,7 @@ class RCAbstractRoom {
9732
9734
  logger.error(`change subscribe list failed: ${resultCode}`);
9733
9735
  return { code: resultCode };
9734
9736
  }
9735
- logger.debug(`subscribe success: ${subTrackIds.join(',')}`);
9737
+ logger.info(`subscribe success: ${subTrackIds.join(',')}`);
9736
9738
  const resCode = yield this._pc.setRemoteAnswer(answer.sdp);
9737
9739
  if (resCode !== exports.RCRTCCode.SUCCESS) {
9738
9740
  return { code: resCode };
@@ -9794,10 +9796,10 @@ class RCAbstractRoom {
9794
9796
  }
9795
9797
  const { code, data } = yield this._context.joinRTCRoom(this._roomId, this._roomMode, livingType);
9796
9798
  if (code !== engine.ErrorCode.SUCCESS) {
9797
- logger.error(`RTC __onReconnected getRTCRoomInfo failed: ${code}`);
9799
+ logger.warn(`RTC __onReconnected getRTCRoomInfo failed: ${code}`);
9798
9800
  return;
9799
9801
  }
9800
- logger.debug(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(data)}`);
9802
+ logger.info(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(data)}`);
9801
9803
  // 查找新加入人员
9802
9804
  const joinedUserIds = [];
9803
9805
  // 新发布资源
@@ -10706,7 +10708,7 @@ const getCommonHeader = () => ({
10706
10708
  'Content-Type': 'application/json;charset=UTF-8',
10707
10709
  'Cache-Control': 'no-cache',
10708
10710
  ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
10709
- ClientVersion: "5.2.4-beem.2",
10711
+ ClientVersion: "5.2.4-beem.3",
10710
10712
  'Client-Session-Id': getUUID(),
10711
10713
  'Request-Id': Date.now().toString()
10712
10714
  });
@@ -10781,7 +10783,7 @@ class RCMediaService {
10781
10783
  for (let i = 0; i < urls.length; i += 1) {
10782
10784
  const url = `${urls[i]}${path}`;
10783
10785
  const commonHeader = getCommonHeader();
10784
- logger.debug(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10786
+ logger.info(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10785
10787
  const { status, data } = yield this._runtime.httpReq({
10786
10788
  url,
10787
10789
  body: JSON.stringify(body),
@@ -10797,11 +10799,11 @@ class RCMediaService {
10797
10799
  if (resp.clusterId) {
10798
10800
  this._clusterId = resp.clusterId;
10799
10801
  }
10800
- logger.debug(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10802
+ logger.info(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10801
10803
  return { code: exports.RCRTCCode.SUCCESS, data: resp };
10802
10804
  }
10803
10805
  else {
10804
- logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}, status: ${status}, url: ${url}`);
10806
+ logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}, status: ${status}`);
10805
10807
  // 失败的请求需记录,避免多配置时总是请求无效的地址
10806
10808
  this._failedMs.push(...this._msInNavi.splice(i, 1));
10807
10809
  }
@@ -10864,7 +10866,7 @@ class RCMediaService {
10864
10866
  // mcu 地址默认使用 https 协议
10865
10867
  const url = `${this._configUrl.replace(/^(https?:\/\/)?/, 'https://')}/server/mcu/config`;
10866
10868
  const commonHeader = getCommonHeader();
10867
- logger.debug(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10869
+ logger.info(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10868
10870
  const { status, data: jsonStr } = yield this._runtime.httpReq({
10869
10871
  url,
10870
10872
  headers: Object.assign(Object.assign({}, commonHeader), headers),
@@ -10872,10 +10874,11 @@ class RCMediaService {
10872
10874
  method: engine.HttpMethod.POST
10873
10875
  });
10874
10876
  if (status === 200) {
10875
- logger.debug(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10877
+ logger.info(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10876
10878
  const data = JSON.parse(jsonStr);
10877
10879
  return { code: data.resultCode, res: data };
10878
10880
  }
10881
+ logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}`);
10879
10882
  return { code: exports.RCRTCCode.REQUEST_FAILED };
10880
10883
  });
10881
10884
  }
@@ -12734,7 +12737,7 @@ const installer = {
12734
12737
  logger.error('Please use the https protocol or use `http://localhost` to open the page!');
12735
12738
  return false;
12736
12739
  }
12737
- engine.VersionManage.add('plugin-rtc', "5.2.4-beem.2");
12740
+ engine.VersionManage.add('plugin-rtc', "5.2.4-beem.3");
12738
12741
  if (!engine.VersionManage.validEngine("4.6.0-beem.5")) {
12739
12742
  logger.error(`The current engine version '${engine.VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"4.6.0-beem.5"}'.`);
12740
12743
  return false;
@@ -12744,7 +12747,7 @@ const installer = {
12744
12747
  setup(context, runtime, options = {}) {
12745
12748
  logger.setLogLevel(options.logLevel);
12746
12749
  logger.setLogStdout(options.logStdout);
12747
- logger.warn(`RCRTC Version: ${"5.2.4-beem.2"}, Commit: ${"51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c"}`);
12750
+ logger.warn(`RCRTC Version: ${"5.2.4-beem.3"}, Commit: ${"b51c6e49188dcadaf70257fc1d274d978d8db68e"}`);
12748
12751
  logger.warn(`browserInfo.browser -> ${browserInfo.browser}`);
12749
12752
  logger.warn(`browserInfo.supportsUnifiedPlan -> ${browserInfo.supportsUnifiedPlan}`);
12750
12753
  logger.warn(`browserInfo.version -> ${browserInfo.version}`);
package/dist/index.umd.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCRTC - v5.2.4-beem.2
3
- * CommitId - 51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c
4
- * Mon May 16 2022 17:37:30 GMT+0800 (China Standard Time)
2
+ * RCRTC - v5.2.4-beem.3
3
+ * CommitId - b51c6e49188dcadaf70257fc1d274d978d8db68e
4
+ * Fri May 20 2022 15:05:00 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
7
  (function (global, factory) {
@@ -140,6 +140,7 @@
140
140
  }
141
141
  this.locked = true;
142
142
  const { resolve, task, reject } = this.queue.shift();
143
+ logger.info(`async task queue waiting length -> ${this.queue.length}`);
143
144
  let result;
144
145
  try {
145
146
  result = yield task();
@@ -155,7 +156,8 @@
155
156
  }
156
157
  push(task) {
157
158
  const promise = new Promise((resolve, reject) => {
158
- this.queue.push({ resolve, task, reject });
159
+ const length = this.queue.push({ resolve, task, reject });
160
+ logger.info(`async task queue length -> ${length}`);
159
161
  });
160
162
  this.checkToStart();
161
163
  return promise;
@@ -8067,14 +8069,13 @@
8067
8069
  createOffer(iceRestart) {
8068
8070
  return __awaiter(this, void 0, void 0, function* () {
8069
8071
  const offer = yield this._sdpStrategy.createOffer(iceRestart);
8070
- // logger.debug(`sdpDemantics -> ${offer.semantics}`)
8071
- logger.debug(`offer -> ${JSON.stringify(offer.sdp)}`);
8072
+ logger.info(`create offer -> ${JSON.stringify(offer.sdp)}`);
8072
8073
  return offer;
8073
8074
  });
8074
8075
  }
8075
8076
  setRemoteAnswer(answer) {
8076
8077
  return __awaiter(this, void 0, void 0, function* () {
8077
- logger.debug(`answer -> ${JSON.stringify(answer)}`);
8078
+ logger.info(`set remote answer -> ${JSON.stringify(answer)}`);
8078
8079
  return this._sdpStrategy.setRemoteAnswer(answer);
8079
8080
  });
8080
8081
  }
@@ -8449,7 +8450,7 @@
8449
8450
  * 加入房间
8450
8451
  */
8451
8452
  sendR1() {
8452
- const rtcVersion = "5.2.4-beem.2";
8453
+ const rtcVersion = "5.2.4-beem.3";
8453
8454
  const imVersion = this._context.getCoreVersion();
8454
8455
  const platform = 'web';
8455
8456
  const pcName = navigator.platform;
@@ -8613,7 +8614,7 @@
8613
8614
  this._initRemoteTracks();
8614
8615
  const crtUserId = this._context.getCurrentId();
8615
8616
  const selfRes = this._roomResources[crtUserId] = this._roomResources[crtUserId] || [];
8616
- logger.debug(`room data -> ${JSON.stringify(this._roomResources)}`);
8617
+ logger.info(`room data -> ${JSON.stringify(this._roomResources)}`);
8617
8618
  /*
8618
8619
  * 加入房间后,若房间中已存在己方发布的资源,表示之前未能完成正常退出流程
8619
8620
  * 需先清除房间内的己方资源,通知房间内其他人己方已取消当前资源的发布
@@ -8691,6 +8692,7 @@
8691
8692
  }
8692
8693
  _callAppListener(eventType, ...attrs) {
8693
8694
  var _a;
8695
+ eventType !== 'onPing' && logger.info(`${eventType} callback ->`, ...attrs);
8694
8696
  const handle = (_a = this._appListener) === null || _a === void 0 ? void 0 : _a[eventType];
8695
8697
  if (!handle) {
8696
8698
  return;
@@ -8728,7 +8730,7 @@
8728
8730
  logger.error(`unpublish prev uris failed -> code: ${code}`);
8729
8731
  }
8730
8732
  else {
8731
- logger.debug('unpublish uris prev login succeed');
8733
+ logger.info('unpublish uris prev login succeed');
8732
8734
  }
8733
8735
  });
8734
8736
  }
@@ -8779,7 +8781,7 @@
8779
8781
  if (this._destroyed) {
8780
8782
  return;
8781
8783
  }
8782
- logger.warn(`onKickOff -> byServer: ${byServer}`);
8784
+ // logger.warn(`onKickOff -> byServer: ${byServer}`)
8783
8785
  this._ntfClearRoomItem();
8784
8786
  this._leaveHandle(!byServer);
8785
8787
  // 扩展字段,备注用户为什么被踢出房间
@@ -8875,7 +8877,7 @@
8875
8877
  // 重新订阅二次发布资源
8876
8878
  if (subedTracks.length) {
8877
8879
  const trackIds = subedTracks.map(item => item.getTrackId());
8878
- logger.debug(`resub tracks -> ${JSON.stringify(trackIds)}`);
8880
+ logger.info(`resub tracks -> ${JSON.stringify(trackIds)}`);
8879
8881
  const { code } = yield push(() => this.__subscribe(subedTracks, true));
8880
8882
  if (code !== exports.RCRTCCode.SUCCESS) {
8881
8883
  logger.error(`resub tracks failed -> code: ${code}, ids: ${JSON.stringify(trackIds)}`);
@@ -8944,7 +8946,7 @@
8944
8946
  const downgrade = [];
8945
8947
  users.forEach(item => {
8946
8948
  if (+item.state === 0) {
8947
- logger.debug(`user joined -> ${item.userId}`);
8949
+ logger.info(`user joined -> ${item.userId}`);
8948
8950
  // 对端 im 重连之后调加入房间信令获取最新数据,服务会给本端下发“对端加入房间”的消息,本端内存已包含对端人员,所以需过滤掉
8949
8951
  if (!this._roomResources[item.userId]) {
8950
8952
  item.switchRoleType ? upgrade.push(item.userId) : joined.push(item.userId);
@@ -8952,7 +8954,7 @@
8952
8954
  this._roomResources[item.userId] = this._roomResources[item.userId] || [];
8953
8955
  }
8954
8956
  else {
8955
- logger.debug(`user left -> ${item.userId}`);
8957
+ logger.info(`user left -> ${item.userId}`);
8956
8958
  item.switchRoleType ? downgrade.push(item.userId) : left.push(item.userId);
8957
8959
  }
8958
8960
  });
@@ -9247,7 +9249,7 @@
9247
9249
  _removePubFailedTracks(tracks) {
9248
9250
  tracks.forEach(item => {
9249
9251
  const track = item instanceof RCLocalTrack ? item : item.track;
9250
- logger.debug(`remove pub failed track from peerconnection -> trackId: ${track.getTrackId()}`);
9252
+ logger.info(`remove pub failed track from peerconnection -> trackId: ${track.getTrackId()}`);
9251
9253
  this._pc.removeLocalTrackById(track.getTrackId());
9252
9254
  });
9253
9255
  }
@@ -9280,7 +9282,7 @@
9280
9282
  logger.error(`publish failed, tracks limit exceeded -> roomId: ${this._roomId}`);
9281
9283
  return { code: exports.RCRTCCode.PUBLISH_TRACK_LIMIT_EXCEEDED };
9282
9284
  }
9283
- logger.debug(`publish tracks -> roomId: ${this._roomId}, tracks: ${tracks.map(getTrackIdFromAttr)}`);
9285
+ logger.info(`publish tracks -> roomId: ${this._roomId}, tracks: ${tracks.map(getTrackIdFromAttr)}`);
9284
9286
  /*
9285
9287
  * 资源发布应先与 mediaserver 交换资源,建 PeerConnection 通道,后通知房间
9286
9288
  * 资源取消发布则应先通知取消发布,后与 mediaServer 协商取消资源发布
@@ -9361,7 +9363,7 @@
9361
9363
  const { track: localTrack } = item instanceof RCLocalTrack ? { track: item } : item;
9362
9364
  localTrack.__innerSetPublished(true);
9363
9365
  });
9364
- logger.debug(`publish success: ${publishTrackIds.join(',')}`);
9366
+ logger.info(`publish success -> ${publishTrackIds.join(',')}`);
9365
9367
  if (this._roomMode === engine.RTCMode.LIVE) {
9366
9368
  return { code: exports.RCRTCCode.SUCCESS, liveUrl: urls === null || urls === void 0 ? void 0 : urls.liveUrl };
9367
9369
  }
@@ -9507,7 +9509,7 @@
9507
9509
  logger.error('send unpublish notification failed:', singalCode);
9508
9510
  return { code: exports.RCRTCCode.SIGNAL_ERROR };
9509
9511
  }
9510
- logger.debug(`unpublish success -> tracks: ${resourceIds.join(',')}`);
9512
+ logger.info(`unpublish success -> tracks: ${resourceIds.join(',')}`);
9511
9513
  const resCode = yield this._pc.setRemoteAnswer(answer.sdp);
9512
9514
  if (resCode !== exports.RCRTCCode.SUCCESS) {
9513
9515
  return { code: resCode };
@@ -9732,7 +9734,7 @@
9732
9734
  logger.error(`change subscribe list failed: ${resultCode}`);
9733
9735
  return { code: resultCode };
9734
9736
  }
9735
- logger.debug(`subscribe success: ${subTrackIds.join(',')}`);
9737
+ logger.info(`subscribe success: ${subTrackIds.join(',')}`);
9736
9738
  const resCode = yield this._pc.setRemoteAnswer(answer.sdp);
9737
9739
  if (resCode !== exports.RCRTCCode.SUCCESS) {
9738
9740
  return { code: resCode };
@@ -9794,10 +9796,10 @@
9794
9796
  }
9795
9797
  const { code, data } = yield this._context.joinRTCRoom(this._roomId, this._roomMode, livingType);
9796
9798
  if (code !== engine.ErrorCode.SUCCESS) {
9797
- logger.error(`RTC __onReconnected getRTCRoomInfo failed: ${code}`);
9799
+ logger.warn(`RTC __onReconnected getRTCRoomInfo failed: ${code}`);
9798
9800
  return;
9799
9801
  }
9800
- logger.debug(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(data)}`);
9802
+ logger.info(`RTC __onReconnected getRTCRoomInfo success: ${JSON.stringify(data)}`);
9801
9803
  // 查找新加入人员
9802
9804
  const joinedUserIds = [];
9803
9805
  // 新发布资源
@@ -10706,7 +10708,7 @@
10706
10708
  'Content-Type': 'application/json;charset=UTF-8',
10707
10709
  'Cache-Control': 'no-cache',
10708
10710
  ClientType: `web|${browserInfo.browser}|${browserInfo.version}`,
10709
- ClientVersion: "5.2.4-beem.2",
10711
+ ClientVersion: "5.2.4-beem.3",
10710
10712
  'Client-Session-Id': getUUID(),
10711
10713
  'Request-Id': Date.now().toString()
10712
10714
  });
@@ -10781,7 +10783,7 @@
10781
10783
  for (let i = 0; i < urls.length; i += 1) {
10782
10784
  const url = `${urls[i]}${path}`;
10783
10785
  const commonHeader = getCommonHeader();
10784
- logger.debug(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10786
+ logger.info(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10785
10787
  const { status, data } = yield this._runtime.httpReq({
10786
10788
  url,
10787
10789
  body: JSON.stringify(body),
@@ -10797,11 +10799,11 @@
10797
10799
  if (resp.clusterId) {
10798
10800
  this._clusterId = resp.clusterId;
10799
10801
  }
10800
- logger.debug(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10802
+ logger.info(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10801
10803
  return { code: exports.RCRTCCode.SUCCESS, data: resp };
10802
10804
  }
10803
10805
  else {
10804
- logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}, status: ${status}, url: ${url}`);
10806
+ logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}, status: ${status}`);
10805
10807
  // 失败的请求需记录,避免多配置时总是请求无效的地址
10806
10808
  this._failedMs.push(...this._msInNavi.splice(i, 1));
10807
10809
  }
@@ -10864,7 +10866,7 @@
10864
10866
  // mcu 地址默认使用 https 协议
10865
10867
  const url = `${this._configUrl.replace(/^(https?:\/\/)?/, 'https://')}/server/mcu/config`;
10866
10868
  const commonHeader = getCommonHeader();
10867
- logger.debug(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10869
+ logger.info(`request -> Request-Id: ${commonHeader['Request-Id']}, url: ${url}`);
10868
10870
  const { status, data: jsonStr } = yield this._runtime.httpReq({
10869
10871
  url,
10870
10872
  headers: Object.assign(Object.assign({}, commonHeader), headers),
@@ -10872,10 +10874,11 @@
10872
10874
  method: engine.HttpMethod.POST
10873
10875
  });
10874
10876
  if (status === 200) {
10875
- logger.debug(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10877
+ logger.info(`request success -> Request-Id: ${commonHeader['Request-Id']}`);
10876
10878
  const data = JSON.parse(jsonStr);
10877
10879
  return { code: data.resultCode, res: data };
10878
10880
  }
10881
+ logger.warn(`request failed -> Request-Id: ${commonHeader['Request-Id']}`);
10879
10882
  return { code: exports.RCRTCCode.REQUEST_FAILED };
10880
10883
  });
10881
10884
  }
@@ -12734,7 +12737,7 @@
12734
12737
  logger.error('Please use the https protocol or use `http://localhost` to open the page!');
12735
12738
  return false;
12736
12739
  }
12737
- engine.VersionManage.add('plugin-rtc', "5.2.4-beem.2");
12740
+ engine.VersionManage.add('plugin-rtc', "5.2.4-beem.3");
12738
12741
  if (!engine.VersionManage.validEngine("4.6.0-beem.5")) {
12739
12742
  logger.error(`The current engine version '${engine.VersionManage.getInfo().engine}' error, plugin-rtc required engine version at least '${"4.6.0-beem.5"}'.`);
12740
12743
  return false;
@@ -12744,7 +12747,7 @@
12744
12747
  setup(context, runtime, options = {}) {
12745
12748
  logger.setLogLevel(options.logLevel);
12746
12749
  logger.setLogStdout(options.logStdout);
12747
- logger.warn(`RCRTC Version: ${"5.2.4-beem.2"}, Commit: ${"51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c"}`);
12750
+ logger.warn(`RCRTC Version: ${"5.2.4-beem.3"}, Commit: ${"b51c6e49188dcadaf70257fc1d274d978d8db68e"}`);
12748
12751
  logger.warn(`browserInfo.browser -> ${browserInfo.browser}`);
12749
12752
  logger.warn(`browserInfo.supportsUnifiedPlan -> ${browserInfo.supportsUnifiedPlan}`);
12750
12753
  logger.warn(`browserInfo.version -> ${browserInfo.version}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rongcloud/plugin-rtc",
3
- "version": "5.2.4-beem.2",
3
+ "version": "5.2.4-beem.3",
4
4
  "description": "@rongcloud/plugin-rtc",
5
5
  "main": "./dist/index.js",
6
6
  "__attrs__": {
@@ -33,5 +33,5 @@
33
33
  "peerDependencies": {
34
34
  "@rongcloud/engine": "4.6.0-beem.5"
35
35
  },
36
- "__commit__": "51c7e1de9a288f3456394ed2bc6ee9e09c4afa8c"
36
+ "__commit__": "b51c6e49188dcadaf70257fc1d274d978d8db68e"
37
37
  }