@100mslive/react-native-hms 1.1.0 → 1.2.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.
Files changed (101) hide show
  1. package/README.md +145 -340
  2. package/android/build.gradle +2 -2
  3. package/android/src/main/java/com/reactnativehmssdk/HMSDecoder.kt +205 -75
  4. package/android/src/main/java/com/reactnativehmssdk/HMSHelper.kt +127 -127
  5. package/android/src/main/java/com/reactnativehmssdk/HMSManager.kt +153 -115
  6. package/android/src/main/java/com/reactnativehmssdk/HMSRNSDK.kt +147 -17
  7. package/android/src/main/java/com/reactnativehmssdk/HMSSDKViewManager.kt +7 -7
  8. package/ios/HMSDecoder.swift +205 -129
  9. package/ios/HMSHelper.swift +3 -3
  10. package/ios/HMSManager.m +3 -0
  11. package/ios/HMSManager.swift +22 -1
  12. package/ios/HMSRNSDK.swift +228 -79
  13. package/ios/HMSView.m +2 -0
  14. package/ios/HMSView.swift +35 -3
  15. package/ios/Hmssdk.xcodeproj/project.xcworkspace/xcuserdata/yogesh.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  16. package/lib/commonjs/classes/HMSBrowserRecordingState.js.map +1 -1
  17. package/lib/commonjs/classes/HMSChangeTrackStateRequest.js.map +1 -1
  18. package/lib/commonjs/classes/HMSEncoder.js +133 -84
  19. package/lib/commonjs/classes/HMSEncoder.js.map +1 -1
  20. package/lib/commonjs/classes/HMSHLSStreamingState.js.map +1 -1
  21. package/lib/commonjs/classes/HMSLocalVideoTrack.js +0 -2
  22. package/lib/commonjs/classes/HMSLocalVideoTrack.js.map +1 -1
  23. package/lib/commonjs/classes/HMSMessageRecipient.js +1 -1
  24. package/lib/commonjs/classes/HMSMessageRecipient.js.map +1 -1
  25. package/lib/commonjs/classes/HMSNativeEventEmitter.js +106 -0
  26. package/lib/commonjs/classes/HMSNativeEventEmitter.js.map +1 -0
  27. package/lib/commonjs/classes/HMSPeer.js +4 -0
  28. package/lib/commonjs/classes/HMSPeer.js.map +1 -1
  29. package/lib/commonjs/classes/HMSPublishSettings.js +0 -6
  30. package/lib/commonjs/classes/HMSPublishSettings.js.map +1 -1
  31. package/lib/commonjs/classes/HMSRole.js +0 -6
  32. package/lib/commonjs/classes/HMSRole.js.map +1 -1
  33. package/lib/commonjs/classes/HMSRoleChangeRequest.js +3 -1
  34. package/lib/commonjs/classes/HMSRoleChangeRequest.js.map +1 -1
  35. package/lib/commonjs/classes/HMSRtmpStreamingState.js.map +1 -1
  36. package/lib/commonjs/classes/HMSSDK.js +465 -137
  37. package/lib/commonjs/classes/HMSSDK.js.map +1 -1
  38. package/lib/commonjs/classes/HMSServerRecordingState.js.map +1 -1
  39. package/lib/commonjs/classes/HMSSubscribeSettings.js +0 -2
  40. package/lib/commonjs/classes/HMSSubscribeSettings.js.map +1 -1
  41. package/lib/commonjs/index.js.map +1 -1
  42. package/lib/module/classes/HMSBrowserRecordingState.js.map +1 -1
  43. package/lib/module/classes/HMSChangeTrackStateRequest.js.map +1 -1
  44. package/lib/module/classes/HMSEncoder.js +133 -84
  45. package/lib/module/classes/HMSEncoder.js.map +1 -1
  46. package/lib/module/classes/HMSHLSStreamingState.js.map +1 -1
  47. package/lib/module/classes/HMSLocalVideoTrack.js +0 -2
  48. package/lib/module/classes/HMSLocalVideoTrack.js.map +1 -1
  49. package/lib/module/classes/HMSMessageRecipient.js +1 -1
  50. package/lib/module/classes/HMSMessageRecipient.js.map +1 -1
  51. package/lib/module/classes/HMSNativeEventEmitter.js +99 -0
  52. package/lib/module/classes/HMSNativeEventEmitter.js.map +1 -0
  53. package/lib/module/classes/HMSPeer.js +4 -0
  54. package/lib/module/classes/HMSPeer.js.map +1 -1
  55. package/lib/module/classes/HMSPublishSettings.js +0 -6
  56. package/lib/module/classes/HMSPublishSettings.js.map +1 -1
  57. package/lib/module/classes/HMSRole.js +0 -6
  58. package/lib/module/classes/HMSRole.js.map +1 -1
  59. package/lib/module/classes/HMSRoleChangeRequest.js +3 -1
  60. package/lib/module/classes/HMSRoleChangeRequest.js.map +1 -1
  61. package/lib/module/classes/HMSRtmpStreamingState.js.map +1 -1
  62. package/lib/module/classes/HMSSDK.js +466 -138
  63. package/lib/module/classes/HMSSDK.js.map +1 -1
  64. package/lib/module/classes/HMSServerRecordingState.js.map +1 -1
  65. package/lib/module/classes/HMSSubscribeSettings.js +0 -2
  66. package/lib/module/classes/HMSSubscribeSettings.js.map +1 -1
  67. package/lib/module/index.js.map +1 -1
  68. package/lib/typescript/classes/HMSBrowserRecordingState.d.ts +4 -4
  69. package/lib/typescript/classes/HMSChangeTrackStateRequest.d.ts +2 -2
  70. package/lib/typescript/classes/HMSEncoder.d.ts +3 -0
  71. package/lib/typescript/classes/HMSHLSStreamingState.d.ts +2 -2
  72. package/lib/typescript/classes/HMSLocalVideoTrack.d.ts +0 -2
  73. package/lib/typescript/classes/HMSMessageRecipient.d.ts +2 -2
  74. package/lib/typescript/classes/HMSNativeEventEmitter.d.ts +13 -0
  75. package/lib/typescript/classes/HMSPublishSettings.d.ts +8 -15
  76. package/lib/typescript/classes/HMSRole.d.ts +0 -6
  77. package/lib/typescript/classes/HMSRoleChangeRequest.d.ts +2 -2
  78. package/lib/typescript/classes/HMSRtmpStreamingState.d.ts +4 -4
  79. package/lib/typescript/classes/HMSSDK.d.ts +2 -12
  80. package/lib/typescript/classes/HMSServerRecordingState.d.ts +2 -2
  81. package/lib/typescript/classes/HMSSubscribeSettings.d.ts +0 -2
  82. package/lib/typescript/index.d.ts +1 -0
  83. package/package.json +6 -4
  84. package/react-native-hms.podspec +1 -1
  85. package/sdk-versions.json +5 -0
  86. package/src/classes/HMSBrowserRecordingState.ts +4 -4
  87. package/src/classes/HMSChangeTrackStateRequest.ts +2 -2
  88. package/src/classes/HMSEncoder.ts +186 -99
  89. package/src/classes/HMSHLSStreamingState.ts +2 -2
  90. package/src/classes/HMSLocalVideoTrack.ts +0 -2
  91. package/src/classes/HMSMessageRecipient.ts +3 -3
  92. package/src/classes/HMSNativeEventEmitter.ts +86 -0
  93. package/src/classes/HMSPeer.ts +4 -0
  94. package/src/classes/HMSPublishSettings.ts +8 -18
  95. package/src/classes/HMSRole.ts +0 -9
  96. package/src/classes/HMSRoleChangeRequest.ts +5 -3
  97. package/src/classes/HMSRtmpStreamingState.ts +4 -4
  98. package/src/classes/HMSSDK.tsx +629 -269
  99. package/src/classes/HMSServerRecordingState.ts +2 -2
  100. package/src/classes/HMSSubscribeSettings.ts +1 -7
  101. package/src/index.ts +1 -0
package/ios/HMSView.m CHANGED
@@ -5,5 +5,7 @@
5
5
 
6
6
  RCT_EXPORT_VIEW_PROPERTY(data, NSDictionary);
7
7
  RCT_EXPORT_VIEW_PROPERTY(scaleType, NSString)
8
+ RCT_EXPORT_VIEW_PROPERTY(onDataReturned, RCTDirectEventBlock)
9
+ RCT_EXTERN_METHOD(capture:(nonnull NSNumber *)node requestId:(nonnull NSNumber *)requestId)
8
10
 
9
11
  @end
package/ios/HMSView.swift CHANGED
@@ -14,13 +14,21 @@ class HMSView: RCTViewManager {
14
14
  }
15
15
 
16
16
  func getHmsFromBridge() -> [String: HMSRNSDK] {
17
- let collection: [String: HMSRNSDK] = (bridge.module(for: HMSManager.classForCoder()) as? HMSManager)?.hmsCollection ?? [:]
17
+ let collection = (bridge.module(for: HMSManager.classForCoder()) as? HMSManager)?.hmsCollection ?? [String: HMSRNSDK]()
18
18
  return collection
19
19
  }
20
20
 
21
21
  override class func requiresMainQueueSetup() -> Bool {
22
22
  true
23
23
  }
24
+
25
+ @objc func capture(_ node: NSNumber, requestId: NSNumber) {
26
+ DispatchQueue.main.async {
27
+ if let component = self.bridge.uiManager.view(forReactTag: node) as? HmssdkDisplayView {
28
+ component.captureHmsView(requestId)
29
+ }
30
+ }
31
+ }
24
32
  }
25
33
 
26
34
  class HmssdkDisplayView: UIView {
@@ -29,12 +37,14 @@ class HmssdkDisplayView: UIView {
29
37
  return HMSVideoView()
30
38
  }()
31
39
 
32
- var hmsCollection: [String: HMSRNSDK] = [:]
40
+ var hmsCollection = [String: HMSRNSDK]()
33
41
 
34
42
  func setHms(_ hmsInstance: [String: HMSRNSDK]) {
35
43
  hmsCollection = hmsInstance
36
44
  }
37
45
 
46
+ @objc var onDataReturned: RCTDirectEventBlock? = nil
47
+
38
48
  @objc var scaleType: String = "ASPECT_FILL" {
39
49
  didSet {
40
50
  switch scaleType {
@@ -59,13 +69,14 @@ class HmssdkDisplayView: UIView {
59
69
  let sdkID = data.value(forKey: "id") as? String ?? "12345"
60
70
 
61
71
  guard let hmsSDK = hmsCollection[sdkID]?.hms,
72
+ let room = hmsSDK.room,
62
73
  let trackID = data.value(forKey: "trackId") as? String
63
74
  else {
64
75
  print(#function, "Required data to setup video view not found")
65
76
  return
66
77
  }
67
78
 
68
- var videoTrack = HMSUtilities.getVideoTrack(for: trackID, in: hmsSDK.room!)
79
+ var videoTrack = HMSUtilities.getVideoTrack(for: trackID, in: room)
69
80
 
70
81
  if videoTrack == nil {
71
82
  for track in hmsCollection[sdkID]?.recentPreviewTracks ?? [] {
@@ -88,6 +99,27 @@ class HmssdkDisplayView: UIView {
88
99
  }
89
100
  }
90
101
 
102
+ @objc func captureHmsView( _ requestId: NSNumber) {
103
+ guard let onDataReturnedUnwrapped = onDataReturned else {
104
+ print(#function, "Can't send any data to JS side, `onDataReturned` is nil!")
105
+ return
106
+ }
107
+
108
+ guard let image = videoView.captureSnapshot() else {
109
+ print(#function, "Could not capture snapshot of HMSVideoView")
110
+ onDataReturnedUnwrapped([ "requestId": requestId, "error": ["6001", "Could not capture snapshot of HMSVideoView"] ])
111
+ return
112
+ }
113
+
114
+ guard let base64 = image.pngData()?.base64EncodedString() else {
115
+ print(#function, "Could not create base64 encoded string of captured snapshot")
116
+ onDataReturnedUnwrapped([ "requestId": requestId, "error": ["6001", "Could not create base64 encoded string of captured snapshot"] ])
117
+ return
118
+ }
119
+
120
+ onDataReturnedUnwrapped([ "requestId": requestId, "result": base64 ])
121
+ }
122
+
91
123
  override init(frame: CGRect) {
92
124
  super.init(frame: frame)
93
125
  self.addSubview(videoView)
@@ -1 +1 @@
1
- {"version":3,"names":["HMSBrowserRecordingState","constructor","params","running","error","startedAt","stoppedAt"],"sources":["HMSBrowserRecordingState.ts"],"sourcesContent":["import type { HMSException } from './HMSException';\n\nexport class HMSBrowserRecordingState {\n running: boolean;\n error?: HMSException;\n startedAt: Date;\n stoppedAt: Date;\n\n constructor(params: {\n running: boolean;\n error?: HMSException;\n startedAt: Date;\n stoppedAt: Date;\n }) {\n this.running = params.running;\n this.error = params.error;\n this.startedAt = params.startedAt;\n this.stoppedAt = params.stoppedAt;\n }\n}\n"],"mappings":";;;;;;;;;AAEO,MAAMA,wBAAwB,CAAC;EAMpCC,WAAW,CAACC,MAKX,EAAE;IAAA;IAAA;IAAA;IAAA;IACD,IAAI,CAACC,OAAO,GAAGD,MAAM,CAACC,OAAO;IAC7B,IAAI,CAACC,KAAK,GAAGF,MAAM,CAACE,KAAK;IACzB,IAAI,CAACC,SAAS,GAAGH,MAAM,CAACG,SAAS;IACjC,IAAI,CAACC,SAAS,GAAGJ,MAAM,CAACI,SAAS;EACnC;AACF;AAAC"}
1
+ {"version":3,"names":["HMSBrowserRecordingState","constructor","params","running","error","startedAt","stoppedAt"],"sources":["HMSBrowserRecordingState.ts"],"sourcesContent":["import type { HMSException } from './HMSException';\n\nexport class HMSBrowserRecordingState {\n running: boolean;\n error?: HMSException;\n startedAt?: Date;\n stoppedAt?: Date;\n\n constructor(params: {\n running: boolean;\n error?: HMSException;\n startedAt?: Date;\n stoppedAt?: Date;\n }) {\n this.running = params.running;\n this.error = params.error;\n this.startedAt = params.startedAt;\n this.stoppedAt = params.stoppedAt;\n }\n}\n"],"mappings":";;;;;;;;;AAEO,MAAMA,wBAAwB,CAAC;EAMpCC,WAAW,CAACC,MAKX,EAAE;IAAA;IAAA;IAAA;IAAA;IACD,IAAI,CAACC,OAAO,GAAGD,MAAM,CAACC,OAAO;IAC7B,IAAI,CAACC,KAAK,GAAGF,MAAM,CAACE,KAAK;IACzB,IAAI,CAACC,SAAS,GAAGH,MAAM,CAACG,SAAS;IACjC,IAAI,CAACC,SAAS,GAAGJ,MAAM,CAACI,SAAS;EACnC;AACF;AAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["HMSChangeTrackStateRequest","constructor","params","requestedBy","trackType","mute"],"sources":["HMSChangeTrackStateRequest.ts"],"sourcesContent":["import type { HMSPeer } from './HMSPeer';\n\nexport class HMSChangeTrackStateRequest {\n requestedBy: HMSPeer;\n trackType: string;\n mute: boolean;\n\n constructor(params: {\n requestedBy: HMSPeer;\n trackType: string;\n mute: boolean;\n }) {\n this.requestedBy = params.requestedBy;\n this.trackType = params.trackType;\n this.mute = params.mute;\n }\n}\n"],"mappings":";;;;;;;;;AAEO,MAAMA,0BAA0B,CAAC;EAKtCC,WAAW,CAACC,MAIX,EAAE;IAAA;IAAA;IAAA;IACD,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACC,WAAW;IACrC,IAAI,CAACC,SAAS,GAAGF,MAAM,CAACE,SAAS;IACjC,IAAI,CAACC,IAAI,GAAGH,MAAM,CAACG,IAAI;EACzB;AACF;AAAC"}
1
+ {"version":3,"names":["HMSChangeTrackStateRequest","constructor","params","requestedBy","trackType","mute"],"sources":["HMSChangeTrackStateRequest.ts"],"sourcesContent":["import type { HMSPeer } from './HMSPeer';\n\nexport class HMSChangeTrackStateRequest {\n requestedBy?: HMSPeer;\n trackType: string;\n mute: boolean;\n\n constructor(params: {\n requestedBy?: HMSPeer;\n trackType: string;\n mute: boolean;\n }) {\n this.requestedBy = params.requestedBy;\n this.trackType = params.trackType;\n this.mute = params.mute;\n }\n}\n"],"mappings":";;;;;;;;;AAEO,MAAMA,0BAA0B,CAAC;EAKtCC,WAAW,CAACC,MAIX,EAAE;IAAA;IAAA;IAAA;IACD,IAAI,CAACC,WAAW,GAAGD,MAAM,CAACC,WAAW;IACrC,IAAI,CAACC,SAAS,GAAGF,MAAM,CAACE,SAAS;IACjC,IAAI,CAACC,IAAI,GAAGH,MAAM,CAACG,IAAI;EACzB;AACF;AAAC"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.HMSEncoder = void 0;
7
+ var _reactNative = require("react-native");
7
8
  var _HMSTrack = require("./HMSTrack");
8
9
  var _HMSAudioTrack = require("./HMSAudioTrack");
9
10
  var _HMSVideoTrack = require("./HMSVideoTrack");
@@ -34,7 +35,18 @@ var _HMSServerRecordingState = require("./HMSServerRecordingState");
34
35
  var _HMSMessage = require("./HMSMessage");
35
36
  var _HMSMessageRecipient = require("./HMSMessageRecipient");
36
37
  var _HMSException = require("./HMSException");
38
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
39
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
40
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
41
+ const {
42
+ HMSManager
43
+ } = _reactNative.NativeModules;
37
44
  class HMSEncoder {
45
+ static clearData() {
46
+ this.data = {
47
+ roles: {}
48
+ };
49
+ }
38
50
  static encodeHmsRoom(room, id) {
39
51
  const encodedObj = {
40
52
  id: room === null || room === void 0 ? void 0 : room.id,
@@ -62,16 +74,16 @@ class HMSEncoder {
62
74
  static encodeHmsPeer(peer, id) {
63
75
  const encodedObj = {
64
76
  peerID: peer === null || peer === void 0 ? void 0 : peer.peerID,
65
- name: peer === null || peer === void 0 ? void 0 : peer.name,
77
+ name: (peer === null || peer === void 0 ? void 0 : peer.name) || '',
66
78
  isLocal: peer === null || peer === void 0 ? void 0 : peer.isLocal,
67
79
  customerUserID: peer === null || peer === void 0 ? void 0 : peer.customerUserID,
68
- customerDescription: peer === null || peer === void 0 ? void 0 : peer.customerDescription,
80
+ customerDescription: (peer === null || peer === void 0 ? void 0 : peer.customerDescription) || undefined,
69
81
  metadata: peer === null || peer === void 0 ? void 0 : peer.metadata,
70
82
  role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
71
- networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
72
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer === null || peer === void 0 ? void 0 : peer.audioTrack, id),
73
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer === null || peer === void 0 ? void 0 : peer.videoTrack, id),
74
- auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks, id)
83
+ networkQuality: peer !== null && peer !== void 0 && peer.networkQuality ? HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality) : undefined,
84
+ audioTrack: peer !== null && peer !== void 0 && peer.audioTrack ? HMSEncoder.encodeHmsAudioTrack(peer === null || peer === void 0 ? void 0 : peer.audioTrack, id) : undefined,
85
+ videoTrack: peer !== null && peer !== void 0 && peer.videoTrack ? HMSEncoder.encodeHmsVideoTrack(peer === null || peer === void 0 ? void 0 : peer.videoTrack, id) : undefined,
86
+ auxiliaryTracks: Array.isArray(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks) ? HMSEncoder.encodeHmsAuxiliaryTracks(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks, id) : undefined
75
87
  };
76
88
  return new _HMSPeer.HMSPeer(encodedObj);
77
89
  }
@@ -117,37 +129,37 @@ class HMSEncoder {
117
129
  return new _HMSTrack.HMSTrack(encodedObj);
118
130
  }
119
131
  static encodeHmsLocalPeer(peer, id) {
120
- var _peer$localAudioTrack, _peer$localAudioTrack2, _peer$localAudioTrack3, _peer$localAudioTrack4, _peer$localAudioTrack5, _peer$localAudioTrack6, _peer$localVideoTrack, _peer$localVideoTrack2, _peer$localVideoTrack3, _peer$localVideoTrack4, _peer$localVideoTrack5, _peer$localVideoTrack6;
132
+ var _peer$localAudioTrack, _peer$localAudioTrack2, _peer$localAudioTrack3, _peer$localAudioTrack4, _peer$localAudioTrack5, _peer$localAudioTrack6, _peer$localAudioTrack7, _peer$localAudioTrack8, _peer$localVideoTrack, _peer$localVideoTrack2, _peer$localVideoTrack3, _peer$localVideoTrack4, _peer$localVideoTrack5, _peer$localVideoTrack6, _peer$localVideoTrack7, _peer$localVideoTrack8;
121
133
  const encodedObj = {
122
- peerID: peer.peerID,
123
- name: peer.name,
124
- isLocal: peer.isLocal,
125
- customerUserID: peer.customerUserID,
126
- customerDescription: peer.customerDescription,
127
- metadata: peer.metadata,
134
+ peerID: peer === null || peer === void 0 ? void 0 : peer.peerID,
135
+ name: peer === null || peer === void 0 ? void 0 : peer.name,
136
+ isLocal: true,
137
+ customerUserID: peer === null || peer === void 0 ? void 0 : peer.customerUserID,
138
+ customerDescription: (peer === null || peer === void 0 ? void 0 : peer.customerDescription) || undefined,
139
+ metadata: (peer === null || peer === void 0 ? void 0 : peer.metadata) || undefined,
128
140
  role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
129
- networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
130
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
131
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
132
- auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer.auxiliaryTracks, id),
133
- localAudioTrackData: {
141
+ networkQuality: peer !== null && peer !== void 0 && peer.networkQuality ? HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality) : undefined,
142
+ audioTrack: peer !== null && peer !== void 0 && peer.audioTrack ? HMSEncoder.encodeHmsAudioTrack(peer === null || peer === void 0 ? void 0 : peer.audioTrack, id) : undefined,
143
+ videoTrack: peer !== null && peer !== void 0 && peer.videoTrack ? HMSEncoder.encodeHmsVideoTrack(peer === null || peer === void 0 ? void 0 : peer.videoTrack, id) : undefined,
144
+ auxiliaryTracks: Array.isArray(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks) ? HMSEncoder.encodeHmsAuxiliaryTracks(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks, id) : undefined,
145
+ localAudioTrackData: peer !== null && peer !== void 0 && (_peer$localAudioTrack = peer.localAudioTrackData) !== null && _peer$localAudioTrack !== void 0 && _peer$localAudioTrack.trackId ? {
134
146
  id: id,
135
- trackId: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack = peer.localAudioTrackData) === null || _peer$localAudioTrack === void 0 ? void 0 : _peer$localAudioTrack.trackId,
136
- source: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack2 = peer.localAudioTrackData) === null || _peer$localAudioTrack2 === void 0 ? void 0 : _peer$localAudioTrack2.source,
137
- trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack3 = peer.localAudioTrackData) === null || _peer$localAudioTrack3 === void 0 ? void 0 : _peer$localAudioTrack3.trackDescription,
138
- isMute: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack4 = peer.localAudioTrackData) === null || _peer$localAudioTrack4 === void 0 ? void 0 : _peer$localAudioTrack4.isMute,
139
- settings: HMSEncoder.encodeHmsAudioTrackSettings(peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack5 = peer.localAudioTrackData) === null || _peer$localAudioTrack5 === void 0 ? void 0 : _peer$localAudioTrack5.settings),
140
- type: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack6 = peer.localAudioTrackData) === null || _peer$localAudioTrack6 === void 0 ? void 0 : _peer$localAudioTrack6.type
141
- },
142
- localVideoTrackData: {
147
+ trackId: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack2 = peer.localAudioTrackData) === null || _peer$localAudioTrack2 === void 0 ? void 0 : _peer$localAudioTrack2.trackId,
148
+ source: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack3 = peer.localAudioTrackData) === null || _peer$localAudioTrack3 === void 0 ? void 0 : _peer$localAudioTrack3.source,
149
+ trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack4 = peer.localAudioTrackData) === null || _peer$localAudioTrack4 === void 0 ? void 0 : _peer$localAudioTrack4.trackDescription,
150
+ isMute: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack5 = peer.localAudioTrackData) === null || _peer$localAudioTrack5 === void 0 ? void 0 : _peer$localAudioTrack5.isMute,
151
+ settings: peer !== null && peer !== void 0 && (_peer$localAudioTrack6 = peer.localAudioTrackData) !== null && _peer$localAudioTrack6 !== void 0 && _peer$localAudioTrack6.settings ? HMSEncoder.encodeHmsAudioTrackSettings(peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack7 = peer.localAudioTrackData) === null || _peer$localAudioTrack7 === void 0 ? void 0 : _peer$localAudioTrack7.settings) : undefined,
152
+ type: peer === null || peer === void 0 ? void 0 : (_peer$localAudioTrack8 = peer.localAudioTrackData) === null || _peer$localAudioTrack8 === void 0 ? void 0 : _peer$localAudioTrack8.type
153
+ } : undefined,
154
+ localVideoTrackData: peer !== null && peer !== void 0 && (_peer$localVideoTrack = peer.localVideoTrackData) !== null && _peer$localVideoTrack !== void 0 && _peer$localVideoTrack.trackId ? {
143
155
  id: id,
144
- trackId: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack = peer.localVideoTrackData) === null || _peer$localVideoTrack === void 0 ? void 0 : _peer$localVideoTrack.trackId,
145
- source: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack2 = peer.localVideoTrackData) === null || _peer$localVideoTrack2 === void 0 ? void 0 : _peer$localVideoTrack2.source,
146
- trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack3 = peer.localVideoTrackData) === null || _peer$localVideoTrack3 === void 0 ? void 0 : _peer$localVideoTrack3.trackDescription,
147
- isMute: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack4 = peer.localVideoTrackData) === null || _peer$localVideoTrack4 === void 0 ? void 0 : _peer$localVideoTrack4.isMute,
148
- settings: HMSEncoder.encodeHmsVideoTrackSettings(peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack5 = peer.localVideoTrackData) === null || _peer$localVideoTrack5 === void 0 ? void 0 : _peer$localVideoTrack5.settings),
149
- type: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack6 = peer.localVideoTrackData) === null || _peer$localVideoTrack6 === void 0 ? void 0 : _peer$localVideoTrack6.type
150
- }
156
+ trackId: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack2 = peer.localVideoTrackData) === null || _peer$localVideoTrack2 === void 0 ? void 0 : _peer$localVideoTrack2.trackId,
157
+ source: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack3 = peer.localVideoTrackData) === null || _peer$localVideoTrack3 === void 0 ? void 0 : _peer$localVideoTrack3.source,
158
+ trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack4 = peer.localVideoTrackData) === null || _peer$localVideoTrack4 === void 0 ? void 0 : _peer$localVideoTrack4.trackDescription,
159
+ isMute: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack5 = peer.localVideoTrackData) === null || _peer$localVideoTrack5 === void 0 ? void 0 : _peer$localVideoTrack5.isMute,
160
+ settings: peer !== null && peer !== void 0 && (_peer$localVideoTrack6 = peer.localVideoTrackData) !== null && _peer$localVideoTrack6 !== void 0 && _peer$localVideoTrack6.settings ? HMSEncoder.encodeHmsVideoTrackSettings(peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack7 = peer.localVideoTrackData) === null || _peer$localVideoTrack7 === void 0 ? void 0 : _peer$localVideoTrack7.settings) : undefined,
161
+ type: peer === null || peer === void 0 ? void 0 : (_peer$localVideoTrack8 = peer.localVideoTrackData) === null || _peer$localVideoTrack8 === void 0 ? void 0 : _peer$localVideoTrack8.type
162
+ } : undefined
151
163
  };
152
164
  return new _HMSLocalPeer.HMSLocalPeer(encodedObj);
153
165
  }
@@ -182,7 +194,7 @@ class HMSEncoder {
182
194
  source: track === null || track === void 0 ? void 0 : track.source,
183
195
  trackDescription: track === null || track === void 0 ? void 0 : track.trackDescription,
184
196
  isMute: track === null || track === void 0 ? void 0 : track.isMute,
185
- settings: HMSEncoder.encodeHmsAudioTrackSettings(track === null || track === void 0 ? void 0 : track.settings),
197
+ settings: track !== null && track !== void 0 && track.settings ? HMSEncoder.encodeHmsAudioTrackSettings(track === null || track === void 0 ? void 0 : track.settings) : undefined,
186
198
  type: track === null || track === void 0 ? void 0 : track.type
187
199
  };
188
200
  return new _HMSLocalAudioTrack.HMSLocalAudioTrack(encodedObj);
@@ -194,7 +206,7 @@ class HMSEncoder {
194
206
  source: track === null || track === void 0 ? void 0 : track.source,
195
207
  trackDescription: track === null || track === void 0 ? void 0 : track.trackDescription,
196
208
  isMute: track === null || track === void 0 ? void 0 : track.isMute,
197
- settings: HMSEncoder.encodeHmsVideoTrackSettings(track === null || track === void 0 ? void 0 : track.settings),
209
+ settings: track !== null && track !== void 0 && track.settings ? HMSEncoder.encodeHmsVideoTrackSettings(track === null || track === void 0 ? void 0 : track.settings) : undefined,
198
210
  type: track === null || track === void 0 ? void 0 : track.type
199
211
  };
200
212
  return new _HMSLocalVideoTrack.HMSLocalVideoTrack(encodedObj);
@@ -208,36 +220,36 @@ class HMSEncoder {
208
220
  return hmsPeers;
209
221
  }
210
222
  static encodeHmsRemotePeer(peer, id) {
211
- var _peer$remoteAudioTrac, _peer$remoteAudioTrac2, _peer$remoteAudioTrac3, _peer$remoteAudioTrac4, _peer$remoteAudioTrac5, _peer$remoteVideoTrac, _peer$remoteVideoTrac2, _peer$remoteVideoTrac3, _peer$remoteVideoTrac4, _peer$remoteVideoTrac5, _peer$remoteVideoTrac6;
223
+ var _peer$remoteAudioTrac, _peer$remoteAudioTrac2, _peer$remoteAudioTrac3, _peer$remoteAudioTrac4, _peer$remoteAudioTrac5, _peer$remoteAudioTrac6, _peer$remoteVideoTrac, _peer$remoteVideoTrac2, _peer$remoteVideoTrac3, _peer$remoteVideoTrac4, _peer$remoteVideoTrac5, _peer$remoteVideoTrac6, _peer$remoteVideoTrac7;
212
224
  const encodedObj = {
213
- peerID: peer.peerID,
214
- name: peer.name,
215
- isLocal: peer.isLocal,
216
- customerUserID: peer.customerUserID,
225
+ peerID: peer === null || peer === void 0 ? void 0 : peer.peerID,
226
+ name: peer === null || peer === void 0 ? void 0 : peer.name,
227
+ isLocal: false,
228
+ customerUserID: peer === null || peer === void 0 ? void 0 : peer.customerUserID,
217
229
  customerDescription: peer.customerDescription,
218
230
  metadata: peer.metadata,
219
231
  role: HMSEncoder.encodeHmsRole(peer === null || peer === void 0 ? void 0 : peer.role),
220
- networkQuality: HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality),
221
- audioTrack: HMSEncoder.encodeHmsAudioTrack(peer.audioTrack, id),
222
- videoTrack: HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id),
223
- auxiliaryTracks: HMSEncoder.encodeHmsAuxiliaryTracks(peer.auxiliaryTracks, id),
224
- remoteAudioTrackData: {
232
+ networkQuality: peer !== null && peer !== void 0 && peer.networkQuality ? HMSEncoder.encodeHMSNetworkQuality(peer === null || peer === void 0 ? void 0 : peer.networkQuality) : undefined,
233
+ audioTrack: peer !== null && peer !== void 0 && peer.audioTrack ? HMSEncoder.encodeHmsAudioTrack(peer === null || peer === void 0 ? void 0 : peer.audioTrack, id) : undefined,
234
+ videoTrack: peer !== null && peer !== void 0 && peer.videoTrack ? HMSEncoder.encodeHmsVideoTrack(peer.videoTrack, id) : undefined,
235
+ auxiliaryTracks: Array.isArray(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks) ? HMSEncoder.encodeHmsAuxiliaryTracks(peer === null || peer === void 0 ? void 0 : peer.auxiliaryTracks, id) : undefined,
236
+ remoteAudioTrackData: peer !== null && peer !== void 0 && (_peer$remoteAudioTrac = peer.remoteAudioTrackData) !== null && _peer$remoteAudioTrac !== void 0 && _peer$remoteAudioTrac.trackId ? {
225
237
  id: id,
226
- trackId: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac === void 0 ? void 0 : _peer$remoteAudioTrac.trackId,
227
- source: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac2 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac2 === void 0 ? void 0 : _peer$remoteAudioTrac2.source,
228
- trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac3 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac3 === void 0 ? void 0 : _peer$remoteAudioTrac3.trackDescription,
229
- isMute: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac4 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac4 === void 0 ? void 0 : _peer$remoteAudioTrac4.isMute,
230
- playbackAllowed: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac5 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac5 === void 0 ? void 0 : _peer$remoteAudioTrac5.playbackAllowed
231
- },
232
- remoteVideoTrackData: {
238
+ trackId: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac2 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac2 === void 0 ? void 0 : _peer$remoteAudioTrac2.trackId,
239
+ source: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac3 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac3 === void 0 ? void 0 : _peer$remoteAudioTrac3.source,
240
+ trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac4 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac4 === void 0 ? void 0 : _peer$remoteAudioTrac4.trackDescription,
241
+ isMute: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac5 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac5 === void 0 ? void 0 : _peer$remoteAudioTrac5.isMute,
242
+ playbackAllowed: peer === null || peer === void 0 ? void 0 : (_peer$remoteAudioTrac6 = peer.remoteAudioTrackData) === null || _peer$remoteAudioTrac6 === void 0 ? void 0 : _peer$remoteAudioTrac6.playbackAllowed
243
+ } : undefined,
244
+ remoteVideoTrackData: peer !== null && peer !== void 0 && (_peer$remoteVideoTrac = peer.remoteVideoTrackData) !== null && _peer$remoteVideoTrac !== void 0 && _peer$remoteVideoTrac.trackId ? {
233
245
  id: id,
234
- trackId: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac === void 0 ? void 0 : _peer$remoteVideoTrac.trackId,
235
- source: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac2 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac2 === void 0 ? void 0 : _peer$remoteVideoTrac2.source,
236
- trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac3 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac3 === void 0 ? void 0 : _peer$remoteVideoTrac3.trackDescription,
237
- layer: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac4 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac4 === void 0 ? void 0 : _peer$remoteVideoTrac4.layer,
238
- isMute: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac5 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac5 === void 0 ? void 0 : _peer$remoteVideoTrac5.isMute,
239
- playbackAllowed: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac6 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac6 === void 0 ? void 0 : _peer$remoteVideoTrac6.playbackAllowed
240
- }
246
+ trackId: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac2 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac2 === void 0 ? void 0 : _peer$remoteVideoTrac2.trackId,
247
+ source: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac3 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac3 === void 0 ? void 0 : _peer$remoteVideoTrac3.source,
248
+ trackDescription: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac4 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac4 === void 0 ? void 0 : _peer$remoteVideoTrac4.trackDescription,
249
+ layer: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac5 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac5 === void 0 ? void 0 : _peer$remoteVideoTrac5.layer,
250
+ isMute: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac6 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac6 === void 0 ? void 0 : _peer$remoteVideoTrac6.isMute,
251
+ playbackAllowed: peer === null || peer === void 0 ? void 0 : (_peer$remoteVideoTrac7 = peer.remoteVideoTrackData) === null || _peer$remoteVideoTrac7 === void 0 ? void 0 : _peer$remoteVideoTrac7.playbackAllowed
252
+ } : undefined
241
253
  };
242
254
  return new _HMSRemotePeer.HMSRemotePeer(encodedObj);
243
255
  }
@@ -277,19 +289,43 @@ class HMSEncoder {
277
289
  return encodedRoles;
278
290
  }
279
291
  static encodeHmsRole(role) {
280
- const hmsRole = new _HMSRole.HMSRole(role);
281
- return hmsRole;
292
+ var _cachedRole$publishSe;
293
+ if (!role) {
294
+ return new _HMSRole.HMSRole(role);
295
+ }
296
+ const rolesCache = this.data.roles;
297
+ const cachedRole = rolesCache[role.name];
298
+
299
+ // create new HMSRole instance, if cached role does not exist OR `role.publishSettings?.allowed` does not exist
300
+ if (!cachedRole || !((_cachedRole$publishSe = cachedRole.publishSettings) !== null && _cachedRole$publishSe !== void 0 && _cachedRole$publishSe.allowed)) {
301
+ var _hmsRole$publishSetti;
302
+ // Creating HMSRole object with data
303
+ const hmsRole = new _HMSRole.HMSRole(role);
304
+
305
+ // saving the created HMSRole object into cache
306
+ rolesCache[role.name] = hmsRole;
307
+
308
+ // If the created HMSRole object is complete,
309
+ // sending notification to Native Side to stop sending data for this role
310
+ if ((_hmsRole$publishSetti = hmsRole.publishSettings) !== null && _hmsRole$publishSetti !== void 0 && _hmsRole$publishSetti.allowed) {
311
+ HMSManager.restrictData({
312
+ id: "12345",
313
+ roleName: hmsRole.name
314
+ });
315
+ }
316
+ }
317
+ return rolesCache[role.name];
282
318
  }
283
319
  static encodeHmsRoleChangeRequest(data, id) {
284
320
  const encodedRoleChangeRequest = {
285
- requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy, id),
321
+ requestedBy: data.requestedBy ? HMSEncoder.encodeHmsPeer(data.requestedBy, id) : undefined,
286
322
  suggestedRole: HMSEncoder.encodeHmsRole(data.suggestedRole)
287
323
  };
288
324
  return new _HMSRoleChangeRequest.HMSRoleChangeRequest(encodedRoleChangeRequest);
289
325
  }
290
326
  static encodeHmsChangeTrackStateRequest(data, id) {
291
327
  const encodedChangeTrackStateRequest = {
292
- requestedBy: HMSEncoder.encodeHmsPeer(data.requestedBy, id),
328
+ requestedBy: data !== null && data !== void 0 && data.requestedBy ? HMSEncoder.encodeHmsPeer(data === null || data === void 0 ? void 0 : data.requestedBy, id) : undefined,
293
329
  trackType: data.trackType,
294
330
  mute: data.mute
295
331
  };
@@ -332,40 +368,50 @@ class HMSEncoder {
332
368
  }
333
369
  static encodeBrowserRecordingState(data) {
334
370
  return new _HMSBrowserRecordingState.HMSBrowserRecordingState({
335
- running: data === null || data === void 0 ? void 0 : data.running,
336
- startedAt: new Date(parseInt(data === null || data === void 0 ? void 0 : data.startedAt)),
337
- stoppedAt: new Date(parseInt(data === null || data === void 0 ? void 0 : data.stoppedAt)),
338
- error: data === null || data === void 0 ? void 0 : data.error
371
+ running: (data === null || data === void 0 ? void 0 : data.running) || false,
372
+ startedAt: HMSEncoder.encodeDate(data === null || data === void 0 ? void 0 : data.startedAt),
373
+ stoppedAt: HMSEncoder.encodeDate(data === null || data === void 0 ? void 0 : data.stoppedAt),
374
+ error: (data === null || data === void 0 ? void 0 : data.error) || undefined
339
375
  });
340
376
  }
341
377
  static encodeServerRecordingState(data) {
342
378
  return new _HMSServerRecordingState.HMSServerRecordingState({
343
- running: data === null || data === void 0 ? void 0 : data.running,
344
- error: data === null || data === void 0 ? void 0 : data.error,
345
- startedAt: new Date(parseInt(data === null || data === void 0 ? void 0 : data.startedAt))
379
+ running: (data === null || data === void 0 ? void 0 : data.running) || false,
380
+ error: (data === null || data === void 0 ? void 0 : data.error) || undefined,
381
+ startedAt: HMSEncoder.encodeDate(data === null || data === void 0 ? void 0 : data.startedAt)
346
382
  });
347
383
  }
348
384
  static encodeRTMPStreamingState(data) {
349
385
  return new _HMSRtmpStreamingState.HMSRtmpStreamingState({
350
- running: data === null || data === void 0 ? void 0 : data.running,
351
- startedAt: new Date(parseInt(data === null || data === void 0 ? void 0 : data.startedAt)),
352
- stoppedAt: new Date(parseInt(data === null || data === void 0 ? void 0 : data.stoppedAt)),
353
- error: data === null || data === void 0 ? void 0 : data.error
386
+ running: (data === null || data === void 0 ? void 0 : data.running) || false,
387
+ startedAt: HMSEncoder.encodeDate(data === null || data === void 0 ? void 0 : data.startedAt),
388
+ stoppedAt: HMSEncoder.encodeDate(data === null || data === void 0 ? void 0 : data.stoppedAt),
389
+ error: (data === null || data === void 0 ? void 0 : data.error) || undefined
354
390
  });
355
391
  }
392
+ static encodeDate(dateData) {
393
+ if (!dateData) {
394
+ return undefined;
395
+ }
396
+ const dateNum = parseInt(dateData);
397
+ if (isNaN(dateNum)) {
398
+ return undefined;
399
+ }
400
+ return new Date(dateNum);
401
+ }
356
402
  static encodeHLSStreamingState(data) {
357
403
  return new _HMSHLSStreamingState.HMSHLSStreamingState({
358
- running: data === null || data === void 0 ? void 0 : data.running,
359
- variants: this.encodeHLSVariants(data === null || data === void 0 ? void 0 : data.variants)
404
+ running: (data === null || data === void 0 ? void 0 : data.running) || false,
405
+ variants: Array.isArray(data === null || data === void 0 ? void 0 : data.variants) ? this.encodeHLSVariants(data === null || data === void 0 ? void 0 : data.variants) : undefined
360
406
  });
361
407
  }
362
408
  static encodeHLSRecordingState(data) {
363
409
  if (data) {
364
410
  return new _HMSHLSRecordingState.HMSHLSRecordingState({
365
- running: data === null || data === void 0 ? void 0 : data.running,
366
- startedAt: new Date(parseInt(data === null || data === void 0 ? void 0 : data.startedAt)),
367
- singleFilePerLayer: data === null || data === void 0 ? void 0 : data.singleFilePerLayer,
368
- videoOnDemand: data === null || data === void 0 ? void 0 : data.videoOnDemand
411
+ running: (data === null || data === void 0 ? void 0 : data.running) || false,
412
+ startedAt: HMSEncoder.encodeDate(data === null || data === void 0 ? void 0 : data.startedAt),
413
+ singleFilePerLayer: (data === null || data === void 0 ? void 0 : data.singleFilePerLayer) || false,
414
+ videoOnDemand: (data === null || data === void 0 ? void 0 : data.videoOnDemand) || false
369
415
  });
370
416
  } else {
371
417
  return undefined;
@@ -377,8 +423,8 @@ class HMSEncoder {
377
423
  let variant = new _HMSHLSVariant.HMSHLSVariant({
378
424
  hlsStreamUrl: item.hlsStreamUrl,
379
425
  meetingUrl: item.meetingUrl,
380
- metadata: item === null || item === void 0 ? void 0 : item.metadata,
381
- startedAt: new Date(parseInt(item === null || item === void 0 ? void 0 : item.startedAt))
426
+ metadata: item !== null && item !== void 0 && item.metaData ? item === null || item === void 0 ? void 0 : item.metadata : undefined,
427
+ startedAt: HMSEncoder.encodeDate(item === null || item === void 0 ? void 0 : item.startedAt)
382
428
  });
383
429
  variants.push(variant);
384
430
  });
@@ -409,8 +455,8 @@ class HMSEncoder {
409
455
  static encodeHMSMessageRecipient(data, id) {
410
456
  return new _HMSMessageRecipient.HMSMessageRecipient({
411
457
  recipientType: data === null || data === void 0 ? void 0 : data.recipientType,
412
- recipientPeer: this.encodeHmsPeer(data === null || data === void 0 ? void 0 : data.recipientPeer, id),
413
- recipientRoles: this.encodeHmsRoles(data === null || data === void 0 ? void 0 : data.recipientRoles)
458
+ recipientPeer: data !== null && data !== void 0 && data.recipientPeer ? this.encodeHmsPeer(data.recipientPeer, id) : undefined,
459
+ recipientRoles: Array.isArray(data === null || data === void 0 ? void 0 : data.recipientRoles) ? this.encodeHmsRoles(data.recipientRoles) : []
414
460
  });
415
461
  }
416
462
  static encodeHMSException(data) {
@@ -427,4 +473,7 @@ class HMSEncoder {
427
473
  }
428
474
  }
429
475
  exports.HMSEncoder = HMSEncoder;
476
+ _defineProperty(HMSEncoder, "data", {
477
+ roles: {}
478
+ });
430
479
  //# sourceMappingURL=HMSEncoder.js.map